119dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project/*
219dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project * debugfs.h --- header file for the debugfs program
319dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project */
419dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
519dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#include "ext2fs/ext2_fs.h"
619dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#include "ext2fs/ext2fs.h"
719dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
819dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#ifdef __STDC__
919dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#define NOARGS void
1019dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#else
1119dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#define NOARGS
1219dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#define const
1319dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#endif
1419dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
1519dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project/*
1619dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project * Flags used by the common argument processing functions
1719dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project */
1819dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#define CHECK_FS_RW		0x0001
1919dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#define CHECK_FS_BITMAPS	0x0002
2019dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#define CHECK_FS_NOTOPEN	0x0004
2119dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
2219dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Projectextern ext2_filsys current_fs;
2319dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Projectextern ext2_ino_t	root, cwd;
2419dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
2519dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Projectextern void reset_getopt(void);
2619dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Projectextern FILE *open_pager(void);
2719dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Projectextern void close_pager(FILE *stream);
2819dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Projectextern int check_fs_open(char *name);
2919dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Projectextern int check_fs_not_open(char *name);
3019dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Projectextern int check_fs_read_write(char *name);
3119dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Projectextern int check_fs_bitmaps(char *name);
3219dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Projectextern ext2_ino_t string_to_inode(char *str);
3319dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Projectextern char *time_to_string(__u32);
3419dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Projectextern time_t string_to_time(const char *);
3519dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Projectextern unsigned long parse_ulong(const char *str, const char *cmd,
3619dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project				 const char *descr, int *err);
3719dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Projectextern int strtoblk(const char *cmd, const char *str, blk_t *ret);
3819dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Projectextern int common_args_process(int argc, char *argv[], int min_argc,
3919dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project			       int max_argc, const char *cmd,
4019dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project			       const char *usage, int flags);
4119dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Projectextern int common_inode_args_process(int argc, char *argv[],
4219dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project				     ext2_ino_t *inode, int flags);
4319dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Projectextern int common_block_args_process(int argc, char *argv[],
4419dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project				     blk_t *block, blk_t *count);
4519dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Projectextern int debugfs_read_inode(ext2_ino_t ino, struct ext2_inode * inode,
4619dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project			      const char *cmd);
4719dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Projectextern int debugfs_read_inode_full(ext2_ino_t ino, struct ext2_inode * inode,
4819dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project				   const char *cmd, int bufsize);
4919dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Projectextern int debugfs_write_inode(ext2_ino_t ino, struct ext2_inode * inode,
5019dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project			       const char *cmd);
5119dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Projectextern int debugfs_write_new_inode(ext2_ino_t ino, struct ext2_inode * inode,
5219dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project				   const char *cmd);
5319dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
5419dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project/* ss command functions */
5519dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
5619dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project/* dump.c */
5719dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Projectextern void do_dump(int argc, char **argv);
5819dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Projectextern void do_cat(int argc, char **argv);
5919dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Projectextern void do_rdump(int argc, char **argv);
6019dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
6119dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project/* htree.c */
6219dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Projectextern void do_htree_dump(int argc, char **argv);
6319dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Projectextern void do_dx_hash(int argc, char **argv);
6419dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Projectextern void do_dirsearch(int argc, char **argv);
6519dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
6619dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project/* logdump.c */
6719dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Projectextern void do_logdump(int argc, char **argv);
6819dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
6919dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project/* lsdel.c */
7019dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Projectextern void do_lsdel(int argc, char **argv);
7119dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
7219dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project/* icheck.c */
7319dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Projectextern void do_icheck(int argc, char **argv);
7419dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
7519dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project/* ncheck.c */
7619dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Projectextern void do_ncheck(int argc, char **argv);
7719dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
7819dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project/* set_fields.c */
7919dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Projectextern void do_set_super(int argc, char **);
8019dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Projectextern void do_set_inode(int argc, char **);
813984b61df41c68966bdfbb2a5e5a45ef4b9a536cDmitry Shmidtextern void do_set_block_group_descriptor(int argc, char **);
8219dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
8319dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project/* unused.c */
8419dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Projectextern void do_dump_unused(int argc, char **argv);
8519dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
8619dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project/* debugfs.c */
873984b61df41c68966bdfbb2a5e5a45ef4b9a536cDmitry Shmidtextern void internal_dump_inode(FILE *, const char *, ext2_ino_t,
8819dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project				struct ext2_inode *, int);
8919dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
9019dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Projectextern void do_dirty_filesys(int argc, char **argv);
9119dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Projectextern void do_open_filesys(int argc, char **argv);
9219dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Projectextern void do_close_filesys(int argc, char **argv);
9319dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Projectextern void do_lcd(int argc, char **argv);
9419dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Projectextern void do_init_filesys(int argc, char **argv);
9519dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Projectextern void do_show_super_stats(int argc, char **argv);
9619dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Projectextern void do_kill_file(int argc, char **argv);
9719dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Projectextern void do_rm(int argc, char **argv);
9819dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Projectextern void do_link(int argc, char **argv);
9919dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Projectextern void do_undel(int argc, char **argv);
10019dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Projectextern void do_unlink(int argc, char **argv);
10119dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Projectextern void do_find_free_block(int argc, char **argv);
10219dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Projectextern void do_find_free_inode(int argc, char **argv);
10319dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Projectextern void do_stat(int argc, char **argv);
10419dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
10519dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Projectextern void do_chroot(int argc, char **argv);
10619dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Projectextern void do_clri(int argc, char **argv);
10719dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Projectextern void do_freei(int argc, char **argv);
10819dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Projectextern void do_seti(int argc, char **argv);
10919dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Projectextern void do_testi(int argc, char **argv);
11019dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Projectextern void do_freeb(int argc, char **argv);
11119dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Projectextern void do_setb(int argc, char **argv);
11219dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Projectextern void do_testb(int argc, char **argv);
11319dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Projectextern void do_modify_inode(int argc, char **argv);
11419dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Projectextern void do_list_dir(int argc, char **argv);
11519dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Projectextern void do_change_working_dir(int argc, char **argv);
11619dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Projectextern void do_print_working_directory(int argc, char **argv);
11719dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Projectextern void do_write(int argc, char **argv);
11819dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Projectextern void do_mknod(int argc, char **argv);
11919dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Projectextern void do_mkdir(int argc, char **argv);
12019dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Projectextern void do_rmdir(int argc, char **argv);
12119dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Projectextern void do_show_debugfs_params(int argc, char **argv);
12219dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Projectextern void do_expand_dir(int argc, char **argv);
12319dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Projectextern void do_features(int argc, char **argv);
12419dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Projectextern void do_bmap(int argc, char **argv);
12519dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Projectextern void do_imap(int argc, char **argv);
12619dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Projectextern void do_set_current_time(int argc, char **argv);
1273984b61df41c68966bdfbb2a5e5a45ef4b9a536cDmitry Shmidtextern void do_supported_features(int argc, char **argv);
12819dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project
129