blist_blkno_t
if (scan[i].bm_bighint == (blist_blkno_t)-1) {
blist_blkno_t size = 1024;
blist_blkno_t blk = blist_alloc(bl, count);
blist_blkno_t bmu_avail; /* space available under us */
blist_blkno_t bm_bighint; /* biggest contiguous block hint*/
blist_blkno_t bl_blocks; /* area of coverage */
blist_blkno_t bl_radix; /* coverage radix */
blist_blkno_t bl_skip; /* starting skip */
blist_blkno_t bl_free; /* number of free blocks */
blist_blkno_t bl_rootblks; /* blks allocated for tree */
static blist_blkno_t blst_leaf_alloc(blmeta_t *scan, blist_blkno_t blk,
static blist_blkno_t blst_meta_alloc(blmeta_t *scan, blist_blkno_t blk,
blist_blkno_t count, blist_blkno_t radix, blist_blkno_t skip);
static void blst_leaf_free(blmeta_t *scan, blist_blkno_t relblk, int count);
static void blst_meta_free(blmeta_t *scan, blist_blkno_t freeBlk,
blist_blkno_t count, blist_blkno_t radix, blist_blkno_t skip,
blist_blkno_t blk);
static void blst_copy(blmeta_t *scan, blist_blkno_t blk, blist_blkno_t radix,
blist_blkno_t skip, blist_t dest, blist_blkno_t count);
static int blst_leaf_fill(blmeta_t *scan, blist_blkno_t blk, int count);
static blist_blkno_t blst_meta_fill(blmeta_t *scan, blist_blkno_t allocBlk,
blist_blkno_t count, blist_blkno_t radix, blist_blkno_t skip,
blist_blkno_t blk);
static blist_blkno_t blst_radix_init(blmeta_t *scan, blist_blkno_t radix,
blist_blkno_t skip, blist_blkno_t count);
static void blst_radix_print(blmeta_t *scan, blist_blkno_t blk,
blist_blkno_t radix, blist_blkno_t skip, int tab);
blist_create(blist_blkno_t blocks)
blist_blkno_t radix;
blist_blkno_t skip = 0;
blist_blkno_t
blist_alloc(blist_t bl, blist_blkno_t count)
blist_blkno_t blk = BLIST_NONE;
blist_free(blist_t bl, blist_blkno_t blkno, blist_blkno_t count)
blist_blkno_t
blist_fill(blist_t bl, blist_blkno_t blkno, blist_blkno_t count)
blist_blkno_t filled;
blist_resize(blist_t *pbl, blist_blkno_t count, int freenew)
static blist_blkno_t
blist_blkno_t blk,
static blist_blkno_t
blist_blkno_t blk,
blist_blkno_t count,
blist_blkno_t radix,
blist_blkno_t skip
blist_blkno_t i;
blist_blkno_t next_skip = (skip / BLIST_META_RADIX);
if (scan[i].bm_bighint == (blist_blkno_t)-1)
if (scan[i].bm_bighint == (blist_blkno_t)-1) {
blist_blkno_t r;
blist_blkno_t blk,
blist_blkno_t freeBlk,
blist_blkno_t count,
blist_blkno_t radix,
blist_blkno_t skip,
blist_blkno_t blk
blist_blkno_t i;
blist_blkno_t next_skip = (skip / BLIST_META_RADIX);
if (scan[i].bm_bighint == (blist_blkno_t)-1)
blist_blkno_t v;
if (scan->bm_bighint == (blist_blkno_t)-1)
blist_blkno_t blk,
blist_blkno_t radix,
blist_blkno_t skip,
blist_blkno_t count
blist_blkno_t next_skip;
blist_blkno_t i;
if (scan[i].bm_bighint == (blist_blkno_t)-1)
blst_leaf_fill(blmeta_t *scan, blist_blkno_t blk, int count)
static blist_blkno_t
blist_blkno_t allocBlk,
blist_blkno_t count,
blist_blkno_t radix,
blist_blkno_t skip,
blist_blkno_t blk
blist_blkno_t i;
blist_blkno_t next_skip = (skip / BLIST_META_RADIX);
blist_blkno_t nblks = 0;
if (scan[i].bm_bighint == (blist_blkno_t)-1)
blist_blkno_t v;
if (scan->bm_bighint == (blist_blkno_t)-1)
static blist_blkno_t
blst_radix_init(blmeta_t *scan, blist_blkno_t radix, blist_blkno_t skip,
blist_blkno_t count)
blist_blkno_t i;
blist_blkno_t next_skip;
blist_blkno_t memindex = 0;
scan[i].bm_bighint = (blist_blkno_t)-1;
blst_radix_print(blmeta_t *scan, blist_blkno_t blk, blist_blkno_t radix,
blist_blkno_t skip, int tab)
blist_blkno_t i;
blist_blkno_t next_skip;
#define BLIST_NONE ((blist_blkno_t)-1)
extern blist_t blist_create(blist_blkno_t blocks);
extern blist_blkno_t blist_alloc(blist_t blist, blist_blkno_t count);
extern void blist_free(blist_t blist, blist_blkno_t blkno, blist_blkno_t count);
extern blist_blkno_t blist_fill(blist_t bl, blist_blkno_t blkno,
blist_blkno_t count);
extern void blist_resize(blist_t *pblist, blist_blkno_t count, int freenew);