aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTheodore Ts'o <tytso@mit.edu>2024-04-23 17:11:26 -0400
committerTheodore Ts'o <tytso@mit.edu>2024-04-23 18:47:25 -0400
commit49125d40ff36490af218f46b9b4d1fdf96553dcd (patch)
tree6843ef87de3616efa756a93807a20636a0b0d705
parent3fcbc9ffbeaa0df3dd06113b61f9b3bed4efb92e (diff)
downloade2fsprogs-49125d40ff36490af218f46b9b4d1fdf96553dcd.tar.gz
Align function prototypes for libss's request handler function
Clang 17's Undefined Behaviour Sanitizer will throw run-time warnings if a function pointer is dereferenced with a different function signature than one in the pointer --- even if the difference is a missing const qualifier. To fix regression test failures, change declarations of argv to use ss_argv_t instead of an inconsistently open-coded type. Signed-off-by: Theodore Ts'o <tytso@mit.edu>
-rw-r--r--debugfs/debugfs.c99
-rw-r--r--debugfs/debugfs.h208
-rw-r--r--debugfs/do_journal.c8
-rw-r--r--debugfs/dump.c6
-rw-r--r--debugfs/extent_inode.c52
-rw-r--r--debugfs/filefrag.c2
-rw-r--r--debugfs/htree.c6
-rw-r--r--debugfs/icheck.c2
-rw-r--r--debugfs/logdump.c2
-rw-r--r--debugfs/ls.c2
-rw-r--r--debugfs/lsdel.c2
-rw-r--r--debugfs/ncheck.c2
-rw-r--r--debugfs/quota.c4
-rw-r--r--debugfs/set_fields.c10
-rw-r--r--debugfs/unused.c2
-rw-r--r--debugfs/util.c6
-rw-r--r--debugfs/xattrs.c8
-rw-r--r--debugfs/zap.c4
-rw-r--r--lib/ext2fs/tst_bitmaps.c45
-rw-r--r--lib/ss/execute_cmd.c2
-rw-r--r--lib/ss/help.c2
-rw-r--r--lib/ss/list_rqs.c2
-rw-r--r--lib/ss/listen.c2
-rw-r--r--lib/ss/requests.c8
-rw-r--r--lib/ss/ss.h16
-rw-r--r--lib/ss/ss_internal.h2
-rw-r--r--lib/ss/test_ss.c6
-rw-r--r--misc/e2freefrag.c2
-rw-r--r--tests/progs/Makefile.in3
-rw-r--r--tests/progs/test_icount.c18
-rw-r--r--tests/progs/test_icount.h29
-rw-r--r--tests/progs/test_rel.c44
-rw-r--r--tests/progs/test_rel.h44
33 files changed, 338 insertions, 312 deletions
diff --git a/debugfs/debugfs.c b/debugfs/debugfs.c
index b17576e8f..16a03d48e 100644
--- a/debugfs/debugfs.c
+++ b/debugfs/debugfs.c
@@ -222,7 +222,7 @@ errout:
com_err(device, retval, "while trying to close filesystem");
}
-void do_open_filesys(int argc, char **argv, int sci_idx EXT2FS_ATTR((unused)),
+void do_open_filesys(int argc, ss_argv_t argv, int sci_idx EXT2FS_ATTR((unused)),
void *infop EXT2FS_ATTR((unused)))
{
int c, err;
@@ -305,7 +305,7 @@ print_usage:
"<device>\n", argv[0]);
}
-void do_lcd(int argc, char **argv, int sci_idx EXT2FS_ATTR((unused)),
+void do_lcd(int argc, ss_argv_t argv, int sci_idx EXT2FS_ATTR((unused)),
void *infop EXT2FS_ATTR((unused)))
{
if (argc != 2) {
@@ -343,7 +343,7 @@ static void close_filesystem(NOARGS)
return;
}
-void do_close_filesys(int argc, char **argv, int sci_idx EXT2FS_ATTR((unused)),
+void do_close_filesys(int argc, ss_argv_t argv, int sci_idx EXT2FS_ATTR((unused)),
void *infop EXT2FS_ATTR((unused)))
{
int c;
@@ -372,7 +372,7 @@ void do_close_filesys(int argc, char **argv, int sci_idx EXT2FS_ATTR((unused)),
}
#ifndef READ_ONLY
-void do_init_filesys(int argc, char **argv, int sci_idx EXT2FS_ATTR((unused)),
+void do_init_filesys(int argc, ss_argv_t argv, int sci_idx EXT2FS_ATTR((unused)),
void *infop EXT2FS_ATTR((unused)))
{
struct ext2_super_block param;
@@ -433,7 +433,7 @@ static void print_bg_opts(ext2_filsys fs, dgrp_t group, int mask,
}
}
-void do_show_super_stats(int argc, char *argv[],
+void do_show_super_stats(int argc, ss_argv_t argv,
int sci_idx EXT2FS_ATTR((unused)),
void *infop EXT2FS_ATTR((unused)))
{
@@ -531,7 +531,7 @@ print_usage:
#ifndef READ_ONLY
void do_dirty_filesys(int argc EXT2FS_ATTR((unused)),
- char **argv EXT2FS_ATTR((unused)),
+ ss_argv_t argv EXT2FS_ATTR((unused)),
int sci_idx EXT2FS_ATTR((unused)),
void *infop EXT2FS_ATTR((unused)))
{
@@ -996,7 +996,7 @@ static void dump_inode(ext2_ino_t inode_num, struct ext2_inode *inode)
close_pager(out);
}
-void do_stat(int argc, char *argv[], int sci_idx EXT2FS_ATTR((unused)),
+void do_stat(int argc, ss_argv_t argv, int sci_idx EXT2FS_ATTR((unused)),
void *infop EXT2FS_ATTR((unused)))
{
ext2_ino_t inode;
@@ -1028,7 +1028,7 @@ void do_stat(int argc, char *argv[], int sci_idx EXT2FS_ATTR((unused)),
return;
}
-void do_dump_extents(int argc, char **argv, int sci_idx EXT2FS_ATTR((unused)),
+void do_dump_extents(int argc, ss_argv_t argv, int sci_idx EXT2FS_ATTR((unused)),
void *infop EXT2FS_ATTR((unused)))
{
struct ext2_inode inode;
@@ -1100,7 +1100,7 @@ static int print_blocks_proc(ext2_filsys fs EXT2FS_ATTR((unused)),
return 0;
}
-void do_blocks(int argc, char *argv[], int sci_idx EXT2FS_ATTR((unused)),
+void do_blocks(int argc, ss_argv_t argv, int sci_idx EXT2FS_ATTR((unused)),
void *infop EXT2FS_ATTR((unused)))
{
ext2_ino_t inode;
@@ -1118,7 +1118,7 @@ void do_blocks(int argc, char *argv[], int sci_idx EXT2FS_ATTR((unused)),
return;
}
-void do_chroot(int argc, char *argv[], int sci_idx EXT2FS_ATTR((unused)),
+void do_chroot(int argc, ss_argv_t argv, int sci_idx EXT2FS_ATTR((unused)),
void *infop EXT2FS_ATTR((unused)))
{
ext2_ino_t inode;
@@ -1136,7 +1136,7 @@ void do_chroot(int argc, char *argv[], int sci_idx EXT2FS_ATTR((unused)),
}
#ifndef READ_ONLY
-void do_clri(int argc, char *argv[], int sci_idx EXT2FS_ATTR((unused)),
+void do_clri(int argc, ss_argv_t argv, int sci_idx EXT2FS_ATTR((unused)),
void *infop EXT2FS_ATTR((unused)))
{
ext2_ino_t inode;
@@ -1152,7 +1152,7 @@ void do_clri(int argc, char *argv[], int sci_idx EXT2FS_ATTR((unused)),
return;
}
-void do_freei(int argc, char *argv[], int sci_idx EXT2FS_ATTR((unused)),
+void do_freei(int argc, ss_argv_t argv, int sci_idx EXT2FS_ATTR((unused)),
void *infop EXT2FS_ATTR((unused)))
{
unsigned int len = 1;
@@ -1183,7 +1183,7 @@ void do_freei(int argc, char *argv[], int sci_idx EXT2FS_ATTR((unused)),
ext2fs_mark_ib_dirty(current_fs);
}
-void do_seti(int argc, char *argv[], int sci_idx EXT2FS_ATTR((unused)),
+void do_seti(int argc, ss_argv_t argv, int sci_idx EXT2FS_ATTR((unused)),
void *infop EXT2FS_ATTR((unused)))
{
unsigned int len = 1;
@@ -1215,7 +1215,7 @@ void do_seti(int argc, char *argv[], int sci_idx EXT2FS_ATTR((unused)),
}
#endif /* READ_ONLY */
-void do_testi(int argc, char *argv[], int sci_idx EXT2FS_ATTR((unused)),
+void do_testi(int argc, ss_argv_t argv, int sci_idx EXT2FS_ATTR((unused)),
void *infop EXT2FS_ATTR((unused)))
{
ext2_ino_t inode;
@@ -1230,7 +1230,7 @@ void do_testi(int argc, char *argv[], int sci_idx EXT2FS_ATTR((unused)),
}
#ifndef READ_ONLY
-void do_freeb(int argc, char *argv[], int sci_idx EXT2FS_ATTR((unused)),
+void do_freeb(int argc, ss_argv_t argv, int sci_idx EXT2FS_ATTR((unused)),
void *infop EXT2FS_ATTR((unused)))
{
blk64_t block;
@@ -1250,7 +1250,7 @@ void do_freeb(int argc, char *argv[], int sci_idx EXT2FS_ATTR((unused)),
ext2fs_mark_bb_dirty(current_fs);
}
-void do_setb(int argc, char *argv[], int sci_idx EXT2FS_ATTR((unused)),
+void do_setb(int argc, ss_argv_t argv, int sci_idx EXT2FS_ATTR((unused)),
void *infop EXT2FS_ATTR((unused)))
{
blk64_t block;
@@ -1271,7 +1271,7 @@ void do_setb(int argc, char *argv[], int sci_idx EXT2FS_ATTR((unused)),
}
#endif /* READ_ONLY */
-void do_testb(int argc, char *argv[], int sci_idx EXT2FS_ATTR((unused)),
+void do_testb(int argc, ss_argv_t argv, int sci_idx EXT2FS_ATTR((unused)),
void *infop EXT2FS_ATTR((unused)))
{
blk64_t block;
@@ -1358,7 +1358,7 @@ static void modify_u32(char *com, const char *prompt,
}
-void do_modify_inode(int argc, char *argv[], int sci_idx EXT2FS_ATTR((unused)),
+void do_modify_inode(int argc, ss_argv_t argv, int sci_idx EXT2FS_ATTR((unused)),
void *infop EXT2FS_ATTR((unused)))
{
struct ext2_inode inode;
@@ -1436,7 +1436,7 @@ void do_modify_inode(int argc, char *argv[], int sci_idx EXT2FS_ATTR((unused)),
}
#endif /* READ_ONLY */
-void do_change_working_dir(int argc, char *argv[],
+void do_change_working_dir(int argc, ss_argv_t argv,
int sci_idx EXT2FS_ATTR((unused)),
void *infop EXT2FS_ATTR((unused)))
{
@@ -1455,7 +1455,7 @@ void do_change_working_dir(int argc, char *argv[],
return;
}
-void do_print_working_directory(int argc, char *argv[],
+void do_print_working_directory(int argc, ss_argv_t argv,
int sci_idx EXT2FS_ATTR((unused)),
void *infop EXT2FS_ATTR((unused)))
{
@@ -1546,7 +1546,7 @@ static void make_link(char *sourcename, char *destname)
}
-void do_link(int argc, char *argv[], int sci_idx EXT2FS_ATTR((unused)),
+void do_link(int argc, ss_argv_t argv, int sci_idx EXT2FS_ATTR((unused)),
void *infop EXT2FS_ATTR((unused)))
{
if (common_args_process(argc, argv, 3, 3, "link",
@@ -1569,7 +1569,7 @@ static int mark_blocks_proc(ext2_filsys fs, blk64_t *blocknr,
return 0;
}
-void do_undel(int argc, char *argv[], int sci_idx EXT2FS_ATTR((unused)),
+void do_undel(int argc, ss_argv_t argv, int sci_idx EXT2FS_ATTR((unused)),
void *infop EXT2FS_ATTR((unused)))
{
ext2_ino_t ino;
@@ -1633,7 +1633,7 @@ static void unlink_file_by_name(char *filename)
return;
}
-void do_unlink(int argc, char *argv[], int sci_idx EXT2FS_ATTR((unused)),
+void do_unlink(int argc, ss_argv_t argv, int sci_idx EXT2FS_ATTR((unused)),
void *infop EXT2FS_ATTR((unused)))
{
if (common_args_process(argc, argv, 2, 2, "link",
@@ -1643,7 +1643,7 @@ void do_unlink(int argc, char *argv[], int sci_idx EXT2FS_ATTR((unused)),
unlink_file_by_name(argv[1]);
}
-void do_copy_inode(int argc, char *argv[], int sci_idx EXT2FS_ATTR((unused)),
+void do_copy_inode(int argc, ss_argv_t argv, int sci_idx EXT2FS_ATTR((unused)),
void *infop EXT2FS_ATTR((unused)))
{
ext2_ino_t src_ino, dest_ino;
@@ -1672,7 +1672,7 @@ void do_copy_inode(int argc, char *argv[], int sci_idx EXT2FS_ATTR((unused)),
#endif /* READ_ONLY */
-void do_find_free_block(int argc, char *argv[],
+void do_find_free_block(int argc, ss_argv_t argv,
int sci_idx EXT2FS_ATTR((unused)),
void *infop EXT2FS_ATTR((unused)))
{
@@ -1726,7 +1726,7 @@ void do_find_free_block(int argc, char *argv[],
printf("\n");
}
-void do_find_free_inode(int argc, char *argv[],
+void do_find_free_inode(int argc, ss_argv_t argv,
int sci_idx EXT2FS_ATTR((unused)),
void *infop EXT2FS_ATTR((unused)))
{
@@ -1768,7 +1768,7 @@ void do_find_free_inode(int argc, char *argv[],
}
#ifndef READ_ONLY
-void do_write(int argc, char *argv[], int sci_idx EXT2FS_ATTR((unused)),
+void do_write(int argc, ss_argv_t argv, int sci_idx EXT2FS_ATTR((unused)),
void *infop EXT2FS_ATTR((unused)))
{
errcode_t retval;
@@ -1782,7 +1782,7 @@ void do_write(int argc, char *argv[], int sci_idx EXT2FS_ATTR((unused)),
com_err(argv[0], retval, 0);
}
-void do_mknod(int argc, char *argv[], int sci_idx EXT2FS_ATTR((unused)),
+void do_mknod(int argc, ss_argv_t argv, int sci_idx EXT2FS_ATTR((unused)),
void *infop EXT2FS_ATTR((unused)))
{
unsigned long major, minor;
@@ -1817,9 +1817,12 @@ void do_mknod(int argc, char *argv[], int sci_idx EXT2FS_ATTR((unused)),
}
if (nr == 5) {
- major = strtoul(argv[3], argv+3, 0);
- minor = strtoul(argv[4], argv+4, 0);
- if (major > 65535 || minor > 65535 || argv[3][0] || argv[4][0])
+ char *end1 = NULL, *end2 = NULL;
+
+ major = strtoul(argv[3], &end1, 0);
+ minor = strtoul(argv[4], &end2, 0);
+ if (major > 65535 || minor > 65535 ||
+ (end1 && *end1) || (end2 && *end2))
nr = 0;
}
@@ -1833,7 +1836,7 @@ void do_mknod(int argc, char *argv[], int sci_idx EXT2FS_ATTR((unused)),
com_err(argv[0], retval, 0);
}
-void do_mkdir(int argc, char *argv[], int sci_idx EXT2FS_ATTR((unused)),
+void do_mkdir(int argc, ss_argv_t argv, int sci_idx EXT2FS_ATTR((unused)),
void *infop EXT2FS_ATTR((unused)))
{
errcode_t retval;
@@ -1887,7 +1890,7 @@ static void kill_file_by_inode(ext2_ino_t inode)
}
-void do_kill_file(int argc, char *argv[], int sci_idx EXT2FS_ATTR((unused)),
+void do_kill_file(int argc, ss_argv_t argv, int sci_idx EXT2FS_ATTR((unused)),
void *infop EXT2FS_ATTR((unused)))
{
ext2_ino_t inode_num;
@@ -1898,7 +1901,7 @@ void do_kill_file(int argc, char *argv[], int sci_idx EXT2FS_ATTR((unused)),
kill_file_by_inode(inode_num);
}
-void do_rm(int argc, char *argv[], int sci_idx EXT2FS_ATTR((unused)),
+void do_rm(int argc, ss_argv_t argv, int sci_idx EXT2FS_ATTR((unused)),
void *infop EXT2FS_ATTR((unused)))
{
int retval;
@@ -1960,7 +1963,7 @@ static int rmdir_proc(ext2_ino_t dir EXT2FS_ATTR((unused)),
return 0;
}
-void do_rmdir(int argc, char *argv[], int sci_idx EXT2FS_ATTR((unused)),
+void do_rmdir(int argc, ss_argv_t argv, int sci_idx EXT2FS_ATTR((unused)),
void *infop EXT2FS_ATTR((unused)))
{
int retval;
@@ -2019,7 +2022,7 @@ void do_rmdir(int argc, char *argv[], int sci_idx EXT2FS_ATTR((unused)),
#endif /* READ_ONLY */
void do_show_debugfs_params(int argc EXT2FS_ATTR((unused)),
- char *argv[] EXT2FS_ATTR((unused)),
+ ss_argv_t argv EXT2FS_ATTR((unused)),
int sci_idx EXT2FS_ATTR((unused)),
void *infop EXT2FS_ATTR((unused)))
{
@@ -2031,7 +2034,7 @@ void do_show_debugfs_params(int argc EXT2FS_ATTR((unused)),
}
#ifndef READ_ONLY
-void do_expand_dir(int argc, char *argv[], int sci_idx EXT2FS_ATTR((unused)),
+void do_expand_dir(int argc, ss_argv_t argv, int sci_idx EXT2FS_ATTR((unused)),
void *infop EXT2FS_ATTR((unused)))
{
ext2_ino_t inode;
@@ -2046,7 +2049,7 @@ void do_expand_dir(int argc, char *argv[], int sci_idx EXT2FS_ATTR((unused)),
return;
}
-void do_features(int argc, char *argv[], int sci_idx EXT2FS_ATTR((unused)),
+void do_features(int argc, ss_argv_t argv, int sci_idx EXT2FS_ATTR((unused)),
void *infop EXT2FS_ATTR((unused)))
{
int i;
@@ -2068,7 +2071,7 @@ void do_features(int argc, char *argv[], int sci_idx EXT2FS_ATTR((unused)),
}
#endif /* READ_ONLY */
-void do_bmap(int argc, char *argv[], int sci_idx EXT2FS_ATTR((unused)),
+void do_bmap(int argc, ss_argv_t argv, int sci_idx EXT2FS_ATTR((unused)),
void *infop EXT2FS_ATTR((unused)))
{
ext2_ino_t ino;
@@ -2133,7 +2136,7 @@ void do_bmap(int argc, char *argv[], int sci_idx EXT2FS_ATTR((unused)),
fputc('\n', stdout);
}
-void do_imap(int argc, char *argv[], int sci_idx EXT2FS_ATTR((unused)),
+void do_imap(int argc, ss_argv_t argv, int sci_idx EXT2FS_ATTR((unused)),
void *infop EXT2FS_ATTR((unused)))
{
ext2_ino_t ino;
@@ -2165,7 +2168,7 @@ void do_imap(int argc, char *argv[], int sci_idx EXT2FS_ATTR((unused)),
}
-void do_idump(int argc, char *argv[], int sci_idx EXT2FS_ATTR((unused)),
+void do_idump(int argc, ss_argv_t argv, int sci_idx EXT2FS_ATTR((unused)),
void *infop EXT2FS_ATTR((unused)))
{
struct ext2_inode_large *inode;
@@ -2236,7 +2239,7 @@ err:
}
#ifndef READ_ONLY
-void do_set_current_time(int argc, char *argv[],
+void do_set_current_time(int argc, ss_argv_t argv,
int sci_idx EXT2FS_ATTR((unused)),
void *infop EXT2FS_ATTR((unused)))
{
@@ -2297,7 +2300,7 @@ static int find_supp_feature(__u32 *supp, int feature_type, char *name)
return 0;
}
-void do_supported_features(int argc, char *argv[],
+void do_supported_features(int argc, ss_argv_t argv,
int sci_idx EXT2FS_ATTR((unused)),
void *infop EXT2FS_ATTR((unused)))
{
@@ -2327,7 +2330,7 @@ void do_supported_features(int argc, char *argv[],
}
#ifndef READ_ONLY
-void do_punch(int argc, char *argv[], int sci_idx EXT2FS_ATTR((unused)),
+void do_punch(int argc, ss_argv_t argv, int sci_idx EXT2FS_ATTR((unused)),
void *infop EXT2FS_ATTR((unused)))
{
ext2_ino_t ino;
@@ -2363,7 +2366,7 @@ void do_punch(int argc, char *argv[], int sci_idx EXT2FS_ATTR((unused)),
}
}
-void do_fallocate(int argc, char *argv[], int sci_idx EXT2FS_ATTR((unused)),
+void do_fallocate(int argc, ss_argv_t argv, int sci_idx EXT2FS_ATTR((unused)),
void *infop EXT2FS_ATTR((unused)))
{
ext2_ino_t ino;
@@ -2400,7 +2403,7 @@ void do_fallocate(int argc, char *argv[], int sci_idx EXT2FS_ATTR((unused)),
}
}
-void do_symlink(int argc, char *argv[], int sci_idx EXT2FS_ATTR((unused)),
+void do_symlink(int argc, ss_argv_t argv, int sci_idx EXT2FS_ATTR((unused)),
void *infop EXT2FS_ATTR((unused)))
{
errcode_t retval;
@@ -2417,7 +2420,7 @@ void do_symlink(int argc, char *argv[], int sci_idx EXT2FS_ATTR((unused)),
#endif /* READ_ONLY */
#if CONFIG_MMP
-void do_dump_mmp(int argc EXT2FS_ATTR((unused)), char *argv[],
+void do_dump_mmp(int argc EXT2FS_ATTR((unused)), ss_argv_t argv,
int sci_idx EXT2FS_ATTR((unused)),
void *infop EXT2FS_ATTR((unused)))
{
@@ -2483,7 +2486,7 @@ void do_dump_mmp(int argc EXT2FS_ATTR((unused)), char *argv[],
}
#else
void do_dump_mmp(int argc EXT2FS_ATTR((unused)),
- char *argv[] EXT2FS_ATTR((unused)),
+ ss_argv_t argv EXT2FS_ATTR((unused)),
int sci_idx EXT2FS_ATTR((unused)),
void *infop EXT2FS_ATTR((unused)))
{
diff --git a/debugfs/debugfs.h b/debugfs/debugfs.h
index 85c82b950..88d929cbf 100644
--- a/debugfs/debugfs.h
+++ b/debugfs/debugfs.h
@@ -44,12 +44,12 @@ extern unsigned long long parse_ulonglong(const char *str, const char *cmd,
const char *descr, int *err);
extern int strtoblk(const char *cmd, const char *str, const char *errmsg,
blk64_t *ret);
-extern int common_args_process(int argc, char *argv[], int min_argc,
+extern int common_args_process(int argc, ss_argv_t argv, int min_argc,
int max_argc, const char *cmd,
const char *usage, int flags);
-extern int common_inode_args_process(int argc, char *argv[],
+extern int common_inode_args_process(int argc, ss_argv_t argv,
ext2_ino_t *inode, int flags);
-extern int common_block_args_process(int argc, char *argv[],
+extern int common_block_args_process(int argc, ss_argv_t argv,
blk64_t *block, blk64_t *count);
extern int debugfs_read_inode(ext2_ino_t ino, struct ext2_inode * inode,
const char *cmd);
@@ -66,60 +66,60 @@ extern int ext2_file_type(unsigned int mode);
/* ss command functions */
/* dump.c */
-extern void do_dump(int argc, char **argv, int sci_idx, void *infop);
-extern void do_cat(int argc, char **argv, int sci_idx, void *infop);
-extern void do_rdump(int argc, char **argv, int sci_idx, void *infop);
+extern void do_dump(int argc, ss_argv_t argv, int sci_idx, void *infop);
+extern void do_cat(int argc, ss_argv_t argv, int sci_idx, void *infop);
+extern void do_rdump(int argc, ss_argv_t argv, int sci_idx, void *infop);
/* extent_inode.c */
-extern void do_extent_open(int argc, char **argv, int sci_idx, void *infop);
-extern void do_extent_close(int argc, char **argv, int sci_idx, void *infop);
-extern void do_current_node(int argc, char **argv, int sci_idx, void *infop);
-extern void do_root_node(int argc, char **argv, int sci_idx, void *infop);
-extern void do_last_leaf(int argc, char **argv, int sci_idx, void *infop);
-extern void do_first_sib(int argc, char **argv, int sci_idx, void *infop);
-extern void do_last_sib(int argc, char **argv, int sci_idx, void *infop);
-extern void do_next_sib(int argc, char **argv, int sci_idx, void *infop);
-extern void do_prev_sib(int argc, char **argv, int sci_idx, void *infop);
-extern void do_next_leaf(int argc, char **argv, int sci_idx, void *infop);
-extern void do_prev_leaf(int argc, char **argv, int sci_idx, void *infop);
-extern void do_next(int argc, char **argv, int sci_idx, void *infop);
-extern void do_prev(int argc, char **argv, int sci_idx, void *infop);
-extern void do_up(int argc, char **argv, int sci_idx, void *infop);
-extern void do_down(int argc, char **argv, int sci_idx, void *infop);
-extern void do_delete_node(int argc, char **argv, int sci_idx, void *infop);
-extern void do_replace_node(int argc, char **argv, int sci_idx, void *infop);
-extern void do_split_node(int argc, char **argv, int sci_idx, void *infop);
-extern void do_insert_node(int argc, char **argv, int sci_idx, void *infop);
-extern void do_set_bmap(int argc, char **argv, int sci_idx, void *infop);
-extern void do_print_all(int argc, char **argv, int sci_idx, void *infop);
-extern void do_fix_parents(int argc, char **argv, int sci_idx, void *infop);
-extern void do_info(int argc, char **argv, int sci_idx, void *infop);
-extern void do_goto_block(int argc, char **argv, int sci_idx, void *infop);
+extern void do_extent_open(int argc, ss_argv_t argv, int sci_idx, void *infop);
+extern void do_extent_close(int argc, ss_argv_t argv, int sci_idx, void *infop);
+extern void do_current_node(int argc, ss_argv_t argv, int sci_idx, void *infop);
+extern void do_root_node(int argc, ss_argv_t argv, int sci_idx, void *infop);
+extern void do_last_leaf(int argc, ss_argv_t argv, int sci_idx, void *infop);
+extern void do_first_sib(int argc, ss_argv_t argv, int sci_idx, void *infop);
+extern void do_last_sib(int argc, ss_argv_t argv, int sci_idx, void *infop);
+extern void do_next_sib(int argc, ss_argv_t argv, int sci_idx, void *infop);
+extern void do_prev_sib(int argc, ss_argv_t argv, int sci_idx, void *infop);
+extern void do_next_leaf(int argc, ss_argv_t argv, int sci_idx, void *infop);
+extern void do_prev_leaf(int argc, ss_argv_t argv, int sci_idx, void *infop);
+extern void do_next(int argc, ss_argv_t argv, int sci_idx, void *infop);
+extern void do_prev(int argc, ss_argv_t argv, int sci_idx, void *infop);
+extern void do_up(int argc, ss_argv_t argv, int sci_idx, void *infop);
+extern void do_down(int argc, ss_argv_t argv, int sci_idx, void *infop);
+extern void do_delete_node(int argc, ss_argv_t argv, int sci_idx, void *infop);
+extern void do_replace_node(int argc, ss_argv_t argv, int sci_idx, void *infop);
+extern void do_split_node(int argc, ss_argv_t argv, int sci_idx, void *infop);
+extern void do_insert_node(int argc, ss_argv_t argv, int sci_idx, void *infop);
+extern void do_set_bmap(int argc, ss_argv_t argv, int sci_idx, void *infop);
+extern void do_print_all(int argc, ss_argv_t argv, int sci_idx, void *infop);
+extern void do_fix_parents(int argc, ss_argv_t argv, int sci_idx, void *infop);
+extern void do_info(int argc, ss_argv_t argv, int sci_idx, void *infop);
+extern void do_goto_block(int argc, ss_argv_t argv, int sci_idx, void *infop);
/* htree.c */
-extern void do_htree_dump(int argc, char **argv, int sci_idx, void *infop);
-extern void do_dx_hash(int argc, char **argv, int sci_idx, void *infop);
-extern void do_dirsearch(int argc, char **argv, int sci_idx, void *infop);
+extern void do_htree_dump(int argc, ss_argv_t argv, int sci_idx, void *infop);
+extern void do_dx_hash(int argc, ss_argv_t argv, int sci_idx, void *infop);
+extern void do_dirsearch(int argc, ss_argv_t argv, int sci_idx, void *infop);
/* logdump.c */
-extern void do_logdump(int argc, char **argv, int sci_idx, void *infop);
+extern void do_logdump(int argc, ss_argv_t argv, int sci_idx, void *infop);
/* lsdel.c */
-extern void do_lsdel(int argc, char **argv, int sci_idx, void *infop);
+extern void do_lsdel(int argc, ss_argv_t argv, int sci_idx, void *infop);
/* icheck.c */
-extern void do_icheck(int argc, char **argv, int sci_idx, void *infop);
+extern void do_icheck(int argc, ss_argv_t argv, int sci_idx, void *infop);
/* ncheck.c */
-extern void do_ncheck(int argc, char **argv, int sci_idx, void *infop);
+extern void do_ncheck(int argc, ss_argv_t argv, int sci_idx, void *infop);
/* set_fields.c */
-extern void do_set_super(int argc, char **, int sci_idx, void *infop);
-extern void do_set_inode(int argc, char **, int sci_idx, void *infop);
-extern void do_set_block_group_descriptor(int argc, char **, int sci_idx, void *infop);
+extern void do_set_super(int argc, ss_argv_t argv, int sci_idx, void *infop);
+extern void do_set_inode(int argc, ss_argv_t argv, int sci_idx, void *infop);
+extern void do_set_block_group_descriptor(int argc, ss_argv_t argv, int sci_idx, void *infop);
/* unused.c */
-extern void do_dump_unused(int argc, char **argv, int sci_idx, void *infop);
+extern void do_dump_unused(int argc, ss_argv_t argv, int sci_idx, void *infop);
/* debugfs.c */
extern ss_request_table *extra_cmds;
@@ -127,68 +127,68 @@ extern const char *debug_prog_name;
extern void internal_dump_inode(FILE *, const char *, ext2_ino_t,
struct ext2_inode *, int);
-extern void do_dirty_filesys(int argc, char **argv, int sci_idx, void *infop);
-extern void do_open_filesys(int argc, char **argv, int sci_idx, void *infop);
-extern void do_close_filesys(int argc, char **argv, int sci_idx, void *infop);
-extern void do_lcd(int argc, char **argv, int sci_idx, void *infop);
-extern void do_init_filesys(int argc, char **argv, int sci_idx, void *infop);
-extern void do_show_super_stats(int argc, char **argv, int sci_idx, void *infop);
-extern void do_kill_file(int argc, char **argv, int sci_idx, void *infop);
-extern void do_rm(int argc, char **argv, int sci_idx, void *infop);
-extern void do_link(int argc, char **argv, int sci_idx, void *infop);
-extern void do_undel(int argc, char **argv, int sci_idx, void *infop);
-extern void do_unlink(int argc, char **argv, int sci_idx, void *infop);
-extern void do_copy_inode(int argc, char *argv[], int sci_idx, void *infop);
-extern void do_find_free_block(int argc, char **argv, int sci_idx, void *infop);
-extern void do_find_free_inode(int argc, char **argv, int sci_idx, void *infop);
-extern void do_stat(int argc, char **argv, int sci_idx, void *infop);
-extern void do_dump_extents(int argc, char **argv, int sci_idx, void *infop);
-extern void do_blocks(int argc, char *argv[], int sci_idx, void *infop);
-
-extern void do_chroot(int argc, char **argv, int sci_idx, void *infop);
-extern void do_clri(int argc, char **argv, int sci_idx, void *infop);
-extern void do_freei(int argc, char **argv, int sci_idx, void *infop);
-extern void do_seti(int argc, char **argv, int sci_idx, void *infop);
-extern void do_testi(int argc, char **argv, int sci_idx, void *infop);
-extern void do_freeb(int argc, char **argv, int sci_idx, void *infop);
-extern void do_setb(int argc, char **argv, int sci_idx, void *infop);
-extern void do_testb(int argc, char **argv, int sci_idx, void *infop);
-extern void do_modify_inode(int argc, char **argv, int sci_idx, void *infop);
-extern void do_list_dir(int argc, char **argv, int sci_idx, void *infop);
-extern void do_change_working_dir(int argc, char **argv, int sci_idx, void *infop);
-extern void do_print_working_directory(int argc, char **argv, int sci_idx, void *infop);
-extern void do_write(int argc, char **argv, int sci_idx, void *infop);
-extern void do_mknod(int argc, char **argv, int sci_idx, void *infop);
-extern void do_mkdir(int argc, char **argv, int sci_idx, void *infop);
-extern void do_rmdir(int argc, char **argv, int sci_idx, void *infop);
-extern void do_show_debugfs_params(int argc, char **argv, int sci_idx, void *infop);
-extern void do_expand_dir(int argc, char **argv, int sci_idx, void *infop);
-extern void do_features(int argc, char **argv, int sci_idx, void *infop);
-extern void do_bmap(int argc, char **argv, int sci_idx, void *infop);
-extern void do_imap(int argc, char **argv, int sci_idx, void *infop);
-extern void do_idump(int argc, char *argv[], int sci_idx, void *infop);
-extern void do_set_current_time(int argc, char **argv, int sci_idx, void *infop);
-extern void do_supported_features(int argc, char **argv, int sci_idx, void *infop);
-extern void do_punch(int argc, char **argv, int sci_idx, void *infop);
-extern void do_fallocate(int argc, char **argv, int sci_idx, void *infop);
-extern void do_symlink(int argc, char **argv, int sci_idx, void *infop);
-
-extern void do_dump_mmp(int argc, char **argv, int sci_idx, void *infop);
-extern void do_set_mmp_value(int argc, char **argv, int sci_idx, void *infop);
-
-extern void do_freefrag(int argc, char **argv, int sci_idx, void *infop);
-extern void do_filefrag(int argc, char *argv[], int sci_idx, void *infop);
+extern void do_dirty_filesys(int argc, ss_argv_t argv, int sci_idx, void *infop);
+extern void do_open_filesys(int argc, ss_argv_t argv, int sci_idx, void *infop);
+extern void do_close_filesys(int argc, ss_argv_t argv, int sci_idx, void *infop);
+extern void do_lcd(int argc, ss_argv_t argv, int sci_idx, void *infop);
+extern void do_init_filesys(int argc, ss_argv_t argv, int sci_idx, void *infop);
+extern void do_show_super_stats(int argc, ss_argv_t argv, int sci_idx, void *infop);
+extern void do_kill_file(int argc, ss_argv_t argv, int sci_idx, void *infop);
+extern void do_rm(int argc, ss_argv_t argv, int sci_idx, void *infop);
+extern void do_link(int argc, ss_argv_t argv, int sci_idx, void *infop);
+extern void do_undel(int argc, ss_argv_t argv, int sci_idx, void *infop);
+extern void do_unlink(int argc, ss_argv_t argv, int sci_idx, void *infop);
+extern void do_copy_inode(int argc, ss_argv_t argv, int sci_idx, void *infop);
+extern void do_find_free_block(int argc, ss_argv_t argv, int sci_idx, void *infop);
+extern void do_find_free_inode(int argc, ss_argv_t argv, int sci_idx, void *infop);
+extern void do_stat(int argc, ss_argv_t argv, int sci_idx, void *infop);
+extern void do_dump_extents(int argc, ss_argv_t argv, int sci_idx, void *infop);
+extern void do_blocks(int argc, ss_argv_t argv, int sci_idx, void *infop);
+
+extern void do_chroot(int argc, ss_argv_t argv, int sci_idx, void *infop);
+extern void do_clri(int argc, ss_argv_t argv, int sci_idx, void *infop);
+extern void do_freei(int argc, ss_argv_t argv, int sci_idx, void *infop);
+extern void do_seti(int argc, ss_argv_t argv, int sci_idx, void *infop);
+extern void do_testi(int argc, ss_argv_t argv, int sci_idx, void *infop);
+extern void do_freeb(int argc, ss_argv_t argv, int sci_idx, void *infop);
+extern void do_setb(int argc, ss_argv_t argv, int sci_idx, void *infop);
+extern void do_testb(int argc, ss_argv_t argv, int sci_idx, void *infop);
+extern void do_modify_inode(int argc, ss_argv_t argv, int sci_idx, void *infop);
+extern void do_list_dir(int argc, ss_argv_t argv, int sci_idx, void *infop);
+extern void do_change_working_dir(int argc, ss_argv_t argv, int sci_idx, void *infop);
+extern void do_print_working_directory(int argc, ss_argv_t argv, int sci_idx, void *infop);
+extern void do_write(int argc, ss_argv_t argv, int sci_idx, void *infop);
+extern void do_mknod(int argc, ss_argv_t argv, int sci_idx, void *infop);
+extern void do_mkdir(int argc, ss_argv_t argv, int sci_idx, void *infop);
+extern void do_rmdir(int argc, ss_argv_t argv, int sci_idx, void *infop);
+extern void do_show_debugfs_params(int argc, ss_argv_t argv, int sci_idx, void *infop);
+extern void do_expand_dir(int argc, ss_argv_t argv, int sci_idx, void *infop);
+extern void do_features(int argc, ss_argv_t argv, int sci_idx, void *infop);
+extern void do_bmap(int argc, ss_argv_t argv, int sci_idx, void *infop);
+extern void do_imap(int argc, ss_argv_t argv, int sci_idx, void *infop);
+extern void do_idump(int argc, ss_argv_t argv, int sci_idx, void *infop);
+extern void do_set_current_time(int argc, ss_argv_t argv, int sci_idx, void *infop);
+extern void do_supported_features(int argc, ss_argv_t argv, int sci_idx, void *infop);
+extern void do_punch(int argc, ss_argv_t argv, int sci_idx, void *infop);
+extern void do_fallocate(int argc, ss_argv_t argv, int sci_idx, void *infop);
+extern void do_symlink(int argc, ss_argv_t argv, int sci_idx, void *infop);
+
+extern void do_dump_mmp(int argc, ss_argv_t argv, int sci_idx, void *infop);
+extern void do_set_mmp_value(int argc, ss_argv_t argv, int sci_idx, void *infop);
+
+extern void do_freefrag(int argc, ss_argv_t argv, int sci_idx, void *infop);
+extern void do_filefrag(int argc, ss_argv_t argv, int sci_idx, void *infop);
/* do_journal.c */
-extern void do_journal_write(int argc, char *argv[], int sci_idx, void *infop);
-extern void do_journal_open(int argc, char *argv[], int sci_idx, void *infop);
-extern void do_journal_close(int argc, char *argv[], int sci_idx, void *infop);
-extern void do_journal_run(int argc, char *argv[], int sci_idx, void *infop);
+extern void do_journal_write(int argc, ss_argv_t argv, int sci_idx, void *infop);
+extern void do_journal_open(int argc, ss_argv_t argv, int sci_idx, void *infop);
+extern void do_journal_close(int argc, ss_argv_t argv, int sci_idx, void *infop);
+extern void do_journal_run(int argc, ss_argv_t argv, int sci_idx, void *infop);
/* quota.c */
-extern void do_list_quota(int argc, char *argv[], int sci_idx, void *infop);
-extern void do_get_quota(int argc, char *argv[], int sci_idx, void *infop);
+extern void do_list_quota(int argc, ss_argv_t argv, int sci_idx, void *infop);
+extern void do_get_quota(int argc, ss_argv_t argv, int sci_idx, void *infop);
/* util.c */
extern __s64 string_to_time(const char *arg);
@@ -197,13 +197,13 @@ extern void do_byte_hexdump(FILE *fp, unsigned char *buf, size_t bufsize);
/* xattrs.c */
void dump_inode_attributes(FILE *out, ext2_ino_t ino);
-void do_get_xattr(int argc, char **argv, int sci_idx, void *infop);
-void do_set_xattr(int argc, char **argv, int sci_idx, void *infop);
-void do_rm_xattr(int argc, char **argv, int sci_idx, void *infop);
-void do_list_xattr(int argc, char **argv, int sci_idx, void *infop);
+void do_get_xattr(int argc, ss_argv_t argv, int sci_idx, void *infop);
+void do_set_xattr(int argc, ss_argv_t argv, int sci_idx, void *infop);
+void do_rm_xattr(int argc, ss_argv_t argv, int sci_idx, void *infop);
+void do_list_xattr(int argc, ss_argv_t argv, int sci_idx, void *infop);
void raw_inode_xattr_dump(FILE *f, unsigned char *buf, unsigned int len);
void block_xattr_dump(FILE *f, unsigned char *buf, unsigned int len);
/* zap.c */
-extern void do_zap_block(int argc, char **argv, int sci_idx, void *infop);
-extern void do_block_dump(int argc, char **argv, int sci_idx, void *infop);
+extern void do_zap_block(int argc, ss_argv_t argv, int sci_idx, void *infop);
+extern void do_block_dump(int argc, ss_argv_t argv, int sci_idx, void *infop);
diff --git a/debugfs/do_journal.c b/debugfs/do_journal.c
index 38439c692..116ca845d 100644
--- a/debugfs/do_journal.c
+++ b/debugfs/do_journal.c
@@ -534,7 +534,7 @@ error:
return err;
}
-void do_journal_write(int argc, char *argv[], int sci_idx EXT2FS_ATTR((unused)),
+void do_journal_write(int argc, ss_argv_t argv, int sci_idx EXT2FS_ATTR((unused)),
void *infop EXT2FS_ATTR((unused)))
{
blk64_t *blist = NULL, *rlist = NULL;
@@ -862,7 +862,7 @@ static void update_64bit_flag(journal_t *journal)
jbd2_set_feature_64bit(journal);
}
-void do_journal_open(int argc, char *argv[], int sci_idx EXT2FS_ATTR((unused)),
+void do_journal_open(int argc, ss_argv_t argv, int sci_idx EXT2FS_ATTR((unused)),
void *infop EXT2FS_ATTR((unused)))
{
int opt, enable_csum = 0, csum_ver = 3;
@@ -933,7 +933,7 @@ void do_journal_open(int argc, char *argv[], int sci_idx EXT2FS_ATTR((unused)),
}
void do_journal_close(int argc EXT2FS_ATTR((unused)),
- char *argv[] EXT2FS_ATTR((unused)),
+ ss_argv_t argv EXT2FS_ATTR((unused)),
int sci_idx EXT2FS_ATTR((unused)),
void *infop EXT2FS_ATTR((unused)))
{
@@ -945,7 +945,7 @@ void do_journal_close(int argc EXT2FS_ATTR((unused)),
ext2fs_close_journal(current_fs, &current_journal);
}
-void do_journal_run(int argc EXT2FS_ATTR((unused)), char *argv[],
+void do_journal_run(int argc EXT2FS_ATTR((unused)), ss_argv_t argv,
int sci_idx EXT2FS_ATTR((unused)),
void *infop EXT2FS_ATTR((unused)))
{
diff --git a/debugfs/dump.c b/debugfs/dump.c
index 42f5204a8..4ab7cadcb 100644
--- a/debugfs/dump.c
+++ b/debugfs/dump.c
@@ -144,7 +144,7 @@ static void dump_file(const char *cmdname, ext2_ino_t ino, int fd,
return;
}
-void do_dump(int argc, char **argv, int sci_idx EXT2FS_ATTR((unused)),
+void do_dump(int argc, ss_argv_t argv, int sci_idx EXT2FS_ATTR((unused)),
void *infop EXT2FS_ATTR((unused)))
{
ext2_ino_t inode;
@@ -323,7 +323,7 @@ static int rdump_dirent(struct ext2_dir_entry *dirent,
return 0;
}
-void do_rdump(int argc, char **argv, int sci_idx EXT2FS_ATTR((unused)),
+void do_rdump(int argc, ss_argv_t argv, int sci_idx EXT2FS_ATTR((unused)),
void *infop EXT2FS_ATTR((unused)))
{
struct stat st;
@@ -368,7 +368,7 @@ void do_rdump(int argc, char **argv, int sci_idx EXT2FS_ATTR((unused)),
}
}
-void do_cat(int argc, char **argv, int sci_idx EXT2FS_ATTR((unused)),
+void do_cat(int argc, ss_argv_t argv, int sci_idx EXT2FS_ATTR((unused)),
void *infop EXT2FS_ATTR((unused)))
{
ext2_ino_t inode;
diff --git a/debugfs/extent_inode.c b/debugfs/extent_inode.c
index e4e815ef4..6ef054d1a 100644
--- a/debugfs/extent_inode.c
+++ b/debugfs/extent_inode.c
@@ -48,7 +48,7 @@ static void dbg_print_extent(char *desc, struct ext2fs_extent *extent)
}
-static int common_extent_args_process(int argc, char *argv[], int min_argc,
+static int common_extent_args_process(int argc, ss_argv_t argv, int min_argc,
int max_argc, const char *cmd,
const char *usage, int flags)
{
@@ -65,7 +65,7 @@ static int common_extent_args_process(int argc, char *argv[], int min_argc,
static char *orig_prompt, *extent_prompt;
-void do_extent_open(int argc, char *argv[], int sci_idx EXT2FS_ATTR((unused)),
+void do_extent_open(int argc, ss_argv_t argv, int sci_idx EXT2FS_ATTR((unused)),
void *infop EXT2FS_ATTR((unused)))
{
ext2_ino_t inode;
@@ -115,7 +115,7 @@ void do_extent_open(int argc, char *argv[], int sci_idx EXT2FS_ATTR((unused)),
return;
}
-void do_extent_close(int argc, char *argv[], int sci_idx EXT2FS_ATTR((unused)),
+void do_extent_close(int argc, ss_argv_t argv, int sci_idx EXT2FS_ATTR((unused)),
void *infop EXT2FS_ATTR((unused)))
{
int ret;
@@ -139,7 +139,7 @@ void do_extent_close(int argc, char *argv[], int sci_idx EXT2FS_ATTR((unused)),
}
static void generic_goto_node(const char *my_name, int argc,
- char **argv, int op)
+ ss_argv_t argv, int op)
{
struct ext2fs_extent extent;
errcode_t retval;
@@ -161,85 +161,85 @@ static void generic_goto_node(const char *my_name, int argc,
dbg_print_extent(0, &extent);
}
-void do_current_node(int argc, char *argv[], int sci_idx EXT2FS_ATTR((unused)),
+void do_current_node(int argc, ss_argv_t argv, int sci_idx EXT2FS_ATTR((unused)),
void *infop EXT2FS_ATTR((unused)))
{
generic_goto_node("current_node", argc, argv, EXT2_EXTENT_CURRENT);
}
-void do_root_node(int argc, char *argv[], int sci_idx EXT2FS_ATTR((unused)),
+void do_root_node(int argc, ss_argv_t argv, int sci_idx EXT2FS_ATTR((unused)),
void *infop EXT2FS_ATTR((unused)))
{
generic_goto_node("root_node", argc, argv, EXT2_EXTENT_ROOT);
}
-void do_last_leaf(int argc, char *argv[], int sci_idx EXT2FS_ATTR((unused)),
+void do_last_leaf(int argc, ss_argv_t argv, int sci_idx EXT2FS_ATTR((unused)),
void *infop EXT2FS_ATTR((unused)))
{
generic_goto_node("last_leaf", argc, argv, EXT2_EXTENT_LAST_LEAF);
}
-void do_first_sib(int argc, char *argv[], int sci_idx EXT2FS_ATTR((unused)),
+void do_first_sib(int argc, ss_argv_t argv, int sci_idx EXT2FS_ATTR((unused)),
void *infop EXT2FS_ATTR((unused)))
{
generic_goto_node("first_sib", argc, argv, EXT2_EXTENT_FIRST_SIB);
}
-void do_last_sib(int argc, char *argv[], int sci_idx EXT2FS_ATTR((unused)),
+void do_last_sib(int argc, ss_argv_t argv, int sci_idx EXT2FS_ATTR((unused)),
void *infop EXT2FS_ATTR((unused)))
{
generic_goto_node("next_sib", argc, argv, EXT2_EXTENT_LAST_SIB);
}
-void do_next_sib(int argc, char *argv[], int sci_idx EXT2FS_ATTR((unused)),
+void do_next_sib(int argc, ss_argv_t argv, int sci_idx EXT2FS_ATTR((unused)),
void *infop EXT2FS_ATTR((unused)))
{
generic_goto_node("next_sib", argc, argv, EXT2_EXTENT_NEXT_SIB);
}
-void do_prev_sib(int argc, char *argv[], int sci_idx EXT2FS_ATTR((unused)),
+void do_prev_sib(int argc, ss_argv_t argv, int sci_idx EXT2FS_ATTR((unused)),
void *infop EXT2FS_ATTR((unused)))
{
generic_goto_node("prev_sib", argc, argv, EXT2_EXTENT_PREV_SIB);
}
-void do_next_leaf(int argc, char *argv[], int sci_idx EXT2FS_ATTR((unused)),
+void do_next_leaf(int argc, ss_argv_t argv, int sci_idx EXT2FS_ATTR((unused)),
void *infop EXT2FS_ATTR((unused)))
{
generic_goto_node("next_leaf", argc, argv, EXT2_EXTENT_NEXT_LEAF);
}
-void do_prev_leaf(int argc, char *argv[], int sci_idx EXT2FS_ATTR((unused)),
+void do_prev_leaf(int argc, ss_argv_t argv, int sci_idx EXT2FS_ATTR((unused)),
void *infop EXT2FS_ATTR((unused)))
{
generic_goto_node("prev_leaf", argc, argv, EXT2_EXTENT_PREV_LEAF);
}
-void do_next(int argc, char *argv[], int sci_idx EXT2FS_ATTR((unused)),
+void do_next(int argc, ss_argv_t argv, int sci_idx EXT2FS_ATTR((unused)),
void *infop EXT2FS_ATTR((unused)))
{
generic_goto_node("next", argc, argv, EXT2_EXTENT_NEXT);
}
-void do_prev(int argc, char *argv[], int sci_idx EXT2FS_ATTR((unused)),
+void do_prev(int argc, ss_argv_t argv, int sci_idx EXT2FS_ATTR((unused)),
void *infop EXT2FS_ATTR((unused)))
{
generic_goto_node("prev", argc, argv, EXT2_EXTENT_PREV);
}
-void do_up(int argc, char *argv[], int sci_idx EXT2FS_ATTR((unused)),
+void do_up(int argc, ss_argv_t argv, int sci_idx EXT2FS_ATTR((unused)),
void *infop EXT2FS_ATTR((unused)))
{
generic_goto_node("up", argc, argv, EXT2_EXTENT_UP);
}
-void do_down(int argc, char *argv[], int sci_idx EXT2FS_ATTR((unused)),
+void do_down(int argc, ss_argv_t argv, int sci_idx EXT2FS_ATTR((unused)),
void *infop EXT2FS_ATTR((unused)))
{
generic_goto_node("down", argc, argv, EXT2_EXTENT_DOWN);
}
-void do_delete_node(int argc, char *argv[], int sci_idx EXT2FS_ATTR((unused)),
+void do_delete_node(int argc, ss_argv_t argv, int sci_idx EXT2FS_ATTR((unused)),
void *infop EXT2FS_ATTR((unused)))
{
struct ext2fs_extent extent;
@@ -262,7 +262,7 @@ void do_delete_node(int argc, char *argv[], int sci_idx EXT2FS_ATTR((unused)),
dbg_print_extent(0, &extent);
}
-void do_replace_node(int argc, char *argv[], int sci_idx EXT2FS_ATTR((unused)),
+void do_replace_node(int argc, ss_argv_t argv, int sci_idx EXT2FS_ATTR((unused)),
void *infop EXT2FS_ATTR((unused)))
{
const char *usage = "[--uninit] <lblk> <len> <pblk>";
@@ -307,7 +307,7 @@ void do_replace_node(int argc, char *argv[], int sci_idx EXT2FS_ATTR((unused)),
generic_goto_node(NULL, argc, argv, EXT2_EXTENT_CURRENT);
}
-void do_split_node(int argc, char *argv[], int sci_idx EXT2FS_ATTR((unused)),
+void do_split_node(int argc, ss_argv_t argv, int sci_idx EXT2FS_ATTR((unused)),
void *infop EXT2FS_ATTR((unused)))
{
errcode_t retval;
@@ -324,7 +324,7 @@ void do_split_node(int argc, char *argv[], int sci_idx EXT2FS_ATTR((unused)),
generic_goto_node(NULL, argc, argv, EXT2_EXTENT_CURRENT);
}
-void do_insert_node(int argc, char *argv[], int sci_idx EXT2FS_ATTR((unused)),
+void do_insert_node(int argc, ss_argv_t argv, int sci_idx EXT2FS_ATTR((unused)),
void *infop EXT2FS_ATTR((unused)))
{
const char *usage = "[--after] [--uninit] <lblk> <len> <pblk>";
@@ -383,7 +383,7 @@ void do_insert_node(int argc, char *argv[], int sci_idx EXT2FS_ATTR((unused)),
generic_goto_node(NULL, argc, argv, EXT2_EXTENT_CURRENT);
}
-void do_set_bmap(int argc, char **argv, int sci_idx EXT2FS_ATTR((unused)),
+void do_set_bmap(int argc, ss_argv_t argv, int sci_idx EXT2FS_ATTR((unused)),
void *infop EXT2FS_ATTR((unused)))
{
const char *usage = "[--uninit] <lblk> <pblk>";
@@ -432,7 +432,7 @@ void do_set_bmap(int argc, char **argv, int sci_idx EXT2FS_ATTR((unused)),
dbg_print_extent(0, &extent);
}
-void do_print_all(int argc, char **argv, int sci_idx EXT2FS_ATTR((unused)),
+void do_print_all(int argc, ss_argv_t argv, int sci_idx EXT2FS_ATTR((unused)),
void *infop EXT2FS_ATTR((unused)))
{
const char *usage = "[--leaf-only|--reverse|--reverse-leaf]";
@@ -484,7 +484,7 @@ void do_print_all(int argc, char **argv, int sci_idx EXT2FS_ATTR((unused)),
}
}
-void do_fix_parents(int argc, char **argv, int sci_idx EXT2FS_ATTR((unused)),
+void do_fix_parents(int argc, ss_argv_t argv, int sci_idx EXT2FS_ATTR((unused)),
void *infop EXT2FS_ATTR((unused)))
{
errcode_t retval;
@@ -500,7 +500,7 @@ void do_fix_parents(int argc, char **argv, int sci_idx EXT2FS_ATTR((unused)),
}
}
-void do_info(int argc, char **argv, int sci_idx EXT2FS_ATTR((unused)),
+void do_info(int argc, ss_argv_t argv, int sci_idx EXT2FS_ATTR((unused)),
void *infop EXT2FS_ATTR((unused)))
{
struct ext2fs_extent extent;
@@ -535,7 +535,7 @@ void do_info(int argc, char **argv, int sci_idx EXT2FS_ATTR((unused)),
info.max_uninit_len);
}
-void do_goto_block(int argc, char **argv, int sci_idx EXT2FS_ATTR((unused)),
+void do_goto_block(int argc, ss_argv_t argv, int sci_idx EXT2FS_ATTR((unused)),
void *infop EXT2FS_ATTR((unused)))
{
errcode_t retval;
diff --git a/debugfs/filefrag.c b/debugfs/filefrag.c
index 31c1440c5..9bda65def 100644
--- a/debugfs/filefrag.c
+++ b/debugfs/filefrag.c
@@ -264,7 +264,7 @@ static void dir_iterate(ext2_ino_t ino, struct filefrag_struct *fs)
}
}
-void do_filefrag(int argc, char *argv[], int sci_idx EXT2FS_ATTR((unused)),
+void do_filefrag(int argc, ss_argv_t argv, int sci_idx EXT2FS_ATTR((unused)),
void *infop EXT2FS_ATTR((unused)))
{
struct filefrag_struct fs;
diff --git a/debugfs/htree.c b/debugfs/htree.c
index 73a68e92c..a10081507 100644
--- a/debugfs/htree.c
+++ b/debugfs/htree.c
@@ -245,7 +245,7 @@ errout:
-void do_htree_dump(int argc, char *argv[], int sci_idx EXT2FS_ATTR((unused)),
+void do_htree_dump(int argc, ss_argv_t argv, int sci_idx EXT2FS_ATTR((unused)),
void *infop EXT2FS_ATTR((unused)))
{
ext2_ino_t ino;
@@ -329,7 +329,7 @@ errout:
/*
* This function prints the hash of a given file.
*/
-void do_dx_hash(int argc, char *argv[], int sci_idx EXT2FS_ATTR((unused)),
+void do_dx_hash(int argc, ss_argv_t argv, int sci_idx EXT2FS_ATTR((unused)),
void *infop EXT2FS_ATTR((unused)))
{
ext2_dirhash_t hash, minor_hash;
@@ -425,7 +425,7 @@ static int search_dir_block(ext2_filsys fs, blk64_t *blocknr,
e2_blkcnt_t blockcnt, blk64_t ref_blk,
int ref_offset, void *priv_data);
-void do_dirsearch(int argc, char *argv[], int sci_idx EXT2FS_ATTR((unused)),
+void do_dirsearch(int argc, ss_argv_t argv, int sci_idx EXT2FS_ATTR((unused)),
void *infop EXT2FS_ATTR((unused)))
{
ext2_ino_t inode;
diff --git a/debugfs/icheck.c b/debugfs/icheck.c
index ed6e95092..175d12c9d 100644
--- a/debugfs/icheck.c
+++ b/debugfs/icheck.c
@@ -53,7 +53,7 @@ static int icheck_proc(ext2_filsys fs EXT2FS_ATTR((unused)),
return 0;
}
-void do_icheck(int argc, char **argv, int sci_idx EXT2FS_ATTR((unused)),
+void do_icheck(int argc, ss_argv_t argv, int sci_idx EXT2FS_ATTR((unused)),
void *infop EXT2FS_ATTR((unused)))
{
struct block_walk_struct bw;
diff --git a/debugfs/logdump.c b/debugfs/logdump.c
index c4d466483..324ed425c 100644
--- a/debugfs/logdump.c
+++ b/debugfs/logdump.c
@@ -86,7 +86,7 @@ static void do_hexdump (FILE *, char *, int);
wrapped_flag = true; \
}
-void do_logdump(int argc, char **argv, int sci_idx EXT2FS_ATTR((unused)),
+void do_logdump(int argc, ss_argv_t argv, int sci_idx EXT2FS_ATTR((unused)),
void *infop EXT2FS_ATTR((unused)))
{
int c;
diff --git a/debugfs/ls.c b/debugfs/ls.c
index 525f084b8..613ad7380 100644
--- a/debugfs/ls.c
+++ b/debugfs/ls.c
@@ -179,7 +179,7 @@ static int list_dir_proc(ext2_ino_t dir EXT2FS_ATTR((unused)),
return 0;
}
-void do_list_dir(int argc, char *argv[], int sci_idx EXT2FS_ATTR((unused)),
+void do_list_dir(int argc, ss_argv_t argv, int sci_idx EXT2FS_ATTR((unused)),
void *infop EXT2FS_ATTR((unused)))
{
struct ext2_inode inode;
diff --git a/debugfs/lsdel.c b/debugfs/lsdel.c
index 52c741973..a09fa8323 100644
--- a/debugfs/lsdel.c
+++ b/debugfs/lsdel.c
@@ -71,7 +71,7 @@ static int lsdel_proc(ext2_filsys fs,
return 0;
}
-void do_lsdel(int argc, char **argv, int sci_idx EXT2FS_ATTR((unused)),
+void do_lsdel(int argc, ss_argv_t argv, int sci_idx EXT2FS_ATTR((unused)),
void *infop EXT2FS_ATTR((unused)))
{
struct lsdel_struct lsd;
diff --git a/debugfs/ncheck.c b/debugfs/ncheck.c
index 963b3a12b..1410e7c6d 100644
--- a/debugfs/ncheck.c
+++ b/debugfs/ncheck.c
@@ -90,7 +90,7 @@ static int ncheck_proc(struct ext2_dir_entry *dirent,
return 0;
}
-void do_ncheck(int argc, char **argv, int sci_idx EXT2FS_ATTR((unused)),
+void do_ncheck(int argc, ss_argv_t argv, int sci_idx EXT2FS_ATTR((unused)),
void *infop EXT2FS_ATTR((unused)))
{
struct inode_walk_struct iw;
diff --git a/debugfs/quota.c b/debugfs/quota.c
index 1da1e03c6..7d8e82f66 100644
--- a/debugfs/quota.c
+++ b/debugfs/quota.c
@@ -102,7 +102,7 @@ static int list_quota_callback(struct dquot *dq,
return 0;
}
-void do_list_quota(int argc, char *argv[], int sci_idx EXT2FS_ATTR((unused)),
+void do_list_quota(int argc, ss_argv_t argv, int sci_idx EXT2FS_ATTR((unused)),
void *infop EXT2FS_ATTR((unused)))
{
errcode_t retval;
@@ -132,7 +132,7 @@ void do_list_quota(int argc, char *argv[], int sci_idx EXT2FS_ATTR((unused)),
}
}
-void do_get_quota(int argc, char *argv[], int sci_idx EXT2FS_ATTR((unused)),
+void do_get_quota(int argc, ss_argv_t argv, int sci_idx EXT2FS_ATTR((unused)),
void *infop EXT2FS_ATTR((unused)))
{
int err, type;
diff --git a/debugfs/set_fields.c b/debugfs/set_fields.c
index 4980a63d8..bfe8a139b 100644
--- a/debugfs/set_fields.c
+++ b/debugfs/set_fields.c
@@ -844,7 +844,7 @@ static void print_possible_fields(struct field_set_info *fields)
}
-void do_set_super(int argc, char *argv[], int sci_idx EXT2FS_ATTR((unused)),
+void do_set_super(int argc, ss_argv_t argv, int sci_idx EXT2FS_ATTR((unused)),
void *infop EXT2FS_ATTR((unused)))
{
const char *usage = "<field> <value>\n"
@@ -872,7 +872,7 @@ void do_set_super(int argc, char *argv[], int sci_idx EXT2FS_ATTR((unused)),
}
}
-void do_set_inode(int argc, char *argv[], int sci_idx EXT2FS_ATTR((unused)),
+void do_set_inode(int argc, ss_argv_t argv, int sci_idx EXT2FS_ATTR((unused)),
void *infop EXT2FS_ATTR((unused)))
{
const char *usage = "<inode> <field> <value>\n"
@@ -914,7 +914,7 @@ void do_set_inode(int argc, char *argv[], int sci_idx EXT2FS_ATTR((unused)),
}
}
-void do_set_block_group_descriptor(int argc, char *argv[],
+void do_set_block_group_descriptor(int argc, ss_argv_t argv,
int sci_idx EXT2FS_ATTR((unused)),
void *infop EXT2FS_ATTR((unused)))
{
@@ -994,7 +994,7 @@ static errcode_t parse_mmp_clear(struct field_set_info *info,
}
#ifdef CONFIG_MMP
-void do_set_mmp_value(int argc, char *argv[], int sci_idx EXT2FS_ATTR((unused)),
+void do_set_mmp_value(int argc, ss_argv_t argv, int sci_idx EXT2FS_ATTR((unused)),
void *infop EXT2FS_ATTR((unused)))
{
const char *usage = "<field> <value>\n"
@@ -1054,7 +1054,7 @@ void do_set_mmp_value(int argc, char *argv[], int sci_idx EXT2FS_ATTR((unused)),
}
#else
void do_set_mmp_value(int argc EXT2FS_ATTR((unused)),
- char *argv[] EXT2FS_ATTR((unused)),
+ ss_argv_t argv EXT2FS_ATTR((unused)),
int sci_idx EXT2FS_ATTR((unused)),
void *infop EXT2FS_ATTR((unused)))
{
diff --git a/debugfs/unused.c b/debugfs/unused.c
index 08191a0e4..3d97cc473 100644
--- a/debugfs/unused.c
+++ b/debugfs/unused.c
@@ -25,7 +25,7 @@ extern char *optarg;
#include "debugfs.h"
-void do_dump_unused(int argc EXT2FS_ATTR((unused)), char **argv,
+void do_dump_unused(int argc EXT2FS_ATTR((unused)), ss_argv_t argv,
int sci_idx EXT2FS_ATTR((unused)),
void *infop EXT2FS_ATTR((unused)))
{
diff --git a/debugfs/util.c b/debugfs/util.c
index d3ef63c68..00ab6f6a2 100644
--- a/debugfs/util.c
+++ b/debugfs/util.c
@@ -347,7 +347,7 @@ int strtoblk(const char *cmd, const char *str, const char *errmsg,
* This is a common helper function used by the command processing
* routines
*/
-int common_args_process(int argc, char *argv[], int min_argc, int max_argc,
+int common_args_process(int argc, ss_argv_t argv, int min_argc, int max_argc,
const char *cmd, const char *usage, int flags)
{
if (argc < min_argc || argc > max_argc) {
@@ -373,7 +373,7 @@ int common_args_process(int argc, char *argv[], int min_argc, int max_argc,
* do_testi, etc. Basically, any command which takes a single
* argument which is a file/inode number specifier.
*/
-int common_inode_args_process(int argc, char *argv[],
+int common_inode_args_process(int argc, ss_argv_t argv,
ext2_ino_t *inode, int flags)
{
if (common_args_process(argc, argv, 2, 2, argv[0], "<file>", flags))
@@ -388,7 +388,7 @@ int common_inode_args_process(int argc, char *argv[],
/*
* This is a helper function used by do_freeb, do_setb, and do_testb
*/
-int common_block_args_process(int argc, char *argv[],
+int common_block_args_process(int argc, ss_argv_t argv,
blk64_t *block, blk64_t *count)
{
int err;
diff --git a/debugfs/xattrs.c b/debugfs/xattrs.c
index cd042bc8b..b518941c9 100644
--- a/debugfs/xattrs.c
+++ b/debugfs/xattrs.c
@@ -117,7 +117,7 @@ out:
err = ext2fs_xattrs_close(&h);
}
-void do_list_xattr(int argc, char **argv, int sci_idx EXT2FS_ATTR((unused)),
+void do_list_xattr(int argc, ss_argv_t argv, int sci_idx EXT2FS_ATTR((unused)),
void *infop EXT2FS_ATTR((unused)))
{
ext2_ino_t ino;
@@ -138,7 +138,7 @@ void do_list_xattr(int argc, char **argv, int sci_idx EXT2FS_ATTR((unused)),
dump_inode_attributes(stdout, ino);
}
-void do_get_xattr(int argc, char **argv, int sci_idx EXT2FS_ATTR((unused)),
+void do_get_xattr(int argc, ss_argv_t argv, int sci_idx EXT2FS_ATTR((unused)),
void *infop EXT2FS_ATTR((unused)))
{
ext2_ino_t ino;
@@ -236,7 +236,7 @@ out2:
fclose(fp);
}
-void do_set_xattr(int argc, char **argv, int sci_idx EXT2FS_ATTR((unused)),
+void do_set_xattr(int argc, ss_argv_t argv, int sci_idx EXT2FS_ATTR((unused)),
void *infop EXT2FS_ATTR((unused)))
{
ext2_ino_t ino;
@@ -320,7 +320,7 @@ out2:
}
}
-void do_rm_xattr(int argc, char **argv, int sci_idx EXT2FS_ATTR((unused)),
+void do_rm_xattr(int argc, ss_argv_t argv, int sci_idx EXT2FS_ATTR((unused)),
void *infop EXT2FS_ATTR((unused)))
{
ext2_ino_t ino;
diff --git a/debugfs/zap.c b/debugfs/zap.c
index f862482f4..8d1e84283 100644
--- a/debugfs/zap.c
+++ b/debugfs/zap.c
@@ -25,7 +25,7 @@ extern char *optarg;
#include "debugfs.h"
-void do_zap_block(int argc, char *argv[], int sci_idx EXT2FS_ATTR((unused)),
+void do_zap_block(int argc, ss_argv_t argv, int sci_idx EXT2FS_ATTR((unused)),
void *infop EXT2FS_ATTR((unused)))
{
unsigned long pattern = 0;
@@ -171,7 +171,7 @@ errout:
return;
}
-void do_block_dump(int argc, char *argv[], int sci_idx EXT2FS_ATTR((unused)),
+void do_block_dump(int argc, ss_argv_t argv, int sci_idx EXT2FS_ATTR((unused)),
void *infop EXT2FS_ATTR((unused)))
{
unsigned char *buf;
diff --git a/lib/ext2fs/tst_bitmaps.c b/lib/ext2fs/tst_bitmaps.c
index cb3c70dcd..eaf2c595f 100644
--- a/lib/ext2fs/tst_bitmaps.c
+++ b/lib/ext2fs/tst_bitmaps.c
@@ -140,7 +140,7 @@ unsigned long parse_ulong(const char *str, const char *cmd,
}
-int check_fs_open(char *name)
+int check_fs_open(const char *name)
{
if (!test_fs) {
com_err(name, 0, "Filesystem not open");
@@ -190,7 +190,8 @@ errout:
ext2fs_close_free(&test_fs);
}
-void setup_cmd(int argc, char **argv, int sci_idx EXT2FS_ATTR((unused)),
+void setup_cmd(int argc, ss_argv_t argv,
+ int sci_idx EXT2FS_ATTR((unused)),
void *infop EXT2FS_ATTR((unused)))
{
int c, err;
@@ -271,7 +272,7 @@ void dump_bitmap(ext2fs_generic_bitmap bmap, unsigned int start, unsigned num)
free(buf);
}
-void dump_inode_bitmap_cmd(int argc, char **argv,
+void dump_inode_bitmap_cmd(int argc, ss_argv_t argv,
int sci_idx EXT2FS_ATTR((unused)),
void *infop EXT2FS_ATTR((unused)))
{
@@ -282,7 +283,7 @@ void dump_inode_bitmap_cmd(int argc, char **argv,
dump_bitmap(test_fs->inode_map, 1, test_fs->super->s_inodes_count);
}
-void dump_block_bitmap_cmd(int argc, char **argv,
+void dump_block_bitmap_cmd(int argc, ss_argv_t argv,
int sci_idx EXT2FS_ATTR((unused)),
void *infop EXT2FS_ATTR((unused)))
{
@@ -294,7 +295,8 @@ void dump_block_bitmap_cmd(int argc, char **argv,
test_fs->super->s_blocks_count);
}
-void do_setb(int argc, char *argv[], int sci_idx EXT2FS_ATTR((unused)),
+void do_setb(int argc, ss_argv_t argv,
+ int sci_idx EXT2FS_ATTR((unused)),
void *infop EXT2FS_ATTR((unused)))
{
unsigned int block, num;
@@ -333,7 +335,8 @@ void do_setb(int argc, char *argv[], int sci_idx EXT2FS_ATTR((unused)),
test_result, op_result);
}
-void do_clearb(int argc, char *argv[], int sci_idx EXT2FS_ATTR((unused)),
+void do_clearb(int argc, ss_argv_t argv,
+ int sci_idx EXT2FS_ATTR((unused)),
void *infop EXT2FS_ATTR((unused)))
{
unsigned int block, num;
@@ -372,7 +375,8 @@ void do_clearb(int argc, char *argv[], int sci_idx EXT2FS_ATTR((unused)),
test_result, op_result);
}
-void do_testb(int argc, char *argv[], int sci_idx EXT2FS_ATTR((unused)),
+void do_testb(int argc, ss_argv_t argv,
+ int sci_idx EXT2FS_ATTR((unused)),
void *infop EXT2FS_ATTR((unused)))
{
unsigned int block, num;
@@ -408,7 +412,8 @@ void do_testb(int argc, char *argv[], int sci_idx EXT2FS_ATTR((unused)),
printf("Block %u is %s\n", block, test_result ? "set" : "clear");
}
-void do_ffzb(int argc, char *argv[], int sci_idx EXT2FS_ATTR((unused)),
+void do_ffzb(int argc, ss_argv_t argv,
+ int sci_idx EXT2FS_ATTR((unused)),
void *infop EXT2FS_ATTR((unused)))
{
unsigned int start, end;
@@ -442,7 +447,8 @@ void do_ffzb(int argc, char *argv[], int sci_idx EXT2FS_ATTR((unused)),
printf("First unmarked block is %llu\n", (unsigned long long) out);
}
-void do_ffsb(int argc, char *argv[], int sci_idx EXT2FS_ATTR((unused)),
+void do_ffsb(int argc, ss_argv_t argv,
+ int sci_idx EXT2FS_ATTR((unused)),
void *infop EXT2FS_ATTR((unused)))
{
unsigned int start, end;
@@ -477,7 +483,8 @@ void do_ffsb(int argc, char *argv[], int sci_idx EXT2FS_ATTR((unused)),
}
-void do_zerob(int argc, char *argv[], int sci_idx EXT2FS_ATTR((unused)),
+void do_zerob(int argc, ss_argv_t argv,
+ int sci_idx EXT2FS_ATTR((unused)),
void *infop EXT2FS_ATTR((unused)))
{
if (check_fs_open(argv[0]))
@@ -487,7 +494,8 @@ void do_zerob(int argc, char *argv[], int sci_idx EXT2FS_ATTR((unused)),
ext2fs_clear_block_bitmap(test_fs->block_map);
}
-void do_seti(int argc, char *argv[], int sci_idx EXT2FS_ATTR((unused)),
+void do_seti(int argc, ss_argv_t argv,
+ int sci_idx EXT2FS_ATTR((unused)),
void *infop EXT2FS_ATTR((unused)))
{
unsigned int inode;
@@ -517,7 +525,8 @@ void do_seti(int argc, char *argv[], int sci_idx EXT2FS_ATTR((unused)),
}
}
-void do_cleari(int argc, char *argv[], int sci_idx EXT2FS_ATTR((unused)),
+void do_cleari(int argc, ss_argv_t argv,
+ int sci_idx EXT2FS_ATTR((unused)),
void *infop EXT2FS_ATTR((unused)))
{
unsigned int inode;
@@ -547,7 +556,8 @@ void do_cleari(int argc, char *argv[], int sci_idx EXT2FS_ATTR((unused)),
}
}
-void do_testi(int argc, char *argv[], int sci_idx EXT2FS_ATTR((unused)),
+void do_testi(int argc, ss_argv_t argv,
+ int sci_idx EXT2FS_ATTR((unused)),
void *infop EXT2FS_ATTR((unused)))
{
unsigned int inode;
@@ -570,7 +580,8 @@ void do_testi(int argc, char *argv[], int sci_idx EXT2FS_ATTR((unused)),
printf("Inode %u is %s\n", inode, test_result ? "set" : "clear");
}
-void do_ffzi(int argc, char *argv[], int sci_idx EXT2FS_ATTR((unused)),
+void do_ffzi(int argc, ss_argv_t argv,
+ int sci_idx EXT2FS_ATTR((unused)),
void *infop EXT2FS_ATTR((unused)))
{
unsigned int start, end;
@@ -604,7 +615,8 @@ void do_ffzi(int argc, char *argv[], int sci_idx EXT2FS_ATTR((unused)),
printf("First unmarked inode is %u\n", out);
}
-void do_ffsi(int argc, char *argv[], int sci_idx EXT2FS_ATTR((unused)),
+void do_ffsi(int argc, ss_argv_t argv,
+ int sci_idx EXT2FS_ATTR((unused)),
void *infop EXT2FS_ATTR((unused)))
{
unsigned int start, end;
@@ -638,7 +650,8 @@ void do_ffsi(int argc, char *argv[], int sci_idx EXT2FS_ATTR((unused)),
printf("First marked inode is %u\n", out);
}
-void do_zeroi(int argc, char *argv[], int sci_idx EXT2FS_ATTR((unused)),
+void do_zeroi(int argc, ss_argv_t argv,
+ int sci_idx EXT2FS_ATTR((unused)),
void *infop EXT2FS_ATTR((unused)))
{
if (check_fs_open(argv[0]))
diff --git a/lib/ss/execute_cmd.c b/lib/ss/execute_cmd.c
index d092134a3..1f4399019 100644
--- a/lib/ss/execute_cmd.c
+++ b/lib/ss/execute_cmd.c
@@ -100,7 +100,7 @@ static int check_request_table(register ss_request_table *rqtbl, int argc,
for (name = request->command_names; *name; name++)
if (!strcmp(*name, string)) {
info->current_request = request->command_names[0];
- (request->function)(argc, (const char *const *) argv,
+ (request->function)(argc, (ss_argv_t) argv,
sci_idx,info->info_ptr);
info->current_request = (char *)NULL;
return(0);
diff --git a/lib/ss/help.c b/lib/ss/help.c
index 54c78f239..d3319b697 100644
--- a/lib/ss/help.c
+++ b/lib/ss/help.c
@@ -34,7 +34,7 @@
#endif
#include "ss_internal.h"
-void ss_help(int argc, char const * const *argv, int sci_idx, pointer info_ptr)
+void ss_help(int argc, ss_argv_t argv, int sci_idx, pointer info_ptr)
{
char *buffer;
char const *request_name;
diff --git a/lib/ss/list_rqs.c b/lib/ss/list_rqs.c
index 89e37bb20..408d3ac3f 100644
--- a/lib/ss/list_rqs.c
+++ b/lib/ss/list_rqs.c
@@ -22,7 +22,7 @@
typedef void sigret_t;
void ss_list_requests(int argc __SS_ATTR((unused)),
- const char * const *argv __SS_ATTR((unused)),
+ ss_argv_t argv __SS_ATTR((unused)),
int sci_idx, void *infop __SS_ATTR((unused)))
{
ss_request_entry *entry;
diff --git a/lib/ss/listen.c b/lib/ss/listen.c
index 9578c3e82..df1311d13 100644
--- a/lib/ss/listen.c
+++ b/lib/ss/listen.c
@@ -135,7 +135,7 @@ void ss_abort_subsystem(int sci_idx, int code)
}
void ss_quit(int argc __SS_ATTR((unused)),
- const char * const *argv __SS_ATTR((unused)),
+ ss_argv_t argv __SS_ATTR((unused)),
int sci_idx, pointer infop __SS_ATTR((unused)))
{
ss_abort_subsystem(sci_idx, 0);
diff --git a/lib/ss/requests.c b/lib/ss/requests.c
index 33ce5d206..6a8d00bee 100644
--- a/lib/ss/requests.c
+++ b/lib/ss/requests.c
@@ -24,7 +24,7 @@
* ss_self_identify -- assigned by default to the "." request
*/
void ss_self_identify(int argc __SS_ATTR((unused)),
- const char * const *argv __SS_ATTR((unused)),
+ ss_argv_t argv __SS_ATTR((unused)),
int sci_idx, void *infop __SS_ATTR((unused)))
{
register ss_data *info = ss_info(sci_idx);
@@ -36,7 +36,7 @@ void ss_self_identify(int argc __SS_ATTR((unused)),
* ss_subsystem_name -- print name of subsystem
*/
void ss_subsystem_name(int argc __SS_ATTR((unused)),
- const char * const *argv __SS_ATTR((unused)),
+ ss_argv_t argv __SS_ATTR((unused)),
int sci_idx,
void *infop __SS_ATTR((unused)))
{
@@ -47,7 +47,7 @@ void ss_subsystem_name(int argc __SS_ATTR((unused)),
* ss_subsystem_version -- print version of subsystem
*/
void ss_subsystem_version(int argc __SS_ATTR((unused)),
- const char * const *argv __SS_ATTR((unused)),
+ ss_argv_t argv __SS_ATTR((unused)),
int sci_idx,
void *infop __SS_ATTR((unused)))
{
@@ -59,7 +59,7 @@ void ss_subsystem_version(int argc __SS_ATTR((unused)),
* set up as (dont_list,dont_summarize))
*/
void ss_unimplemented(int argc __SS_ATTR((unused)),
- const char * const *argv __SS_ATTR((unused)),
+ ss_argv_t argv __SS_ATTR((unused)),
int sci_idx, void *infop __SS_ATTR((unused)))
{
ss_perror(sci_idx, SS_ET_UNIMPLEMENTED, "");
diff --git a/lib/ss/ss.h b/lib/ss/ss.h
index 7333ffc90..e53da5093 100644
--- a/lib/ss/ss.h
+++ b/lib/ss/ss.h
@@ -26,7 +26,8 @@
#include <ss/ss_err.h>
#define __SS_CONST const
-#define __SS_PROTO (int, const char * const *, int, void *)
+typedef char * const *ss_argv_t;
+#define __SS_PROTO (int, ss_argv_t, int, void *)
#ifdef __GNUC__
#define __SS_ATTR(x) __attribute__(x)
@@ -79,14 +80,11 @@ int ss_execute_line(int, char *);
void ss_add_request_table(int, ss_request_table *, int, int *);
void ss_delete_request_table(int, ss_request_table *, int *);
void ss_abort_subsystem(int sci_idx, int code);
-void ss_quit(int argc, const char * const *argv, int sci_idx, void *infop);
-void ss_self_identify(int argc, const char * const *argv, int sci_idx, void *infop);
-void ss_subsystem_name(int argc, const char * const *argv,
- int sci_idx, void *infop);
-void ss_subsystem_version(int argc, const char * const *argv,
- int sci_idx, void *infop);
-void ss_unimplemented(int argc, const char * const *argv,
- int sci_idx, void *infop);
+void ss_quit(int argc, ss_argv_t argv, int sci_idx, void *infop);
+void ss_self_identify(int argc, ss_argv_t argv, int sci_idx, void *infop);
+void ss_subsystem_name(int argc, ss_argv_t argv, int sci_idx, void *infop);
+void ss_subsystem_version(int argc, ss_argv_t argv, int sci_idx, void *infop);
+void ss_unimplemented(int argc, ss_argv_t argv, int sci_idx, void *infop);
void ss_set_prompt(int sci_idx, char *new_prompt);
char *ss_get_prompt(int sci_idx);
void ss_get_readline(int sci_idx);
diff --git a/lib/ss/ss_internal.h b/lib/ss/ss_internal.h
index 7b1d23bd2..e2a8d75ad 100644
--- a/lib/ss/ss_internal.h
+++ b/lib/ss/ss_internal.h
@@ -86,7 +86,7 @@ int ss_execute_line(int sci_idx, char *line_ptr);
char **ss_parse(int sci_idx, char *line_ptr, int *argc_ptr);
ss_abbrev_info *ss_abbrev_initialize(char *, int *);
void ss_page_stdin(void) __SS_ATTR((noreturn));
-void ss_list_requests(int, char const * const *, int, pointer);
+void ss_list_requests(int argc, ss_argv_t argv, int sci_idex, void *infop);
int ss_execute_command(int sci_idx, char *argv[]);
int ss_pager_create(void);
char *ss_safe_getenv(const char *arg);
diff --git a/lib/ss/test_ss.c b/lib/ss/test_ss.c
index 53ca99fc4..a382673f5 100644
--- a/lib/ss/test_ss.c
+++ b/lib/ss/test_ss.c
@@ -136,9 +136,9 @@ int main(int argc, char **argv)
}
-void test_cmd (argc, argv)
- int argc;
- char **argv;
+void test_cmd(int argc, const char * const *argv,
+ int sci_idx __SS_ATTR((unused)),
+ void *infop __SS_ATTR((unused)))
{
printf("Hello, world!\n");
printf("Args: ");
diff --git a/misc/e2freefrag.c b/misc/e2freefrag.c
index 04f155b60..63a3d4351 100644
--- a/misc/e2freefrag.c
+++ b/misc/e2freefrag.c
@@ -377,7 +377,7 @@ static void open_device(char *device_name, ext2_filsys *fs)
#ifdef DEBUGFS
#include "debugfs.h"
-void do_freefrag(int argc, char **argv, int sci_idx EXT2FS_ATTR((unused)),
+void do_freefrag(int argc, ss_argv_t argv, int sci_idx EXT2FS_ATTR((unused)),
void *infop EXT2FS_ATTR((unused)))
#else
int main(int argc, char *argv[])
diff --git a/tests/progs/Makefile.in b/tests/progs/Makefile.in
index e1325c619..47d7adfa9 100644
--- a/tests/progs/Makefile.in
+++ b/tests/progs/Makefile.in
@@ -20,7 +20,8 @@ TEST_REL_OBJS= test_rel.o test_rel_cmds.o
TEST_ICOUNT_OBJS= test_icount.o test_icount_cmds.o
-SRCS= $(srcdir)/test_rel.c
+SRCS= $(srcdir)/test_icount.c \
+ $(srcdir)/test_rel.c
LIBS= $(LIBEXT2FS) $(LIBSS) $(LIBCOM_ERR) $(SYSLIBS)
DEPLIBS= $(LIBEXT2FS) $(DEPLIBSS) $(DEPLIBCOM_ERR)
diff --git a/tests/progs/test_icount.c b/tests/progs/test_icount.c
index 6ebb100d2..c1005c6f9 100644
--- a/tests/progs/test_icount.c
+++ b/tests/progs/test_icount.c
@@ -61,7 +61,7 @@ static int parse_inode(const char *request, const char *desc,
return 0;
}
-void do_create_icount(int argc, char **argv, int sci_idx EXT2FS_ATTR((unused)),
+void do_create_icount(int argc, ss_argv_t argv, int sci_idx EXT2FS_ATTR((unused)),
void *infop EXT2FS_ATTR((unused)))
{
errcode_t retval;
@@ -92,7 +92,7 @@ void do_create_icount(int argc, char **argv, int sci_idx EXT2FS_ATTR((unused)),
}
}
-void do_free_icount(int argc, char **argv, int sci_idx EXT2FS_ATTR((unused)),
+void do_free_icount(int argc, ss_argv_t argv, int sci_idx EXT2FS_ATTR((unused)),
void *infop EXT2FS_ATTR((unused)))
{
if (argc != 1) {
@@ -106,7 +106,7 @@ void do_free_icount(int argc, char **argv, int sci_idx EXT2FS_ATTR((unused)),
test_icount = 0;
}
-void do_fetch(int argc, char **argv, int sci_idx EXT2FS_ATTR((unused)),
+void do_fetch(int argc, ss_argv_t argv, int sci_idx EXT2FS_ATTR((unused)),
void *infop EXT2FS_ATTR((unused)))
{
errcode_t retval;
@@ -129,7 +129,7 @@ void do_fetch(int argc, char **argv, int sci_idx EXT2FS_ATTR((unused)),
printf("Count is %u\n", count);
}
-void do_increment(int argc, char **argv, int sci_idx EXT2FS_ATTR((unused)),
+void do_increment(int argc, ss_argv_t argv, int sci_idx EXT2FS_ATTR((unused)),
void *infop EXT2FS_ATTR((unused)))
{
errcode_t retval;
@@ -153,7 +153,7 @@ void do_increment(int argc, char **argv, int sci_idx EXT2FS_ATTR((unused)),
printf("Count is now %u\n", count);
}
-void do_decrement(int argc, char **argv, int sci_idx EXT2FS_ATTR((unused)),
+void do_decrement(int argc, ss_argv_t argv, int sci_idx EXT2FS_ATTR((unused)),
void *infop EXT2FS_ATTR((unused)))
{
errcode_t retval;
@@ -177,7 +177,7 @@ void do_decrement(int argc, char **argv, int sci_idx EXT2FS_ATTR((unused)),
printf("Count is now %u\n", count);
}
-void do_store(int argc, char **argv, int sci_idx EXT2FS_ATTR((unused)),
+void do_store(int argc, ss_argv_t argv, int sci_idx EXT2FS_ATTR((unused)),
void *infop EXT2FS_ATTR((unused)))
{
errcode_t retval;
@@ -206,7 +206,7 @@ void do_store(int argc, char **argv, int sci_idx EXT2FS_ATTR((unused)),
}
}
-void do_dump(int argc, char **argv, int sci_idx EXT2FS_ATTR((unused)),
+void do_dump(int argc, ss_argv_t argv, int sci_idx EXT2FS_ATTR((unused)),
void *infop EXT2FS_ATTR((unused)))
{
errcode_t retval;
@@ -231,7 +231,7 @@ void do_dump(int argc, char **argv, int sci_idx EXT2FS_ATTR((unused)),
}
}
-void do_validate(int argc, char **argv, int sci_idx EXT2FS_ATTR((unused)),
+void do_validate(int argc, ss_argv_t argv, int sci_idx EXT2FS_ATTR((unused)),
void *infop EXT2FS_ATTR((unused)))
{
errcode_t retval;
@@ -250,7 +250,7 @@ void do_validate(int argc, char **argv, int sci_idx EXT2FS_ATTR((unused)),
printf("Icount structure successfully validated\n");
}
-void do_get_size(int argc, char **argv, int sci_idx EXT2FS_ATTR((unused)),
+void do_get_size(int argc, ss_argv_t argv, int sci_idx EXT2FS_ATTR((unused)),
void *infop EXT2FS_ATTR((unused)))
{
ext2_ino_t size;
diff --git a/tests/progs/test_icount.h b/tests/progs/test_icount.h
index 29d56abfd..b086547b5 100644
--- a/tests/progs/test_icount.h
+++ b/tests/progs/test_icount.h
@@ -1,10 +1,21 @@
-void do_create_icount(int argc, char **argv, int sci_idx, void *infop);
-void do_free_icount(int argc, char **argv, int sci_idx, void *infop);
-void do_fetch(int argc, char **argv, int sci_idx, void *infop);
-void do_increment(int argc, char **argv, int sci_idx, void *infop);
-void do_decrement(int argc, char **argv, int sci_idx, void *infop);
-void do_store(int argc, char **argv, int sci_idx, void *infop);
-void do_get_size(int argc, char **argv, int sci_idx, void *infop);
-void do_dump(int argc, char **argv, int sci_idx, void *infop);
-void do_validate(int argc, char **argv, int sci_idx, void *infop);
+/*
+ * test_icount.h
+ *
+ * Copyright (C) 1997 Theodore Ts'o.
+ *
+ * %Begin-Header%
+ * This file may be redistributed under the terms of the GNU Public
+ * License.
+ * %End-Header%
+ */
+
+void do_create_icount(int argc, ss_argv_t argv, int sci_idx, void *infop);
+void do_free_icount(int argc, ss_argv_t argv, int sci_idx, void *infop);
+void do_fetch(int argc, ss_argv_t argv, int sci_idx, void *infop);
+void do_increment(int argc, ss_argv_t argv, int sci_idx, void *infop);
+void do_decrement(int argc, ss_argv_t argv, int sci_idx, void *infop);
+void do_store(int argc, ss_argv_t argv, int sci_idx, void *infop);
+void do_get_size(int argc, ss_argv_t argv, int sci_idx, void *infop);
+void do_dump(int argc, ss_argv_t argv, int sci_idx, void *infop);
+void do_validate(int argc, ss_argv_t argv, int sci_idx, void *infop);
diff --git a/tests/progs/test_rel.c b/tests/progs/test_rel.c
index 8f7280c78..6666b73ed 100644
--- a/tests/progs/test_rel.c
+++ b/tests/progs/test_rel.c
@@ -141,7 +141,7 @@ static void display_irel_entry(ext2_ino_t old,
/*
* These are the actual command table procedures
*/
-void do_brel_ma_create(int argc, char **argv)
+void do_brel_ma_create(int argc, ss_argv_t argv)
{
const char *usage = "Usage: %s name max_blocks\n";
errcode_t retval;
@@ -161,7 +161,7 @@ void do_brel_ma_create(int argc, char **argv)
return;
}
-void do_brel_free(int argc, char **argv)
+void do_brel_free(int argc, ss_argv_t argv)
{
if (check_brel(argv[0]))
return;
@@ -170,7 +170,7 @@ void do_brel_free(int argc, char **argv)
return;
}
-void do_brel_put(int argc, char **argv)
+void do_brel_put(int argc, ss_argv_t argv)
{
const char *usage = "usage: %s old_block new_block [owner] [offset]";
errcode_t retval;
@@ -211,7 +211,7 @@ void do_brel_put(int argc, char **argv)
return;
}
-void do_brel_get(int argc, char **argv)
+void do_brel_get(int argc, ss_argv_t argv)
{
const char *usage = "%s block";
errcode_t retval;
@@ -235,7 +235,7 @@ void do_brel_get(int argc, char **argv)
return;
}
-void do_brel_start_iter(int argc, char **argv)
+void do_brel_start_iter(int argc, ss_argv_t argv)
{
errcode_t retval;
@@ -250,7 +250,7 @@ void do_brel_start_iter(int argc, char **argv)
return;
}
-void do_brel_next(int argc, char **argv)
+void do_brel_next(int argc, ss_argv_t argv)
{
errcode_t retval;
struct ext2_block_relocate_entry ent;
@@ -272,7 +272,7 @@ void do_brel_next(int argc, char **argv)
return;
}
-void do_brel_dump(int argc, char **argv)
+void do_brel_dump(int argc, ss_argv_t argv)
{
errcode_t retval;
struct ext2_block_relocate_entry ent;
@@ -301,7 +301,7 @@ void do_brel_dump(int argc, char **argv)
return;
}
-void do_brel_move(int argc, char **argv)
+void do_brel_move(int argc, ss_argv_t argv)
{
const char *usage = "%s old_block new_block";
errcode_t retval;
@@ -326,7 +326,7 @@ void do_brel_move(int argc, char **argv)
return;
}
-void do_brel_delete(int argc, char **argv)
+void do_brel_delete(int argc, ss_argv_t argv)
{
const char *usage = "%s block";
errcode_t retval;
@@ -348,7 +348,7 @@ void do_brel_delete(int argc, char **argv)
}
}
-void do_irel_ma_create(int argc, char **argv)
+void do_irel_ma_create(int argc, ss_argv_t argv)
{
const char *usage = "Usage: %s name max_inode\n";
errcode_t retval;
@@ -368,7 +368,7 @@ void do_irel_ma_create(int argc, char **argv)
return;
}
-void do_irel_free(int argc, char **argv)
+void do_irel_free(int argc, ss_argv_t argv)
{
if (check_irel(argv[0]))
return;
@@ -378,7 +378,7 @@ void do_irel_free(int argc, char **argv)
return;
}
-void do_irel_put(int argc, char **argv)
+void do_irel_put(int argc, ss_argv_t argv)
{
const char *usage = "%s old new max_refs";
errcode_t retval;
@@ -414,7 +414,7 @@ void do_irel_put(int argc, char **argv)
return;
}
-void do_irel_get(int argc, char **argv)
+void do_irel_get(int argc, ss_argv_t argv)
{
const char *usage = "%s inode";
errcode_t retval;
@@ -440,7 +440,7 @@ void do_irel_get(int argc, char **argv)
return;
}
-void do_irel_get_by_orig(int argc, char **argv)
+void do_irel_get_by_orig(int argc, ss_argv_t argv)
{
const char *usage = "%s orig_inode";
errcode_t retval;
@@ -466,7 +466,7 @@ void do_irel_get_by_orig(int argc, char **argv)
return;
}
-void do_irel_start_iter(int argc, char **argv)
+void do_irel_start_iter(int argc, ss_argv_t argv)
{
errcode_t retval;
@@ -481,7 +481,7 @@ void do_irel_start_iter(int argc, char **argv)
return;
}
-void do_irel_next(int argc, char **argv)
+void do_irel_next(int argc, ss_argv_t argv)
{
errcode_t retval;
ext2_ino_t old;
@@ -503,7 +503,7 @@ void do_irel_next(int argc, char **argv)
return;
}
-void do_irel_dump(int argc, char **argv)
+void do_irel_dump(int argc, ss_argv_t argv)
{
errcode_t retval;
ext2_ino_t ino;
@@ -532,7 +532,7 @@ void do_irel_dump(int argc, char **argv)
return;
}
-void do_irel_add_ref(int argc, char **argv)
+void do_irel_add_ref(int argc, ss_argv_t argv)
{
const char *usage = "%s inode block offset";
errcode_t retval;
@@ -569,7 +569,7 @@ void do_irel_add_ref(int argc, char **argv)
return;
}
-void do_irel_start_iter_ref(int argc, char **argv)
+void do_irel_start_iter_ref(int argc, ss_argv_t argv)
{
const char *usage = "%s inode";
errcode_t retval;
@@ -593,7 +593,7 @@ void do_irel_start_iter_ref(int argc, char **argv)
return;
}
-void do_irel_next_ref(int argc, char **argv)
+void do_irel_next_ref(int argc, ss_argv_t argv)
{
struct ext2_inode_reference ref;
errcode_t retval;
@@ -610,7 +610,7 @@ void do_irel_next_ref(int argc, char **argv)
return;
}
-void do_irel_move(int argc, char **argv)
+void do_irel_move(int argc, ss_argv_t argv)
{
const char *usage = "%s old new";
errcode_t retval;
@@ -636,7 +636,7 @@ void do_irel_move(int argc, char **argv)
return;
}
-void do_irel_delete(int argc, char **argv)
+void do_irel_delete(int argc, ss_argv_t argv)
{
const char *usage = "%s inode";
errcode_t retval;
diff --git a/tests/progs/test_rel.h b/tests/progs/test_rel.h
index 47c4d0980..62267ba93 100644
--- a/tests/progs/test_rel.h
+++ b/tests/progs/test_rel.h
@@ -11,25 +11,25 @@
-void do_brel_ma_create(int argc, char **argv);
-void do_brel_free(int argc, char **argv);
-void do_brel_put(int argc, char **argv);
-void do_brel_get(int argc, char **argv);
-void do_brel_start_iter(int argc, char **argv);
-void do_brel_next(int argc, char **argv);
-void do_brel_dump(int argc, char **argv);
-void do_brel_move(int argc, char **argv);
-void do_brel_delete(int argc, char **argv);
-void do_irel_ma_create(int argc, char **argv);
-void do_irel_free(int argc, char **argv);
-void do_irel_put(int argc, char **argv);
-void do_irel_get(int argc, char **argv);
-void do_irel_get_by_orig(int argc, char **argv);
-void do_irel_start_iter(int argc, char **argv);
-void do_irel_next(int argc, char **argv);
-void do_irel_dump(int argc, char **argv);
-void do_irel_add_ref(int argc, char **argv);
-void do_irel_start_iter_ref(int argc, char **argv);
-void do_irel_next_ref(int argc, char **argv);
-void do_irel_move(int argc, char **argv);
-void do_irel_delete(int argc, char **argv);
+void do_brel_ma_create(int argc, ss_argv_t argv);
+void do_brel_free(int argc, ss_argv_t argv);
+void do_brel_put(int argc, ss_argv_t argv);
+void do_brel_get(int argc, ss_argv_t argv);
+void do_brel_start_iter(int argc, ss_argv_t argv);
+void do_brel_next(int argc, ss_argv_t argv);
+void do_brel_dump(int argc, ss_argv_t argv);
+void do_brel_move(int argc, ss_argv_t argv);
+void do_brel_delete(int argc, ss_argv_t argv);
+void do_irel_ma_create(int argc, ss_argv_t argv);
+void do_irel_free(int argc, ss_argv_t argv);
+void do_irel_put(int argc, ss_argv_t argv);
+void do_irel_get(int argc, ss_argv_t argv);
+void do_irel_get_by_orig(int argc, ss_argv_t argv);
+void do_irel_start_iter(int argc, ss_argv_t argv);
+void do_irel_next(int argc, ss_argv_t argv);
+void do_irel_dump(int argc, ss_argv_t argv);
+void do_irel_add_ref(int argc, ss_argv_t argv);
+void do_irel_start_iter_ref(int argc, ss_argv_t argv);
+void do_irel_next_ref(int argc, ss_argv_t argv);
+void do_irel_move(int argc, ss_argv_t argv);
+void do_irel_delete(int argc, ss_argv_t argv);