From 234d8e02b7b3266f1f9f30a1c12ba89ab3bed283 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Axel=20D=C3=B6rfler?= Date: Tue, 20 Oct 2009 00:18:32 +0000 Subject: [PATCH] * Added ioctl command to quickly access some debug functionality in an FS. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33673 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- src/tools/fs_shell/fssh.cpp | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/src/tools/fs_shell/fssh.cpp b/src/tools/fs_shell/fssh.cpp index fa1beb2d32..65b00e5ed0 100644 --- a/src/tools/fs_shell/fssh.cpp +++ b/src/tools/fs_shell/fssh.cpp @@ -1180,6 +1180,28 @@ command_sync(int argc, const char* const* argv) } +static fssh_status_t +command_ioctl(int argc, const char* const* argv) +{ + if (argc != 2) { + fprintf(stderr, "Usage: %s \n", argv[0]); + return FSSH_B_BAD_VALUE; + } + + int rootDir = _kern_open_dir(-1, "/myfs"); + if (rootDir < 0) + return rootDir; + + fssh_status_t status = _kern_ioctl(rootDir, atoi(argv[1]), NULL, 0); + if (status != FSSH_B_OK) { + fprintf(stderr, "Error: ioctl failed: %s\n", fssh_strerror(status)); + return status; + } + + return FSSH_B_OK; +} + + static void register_commands() { @@ -1189,6 +1211,7 @@ register_commands() command_cp, "cp", "copy files and directories", command_help, "help", "list supported commands", command_info, "info", "prints volume informations", + command_ioctl, "ioctl", "ioctl() on root, for FS debugging only", command_ln, "ln", "create a hard or symbolic link", command_ls, "ls", "list files or directories", command_mkdir, "mkdir", "create directories",