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