From 0a05e35530c788ed648f72b24f2291e5ad33d53e Mon Sep 17 00:00:00 2001 From: Dmitry Vyukov Date: Fri, 10 May 2019 12:58:58 +0200 Subject: sys/linux: add description of open_tree syscall --- sys/linux/filesystem.txt | 5 +++++ sys/linux/filesystem_386.const | 7 +++++++ sys/linux/filesystem_amd64.const | 7 +++++++ sys/linux/filesystem_arm.const | 7 +++++++ sys/linux/filesystem_arm64.const | 7 +++++++ sys/linux/filesystem_ppc64le.const | 7 +++++++ sys/linux/gen/386.go | 11 ++++++++++- sys/linux/gen/amd64.go | 11 ++++++++++- sys/linux/gen/arm.go | 5 ++++- sys/linux/gen/arm64.go | 5 ++++- sys/linux/gen/ppc64le.go | 5 ++++- 11 files changed, 72 insertions(+), 5 deletions(-) (limited to 'sys/linux') diff --git a/sys/linux/filesystem.txt b/sys/linux/filesystem.txt index 8ed8c8b16..7ac7977b4 100644 --- a/sys/linux/filesystem.txt +++ b/sys/linux/filesystem.txt @@ -3,6 +3,7 @@ include include +include mount(src ptr[in, blockdev_filename], dst ptr[in, filename], type ptr[in, string[filesystem]], flags flags[mount_flags], data ptr[in, string, opt]) umount2(path ptr[in, filename], flags flags[umount_flags]) @@ -10,6 +11,10 @@ umount2(path ptr[in, filename], flags flags[umount_flags]) mount$bpf(src const[0], dst ptr[in, filename], type ptr[in, string["bpf"]], flags flags[mount_flags], opts ptr[in, fs_options[bpf_options]]) mount$overlay(src const[0], dst ptr[in, filename], type ptr[in, string["overlay"]], flags flags[mount_flags], opts ptr[in, fs_options[overlay_options]]) +open_tree(dfd fd_dir[opt], filename ptr[in, filename], flags flags[open_tree_flags]) + +open_tree_flags = AT_EMPTY_PATH, AT_NO_AUTOMOUNT, AT_RECURSIVE, AT_SYMLINK_NOFOLLOW, OPEN_TREE_CLONE, OPEN_TREE_CLOEXEC + filesystem = "sysfs", "rootfs", "ramfs", "tmpfs", "devtmpfs", "debugfs", "securityfs", "sockfs", "pipefs", "anon_inodefs", "devpts", "ext3", "ext2", "ext4", "hugetlbfs", "vfat", "ecryptfs", "fuseblk", "fuse", "rpc_pipefs", "nfs", "nfs4", "nfsd", "binfmt_misc", "autofs", "xfs", "jfs", "msdos", "ntfs", "minix", "hfs", "hfsplus", "qnx4", "ufs", "btrfs", "configfs", "ncpfs", "qnx6", "exofs", "befs", "vxfs", "gfs2", "gfs2meta", "fusectl", "bfs", "nsfs", "efs", "cifs", "efivarfs", "affs", "tracefs", "bdev", "ocfs2", "ocfs2_dlmfs", "hpfs", "proc", "afs", "reiserfs", "jffs2", "romfs", "aio", "sysv", "v7", "udf", "ceph", "pstore", "adfs", "9p", "hostfs", "squashfs", "cramfs", "iso9660", "coda", "nilfs2", "logfs", "overlay", "f2fs", "omfs", "ubifs", "openpromfs", "bpf", "cgroup", "cgroup2", "cpuset", "mqueue", "aufs", "selinuxfs", "dax", "erofs" blockdev_filename [ diff --git a/sys/linux/filesystem_386.const b/sys/linux/filesystem_386.const index e853c3fdd..0d949e8a0 100644 --- a/sys/linux/filesystem_386.const +++ b/sys/linux/filesystem_386.const @@ -1,4 +1,8 @@ # AUTOGENERATED FILE +AT_EMPTY_PATH = 4096 +AT_NO_AUTOMOUNT = 2048 +AT_RECURSIVE = 32768 +AT_SYMLINK_NOFOLLOW = 256 MNT_DETACH = 2 MNT_EXPIRE = 4 MNT_FORCE = 1 @@ -25,6 +29,9 @@ MS_SLAVE = 524288 MS_STRICTATIME = 16777216 MS_SYNCHRONOUS = 16 MS_UNBINDABLE = 131072 +OPEN_TREE_CLOEXEC = 524288 +OPEN_TREE_CLONE = 1 UMOUNT_NOFOLLOW = 8 __NR_mount = 21 +__NR_open_tree = 387 __NR_umount2 = 52 diff --git a/sys/linux/filesystem_amd64.const b/sys/linux/filesystem_amd64.const index 22939df2e..1f7904da3 100644 --- a/sys/linux/filesystem_amd64.const +++ b/sys/linux/filesystem_amd64.const @@ -1,4 +1,8 @@ # AUTOGENERATED FILE +AT_EMPTY_PATH = 4096 +AT_NO_AUTOMOUNT = 2048 +AT_RECURSIVE = 32768 +AT_SYMLINK_NOFOLLOW = 256 MNT_DETACH = 2 MNT_EXPIRE = 4 MNT_FORCE = 1 @@ -25,6 +29,9 @@ MS_SLAVE = 524288 MS_STRICTATIME = 16777216 MS_SYNCHRONOUS = 16 MS_UNBINDABLE = 131072 +OPEN_TREE_CLOEXEC = 524288 +OPEN_TREE_CLONE = 1 UMOUNT_NOFOLLOW = 8 __NR_mount = 165 +__NR_open_tree = 335 __NR_umount2 = 166 diff --git a/sys/linux/filesystem_arm.const b/sys/linux/filesystem_arm.const index e853c3fdd..1d00c0693 100644 --- a/sys/linux/filesystem_arm.const +++ b/sys/linux/filesystem_arm.const @@ -1,4 +1,8 @@ # AUTOGENERATED FILE +AT_EMPTY_PATH = 4096 +AT_NO_AUTOMOUNT = 2048 +AT_RECURSIVE = 32768 +AT_SYMLINK_NOFOLLOW = 256 MNT_DETACH = 2 MNT_EXPIRE = 4 MNT_FORCE = 1 @@ -25,6 +29,9 @@ MS_SLAVE = 524288 MS_STRICTATIME = 16777216 MS_SYNCHRONOUS = 16 MS_UNBINDABLE = 131072 +OPEN_TREE_CLOEXEC = 524288 +OPEN_TREE_CLONE = 1 UMOUNT_NOFOLLOW = 8 __NR_mount = 21 +# __NR_open_tree is not set __NR_umount2 = 52 diff --git a/sys/linux/filesystem_arm64.const b/sys/linux/filesystem_arm64.const index 667f60e5b..827bbe51b 100644 --- a/sys/linux/filesystem_arm64.const +++ b/sys/linux/filesystem_arm64.const @@ -1,4 +1,8 @@ # AUTOGENERATED FILE +AT_EMPTY_PATH = 4096 +AT_NO_AUTOMOUNT = 2048 +AT_RECURSIVE = 32768 +AT_SYMLINK_NOFOLLOW = 256 MNT_DETACH = 2 MNT_EXPIRE = 4 MNT_FORCE = 1 @@ -25,6 +29,9 @@ MS_SLAVE = 524288 MS_STRICTATIME = 16777216 MS_SYNCHRONOUS = 16 MS_UNBINDABLE = 131072 +OPEN_TREE_CLOEXEC = 524288 +OPEN_TREE_CLONE = 1 UMOUNT_NOFOLLOW = 8 __NR_mount = 40 +# __NR_open_tree is not set __NR_umount2 = 39 diff --git a/sys/linux/filesystem_ppc64le.const b/sys/linux/filesystem_ppc64le.const index e853c3fdd..1d00c0693 100644 --- a/sys/linux/filesystem_ppc64le.const +++ b/sys/linux/filesystem_ppc64le.const @@ -1,4 +1,8 @@ # AUTOGENERATED FILE +AT_EMPTY_PATH = 4096 +AT_NO_AUTOMOUNT = 2048 +AT_RECURSIVE = 32768 +AT_SYMLINK_NOFOLLOW = 256 MNT_DETACH = 2 MNT_EXPIRE = 4 MNT_FORCE = 1 @@ -25,6 +29,9 @@ MS_SLAVE = 524288 MS_STRICTATIME = 16777216 MS_SYNCHRONOUS = 16 MS_UNBINDABLE = 131072 +OPEN_TREE_CLOEXEC = 524288 +OPEN_TREE_CLONE = 1 UMOUNT_NOFOLLOW = 8 __NR_mount = 21 +# __NR_open_tree is not set __NR_umount2 = 52 diff --git a/sys/linux/gen/386.go b/sys/linux/gen/386.go index 7d20f59ce..846021bec 100644 --- a/sys/linux/gen/386.go +++ b/sys/linux/gen/386.go @@ -36792,6 +36792,11 @@ var syscalls_386 = []*Syscall{ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "handle", TypeSize: 4}, Type: &StructType{Key: StructKey{Name: "file_handle"}}}, &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "open_flags", FldName: "flags", TypeSize: 4}}, Vals: []uint64{0, 1, 2, 1024, 8192, 524288, 64, 16384, 65536, 128, 32768, 262144, 256, 131072, 2048, 2097152, 1052672, 512, 4194304}, BitMask: true}, }}, + {NR: 387, Name: "open_tree", CallName: "open_tree", Args: []Type{ + &ResourceType{TypeCommon: TypeCommon{TypeName: "fd_dir", FldName: "dfd", TypeSize: 4, IsOptional: true}}, + &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "filename", TypeSize: 4}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "filename", IsVarlen: true}, Kind: 3}}, + &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "open_tree_flags", FldName: "flags", TypeSize: 4}}, Vals: []uint64{4096, 2048, 32768, 256, 1, 524288}, BitMask: true}, + }}, {NR: 295, Name: "openat", CallName: "openat", Args: []Type{ &ResourceType{TypeCommon: TypeCommon{TypeName: "fd_dir", FldName: "fd", TypeSize: 4, IsOptional: true}}, &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "file", TypeSize: 4}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "filename", IsVarlen: true}, Kind: 3}}, @@ -43122,6 +43127,7 @@ var consts_386 = []ConstValue{ {Name: "AT_EMPTY_PATH", Value: 4096}, {Name: "AT_FDCWD", Value: 18446744073709551516}, {Name: "AT_NO_AUTOMOUNT", Value: 2048}, + {Name: "AT_RECURSIVE", Value: 32768}, {Name: "AT_REMOVEDIR", Value: 512}, {Name: "AT_STATX_DONT_SYNC", Value: 16384}, {Name: "AT_STATX_FORCE_SYNC", Value: 8192}, @@ -46350,6 +46356,8 @@ var consts_386 = []ConstValue{ {Name: "N_NULL", Value: 27}, {Name: "N_TTY"}, {Name: "OMAGIC", Value: 263}, + {Name: "OPEN_TREE_CLOEXEC", Value: 524288}, + {Name: "OPEN_TREE_CLONE", Value: 1}, {Name: "OPTION_ADD_ADDR", Value: 32}, {Name: "OPTION_MP_CAPABLE", Value: 8}, {Name: "OPTION_MP_FCLOSE", Value: 128}, @@ -50416,6 +50424,7 @@ var consts_386 = []ConstValue{ {Name: "__NR_nanosleep", Value: 162}, {Name: "__NR_open", Value: 5}, {Name: "__NR_open_by_handle_at", Value: 342}, + {Name: "__NR_open_tree", Value: 387}, {Name: "__NR_openat", Value: 295}, {Name: "__NR_pause", Value: 29}, {Name: "__NR_perf_event_open", Value: 336}, @@ -50565,4 +50574,4 @@ var consts_386 = []ConstValue{ {Name: "bpf_insn_load_imm_dw", Value: 24}, } -const revision_386 = "9d3ebcc3d985b4b2fa8f549c45377f79ed05f972" +const revision_386 = "69dc9cb2da5c664b02b273890fe23348254b1bac" diff --git a/sys/linux/gen/amd64.go b/sys/linux/gen/amd64.go index 6c276508c..8d5da3bd2 100644 --- a/sys/linux/gen/amd64.go +++ b/sys/linux/gen/amd64.go @@ -37294,6 +37294,11 @@ var syscalls_amd64 = []*Syscall{ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "handle", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "file_handle"}}}, &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "open_flags", FldName: "flags", TypeSize: 8}}, Vals: []uint64{0, 1, 2, 1024, 8192, 524288, 64, 16384, 65536, 128, 32768, 262144, 256, 131072, 2048, 2097152, 1052672, 512, 4194304}, BitMask: true}, }}, + {NR: 335, Name: "open_tree", CallName: "open_tree", Args: []Type{ + &ResourceType{TypeCommon: TypeCommon{TypeName: "fd_dir", FldName: "dfd", TypeSize: 4, IsOptional: true}}, + &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "filename", TypeSize: 8}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "filename", IsVarlen: true}, Kind: 3}}, + &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "open_tree_flags", FldName: "flags", TypeSize: 8}}, Vals: []uint64{4096, 2048, 32768, 256, 1, 524288}, BitMask: true}, + }}, {NR: 257, Name: "openat", CallName: "openat", Args: []Type{ &ResourceType{TypeCommon: TypeCommon{TypeName: "fd_dir", FldName: "fd", TypeSize: 4, IsOptional: true}}, &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "file", TypeSize: 8}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "filename", IsVarlen: true}, Kind: 3}}, @@ -43629,6 +43634,7 @@ var consts_amd64 = []ConstValue{ {Name: "AT_EMPTY_PATH", Value: 4096}, {Name: "AT_FDCWD", Value: 18446744073709551516}, {Name: "AT_NO_AUTOMOUNT", Value: 2048}, + {Name: "AT_RECURSIVE", Value: 32768}, {Name: "AT_REMOVEDIR", Value: 512}, {Name: "AT_STATX_DONT_SYNC", Value: 16384}, {Name: "AT_STATX_FORCE_SYNC", Value: 8192}, @@ -46857,6 +46863,8 @@ var consts_amd64 = []ConstValue{ {Name: "N_NULL", Value: 27}, {Name: "N_TTY"}, {Name: "OMAGIC", Value: 263}, + {Name: "OPEN_TREE_CLOEXEC", Value: 524288}, + {Name: "OPEN_TREE_CLONE", Value: 1}, {Name: "OPTION_ADD_ADDR", Value: 32}, {Name: "OPTION_MP_CAPABLE", Value: 8}, {Name: "OPTION_MP_FCLOSE", Value: 128}, @@ -50937,6 +50945,7 @@ var consts_amd64 = []ConstValue{ {Name: "__NR_nanosleep", Value: 35}, {Name: "__NR_open", Value: 2}, {Name: "__NR_open_by_handle_at", Value: 304}, + {Name: "__NR_open_tree", Value: 335}, {Name: "__NR_openat", Value: 257}, {Name: "__NR_pause", Value: 34}, {Name: "__NR_perf_event_open", Value: 298}, @@ -51087,4 +51096,4 @@ var consts_amd64 = []ConstValue{ {Name: "bpf_insn_load_imm_dw", Value: 24}, } -const revision_amd64 = "eb7edeb6d37073cb308a4b0410d772ebca576f52" +const revision_amd64 = "e41f453fb26afca010d939493df4d33eade9c188" diff --git a/sys/linux/gen/arm.go b/sys/linux/gen/arm.go index 7eded8b43..4ea05c043 100644 --- a/sys/linux/gen/arm.go +++ b/sys/linux/gen/arm.go @@ -42762,6 +42762,7 @@ var consts_arm = []ConstValue{ {Name: "AT_EMPTY_PATH", Value: 4096}, {Name: "AT_FDCWD", Value: 18446744073709551516}, {Name: "AT_NO_AUTOMOUNT", Value: 2048}, + {Name: "AT_RECURSIVE", Value: 32768}, {Name: "AT_REMOVEDIR", Value: 512}, {Name: "AT_STATX_DONT_SYNC", Value: 16384}, {Name: "AT_STATX_FORCE_SYNC", Value: 8192}, @@ -45939,6 +45940,8 @@ var consts_arm = []ConstValue{ {Name: "N_NULL", Value: 27}, {Name: "N_TTY"}, {Name: "OMAGIC", Value: 263}, + {Name: "OPEN_TREE_CLOEXEC", Value: 524288}, + {Name: "OPEN_TREE_CLONE", Value: 1}, {Name: "OPTION_ADD_ADDR", Value: 32}, {Name: "OPTION_MP_CAPABLE", Value: 8}, {Name: "OPTION_MP_FCLOSE", Value: 128}, @@ -50142,4 +50145,4 @@ var consts_arm = []ConstValue{ {Name: "bpf_insn_load_imm_dw", Value: 24}, } -const revision_arm = "78141e91f317b5cf0f621507e5b42006ab63f3e1" +const revision_arm = "859bb50c881df71d70e57c30d8ae0fa781138de4" diff --git a/sys/linux/gen/arm64.go b/sys/linux/gen/arm64.go index d42f80188..d8fb552ca 100644 --- a/sys/linux/gen/arm64.go +++ b/sys/linux/gen/arm64.go @@ -43075,6 +43075,7 @@ var consts_arm64 = []ConstValue{ {Name: "AT_EMPTY_PATH", Value: 4096}, {Name: "AT_FDCWD", Value: 18446744073709551516}, {Name: "AT_NO_AUTOMOUNT", Value: 2048}, + {Name: "AT_RECURSIVE", Value: 32768}, {Name: "AT_REMOVEDIR", Value: 512}, {Name: "AT_STATX_DONT_SYNC", Value: 16384}, {Name: "AT_STATX_FORCE_SYNC", Value: 8192}, @@ -46262,6 +46263,8 @@ var consts_arm64 = []ConstValue{ {Name: "N_NULL", Value: 27}, {Name: "N_TTY"}, {Name: "OMAGIC", Value: 263}, + {Name: "OPEN_TREE_CLOEXEC", Value: 524288}, + {Name: "OPEN_TREE_CLONE", Value: 1}, {Name: "OVL_FH_FLAG_ANY_ENDIAN", Value: 2}, {Name: "OVL_FH_FLAG_BIG_ENDIAN", Value: 1}, {Name: "OVL_FH_FLAG_PATH_UPPER", Value: 4}, @@ -50437,4 +50440,4 @@ var consts_arm64 = []ConstValue{ {Name: "bpf_insn_load_imm_dw", Value: 24}, } -const revision_arm64 = "33ee28c5f873458f2fbb61e7cb5fb9a9b5a30a58" +const revision_arm64 = "cbdacf16b230b4f342cfe21f183e1a5f38cfc499" diff --git a/sys/linux/gen/ppc64le.go b/sys/linux/gen/ppc64le.go index 6b6d15e9d..8b84f5a5e 100644 --- a/sys/linux/gen/ppc64le.go +++ b/sys/linux/gen/ppc64le.go @@ -43069,6 +43069,7 @@ var consts_ppc64le = []ConstValue{ {Name: "AT_EMPTY_PATH", Value: 4096}, {Name: "AT_FDCWD", Value: 18446744073709551516}, {Name: "AT_NO_AUTOMOUNT", Value: 2048}, + {Name: "AT_RECURSIVE", Value: 32768}, {Name: "AT_REMOVEDIR", Value: 512}, {Name: "AT_STATX_DONT_SYNC", Value: 16384}, {Name: "AT_STATX_FORCE_SYNC", Value: 8192}, @@ -46243,6 +46244,8 @@ var consts_ppc64le = []ConstValue{ {Name: "N_NULL", Value: 27}, {Name: "N_TTY"}, {Name: "OMAGIC", Value: 263}, + {Name: "OPEN_TREE_CLOEXEC", Value: 524288}, + {Name: "OPEN_TREE_CLONE", Value: 1}, {Name: "OPTION_ADD_ADDR", Value: 32}, {Name: "OPTION_MP_CAPABLE", Value: 8}, {Name: "OPTION_MP_FCLOSE", Value: 128}, @@ -50404,4 +50407,4 @@ var consts_ppc64le = []ConstValue{ {Name: "bpf_insn_load_imm_dw", Value: 24}, } -const revision_ppc64le = "4c3aaf0cfd6799b47fa32bbddce489bcee6fb79b" +const revision_ppc64le = "109cf99c064f9b4cf6912be268e4896afedc38a1" -- cgit mrf-deployment