• Home
  • Raw
  • Download

Lines Matching refs:h

13 struct hashtab *hashtab_create(u32 (*hash_value)(struct hashtab *h, const void *key),  in hashtab_create()  argument
14 int (*keycmp)(struct hashtab *h, const void *key1, const void *key2), in hashtab_create() argument
40 int hashtab_insert(struct hashtab *h, void *key, void *datum) in hashtab_insert() argument
47 if (!h || h->nel == HASHTAB_MAX_NODES) in hashtab_insert()
50 hvalue = h->hash_value(h, key); in hashtab_insert()
52 cur = h->htable[hvalue]; in hashtab_insert()
53 while (cur && h->keycmp(h, key, cur->key) > 0) { in hashtab_insert()
58 if (cur && (h->keycmp(h, key, cur->key) == 0)) in hashtab_insert()
70 newnode->next = h->htable[hvalue]; in hashtab_insert()
71 h->htable[hvalue] = newnode; in hashtab_insert()
74 h->nel++; in hashtab_insert()
78 void *hashtab_search(struct hashtab *h, const void *key) in hashtab_search() argument
83 if (!h) in hashtab_search()
86 hvalue = h->hash_value(h, key); in hashtab_search()
87 cur = h->htable[hvalue]; in hashtab_search()
88 while (cur && h->keycmp(h, key, cur->key) > 0) in hashtab_search()
91 if (!cur || (h->keycmp(h, key, cur->key) != 0)) in hashtab_search()
97 void hashtab_destroy(struct hashtab *h) in hashtab_destroy() argument
102 if (!h) in hashtab_destroy()
105 for (i = 0; i < h->size; i++) { in hashtab_destroy()
106 cur = h->htable[i]; in hashtab_destroy()
112 h->htable[i] = NULL; in hashtab_destroy()
115 kfree(h->htable); in hashtab_destroy()
116 h->htable = NULL; in hashtab_destroy()
118 kfree(h); in hashtab_destroy()
121 int hashtab_map(struct hashtab *h, in hashtab_map() argument
129 if (!h) in hashtab_map()
132 for (i = 0; i < h->size; i++) { in hashtab_map()
133 cur = h->htable[i]; in hashtab_map()
145 void hashtab_stat(struct hashtab *h, struct hashtab_info *info) in hashtab_stat() argument
152 for (slots_used = max_chain_len = i = 0; i < h->size; i++) { in hashtab_stat()
153 cur = h->htable[i]; in hashtab_stat()