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