Lines Matching refs:scan
130 static daddr_t blst_leaf_alloc(blmeta_t *scan, daddr_t blk,
132 static daddr_t blst_meta_alloc(blmeta_t *scan, daddr_t cursor, int *count,
134 static void blst_leaf_free(blmeta_t *scan, daddr_t relblk, int count);
135 static void blst_meta_free(blmeta_t *scan, daddr_t freeBlk, daddr_t count,
137 static void blst_copy(blmeta_t *scan, daddr_t blk, daddr_t radix,
139 static daddr_t blst_leaf_fill(blmeta_t *scan, daddr_t blk, int count);
140 static daddr_t blst_meta_fill(blmeta_t *scan, daddr_t allocBlk, daddr_t count,
143 static void blst_radix_print(blmeta_t *scan, daddr_t blk, daddr_t radix,
587 blst_next_leaf_alloc(blmeta_t *scan, daddr_t start, int count, int maxcount) in blst_next_leaf_alloc() argument
597 while (((++scan)->bm_bitmap & 1) == 1 && in blst_next_leaf_alloc()
600 if (~scan->bm_bitmap != 0) { in blst_next_leaf_alloc()
607 avail = blk - start + bitpos(~scan->bm_bitmap); in blst_next_leaf_alloc()
624 --scan; in blst_next_leaf_alloc()
636 scan->bm_bitmap &= ~bitrange(0, maxcount % BLIST_RADIX); in blst_next_leaf_alloc()
638 scan->bm_bitmap = 0; in blst_next_leaf_alloc()
646 if ((scan--)->bm_bitmap == 0) in blst_next_leaf_alloc()
647 scan->bm_bitmap ^= 1; in blst_next_leaf_alloc()
649 if ((scan--)->bm_bitmap == 0) in blst_next_leaf_alloc()
650 scan[-digit * radix_to_skip(radix)].bm_bitmap ^= in blst_next_leaf_alloc()
656 scan->bm_bitmap = 0; in blst_next_leaf_alloc()
669 blst_leaf_alloc(blmeta_t *scan, daddr_t blk, int *count, int maxcount) in blst_leaf_alloc() argument
676 mask = ~scan->bm_bitmap; in blst_leaf_alloc()
697 scan->bm_bighint = bighint; in blst_leaf_alloc()
708 scan->bm_bighint = bighint; in blst_leaf_alloc()
737 scan->bm_bighint = bighint; in blst_leaf_alloc()
742 hi = blst_next_leaf_alloc(scan, blk, count1, maxcount); in blst_leaf_alloc()
754 scan->bm_bighint = bighint; in blst_leaf_alloc()
758 scan->bm_bitmap &= mask; in blst_leaf_alloc()
771 blst_meta_alloc(blmeta_t *scan, daddr_t cursor, int *count, in blst_meta_alloc() argument
780 return (blst_leaf_alloc(scan, cursor, count, maxcount)); in blst_meta_alloc()
784 mask = scan->bm_bitmap; in blst_meta_alloc()
808 if (*count <= scan[i].bm_bighint) { in blst_meta_alloc()
812 r = blst_meta_alloc(&scan[i], cursor + digit * radix, in blst_meta_alloc()
815 if (scan[i].bm_bitmap == 0) in blst_meta_alloc()
816 scan->bm_bitmap ^= bitrange(digit, 1); in blst_meta_alloc()
828 scan[i].bm_bighint == BLIST_MAX_ALLOC)) in blst_meta_alloc()
829 scan->bm_bighint = *count - 1; in blst_meta_alloc()
839 blst_leaf_free(blmeta_t *scan, daddr_t blk, int count) in blst_leaf_free() argument
850 KASSERT((scan->bm_bitmap & mask) == 0, in blst_leaf_free()
852 (uintmax_t)blk, count, (uintmax_t)scan->bm_bitmap & mask)); in blst_leaf_free()
853 scan->bm_bitmap |= mask; in blst_leaf_free()
867 blst_meta_free(blmeta_t *scan, daddr_t freeBlk, daddr_t count, u_daddr_t radix) in blst_meta_free() argument
878 scan->bm_bighint = BLIST_MAX_ALLOC; in blst_meta_free()
881 return (blst_leaf_free(scan, freeBlk, count)); in blst_meta_free()
895 scan->bm_bitmap |= bitrange(digit, endDigit - digit); in blst_meta_free()
899 blst_meta_free(&scan[i], freeBlk, count, radix / BLIST_RADIX); in blst_meta_free()
911 blst_copy(blmeta_t *scan, daddr_t blk, daddr_t radix, blist_t dest, in blst_copy() argument
921 u_daddr_t v = scan->bm_bitmap; in blst_copy()
940 if (scan->bm_bitmap == 0) { in blst_copy()
954 blst_copy(&scan[i], blk - radix, in blst_copy()
967 blst_leaf_fill(blmeta_t *scan, daddr_t blk, int count) in blst_leaf_fill() argument
975 nblks = bitcount64(scan->bm_bitmap & mask); in blst_leaf_fill()
977 scan->bm_bitmap &= ~mask; in blst_leaf_fill()
990 blst_meta_fill(blmeta_t *scan, daddr_t allocBlk, daddr_t count, u_daddr_t radix) in blst_meta_fill() argument
996 return (blst_leaf_fill(scan, allocBlk, count)); in blst_meta_fill()
1014 nblks += blst_meta_fill(&scan[i], allocBlk, count, in blst_meta_fill()
1016 if (scan[i].bm_bitmap == 0) in blst_meta_fill()
1017 scan->bm_bitmap &= ~((u_daddr_t)1 << digit); in blst_meta_fill()
1026 blst_radix_print(blmeta_t *scan, daddr_t blk, daddr_t radix, int tab) in blst_radix_print() argument
1038 (long long)scan->bm_bitmap, in blst_radix_print()
1039 (long long)scan->bm_bighint in blst_radix_print()
1050 (long long)scan->bm_bitmap, in blst_radix_print()
1051 (long long)scan->bm_bighint in blst_radix_print()
1057 mask = scan->bm_bitmap; in blst_radix_print()
1061 blst_radix_print(&scan[1 + digit * skip], blk + digit * radix, in blst_radix_print()