X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=include%2Flibfirm%2Ffirm_common.h;h=52645b3423b39567b2c59296267ccc8c555f8d3d;hb=cbc9fdd03cead0cd8d43142ae718d0460ebdfe5f;hp=590bc1b45e69325e3fa498242052e31bc961b8e4;hpb=1ce363f80e6a204d4011f85813362d9bd1d0e7e4;p=libfirm diff --git a/include/libfirm/firm_common.h b/include/libfirm/firm_common.h index 590bc1b45..52645b342 100644 --- a/include/libfirm/firm_common.h +++ b/include/libfirm/firm_common.h @@ -21,13 +21,39 @@ * @file * @brief common firm declarations * @author Martin Trapp, Christian Schaefer, Goetz Lindenmaier - * @version $Id$ */ #ifndef FIRM_COMMON_FIRM_COMMON_H #define FIRM_COMMON_FIRM_COMMON_H -/** a list of firm kinds - @@@ not all datatypes are tagged yet. */ +#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. + */ typedef enum { k_BAD = 0, /**< An invalid firm node. */ k_entity, /**< An entity. */ @@ -38,10 +64,11 @@ typedef enum { k_ir_op, /**< An IR opcode. */ k_tarval, /**< A tarval. */ k_ir_loop, /**< A loop. */ - k_ir_compound_graph_path, /**< A compound graph path, see entity.h. */ - k_ir_extblk, /**< An extended basic block. */ k_ir_prog, /**< A program representation (irp). */ - k_ir_region, /**< A region. */ + k_ir_graph_pass, /**< An ir_graph pass. */ + k_ir_prog_pass, /**< An ir_prog pass. */ + k_ir_graph_pass_mgr, /**< An ir_graph pass manager. */ + k_ir_prog_pass_mgr, /**< An ir_prog pass manager. */ k_ir_max /**< maximum value -- illegal for firm nodes. */ } firm_kind; @@ -50,12 +77,8 @@ typedef enum { * * @param firm_thing pointer representing a firm object */ -firm_kind get_kind(const void *firm_thing); - -/** Returns the kind of a thing as a string. */ -const char *print_firm_kind(void *firm_thing); +FIRM_API firm_kind get_kind(const void *firm_thing); -/** Print an identification of a firm thing. */ -void firm_identify_thing(void *X); +#include "end.h" #endif