Lines Matching refs:h

74 static void rehash(HASHSET h);
97 HASHSET h; in h_create() local
105 h = exmalloc(sizeof (*h)); in h_create()
107 if (h == NULL) in h_create()
110 h->h_table = exmalloc(initialCapacity * sizeof (ENTRY *)); in h_create()
112 (void) memset(h->h_table, 0, initialCapacity * sizeof (ENTRY *)); in h_create()
114 if (h->h_table == NULL) { in h_create()
115 free(h); in h_create()
118 h->h_tableSize = initialCapacity; in h_create()
119 h->h_hash = hash; in h_create()
120 h->h_equal = equal; in h_create()
121 h->h_loadFactor = loadFactor; in h_create()
122 h->h_threshold = (uint_t)(initialCapacity * loadFactor); in h_create()
123 h->h_count = 0; in h_create()
125 return (h); in h_create()
133 h_get(const HASHSET h, void *key) in h_get() argument
135 uint_t hash = h->h_hash(key); in h_get()
136 uint_t i = hash % h->h_tableSize; in h_get()
139 for (e = h->h_table[i]; e; e = e->e_next) in h_get()
140 if (e->e_hash == hash && h->h_equal(e->e_key, key)) in h_get()
153 rehash(HASHSET h) in rehash() argument
155 uint_t i = h->h_tableSize; in rehash()
164 for (e = h->h_table[i]; e; e = next) { in rehash()
173 h->h_threshold = (uint_t)(newtabSize * h->h_loadFactor); in rehash()
174 h->h_tableSize = newtabSize; in rehash()
175 free(h->h_table); in rehash()
176 h->h_table = newtab; in rehash()
187 h_put(HASHSET h, const void *key) in h_put() argument
189 uint_t hash = h->h_hash(key); in h_put()
190 uint_t indx = hash % h->h_tableSize; in h_put()
193 for (e = h->h_table[indx]; e; e = e->e_next) in h_put()
194 if (e->e_hash == hash && h->h_equal(e->e_key, key)) in h_put()
197 if (h->h_count >= h->h_threshold) { in h_put()
198 rehash(h); in h_put()
200 indx = hash % h->h_tableSize; in h_put()
206 e->e_next = h->h_table[indx]; in h_put()
208 h->h_table[indx] = e; in h_put()
209 h->h_count++; in h_put()
211 DTRACE_PROBE2(mountd, hashset, h->h_count, h->h_loadFactor); in h_put()
223 h_delete(HASHSET h, const void *key) in h_delete() argument
225 uint_t hash = h->h_hash(key); in h_delete()
226 uint_t indx = hash % h->h_tableSize; in h_delete()
229 for (e = h->h_table[indx], prev = NULL; e; prev = e, e = e->e_next) { in h_delete()
230 if (e->e_hash == hash && h->h_equal(e->e_key, key)) { in h_delete()
235 h->h_table[indx] = e->e_next; in h_delete()
249 h_iterator(HASHSET h) in h_iterator() argument
253 i->i_h = h; in h_iterator()
254 i->i_indx = h->h_tableSize; in h_iterator()