aboutsummaryrefslogtreecommitdiffstats
path: root/sys/linux
diff options
context:
space:
mode:
authorDmitry Vyukov <dvyukov@google.com>2019-05-10 12:58:58 +0200
committerDmitry Vyukov <dvyukov@google.com>2019-05-10 13:13:46 +0200
commit0a05e35530c788ed648f72b24f2291e5ad33d53e (patch)
tree65f92bc17834a8807e382dd238759b590a1871cb /sys/linux
parent4af714615af57fb71736a9b63ea3ee0a601e9217 (diff)
sys/linux: add description of open_tree syscall
Diffstat (limited to 'sys/linux')
-rw-r--r--sys/linux/filesystem.txt5
-rw-r--r--sys/linux/filesystem_386.const7
-rw-r--r--sys/linux/filesystem_amd64.const7
-rw-r--r--sys/linux/filesystem_arm.const7
-rw-r--r--sys/linux/filesystem_arm64.const7
-rw-r--r--sys/linux/filesystem_ppc64le.const7
-rw-r--r--sys/linux/gen/386.go11
-rw-r--r--sys/linux/gen/amd64.go11
-rw-r--r--sys/linux/gen/arm.go5
-rw-r--r--sys/linux/gen/arm64.go5
-rw-r--r--sys/linux/gen/ppc64le.go5
11 files changed, 72 insertions, 5 deletions
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 <uapi/linux/mount.h>
include <linux/fs.h>
+include <linux/fcntl.h>
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"