/* * Copyright 2012, Andreas Henriksson, sausageboy@gmail.com. * Distributed under the terms of the MIT License. */ #include "fssh_stdio.h" #include "syscalls.h" #include "bfs.h" #include "bfs_control.h" namespace FSShell { fssh_status_t command_resizefs(int argc, const char* const* argv) { if (argc != 2) { fssh_dprintf("Usage: %s \n", argv[0]); return B_ERROR; } uint64 newSize; if (fssh_sscanf(argv[1], "%" B_SCNu64, &newSize) < 1) { fssh_dprintf("Unknown argument or invalid size\n"); return B_ERROR; } int rootDir = _kern_open_dir(-1, "/myfs"); if (rootDir < 0) { fssh_dprintf("Error: Couldn't open root directory\n"); return rootDir; } status_t status = _kern_ioctl(rootDir, BFS_IOCTL_RESIZE, &newSize, sizeof(newSize)); _kern_close(rootDir); if (status != B_OK) { fssh_dprintf("Resizing failed, status: %s\n", fssh_strerror(status)); return status; } fssh_dprintf("File system successfully resized!\n"); return B_OK; } } // namespace FSShell