typedef struct Hash Hash; typedef struct HashItem HashItem; struct Hash { QLock; u32int sz; u32int nitems; HashItem **items; }; struct HashItem { ulong crc; char key[128]; HashItem *next; }; void inithash(void); Hash* newhash(void); void freehash(Hash*); int lenhash(Hash*); void puthash(Hash*, char*, HashItem*); void* gethash(Hash*, char*); void* delhash(Hash*, char*); void forhash(Hash*, void(*)(void*));