X-Git-Url: https://git.whamcloud.com/?a=blobdiff_plain;f=resize%2Fresize2fs.h;h=769a1b477183cad518c075a8f511a40d1177c3b9;hb=9abd2ce914f9373fb676f0bb620ffba3a0e3c49e;hp=3cf21b95940802f8f17016bc616b64a5939731b8;hpb=9abf59d2822a0bf857def972890e8bb3986f89a4;p=tools%2Fe2fsprogs.git diff --git a/resize/resize2fs.h b/resize/resize2fs.h index 3cf21b9..769a1b4 100644 --- a/resize/resize2fs.h +++ b/resize/resize2fs.h @@ -25,9 +25,15 @@ #ifdef HAVE_LINUX_FS_H #include #endif -#include +#if EXT2_FLAT_INCLUDES +#include "ext2_fs.h" +#include "ext2fs.h" +#else +#include #include "ext2fs/ext2fs.h" +#endif + /* * For the extent map @@ -53,6 +59,7 @@ typedef struct ext2_sim_progress *ext2_sim_progmeter; /* * The core state structure for the ext2 resizer */ +typedef struct ext2_resize_struct *ext2_resize_t; struct ext2_resize_struct { ext2_filsys old_fs; @@ -62,12 +69,30 @@ struct ext2_resize_struct { int needed_blocks; int flags; char *itable_buf; + void (*progress)(ext2_resize_t rfs, int pass, + unsigned long cur, + unsigned long max); + void *prog_data; }; -typedef struct ext2_resize_struct *ext2_resize_t; +/* + * Progress pass numbers... + */ +#define E2_RSZ_ADJUST_SUPERBLOCK_PASS 1 +#define E2_RSZ_BLOCK_RELOC_PASS 2 +#define E2_RSZ_BLOCK_REF_UPD_PASS 3 +#define E2_RSZ_INODE_FIND_DIR_PASS 4 +#define E2_RSZ_INODE_RELOC_PASS 5 +#define E2_RSZ_INODE_REF_UPD_PASS 6 +#define E2_RSZ_MOVE_ITABLE_PASS 7 + /* prototypes */ -extern errcode_t resize_fs(ext2_filsys fs, blk_t new_size, int flags); +extern errcode_t resize_fs(ext2_filsys fs, blk_t new_size, int flags, + void (*progress)(ext2_resize_t rfs, int pass, + unsigned long cur, + unsigned long max)); + extern errcode_t ext2fs_inode_move(ext2_resize_t rfs); extern errcode_t ext2fs_block_move(ext2_resize_t rfs); @@ -76,11 +101,11 @@ extern errcode_t ext2fs_create_extent_table(ext2_extent *ret_extent, int size); extern void ext2fs_free_extent_table(ext2_extent extent); extern errcode_t ext2fs_add_extent_entry(ext2_extent extent, - __u32 old, __u32 new); -extern __u32 ext2fs_extent_translate(ext2_extent extent, __u32 old); + __u32 old_loc, __u32 new_loc); +extern __u32 ext2fs_extent_translate(ext2_extent extent, __u32 old_loc); extern void ext2fs_extent_dump(ext2_extent extent, FILE *out); -extern errcode_t ext2fs_iterate_extent(ext2_extent extent, __u32 *old, - __u32 *new, int *size); +extern errcode_t ext2fs_iterate_extent(ext2_extent extent, __u32 *old_loc, + __u32 *new_loc, int *size); /* sim_progress.c */ extern errcode_t ext2fs_progress_init(ext2_sim_progmeter *ret_prog,