void dump_bitmap(ext2fs_generic_bitmap bmap, unsigned int start, unsigned num) { unsigned char *buf; errcode_t retval; int i, len = (num - start + 7) / 8; buf = malloc(len); if (!buf) { com_err("dump_bitmap", 0, "couldn't allocate buffer"); return; } memset(buf, 0, len); retval = ext2fs_get_generic_bmap_range(bmap, (__u64) start, num, buf); if (retval) { com_err("dump_bitmap", retval, "while calling ext2fs_generic_bmap_range"); free(buf); return; } for (i=0; i < len; i++) printf("%02x", buf[i]); printf("\n"); printf("bits set: %u\n", ext2fs_bitcount(buf, len)); free(buf); }
errcode_t ext2fs_get_block_bitmap_range2(ext2fs_block_bitmap bmap, blk64_t start, size_t num, void *out) { return (ext2fs_get_generic_bmap_range(bmap, start, num, out)); }
errcode_t ext2fs_get_inode_bitmap_range2(ext2fs_inode_bitmap bmap, __u64 start, size_t num, void *out) { return (ext2fs_get_generic_bmap_range(bmap, start, num, out)); }