]> git.ipfire.org Git - thirdparty/e2fsprogs.git/blame - debugfs/debugfs.h
tst_libext2fs: Avoid multiple definition of global variables
[thirdparty/e2fsprogs.git] / debugfs / debugfs.h
CommitLineData
3839e657
TT
1/*
2 * debugfs.h --- header file for the debugfs program
3 */
4
bee7b67c 5#include "ss/ss.h"
54c637d4 6#include "ext2fs/ext2_fs.h"
3839e657 7#include "ext2fs/ext2fs.h"
9aa3aa8d 8#include "../misc/create_inode.h"
f34af41b 9#include "support/quotaio.h"
3839e657 10
50e1e10f
TT
11#ifdef __STDC__
12#define NOARGS void
13#else
14#define NOARGS
15#define const
16#endif
17
e1018eea
TT
18/*
19 * Flags used by the common argument processing functions
20 */
21#define CHECK_FS_RW 0x0001
22#define CHECK_FS_BITMAPS 0x0002
23#define CHECK_FS_NOTOPEN 0x0004
24
fc6d9d51 25extern ext2_filsys current_fs;
75fc42f1 26extern quota_ctx_t current_qctx;
b044c2e0 27extern ext2_ino_t root, cwd;
f7260c19 28extern int ss_sci_idx;
bee7b67c 29extern ss_request_table debug_cmds, extent_cmds;
3839e657 30
88494bb6 31extern void reset_getopt(void);
3839e657
TT
32extern FILE *open_pager(void);
33extern void close_pager(FILE *stream);
34extern int check_fs_open(char *name);
35extern int check_fs_not_open(char *name);
fc6d9d51 36extern int check_fs_read_write(char *name);
d61f6176 37extern int check_fs_bitmaps(char *name);
b044c2e0 38extern ext2_ino_t string_to_inode(char *str);
188960ea
TT
39extern char *inode_time_to_string(__u32 xtime, __u32 xtime_extra);
40extern char *time_to_string(__s64);
41extern __s64 string_to_time(const char *);
e1018eea
TT
42extern unsigned long parse_ulong(const char *str, const char *cmd,
43 const char *descr, int *err);
048786d7
VAH
44extern unsigned long long parse_ulonglong(const char *str, const char *cmd,
45 const char *descr, int *err);
a25fffae
EW
46extern int strtoblk(const char *cmd, const char *str, const char *errmsg,
47 blk64_t *ret);
e1018eea
TT
48extern int common_args_process(int argc, char *argv[], int min_argc,
49 int max_argc, const char *cmd,
50 const char *usage, int flags);
51extern int common_inode_args_process(int argc, char *argv[],
52 ext2_ino_t *inode, int flags);
53extern int common_block_args_process(int argc, char *argv[],
048786d7 54 blk64_t *block, blk64_t *count);
e1018eea
TT
55extern int debugfs_read_inode(ext2_ino_t ino, struct ext2_inode * inode,
56 const char *cmd);
32917350
TT
57extern int debugfs_read_inode2(ext2_ino_t ino, struct ext2_inode * inode,
58 const char *cmd, int bufsize, int flags);
e1018eea
TT
59extern int debugfs_write_inode(ext2_ino_t ino, struct ext2_inode * inode,
60 const char *cmd);
32917350
TT
61extern int debugfs_write_inode2(ext2_ino_t ino, struct ext2_inode * inode,
62 const char *cmd, int bufsize, int flags);
030970ed
TT
63extern int debugfs_write_new_inode(ext2_ino_t ino, struct ext2_inode * inode,
64 const char *cmd);
8bf1e918 65extern int ext2_file_type(unsigned int mode);
3839e657 66
50e1e10f
TT
67/* ss command functions */
68
69/* dump.c */
2fcbcb1b
TT
70extern void do_dump(int argc, char **argv, int sci_idx, void *infop);
71extern void do_cat(int argc, char **argv, int sci_idx, void *infop);
72extern void do_rdump(int argc, char **argv, int sci_idx, void *infop);
50e1e10f 73
9e85208e 74/* extent_inode.c */
2fcbcb1b
TT
75extern void do_extent_open(int argc, char **argv, int sci_idx, void *infop);
76extern void do_extent_close(int argc, char **argv, int sci_idx, void *infop);
77extern void do_current_node(int argc, char **argv, int sci_idx, void *infop);
78extern void do_root_node(int argc, char **argv, int sci_idx, void *infop);
79extern void do_last_leaf(int argc, char **argv, int sci_idx, void *infop);
80extern void do_first_sib(int argc, char **argv, int sci_idx, void *infop);
81extern void do_last_sib(int argc, char **argv, int sci_idx, void *infop);
82extern void do_next_sib(int argc, char **argv, int sci_idx, void *infop);
83extern void do_prev_sib(int argc, char **argv, int sci_idx, void *infop);
84extern void do_next_leaf(int argc, char **argv, int sci_idx, void *infop);
85extern void do_prev_leaf(int argc, char **argv, int sci_idx, void *infop);
86extern void do_next(int argc, char **argv, int sci_idx, void *infop);
87extern void do_prev(int argc, char **argv, int sci_idx, void *infop);
88extern void do_up(int argc, char **argv, int sci_idx, void *infop);
89extern void do_down(int argc, char **argv, int sci_idx, void *infop);
90extern void do_delete_node(int argc, char **argv, int sci_idx, void *infop);
91extern void do_replace_node(int argc, char **argv, int sci_idx, void *infop);
92extern void do_split_node(int argc, char **argv, int sci_idx, void *infop);
93extern void do_insert_node(int argc, char **argv, int sci_idx, void *infop);
94extern void do_set_bmap(int argc, char **argv, int sci_idx, void *infop);
95extern void do_print_all(int argc, char **argv, int sci_idx, void *infop);
96extern void do_fix_parents(int argc, char **argv, int sci_idx, void *infop);
97extern void do_info(int argc, char **argv, int sci_idx, void *infop);
98extern void do_goto_block(int argc, char **argv, int sci_idx, void *infop);
9e85208e 99
3e699064 100/* htree.c */
2fcbcb1b
TT
101extern void do_htree_dump(int argc, char **argv, int sci_idx, void *infop);
102extern void do_dx_hash(int argc, char **argv, int sci_idx, void *infop);
103extern void do_dirsearch(int argc, char **argv, int sci_idx, void *infop);
3e699064 104
5e4f0709 105/* logdump.c */
2fcbcb1b 106extern void do_logdump(int argc, char **argv, int sci_idx, void *infop);
5e4f0709 107
50e1e10f 108/* lsdel.c */
2fcbcb1b 109extern void do_lsdel(int argc, char **argv, int sci_idx, void *infop);
50e1e10f
TT
110
111/* icheck.c */
2fcbcb1b 112extern void do_icheck(int argc, char **argv, int sci_idx, void *infop);
50e1e10f
TT
113
114/* ncheck.c */
2fcbcb1b 115extern void do_ncheck(int argc, char **argv, int sci_idx, void *infop);
50e1e10f 116
7dec050a 117/* set_fields.c */
2fcbcb1b
TT
118extern void do_set_super(int argc, char **, int sci_idx, void *infop);
119extern void do_set_inode(int argc, char **, int sci_idx, void *infop);
120extern void do_set_block_group_descriptor(int argc, char **, int sci_idx, void *infop);
b74d1d89 121
54434927 122/* unused.c */
2fcbcb1b 123extern void do_dump_unused(int argc, char **argv, int sci_idx, void *infop);
54434927 124
50e1e10f 125/* debugfs.c */
336c440c
LC
126extern ss_request_table *extra_cmds;
127extern const char *debug_prog_name;
efc6f628 128extern void internal_dump_inode(FILE *, const char *, ext2_ino_t,
da81e3fc
TT
129 struct ext2_inode *, int);
130
2fcbcb1b
TT
131extern void do_dirty_filesys(int argc, char **argv, int sci_idx, void *infop);
132extern void do_open_filesys(int argc, char **argv, int sci_idx, void *infop);
133extern void do_close_filesys(int argc, char **argv, int sci_idx, void *infop);
134extern void do_lcd(int argc, char **argv, int sci_idx, void *infop);
135extern void do_init_filesys(int argc, char **argv, int sci_idx, void *infop);
136extern void do_show_super_stats(int argc, char **argv, int sci_idx, void *infop);
137extern void do_kill_file(int argc, char **argv, int sci_idx, void *infop);
138extern void do_rm(int argc, char **argv, int sci_idx, void *infop);
139extern void do_link(int argc, char **argv, int sci_idx, void *infop);
140extern void do_undel(int argc, char **argv, int sci_idx, void *infop);
141extern void do_unlink(int argc, char **argv, int sci_idx, void *infop);
142extern void do_copy_inode(int argc, char *argv[], int sci_idx, void *infop);
143extern void do_find_free_block(int argc, char **argv, int sci_idx, void *infop);
144extern void do_find_free_inode(int argc, char **argv, int sci_idx, void *infop);
145extern void do_stat(int argc, char **argv, int sci_idx, void *infop);
146extern void do_dump_extents(int argc, char **argv, int sci_idx, void *infop);
147extern void do_blocks(int argc, char *argv[], int sci_idx, void *infop);
148
149extern void do_chroot(int argc, char **argv, int sci_idx, void *infop);
150extern void do_clri(int argc, char **argv, int sci_idx, void *infop);
151extern void do_freei(int argc, char **argv, int sci_idx, void *infop);
152extern void do_seti(int argc, char **argv, int sci_idx, void *infop);
153extern void do_testi(int argc, char **argv, int sci_idx, void *infop);
154extern void do_freeb(int argc, char **argv, int sci_idx, void *infop);
155extern void do_setb(int argc, char **argv, int sci_idx, void *infop);
156extern void do_testb(int argc, char **argv, int sci_idx, void *infop);
157extern void do_modify_inode(int argc, char **argv, int sci_idx, void *infop);
158extern void do_list_dir(int argc, char **argv, int sci_idx, void *infop);
159extern void do_change_working_dir(int argc, char **argv, int sci_idx, void *infop);
160extern void do_print_working_directory(int argc, char **argv, int sci_idx, void *infop);
161extern void do_write(int argc, char **argv, int sci_idx, void *infop);
162extern void do_mknod(int argc, char **argv, int sci_idx, void *infop);
163extern void do_mkdir(int argc, char **argv, int sci_idx, void *infop);
164extern void do_rmdir(int argc, char **argv, int sci_idx, void *infop);
165extern void do_show_debugfs_params(int argc, char **argv, int sci_idx, void *infop);
166extern void do_expand_dir(int argc, char **argv, int sci_idx, void *infop);
167extern void do_features(int argc, char **argv, int sci_idx, void *infop);
168extern void do_bmap(int argc, char **argv, int sci_idx, void *infop);
169extern void do_imap(int argc, char **argv, int sci_idx, void *infop);
170extern void do_idump(int argc, char *argv[], int sci_idx, void *infop);
171extern void do_set_current_time(int argc, char **argv, int sci_idx, void *infop);
172extern void do_supported_features(int argc, char **argv, int sci_idx, void *infop);
173extern void do_punch(int argc, char **argv, int sci_idx, void *infop);
174extern void do_fallocate(int argc, char **argv, int sci_idx, void *infop);
175extern void do_symlink(int argc, char **argv, int sci_idx, void *infop);
176
177extern void do_dump_mmp(int argc, char **argv, int sci_idx, void *infop);
178extern void do_set_mmp_value(int argc, char **argv, int sci_idx, void *infop);
179
180extern void do_freefrag(int argc, char **argv, int sci_idx, void *infop);
181extern void do_filefrag(int argc, char *argv[], int sci_idx, void *infop);
9e85208e 182
df0b907e
TT
183/* do_journal.c */
184
2fcbcb1b
TT
185extern void do_journal_write(int argc, char *argv[], int sci_idx, void *infop);
186extern void do_journal_open(int argc, char *argv[], int sci_idx, void *infop);
187extern void do_journal_close(int argc, char *argv[], int sci_idx, void *infop);
188extern void do_journal_run(int argc, char *argv[], int sci_idx, void *infop);
df0b907e 189
75fc42f1 190/* quota.c */
2fcbcb1b
TT
191extern void do_list_quota(int argc, char *argv[], int sci_idx, void *infop);
192extern void do_get_quota(int argc, char *argv[], int sci_idx, void *infop);
75fc42f1 193
f404167d 194/* util.c */
188960ea 195extern __s64 string_to_time(const char *arg);
25f291c9 196errcode_t read_list(char *str, blk64_t **list, size_t *len);
f404167d 197
227239b1
DW
198/* xattrs.c */
199void dump_inode_attributes(FILE *out, ext2_ino_t ino);
2fcbcb1b
TT
200void do_get_xattr(int argc, char **argv, int sci_idx, void *infop);
201void do_set_xattr(int argc, char **argv, int sci_idx, void *infop);
202void do_rm_xattr(int argc, char **argv, int sci_idx, void *infop);
203void do_list_xattr(int argc, char **argv, int sci_idx, void *infop);
c7c99af6
TT
204void raw_inode_xattr_dump(FILE *f, unsigned char *buf, unsigned int len);
205void block_xattr_dump(FILE *f, unsigned char *buf, unsigned int len);
227239b1 206
9e85208e 207/* zap.c */
2fcbcb1b
TT
208extern void do_zap_block(int argc, char **argv, int sci_idx, void *infop);
209extern void do_block_dump(int argc, char **argv, int sci_idx, void *infop);
e13ebfdd 210extern void do_byte_hexdump(FILE *fp, unsigned char *buf, size_t bufsize);