4 * Efficient dictionary hash table class.
14 struct hash_tbl_node
{
21 struct hash_tbl_node
*table
;
29 struct hash_table
*head
;
30 struct hash_tbl_node
*where
;
33 uint64_t crc64(uint64_t crc
, const char *string
);
34 uint64_t crc64i(uint64_t crc
, const char *string
);
35 #define CRC64_INIT UINT64_C(0xffffffffffffffff)
37 /* Some reasonable initial sizes... */
39 #define HASH_MEDIUM 16
40 #define HASH_LARGE 256
42 void hash_init(struct hash_table
*head
, size_t size
);
43 void **hash_find(struct hash_table
*head
, const char *string
,
44 struct hash_insert
*insert
);
45 void **hash_findi(struct hash_table
*head
, const char *string
,
46 struct hash_insert
*insert
);
47 void **hash_add(struct hash_insert
*insert
, const char *string
, void *data
);
48 void *hash_iterate(const struct hash_table
*head
,
49 struct hash_tbl_node
**iterator
,
51 void hash_free(struct hash_table
*head
);
53 #endif /* NASM_HASHTBL_H */