|
Android-cuttlefish cvd tool
|
#include <errno.h>#include <fcntl.h>#include <getopt.h>#include <inttypes.h>#include <limits.h>#include <linux/fs.h>#include <signal.h>#include <stdarg.h>#include <stdbool.h>#include <stdio.h>#include <stdlib.h>#include <string.h>#include <sys/mman.h>#include <sys/sendfile.h>#include <sys/stat.h>#include <sys/types.h>#include <termios.h>#include <time.h>#include <unistd.h>#include <sys/xattr.h>#include <android_config.h>#include "f2fs_io.h"
Classes | |
| struct | cmd_desc |
Macros | |
| #define | _GNU_SOURCE |
| #define | O_LARGEFILE 0 |
| #define | __SANE_USERSPACE_TYPES__ /* For PPC64, to get LL64 types */ |
| #define | fsync_desc "fsync" |
| #define | fsync_help |
| #define | fdatasync_desc "fdatasync" |
| #define | fdatasync_help |
| #define | set_verity_desc "Set fs-verity" |
| #define | set_verity_help |
| #define | getflags_desc "getflags ioctl" |
| #define | getflags_help |
| #define | setflags_desc "setflags ioctl" |
| #define | setflags_help |
| #define | clearflags_desc "clearflags ioctl" |
| #define | clearflags_help |
| #define | shutdown_desc "shutdown filesystem" |
| #define | shutdown_help |
| #define | fadvise_desc "fadvise" |
| #define | fadvise_help |
| #define | ioprio_desc "ioprio" |
| #define | ioprio_help |
| #define | pinfile_desc "pin file control" |
| #define | pinfile_help |
| #define | fallocate_desc "fallocate" |
| #define | fallocate_help |
| #define | erase_desc "erase a block device" |
| #define | erase_help |
| #define | write_desc "write data into file" |
| #define | write_help |
| #define | write_advice_desc "write data into file with a hint" |
| #define | write_advice_help |
| #define | read_desc "read data from file" |
| #define | read_help |
| #define | fragread_desc "read data with a fragmented buffer from file" |
| #define | fragread_help |
| #define | PAGE_SIZE sysconf(_SC_PAGESIZE) |
| #define | ALLOC_SIZE (2 * 1024 * 1024 - 4 * 1024) |
| #define | randread_desc "random read data from file" |
| #define | randread_help |
| #define | fiemap_desc "get block address in file" |
| #define | fiemap_help "f2fs_io fiemap [offset in 4kb] [count in 4kb] [file_path]\n\n"\ |
| #define | gc_urgent_desc "start/end/run gc_urgent for given time period" |
| #define | gc_urgent_help |
| #define | defrag_file_desc "do defragment on file" |
| #define | defrag_file_help |
| #define | copy_desc "copy a file" |
| #define | copy_help |
| #define | get_cblocks_desc "get number of reserved blocks on compress inode" |
| #define | get_cblocks_help "f2fs_io get_cblocks [file]\n\n" |
| #define | release_cblocks_desc "release reserved blocks on compress inode" |
| #define | release_cblocks_help "f2fs_io release_cblocks [file]\n\n" |
| #define | reserve_cblocks_desc "reserve blocks on compress inode" |
| #define | reserve_cblocks_help "f2fs_io reserve_cblocks [file]\n\n" |
| #define | get_coption_desc "get compression option of a compressed file" |
| #define | get_coption_help |
| #define | set_coption_desc "set compression option of a compressed file" |
| #define | set_coption_help |
| #define | decompress_desc "decompress an already compressed file" |
| #define | decompress_help "f2fs_io decompress [file_path]\n\n" |
| #define | compress_desc "compress a compression enabled file" |
| #define | compress_help "f2fs_io compress [file_path]\n\n" |
| #define | get_filename_encrypt_mode_desc "get file name encrypt mode" |
| #define | get_filename_encrypt_mode_help |
| #define | rename_desc "rename source to target file with fsync option" |
| #define | rename_help |
| #define | gc_desc "trigger filesystem GC" |
| #define | gc_help "f2fs_io gc sync_mode [file_path]\n\n" |
| #define | checkpoint_desc "trigger filesystem checkpoint" |
| #define | checkpoint_help "f2fs_io checkpoint [file_path]\n\n" |
| #define | precache_extents_desc "trigger precache extents" |
| #define | precache_extents_help "f2fs_io precache_extents [file_path]\n\n" |
| #define | move_range_desc "moving a range of data blocks from source file to destination file" |
| #define | move_range_help |
| #define | gc_range_desc "trigger filesystem gc_range" |
| #define | gc_range_help |
| #define | listxattr_desc "listxattr" |
| #define | listxattr_help "f2fs_io listxattr [file_path]\n\n" |
| #define | setxattr_desc "setxattr" |
| #define | setxattr_help "f2fs_io setxattr [name] [value] [file_path]\n\n" |
| #define | removexattr_desc "removexattr" |
| #define | removexattr_help "f2fs_io removexattr [name] [file_path]\n\n" |
| #define | lseek_desc "do lseek for a file" |
| #define | lseek_help |
| #define | get_advise_desc "get_advise" |
| #define | get_advise_help "f2fs_io get_advise [file_path]\n\n" |
| #define | ftruncate_desc "ftruncate a file" |
| #define | ftruncate_help |
| #define | CMD_HIDDEN 0x0001 |
| #define | CMD(name) { #name, do_##name, name##_desc, name##_help, 0 } |
| #define | _CMD(name) { #name, do_##name, NULL, NULL, CMD_HIDDEN } |
Functions | |
| static void | __attribute__ ((noreturn)) |
| static void | __attribute__ ((noreturn, format(printf, 1, 2))) |
| static void * | xmalloc (size_t size) |
| static void * | aligned_xalloc (size_t alignment, size_t size) |
| static int | xopen (const char *pathname, int flags, mode_t mode) |
| static ssize_t | xread (int fd, void *buf, size_t count) |
| static void | full_write (int fd, const void *buf, size_t count) |
| static u64 | get_current_us () |
| static void | do_fsync (int argc, char **argv, const struct cmd_desc *cmd) |
| static void | do_fdatasync (int argc, char **argv, const struct cmd_desc *cmd) |
| static void | do_set_verity (int argc, char **argv, const struct cmd_desc *cmd) |
| static void | do_getflags (int argc, char **argv, const struct cmd_desc *cmd) |
| static void | do_setflags (int argc, char **argv, const struct cmd_desc *cmd) |
| static void | do_clearflags (int argc, char **argv, const struct cmd_desc *cmd) |
| static void | do_shutdown (int argc, char **argv, const struct cmd_desc *cmd) |
| static void | do_fadvise (int argc, char **argv, const struct cmd_desc *cmd) |
| static void | do_ioprio (int argc, char **argv, const struct cmd_desc *cmd) |
| static void | do_pinfile (int argc, char **argv, const struct cmd_desc *cmd) |
| static void | do_fallocate (int argc, char **argv, const struct cmd_desc *cmd) |
| static void | do_erase (int argc, char **argv, const struct cmd_desc *cmd) |
| static void | do_write_with_advice (int argc, char **argv, const struct cmd_desc *cmd, bool with_advice) |
| static void | do_write (int argc, char **argv, const struct cmd_desc *cmd) |
| static void | do_write_advice (int argc, char **argv, const struct cmd_desc *cmd) |
| static void | do_read (int argc, char **argv, const struct cmd_desc *cmd) |
| static void | do_fragread (int argc, char **argv, const struct cmd_desc *cmd) |
| static void | do_randread (int argc, char **argv, const struct cmd_desc *cmd) |
| static void | do_fiemap (int UNUSED(argc), char **UNUSED(argv), const struct cmd_desc *UNUSED(cmd)) |
| static void | do_gc_urgent (int argc, char **argv, const struct cmd_desc *cmd) |
| static void | do_defrag_file (int argc, char **argv, const struct cmd_desc *cmd) |
| static void | do_copy (int argc, char **argv, const struct cmd_desc *cmd) |
| static void | do_get_cblocks (int argc, char **argv, const struct cmd_desc *cmd) |
| static void | do_release_cblocks (int argc, char **argv, const struct cmd_desc *cmd) |
| static void | do_reserve_cblocks (int argc, char **argv, const struct cmd_desc *cmd) |
| static void | do_get_coption (int argc, char **argv, const struct cmd_desc *cmd) |
| static void | do_set_coption (int argc, char **argv, const struct cmd_desc *cmd) |
| static void | do_decompress (int argc, char **argv, const struct cmd_desc *cmd) |
| static void | do_compress (int argc, char **argv, const struct cmd_desc *cmd) |
| static void | do_get_filename_encrypt_mode (int argc, char **argv, const struct cmd_desc *cmd) |
| static void | do_rename (int argc, char **argv, const struct cmd_desc *cmd) |
| static void | do_gc (int argc, char **argv, const struct cmd_desc *cmd) |
| static void | do_checkpoint (int argc, char **argv, const struct cmd_desc *cmd) |
| static void | do_precache_extents (int argc, char **argv, const struct cmd_desc *cmd) |
| static void | do_move_range (int argc, char **argv, const struct cmd_desc *cmd) |
| static void | do_gc_range (int argc, char **argv, const struct cmd_desc *cmd) |
| static void | do_listxattr (int argc, char **argv, const struct cmd_desc *cmd) |
| static void | do_setxattr (int argc, char **argv, const struct cmd_desc *cmd) |
| static void | do_removexattr (int argc, char **argv, const struct cmd_desc *cmd) |
| static void | do_lseek (int argc, char **argv, const struct cmd_desc *cmd) |
| static void | do_get_advise (int argc, char **argv, const struct cmd_desc *cmd) |
| static void | do_ftruncate (int argc, char **argv, const struct cmd_desc *cmd) |
| static void | do_help (int argc, char **argv, const struct cmd_desc *cmd) |
| static void | do_help (int argc, char **argv, const struct cmd_desc *UNUSED(cmd)) |
| static void | die_signal_handler (int UNUSED(signum), siginfo_t *UNUSED(siginfo), void *UNUSED(context)) |
| static void | sigcatcher_setup (void) |
| int | main (int argc, char **argv) |
Variables | |
| const struct cmd_desc | cmd_list [] |
| #define __SANE_USERSPACE_TYPES__ /* For PPC64, to get LL64 types */ |
| #define _CMD | ( | name | ) | { #name, do_##name, NULL, NULL, CMD_HIDDEN } |
| #define _GNU_SOURCE |
| #define ALLOC_SIZE (2 * 1024 * 1024 - 4 * 1024) |
| #define checkpoint_desc "trigger filesystem checkpoint" |
| #define checkpoint_help "f2fs_io checkpoint [file_path]\n\n" |
| #define clearflags_desc "clearflags ioctl" |
| #define clearflags_help |
| #define CMD_HIDDEN 0x0001 |
| #define compress_desc "compress a compression enabled file" |
| #define compress_help "f2fs_io compress [file_path]\n\n" |
| #define copy_desc "copy a file" |
| #define copy_help |
| #define decompress_desc "decompress an already compressed file" |
| #define decompress_help "f2fs_io decompress [file_path]\n\n" |
| #define defrag_file_desc "do defragment on file" |
| #define defrag_file_help |
| #define erase_desc "erase a block device" |
| #define erase_help |
| #define fadvise_desc "fadvise" |
| #define fadvise_help |
| #define fallocate_desc "fallocate" |
| #define fallocate_help |
| #define fdatasync_desc "fdatasync" |
| #define fdatasync_help |
| #define fiemap_desc "get block address in file" |
| #define fiemap_help "f2fs_io fiemap [offset in 4kb] [count in 4kb] [file_path]\n\n"\ |
| #define fragread_desc "read data with a fragmented buffer from file" |
| #define fragread_help |
| #define fsync_desc "fsync" |
| #define fsync_help |
| #define ftruncate_desc "ftruncate a file" |
| #define ftruncate_help |
| #define gc_desc "trigger filesystem GC" |
| #define gc_help "f2fs_io gc sync_mode [file_path]\n\n" |
| #define gc_range_desc "trigger filesystem gc_range" |
| #define gc_range_help |
| #define gc_urgent_desc "start/end/run gc_urgent for given time period" |
| #define gc_urgent_help |
| #define get_advise_desc "get_advise" |
| #define get_advise_help "f2fs_io get_advise [file_path]\n\n" |
| #define get_cblocks_desc "get number of reserved blocks on compress inode" |
| #define get_cblocks_help "f2fs_io get_cblocks [file]\n\n" |
| #define get_coption_desc "get compression option of a compressed file" |
| #define get_coption_help |
| #define get_filename_encrypt_mode_desc "get file name encrypt mode" |
| #define get_filename_encrypt_mode_help |
| #define getflags_desc "getflags ioctl" |
| #define getflags_help |
| #define ioprio_desc "ioprio" |
| #define ioprio_help |
| #define listxattr_desc "listxattr" |
| #define listxattr_help "f2fs_io listxattr [file_path]\n\n" |
| #define lseek_desc "do lseek for a file" |
| #define lseek_help |
| #define move_range_desc "moving a range of data blocks from source file to destination file" |
| #define move_range_help |
| #define O_LARGEFILE 0 |
| #define PAGE_SIZE sysconf(_SC_PAGESIZE) |
| #define pinfile_desc "pin file control" |
| #define pinfile_help |
| #define precache_extents_desc "trigger precache extents" |
| #define precache_extents_help "f2fs_io precache_extents [file_path]\n\n" |
| #define randread_help |
| #define read_desc "read data from file" |
| #define read_help |
| #define release_cblocks_desc "release reserved blocks on compress inode" |
| #define release_cblocks_help "f2fs_io release_cblocks [file]\n\n" |
| #define removexattr_desc "removexattr" |
| #define removexattr_help "f2fs_io removexattr [name] [file_path]\n\n" |
| #define rename_desc "rename source to target file with fsync option" |
| #define rename_help |
| #define reserve_cblocks_desc "reserve blocks on compress inode" |
| #define reserve_cblocks_help "f2fs_io reserve_cblocks [file]\n\n" |
| #define set_coption_desc "set compression option of a compressed file" |
| #define set_coption_help |
| #define set_verity_desc "Set fs-verity" |
| #define set_verity_help |
| #define setflags_desc "setflags ioctl" |
| #define setflags_help |
| #define setxattr_desc "setxattr" |
| #define setxattr_help "f2fs_io setxattr [name] [value] [file_path]\n\n" |
| #define shutdown_desc "shutdown filesystem" |
| #define shutdown_help |
| #define write_advice_desc "write data into file with a hint" |
| #define write_advice_help |
| #define write_desc "write data into file" |
| #define write_help |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
| int main | ( | int | argc, |
| char ** | argv | ||
| ) |
|
static |
|
static |
|
static |
|
static |
| const struct cmd_desc cmd_list[] |