blob: d72c7acae9baab57e5d63a2af38951492fab0d2d [file] [log] [blame]
Theodore Ts'o3839e651997-04-26 13:21:57 +00001/*
2 * debugfs.h --- header file for the debugfs program
3 */
4
Theodore Ts'o54c637d2001-05-14 11:45:38 +00005#include "ext2fs/ext2_fs.h"
Theodore Ts'o3839e651997-04-26 13:21:57 +00006#include "ext2fs/ext2fs.h"
7
Theodore Ts'o50e1e101997-04-26 13:58:21 +00008#ifdef __STDC__
9#define NOARGS void
10#else
11#define NOARGS
12#define const
13#endif
14
Theodore Ts'oe1018ee2002-01-03 04:55:25 -050015/*
16 * Flags used by the common argument processing functions
17 */
18#define CHECK_FS_RW 0x0001
19#define CHECK_FS_BITMAPS 0x0002
20#define CHECK_FS_NOTOPEN 0x0004
21
Theodore Ts'ofc6d9d51997-04-29 14:51:31 +000022extern ext2_filsys current_fs;
Theodore Ts'ob044c2e2001-01-11 15:26:39 +000023extern ext2_ino_t root, cwd;
Theodore Ts'o3839e651997-04-26 13:21:57 +000024
Theodore Ts'o88494bb2003-05-13 23:03:43 -040025extern void reset_getopt(void);
Theodore Ts'o3839e651997-04-26 13:21:57 +000026extern FILE *open_pager(void);
27extern void close_pager(FILE *stream);
28extern int check_fs_open(char *name);
29extern int check_fs_not_open(char *name);
Theodore Ts'ofc6d9d51997-04-29 14:51:31 +000030extern int check_fs_read_write(char *name);
Theodore Ts'od61f6172000-05-27 16:04:00 +000031extern int check_fs_bitmaps(char *name);
Theodore Ts'ob044c2e2001-01-11 15:26:39 +000032extern ext2_ino_t string_to_inode(char *str);
Theodore Ts'ofc6d9d51997-04-29 14:51:31 +000033extern char *time_to_string(__u32);
Theodore Ts'o4efae602005-09-24 21:56:38 -040034extern time_t string_to_time(const char *);
Theodore Ts'oe1018ee2002-01-03 04:55:25 -050035extern unsigned long parse_ulong(const char *str, const char *cmd,
36 const char *descr, int *err);
37extern int strtoblk(const char *cmd, const char *str, blk_t *ret);
38extern int common_args_process(int argc, char *argv[], int min_argc,
39 int max_argc, const char *cmd,
40 const char *usage, int flags);
41extern int common_inode_args_process(int argc, char *argv[],
42 ext2_ino_t *inode, int flags);
43extern int common_block_args_process(int argc, char *argv[],
Eric Sandeen3e419132007-04-10 15:40:04 -040044 blk_t *block, blk_t *count);
Theodore Ts'oe1018ee2002-01-03 04:55:25 -050045extern int debugfs_read_inode(ext2_ino_t ino, struct ext2_inode * inode,
46 const char *cmd);
Theodore Ts'o9b9a7802005-12-10 21:50:30 -050047extern int debugfs_read_inode_full(ext2_ino_t ino, struct ext2_inode * inode,
48 const char *cmd, int bufsize);
Theodore Ts'oe1018ee2002-01-03 04:55:25 -050049extern int debugfs_write_inode(ext2_ino_t ino, struct ext2_inode * inode,
50 const char *cmd);
Theodore Ts'o030970e2005-03-20 20:05:22 -050051extern int debugfs_write_new_inode(ext2_ino_t ino, struct ext2_inode * inode,
52 const char *cmd);
Theodore Ts'o3839e651997-04-26 13:21:57 +000053
Theodore Ts'o50e1e101997-04-26 13:58:21 +000054/* ss command functions */
55
56/* dump.c */
57extern void do_dump(int argc, char **argv);
58extern void do_cat(int argc, char **argv);
Theodore Ts'ob044c2e2001-01-11 15:26:39 +000059extern void do_rdump(int argc, char **argv);
Theodore Ts'o50e1e101997-04-26 13:58:21 +000060
Theodore Ts'o3e699062002-10-13 23:56:28 -040061/* htree.c */
62extern void do_htree_dump(int argc, char **argv);
63extern void do_dx_hash(int argc, char **argv);
64extern void do_dirsearch(int argc, char **argv);
65
Theodore Ts'o5e4f0702001-06-01 15:36:05 +000066/* logdump.c */
67extern void do_logdump(int argc, char **argv);
68
Theodore Ts'o50e1e101997-04-26 13:58:21 +000069/* lsdel.c */
70extern void do_lsdel(int argc, char **argv);
71
72/* icheck.c */
73extern void do_icheck(int argc, char **argv);
74
75/* ncheck.c */
76extern void do_ncheck(int argc, char **argv);
77
Theodore Ts'o7dec0502004-12-21 20:37:36 -050078/* set_fields.c */
Theodore Ts'ob74d1d82001-01-12 17:23:52 +000079extern void do_set_super(int argc, char **);
Theodore Ts'o7dec0502004-12-21 20:37:36 -050080extern void do_set_inode(int argc, char **);
Theodore Ts'ob74d1d82001-01-12 17:23:52 +000081
Theodore Ts'o54434922003-12-07 01:28:50 -050082/* unused.c */
83extern void do_dump_unused(int argc, char **argv);
84
Theodore Ts'o50e1e101997-04-26 13:58:21 +000085/* debugfs.c */
Theodore Ts'o5e4f0702001-06-01 15:36:05 +000086extern void internal_dump_inode(FILE *, const char *, ext2_ino_t,
Theodore Ts'oda81e3f2001-03-29 20:49:58 +000087 struct ext2_inode *, int);
88
Theodore Ts'o4a31c481998-03-30 01:27:25 +000089extern void do_dirty_filesys(int argc, char **argv);
Theodore Ts'o50e1e101997-04-26 13:58:21 +000090extern void do_open_filesys(int argc, char **argv);
91extern void do_close_filesys(int argc, char **argv);
Theodore Ts'ob044c2e2001-01-11 15:26:39 +000092extern void do_lcd(int argc, char **argv);
Theodore Ts'o50e1e101997-04-26 13:58:21 +000093extern void do_init_filesys(int argc, char **argv);
94extern void do_show_super_stats(int argc, char **argv);
95extern void do_kill_file(int argc, char **argv);
96extern void do_rm(int argc, char **argv);
97extern void do_link(int argc, char **argv);
Theodore Ts'o682720a2002-01-03 05:10:04 -050098extern void do_undel(int argc, char **argv);
Theodore Ts'o50e1e101997-04-26 13:58:21 +000099extern void do_unlink(int argc, char **argv);
100extern void do_find_free_block(int argc, char **argv);
101extern void do_find_free_inode(int argc, char **argv);
102extern void do_stat(int argc, char **argv);
103
104extern void do_chroot(int argc, char **argv);
105extern void do_clri(int argc, char **argv);
106extern void do_freei(int argc, char **argv);
107extern void do_seti(int argc, char **argv);
108extern void do_testi(int argc, char **argv);
109extern void do_freeb(int argc, char **argv);
110extern void do_setb(int argc, char **argv);
111extern void do_testb(int argc, char **argv);
112extern void do_modify_inode(int argc, char **argv);
113extern void do_list_dir(int argc, char **argv);
114extern void do_change_working_dir(int argc, char **argv);
115extern void do_print_working_directory(int argc, char **argv);
116extern void do_write(int argc, char **argv);
117extern void do_mknod(int argc, char **argv);
118extern void do_mkdir(int argc, char **argv);
119extern void do_rmdir(int argc, char **argv);
120extern void do_show_debugfs_params(int argc, char **argv);
121extern void do_expand_dir(int argc, char **argv);
Theodore Ts'o3e699062002-10-13 23:56:28 -0400122extern void do_features(int argc, char **argv);
123extern void do_bmap(int argc, char **argv);
Theodore Ts'obecf36f2003-05-05 11:35:04 -0400124extern void do_imap(int argc, char **argv);
Theodore Ts'o9b9a7802005-12-10 21:50:30 -0500125extern void do_set_current_time(int argc, char **argv);
Theodore Ts'oda81e3f2001-03-29 20:49:58 +0000126