Lines Matching refs:h

12 struct hashtab *hashtab_create(u32 (*hash_value)(struct hashtab *h, const void *key),  in hashtab_create()  argument
13 int (*keycmp)(struct hashtab *h, const void *key1, const void *key2), in hashtab_create() argument
39 int hashtab_insert(struct hashtab *h, void *key, void *datum) in hashtab_insert() argument
46 if (!h || h->nel == HASHTAB_MAX_NODES) in hashtab_insert()
49 hvalue = h->hash_value(h, key); in hashtab_insert()
51 cur = h->htable[hvalue]; in hashtab_insert()
52 while (cur && h->keycmp(h, key, cur->key) > 0) { in hashtab_insert()
57 if (cur && (h->keycmp(h, key, cur->key) == 0)) in hashtab_insert()
69 newnode->next = h->htable[hvalue]; in hashtab_insert()
70 h->htable[hvalue] = newnode; in hashtab_insert()
73 h->nel++; in hashtab_insert()
77 void *hashtab_search(struct hashtab *h, const void *key) in hashtab_search() argument
82 if (!h) in hashtab_search()
85 hvalue = h->hash_value(h, key); in hashtab_search()
86 cur = h->htable[hvalue]; in hashtab_search()
87 while (cur && h->keycmp(h, key, cur->key) > 0) in hashtab_search()
90 if (cur == NULL || (h->keycmp(h, key, cur->key) != 0)) in hashtab_search()
96 void hashtab_destroy(struct hashtab *h) in hashtab_destroy() argument
101 if (!h) in hashtab_destroy()
104 for (i = 0; i < h->size; i++) { in hashtab_destroy()
105 cur = h->htable[i]; in hashtab_destroy()
111 h->htable[i] = NULL; in hashtab_destroy()
114 kfree(h->htable); in hashtab_destroy()
115 h->htable = NULL; in hashtab_destroy()
117 kfree(h); in hashtab_destroy()
120 int hashtab_map(struct hashtab *h, in hashtab_map() argument
128 if (!h) in hashtab_map()
131 for (i = 0; i < h->size; i++) { in hashtab_map()
132 cur = h->htable[i]; in hashtab_map()
144 void hashtab_stat(struct hashtab *h, struct hashtab_info *info) in hashtab_stat() argument
151 for (slots_used = max_chain_len = i = 0; i < h->size; i++) { in hashtab_stat()
152 cur = h->htable[i]; in hashtab_stat()