aboutsummaryrefslogtreecommitdiffstats
path: root/sys
diff options
context:
space:
mode:
authorDmitry Vyukov <dvyukov@google.com>2019-09-27 12:59:10 +0200
committerDmitry Vyukov <dvyukov@google.com>2019-09-27 13:35:42 +0200
commitd8074e0bb985b9be6611e16b45b8657f20157a4b (patch)
treed6265734abbf5d7cb594bd47e6cf72584eda0f0c /sys
parent2f1548bc77986e756b536eaa15726b483a0b1858 (diff)
sys/linux: add new pidfd syscalls
Diffstat (limited to 'sys')
-rw-r--r--sys/linux/gen/amd64.go31
-rw-r--r--sys/linux/gen/arm64.go31
-rw-r--r--sys/linux/gen/ppc64le.go31
-rw-r--r--sys/linux/sys.txt15
-rw-r--r--sys/linux/sys_amd64.const3
-rw-r--r--sys/linux/sys_arm64.const3
-rw-r--r--sys/linux/sys_ppc64le.const3
7 files changed, 114 insertions, 3 deletions
diff --git a/sys/linux/gen/amd64.go b/sys/linux/gen/amd64.go
index d684e1897..85fc4aa7b 100644
--- a/sys/linux/gen/amd64.go
+++ b/sys/linux/gen/amd64.go
@@ -1956,6 +1956,17 @@ var structDescs_amd64 = []*KeyedStruct{
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "val", TypeSize: 4}}},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "timeout", TypeSize: 4}}},
}}},
+ {Key: StructKey{Name: "clone_args"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "clone_args", TypeSize: 64}, Fields: []Type{
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "clone_flags", FldName: "flags", TypeSize: 8}}, Vals: []uint64{256, 512, 1024, 2048, 8192, 16384, 32768, 65536, 131072, 262144, 524288, 1048576, 2097152, 8388608, 16777216, 33554432, 67108864, 134217728, 268435456, 536870912, 1073741824, 2147483648, 4096}, BitMask: true},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr64", FldName: "pidfd", TypeSize: 8}, Type: &ResourceType{TypeCommon: TypeCommon{TypeName: "fd_pidfd", TypeSize: 4, ArgDir: 1}}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr64", FldName: "child_tid", TypeSize: 8}, Type: &ResourceType{TypeCommon: TypeCommon{TypeName: "pid", TypeSize: 4, ArgDir: 1}}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr64", FldName: "parent_tid", TypeSize: 8}, Type: &ResourceType{TypeCommon: TypeCommon{TypeName: "pid", TypeSize: 4, ArgDir: 1}}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "exit_signal", TypeSize: 4}}, Kind: 2, RangeEnd: 65},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "exit_signal_pad", TypeSize: 4}}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr64", FldName: "stack", TypeSize: 8}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "array", ArgDir: 1, IsVarlen: true}}},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bytesize", FldName: "stack_size", TypeSize: 8}}, BitSize: 8, Path: []string{"stack"}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr64", FldName: "tls", TypeSize: 8}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "array", ArgDir: 1, IsVarlen: true}}},
+ }}},
{Key: StructKey{Name: "close_xrcd_cmd", Dir: 2}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "close_xrcd_cmd", TypeSize: 12, ArgDir: 2}, Fields: []Type{
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "command", TypeSize: 4, ArgDir: 2}}, Val: 38},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "in_words", TypeSize: 2, ArgDir: 2}}, Val: 3},
@@ -30858,6 +30869,10 @@ var syscalls_amd64 = []*Syscall{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "childtid", TypeSize: 8}, Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4, ArgDir: 1}}}},
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "tls", TypeSize: 8}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "array", IsVarlen: true}}},
}},
+ {NR: 435, Name: "clone3", CallName: "clone3", Args: []Type{
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "args", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "clone_args"}}},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bytesize", FldName: "size", TypeSize: 8}}, BitSize: 8, Path: []string{"args"}},
+ }, Ret: &ResourceType{TypeCommon: TypeCommon{TypeName: "pid", FldName: "ret", TypeSize: 4, ArgDir: 1}}},
{NR: 3, Name: "close", CallName: "close", Args: []Type{
&ResourceType{TypeCommon: TypeCommon{TypeName: "fd", FldName: "fd", TypeSize: 4}},
}},
@@ -39732,6 +39747,10 @@ var syscalls_amd64 = []*Syscall{
{NR: 135, Name: "personality", CallName: "personality", Args: []Type{
&FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "personality_flags", FldName: "persona", TypeSize: 8}}, Vals: []uint64{0, 68157441, 83886082, 100663299, 83886084, 67108869, 6, 83886087, 8, 67108873, 67108874, 67108875, 12, 67108877, 68157454, 15, 16, 262144, 1048576, 2097152, 4194304, 8388608, 16777216, 33554432, 67108864, 134217728}},
}},
+ {NR: 434, Name: "pidfd_open", CallName: "pidfd_open", Args: []Type{
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "pid", FldName: "pid", TypeSize: 4}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "flags", TypeSize: 8}}},
+ }, Ret: &ResourceType{TypeCommon: TypeCommon{TypeName: "fd_pidfd", FldName: "ret", TypeSize: 4, ArgDir: 1}}},
{NR: 424, Name: "pidfd_send_signal", CallName: "pidfd_send_signal", Args: []Type{
&ResourceType{TypeCommon: TypeCommon{TypeName: "fd_pidfd", FldName: "fd", TypeSize: 4}},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "sig", TypeSize: 4}}, Kind: 2, RangeEnd: 65},
@@ -44406,6 +44425,13 @@ var syscalls_amd64 = []*Syscall{
&FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "wait_options", FldName: "options", TypeSize: 8}}, Vals: []uint64{1, 2, 8, 4, 2, 8, 1, 16777216, 2147483648, 1073741824, 536870912}},
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "ru", TypeSize: 8, IsOptional: true}, Type: &StructType{Key: StructKey{Name: "rusage", Dir: 1}}},
}},
+ {NR: 247, Name: "waitid$P_PIDFD", CallName: "waitid", Args: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "which", TypeSize: 8}}, Val: 3},
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "fd_pidfd", FldName: "pidfd", TypeSize: 4}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "infop", TypeSize: 8, IsOptional: true}, Type: &StructType{Key: StructKey{Name: "siginfo", Dir: 1}}},
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "wait_options", FldName: "options", TypeSize: 8}}, Vals: []uint64{1, 2, 8, 4, 2, 8, 1, 16777216, 2147483648, 1073741824, 536870912}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "ru", TypeSize: 8, IsOptional: true}, Type: &StructType{Key: StructKey{Name: "rusage", Dir: 1}}},
+ }},
{NR: 1, Name: "write", CallName: "write", Args: []Type{
&ResourceType{TypeCommon: TypeCommon{TypeName: "fd", FldName: "fd", TypeSize: 4}},
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "buf", TypeSize: 8}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "array", IsVarlen: true}}},
@@ -49415,6 +49441,7 @@ var consts_amd64 = []ConstValue{
{Name: "P_ALL"},
{Name: "P_PGID", Value: 2},
{Name: "P_PID", Value: 1},
+ {Name: "P_PIDFD", Value: 3},
{Name: "QMAGIC", Value: 204},
{Name: "RDMA_DRIVER_MLX5", Value: 1},
{Name: "RDMA_MAX_PRIVATE_DATA", Value: 256},
@@ -52923,6 +52950,7 @@ var consts_amd64 = []ConstValue{
{Name: "__NR_clock_nanosleep", Value: 230},
{Name: "__NR_clock_settime", Value: 227},
{Name: "__NR_clone", Value: 56},
+ {Name: "__NR_clone3", Value: 435},
{Name: "__NR_close", Value: 3},
{Name: "__NR_connect", Value: 42},
{Name: "__NR_creat", Value: 85},
@@ -53072,6 +53100,7 @@ var consts_amd64 = []ConstValue{
{Name: "__NR_pause", Value: 34},
{Name: "__NR_perf_event_open", Value: 298},
{Name: "__NR_personality", Value: 135},
+ {Name: "__NR_pidfd_open", Value: 434},
{Name: "__NR_pidfd_send_signal", Value: 424},
{Name: "__NR_pipe", Value: 22},
{Name: "__NR_pipe2", Value: 293},
@@ -53218,4 +53247,4 @@ var consts_amd64 = []ConstValue{
{Name: "bpf_insn_load_imm_dw", Value: 24},
}
-const revision_amd64 = "ff14590c1d7571c59d13695f38ba0c5a0cde1926"
+const revision_amd64 = "2b0d730636e173a54883adbff9038bede9b4433f"
diff --git a/sys/linux/gen/arm64.go b/sys/linux/gen/arm64.go
index 6e7f75003..e58a376cb 100644
--- a/sys/linux/gen/arm64.go
+++ b/sys/linux/gen/arm64.go
@@ -1956,6 +1956,17 @@ var structDescs_arm64 = []*KeyedStruct{
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "val", TypeSize: 4}}},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "timeout", TypeSize: 4}}},
}}},
+ {Key: StructKey{Name: "clone_args"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "clone_args", TypeSize: 64}, Fields: []Type{
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "clone_flags", FldName: "flags", TypeSize: 8}}, Vals: []uint64{256, 512, 1024, 2048, 8192, 16384, 32768, 65536, 131072, 262144, 524288, 1048576, 2097152, 8388608, 16777216, 33554432, 67108864, 134217728, 268435456, 536870912, 1073741824, 2147483648, 4096}, BitMask: true},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr64", FldName: "pidfd", TypeSize: 8}, Type: &ResourceType{TypeCommon: TypeCommon{TypeName: "fd_pidfd", TypeSize: 4, ArgDir: 1}}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr64", FldName: "child_tid", TypeSize: 8}, Type: &ResourceType{TypeCommon: TypeCommon{TypeName: "pid", TypeSize: 4, ArgDir: 1}}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr64", FldName: "parent_tid", TypeSize: 8}, Type: &ResourceType{TypeCommon: TypeCommon{TypeName: "pid", TypeSize: 4, ArgDir: 1}}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "exit_signal", TypeSize: 4}}, Kind: 2, RangeEnd: 65},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "exit_signal_pad", TypeSize: 4}}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr64", FldName: "stack", TypeSize: 8}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "array", ArgDir: 1, IsVarlen: true}}},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bytesize", FldName: "stack_size", TypeSize: 8}}, BitSize: 8, Path: []string{"stack"}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr64", FldName: "tls", TypeSize: 8}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "array", ArgDir: 1, IsVarlen: true}}},
+ }}},
{Key: StructKey{Name: "close_xrcd_cmd", Dir: 2}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "close_xrcd_cmd", TypeSize: 12, ArgDir: 2}, Fields: []Type{
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "command", TypeSize: 4, ArgDir: 2}}, Val: 38},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "in_words", TypeSize: 2, ArgDir: 2}}, Val: 3},
@@ -30607,6 +30618,10 @@ var syscalls_arm64 = []*Syscall{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "childtid", TypeSize: 8}, Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4, ArgDir: 1}}}},
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "tls", TypeSize: 8}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "array", IsVarlen: true}}},
}},
+ {NR: 435, Name: "clone3", CallName: "clone3", Args: []Type{
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "args", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "clone_args"}}},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bytesize", FldName: "size", TypeSize: 8}}, BitSize: 8, Path: []string{"args"}},
+ }, Ret: &ResourceType{TypeCommon: TypeCommon{TypeName: "pid", FldName: "ret", TypeSize: 4, ArgDir: 1}}},
{NR: 57, Name: "close", CallName: "close", Args: []Type{
&ResourceType{TypeCommon: TypeCommon{TypeName: "fd", FldName: "fd", TypeSize: 4}},
}},
@@ -39263,6 +39278,10 @@ var syscalls_arm64 = []*Syscall{
{NR: 92, Name: "personality", CallName: "personality", Args: []Type{
&FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "personality_flags", FldName: "persona", TypeSize: 8}}, Vals: []uint64{0, 68157441, 83886082, 100663299, 83886084, 67108869, 6, 83886087, 8, 67108873, 67108874, 67108875, 12, 67108877, 68157454, 15, 16, 262144, 1048576, 2097152, 4194304, 8388608, 16777216, 33554432, 67108864, 134217728}},
}},
+ {NR: 434, Name: "pidfd_open", CallName: "pidfd_open", Args: []Type{
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "pid", FldName: "pid", TypeSize: 4}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "flags", TypeSize: 8}}},
+ }, Ret: &ResourceType{TypeCommon: TypeCommon{TypeName: "fd_pidfd", FldName: "ret", TypeSize: 4, ArgDir: 1}}},
{NR: 424, Name: "pidfd_send_signal", CallName: "pidfd_send_signal", Args: []Type{
&ResourceType{TypeCommon: TypeCommon{TypeName: "fd_pidfd", FldName: "fd", TypeSize: 4}},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "sig", TypeSize: 4}}, Kind: 2, RangeEnd: 65},
@@ -43861,6 +43880,13 @@ var syscalls_arm64 = []*Syscall{
&FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "wait_options", FldName: "options", TypeSize: 8}}, Vals: []uint64{1, 2, 8, 4, 2, 8, 1, 16777216, 2147483648, 1073741824, 536870912}},
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "ru", TypeSize: 8, IsOptional: true}, Type: &StructType{Key: StructKey{Name: "rusage", Dir: 1}}},
}},
+ {NR: 95, Name: "waitid$P_PIDFD", CallName: "waitid", Args: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "which", TypeSize: 8}}, Val: 3},
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "fd_pidfd", FldName: "pidfd", TypeSize: 4}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "infop", TypeSize: 8, IsOptional: true}, Type: &StructType{Key: StructKey{Name: "siginfo", Dir: 1}}},
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "wait_options", FldName: "options", TypeSize: 8}}, Vals: []uint64{1, 2, 8, 4, 2, 8, 1, 16777216, 2147483648, 1073741824, 536870912}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "ru", TypeSize: 8, IsOptional: true}, Type: &StructType{Key: StructKey{Name: "rusage", Dir: 1}}},
+ }},
{NR: 64, Name: "write", CallName: "write", Args: []Type{
&ResourceType{TypeCommon: TypeCommon{TypeName: "fd", FldName: "fd", TypeSize: 4}},
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "buf", TypeSize: 8}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "array", IsVarlen: true}}},
@@ -48808,6 +48834,7 @@ var consts_arm64 = []ConstValue{
{Name: "P_ALL"},
{Name: "P_PGID", Value: 2},
{Name: "P_PID", Value: 1},
+ {Name: "P_PIDFD", Value: 3},
{Name: "QMAGIC", Value: 204},
{Name: "RDMA_DRIVER_MLX5", Value: 1},
{Name: "RDMA_MAX_PRIVATE_DATA", Value: 256},
@@ -52312,6 +52339,7 @@ var consts_arm64 = []ConstValue{
{Name: "__NR_clock_nanosleep", Value: 115},
{Name: "__NR_clock_settime", Value: 112},
{Name: "__NR_clone", Value: 220},
+ {Name: "__NR_clone3", Value: 435},
{Name: "__NR_close", Value: 57},
{Name: "__NR_connect", Value: 203},
{Name: "__NR_delete_module", Value: 106},
@@ -52441,6 +52469,7 @@ var consts_arm64 = []ConstValue{
{Name: "__NR_openat", Value: 56},
{Name: "__NR_perf_event_open", Value: 241},
{Name: "__NR_personality", Value: 92},
+ {Name: "__NR_pidfd_open", Value: 434},
{Name: "__NR_pidfd_send_signal", Value: 424},
{Name: "__NR_pipe2", Value: 59},
{Name: "__NR_pivot_root", Value: 41},
@@ -52570,4 +52599,4 @@ var consts_arm64 = []ConstValue{
{Name: "bpf_insn_load_imm_dw", Value: 24},
}
-const revision_arm64 = "11f0b72f097b67e06980023b95d9661975776dcb"
+const revision_arm64 = "4acbb2d2f22e4882fb6bf3e8cf045731ce95b94e"
diff --git a/sys/linux/gen/ppc64le.go b/sys/linux/gen/ppc64le.go
index 52fc85939..8e83d774e 100644
--- a/sys/linux/gen/ppc64le.go
+++ b/sys/linux/gen/ppc64le.go
@@ -1955,6 +1955,17 @@ var structDescs_ppc64le = []*KeyedStruct{
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "val", TypeSize: 4}}},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "timeout", TypeSize: 4}}},
}}},
+ {Key: StructKey{Name: "clone_args"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "clone_args", TypeSize: 64}, Fields: []Type{
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "clone_flags", FldName: "flags", TypeSize: 8}}, Vals: []uint64{256, 512, 1024, 2048, 8192, 16384, 32768, 65536, 131072, 262144, 524288, 1048576, 2097152, 8388608, 16777216, 33554432, 67108864, 134217728, 268435456, 536870912, 1073741824, 2147483648, 4096}, BitMask: true},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr64", FldName: "pidfd", TypeSize: 8}, Type: &ResourceType{TypeCommon: TypeCommon{TypeName: "fd_pidfd", TypeSize: 4, ArgDir: 1}}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr64", FldName: "child_tid", TypeSize: 8}, Type: &ResourceType{TypeCommon: TypeCommon{TypeName: "pid", TypeSize: 4, ArgDir: 1}}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr64", FldName: "parent_tid", TypeSize: 8}, Type: &ResourceType{TypeCommon: TypeCommon{TypeName: "pid", TypeSize: 4, ArgDir: 1}}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "exit_signal", TypeSize: 4}}, Kind: 2, RangeEnd: 65},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "exit_signal_pad", TypeSize: 4}}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr64", FldName: "stack", TypeSize: 8}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "array", ArgDir: 1, IsVarlen: true}}},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bytesize", FldName: "stack_size", TypeSize: 8}}, BitSize: 8, Path: []string{"stack"}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr64", FldName: "tls", TypeSize: 8}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "array", ArgDir: 1, IsVarlen: true}}},
+ }}},
{Key: StructKey{Name: "close_xrcd_cmd", Dir: 2}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "close_xrcd_cmd", TypeSize: 12, ArgDir: 2}, Fields: []Type{
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "command", TypeSize: 4, ArgDir: 2}}, Val: 38},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "in_words", TypeSize: 2, ArgDir: 2}}, Val: 3},
@@ -30514,6 +30525,10 @@ var syscalls_ppc64le = []*Syscall{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "childtid", TypeSize: 8}, Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4, ArgDir: 1}}}},
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "tls", TypeSize: 8}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "array", IsVarlen: true}}},
}},
+ {NR: 435, Name: "clone3", CallName: "clone3", Args: []Type{
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "args", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "clone_args"}}},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bytesize", FldName: "size", TypeSize: 8}}, BitSize: 8, Path: []string{"args"}},
+ }, Ret: &ResourceType{TypeCommon: TypeCommon{TypeName: "pid", FldName: "ret", TypeSize: 4, ArgDir: 1}}},
{NR: 6, Name: "close", CallName: "close", Args: []Type{
&ResourceType{TypeCommon: TypeCommon{TypeName: "fd", FldName: "fd", TypeSize: 4}},
}},
@@ -39195,6 +39210,10 @@ var syscalls_ppc64le = []*Syscall{
{NR: 136, Name: "personality", CallName: "personality", Args: []Type{
&FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "personality_flags", FldName: "persona", TypeSize: 8}}, Vals: []uint64{0, 68157441, 83886082, 100663299, 83886084, 67108869, 6, 83886087, 8, 67108873, 67108874, 67108875, 12, 67108877, 68157454, 15, 16, 262144, 1048576, 2097152, 4194304, 8388608, 16777216, 33554432, 67108864, 134217728}},
}},
+ {NR: 434, Name: "pidfd_open", CallName: "pidfd_open", Args: []Type{
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "pid", FldName: "pid", TypeSize: 4}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "flags", TypeSize: 8}}},
+ }, Ret: &ResourceType{TypeCommon: TypeCommon{TypeName: "fd_pidfd", FldName: "ret", TypeSize: 4, ArgDir: 1}}},
{NR: 424, Name: "pidfd_send_signal", CallName: "pidfd_send_signal", Args: []Type{
&ResourceType{TypeCommon: TypeCommon{TypeName: "fd_pidfd", FldName: "fd", TypeSize: 4}},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "sig", TypeSize: 4}}, Kind: 2, RangeEnd: 65},
@@ -43855,6 +43874,13 @@ var syscalls_ppc64le = []*Syscall{
&FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "wait_options", FldName: "options", TypeSize: 8}}, Vals: []uint64{1, 2, 8, 4, 2, 8, 1, 16777216, 2147483648, 1073741824, 536870912}},
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "ru", TypeSize: 8, IsOptional: true}, Type: &StructType{Key: StructKey{Name: "rusage", Dir: 1}}},
}},
+ {NR: 272, Name: "waitid$P_PIDFD", CallName: "waitid", Args: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "which", TypeSize: 8}}, Val: 3},
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "fd_pidfd", FldName: "pidfd", TypeSize: 4}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "infop", TypeSize: 8, IsOptional: true}, Type: &StructType{Key: StructKey{Name: "siginfo", Dir: 1}}},
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "wait_options", FldName: "options", TypeSize: 8}}, Vals: []uint64{1, 2, 8, 4, 2, 8, 1, 16777216, 2147483648, 1073741824, 536870912}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "ru", TypeSize: 8, IsOptional: true}, Type: &StructType{Key: StructKey{Name: "rusage", Dir: 1}}},
+ }},
{NR: 4, Name: "write", CallName: "write", Args: []Type{
&ResourceType{TypeCommon: TypeCommon{TypeName: "fd", FldName: "fd", TypeSize: 4}},
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "buf", TypeSize: 8}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "array", IsVarlen: true}}},
@@ -48801,6 +48827,7 @@ var consts_ppc64le = []ConstValue{
{Name: "P_ALL"},
{Name: "P_PGID", Value: 2},
{Name: "P_PID", Value: 1},
+ {Name: "P_PIDFD", Value: 3},
{Name: "QMAGIC", Value: 204},
{Name: "RDMA_DRIVER_MLX5", Value: 1},
{Name: "RDMA_MAX_PRIVATE_DATA", Value: 256},
@@ -52244,6 +52271,7 @@ var consts_ppc64le = []ConstValue{
{Name: "__NR_clock_nanosleep", Value: 248},
{Name: "__NR_clock_settime", Value: 245},
{Name: "__NR_clone", Value: 120},
+ {Name: "__NR_clone3", Value: 435},
{Name: "__NR_close", Value: 6},
{Name: "__NR_connect", Value: 328},
{Name: "__NR_creat", Value: 8},
@@ -52392,6 +52420,7 @@ var consts_ppc64le = []ConstValue{
{Name: "__NR_pause", Value: 29},
{Name: "__NR_perf_event_open", Value: 319},
{Name: "__NR_personality", Value: 136},
+ {Name: "__NR_pidfd_open", Value: 434},
{Name: "__NR_pidfd_send_signal", Value: 424},
{Name: "__NR_pipe", Value: 42},
{Name: "__NR_pipe2", Value: 317},
@@ -52535,4 +52564,4 @@ var consts_ppc64le = []ConstValue{
{Name: "bpf_insn_load_imm_dw", Value: 24},
}
-const revision_ppc64le = "16f82b19155f760162bb4f08946191a084797f74"
+const revision_ppc64le = "49381a16fc88ae3d59f7b17b827c6eccf9284bc6"
diff --git a/sys/linux/sys.txt b/sys/linux/sys.txt
index 5fd07560e..446b0dab0 100644
--- a/sys/linux/sys.txt
+++ b/sys/linux/sys.txt
@@ -241,6 +241,19 @@ futimesat(dir fd_dir, pathname ptr[in, filename], times ptr[in, itimerval])
utimensat(dir fd_dir, pathname ptr[in, filename], times ptr[in, itimerval], flags flags[utimensat_flags])
clone(flags flags[clone_flags], sp buffer[in], parentid ptr[out, int32], childtid ptr[out, int32], tls buffer[in])
+clone3(args ptr[in, clone_args], size bytesize[args]) pid
+
+clone_args {
+ flags flags[clone_flags, int64]
+ pidfd ptr64[out, fd_pidfd]
+ child_tid ptr64[out, pid]
+ parent_tid ptr64[out, pid]
+ exit_signal signalno
+ exit_signal_pad const[0, int32]
+ stack ptr64[out, array[int8]]
+ stack_size bytesize[stack, int64]
+ tls ptr64[out, array[int8]]
+}
resource pid[int32]: 0, -1
resource uid[int32]: 0, -1, 0xee00, 0xee01
@@ -369,6 +382,7 @@ setitimer(which flags[getitimer_which], new ptr[in, itimerval], old ptr[out, iti
exit(code intptr)
exit_group(code intptr)
waitid(which flags[waitid_which], pid pid, infop ptr[out, siginfo, opt], options flags[wait_options], ru ptr[out, rusage, opt])
+waitid$P_PIDFD(which const[P_PIDFD], pidfd fd_pidfd, infop ptr[out, siginfo, opt], options flags[wait_options], ru ptr[out, rusage, opt])
wait4(pid pid, status ptr[out, int32, opt], options flags[wait_options], ru ptr[out, rusage, opt])
times(buf ptr[out, tms])
# Can send signals to all processes (pid=-1).
@@ -431,6 +445,7 @@ resource fd_pidfd[fd]
openat$pidfd(fd const[AT_FDCWD], file ptr[in, string["/proc/self"]], flags flags[open_flags], mode const[0]) fd_pidfd
pidfd_send_signal(fd fd_pidfd, sig signalno, info ptr[in, siginfo], flags const[0])
+pidfd_open(pid pid, flags const[0]) fd_pidfd
# Uncomment on your own account.
#syz_open_dev$char(dev const[0xc], major intptr, minor intptr) fd
diff --git a/sys/linux/sys_amd64.const b/sys/linux/sys_amd64.const
index 87d836bb6..bfc45ed71 100644
--- a/sys/linux/sys_amd64.const
+++ b/sys/linux/sys_amd64.const
@@ -391,6 +391,7 @@ PTRACE_TRACEME = 0
P_ALL = 0
P_PGID = 2
P_PID = 1
+P_PIDFD = 3
READ_IMPLIES_EXEC = 4194304
RENAME_EXCHANGE = 2
RENAME_NOREPLACE = 1
@@ -554,6 +555,7 @@ __NR_clock_gettime = 228
__NR_clock_nanosleep = 230
__NR_clock_settime = 227
__NR_clone = 56
+__NR_clone3 = 435
__NR_close = 3
__NR_creat = 85
__NR_delete_module = 176
@@ -659,6 +661,7 @@ __NR_open_by_handle_at = 304
__NR_openat = 257
__NR_pause = 34
__NR_personality = 135
+__NR_pidfd_open = 434
__NR_pidfd_send_signal = 424
__NR_pipe = 22
__NR_pipe2 = 293
diff --git a/sys/linux/sys_arm64.const b/sys/linux/sys_arm64.const
index 28f6585c9..f08d5559c 100644
--- a/sys/linux/sys_arm64.const
+++ b/sys/linux/sys_arm64.const
@@ -391,6 +391,7 @@ PTRACE_TRACEME = 0
P_ALL = 0
P_PGID = 2
P_PID = 1
+P_PIDFD = 3
READ_IMPLIES_EXEC = 4194304
RENAME_EXCHANGE = 2
RENAME_NOREPLACE = 1
@@ -554,6 +555,7 @@ __NR_clock_gettime = 113
__NR_clock_nanosleep = 115
__NR_clock_settime = 112
__NR_clone = 220
+__NR_clone3 = 435
__NR_close = 57
# __NR_creat is not set
__NR_delete_module = 106
@@ -659,6 +661,7 @@ __NR_open_by_handle_at = 265
__NR_openat = 56
# __NR_pause is not set
__NR_personality = 92
+__NR_pidfd_open = 434
__NR_pidfd_send_signal = 424
# __NR_pipe is not set
__NR_pipe2 = 59
diff --git a/sys/linux/sys_ppc64le.const b/sys/linux/sys_ppc64le.const
index 805c33949..71d0afb50 100644
--- a/sys/linux/sys_ppc64le.const
+++ b/sys/linux/sys_ppc64le.const
@@ -391,6 +391,7 @@ PTRACE_TRACEME = 0
P_ALL = 0
P_PGID = 2
P_PID = 1
+P_PIDFD = 3
READ_IMPLIES_EXEC = 4194304
RENAME_EXCHANGE = 2
RENAME_NOREPLACE = 1
@@ -554,6 +555,7 @@ __NR_clock_gettime = 246
__NR_clock_nanosleep = 248
__NR_clock_settime = 245
__NR_clone = 120
+__NR_clone3 = 435
__NR_close = 6
__NR_creat = 8
__NR_delete_module = 129
@@ -659,6 +661,7 @@ __NR_open_by_handle_at = 346
__NR_openat = 286
__NR_pause = 29
__NR_personality = 136
+__NR_pidfd_open = 434
__NR_pidfd_send_signal = 424
__NR_pipe = 42
__NR_pipe2 = 317