]> git.ipfire.org Git - thirdparty/e2fsprogs.git/blame - resize/resize2fs.h
ChangeLog, Makefile.in, initialize.c, .del-io.h~72680822, openfs.c:
[thirdparty/e2fsprogs.git] / resize / resize2fs.h
CommitLineData
24b2c7a7
TT
1/*
2 * resize2fs.h --- ext2 resizer header file
3 *
4 * Copyright (C) 1997 Theodore Ts'o
5 *
6 * %Begin-Header%
7 * All rights reserved.
8 * %End-Header%
9 */
10
11#include <stdio.h>
12#include <string.h>
13#include <unistd.h>
14#include <stdlib.h>
15#include <sys/types.h>
16#include <sys/time.h>
17
18#ifdef HAVE_LINUX_FS_H
19#include <linux/fs.h>
20#endif
21#include <linux/ext2_fs.h>
22
23#include "ext2fs/ext2fs.h"
24b2c7a7
TT
24
25#ifdef __STDC__
26#define NOARGS void
27#else
28#define NOARGS
29#define const
30#endif
31
c762c8e6
TT
32/*
33 * For the extent map
34 */
35typedef struct _ext2_extent *ext2_extent;
36
37/*
38 * For the simple progress meter
39 */
40typedef struct ext2_sim_progress *ext2_sim_progmeter;
41
05e112a1
TT
42/*
43 * Flags for the resizer; most are debugging flags only
44 */
45#define RESIZE_DEBUG_IO 0x0001
46#define RESIZE_DEBUG_BMOVE 0x0002
47#define RESIZE_DEBUG_INODEMAP 0x0004
48#define RESIZE_DEBUG_ITABLEMOVE 0x0008
49
50#define RESIZE_PERCENT_COMPLETE 0x0100
c762c8e6 51#define RESIZE_VERBOSE 0x0200
05e112a1 52
24b2c7a7
TT
53/*
54 * The core state structure for the ext2 resizer
55 */
56
57struct ext2_resize_struct {
58 ext2_filsys old_fs;
59 ext2_filsys new_fs;
1e1da29f 60 ext2fs_block_bitmap reserve_blocks;
c762c8e6 61 ext2fs_block_bitmap move_blocks;
1e1da29f 62 int needed_blocks;
05e112a1
TT
63 int flags;
64 char *itable_buf;
24b2c7a7
TT
65};
66
67typedef struct ext2_resize_struct *ext2_resize_t;
68
69/* prototypes */
05e112a1 70extern errcode_t resize_fs(ext2_filsys fs, blk_t new_size, int flags);
c762c8e6
TT
71extern errcode_t ext2fs_inode_move(ext2_resize_t rfs);
72extern errcode_t ext2fs_block_move(ext2_resize_t rfs);
73
74/* extent.c */
75extern errcode_t ext2fs_create_extent_table(ext2_extent *ret_extent,
76 int size);
77extern void ext2fs_free_extent_table(ext2_extent extent);
78extern errcode_t ext2fs_add_extent_entry(ext2_extent extent,
79 __u32 old, __u32 new);
80extern __u32 ext2fs_extent_translate(ext2_extent extent, __u32 old);
81extern void ext2fs_extent_dump(ext2_extent extent, FILE *out);
82extern errcode_t ext2fs_iterate_extent(ext2_extent extent, __u32 *old,
83 __u32 *new, int *size);
84
85/* sim_progress.c */
86extern errcode_t ext2fs_progress_init(ext2_sim_progmeter *ret_prog,
87 const char *label,
88 int labelwidth, int barwidth,
89 __u32 maxdone, int flags);
90extern void ext2fs_progress_update(ext2_sim_progmeter prog,
91 __u32 current);
92extern void ext2fs_progress_close(ext2_sim_progmeter prog);
93
94