+#include "firm_types.h"
+#include "begin.h"
+
+/**
+ * Initializes the firm library. Allocates default data structures.
+ */
+FIRM_API void ir_init(void);
+
+/**
+ * Frees all memory occupied by the firm library.
+ */
+FIRM_API void ir_finish(void);
+
+/** returns the libFirm major version number */
+FIRM_API unsigned ir_get_version_major(void);
+/** returns libFirm minor version number */
+FIRM_API unsigned ir_get_version_minor(void);
+/** returns string describing libFirm revision */
+FIRM_API const char *ir_get_version_revision(void);
+/** returns string describing libFirm build */
+FIRM_API const char *ir_get_version_build(void);
+
+/**
+ * a list of firm kinds
+ * Most important datastructures in firm contain a firm_kind field at the
+ * beginning so given void* pointer you can usually still guess the kind
+ * of thing the pointer points to.
+ * This is used in debug helper functions and printers.
+ */