9 TAILQ_ENTRY(hnode
) hn_next
;
12 typedef struct htable
{
13 size_t ht_size
; /* size must be a power of 2 */
15 unsigned int (*ht_hashf
)(const void *key
);
16 int (*ht_cmpf
)(const void *arg1
, const void *arg2
);
17 void (*ht_printf
)(const void *key
, const void *data
);
18 TAILQ_HEAD(htablehead
, hnode
) *ht_table
;
21 typedef struct htablehead hhead_t
;
29 /* Function prototypes */
30 htret_t
htable_init(htable_t
*htable
, size_t size
);
31 void htable_free(htable_t
*htable
);
32 htret_t
htable_insert(htable_t
*htable
, const void *key
, void *data
);
33 htret_t
htable_remove(htable_t
*htable
, const void *key
);
34 void *htable_search(const htable_t
*htable
, const void *key
);
35 void htable_print(const htable_t
*htable
);