From 4b0871d90d4b0805af6324826e00cfc40005862d Mon Sep 17 00:00:00 2001 From: Jiaheng Hu Date: Sun, 21 Jun 2020 15:15:06 +0000 Subject: [PATCH] sys/linux: add description for fsinfo Added the description for the new fsinfo sys call (currently in linux-next). Details about fsinfo can be seen in https://lkml.kernel.org/linux-fsdevel/158454408854.2864823.5910520544515668590.stgit@warthog.procyon.org.uk/. --- sys/linux/sys.txt | 13 +++++++++++++ sys/linux/sys_386.const | 29 +++++++++++++++++++++++++++++ sys/linux/sys_amd64.const | 29 +++++++++++++++++++++++++++++ sys/linux/sys_arm.const | 29 +++++++++++++++++++++++++++++ sys/linux/sys_arm64.const | 29 +++++++++++++++++++++++++++++ sys/linux/sys_mips64le.const | 29 +++++++++++++++++++++++++++++ sys/linux/sys_ppc64le.const | 29 +++++++++++++++++++++++++++++ 7 files changed, 187 insertions(+) diff --git a/sys/linux/sys.txt b/sys/linux/sys.txt index 64a69e58..6169e77f 100644 --- a/sys/linux/sys.txt +++ b/sys/linux/sys.txt @@ -52,6 +52,7 @@ include include include include +include resource fd[int32]: -1 resource fd_dir[fd]: AT_FDCWD @@ -361,6 +362,7 @@ sysfs$2(option const[2], fsindex intptr, fsname buffer[out]) sysfs$3(option const[3]) statfs(path ptr[in, filename], buf buffer[out]) fstatfs(fd fd, buf buffer[out]) +fsinfo(dfd fd_dir, path ptr[in, filename], params ptr[in, fsinfo_params], params_size bytesize[params], buf buffer[out], buffer_size bytesize[buf]) uselib(lib ptr[in, filename]) init_module(mod ptr[in, string], len len[mod], args ptr[in, string]) @@ -861,6 +863,15 @@ sched_attr { sched_util_max int32 } +fsinfo_params { + resolve_flags flags[resolve_flags, int64] + at_flags flags[at_flags, int32] + flags flags[fsinfo_flags, int32] + request flags[fsinfo_attr_flags, int32] + Nth int32 + Mth int32 +} + sched_policy = SCHED_NORMAL, SCHED_FIFO, SCHED_RR, SCHED_BATCH, SCHED_IDLE, SCHED_DEADLINE sched_attr_flags = SCHED_FLAG_RESET_ON_FORK, SCHED_FLAG_RECLAIM, SCHED_FLAG_DL_OVERRUN, SCHED_FLAG_KEEP_POLICY, SCHED_FLAG_KEEP_PARAMS, SCHED_FLAG_UTIL_CLAMP_MIN, SCHED_FLAG_UTIL_CLAMP_MAX, SCHED_FLAG_SUGOV @@ -983,6 +994,8 @@ fiemap_extent_flags = FIEMAP_EXTENT_LAST, FIEMAP_EXTENT_UNKNOWN, FIEMAP_EXTENT_D getrandom_flags = GRND_NONBLOCK, GRND_RANDOM clone_flags = CLONE_VM, CLONE_FS, CLONE_FILES, CLONE_SIGHAND, CLONE_PTRACE, CLONE_VFORK, CLONE_PARENT, CLONE_THREAD, CLONE_NEWNS, CLONE_SYSVSEM, CLONE_SETTLS, CLONE_PARENT_SETTID, CLONE_CHILD_CLEARTID, CLONE_UNTRACED, CLONE_CHILD_SETTID, CLONE_NEWCGROUP, CLONE_NEWUTS, CLONE_NEWIPC, CLONE_NEWUSER, CLONE_NEWPID, CLONE_NEWNET, CLONE_IO, CLONE_PIDFD, CLONE_NEWTIME ptrace_peeksiginfo_flags = PTRACE_PEEKSIGINFO_SHARED +fsinfo_flags = FSINFO_FLAGS_QUERY_MASK, FSINFO_FLAGS_QUERY_PATH, FSINFO_FLAGS_QUERY_FD, FSINFO_FLAGS_QUERY_MOUNT +fsinfo_attr_flags = FSINFO_ATTR_STATFS, FSINFO_ATTR_IDS, FSINFO_ATTR_LIMITS, FSINFO_ATTR_SUPPORTS, FSINFO_ATTR_TIMESTAMP_INFO, FSINFO_ATTR_VOLUME_ID, FSINFO_ATTR_VOLUME_UUID, FSINFO_ATTR_VOLUME_NAME, FSINFO_ATTR_FEATURES, FSINFO_ATTR_SOURCE, FSINFO_ATTR_CONFIGURATION, FSINFO_ATTR_FS_STATISTICS, FSINFO_ATTR_FSINFO_ATTRIBUTE_INFO, FSINFO_ATTR_FSINFO_ATTRIBUTES, FSINFO_ATTR_MOUNT_INFO, FSINFO_ATTR_MOUNT_PATH, FSINFO_ATTR_MOUNT_POINT, FSINFO_ATTR_MOUNT_POINT_FULL, FSINFO_ATTR_MOUNT_TOPOLOGY, FSINFO_ATTR_MOUNT_CHILDREN, FSINFO_ATTR_MOUNT_ALL, FSINFO_ATTR_AFS_CELL_NAME, FSINFO_ATTR_AFS_SERVER_NAME, FSINFO_ATTR_AFS_SERVER_ADDRESSES # adjtimex flags. _ = STA_PLL, STA_PPSFREQ, STA_PPSTIME, STA_FLL, STA_INS, STA_DEL, STA_UNSYNC, STA_FREQHOLD, STA_PPSSIGNAL, STA_PPSJITTER, STA_PPSWANDER, STA_PPSERROR, STA_CLOCKERR, STA_NANO, STA_MODE, STA_CLK, STA_RONLY diff --git a/sys/linux/sys_386.const b/sys/linux/sys_386.const index f34d4b44..3195e8b2 100644 --- a/sys/linux/sys_386.const +++ b/sys/linux/sys_386.const @@ -108,6 +108,34 @@ FIONBIO = 21537 FIONCLEX = 21584 FIOQSIZE = 21600 FITHAW = 3221510264 +FSINFO_ATTR_AFS_CELL_NAME = 768 +FSINFO_ATTR_AFS_SERVER_ADDRESSES = 770 +FSINFO_ATTR_AFS_SERVER_NAME = 769 +FSINFO_ATTR_CONFIGURATION = 10 +FSINFO_ATTR_FEATURES = 8 +FSINFO_ATTR_FSINFO_ATTRIBUTES = 257 +FSINFO_ATTR_FSINFO_ATTRIBUTE_INFO = 256 +FSINFO_ATTR_FS_STATISTICS = 11 +FSINFO_ATTR_IDS = 1 +FSINFO_ATTR_LIMITS = 2 +FSINFO_ATTR_MOUNT_ALL = 518 +FSINFO_ATTR_MOUNT_CHILDREN = 517 +FSINFO_ATTR_MOUNT_INFO = 512 +FSINFO_ATTR_MOUNT_PATH = 513 +FSINFO_ATTR_MOUNT_POINT = 514 +FSINFO_ATTR_MOUNT_POINT_FULL = 515 +FSINFO_ATTR_MOUNT_TOPOLOGY = 516 +FSINFO_ATTR_SOURCE = 9 +FSINFO_ATTR_STATFS = 0 +FSINFO_ATTR_SUPPORTS = 3 +FSINFO_ATTR_TIMESTAMP_INFO = 4 +FSINFO_ATTR_VOLUME_ID = 5 +FSINFO_ATTR_VOLUME_NAME = 7 +FSINFO_ATTR_VOLUME_UUID = 6 +FSINFO_FLAGS_QUERY_FD = 1 +FSINFO_FLAGS_QUERY_MASK = 7 +FSINFO_FLAGS_QUERY_MOUNT = 2 +FSINFO_FLAGS_QUERY_PATH = 0 F_ADD_SEALS = 1033 F_DUPFD = 0 F_DUPFD_CLOEXEC = 1030 @@ -588,6 +616,7 @@ __NR_fcntl = 55 __NR_fdatasync = 148 __NR_finit_module = 350 __NR_flock = 143 +__NR_fsinfo = 442 __NR_fstat = 108 __NR_fstat64 = 197 __NR_fstatat64 = 300 diff --git a/sys/linux/sys_amd64.const b/sys/linux/sys_amd64.const index a2d39af2..eaa7baa1 100644 --- a/sys/linux/sys_amd64.const +++ b/sys/linux/sys_amd64.const @@ -108,6 +108,34 @@ FIONBIO = 21537 FIONCLEX = 21584 FIOQSIZE = 21600 FITHAW = 3221510264 +FSINFO_ATTR_AFS_CELL_NAME = 768 +FSINFO_ATTR_AFS_SERVER_ADDRESSES = 770 +FSINFO_ATTR_AFS_SERVER_NAME = 769 +FSINFO_ATTR_CONFIGURATION = 10 +FSINFO_ATTR_FEATURES = 8 +FSINFO_ATTR_FSINFO_ATTRIBUTES = 257 +FSINFO_ATTR_FSINFO_ATTRIBUTE_INFO = 256 +FSINFO_ATTR_FS_STATISTICS = 11 +FSINFO_ATTR_IDS = 1 +FSINFO_ATTR_LIMITS = 2 +FSINFO_ATTR_MOUNT_ALL = 518 +FSINFO_ATTR_MOUNT_CHILDREN = 517 +FSINFO_ATTR_MOUNT_INFO = 512 +FSINFO_ATTR_MOUNT_PATH = 513 +FSINFO_ATTR_MOUNT_POINT = 514 +FSINFO_ATTR_MOUNT_POINT_FULL = 515 +FSINFO_ATTR_MOUNT_TOPOLOGY = 516 +FSINFO_ATTR_SOURCE = 9 +FSINFO_ATTR_STATFS = 0 +FSINFO_ATTR_SUPPORTS = 3 +FSINFO_ATTR_TIMESTAMP_INFO = 4 +FSINFO_ATTR_VOLUME_ID = 5 +FSINFO_ATTR_VOLUME_NAME = 7 +FSINFO_ATTR_VOLUME_UUID = 6 +FSINFO_FLAGS_QUERY_FD = 1 +FSINFO_FLAGS_QUERY_MASK = 7 +FSINFO_FLAGS_QUERY_MOUNT = 2 +FSINFO_FLAGS_QUERY_PATH = 0 F_ADD_SEALS = 1033 F_DUPFD = 0 F_DUPFD_CLOEXEC = 1030 @@ -588,6 +616,7 @@ __NR_fcntl = 72 __NR_fdatasync = 75 __NR_finit_module = 313 __NR_flock = 73 +__NR_fsinfo = 442 __NR_fstat = 5 # __NR_fstat64 is not set # __NR_fstatat64 is not set diff --git a/sys/linux/sys_arm.const b/sys/linux/sys_arm.const index 4b31a92c..d47387b6 100644 --- a/sys/linux/sys_arm.const +++ b/sys/linux/sys_arm.const @@ -108,6 +108,34 @@ FIONBIO = 21537 FIONCLEX = 21584 FIOQSIZE = 21598 FITHAW = 3221510264 +FSINFO_ATTR_AFS_CELL_NAME = 768 +FSINFO_ATTR_AFS_SERVER_ADDRESSES = 770 +FSINFO_ATTR_AFS_SERVER_NAME = 769 +FSINFO_ATTR_CONFIGURATION = 10 +FSINFO_ATTR_FEATURES = 8 +FSINFO_ATTR_FSINFO_ATTRIBUTES = 257 +FSINFO_ATTR_FSINFO_ATTRIBUTE_INFO = 256 +FSINFO_ATTR_FS_STATISTICS = 11 +FSINFO_ATTR_IDS = 1 +FSINFO_ATTR_LIMITS = 2 +FSINFO_ATTR_MOUNT_ALL = 518 +FSINFO_ATTR_MOUNT_CHILDREN = 517 +FSINFO_ATTR_MOUNT_INFO = 512 +FSINFO_ATTR_MOUNT_PATH = 513 +FSINFO_ATTR_MOUNT_POINT = 514 +FSINFO_ATTR_MOUNT_POINT_FULL = 515 +FSINFO_ATTR_MOUNT_TOPOLOGY = 516 +FSINFO_ATTR_SOURCE = 9 +FSINFO_ATTR_STATFS = 0 +FSINFO_ATTR_SUPPORTS = 3 +FSINFO_ATTR_TIMESTAMP_INFO = 4 +FSINFO_ATTR_VOLUME_ID = 5 +FSINFO_ATTR_VOLUME_NAME = 7 +FSINFO_ATTR_VOLUME_UUID = 6 +FSINFO_FLAGS_QUERY_FD = 1 +FSINFO_FLAGS_QUERY_MASK = 7 +FSINFO_FLAGS_QUERY_MOUNT = 2 +FSINFO_FLAGS_QUERY_PATH = 0 F_ADD_SEALS = 1033 F_DUPFD = 0 F_DUPFD_CLOEXEC = 1030 @@ -588,6 +616,7 @@ __NR_fcntl = 55 __NR_fdatasync = 148 __NR_finit_module = 379 __NR_flock = 143 +__NR_fsinfo = 442 __NR_fstat = 108 __NR_fstat64 = 197 __NR_fstatat64 = 327 diff --git a/sys/linux/sys_arm64.const b/sys/linux/sys_arm64.const index b606c52f..194b6ff6 100644 --- a/sys/linux/sys_arm64.const +++ b/sys/linux/sys_arm64.const @@ -108,6 +108,34 @@ FIONBIO = 21537 FIONCLEX = 21584 FIOQSIZE = 21600 FITHAW = 3221510264 +FSINFO_ATTR_AFS_CELL_NAME = 768 +FSINFO_ATTR_AFS_SERVER_ADDRESSES = 770 +FSINFO_ATTR_AFS_SERVER_NAME = 769 +FSINFO_ATTR_CONFIGURATION = 10 +FSINFO_ATTR_FEATURES = 8 +FSINFO_ATTR_FSINFO_ATTRIBUTES = 257 +FSINFO_ATTR_FSINFO_ATTRIBUTE_INFO = 256 +FSINFO_ATTR_FS_STATISTICS = 11 +FSINFO_ATTR_IDS = 1 +FSINFO_ATTR_LIMITS = 2 +FSINFO_ATTR_MOUNT_ALL = 518 +FSINFO_ATTR_MOUNT_CHILDREN = 517 +FSINFO_ATTR_MOUNT_INFO = 512 +FSINFO_ATTR_MOUNT_PATH = 513 +FSINFO_ATTR_MOUNT_POINT = 514 +FSINFO_ATTR_MOUNT_POINT_FULL = 515 +FSINFO_ATTR_MOUNT_TOPOLOGY = 516 +FSINFO_ATTR_SOURCE = 9 +FSINFO_ATTR_STATFS = 0 +FSINFO_ATTR_SUPPORTS = 3 +FSINFO_ATTR_TIMESTAMP_INFO = 4 +FSINFO_ATTR_VOLUME_ID = 5 +FSINFO_ATTR_VOLUME_NAME = 7 +FSINFO_ATTR_VOLUME_UUID = 6 +FSINFO_FLAGS_QUERY_FD = 1 +FSINFO_FLAGS_QUERY_MASK = 7 +FSINFO_FLAGS_QUERY_MOUNT = 2 +FSINFO_FLAGS_QUERY_PATH = 0 F_ADD_SEALS = 1033 F_DUPFD = 0 F_DUPFD_CLOEXEC = 1030 @@ -588,6 +616,7 @@ __NR_fcntl = 25 __NR_fdatasync = 83 __NR_finit_module = 273 __NR_flock = 32 +__NR_fsinfo = 442 __NR_fstat = 80 # __NR_fstat64 is not set # __NR_fstatat64 is not set diff --git a/sys/linux/sys_mips64le.const b/sys/linux/sys_mips64le.const index a52b523e..23091c93 100644 --- a/sys/linux/sys_mips64le.const +++ b/sys/linux/sys_mips64le.const @@ -108,6 +108,34 @@ FIONBIO = 26238 FIONCLEX = 26114 FIOQSIZE = 26239 FITHAW = 3221510264 +FSINFO_ATTR_AFS_CELL_NAME = 768 +FSINFO_ATTR_AFS_SERVER_ADDRESSES = 770 +FSINFO_ATTR_AFS_SERVER_NAME = 769 +FSINFO_ATTR_CONFIGURATION = 10 +FSINFO_ATTR_FEATURES = 8 +FSINFO_ATTR_FSINFO_ATTRIBUTES = 257 +FSINFO_ATTR_FSINFO_ATTRIBUTE_INFO = 256 +FSINFO_ATTR_FS_STATISTICS = 11 +FSINFO_ATTR_IDS = 1 +FSINFO_ATTR_LIMITS = 2 +FSINFO_ATTR_MOUNT_ALL = 518 +FSINFO_ATTR_MOUNT_CHILDREN = 517 +FSINFO_ATTR_MOUNT_INFO = 512 +FSINFO_ATTR_MOUNT_PATH = 513 +FSINFO_ATTR_MOUNT_POINT = 514 +FSINFO_ATTR_MOUNT_POINT_FULL = 515 +FSINFO_ATTR_MOUNT_TOPOLOGY = 516 +FSINFO_ATTR_SOURCE = 9 +FSINFO_ATTR_STATFS = 0 +FSINFO_ATTR_SUPPORTS = 3 +FSINFO_ATTR_TIMESTAMP_INFO = 4 +FSINFO_ATTR_VOLUME_ID = 5 +FSINFO_ATTR_VOLUME_NAME = 7 +FSINFO_ATTR_VOLUME_UUID = 6 +FSINFO_FLAGS_QUERY_FD = 1 +FSINFO_FLAGS_QUERY_MASK = 7 +FSINFO_FLAGS_QUERY_MOUNT = 2 +FSINFO_FLAGS_QUERY_PATH = 0 F_ADD_SEALS = 1033 F_DUPFD = 0 F_DUPFD_CLOEXEC = 1030 @@ -588,6 +616,7 @@ __NR_fcntl = 5070 __NR_fdatasync = 5073 __NR_finit_module = 5307 __NR_flock = 5071 +__NR_fsinfo = 5442 __NR_fstat = 5005 # __NR_fstat64 is not set # __NR_fstatat64 is not set diff --git a/sys/linux/sys_ppc64le.const b/sys/linux/sys_ppc64le.const index 1c95fe8d..c783a042 100644 --- a/sys/linux/sys_ppc64le.const +++ b/sys/linux/sys_ppc64le.const @@ -108,6 +108,34 @@ FIONBIO = 2147772030 FIONCLEX = 536897026 FIOQSIZE = 1074292352 FITHAW = 3221510264 +FSINFO_ATTR_AFS_CELL_NAME = 768 +FSINFO_ATTR_AFS_SERVER_ADDRESSES = 770 +FSINFO_ATTR_AFS_SERVER_NAME = 769 +FSINFO_ATTR_CONFIGURATION = 10 +FSINFO_ATTR_FEATURES = 8 +FSINFO_ATTR_FSINFO_ATTRIBUTES = 257 +FSINFO_ATTR_FSINFO_ATTRIBUTE_INFO = 256 +FSINFO_ATTR_FS_STATISTICS = 11 +FSINFO_ATTR_IDS = 1 +FSINFO_ATTR_LIMITS = 2 +FSINFO_ATTR_MOUNT_ALL = 518 +FSINFO_ATTR_MOUNT_CHILDREN = 517 +FSINFO_ATTR_MOUNT_INFO = 512 +FSINFO_ATTR_MOUNT_PATH = 513 +FSINFO_ATTR_MOUNT_POINT = 514 +FSINFO_ATTR_MOUNT_POINT_FULL = 515 +FSINFO_ATTR_MOUNT_TOPOLOGY = 516 +FSINFO_ATTR_SOURCE = 9 +FSINFO_ATTR_STATFS = 0 +FSINFO_ATTR_SUPPORTS = 3 +FSINFO_ATTR_TIMESTAMP_INFO = 4 +FSINFO_ATTR_VOLUME_ID = 5 +FSINFO_ATTR_VOLUME_NAME = 7 +FSINFO_ATTR_VOLUME_UUID = 6 +FSINFO_FLAGS_QUERY_FD = 1 +FSINFO_FLAGS_QUERY_MASK = 7 +FSINFO_FLAGS_QUERY_MOUNT = 2 +FSINFO_FLAGS_QUERY_PATH = 0 F_ADD_SEALS = 1033 F_DUPFD = 0 F_DUPFD_CLOEXEC = 1030 @@ -588,6 +616,7 @@ __NR_fcntl = 55 __NR_fdatasync = 148 __NR_finit_module = 353 __NR_flock = 143 +__NR_fsinfo = 442 __NR_fstat = 108 # __NR_fstat64 is not set # __NR_fstatat64 is not set