bitmaps.c revision 8f82ef9860339039b54a324be137fbc09b762358
1c3aae25116e66c177579b0b79182b09340b19753Chris Lattner/* 2ea61c358720aa6c7a159d51658b34276316aa841Misha Brukman * bitmaps.c --- routines to read, write, and manipulate the inode and 36fbcc26f1460eaee4e0eb8b426fc1ff0c7af11beJohn Criswell * block bitmaps. 46fbcc26f1460eaee4e0eb8b426fc1ff0c7af11beJohn Criswell * 57ed47a13356daed2a34cd2209a31f92552e3bdd8Chris Lattner * Copyright (C) 1993, 1994, 1995, 1996 Theodore Ts'o. 67ed47a13356daed2a34cd2209a31f92552e3bdd8Chris Lattner * 7ea61c358720aa6c7a159d51658b34276316aa841Misha Brukman * %Begin-Header% 86fbcc26f1460eaee4e0eb8b426fc1ff0c7af11beJohn Criswell * This file may be redistributed under the terms of the GNU Public 9ea61c358720aa6c7a159d51658b34276316aa841Misha Brukman * License. 10c3aae25116e66c177579b0b79182b09340b19753Chris Lattner * %End-Header% 11c3aae25116e66c177579b0b79182b09340b19753Chris Lattner */ 12ea61c358720aa6c7a159d51658b34276316aa841Misha Brukman 13cacf462915344c2af25eef1af1f3ee2c7280ff56Chris Lattner#include <stdio.h> 14cacf462915344c2af25eef1af1f3ee2c7280ff56Chris Lattner#include <string.h> 15cacf462915344c2af25eef1af1f3ee2c7280ff56Chris Lattner#if HAVE_UNISTD_H 16cacf462915344c2af25eef1af1f3ee2c7280ff56Chris Lattner#include <unistd.h> 17cacf462915344c2af25eef1af1f3ee2c7280ff56Chris Lattner#endif 18fed90b6d097d50881afb45e4d79f430db66dd741Dan Gohman#include <fcntl.h> 19c5e7e8d87d4a3b10edd5ac93ba1f3cdb4d1b449aDavid Greene#include <time.h> 20583bd47f777fe3eb8305872fa0eadab31e833dffJim Laskey#if HAVE_SYS_STAT_H 214b84086e89d86fb16f562166d9fea8df37db6be7Dan Gohman#include <sys/stat.h> 22583bd47f777fe3eb8305872fa0eadab31e833dffJim Laskey#endif 23b80e2be8894db9f843f32ebaffb9b7fd6b57d206Chris Lattner#if HAVE_SYS_TYPES_H 24acaf09dbe4a6781163857db1321bbd5795e7d410Dan Gohman#include <sys/types.h> 255892d47a625638a90afeb31dd4f6f80a2f9bacdeChris Lattner#endif 26322812e603705e1c2037313633e72f689524b163Evan Cheng 27eb19e40efbd3cae80c908a30cdf4d33450733c45Chris Lattner#include "ext2_fs.h" 28d0fde30ce850b78371fd1386338350591f9ff494Brian Gaeke#include "ext2fs.h" 29d0fde30ce850b78371fd1386338350591f9ff494Brian Gaeke#include "ext2fsP.h" 30fed90b6d097d50881afb45e4d79f430db66dd741Dan Gohman 31fed90b6d097d50881afb45e4d79f430db66dd741Dan Gohmanvoid ext2fs_free_inode_bitmap(ext2fs_inode_bitmap bitmap) 32fed90b6d097d50881afb45e4d79f430db66dd741Dan Gohman{ 33fed90b6d097d50881afb45e4d79f430db66dd741Dan Gohman ext2fs_free_generic_bmap(bitmap); 34fed90b6d097d50881afb45e4d79f430db66dd741Dan Gohman} 356e7a1617ac4a34792d9097b8d3644b72f57a45f7Devang Patel 36fed90b6d097d50881afb45e4d79f430db66dd741Dan Gohmanvoid ext2fs_free_block_bitmap(ext2fs_block_bitmap bitmap) 37fed90b6d097d50881afb45e4d79f430db66dd741Dan Gohman{ 38fed90b6d097d50881afb45e4d79f430db66dd741Dan Gohman ext2fs_free_generic_bmap(bitmap); 39fed90b6d097d50881afb45e4d79f430db66dd741Dan Gohman} 408e4018e2de52c534405d7155c7009d0b35afb861Cedric Venet 418e4018e2de52c534405d7155c7009d0b35afb861Cedric Veneterrcode_t ext2fs_copy_bitmap(ext2fs_generic_bitmap src, 42c7f6b8c5d40e17bf43fd3a1549d7d89c9da735e1Gabor Greif ext2fs_generic_bitmap *dest) 43fed90b6d097d50881afb45e4d79f430db66dd741Dan Gohman{ 44fed90b6d097d50881afb45e4d79f430db66dd741Dan Gohman return (ext2fs_copy_generic_bmap(src, dest)); 45c7f6b8c5d40e17bf43fd3a1549d7d89c9da735e1Gabor Greif} 46fed90b6d097d50881afb45e4d79f430db66dd741Dan Gohmanvoid ext2fs_set_bitmap_padding(ext2fs_generic_bitmap map) 47fed90b6d097d50881afb45e4d79f430db66dd741Dan Gohman{ 48fed90b6d097d50881afb45e4d79f430db66dd741Dan Gohman ext2fs_set_generic_bmap_padding(map); 49c23b8719ef9d6b1220e854b37d40e9e1c48a82bcGabor Greif} 50c23b8719ef9d6b1220e854b37d40e9e1c48a82bcGabor Greif 51c23b8719ef9d6b1220e854b37d40e9e1c48a82bcGabor Greiferrcode_t ext2fs_allocate_inode_bitmap(ext2_filsys fs, 52fed90b6d097d50881afb45e4d79f430db66dd741Dan Gohman const char *descr, 53fed90b6d097d50881afb45e4d79f430db66dd741Dan Gohman ext2fs_inode_bitmap *ret) 54fed90b6d097d50881afb45e4d79f430db66dd741Dan Gohman{ 55fed90b6d097d50881afb45e4d79f430db66dd741Dan Gohman __u64 start, end, real_end; 56fed90b6d097d50881afb45e4d79f430db66dd741Dan Gohman 57fed90b6d097d50881afb45e4d79f430db66dd741Dan Gohman EXT2_CHECK_MAGIC(fs, EXT2_ET_MAGIC_EXT2FS_FILSYS); 58c3aae25116e66c177579b0b79182b09340b19753Chris Lattner 5925cf2275ff7de3de3bc0e508abaf457413d74725Duncan Sands fs->write_bitmaps = ext2fs_write_bitmaps; 6025cf2275ff7de3de3bc0e508abaf457413d74725Duncan Sands 6125cf2275ff7de3de3bc0e508abaf457413d74725Duncan Sands start = 1; 6225cf2275ff7de3de3bc0e508abaf457413d74725Duncan Sands end = fs->super->s_inodes_count; 6325cf2275ff7de3de3bc0e508abaf457413d74725Duncan Sands real_end = (EXT2_INODES_PER_GROUP(fs->super) * fs->group_desc_count); 6425cf2275ff7de3de3bc0e508abaf457413d74725Duncan Sands 65c3aae25116e66c177579b0b79182b09340b19753Chris Lattner /* Are we permitted to use new-style bitmaps? */ 66c3aae25116e66c177579b0b79182b09340b19753Chris Lattner if (fs->flags & EXT2_FLAG_64BITS) 67c3aae25116e66c177579b0b79182b09340b19753Chris Lattner return (ext2fs_alloc_generic_bmap(fs, 68c3aae25116e66c177579b0b79182b09340b19753Chris Lattner EXT2_ET_MAGIC_INODE_BITMAP64, 69c3aae25116e66c177579b0b79182b09340b19753Chris Lattner EXT2FS_BMAP64_BITARRAY, 70c3aae25116e66c177579b0b79182b09340b19753Chris Lattner start, end, real_end, descr, ret)); 71c3aae25116e66c177579b0b79182b09340b19753Chris Lattner 72c3aae25116e66c177579b0b79182b09340b19753Chris Lattner /* Otherwise, check to see if the file system is small enough 73c3aae25116e66c177579b0b79182b09340b19753Chris Lattner * to use old-style 32-bit bitmaps */ 74c3aae25116e66c177579b0b79182b09340b19753Chris Lattner if ((end > ~0U) || (real_end > ~0U)) 75cacf462915344c2af25eef1af1f3ee2c7280ff56Chris Lattner return EXT2_ET_CANT_USE_LEGACY_BITMAPS; 76cacf462915344c2af25eef1af1f3ee2c7280ff56Chris Lattner 77063287a76b5d1486f498fcf674a26d1155471a3fChris Lattner return (ext2fs_make_generic_bitmap(EXT2_ET_MAGIC_INODE_BITMAP, fs, 787c3234c6be0dc0bdf4b5d6f848cd728a77f349d7Dan Gohman start, end, real_end, 79ead0d88ad7659dabd66cc3149af97d98256fca84Chris Lattner descr, 0, 8044c3b9fdd416c79f4b67cde1aecfced5921efd81Jim Laskey (ext2fs_generic_bitmap *) ret)); 816e7a1617ac4a34792d9097b8d3644b72f57a45f7Devang Patel} 82cacf462915344c2af25eef1af1f3ee2c7280ff56Chris Lattner 83f350b277f32d7d47f86c0e54f4aec4d470500618Dan Gohmanerrcode_t ext2fs_allocate_block_bitmap(ext2_filsys fs, 84f350b277f32d7d47f86c0e54f4aec4d470500618Dan Gohman const char *descr, 85f350b277f32d7d47f86c0e54f4aec4d470500618Dan Gohman ext2fs_block_bitmap *ret) 86f350b277f32d7d47f86c0e54f4aec4d470500618Dan Gohman{ 87f350b277f32d7d47f86c0e54f4aec4d470500618Dan Gohman __u64 start, end, real_end; 88cacf462915344c2af25eef1af1f3ee2c7280ff56Chris Lattner 89213a16c637926bfc38ba373d3aba6778e181e3ecChris Lattner EXT2_CHECK_MAGIC(fs, EXT2_ET_MAGIC_EXT2FS_FILSYS); 90fed90b6d097d50881afb45e4d79f430db66dd741Dan Gohman 91fed90b6d097d50881afb45e4d79f430db66dd741Dan Gohman fs->write_bitmaps = ext2fs_write_bitmaps; 92f350b277f32d7d47f86c0e54f4aec4d470500618Dan Gohman 93f350b277f32d7d47f86c0e54f4aec4d470500618Dan Gohman start = fs->super->s_first_data_block; 94f350b277f32d7d47f86c0e54f4aec4d470500618Dan Gohman end = ext2fs_blocks_count(fs->super)-1; 95f350b277f32d7d47f86c0e54f4aec4d470500618Dan Gohman real_end = (EXT2_BLOCKS_PER_GROUP(fs->super) 96f350b277f32d7d47f86c0e54f4aec4d470500618Dan Gohman * fs->group_desc_count)-1 + start; 97f350b277f32d7d47f86c0e54f4aec4d470500618Dan Gohman 98f350b277f32d7d47f86c0e54f4aec4d470500618Dan Gohman if (fs->flags & EXT2_FLAG_64BITS) 99f350b277f32d7d47f86c0e54f4aec4d470500618Dan Gohman return (ext2fs_alloc_generic_bmap(fs, 100691ef2ba066dda14ae4ac0ad645054fbc967785aAndrew Lenharth EXT2_ET_MAGIC_BLOCK_BITMAP64, 101213a16c637926bfc38ba373d3aba6778e181e3ecChris Lattner EXT2FS_BMAP64_BITARRAY, 102213a16c637926bfc38ba373d3aba6778e181e3ecChris Lattner start, end, real_end, descr, ret)); 103583bd47f777fe3eb8305872fa0eadab31e833dffJim Laskey 104213a16c637926bfc38ba373d3aba6778e181e3ecChris Lattner if ((end > ~0U) || (real_end > ~0U)) 105f350b277f32d7d47f86c0e54f4aec4d470500618Dan Gohman return EXT2_ET_CANT_USE_LEGACY_BITMAPS; 106f350b277f32d7d47f86c0e54f4aec4d470500618Dan Gohman 107f350b277f32d7d47f86c0e54f4aec4d470500618Dan Gohman return (ext2fs_make_generic_bitmap(EXT2_ET_MAGIC_BLOCK_BITMAP, fs, 108e8be6c63915e0389f1eef6b53c64300d13b2ce99Dan Gohman start, end, real_end, 109e8be6c63915e0389f1eef6b53c64300d13b2ce99Dan Gohman descr, 0, 110e8be6c63915e0389f1eef6b53c64300d13b2ce99Dan Gohman (ext2fs_generic_bitmap *) ret)); 111e8be6c63915e0389f1eef6b53c64300d13b2ce99Dan Gohman} 112d038e04188047eca4749d025ef1f05f7ae660bcaDuncan Sands 113d038e04188047eca4749d025ef1f05f7ae660bcaDuncan Sandserrcode_t ext2fs_fudge_inode_bitmap_end(ext2fs_inode_bitmap bitmap, 114d038e04188047eca4749d025ef1f05f7ae660bcaDuncan Sands ext2_ino_t end, ext2_ino_t *oend) 115c5e7e8d87d4a3b10edd5ac93ba1f3cdb4d1b449aDavid Greene{ 116c5e7e8d87d4a3b10edd5ac93ba1f3cdb4d1b449aDavid Greene __u64 tmp_oend; 117c5e7e8d87d4a3b10edd5ac93ba1f3cdb4d1b449aDavid Greene int retval; 118c23b8719ef9d6b1220e854b37d40e9e1c48a82bcGabor Greif 119c23b8719ef9d6b1220e854b37d40e9e1c48a82bcGabor Greif retval = ext2fs_fudge_generic_bmap_end((ext2fs_generic_bitmap) bitmap, 120c5e7e8d87d4a3b10edd5ac93ba1f3cdb4d1b449aDavid Greene EXT2_ET_FUDGE_INODE_BITMAP_END, 121c5e7e8d87d4a3b10edd5ac93ba1f3cdb4d1b449aDavid Greene end, &tmp_oend); 122cacf462915344c2af25eef1af1f3ee2c7280ff56Chris Lattner if (oend) 1237c3234c6be0dc0bdf4b5d6f848cd728a77f349d7Dan Gohman *oend = tmp_oend; 124cacf462915344c2af25eef1af1f3ee2c7280ff56Chris Lattner return retval; 125cacf462915344c2af25eef1af1f3ee2c7280ff56Chris Lattner} 1267c3234c6be0dc0bdf4b5d6f848cd728a77f349d7Dan Gohman 1277c3234c6be0dc0bdf4b5d6f848cd728a77f349d7Dan Gohmanerrcode_t ext2fs_fudge_block_bitmap_end(ext2fs_block_bitmap bitmap, 1287c3234c6be0dc0bdf4b5d6f848cd728a77f349d7Dan Gohman blk_t end, blk_t *oend) 1296e7a1617ac4a34792d9097b8d3644b72f57a45f7Devang Patel{ 1307c3234c6be0dc0bdf4b5d6f848cd728a77f349d7Dan Gohman return (ext2fs_fudge_generic_bitmap_end(bitmap, 1317c3234c6be0dc0bdf4b5d6f848cd728a77f349d7Dan Gohman EXT2_ET_MAGIC_BLOCK_BITMAP, 132f350b277f32d7d47f86c0e54f4aec4d470500618Dan Gohman EXT2_ET_FUDGE_BLOCK_BITMAP_END, 133f350b277f32d7d47f86c0e54f4aec4d470500618Dan Gohman end, oend)); 1347c3234c6be0dc0bdf4b5d6f848cd728a77f349d7Dan Gohman} 135f350b277f32d7d47f86c0e54f4aec4d470500618Dan Gohman 1367c3234c6be0dc0bdf4b5d6f848cd728a77f349d7Dan Gohmanerrcode_t ext2fs_fudge_block_bitmap_end2(ext2fs_block_bitmap bitmap, 137063287a76b5d1486f498fcf674a26d1155471a3fChris Lattner blk64_t end, blk64_t *oend) 138063287a76b5d1486f498fcf674a26d1155471a3fChris Lattner{ 139ead0d88ad7659dabd66cc3149af97d98256fca84Chris Lattner return (ext2fs_fudge_generic_bmap_end(bitmap, 14044c3b9fdd416c79f4b67cde1aecfced5921efd81Jim Laskey EXT2_ET_FUDGE_BLOCK_BITMAP_END, 14183489bb7700c69b7a4a8da59365c42d3f5c8129bDevang Patel end, oend)); 142cacf462915344c2af25eef1af1f3ee2c7280ff56Chris Lattner} 143ec20402c90b605afeedbcf0e3aabe6f8054f23ddJim Laskey 1441080b9ee534579c67f7c99364cc6fa11edbcd919Chris Lattnervoid ext2fs_clear_inode_bitmap(ext2fs_inode_bitmap bitmap) 145462dc7f4960e5074ddf4769ec8b2ef1ba7a4d2c8Dan Gohman{ 1460b12aef49087b57d276ed760a83525d1e2602144Dan Gohman ext2fs_clear_generic_bmap(bitmap); 147fdc40a0a696c658d550d894ea03772e5f8af2c94Scott Michel} 148ec20402c90b605afeedbcf0e3aabe6f8054f23ddJim Laskey 149ec20402c90b605afeedbcf0e3aabe6f8054f23ddJim Laskeyvoid ext2fs_clear_block_bitmap(ext2fs_block_bitmap bitmap) 150ec20402c90b605afeedbcf0e3aabe6f8054f23ddJim Laskey{ 1511080b9ee534579c67f7c99364cc6fa11edbcd919Chris Lattner ext2fs_clear_generic_bmap(bitmap); 152ec20402c90b605afeedbcf0e3aabe6f8054f23ddJim Laskey} 153ec20402c90b605afeedbcf0e3aabe6f8054f23ddJim Laskey 154ec20402c90b605afeedbcf0e3aabe6f8054f23ddJim Laskeyerrcode_t ext2fs_resize_inode_bitmap(__u32 new_end, __u32 new_real_end, 155fdc40a0a696c658d550d894ea03772e5f8af2c94Scott Michel ext2fs_inode_bitmap bmap) 156ec20402c90b605afeedbcf0e3aabe6f8054f23ddJim Laskey{ 157ec20402c90b605afeedbcf0e3aabe6f8054f23ddJim Laskey return (ext2fs_resize_generic_bitmap(EXT2_ET_MAGIC_INODE_BITMAP, 158ec20402c90b605afeedbcf0e3aabe6f8054f23ddJim Laskey new_end, new_real_end, bmap)); 159fdc40a0a696c658d550d894ea03772e5f8af2c94Scott Michel} 160ec20402c90b605afeedbcf0e3aabe6f8054f23ddJim Laskey 161ec20402c90b605afeedbcf0e3aabe6f8054f23ddJim Laskeyerrcode_t ext2fs_resize_inode_bitmap2(__u64 new_end, __u64 new_real_end, 162ec20402c90b605afeedbcf0e3aabe6f8054f23ddJim Laskey ext2fs_inode_bitmap bmap) 163fdc40a0a696c658d550d894ea03772e5f8af2c94Scott Michel{ 164ec20402c90b605afeedbcf0e3aabe6f8054f23ddJim Laskey return (ext2fs_resize_generic_bmap(bmap, new_end, new_real_end)); 165ec20402c90b605afeedbcf0e3aabe6f8054f23ddJim Laskey} 166ec20402c90b605afeedbcf0e3aabe6f8054f23ddJim Laskey 1671080b9ee534579c67f7c99364cc6fa11edbcd919Chris Lattnererrcode_t ext2fs_resize_block_bitmap(__u32 new_end, __u32 new_real_end, 168c5e7e8d87d4a3b10edd5ac93ba1f3cdb4d1b449aDavid Greene ext2fs_block_bitmap bmap) 169c5e7e8d87d4a3b10edd5ac93ba1f3cdb4d1b449aDavid Greene{ 170c5e7e8d87d4a3b10edd5ac93ba1f3cdb4d1b449aDavid Greene return (ext2fs_resize_generic_bitmap(EXT2_ET_MAGIC_BLOCK_BITMAP, 171c5e7e8d87d4a3b10edd5ac93ba1f3cdb4d1b449aDavid Greene new_end, new_real_end, bmap)); 172fed90b6d097d50881afb45e4d79f430db66dd741Dan Gohman} 173b80e2be8894db9f843f32ebaffb9b7fd6b57d206Chris Lattner 174b80e2be8894db9f843f32ebaffb9b7fd6b57d206Chris Lattnererrcode_t ext2fs_resize_block_bitmap2(__u64 new_end, __u64 new_real_end, 175fed90b6d097d50881afb45e4d79f430db66dd741Dan Gohman ext2fs_block_bitmap bmap) 176b80e2be8894db9f843f32ebaffb9b7fd6b57d206Chris Lattner{ 177b80e2be8894db9f843f32ebaffb9b7fd6b57d206Chris Lattner return (ext2fs_resize_generic_bmap(bmap, new_end, new_real_end)); 178fed90b6d097d50881afb45e4d79f430db66dd741Dan Gohman} 1790e5f1306b059b62d7725f324e087efbc8e7a782dDan Gohman 1800e5f1306b059b62d7725f324e087efbc8e7a782dDan Gohmanerrcode_t ext2fs_compare_block_bitmap(ext2fs_block_bitmap bm1, 181fdc40a0a696c658d550d894ea03772e5f8af2c94Scott Michel ext2fs_block_bitmap bm2) 182c3aae25116e66c177579b0b79182b09340b19753Chris Lattner{ 183cacf462915344c2af25eef1af1f3ee2c7280ff56Chris Lattner return (ext2fs_compare_generic_bmap(EXT2_ET_NEQ_BLOCK_BITMAP, 184475871a144eb604ddaf37503397ba0941442e5fbDan Gohman bm1, bm2)); 185cacf462915344c2af25eef1af1f3ee2c7280ff56Chris Lattner} 186c3aae25116e66c177579b0b79182b09340b19753Chris Lattner 187c3aae25116e66c177579b0b79182b09340b19753Chris Lattnererrcode_t ext2fs_compare_inode_bitmap(ext2fs_inode_bitmap bm1, 188f350b277f32d7d47f86c0e54f4aec4d470500618Dan Gohman ext2fs_inode_bitmap bm2) 189f350b277f32d7d47f86c0e54f4aec4d470500618Dan Gohman{ 190f350b277f32d7d47f86c0e54f4aec4d470500618Dan Gohman return (ext2fs_compare_generic_bmap(EXT2_ET_NEQ_INODE_BITMAP, 191cacf462915344c2af25eef1af1f3ee2c7280ff56Chris Lattner bm1, bm2)); 192c3aae25116e66c177579b0b79182b09340b19753Chris Lattner} 193cacf462915344c2af25eef1af1f3ee2c7280ff56Chris Lattner 194475871a144eb604ddaf37503397ba0941442e5fbDan Gohmanerrcode_t ext2fs_set_inode_bitmap_range(ext2fs_inode_bitmap bmap, 195ba36cb5242eb02b12b277f82b9efe497f7da4d7fGabor Greif ext2_ino_t start, unsigned int num, 196acaf09dbe4a6781163857db1321bbd5795e7d410Dan Gohman void *in) 197acaf09dbe4a6781163857db1321bbd5795e7d410Dan Gohman{ 198acaf09dbe4a6781163857db1321bbd5795e7d410Dan Gohman return (ext2fs_set_generic_bitmap_range(bmap, 199cacf462915344c2af25eef1af1f3ee2c7280ff56Chris Lattner EXT2_ET_MAGIC_INODE_BITMAP, 2001d4d41411190dd9e62764e56713753d4155764ddNate Begeman start, num, in)); 20125cf2275ff7de3de3bc0e508abaf457413d74725Duncan Sands} 20225cf2275ff7de3de3bc0e508abaf457413d74725Duncan Sands 20325cf2275ff7de3de3bc0e508abaf457413d74725Duncan Sandserrcode_t ext2fs_set_inode_bitmap_range2(ext2fs_inode_bitmap bmap, 20425cf2275ff7de3de3bc0e508abaf457413d74725Duncan Sands __u64 start, size_t num, 20525cf2275ff7de3de3bc0e508abaf457413d74725Duncan Sands void *in) 20601d029b82cb08367d81aa10cdc94d05360466649Chris Lattner{ 20725cf2275ff7de3de3bc0e508abaf457413d74725Duncan Sands return (ext2fs_set_generic_bmap_range(bmap, start, num, in)); 20825cf2275ff7de3de3bc0e508abaf457413d74725Duncan Sands} 20901d029b82cb08367d81aa10cdc94d05360466649Chris Lattner 21001d029b82cb08367d81aa10cdc94d05360466649Chris Lattnererrcode_t ext2fs_get_inode_bitmap_range(ext2fs_inode_bitmap bmap, 21101d029b82cb08367d81aa10cdc94d05360466649Chris Lattner ext2_ino_t start, unsigned int num, 21225cf2275ff7de3de3bc0e508abaf457413d74725Duncan Sands void *out) 21325cf2275ff7de3de3bc0e508abaf457413d74725Duncan Sands{ 214c3aae25116e66c177579b0b79182b09340b19753Chris Lattner return (ext2fs_get_generic_bitmap_range(bmap, 215c3aae25116e66c177579b0b79182b09340b19753Chris Lattner EXT2_ET_MAGIC_INODE_BITMAP, 216c3aae25116e66c177579b0b79182b09340b19753Chris Lattner start, num, out)); 217cacf462915344c2af25eef1af1f3ee2c7280ff56Chris Lattner} 218c3aae25116e66c177579b0b79182b09340b19753Chris Lattner 219c3aae25116e66c177579b0b79182b09340b19753Chris Lattnererrcode_t ext2fs_get_inode_bitmap_range2(ext2fs_inode_bitmap bmap, 2205aa4977fba97e816b5735f0bc53f16a46b24de63Bill Wendling __u64 start, size_t num, 221c3aae25116e66c177579b0b79182b09340b19753Chris Lattner void *out) 222d1fc96499b7619356c7542200d32da898b79f7c1Chris Lattner{ 223190a418bf6b49a4ef1c1980229a2f0d516e8a2cdChris Lattner return (ext2fs_get_generic_bmap_range(bmap, start, num, out)); 224190a418bf6b49a4ef1c1980229a2f0d516e8a2cdChris Lattner} 225130a6471b90f66e99b1f9f42877fdf611c330ac6Evan Cheng 226130a6471b90f66e99b1f9f42877fdf611c330ac6Evan Chengerrcode_t ext2fs_set_block_bitmap_range(ext2fs_block_bitmap bmap, 227130a6471b90f66e99b1f9f42877fdf611c330ac6Evan Cheng blk_t start, unsigned int num, 228130a6471b90f66e99b1f9f42877fdf611c330ac6Evan Cheng void *in) 229130a6471b90f66e99b1f9f42877fdf611c330ac6Evan Cheng{ 23070046e920fa37989a041af663ada2b2b646e258fChris Lattner return (ext2fs_set_generic_bitmap_range(bmap, 23170046e920fa37989a041af663ada2b2b646e258fChris Lattner EXT2_ET_MAGIC_BLOCK_BITMAP, 23283ec4b6711980242ef3c55a4fa36b2d7a39c1bfbDuncan Sands start, num, in)); 23383ec4b6711980242ef3c55a4fa36b2d7a39c1bfbDuncan Sands} 23483ec4b6711980242ef3c55a4fa36b2d7a39c1bfbDuncan Sands 23513d6d446f62f908e8cf74acb3a4df65ea5f497ceBill Wendlingerrcode_t ext2fs_set_block_bitmap_range2(ext2fs_block_bitmap bmap, 23683ec4b6711980242ef3c55a4fa36b2d7a39c1bfbDuncan Sands blk64_t start, size_t num, 237fdc40a0a696c658d550d894ea03772e5f8af2c94Scott Michel void *in) 23870046e920fa37989a041af663ada2b2b646e258fChris Lattner{ 23983ec4b6711980242ef3c55a4fa36b2d7a39c1bfbDuncan Sands return (ext2fs_set_generic_bmap_range(bmap, start, num, in)); 24070046e920fa37989a041af663ada2b2b646e258fChris Lattner} 24170046e920fa37989a041af663ada2b2b646e258fChris Lattner 24283ec4b6711980242ef3c55a4fa36b2d7a39c1bfbDuncan Sandserrcode_t ext2fs_get_block_bitmap_range(ext2fs_block_bitmap bmap, 24370046e920fa37989a041af663ada2b2b646e258fChris Lattner blk_t start, unsigned int num, 24470046e920fa37989a041af663ada2b2b646e258fChris Lattner void *out) 24583ec4b6711980242ef3c55a4fa36b2d7a39c1bfbDuncan Sands{ 24670046e920fa37989a041af663ada2b2b646e258fChris Lattner return (ext2fs_get_generic_bitmap_range(bmap, 24770046e920fa37989a041af663ada2b2b646e258fChris Lattner EXT2_ET_MAGIC_BLOCK_BITMAP, 24813d6d446f62f908e8cf74acb3a4df65ea5f497ceBill Wendling start, num, out)); 24913d6d446f62f908e8cf74acb3a4df65ea5f497ceBill Wendling} 25013d6d446f62f908e8cf74acb3a4df65ea5f497ceBill Wendling 251f877b735ad4987f26cafcbaf22aa4c2199458b5dDan Gohmanerrcode_t ext2fs_get_block_bitmap_range2(ext2fs_block_bitmap bmap, 25213d57320bd212483463d4f8992d5787b29eda5dfBill Wendling blk64_t start, size_t num, 25370046e920fa37989a041af663ada2b2b646e258fChris Lattner void *out) 254fdc40a0a696c658d550d894ea03772e5f8af2c94Scott Michel{ 255fdc40a0a696c658d550d894ea03772e5f8af2c94Scott Michel return (ext2fs_get_generic_bmap_range(bmap, start, num, out)); 2561b1a49714ef26225a42199cf2930529f31868322Chris Lattner} 25770046e920fa37989a041af663ada2b2b646e258fChris Lattner