Lines Matching refs:count

82 static daddr_t blst_leaf_alloc(blmeta_t *scan, daddr_t blk, int count);
84 daddr_t count, daddr_t radix, int skip);
85 static void blst_leaf_free(blmeta_t *scan, daddr_t relblk, int count);
86 static void blst_meta_free(blmeta_t *scan, daddr_t freeBlk, daddr_t count,
89 daddr_t skip, blist_t dest, daddr_t count);
91 int skip, daddr_t count);
158 blist_alloc(blist_t bl, daddr_t count) in blist_alloc() argument
164 blk = blst_leaf_alloc(bl->bl_root, 0, count); in blist_alloc()
166 blk = blst_meta_alloc(bl->bl_root, 0, count, in blist_alloc()
170 bl->bl_free -= count; in blist_alloc()
183 blist_free(blist_t bl, daddr_t blkno, daddr_t count) in blist_free() argument
187 blst_leaf_free(bl->bl_root, blkno, count); in blist_free()
189 blst_meta_free(bl->bl_root, blkno, count, in blist_free()
192 bl->bl_free += count; in blist_free()
205 blist_resize(blist_t *pbl, daddr_t count, int freenew) in blist_resize() argument
207 blist_t newbl = blist_create(count); in blist_resize()
211 if (count > save->bl_blocks) { in blist_resize()
212 count = save->bl_blocks; in blist_resize()
214 blst_copy(save->bl_root, 0, save->bl_radix, save->bl_skip, newbl, count); in blist_resize()
219 if (freenew && count < newbl->bl_blocks) { in blist_resize()
220 blist_free(newbl, count, newbl->bl_blocks - count); in blist_resize()
261 blst_leaf_alloc(blmeta_t *scan, daddr_t blk, int count) argument
274 if (count == 1) {
296 if (count <= BLIST_BMAP_RADIX) {
298 if (count <= (int)BLIST_BMAP_RADIX) {
308 int n = BLIST_BMAP_RADIX - count;
324 scan->bm_bighint = count - 1;
338 blst_meta_alloc(blmeta_t *scan, daddr_t blk, daddr_t count, daddr_t radix, argument
348 scan->bm_bighint = count;
376 if (count <= scan[i].bm_bighint) {
382 r = blst_leaf_alloc(&scan[i], blk, count);
384 r = blst_meta_alloc(&scan[i], blk, count,
388 scan->u.bmu_avail -= count;
399 } else if (count > radix) {
412 if (scan->bm_bighint >= count) {
413 scan->bm_bighint = count - 1;
424 blst_leaf_free(blmeta_t *scan, daddr_t blk, int count) argument
438 ((u_daddr_t)-1 >> (BLIST_BMAP_RADIX - count - n));
466 blst_meta_free(blmeta_t *scan, daddr_t freeBlk, daddr_t count, daddr_t radix, argument
474 freeBlk, count,
484 scan->u.bmu_avail = count;
485 scan->bm_bighint = count;
487 if (count != radix) {
502 scan->u.bmu_avail += count;
514 panic("blst_meta_free: freeing already free blocks (%d) %d/%d", count, scan->u.bmu_avail, radix);
527 while (i <= skip && blk < freeBlk + count) {
531 if (v > count) {
532 v = count;
548 count -= v;
564 daddr_t skip, blist_t dest, daddr_t count) argument
577 blist_free(dest, blk, count);
582 for (i = 0; i < BLIST_BMAP_RADIX && i < count; ++i) {
590 for (j = 0; j < (int)BLIST_BMAP_RADIX && j < count; ++j) {
614 if (count < radix) {
615 blist_free(dest, blk, count);
625 for (i = 1; count && i <= skip; i += next_skip) {
630 if (count >= radix) {
639 count -= radix;
641 if (count) {
648 count
651 count = 0;
667 blst_radix_init(blmeta_t *scan, daddr_t radix, int skip, daddr_t count) argument
700 if (count >= radix) {
710 count -= radix;
711 } else if (count > 0) {
719 count
721 count = 0;
844 daddr_t count = 0; local
854 if (sscanf(buf + 1, "%d", &count) == 1) {
855 blist_resize(&bl, count, 1);
863 if (sscanf(buf + 1, "%d", &count) == 1) {
864 daddr_t blk = blist_alloc(bl, count);
871 if (sscanf(buf + 1, "%x %d", &da, &count) == 2) {
872 blist_free(bl, da, count);