libyasm/hamt.h

Go to the documentation of this file.
00001 
00034 #ifndef YASM_HAMT_H
00035 #define YASM_HAMT_H
00036 
00037 #ifndef YASM_LIB_DECL
00038 #define YASM_LIB_DECL
00039 #endif
00040 
00042 typedef struct HAMT HAMT;
00044 typedef struct HAMTEntry HAMTEntry;
00045 
00052 YASM_LIB_DECL
00053 HAMT *HAMT_create(int nocase, /*@exits@*/ void (*error_func)
00054     (const char *file, unsigned int line, const char *message));
00055 
00061 YASM_LIB_DECL
00062 void HAMT_destroy(/*@only@*/ HAMT *hamt,
00063                   void (*deletefunc) (/*@only@*/ void *data));
00064 
00081 YASM_LIB_DECL
00082 /*@dependent@*/ void *HAMT_insert(HAMT *hamt, /*@dependent@*/ const char *str,
00083                                   /*@only@*/ void *data, int *replace,
00084                                   void (*deletefunc) (/*@only@*/ void *data));
00085 
00091 YASM_LIB_DECL
00092 /*@dependent@*/ /*@null@*/ void *HAMT_search(HAMT *hamt, const char *str);
00093 
00101 YASM_LIB_DECL
00102 int HAMT_traverse(HAMT *hamt, /*@null@*/ void *d,
00103                   int (*func) (/*@dependent@*/ /*@null@*/ void *node,
00104                                /*@null@*/ void *d));
00105 
00110 YASM_LIB_DECL
00111 const HAMTEntry *HAMT_first(const HAMT *hamt);
00112 
00117 YASM_LIB_DECL
00118 /*@null@*/ const HAMTEntry *HAMT_next(const HAMTEntry *prev);
00119 
00124 YASM_LIB_DECL
00125 void *HAMTEntry_get_data(const HAMTEntry *entry);
00126 
00127 #endif

Generated on Thu Jul 24 01:23:31 2008 for libyasm by  doxygen 1.5.2