#ifndef _UTIL_H_ #define _UTIL_H_ #include #include #ifndef min #define min(x,y) (((x) < (y)) ? (x) : (y)) #endif // min #ifndef max #define max(x,y) (((x) < (y)) ? (y) : (x)) #endif // max #ifdef _HASHMAP_NODEKEY_MAXLEN #define NODEKEY_MAXLEN (_HASHMAP_NODEKEY_MAXLEN) #else #define NODEKEY_MAXLEN ((unsigned int)1024) #endif // _HASHMAP_NODEKEY_MAXLEN typedef struct _Node { char key[NODEKEY_MAXLEN]; unsigned int key_length; unsigned long hash; void *value; } MapNode; typedef struct _Map { unsigned int size; unsigned int count; MapNode *nodes; } Map; unsigned long map_hash(const char *); void * map_get(Map *, const char *); Map * map_put(Map *, const char *, void *); void * map_remove(Map *, const char *); #endif // _UTIL_H_