_LHASH
lh_stats(const _LHASH *lh, FILE *fp)
lh_node_stats(const _LHASH *lh, FILE *fp)
lh_node_usage_stats(const _LHASH *lh, FILE *fp)
lh_stats_bio(const _LHASH *lh, BIO *out)
lh_node_stats_bio(const _LHASH *lh, BIO *out)
lh_node_usage_stats_bio(const _LHASH *lh, BIO *out)
static void expand(_LHASH *lh);
static void contract(_LHASH *lh);
static LHASH_NODE **getrn(_LHASH *lh, const void *data, unsigned long *rhash);
_LHASH *
_LHASH *ret;
if ((ret = calloc(1, sizeof(_LHASH))) == NULL)
lh_free(_LHASH *lh)
lh_insert(_LHASH *lh, void *data)
lh_delete(_LHASH *lh, const void *data)
lh_retrieve(_LHASH *lh, const void *data)
doall_util_fn(_LHASH *lh, int use_arg, LHASH_DOALL_FN_TYPE func,
lh_doall(_LHASH *lh, LHASH_DOALL_FN_TYPE func)
lh_doall_arg(_LHASH *lh, LHASH_DOALL_ARG_FN_TYPE func, void *arg)
expand(_LHASH *lh)
contract(_LHASH *lh)
static LHASH_NODE **getrn(_LHASH *lh, const void *data, unsigned long *rhash)
lh_num_items(const _LHASH *lh)
_LHASH *lh_new(LHASH_HASH_FN_TYPE h, LHASH_COMP_FN_TYPE c);
void lh_free(_LHASH *lh);
void *lh_insert(_LHASH *lh, void *data);
void *lh_delete(_LHASH *lh, const void *data);
void *lh_retrieve(_LHASH *lh, const void *data);
void lh_doall(_LHASH *lh, LHASH_DOALL_FN_TYPE func);
void lh_doall_arg(_LHASH *lh, LHASH_DOALL_ARG_FN_TYPE func, void *arg);
unsigned long lh_num_items(const _LHASH *lh);
void lh_stats(const _LHASH *lh, FILE *out);
void lh_node_stats(const _LHASH *lh, FILE *out);
void lh_node_usage_stats(const _LHASH *lh, FILE *out);
void lh_stats_bio(const _LHASH *lh, BIO *out);
void lh_node_stats_bio(const _LHASH *lh, BIO *out);
void lh_node_usage_stats_bio(const _LHASH *lh, BIO *out);
((_LHASH *)CHECKED_PTR_OF(LHASH_OF(type),lh))