|  | 
| #define | DECLTYPE(x)   (__typeof(x)) | 
|  | 
| #define | DECLTYPE_ASSIGN(dst, src) | 
|  | 
| #define | UTHASH_VERSION   1.9.3 | 
|  | 
| #define | uthash_fatal(msg)   exit(-1)        /* fatal error (out of memory,etc) */ | 
|  | 
| #define | uthash_malloc(sz)   malloc(sz)      /* malloc fcn                      */ | 
|  | 
| #define | uthash_free(ptr, sz)   free(ptr)     /* free fcn                        */ | 
|  | 
| #define | uthash_noexpand_fyi(tbl)   /* can be defined to log noexpand  */ | 
|  | 
| #define | uthash_expand_fyi(tbl)   /* can be defined to log expands   */ | 
|  | 
| #define | HASH_INITIAL_NUM_BUCKETS   32      /* initial number of buckets        */ | 
|  | 
| #define | HASH_INITIAL_NUM_BUCKETS_LOG2   5  /* lg2 of initial number of buckets */ | 
|  | 
| #define | HASH_BKT_CAPACITY_THRESH   10      /* expand when bucket count reaches */ | 
|  | 
| #define | ELMT_FROM_HH(tbl, hhp)   ((void*)(((char*)(hhp)) - ((tbl)->hho))) | 
|  | 
| #define | HASH_FIND(hh, head, keyptr, keylen, out) | 
|  | 
| #define | HASH_BLOOM_MAKE(tbl) | 
|  | 
| #define | HASH_BLOOM_FREE(tbl) | 
|  | 
| #define | HASH_BLOOM_ADD(tbl, hashv) | 
|  | 
| #define | HASH_BLOOM_TEST(tbl, hashv)   (1) | 
|  | 
| #define | HASH_MAKE_TABLE(hh, head) | 
|  | 
| #define | HASH_ADD(hh, head, fieldname, keylen_in, add)   HASH_ADD_KEYPTR(hh,head,&add->fieldname,keylen_in,add) | 
|  | 
| #define | HASH_ADD_KEYPTR(hh, head, keyptr, keylen_in, add) | 
|  | 
| #define | HASH_TO_BKT(hashv, num_bkts, bkt) | 
|  | 
| #define | HASH_DELETE(hh, head, delptr) | 
|  | 
| #define | HASH_FIND_STR(head, findstr, out)   HASH_FIND(hh,head,findstr,strlen(findstr),out) | 
|  | 
| #define | HASH_ADD_STR(head, strfield, add)   HASH_ADD(hh,head,strfield,strlen(add->strfield),add) | 
|  | 
| #define | HASH_FIND_INT(head, findint, out)   HASH_FIND(hh,head,findint,sizeof(int),out) | 
|  | 
| #define | HASH_ADD_INT(head, intfield, add)   HASH_ADD(hh,head,intfield,sizeof(int),add) | 
|  | 
| #define | HASH_FIND_PTR(head, findptr, out)   HASH_FIND(hh,head,findptr,sizeof(void *),out) | 
|  | 
| #define | HASH_ADD_PTR(head, ptrfield, add)   HASH_ADD(hh,head,ptrfield,sizeof(void *),add) | 
|  | 
| #define | HASH_DEL(head, delptr)   HASH_DELETE(hh,head,delptr) | 
|  | 
| #define | HASH_FSCK(hh, head) | 
|  | 
| #define | HASH_EMIT_KEY(hh, head, keyptr, fieldlen) | 
|  | 
| #define | HASH_FCN   HASH_JEN | 
|  | 
| #define | HASH_BER(key, keylen, num_bkts, hashv, bkt) | 
|  | 
| #define | HASH_SAX(key, keylen, num_bkts, hashv, bkt) | 
|  | 
| #define | HASH_FNV(key, keylen, num_bkts, hashv, bkt) | 
|  | 
| #define | HASH_OAT(key, keylen, num_bkts, hashv, bkt) | 
|  | 
| #define | HASH_JEN_MIX(a, b, c) | 
|  | 
| #define | HASH_JEN(key, keylen, num_bkts, hashv, bkt) | 
|  | 
| #define | get16bits(d) | 
|  | 
| #define | HASH_SFH(key, keylen, num_bkts, hashv, bkt) | 
|  | 
| #define | HASH_KEYCMP(a, b, len)   memcmp(a,b,len) | 
|  | 
| #define | HASH_FIND_IN_BKT(tbl, hh, head, keyptr, keylen_in, out) | 
|  | 
| #define | HASH_ADD_TO_BKT(head, addhh) | 
|  | 
| #define | HASH_DEL_IN_BKT(hh, head, hh_del) | 
|  | 
| #define | HASH_EXPAND_BUCKETS(tbl) | 
|  | 
| #define | HASH_SORT(head, cmpfcn)   HASH_SRT(hh,head,cmpfcn) | 
|  | 
| #define | HASH_SRT(hh, head, cmpfcn) | 
|  | 
| #define | HASH_SELECT(hh_dst, dst, hh_src, src, cond) | 
|  | 
| #define | HASH_CLEAR(hh, head) | 
|  | 
| #define | HASH_ITER(hh, head, el, tmp) | 
|  | 
| #define | HASH_COUNT(head)   HASH_CNT(hh,head) | 
|  | 
| #define | HASH_CNT(hh, head)   ((head)?((head)->hh.tbl->num_items):0) | 
|  | 
| #define | HASH_SIGNATURE   0xa0111fe1 | 
|  | 
| #define | HASH_BLOOM_SIGNATURE   0xb12220f2 | 
|  |