ch_table
ch_sub_alloc(const struct ch_type *type, struct ch_table *t,
ch_sub_free(const struct ch_type *type, struct ch_table *t,
ch_table_resize(const struct ch_type *type, struct ch_table *t)
ch_table_fill(struct ch_table *t, uint64_t idx, struct ch_group *table,
ch_table_buddy(struct ch_table *t, uint64_t idx, uint32_t local_level)
ch_table_grow(const struct ch_type *type, struct ch_table *t, uint64_t h,
ch_table_compact(const struct ch_type *type, struct ch_table *t, uint64_t h,
_ch_init(const struct ch_type *type, struct ch_table *t)
_ch_destroy(const struct ch_type *type, struct ch_table *t)
_ch_insert(const struct ch_type *type, struct ch_table *t, uint64_t h,
_ch_remove(const struct ch_type *type, struct ch_table *t, uint64_t h,
_ch_find(const struct ch_type *type, struct ch_table *t, uint64_t h,
_ch_locate(const struct ch_type *type, struct ch_table *t, uint64_t h,
_ch_first(const struct ch_type *type, struct ch_table *t, struct ch_iter *it)
_ch_next(const struct ch_type *type, struct ch_table *t, struct ch_iter *it)
_ch_destroy(_name##_CH_TYPE, &head->ch_table); \
p = _ch_insert(_name##_CH_TYPE, &head->ch_table, h, elm); \
return _ch_remove(_name##_CH_TYPE, &head->ch_table, h, elm); \
return _ch_find(_name##_CH_TYPE, &head->ch_table, h, key); \
return _ch_locate(_name##_CH_TYPE, &head->ch_table, hash, \
return _ch_first(_name##_CH_TYPE, &head->ch_table, iter); \
return _ch_next(_name##_CH_TYPE, &head->ch_table, iter); \
_ch_get_stats(stats, &head->ch_table.ch_counts); \
struct ch_table ch_table; \
int _ch_init(const struct ch_type *, struct ch_table *);
void _ch_destroy(const struct ch_type *, struct ch_table *);
void *_ch_insert(const struct ch_type *, struct ch_table *, uint64_t, void *);
void *_ch_remove(const struct ch_type *, struct ch_table *, uint64_t,
void *_ch_find(const struct ch_type *, struct ch_table *, uint64_t,
void *_ch_locate(const struct ch_type *, struct ch_table *, uint64_t,
void *_ch_first(const struct ch_type *, struct ch_table *, struct ch_iter *);
void *_ch_next(const struct ch_type *, struct ch_table *, struct ch_iter *);
return _ch_init(_name##_CH_TYPE, &head->ch_table); \