Lines Matching refs:bl

106 	blist_t bl;  in blist_create()  local
120 bl = kalloc_type(struct blist, Z_ZERO | Z_WAITOK); in blist_create()
122 bl->bl_blocks = blocks; in blist_create()
123 bl->bl_radix = radix; in blist_create()
124 bl->bl_skip = skip; in blist_create()
125 bl->bl_rootblks = 1 + in blist_create()
126 blst_radix_init(NULL, bl->bl_radix, bl->bl_skip, blocks); in blist_create()
127 bl->bl_root = (blmeta_t *)kalloc_data(sizeof(blmeta_t) * bl->bl_rootblks, Z_WAITOK); in blist_create()
133 bl->bl_blocks, in blist_create()
134 bl->bl_blocks * 4 / 1024, in blist_create()
135 (bl->bl_rootblks * sizeof(blmeta_t) + 1023) / 1024 in blist_create()
137 printf("BLIST raw radix tree contains %d records\n", bl->bl_rootblks); in blist_create()
139 blst_radix_init(bl->bl_root, bl->bl_radix, bl->bl_skip, blocks); in blist_create()
141 return bl; in blist_create()
145 blist_destroy(blist_t bl) in blist_destroy() argument
147 kfree_data(bl->bl_root, sizeof(blmeta_t) * bl->bl_rootblks); in blist_destroy()
148 kfree_type(struct blist, bl); in blist_destroy()
158 blist_alloc(blist_t bl, daddr_t count) in blist_alloc() argument
162 if (bl) { in blist_alloc()
163 if (bl->bl_radix == BLIST_BMAP_RADIX) { in blist_alloc()
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()
167 bl->bl_radix, bl->bl_skip); 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
185 if (bl) { in blist_free()
186 if (bl->bl_radix == BLIST_BMAP_RADIX) { in blist_free()
187 blst_leaf_free(bl->bl_root, blkno, count); in blist_free()
189 blst_meta_free(bl->bl_root, blkno, count, in blist_free()
190 bl->bl_radix, bl->bl_skip, 0); in blist_free()
192 bl->bl_free += count; in blist_free()
232 blist_print(blist_t bl) in blist_print() argument
235 blst_radix_print(bl->bl_root, 0, bl->bl_radix, bl->bl_skip, 4); in blist_print()
826 blist_t bl; local
838 bl = blist_create(size);
839 blist_free(bl, 0, size);
847 printf("%d/%d/%d> ", bl->bl_free, size, bl->bl_radix);
855 blist_resize(&bl, count, 1);
860 blist_print(bl);
864 daddr_t blk = blist_alloc(bl, count);
872 blist_free(bl, da, count);