dh 755 arch/i386/i386/apm.c bus_space_handle_t ch, dh; dh 784 arch/i386/i386/apm.c ap->apm_data_len, 1, &dh) != 0) { dh 788 arch/i386/i386/apm.c bus_space_unmap(ba->bios_memt, dh, ap->apm_data_len); dh 800 arch/i386/i386/apm.c bus_space_handle_t ch16, ch32, dh; dh 842 arch/i386/i386/apm.c l, 1, &dh); dh 843 arch/i386/i386/apm.c ch16 = dh; dh 847 arch/i386/i386/apm.c dh += ap->apm_data_base - cbase; dh 852 arch/i386/i386/apm.c ap->apm_data_len + 1, 1, &dh); dh 864 arch/i386/i386/apm.c setgdt(GAPMDATA_SEL, (void *)dh, ap->apm_data_len, SDT_MEMRWA, dh 870 arch/i386/i386/apm.c ap->apm_data_base, dh, ap->apm_data_len, dh 245 dev/raidframe/rf_dagutils.c RF_DagHeader_t *dh; dh 247 dev/raidframe/rf_dagutils.c RF_FREELIST_GET(rf_dagh_freelist, dh, next, (RF_DagHeader_t *)); dh 248 dev/raidframe/rf_dagutils.c if (dh) { dh 249 dev/raidframe/rf_dagutils.c bzero((char *) dh, sizeof(RF_DagHeader_t)); dh 251 dev/raidframe/rf_dagutils.c return (dh); dh 255 dev/raidframe/rf_dagutils.c rf_FreeDAGHeader(RF_DagHeader_t *dh) dh 257 dev/raidframe/rf_dagutils.c RF_FREELIST_FREE(rf_dagh_freelist, dh, next); dh 126 msdosfs/direntry.h void dos2unixtime(u_int dd, u_int dt, u_int dh, struct timespec *tsp); dh 179 msdosfs/msdosfs_conv.c dos2unixtime(dd, dt, dh, tsp) dh 182 msdosfs/msdosfs_conv.c u_int dh; dh 202 msdosfs/msdosfs_conv.c + dh / 100; dh 231 msdosfs/msdosfs_conv.c tsp->tv_nsec = (dh % 100) * 10000000; dh 82 ufs/ufs/dirhash.h #define DH_ENTRY(dh, slot) \ dh 83 ufs/ufs/dirhash.h ((dh)->dh_hash[(slot) >> DH_BLKOFFSHIFT][(slot) & DH_BLKOFFMASK]) dh 67 ufs/ufs/ufs_dirhash.c int ufsdirhash_hash(struct dirhash *dh, char *name, int namelen); dh 68 ufs/ufs/ufs_dirhash.c void ufsdirhash_adjfree(struct dirhash *dh, doff_t offset, int diff); dh 69 ufs/ufs/ufs_dirhash.c void ufsdirhash_delslot(struct dirhash *dh, int slot); dh 70 ufs/ufs/ufs_dirhash.c int ufsdirhash_findslot(struct dirhash *dh, char *name, int namelen, dh 79 ufs/ufs/ufs_dirhash.c #define DIRHASH_LOCK(dh) dh 80 ufs/ufs/ufs_dirhash.c #define DIRHASH_UNLOCK(dh) dh 109 ufs/ufs/ufs_dirhash.c struct dirhash *dh; dh 148 ufs/ufs/ufs_dirhash.c memreqd = sizeof(*dh) + narrays * sizeof(*dh->dh_hash) + dh 149 ufs/ufs/ufs_dirhash.c narrays * DH_NBLKOFF * sizeof(**dh->dh_hash) + dh 150 ufs/ufs/ufs_dirhash.c nblocks * sizeof(*dh->dh_blkfree); dh 169 ufs/ufs/ufs_dirhash.c MALLOC(dh, struct dirhash *, sizeof *dh, M_DIRHASH, M_NOWAIT); dh 170 ufs/ufs/ufs_dirhash.c if (dh == NULL) { dh 176 ufs/ufs/ufs_dirhash.c memset(dh, 0, sizeof *dh); dh 177 ufs/ufs/ufs_dirhash.c dh->dh_hash = malloc(narrays * sizeof(dh->dh_hash[0]), dh 179 ufs/ufs/ufs_dirhash.c dh->dh_blkfree = malloc(nblocks * sizeof(dh->dh_blkfree[0]), dh 181 ufs/ufs/ufs_dirhash.c if (dh->dh_hash == NULL || dh->dh_blkfree == NULL) dh 183 ufs/ufs/ufs_dirhash.c memset(dh->dh_hash, 0, narrays * sizeof(dh->dh_hash[0])); dh 185 ufs/ufs/ufs_dirhash.c if ((dh->dh_hash[i] = DIRHASH_BLKALLOC()) == NULL) dh 188 ufs/ufs/ufs_dirhash.c dh->dh_hash[i][j] = DIRHASH_EMPTY; dh 192 ufs/ufs/ufs_dirhash.c dh->dh_narrays = narrays; dh 193 ufs/ufs/ufs_dirhash.c dh->dh_hlen = nslots; dh 194 ufs/ufs/ufs_dirhash.c dh->dh_nblk = nblocks; dh 195 ufs/ufs/ufs_dirhash.c dh->dh_dirblks = dirblocks; dh 197 ufs/ufs/ufs_dirhash.c dh->dh_blkfree[i] = DIRBLKSIZ / DIRALIGN; dh 199 ufs/ufs/ufs_dirhash.c dh->dh_firstfree[i] = -1; dh 200 ufs/ufs/ufs_dirhash.c dh->dh_firstfree[DH_NFSTATS] = 0; dh 201 ufs/ufs/ufs_dirhash.c dh->dh_seqopt = 0; dh 202 ufs/ufs/ufs_dirhash.c dh->dh_seqoff = 0; dh 203 ufs/ufs/ufs_dirhash.c dh->dh_score = DH_SCOREINIT; dh 204 ufs/ufs/ufs_dirhash.c ip->i_dirhash = dh; dh 227 ufs/ufs/ufs_dirhash.c slot = ufsdirhash_hash(dh, ep->d_name, ep->d_namlen); dh 228 ufs/ufs/ufs_dirhash.c while (DH_ENTRY(dh, slot) != DIRHASH_EMPTY) dh 229 ufs/ufs/ufs_dirhash.c slot = WRAPINCR(slot, dh->dh_hlen); dh 230 ufs/ufs/ufs_dirhash.c dh->dh_hused++; dh 231 ufs/ufs/ufs_dirhash.c DH_ENTRY(dh, slot) = pos; dh 232 ufs/ufs/ufs_dirhash.c ufsdirhash_adjfree(dh, pos, -DIRSIZ(0, ep)); dh 240 ufs/ufs/ufs_dirhash.c TAILQ_INSERT_TAIL(&ufsdirhash_list, dh, dh_list); dh 241 ufs/ufs/ufs_dirhash.c dh->dh_onlist = 1; dh 246 ufs/ufs/ufs_dirhash.c if (dh->dh_hash != NULL) { dh 248 ufs/ufs/ufs_dirhash.c if (dh->dh_hash[i] != NULL) dh 249 ufs/ufs/ufs_dirhash.c DIRHASH_BLKFREE(dh->dh_hash[i]); dh 250 ufs/ufs/ufs_dirhash.c free(dh->dh_hash, M_DIRHASH); dh 252 ufs/ufs/ufs_dirhash.c if (dh->dh_blkfree != NULL) dh 253 ufs/ufs/ufs_dirhash.c free(dh->dh_blkfree, M_DIRHASH); dh 254 ufs/ufs/ufs_dirhash.c FREE(dh, M_DIRHASH); dh 268 ufs/ufs/ufs_dirhash.c struct dirhash *dh; dh 271 ufs/ufs/ufs_dirhash.c if ((dh = ip->i_dirhash) == NULL) dh 274 ufs/ufs/ufs_dirhash.c DIRHASH_LOCK(dh); dh 275 ufs/ufs/ufs_dirhash.c if (dh->dh_onlist) dh 276 ufs/ufs/ufs_dirhash.c TAILQ_REMOVE(&ufsdirhash_list, dh, dh_list); dh 277 ufs/ufs/ufs_dirhash.c DIRHASH_UNLOCK(dh); dh 282 ufs/ufs/ufs_dirhash.c mem = sizeof(*dh); dh 283 ufs/ufs/ufs_dirhash.c if (dh->dh_hash != NULL) { dh 284 ufs/ufs/ufs_dirhash.c for (i = 0; i < dh->dh_narrays; i++) dh 285 ufs/ufs/ufs_dirhash.c DIRHASH_BLKFREE(dh->dh_hash[i]); dh 286 ufs/ufs/ufs_dirhash.c free(dh->dh_hash, M_DIRHASH); dh 287 ufs/ufs/ufs_dirhash.c free(dh->dh_blkfree, M_DIRHASH); dh 288 ufs/ufs/ufs_dirhash.c mem += dh->dh_narrays * sizeof(*dh->dh_hash) + dh 289 ufs/ufs/ufs_dirhash.c dh->dh_narrays * DH_NBLKOFF * sizeof(**dh->dh_hash) + dh 290 ufs/ufs/ufs_dirhash.c dh->dh_nblk * sizeof(*dh->dh_blkfree); dh 292 ufs/ufs/ufs_dirhash.c FREE(dh, M_DIRHASH); dh 315 ufs/ufs/ufs_dirhash.c struct dirhash *dh, *dh_next; dh 322 ufs/ufs/ufs_dirhash.c if ((dh = ip->i_dirhash) == NULL) dh 332 ufs/ufs/ufs_dirhash.c if (TAILQ_NEXT(dh, dh_list) != NULL) { dh 334 ufs/ufs/ufs_dirhash.c DIRHASH_LOCK(dh); dh 341 ufs/ufs/ufs_dirhash.c if (dh->dh_hash != NULL && dh 342 ufs/ufs/ufs_dirhash.c (dh_next = TAILQ_NEXT(dh, dh_list)) != NULL && dh 343 ufs/ufs/ufs_dirhash.c dh->dh_score >= dh_next->dh_score) { dh 344 ufs/ufs/ufs_dirhash.c DIRHASH_ASSERT(dh->dh_onlist, ("dirhash: not on list")); dh 345 ufs/ufs/ufs_dirhash.c TAILQ_REMOVE(&ufsdirhash_list, dh, dh_list); dh 346 ufs/ufs/ufs_dirhash.c TAILQ_INSERT_AFTER(&ufsdirhash_list, dh_next, dh, dh 352 ufs/ufs/ufs_dirhash.c DIRHASH_LOCK(dh); dh 354 ufs/ufs/ufs_dirhash.c if (dh->dh_hash == NULL) { dh 355 ufs/ufs/ufs_dirhash.c DIRHASH_UNLOCK(dh); dh 361 ufs/ufs/ufs_dirhash.c if (dh->dh_score < DH_SCOREMAX) dh 362 ufs/ufs/ufs_dirhash.c dh->dh_score++; dh 369 ufs/ufs/ufs_dirhash.c slot = ufsdirhash_hash(dh, name, namelen); dh 371 ufs/ufs/ufs_dirhash.c if (dh->dh_seqopt) { dh 378 ufs/ufs/ufs_dirhash.c for (i = slot; (offset = DH_ENTRY(dh, i)) != DIRHASH_EMPTY; dh 379 ufs/ufs/ufs_dirhash.c i = WRAPINCR(i, dh->dh_hlen)) dh 380 ufs/ufs/ufs_dirhash.c if (offset == dh->dh_seqoff) dh 382 ufs/ufs/ufs_dirhash.c if (offset == dh->dh_seqoff) { dh 390 ufs/ufs/ufs_dirhash.c dh->dh_seqopt = 0; dh 393 ufs/ufs/ufs_dirhash.c for (; (offset = DH_ENTRY(dh, slot)) != DIRHASH_EMPTY; dh 394 ufs/ufs/ufs_dirhash.c slot = WRAPINCR(slot, dh->dh_hlen)) { dh 397 ufs/ufs/ufs_dirhash.c DIRHASH_UNLOCK(dh); dh 432 ufs/ufs/ufs_dirhash.c if (dh->dh_seqopt == 0 && dh->dh_seqoff == offset) dh 433 ufs/ufs/ufs_dirhash.c dh->dh_seqopt = 1; dh 434 ufs/ufs/ufs_dirhash.c dh->dh_seqoff = offset + DIRSIZ(0, dp); dh 441 ufs/ufs/ufs_dirhash.c DIRHASH_LOCK(dh); dh 442 ufs/ufs/ufs_dirhash.c if (dh->dh_hash == NULL) { dh 443 ufs/ufs/ufs_dirhash.c DIRHASH_UNLOCK(dh); dh 453 ufs/ufs/ufs_dirhash.c if (dh->dh_seqopt) { dh 454 ufs/ufs/ufs_dirhash.c dh->dh_seqopt = 0; dh 458 ufs/ufs/ufs_dirhash.c DIRHASH_UNLOCK(dh); dh 484 ufs/ufs/ufs_dirhash.c struct dirhash *dh; dh 489 ufs/ufs/ufs_dirhash.c if ((dh = ip->i_dirhash) == NULL) dh 491 ufs/ufs/ufs_dirhash.c DIRHASH_LOCK(dh); dh 492 ufs/ufs/ufs_dirhash.c if (dh->dh_hash == NULL) { dh 493 ufs/ufs/ufs_dirhash.c DIRHASH_UNLOCK(dh); dh 501 ufs/ufs/ufs_dirhash.c if ((dirblock = dh->dh_firstfree[i]) != -1) dh 504 ufs/ufs/ufs_dirhash.c DIRHASH_UNLOCK(dh); dh 508 ufs/ufs/ufs_dirhash.c DIRHASH_ASSERT(dirblock < dh->dh_nblk && dh 509 ufs/ufs/ufs_dirhash.c dh->dh_blkfree[dirblock] >= howmany(slotneeded, DIRALIGN), dh 511 ufs/ufs/ufs_dirhash.c DIRHASH_UNLOCK(dh); dh 566 ufs/ufs/ufs_dirhash.c struct dirhash *dh; dh 569 ufs/ufs/ufs_dirhash.c if ((dh = ip->i_dirhash) == NULL) dh 571 ufs/ufs/ufs_dirhash.c DIRHASH_LOCK(dh); dh 572 ufs/ufs/ufs_dirhash.c if (dh->dh_hash == NULL) { dh 573 ufs/ufs/ufs_dirhash.c DIRHASH_UNLOCK(dh); dh 578 ufs/ufs/ufs_dirhash.c if (dh->dh_blkfree[dh->dh_dirblks - 1] != DIRBLKSIZ / DIRALIGN) { dh 579 ufs/ufs/ufs_dirhash.c DIRHASH_UNLOCK(dh); dh 583 ufs/ufs/ufs_dirhash.c for (i = dh->dh_dirblks - 1; i >= 0; i--) dh 584 ufs/ufs/ufs_dirhash.c if (dh->dh_blkfree[i] != DIRBLKSIZ / DIRALIGN) dh 586 ufs/ufs/ufs_dirhash.c DIRHASH_UNLOCK(dh); dh 598 ufs/ufs/ufs_dirhash.c struct dirhash *dh; dh 601 ufs/ufs/ufs_dirhash.c if ((dh = ip->i_dirhash) == NULL) dh 603 ufs/ufs/ufs_dirhash.c DIRHASH_LOCK(dh); dh 604 ufs/ufs/ufs_dirhash.c if (dh->dh_hash == NULL) { dh 605 ufs/ufs/ufs_dirhash.c DIRHASH_UNLOCK(dh); dh 610 ufs/ufs/ufs_dirhash.c DIRHASH_ASSERT(offset < dh->dh_dirblks * DIRBLKSIZ, dh 616 ufs/ufs/ufs_dirhash.c if (dh->dh_hused >= (dh->dh_hlen * 3) / 4) { dh 617 ufs/ufs/ufs_dirhash.c DIRHASH_UNLOCK(dh); dh 623 ufs/ufs/ufs_dirhash.c slot = ufsdirhash_hash(dh, dirp->d_name, dirp->d_namlen); dh 624 ufs/ufs/ufs_dirhash.c while (DH_ENTRY(dh, slot) >= 0) dh 625 ufs/ufs/ufs_dirhash.c slot = WRAPINCR(slot, dh->dh_hlen); dh 626 ufs/ufs/ufs_dirhash.c if (DH_ENTRY(dh, slot) == DIRHASH_EMPTY) dh 627 ufs/ufs/ufs_dirhash.c dh->dh_hused++; dh 628 ufs/ufs/ufs_dirhash.c DH_ENTRY(dh, slot) = offset; dh 631 ufs/ufs/ufs_dirhash.c ufsdirhash_adjfree(dh, offset, -DIRSIZ(0, dirp)); dh 632 ufs/ufs/ufs_dirhash.c DIRHASH_UNLOCK(dh); dh 643 ufs/ufs/ufs_dirhash.c struct dirhash *dh; dh 646 ufs/ufs/ufs_dirhash.c if ((dh = ip->i_dirhash) == NULL) dh 648 ufs/ufs/ufs_dirhash.c DIRHASH_LOCK(dh); dh 649 ufs/ufs/ufs_dirhash.c if (dh->dh_hash == NULL) { dh 650 ufs/ufs/ufs_dirhash.c DIRHASH_UNLOCK(dh); dh 655 ufs/ufs/ufs_dirhash.c DIRHASH_ASSERT(offset < dh->dh_dirblks * DIRBLKSIZ, dh 658 ufs/ufs/ufs_dirhash.c slot = ufsdirhash_findslot(dh, dirp->d_name, dirp->d_namlen, offset); dh 661 ufs/ufs/ufs_dirhash.c ufsdirhash_delslot(dh, slot); dh 664 ufs/ufs/ufs_dirhash.c ufsdirhash_adjfree(dh, offset, DIRSIZ(0, dirp)); dh 665 ufs/ufs/ufs_dirhash.c DIRHASH_UNLOCK(dh); dh 676 ufs/ufs/ufs_dirhash.c struct dirhash *dh; dh 679 ufs/ufs/ufs_dirhash.c if ((dh = ip->i_dirhash) == NULL) dh 681 ufs/ufs/ufs_dirhash.c DIRHASH_LOCK(dh); dh 682 ufs/ufs/ufs_dirhash.c if (dh->dh_hash == NULL) { dh 683 ufs/ufs/ufs_dirhash.c DIRHASH_UNLOCK(dh); dh 688 ufs/ufs/ufs_dirhash.c DIRHASH_ASSERT(oldoff < dh->dh_dirblks * DIRBLKSIZ && dh 689 ufs/ufs/ufs_dirhash.c newoff < dh->dh_dirblks * DIRBLKSIZ, dh 692 ufs/ufs/ufs_dirhash.c slot = ufsdirhash_findslot(dh, dirp->d_name, dirp->d_namlen, oldoff); dh 693 ufs/ufs/ufs_dirhash.c DH_ENTRY(dh, slot) = newoff; dh 694 ufs/ufs/ufs_dirhash.c DIRHASH_UNLOCK(dh); dh 704 ufs/ufs/ufs_dirhash.c struct dirhash *dh; dh 707 ufs/ufs/ufs_dirhash.c if ((dh = ip->i_dirhash) == NULL) dh 709 ufs/ufs/ufs_dirhash.c DIRHASH_LOCK(dh); dh 710 ufs/ufs/ufs_dirhash.c if (dh->dh_hash == NULL) { dh 711 ufs/ufs/ufs_dirhash.c DIRHASH_UNLOCK(dh); dh 716 ufs/ufs/ufs_dirhash.c DIRHASH_ASSERT(offset == dh->dh_dirblks * DIRBLKSIZ, dh 719 ufs/ufs/ufs_dirhash.c if (block >= dh->dh_nblk) { dh 721 ufs/ufs/ufs_dirhash.c DIRHASH_UNLOCK(dh); dh 725 ufs/ufs/ufs_dirhash.c dh->dh_dirblks = block + 1; dh 728 ufs/ufs/ufs_dirhash.c dh->dh_blkfree[block] = DIRBLKSIZ / DIRALIGN; dh 729 ufs/ufs/ufs_dirhash.c if (dh->dh_firstfree[DH_NFSTATS] == -1) dh 730 ufs/ufs/ufs_dirhash.c dh->dh_firstfree[DH_NFSTATS] = block; dh 731 ufs/ufs/ufs_dirhash.c DIRHASH_UNLOCK(dh); dh 740 ufs/ufs/ufs_dirhash.c struct dirhash *dh; dh 743 ufs/ufs/ufs_dirhash.c if ((dh = ip->i_dirhash) == NULL) dh 745 ufs/ufs/ufs_dirhash.c DIRHASH_LOCK(dh); dh 746 ufs/ufs/ufs_dirhash.c if (dh->dh_hash == NULL) { dh 747 ufs/ufs/ufs_dirhash.c DIRHASH_UNLOCK(dh); dh 752 ufs/ufs/ufs_dirhash.c DIRHASH_ASSERT(offset <= dh->dh_dirblks * DIRBLKSIZ, dh 761 ufs/ufs/ufs_dirhash.c if (block < dh->dh_nblk / 8 && dh->dh_narrays > 1) { dh 762 ufs/ufs/ufs_dirhash.c DIRHASH_UNLOCK(dh); dh 772 ufs/ufs/ufs_dirhash.c if (dh->dh_firstfree[DH_NFSTATS] >= block) dh 773 ufs/ufs/ufs_dirhash.c dh->dh_firstfree[DH_NFSTATS] = -1; dh 774 ufs/ufs/ufs_dirhash.c for (i = block; i < dh->dh_dirblks; i++) dh 775 ufs/ufs/ufs_dirhash.c if (dh->dh_blkfree[i] != DIRBLKSIZ / DIRALIGN) dh 778 ufs/ufs/ufs_dirhash.c if (dh->dh_firstfree[i] >= block) dh 780 ufs/ufs/ufs_dirhash.c dh->dh_dirblks = block; dh 781 ufs/ufs/ufs_dirhash.c DIRHASH_UNLOCK(dh); dh 796 ufs/ufs/ufs_dirhash.c struct dirhash *dh; dh 802 ufs/ufs/ufs_dirhash.c if ((dh = ip->i_dirhash) == NULL) dh 804 ufs/ufs/ufs_dirhash.c DIRHASH_LOCK(dh); dh 805 ufs/ufs/ufs_dirhash.c if (dh->dh_hash == NULL) { dh 806 ufs/ufs/ufs_dirhash.c DIRHASH_UNLOCK(dh); dh 812 ufs/ufs/ufs_dirhash.c if ((offset & (DIRBLKSIZ - 1)) != 0 || block >= dh->dh_dirblks) dh 837 ufs/ufs/ufs_dirhash.c ufsdirhash_findslot(dh, dp->d_name, dp->d_namlen, offset + i); dh 844 ufs/ufs/ufs_dirhash.c if (dh->dh_blkfree[block] * DIRALIGN != nfree) dh 849 ufs/ufs/ufs_dirhash.c if (dh->dh_firstfree[i] == block && i != ffslot) dh 851 ufs/ufs/ufs_dirhash.c if (dh->dh_firstfree[ffslot] == -1) dh 853 ufs/ufs/ufs_dirhash.c DIRHASH_UNLOCK(dh); dh 860 ufs/ufs/ufs_dirhash.c ufsdirhash_hash(struct dirhash *dh, char *name, int namelen) dh 871 ufs/ufs/ufs_dirhash.c hash = hash32_buf(&dh, sizeof(dh), hash); dh 872 ufs/ufs/ufs_dirhash.c return (hash % dh->dh_hlen); dh 884 ufs/ufs/ufs_dirhash.c ufsdirhash_adjfree(struct dirhash *dh, doff_t offset, int diff) dh 890 ufs/ufs/ufs_dirhash.c DIRHASH_ASSERT(block < dh->dh_nblk && block < dh->dh_dirblks, dh 892 ufs/ufs/ufs_dirhash.c ofidx = BLKFREE2IDX(dh->dh_blkfree[block]); dh 893 ufs/ufs/ufs_dirhash.c dh->dh_blkfree[block] = (int)dh->dh_blkfree[block] + (diff / DIRALIGN); dh 894 ufs/ufs/ufs_dirhash.c nfidx = BLKFREE2IDX(dh->dh_blkfree[block]); dh 899 ufs/ufs/ufs_dirhash.c if (dh->dh_firstfree[ofidx] == block) { dh 900 ufs/ufs/ufs_dirhash.c for (i = block + 1; i < dh->dh_dirblks; i++) dh 901 ufs/ufs/ufs_dirhash.c if (BLKFREE2IDX(dh->dh_blkfree[i]) == ofidx) dh 903 ufs/ufs/ufs_dirhash.c dh->dh_firstfree[ofidx] = (i < dh->dh_dirblks) ? i : -1; dh 907 ufs/ufs/ufs_dirhash.c if (dh->dh_firstfree[nfidx] > block || dh 908 ufs/ufs/ufs_dirhash.c dh->dh_firstfree[nfidx] == -1) dh 909 ufs/ufs/ufs_dirhash.c dh->dh_firstfree[nfidx] = block; dh 920 ufs/ufs/ufs_dirhash.c ufsdirhash_findslot(struct dirhash *dh, char *name, int namelen, doff_t offset) dh 924 ufs/ufs/ufs_dirhash.c mtx_assert(&dh->dh_mtx, MA_OWNED); dh 927 ufs/ufs/ufs_dirhash.c DIRHASH_ASSERT(dh->dh_hused < dh->dh_hlen, ("dirhash find full")); dh 928 ufs/ufs/ufs_dirhash.c slot = ufsdirhash_hash(dh, name, namelen); dh 929 ufs/ufs/ufs_dirhash.c while (DH_ENTRY(dh, slot) != offset && dh 930 ufs/ufs/ufs_dirhash.c DH_ENTRY(dh, slot) != DIRHASH_EMPTY) dh 931 ufs/ufs/ufs_dirhash.c slot = WRAPINCR(slot, dh->dh_hlen); dh 932 ufs/ufs/ufs_dirhash.c if (DH_ENTRY(dh, slot) != offset) dh 944 ufs/ufs/ufs_dirhash.c ufsdirhash_delslot(struct dirhash *dh, int slot) dh 948 ufs/ufs/ufs_dirhash.c mtx_assert(&dh->dh_mtx, MA_OWNED); dh 951 ufs/ufs/ufs_dirhash.c DH_ENTRY(dh, slot) = DIRHASH_DEL; dh 954 ufs/ufs/ufs_dirhash.c for (i = slot; DH_ENTRY(dh, i) == DIRHASH_DEL; ) dh 955 ufs/ufs/ufs_dirhash.c i = WRAPINCR(i, dh->dh_hlen); dh 956 ufs/ufs/ufs_dirhash.c if (DH_ENTRY(dh, i) == DIRHASH_EMPTY) { dh 957 ufs/ufs/ufs_dirhash.c i = WRAPDECR(i, dh->dh_hlen); dh 958 ufs/ufs/ufs_dirhash.c while (DH_ENTRY(dh, i) == DIRHASH_DEL) { dh 959 ufs/ufs/ufs_dirhash.c DH_ENTRY(dh, i) = DIRHASH_EMPTY; dh 960 ufs/ufs/ufs_dirhash.c dh->dh_hused--; dh 961 ufs/ufs/ufs_dirhash.c i = WRAPDECR(i, dh->dh_hlen); dh 963 ufs/ufs/ufs_dirhash.c DIRHASH_ASSERT(dh->dh_hused >= 0, ("ufsdirhash_delslot neg hlen")); dh 1007 ufs/ufs/ufs_dirhash.c struct dirhash *dh; dh 1015 ufs/ufs/ufs_dirhash.c if ((dh = TAILQ_FIRST(&ufsdirhash_list)) == NULL) { dh 1019 ufs/ufs/ufs_dirhash.c DIRHASH_LOCK(dh); dh 1020 ufs/ufs/ufs_dirhash.c DIRHASH_ASSERT(dh->dh_hash != NULL, ("dirhash: NULL hash on list")); dh 1023 ufs/ufs/ufs_dirhash.c if (--dh->dh_score > 0) { dh 1024 ufs/ufs/ufs_dirhash.c DIRHASH_UNLOCK(dh); dh 1030 ufs/ufs/ufs_dirhash.c TAILQ_REMOVE(&ufsdirhash_list, dh, dh_list); dh 1031 ufs/ufs/ufs_dirhash.c dh->dh_onlist = 0; dh 1032 ufs/ufs/ufs_dirhash.c hash = dh->dh_hash; dh 1033 ufs/ufs/ufs_dirhash.c dh->dh_hash = NULL; dh 1034 ufs/ufs/ufs_dirhash.c blkfree = dh->dh_blkfree; dh 1035 ufs/ufs/ufs_dirhash.c dh->dh_blkfree = NULL; dh 1036 ufs/ufs/ufs_dirhash.c narrays = dh->dh_narrays; dh 1037 ufs/ufs/ufs_dirhash.c mem = narrays * sizeof(*dh->dh_hash) + dh 1038 ufs/ufs/ufs_dirhash.c narrays * DH_NBLKOFF * sizeof(**dh->dh_hash) + dh 1039 ufs/ufs/ufs_dirhash.c dh->dh_nblk * sizeof(*dh->dh_blkfree); dh 1042 ufs/ufs/ufs_dirhash.c DIRHASH_UNLOCK(dh);