Lines Matching refs:count
131 int *count, int maxcount);
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,
138 blist_t dest, daddr_t count);
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,
178 bitrange(int n, int count) in bitrange() argument
182 ((u_daddr_t)-1 >> (BLIST_RADIX - (n + count)))); in bitrange()
263 blist_alloc(blist_t bl, int *count, int maxcount) in blist_alloc() argument
267 KASSERT(*count <= maxcount, in blist_alloc()
268 ("invalid parameters %d > %d", *count, maxcount)); in blist_alloc()
269 KASSERT(*count <= BLIST_MAX_ALLOC, in blist_alloc()
270 ("minimum allocation too large: %d", *count)); in blist_alloc()
279 blk = blst_meta_alloc(bl->bl_root, cursor, count, maxcount, in blist_alloc()
282 bl->bl_avail -= *count; in blist_alloc()
283 bl->bl_cursor = blk + *count; in blist_alloc()
308 blist_free(blist_t bl, daddr_t blkno, daddr_t count) in blist_free() argument
311 KASSERT(blkno >= 0 && blkno + count <= bl->bl_blocks, in blist_free()
313 (uintmax_t)blkno, (int)count, (uintmax_t)bl->bl_blocks)); in blist_free()
314 blst_meta_free(bl->bl_root, blkno, count, bl->bl_radix); in blist_free()
315 bl->bl_avail += count; in blist_free()
325 blist_fill(blist_t bl, daddr_t blkno, daddr_t count) in blist_fill() argument
329 KASSERT(blkno >= 0 && blkno + count <= bl->bl_blocks, in blist_fill()
331 (uintmax_t)blkno, (int)count, (uintmax_t)bl->bl_blocks)); in blist_fill()
332 filled = blst_meta_fill(bl->bl_root, blkno, count, bl->bl_radix); in blist_fill()
345 blist_resize(blist_t *pbl, daddr_t count, int freenew, int flags) in blist_resize() argument
347 blist_t newbl = blist_create(count, flags); in blist_resize()
351 if (count > save->bl_blocks) in blist_resize()
352 count = save->bl_blocks; in blist_resize()
353 blst_copy(save->bl_root, 0, save->bl_radix, newbl, count); in blist_resize()
358 if (freenew && count < newbl->bl_blocks) { in blist_resize()
359 blist_free(newbl, count, newbl->bl_blocks - count); in blist_resize()
587 blst_next_leaf_alloc(blmeta_t *scan, daddr_t start, int count, int maxcount) in blst_next_leaf_alloc() argument
608 if (avail < count || avail == 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
674 count1 = *count - 1; in blst_leaf_alloc()
729 *count = hi - lo; in blst_leaf_alloc()
730 mask = ~bitrange(lo, *count); in blst_leaf_alloc()
734 *count = maxcount; in blst_leaf_alloc()
735 mask = ~bitrange(lo, *count); in blst_leaf_alloc()
740 count1 = *count - (BLIST_RADIX - lo); in blst_leaf_alloc()
753 *count = BLIST_RADIX - lo + hi; 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()
808 if (*count <= scan[i].bm_bighint) { in blst_meta_alloc()
813 count, maxcount, radix / BLIST_RADIX); 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
849 mask = bitrange(blk & BLIST_MASK, count); in blst_leaf_free()
852 (uintmax_t)blk, count, (uintmax_t)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
881 return (blst_leaf_free(scan, freeBlk, count)); in blst_meta_free()
883 endBlk = freeBlk + count; in blst_meta_free()
898 count = ummin(blk, endBlk) - freeBlk; in blst_meta_free()
899 blst_meta_free(&scan[i], freeBlk, count, radix / BLIST_RADIX); in blst_meta_free()
912 daddr_t count) in blst_copy() argument
924 blist_free(dest, blk, count); in blst_copy()
928 for (i = 0; i < count; ++i) { in blst_copy()
947 endBlk = blk + count; in blst_copy()
951 count = radix; in blst_copy()
953 count -= blk - endBlk; in blst_copy()
955 radix / BLIST_RADIX, dest, count); in blst_copy()
967 blst_leaf_fill(blmeta_t *scan, daddr_t blk, int count) in blst_leaf_fill() argument
972 mask = bitrange(blk & BLIST_MASK, count); 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()
998 endBlk = allocBlk + count; in blst_meta_fill()
1013 count = ummin(blk, endBlk) - allocBlk; in blst_meta_fill()
1014 nblks += blst_meta_fill(&scan[i], allocBlk, count, in blst_meta_fill()
1104 int count = 0, maxcount = 0; in main() local
1113 if (sscanf(buf + 1, "%d", &count) == 1) { in main()
1114 blist_resize(&bl, count, 1, M_WAITOK); in main()
1129 if (sscanf(buf + 1, "%d%d", &count, &maxcount) == 2) { in main()
1130 daddr_t blk = blist_alloc(bl, &count, maxcount); in main()
1132 (long long)blk, count); in main()
1138 if (sscanf(buf + 1, "%llx %d", &da, &count) == 2) { in main()
1139 blist_free(bl, da, count); in main()
1145 if (sscanf(buf + 1, "%llx %d", &da, &count) == 2) { in main()
1147 (intmax_t)blist_fill(bl, da, count)); in main()