Lines Matching defs:ht

173 init_hash_table(hash_table *ht)
175 ht->max = HT_DEFAULT_MAX;
176 ht->mask = ht->max - 1;
177 ht->num_elements = 0;
179 ht->table = (hash_ent **)calloc(ht->max, sizeof(hash_ent *));
180 if (ht->table == NULL)
188 shutdown_hash_table(hash_table *ht)
193 for(i=0; i < ht->max; i++) {
194 he = ht->table[i];
202 if (ht->table)
203 free(ht->table);
204 ht->table = NULL;
209 print_hash_stats(hash_table *ht)
214 for(i=0; i < ht->max; i++) {
215 he = ht->table[i];
228 printf("max # of chains: %d, average chain length %d\n", max,sum/ht->max);
254 grow_hash_table(hash_table *ht)
260 if (ht->max & ht->mask) {
261 printf("*** hashtable size %d or mask %d looks weird!\n", ht->max,
262 ht->mask);
265 omax = ht->max;
274 for(he=ht->table[i]; he; he=next) {
283 free(ht->table);
284 ht->table = new_table;
285 ht->max = newsize;
286 ht->mask = newmask;
295 hash_insert(hash_table *ht, int dev, fs_off_t bnum, void *data)
300 hash = HASH(dev, bnum) & ht->mask;
302 curr = ht->table[hash];
317 he->next = ht->table[hash];
318 ht->table[hash] = he;
320 ht->num_elements++;
321 if (ht->num_elements >= ((ht->max * 3) / 4)) {
322 if (grow_hash_table(ht) != 0)
330 hash_lookup(hash_table *ht, int dev, fs_off_t bnum)
334 he = ht->table[HASH(dev, bnum) & ht->mask];
349 hash_delete(hash_table *ht, int dev, fs_off_t bnum)
355 hash = HASH(dev, bnum) & ht->mask;
356 he = ht->table[hash];
371 if (ht->table[hash] == he)
372 ht->table[hash] = he->next;
379 ht->num_elements--;
419 if (init_hash_table(&bc.ht) != 0)
454 shutdown_hash_table(&bc.ht);
540 kprintf("cur blocks %d, max blocks %d ht @ %p\n", bc.cur_blocks,
541 bc.max_blocks, &bc.ht);
1078 if ((junk = hash_delete(&bc.ht, ce->dev, ce->block_num)) != ce) {
1095 /* print_hash_stats(&bc.ht); */
1110 shutdown_hash_table(&bc.ht);
1156 ce = hash_lookup(&bc.ht, dev, bnum);
1262 ce = hash_lookup(&bc.ht, dev, blocks[i]);
1445 if ((junk = hash_delete(&bc.ht, ce->dev, ce->block_num)) != ce) {
1985 if (hash_lookup(&bc.ht, dev, bnum + cur_nblocks))
2005 if (hash_lookup(&bc.ht, dev, bnum + num_needed))
2058 if (hash_insert(&bc.ht, dev, bnum + cur, ce) != 0)
2146 tmp_ce = (cache_ent *)hash_delete(&bc.ht,dev,bnum+cur);
2153 tmp_ce = (cache_ent *)hash_delete(&bc.ht,ents[cur]->dev,
2223 tmp_ce = hash_delete(&bc.ht, ce->dev, ce->block_num);
2260 tmp_ce = (cache_ent *)hash_delete(&bc.ht,dev,bnum+cur);