diff options
| author | André Almeida <andrealmeid@riseup.net> | 2020-02-17 02:27:23 -0300 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-02-17 06:27:23 +0100 |
| commit | d0d8e8bc776b3fd53659a8067a1eb6f69141d2eb (patch) | |
| tree | d15a154fcbdf6704e6a7a52a1aa6616e82303bbc | |
| parent | 1f448cd62db290246f8793128f85bd84aaa7a59d (diff) | |
sys/linux: add new FUTEX_WAIT_MULTIPLE operation
Create individual file for futex syscall and add description for the new
operation FUTEX_WAIT_MULTIPLE.
Signed-off-by: André Almeida <andrealmeid@collabora.com>
| -rw-r--r-- | AUTHORS | 1 | ||||
| -rw-r--r-- | CONTRIBUTORS | 2 | ||||
| -rw-r--r-- | executor/defs.h | 12 | ||||
| -rw-r--r-- | executor/syscalls.h | 6 | ||||
| -rw-r--r-- | sys/linux/futex.txt | 27 | ||||
| -rw-r--r-- | sys/linux/futex_386.const | 15 | ||||
| -rw-r--r-- | sys/linux/futex_amd64.const | 15 | ||||
| -rw-r--r-- | sys/linux/futex_arm.const | 15 | ||||
| -rw-r--r-- | sys/linux/futex_arm64.const | 15 | ||||
| -rw-r--r-- | sys/linux/futex_mips64le.const | 15 | ||||
| -rw-r--r-- | sys/linux/futex_ppc64le.const | 15 | ||||
| -rw-r--r-- | sys/linux/gen/386.go | 19 | ||||
| -rw-r--r-- | sys/linux/gen/amd64.go | 19 | ||||
| -rw-r--r-- | sys/linux/gen/arm.go | 19 | ||||
| -rw-r--r-- | sys/linux/gen/arm64.go | 19 | ||||
| -rw-r--r-- | sys/linux/gen/mips64le.go | 19 | ||||
| -rw-r--r-- | sys/linux/gen/ppc64le.go | 19 | ||||
| -rw-r--r-- | sys/linux/sys.txt | 15 | ||||
| -rw-r--r-- | sys/linux/sys_386.const | 12 | ||||
| -rw-r--r-- | sys/linux/sys_amd64.const | 12 | ||||
| -rw-r--r-- | sys/linux/sys_arm.const | 12 | ||||
| -rw-r--r-- | sys/linux/sys_arm64.const | 12 | ||||
| -rw-r--r-- | sys/linux/sys_mips64le.const | 12 | ||||
| -rw-r--r-- | sys/linux/sys_ppc64le.const | 12 |
24 files changed, 234 insertions, 105 deletions
@@ -37,3 +37,4 @@ Cody Holliday JinWoo Lee Andrew Turner Ethercflow +Collabora diff --git a/CONTRIBUTORS b/CONTRIBUTORS index eeb13f5b4..59daa642d 100644 --- a/CONTRIBUTORS +++ b/CONTRIBUTORS @@ -54,3 +54,5 @@ JinWoo Lee Andrew Turner Ethercflow Christoph Paasch +Collabora + André Almeida diff --git a/executor/defs.h b/executor/defs.h index 1e39f173a..ec14e34a4 100644 --- a/executor/defs.h +++ b/executor/defs.h @@ -70,7 +70,7 @@ #if GOARCH_386 #define GOARCH "386" -#define SYZ_REVISION "81074d7797beb1fd663277e323762de00cf0aee6" +#define SYZ_REVISION "7e933a8cce847a63d31163d1c6dfa926b9d707ce" #define SYZ_EXECUTOR_USES_FORK_SERVER 1 #define SYZ_EXECUTOR_USES_SHMEM 1 #define SYZ_PAGE_SIZE 4096 @@ -80,7 +80,7 @@ #if GOARCH_amd64 #define GOARCH "amd64" -#define SYZ_REVISION "154b48703f29bb3a08a78b81a3046cf44928e4d9" +#define SYZ_REVISION "05f868b16d6867c0842ba72cf5f4e62b61b93a05" #define SYZ_EXECUTOR_USES_FORK_SERVER 1 #define SYZ_EXECUTOR_USES_SHMEM 1 #define SYZ_PAGE_SIZE 4096 @@ -90,7 +90,7 @@ #if GOARCH_arm #define GOARCH "arm" -#define SYZ_REVISION "5c075e7d181710010f2fc69117b0caba1ca876dd" +#define SYZ_REVISION "c2ed820e865dcb4c50b91174fcb8be4d26c9b5cb" #define SYZ_EXECUTOR_USES_FORK_SERVER 1 #define SYZ_EXECUTOR_USES_SHMEM 1 #define SYZ_PAGE_SIZE 4096 @@ -100,7 +100,7 @@ #if GOARCH_arm64 #define GOARCH "arm64" -#define SYZ_REVISION "8987c5cf20d8a46fba8534793aa33c4be1678e0f" +#define SYZ_REVISION "e1ea3f956cb5b2b67e3d815b820bb7948c83c955" #define SYZ_EXECUTOR_USES_FORK_SERVER 1 #define SYZ_EXECUTOR_USES_SHMEM 1 #define SYZ_PAGE_SIZE 4096 @@ -110,7 +110,7 @@ #if GOARCH_mips64le #define GOARCH "mips64le" -#define SYZ_REVISION "2b84b657bff1ea3b7b3f73590543e4797622adbd" +#define SYZ_REVISION "819b0d0076710643840257c4e954ec1603839dd2" #define SYZ_EXECUTOR_USES_FORK_SERVER 1 #define SYZ_EXECUTOR_USES_SHMEM 1 #define SYZ_PAGE_SIZE 4096 @@ -120,7 +120,7 @@ #if GOARCH_ppc64le #define GOARCH "ppc64le" -#define SYZ_REVISION "3396f69ff357c213bed1cf176308552f52f7cb8a" +#define SYZ_REVISION "983c33d3c33e7722f2cf2de15b12fe03e0f7d9ba" #define SYZ_EXECUTOR_USES_FORK_SERVER 1 #define SYZ_EXECUTOR_USES_SHMEM 1 #define SYZ_PAGE_SIZE 4096 diff --git a/executor/syscalls.h b/executor/syscalls.h index 709ad1ab8..8318f3697 100644 --- a/executor/syscalls.h +++ b/executor/syscalls.h @@ -2274,6 +2274,7 @@ const call_t syscalls[] = { {"fsync", 118}, {"ftruncate", 93}, {"futex", 240}, + {"futex$FUTEX_WAIT_MULTIPLE", 240}, {"futimesat", 299}, {"get_mempolicy", 275}, {"get_robust_list", 312}, @@ -5572,6 +5573,7 @@ const call_t syscalls[] = { {"fsync", 74}, {"ftruncate", 77}, {"futex", 202}, + {"futex$FUTEX_WAIT_MULTIPLE", 202}, {"futimesat", 261}, {"get_mempolicy", 239}, {"get_robust_list", 274}, @@ -8869,6 +8871,7 @@ const call_t syscalls[] = { {"fsync", 118}, {"ftruncate", 93}, {"futex", 240}, + {"futex$FUTEX_WAIT_MULTIPLE", 240}, {"futimesat", 326}, {"get_mempolicy", 320}, {"get_robust_list", 339}, @@ -12116,6 +12119,7 @@ const call_t syscalls[] = { {"fsync", 82}, {"ftruncate", 46}, {"futex", 98}, + {"futex$FUTEX_WAIT_MULTIPLE", 98}, {"get_mempolicy", 236}, {"get_robust_list", 100}, {"getcwd", 17}, @@ -15347,6 +15351,7 @@ const call_t syscalls[] = { {"fsync", 5072}, {"ftruncate", 5075}, {"futex", 5194}, + {"futex$FUTEX_WAIT_MULTIPLE", 5194}, {"futimesat", 5251}, {"get_mempolicy", 5228}, {"get_robust_list", 5269}, @@ -18502,6 +18507,7 @@ const call_t syscalls[] = { {"fsync", 118}, {"ftruncate", 93}, {"futex", 221}, + {"futex$FUTEX_WAIT_MULTIPLE", 221}, {"futimesat", 290}, {"get_mempolicy", 260}, {"get_robust_list", 299}, diff --git a/sys/linux/futex.txt b/sys/linux/futex.txt new file mode 100644 index 000000000..cb412f938 --- /dev/null +++ b/sys/linux/futex.txt @@ -0,0 +1,27 @@ +# Copyright 2020 syzkaller project authors. All rights reserved. +# Use of this source code is governed by Apache 2 LICENSE that can be found in the LICENSE file. + +include <linux/futex.h> + +futex(addr ptr[in, int32[0:2]], op flags[futex_op], val int32[0:2], timeout ptr[in, timespec], addr2 ptr[in, int32[0:2]], val3 int32[0:2]) +futex$FUTEX_WAIT_MULTIPLE(addr ptr[in, array[futex_wait_block, 0:129]], op const[FUTEX_WAIT_MULTIPLE], val len[addr], timeout ptr[in, timespec], addr2 const[0], val3 const[0]) +set_robust_list(head ptr[in, robust_list_head], len len[head]) +get_robust_list(pid pid, head ptr[in, ptr[out, robust_list_head]], len ptr[inout, len[head, intptr]]) + +robust_list_head { + list ptr[in, robust_list, opt] + futex_offset intptr + list_op_pending ptr[in, robust_list, opt] +} + +robust_list { + next ptr[in, robust_list, opt] +} + +futex_wait_block { + uaddr ptr[in, int32[0:2]] + val int32[0:2] + bitset const[4294967295, int32] +} + +futex_op = FUTEX_WAIT, FUTEX_WAIT_BITSET, FUTEX_WAKE, FUTEX_REQUEUE, FUTEX_CMP_REQUEUE, FUTEX_WAIT_MULTIPLE, FUTEX_WAIT_PRIVATE, FUTEX_WAKE_PRIVATE, FUTEX_WAIT_REQUEUE_PI_PRIVATE, FUTEX_CMP_REQUEUE_PI_PRIVATE, FUTEX_WAIT_MULTIPLE_PRIVATE diff --git a/sys/linux/futex_386.const b/sys/linux/futex_386.const new file mode 100644 index 000000000..2da0ec78c --- /dev/null +++ b/sys/linux/futex_386.const @@ -0,0 +1,15 @@ +# AUTOGENERATED FILE +FUTEX_CMP_REQUEUE = 4 +FUTEX_CMP_REQUEUE_PI_PRIVATE = 140 +FUTEX_REQUEUE = 3 +FUTEX_WAIT = 0 +FUTEX_WAIT_BITSET = 9 +FUTEX_WAIT_MULTIPLE = 13 +FUTEX_WAIT_MULTIPLE_PRIVATE = 141 +FUTEX_WAIT_PRIVATE = 128 +FUTEX_WAIT_REQUEUE_PI_PRIVATE = 139 +FUTEX_WAKE = 1 +FUTEX_WAKE_PRIVATE = 129 +__NR_futex = 240 +__NR_get_robust_list = 312 +__NR_set_robust_list = 311 diff --git a/sys/linux/futex_amd64.const b/sys/linux/futex_amd64.const new file mode 100644 index 000000000..fe82b3ccf --- /dev/null +++ b/sys/linux/futex_amd64.const @@ -0,0 +1,15 @@ +# AUTOGENERATED FILE +FUTEX_CMP_REQUEUE = 4 +FUTEX_CMP_REQUEUE_PI_PRIVATE = 140 +FUTEX_REQUEUE = 3 +FUTEX_WAIT = 0 +FUTEX_WAIT_BITSET = 9 +FUTEX_WAIT_MULTIPLE = 13 +FUTEX_WAIT_MULTIPLE_PRIVATE = 141 +FUTEX_WAIT_PRIVATE = 128 +FUTEX_WAIT_REQUEUE_PI_PRIVATE = 139 +FUTEX_WAKE = 1 +FUTEX_WAKE_PRIVATE = 129 +__NR_futex = 202 +__NR_get_robust_list = 274 +__NR_set_robust_list = 273 diff --git a/sys/linux/futex_arm.const b/sys/linux/futex_arm.const new file mode 100644 index 000000000..4367494b5 --- /dev/null +++ b/sys/linux/futex_arm.const @@ -0,0 +1,15 @@ +# AUTOGENERATED FILE +FUTEX_CMP_REQUEUE = 4 +FUTEX_CMP_REQUEUE_PI_PRIVATE = 140 +FUTEX_REQUEUE = 3 +FUTEX_WAIT = 0 +FUTEX_WAIT_BITSET = 9 +FUTEX_WAIT_MULTIPLE = 13 +FUTEX_WAIT_MULTIPLE_PRIVATE = 141 +FUTEX_WAIT_PRIVATE = 128 +FUTEX_WAIT_REQUEUE_PI_PRIVATE = 139 +FUTEX_WAKE = 1 +FUTEX_WAKE_PRIVATE = 129 +__NR_futex = 240 +__NR_get_robust_list = 339 +__NR_set_robust_list = 338 diff --git a/sys/linux/futex_arm64.const b/sys/linux/futex_arm64.const new file mode 100644 index 000000000..2a685aa16 --- /dev/null +++ b/sys/linux/futex_arm64.const @@ -0,0 +1,15 @@ +# AUTOGENERATED FILE +FUTEX_CMP_REQUEUE = 4 +FUTEX_CMP_REQUEUE_PI_PRIVATE = 140 +FUTEX_REQUEUE = 3 +FUTEX_WAIT = 0 +FUTEX_WAIT_BITSET = 9 +FUTEX_WAIT_MULTIPLE = 13 +FUTEX_WAIT_MULTIPLE_PRIVATE = 141 +FUTEX_WAIT_PRIVATE = 128 +FUTEX_WAIT_REQUEUE_PI_PRIVATE = 139 +FUTEX_WAKE = 1 +FUTEX_WAKE_PRIVATE = 129 +__NR_futex = 98 +__NR_get_robust_list = 100 +__NR_set_robust_list = 99 diff --git a/sys/linux/futex_mips64le.const b/sys/linux/futex_mips64le.const new file mode 100644 index 000000000..28af2f199 --- /dev/null +++ b/sys/linux/futex_mips64le.const @@ -0,0 +1,15 @@ +# AUTOGENERATED FILE +FUTEX_CMP_REQUEUE = 4 +FUTEX_CMP_REQUEUE_PI_PRIVATE = 140 +FUTEX_REQUEUE = 3 +FUTEX_WAIT = 0 +FUTEX_WAIT_BITSET = 9 +FUTEX_WAIT_MULTIPLE = 13 +FUTEX_WAIT_MULTIPLE_PRIVATE = 141 +FUTEX_WAIT_PRIVATE = 128 +FUTEX_WAIT_REQUEUE_PI_PRIVATE = 139 +FUTEX_WAKE = 1 +FUTEX_WAKE_PRIVATE = 129 +__NR_futex = 5194 +__NR_get_robust_list = 5269 +__NR_set_robust_list = 5268 diff --git a/sys/linux/futex_ppc64le.const b/sys/linux/futex_ppc64le.const new file mode 100644 index 000000000..4c09ad7f9 --- /dev/null +++ b/sys/linux/futex_ppc64le.const @@ -0,0 +1,15 @@ +# AUTOGENERATED FILE +FUTEX_CMP_REQUEUE = 4 +FUTEX_CMP_REQUEUE_PI_PRIVATE = 140 +FUTEX_REQUEUE = 3 +FUTEX_WAIT = 0 +FUTEX_WAIT_BITSET = 9 +FUTEX_WAIT_MULTIPLE = 13 +FUTEX_WAIT_MULTIPLE_PRIVATE = 141 +FUTEX_WAIT_PRIVATE = 128 +FUTEX_WAIT_REQUEUE_PI_PRIVATE = 139 +FUTEX_WAKE = 1 +FUTEX_WAKE_PRIVATE = 129 +__NR_futex = 221 +__NR_get_robust_list = 299 +__NR_set_robust_list = 300 diff --git a/sys/linux/gen/386.go b/sys/linux/gen/386.go index 7123e28ff..93224973a 100644 --- a/sys/linux/gen/386.go +++ b/sys/linux/gen/386.go @@ -7297,6 +7297,11 @@ var structDescs_386 = []*KeyedStruct{ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "size", TypeSize: 4}}}, &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "padding", TypeSize: 4}}}, }}}, + {StructKey{Name: "futex_wait_block"}, &StructDesc{TypeCommon: TypeCommon{TypeName: "futex_wait_block", TypeSize: 12}, Fields: []Type{ + &PtrType{TypeCommon{TypeName: "ptr", FldName: "uaddr", TypeSize: 4}, &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}, Kind: 1, RangeEnd: 2}}, + &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "val", TypeSize: 4}}, Kind: 1, RangeEnd: 2}, + &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bitset", TypeSize: 4}}, Val: 4294967295}, + }}}, {StructKey{Name: "fw_policy"}, &StructDesc{TypeCommon: TypeCommon{TypeName: "fw_policy", IsVarlen: true}, Fields: []Type{ &StructType{Key: StructKey{Name: "nlattr_t[const[TCA_FW_CLASSID, int16], tcm_handle]"}, FldName: "TCA_FW_CLASSID"}, &StructType{Key: StructKey{Name: "nlattr_t[const[TCA_FW_POLICE, int16], array[police_policy]]"}, FldName: "TCA_FW_POLICE"}, @@ -49221,12 +49226,20 @@ var syscalls_386 = []*Syscall{ }}, {NR: 240, Name: "futex", CallName: "futex", Args: []Type{ &PtrType{TypeCommon{TypeName: "ptr", FldName: "addr", TypeSize: 4}, &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}, Kind: 1, RangeEnd: 2}}, - &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "futex_op", FldName: "op", TypeSize: 4}}, Vals: []uint64{0, 1, 3, 4, 9, 128, 129, 139, 140}}, + &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "futex_op", FldName: "op", TypeSize: 4}}, Vals: []uint64{0, 1, 3, 4, 9, 13, 128, 129, 139, 140, 141}}, &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "val", TypeSize: 4}}, Kind: 1, RangeEnd: 2}, &PtrType{TypeCommon{TypeName: "ptr", FldName: "timeout", TypeSize: 4}, &StructType{Key: StructKey{Name: "timespec"}}}, &PtrType{TypeCommon{TypeName: "ptr", FldName: "addr2", TypeSize: 4}, &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}, Kind: 1, RangeEnd: 2}}, &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "val3", TypeSize: 4}}, Kind: 1, RangeEnd: 2}, }}, + {NR: 240, Name: "futex$FUTEX_WAIT_MULTIPLE", CallName: "futex", Args: []Type{ + &PtrType{TypeCommon{TypeName: "ptr", FldName: "addr", TypeSize: 4}, &ArrayType{TypeCommon: TypeCommon{TypeName: "array", IsVarlen: true}, Type: &StructType{Key: StructKey{Name: "futex_wait_block"}}, Kind: 1, RangeEnd: 129}}, + &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "op", TypeSize: 4}}, Val: 13}, + &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "val", TypeSize: 4}}, Path: []string{"addr"}}, + &PtrType{TypeCommon{TypeName: "ptr", FldName: "timeout", TypeSize: 4}, &StructType{Key: StructKey{Name: "timespec"}}}, + &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "addr2", TypeSize: 4}}}, + &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "val3", TypeSize: 4}}}, + }}, {NR: 299, Name: "futimesat", CallName: "futimesat", Args: []Type{ &ResourceType{TypeCommon: TypeCommon{TypeName: "fd_dir", FldName: "dir", TypeSize: 4}}, &PtrType{TypeCommon{TypeName: "ptr", FldName: "pathname", TypeSize: 4}, &BufferType{TypeCommon: TypeCommon{TypeName: "filename", IsVarlen: true}, Kind: 3}}, @@ -67654,6 +67667,8 @@ var consts_386 = []ConstValue{ {"FUTEX_REQUEUE", 3}, {Name: "FUTEX_WAIT"}, {"FUTEX_WAIT_BITSET", 9}, + {"FUTEX_WAIT_MULTIPLE", 13}, + {"FUTEX_WAIT_MULTIPLE_PRIVATE", 141}, {"FUTEX_WAIT_PRIVATE", 128}, {"FUTEX_WAIT_REQUEUE_PI_PRIVATE", 139}, {"FUTEX_WAKE", 1}, @@ -75807,4 +75822,4 @@ var consts_386 = []ConstValue{ {"ethtool_per_queue_op_size", 128}, } -const revision_386 = "81074d7797beb1fd663277e323762de00cf0aee6" +const revision_386 = "7e933a8cce847a63d31163d1c6dfa926b9d707ce" diff --git a/sys/linux/gen/amd64.go b/sys/linux/gen/amd64.go index 8505a0b0e..c261c2732 100644 --- a/sys/linux/gen/amd64.go +++ b/sys/linux/gen/amd64.go @@ -7431,6 +7431,11 @@ var structDescs_amd64 = []*KeyedStruct{ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "size", TypeSize: 4}}}, &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "padding", TypeSize: 4}}}, }}}, + {StructKey{Name: "futex_wait_block"}, &StructDesc{TypeCommon: TypeCommon{TypeName: "futex_wait_block", TypeSize: 16}, Fields: []Type{ + &PtrType{TypeCommon{TypeName: "ptr", FldName: "uaddr", TypeSize: 8}, &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}, Kind: 1, RangeEnd: 2}}, + &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "val", TypeSize: 4}}, Kind: 1, RangeEnd: 2}, + &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bitset", TypeSize: 4}}, Val: 4294967295}, + }}}, {StructKey{Name: "fw_policy"}, &StructDesc{TypeCommon: TypeCommon{TypeName: "fw_policy", IsVarlen: true}, Fields: []Type{ &StructType{Key: StructKey{Name: "nlattr_t[const[TCA_FW_CLASSID, int16], tcm_handle]"}, FldName: "TCA_FW_CLASSID"}, &StructType{Key: StructKey{Name: "nlattr_t[const[TCA_FW_POLICE, int16], array[police_policy]]"}, FldName: "TCA_FW_POLICE"}, @@ -50129,12 +50134,20 @@ var syscalls_amd64 = []*Syscall{ }}, {NR: 202, Name: "futex", CallName: "futex", Args: []Type{ &PtrType{TypeCommon{TypeName: "ptr", FldName: "addr", TypeSize: 8}, &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}, Kind: 1, RangeEnd: 2}}, - &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "futex_op", FldName: "op", TypeSize: 8}}, Vals: []uint64{0, 1, 3, 4, 9, 128, 129, 139, 140}}, + &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "futex_op", FldName: "op", TypeSize: 8}}, Vals: []uint64{0, 1, 3, 4, 9, 13, 128, 129, 139, 140, 141}}, &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "val", TypeSize: 4}}, Kind: 1, RangeEnd: 2}, &PtrType{TypeCommon{TypeName: "ptr", FldName: "timeout", TypeSize: 8}, &StructType{Key: StructKey{Name: "timespec"}}}, &PtrType{TypeCommon{TypeName: "ptr", FldName: "addr2", TypeSize: 8}, &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}, Kind: 1, RangeEnd: 2}}, &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "val3", TypeSize: 4}}, Kind: 1, RangeEnd: 2}, }}, + {NR: 202, Name: "futex$FUTEX_WAIT_MULTIPLE", CallName: "futex", Args: []Type{ + &PtrType{TypeCommon{TypeName: "ptr", FldName: "addr", TypeSize: 8}, &ArrayType{TypeCommon: TypeCommon{TypeName: "array", IsVarlen: true}, Type: &StructType{Key: StructKey{Name: "futex_wait_block"}}, Kind: 1, RangeEnd: 129}}, + &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "op", TypeSize: 8}}, Val: 13}, + &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "val", TypeSize: 8}}, Path: []string{"addr"}}, + &PtrType{TypeCommon{TypeName: "ptr", FldName: "timeout", TypeSize: 8}, &StructType{Key: StructKey{Name: "timespec"}}}, + &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "addr2", TypeSize: 8}}}, + &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "val3", TypeSize: 8}}}, + }}, {NR: 261, Name: "futimesat", CallName: "futimesat", Args: []Type{ &ResourceType{TypeCommon: TypeCommon{TypeName: "fd_dir", FldName: "dir", TypeSize: 4}}, &PtrType{TypeCommon{TypeName: "ptr", FldName: "pathname", TypeSize: 8}, &BufferType{TypeCommon: TypeCommon{TypeName: "filename", IsVarlen: true}, Kind: 3}}, @@ -68600,6 +68613,8 @@ var consts_amd64 = []ConstValue{ {"FUTEX_REQUEUE", 3}, {Name: "FUTEX_WAIT"}, {"FUTEX_WAIT_BITSET", 9}, + {"FUTEX_WAIT_MULTIPLE", 13}, + {"FUTEX_WAIT_MULTIPLE_PRIVATE", 141}, {"FUTEX_WAIT_PRIVATE", 128}, {"FUTEX_WAIT_REQUEUE_PI_PRIVATE", 139}, {"FUTEX_WAKE", 1}, @@ -76767,4 +76782,4 @@ var consts_amd64 = []ConstValue{ {"ethtool_per_queue_op_size", 128}, } -const revision_amd64 = "154b48703f29bb3a08a78b81a3046cf44928e4d9" +const revision_amd64 = "05f868b16d6867c0842ba72cf5f4e62b61b93a05" diff --git a/sys/linux/gen/arm.go b/sys/linux/gen/arm.go index 8b8ed5491..8a256e13e 100644 --- a/sys/linux/gen/arm.go +++ b/sys/linux/gen/arm.go @@ -7331,6 +7331,11 @@ var structDescs_arm = []*KeyedStruct{ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "size", TypeSize: 4}}}, &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "padding", TypeSize: 4}}}, }}}, + {StructKey{Name: "futex_wait_block"}, &StructDesc{TypeCommon: TypeCommon{TypeName: "futex_wait_block", TypeSize: 12}, Fields: []Type{ + &PtrType{TypeCommon{TypeName: "ptr", FldName: "uaddr", TypeSize: 4}, &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}, Kind: 1, RangeEnd: 2}}, + &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "val", TypeSize: 4}}, Kind: 1, RangeEnd: 2}, + &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bitset", TypeSize: 4}}, Val: 4294967295}, + }}}, {StructKey{Name: "fw_policy"}, &StructDesc{TypeCommon: TypeCommon{TypeName: "fw_policy", IsVarlen: true}, Fields: []Type{ &StructType{Key: StructKey{Name: "nlattr_t[const[TCA_FW_CLASSID, int16], tcm_handle]"}, FldName: "TCA_FW_CLASSID"}, &StructType{Key: StructKey{Name: "nlattr_t[const[TCA_FW_POLICE, int16], array[police_policy]]"}, FldName: "TCA_FW_POLICE"}, @@ -49114,12 +49119,20 @@ var syscalls_arm = []*Syscall{ }}, {NR: 240, Name: "futex", CallName: "futex", Args: []Type{ &PtrType{TypeCommon{TypeName: "ptr", FldName: "addr", TypeSize: 4}, &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}, Kind: 1, RangeEnd: 2}}, - &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "futex_op", FldName: "op", TypeSize: 4}}, Vals: []uint64{0, 1, 3, 4, 9, 128, 129, 139, 140}}, + &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "futex_op", FldName: "op", TypeSize: 4}}, Vals: []uint64{0, 1, 3, 4, 9, 13, 128, 129, 139, 140, 141}}, &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "val", TypeSize: 4}}, Kind: 1, RangeEnd: 2}, &PtrType{TypeCommon{TypeName: "ptr", FldName: "timeout", TypeSize: 4}, &StructType{Key: StructKey{Name: "timespec"}}}, &PtrType{TypeCommon{TypeName: "ptr", FldName: "addr2", TypeSize: 4}, &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}, Kind: 1, RangeEnd: 2}}, &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "val3", TypeSize: 4}}, Kind: 1, RangeEnd: 2}, }}, + {NR: 240, Name: "futex$FUTEX_WAIT_MULTIPLE", CallName: "futex", Args: []Type{ + &PtrType{TypeCommon{TypeName: "ptr", FldName: "addr", TypeSize: 4}, &ArrayType{TypeCommon: TypeCommon{TypeName: "array", IsVarlen: true}, Type: &StructType{Key: StructKey{Name: "futex_wait_block"}}, Kind: 1, RangeEnd: 129}}, + &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "op", TypeSize: 4}}, Val: 13}, + &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "val", TypeSize: 4}}, Path: []string{"addr"}}, + &PtrType{TypeCommon{TypeName: "ptr", FldName: "timeout", TypeSize: 4}, &StructType{Key: StructKey{Name: "timespec"}}}, + &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "addr2", TypeSize: 4}}}, + &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "val3", TypeSize: 4}}}, + }}, {NR: 326, Name: "futimesat", CallName: "futimesat", Args: []Type{ &ResourceType{TypeCommon: TypeCommon{TypeName: "fd_dir", FldName: "dir", TypeSize: 4}}, &PtrType{TypeCommon{TypeName: "ptr", FldName: "pathname", TypeSize: 4}, &BufferType{TypeCommon: TypeCommon{TypeName: "filename", IsVarlen: true}, Kind: 3}}, @@ -67371,6 +67384,8 @@ var consts_arm = []ConstValue{ {"FUTEX_REQUEUE", 3}, {Name: "FUTEX_WAIT"}, {"FUTEX_WAIT_BITSET", 9}, + {"FUTEX_WAIT_MULTIPLE", 13}, + {"FUTEX_WAIT_MULTIPLE_PRIVATE", 141}, {"FUTEX_WAIT_PRIVATE", 128}, {"FUTEX_WAIT_REQUEUE_PI_PRIVATE", 139}, {"FUTEX_WAKE", 1}, @@ -75459,4 +75474,4 @@ var consts_arm = []ConstValue{ {"ethtool_per_queue_op_size", 128}, } -const revision_arm = "5c075e7d181710010f2fc69117b0caba1ca876dd" +const revision_arm = "c2ed820e865dcb4c50b91174fcb8be4d26c9b5cb" diff --git a/sys/linux/gen/arm64.go b/sys/linux/gen/arm64.go index d7eea1f29..190400a78 100644 --- a/sys/linux/gen/arm64.go +++ b/sys/linux/gen/arm64.go @@ -7431,6 +7431,11 @@ var structDescs_arm64 = []*KeyedStruct{ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "size", TypeSize: 4}}}, &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "padding", TypeSize: 4}}}, }}}, + {StructKey{Name: "futex_wait_block"}, &StructDesc{TypeCommon: TypeCommon{TypeName: "futex_wait_block", TypeSize: 16}, Fields: []Type{ + &PtrType{TypeCommon{TypeName: "ptr", FldName: "uaddr", TypeSize: 8}, &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}, Kind: 1, RangeEnd: 2}}, + &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "val", TypeSize: 4}}, Kind: 1, RangeEnd: 2}, + &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bitset", TypeSize: 4}}, Val: 4294967295}, + }}}, {StructKey{Name: "fw_policy"}, &StructDesc{TypeCommon: TypeCommon{TypeName: "fw_policy", IsVarlen: true}, Fields: []Type{ &StructType{Key: StructKey{Name: "nlattr_t[const[TCA_FW_CLASSID, int16], tcm_handle]"}, FldName: "TCA_FW_CLASSID"}, &StructType{Key: StructKey{Name: "nlattr_t[const[TCA_FW_POLICE, int16], array[police_policy]]"}, FldName: "TCA_FW_POLICE"}, @@ -49850,12 +49855,20 @@ var syscalls_arm64 = []*Syscall{ }}, {NR: 98, Name: "futex", CallName: "futex", Args: []Type{ &PtrType{TypeCommon{TypeName: "ptr", FldName: "addr", TypeSize: 8}, &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}, Kind: 1, RangeEnd: 2}}, - &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "futex_op", FldName: "op", TypeSize: 8}}, Vals: []uint64{0, 1, 3, 4, 9, 128, 129, 139, 140}}, + &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "futex_op", FldName: "op", TypeSize: 8}}, Vals: []uint64{0, 1, 3, 4, 9, 13, 128, 129, 139, 140, 141}}, &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "val", TypeSize: 4}}, Kind: 1, RangeEnd: 2}, &PtrType{TypeCommon{TypeName: "ptr", FldName: "timeout", TypeSize: 8}, &StructType{Key: StructKey{Name: "timespec"}}}, &PtrType{TypeCommon{TypeName: "ptr", FldName: "addr2", TypeSize: 8}, &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}, Kind: 1, RangeEnd: 2}}, &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "val3", TypeSize: 4}}, Kind: 1, RangeEnd: 2}, }}, + {NR: 98, Name: "futex$FUTEX_WAIT_MULTIPLE", CallName: "futex", Args: []Type{ + &PtrType{TypeCommon{TypeName: "ptr", FldName: "addr", TypeSize: 8}, &ArrayType{TypeCommon: TypeCommon{TypeName: "array", IsVarlen: true}, Type: &StructType{Key: StructKey{Name: "futex_wait_block"}}, Kind: 1, RangeEnd: 129}}, + &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "op", TypeSize: 8}}, Val: 13}, + &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "val", TypeSize: 8}}, Path: []string{"addr"}}, + &PtrType{TypeCommon{TypeName: "ptr", FldName: "timeout", TypeSize: 8}, &StructType{Key: StructKey{Name: "timespec"}}}, + &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "addr2", TypeSize: 8}}}, + &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "val3", TypeSize: 8}}}, + }}, {NR: 236, Name: "get_mempolicy", CallName: "get_mempolicy", Args: []Type{ &PtrType{TypeCommon{TypeName: "ptr", FldName: "mode", TypeSize: 8}, &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4, ArgDir: 1}}}}, &PtrType{TypeCommon{TypeName: "ptr", FldName: "nodemask", TypeSize: 8}, &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int64", TypeSize: 8, ArgDir: 1}}}}, @@ -68038,6 +68051,8 @@ var consts_arm64 = []ConstValue{ {"FUTEX_REQUEUE", 3}, {Name: "FUTEX_WAIT"}, {"FUTEX_WAIT_BITSET", 9}, + {"FUTEX_WAIT_MULTIPLE", 13}, + {"FUTEX_WAIT_MULTIPLE_PRIVATE", 141}, {"FUTEX_WAIT_PRIVATE", 128}, {"FUTEX_WAIT_REQUEUE_PI_PRIVATE", 139}, {"FUTEX_WAKE", 1}, @@ -76112,4 +76127,4 @@ var consts_arm64 = []ConstValue{ {"ethtool_per_queue_op_size", 128}, } -const revision_arm64 = "8987c5cf20d8a46fba8534793aa33c4be1678e0f" +const revision_arm64 = "e1ea3f956cb5b2b67e3d815b820bb7948c83c955" diff --git a/sys/linux/gen/mips64le.go b/sys/linux/gen/mips64le.go index c0e9f9523..9499536dc 100644 --- a/sys/linux/gen/mips64le.go +++ b/sys/linux/gen/mips64le.go @@ -7418,6 +7418,11 @@ var structDescs_mips64le = []*KeyedStruct{ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "size", TypeSize: 4}}}, &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "padding", TypeSize: 4}}}, }}}, + {StructKey{Name: "futex_wait_block"}, &StructDesc{TypeCommon: TypeCommon{TypeName: "futex_wait_block", TypeSize: 16}, Fields: []Type{ + &PtrType{TypeCommon{TypeName: "ptr", FldName: "uaddr", TypeSize: 8}, &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}, Kind: 1, RangeEnd: 2}}, + &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "val", TypeSize: 4}}, Kind: 1, RangeEnd: 2}, + &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bitset", TypeSize: 4}}, Val: 4294967295}, + }}}, {StructKey{Name: "fw_policy"}, &StructDesc{TypeCommon: TypeCommon{TypeName: "fw_policy", IsVarlen: true}, Fields: []Type{ &StructType{Key: StructKey{Name: "nlattr_t[const[TCA_FW_CLASSID, int16], tcm_handle]"}, FldName: "TCA_FW_CLASSID"}, &StructType{Key: StructKey{Name: "nlattr_t[const[TCA_FW_POLICE, int16], array[police_policy]]"}, FldName: "TCA_FW_POLICE"}, @@ -48942,12 +48947,20 @@ var syscalls_mips64le = []*Syscall{ }}, {NR: 5194, Name: "futex", CallName: "futex", Args: []Type{ &PtrType{TypeCommon{TypeName: "ptr", FldName: "addr", TypeSize: 8}, &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}, Kind: 1, RangeEnd: 2}}, - &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "futex_op", FldName: "op", TypeSize: 8}}, Vals: []uint64{0, 1, 3, 4, 9, 128, 129, 139, 140}}, + &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "futex_op", FldName: "op", TypeSize: 8}}, Vals: []uint64{0, 1, 3, 4, 9, 13, 128, 129, 139, 140, 141}}, &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "val", TypeSize: 4}}, Kind: 1, RangeEnd: 2}, &PtrType{TypeCommon{TypeName: "ptr", FldName: "timeout", TypeSize: 8}, &StructType{Key: StructKey{Name: "timespec"}}}, &PtrType{TypeCommon{TypeName: "ptr", FldName: "addr2", TypeSize: 8}, &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}, Kind: 1, RangeEnd: 2}}, &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "val3", TypeSize: 4}}, Kind: 1, RangeEnd: 2}, }}, + {NR: 5194, Name: "futex$FUTEX_WAIT_MULTIPLE", CallName: "futex", Args: []Type{ + &PtrType{TypeCommon{TypeName: "ptr", FldName: "addr", TypeSize: 8}, &ArrayType{TypeCommon: TypeCommon{TypeName: "array", IsVarlen: true}, Type: &StructType{Key: StructKey{Name: "futex_wait_block"}}, Kind: 1, RangeEnd: 129}}, + &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "op", TypeSize: 8}}, Val: 13}, + &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "val", TypeSize: 8}}, Path: []string{"addr"}}, + &PtrType{TypeCommon{TypeName: "ptr", FldName: "timeout", TypeSize: 8}, &StructType{Key: StructKey{Name: "timespec"}}}, + &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "addr2", TypeSize: 8}}}, + &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "val3", TypeSize: 8}}}, + }}, {NR: 5251, Name: "futimesat", CallName: "futimesat", Args: []Type{ &ResourceType{TypeCommon: TypeCommon{TypeName: "fd_dir", FldName: "dir", TypeSize: 4}}, &PtrType{TypeCommon{TypeName: "ptr", FldName: "pathname", TypeSize: 8}, &BufferType{TypeCommon: TypeCommon{TypeName: "filename", IsVarlen: true}, Kind: 3}}, @@ -66692,6 +66705,8 @@ var consts_mips64le = []ConstValue{ {"FUTEX_REQUEUE", 3}, {Name: "FUTEX_WAIT"}, {"FUTEX_WAIT_BITSET", 9}, + {"FUTEX_WAIT_MULTIPLE", 13}, + {"FUTEX_WAIT_MULTIPLE_PRIVATE", 141}, {"FUTEX_WAIT_PRIVATE", 128}, {"FUTEX_WAIT_REQUEUE_PI_PRIVATE", 139}, {"FUTEX_WAKE", 1}, @@ -73735,4 +73750,4 @@ var consts_mips64le = []ConstValue{ {"ethtool_per_queue_op_size", 128}, } -const revision_mips64le = "2b84b657bff1ea3b7b3f73590543e4797622adbd" +const revision_mips64le = "819b0d0076710643840257c4e954ec1603839dd2" diff --git a/sys/linux/gen/ppc64le.go b/sys/linux/gen/ppc64le.go index 86ddccf53..8a0207c6b 100644 --- a/sys/linux/gen/ppc64le.go +++ b/sys/linux/gen/ppc64le.go @@ -7430,6 +7430,11 @@ var structDescs_ppc64le = []*KeyedStruct{ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "size", TypeSize: 4}}}, &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "padding", TypeSize: 4}}}, }}}, + {StructKey{Name: "futex_wait_block"}, &StructDesc{TypeCommon: TypeCommon{TypeName: "futex_wait_block", TypeSize: 16}, Fields: []Type{ + &PtrType{TypeCommon{TypeName: "ptr", FldName: "uaddr", TypeSize: 8}, &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}, Kind: 1, RangeEnd: 2}}, + &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "val", TypeSize: 4}}, Kind: 1, RangeEnd: 2}, + &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bitset", TypeSize: 4}}, Val: 4294967295}, + }}}, {StructKey{Name: "fw_policy"}, &StructDesc{TypeCommon: TypeCommon{TypeName: "fw_policy", IsVarlen: true}, Fields: []Type{ &StructType{Key: StructKey{Name: "nlattr_t[const[TCA_FW_CLASSID, int16], tcm_handle]"}, FldName: "TCA_FW_CLASSID"}, &StructType{Key: StructKey{Name: "nlattr_t[const[TCA_FW_POLICE, int16], array[police_policy]]"}, FldName: "TCA_FW_POLICE"}, @@ -49785,12 +49790,20 @@ var syscalls_ppc64le = []*Syscall{ }}, {NR: 221, Name: "futex", CallName: "futex", Args: []Type{ &PtrType{TypeCommon{TypeName: "ptr", FldName: "addr", TypeSize: 8}, &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}, Kind: 1, RangeEnd: 2}}, - &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "futex_op", FldName: "op", TypeSize: 8}}, Vals: []uint64{0, 1, 3, 4, 9, 128, 129, 139, 140}}, + &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "futex_op", FldName: "op", TypeSize: 8}}, Vals: []uint64{0, 1, 3, 4, 9, 13, 128, 129, 139, 140, 141}}, &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "val", TypeSize: 4}}, Kind: 1, RangeEnd: 2}, &PtrType{TypeCommon{TypeName: "ptr", FldName: "timeout", TypeSize: 8}, &StructType{Key: StructKey{Name: "timespec"}}}, &PtrType{TypeCommon{TypeName: "ptr", FldName: "addr2", TypeSize: 8}, &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}, Kind: 1, RangeEnd: 2}}, &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "val3", TypeSize: 4}}, Kind: 1, RangeEnd: 2}, }}, + {NR: 221, Name: "futex$FUTEX_WAIT_MULTIPLE", CallName: "futex", Args: []Type{ + &PtrType{TypeCommon{TypeName: "ptr", FldName: "addr", TypeSize: 8}, &ArrayType{TypeCommon: TypeCommon{TypeName: "array", IsVarlen: true}, Type: &StructType{Key: StructKey{Name: "futex_wait_block"}}, Kind: 1, RangeEnd: 129}}, + &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "op", TypeSize: 8}}, Val: 13}, + &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "val", TypeSize: 8}}, Path: []string{"addr"}}, + &PtrType{TypeCommon{TypeName: "ptr", FldName: "timeout", TypeSize: 8}, &StructType{Key: StructKey{Name: "timespec"}}}, + &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "addr2", TypeSize: 8}}}, + &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "val3", TypeSize: 8}}}, + }}, {NR: 290, Name: "futimesat", CallName: "futimesat", Args: []Type{ &ResourceType{TypeCommon: TypeCommon{TypeName: "fd_dir", FldName: "dir", TypeSize: 4}}, &PtrType{TypeCommon{TypeName: "ptr", FldName: "pathname", TypeSize: 8}, &BufferType{TypeCommon: TypeCommon{TypeName: "filename", IsVarlen: true}, Kind: 3}}, @@ -68060,6 +68073,8 @@ var consts_ppc64le = []ConstValue{ {"FUTEX_REQUEUE", 3}, {Name: "FUTEX_WAIT"}, {"FUTEX_WAIT_BITSET", 9}, + {"FUTEX_WAIT_MULTIPLE", 13}, + {"FUTEX_WAIT_MULTIPLE_PRIVATE", 141}, {"FUTEX_WAIT_PRIVATE", 128}, {"FUTEX_WAIT_REQUEUE_PI_PRIVATE", 139}, {"FUTEX_WAKE", 1}, @@ -76109,4 +76124,4 @@ var consts_ppc64le = []ConstValue{ {"ethtool_per_queue_op_size", 128}, } -const revision_ppc64le = "3396f69ff357c213bed1cf176308552f52f7cb8a" +const revision_ppc64le = "983c33d3c33e7722f2cf2de15b12fe03e0f7d9ba" diff --git a/sys/linux/sys.txt b/sys/linux/sys.txt index 12ddb6900..ee875ad48 100644 --- a/sys/linux/sys.txt +++ b/sys/linux/sys.txt @@ -22,7 +22,6 @@ include <linux/un.h> include <linux/ioctl.h> include <linux/fadvise.h> include <linux/falloc.h> -include <linux/futex.h> include <linux/kexec.h> include <linux/elf.h> include <linux/fiemap.h> @@ -177,9 +176,6 @@ pkey_free(key pkey) pkey_mprotect(addr vma, len len[addr], prot flags[mmap_prot], key pkey) pkey_flags = PKEY_DISABLE_ACCESS, PKEY_DISABLE_WRITE -futex(addr ptr[in, int32[0:2]], op flags[futex_op], val int32[0:2], timeout ptr[in, timespec], addr2 ptr[in, int32[0:2]], val3 int32[0:2]) -set_robust_list(head ptr[in, robust_list_head], len len[head]) -get_robust_list(pid pid, head ptr[in, ptr[out, robust_list_head]], len ptr[inout, len[head, intptr]]) restart_syscall() # Almighty! @@ -738,16 +734,6 @@ kexec_segment { memsz intptr } -robust_list_head { - list ptr[in, robust_list, opt] - futex_offset intptr - list_op_pending ptr[in, robust_list, opt] -} - -robust_list { - next ptr[in, robust_list, opt] -} - rusage { utime timeval stime timeval @@ -931,7 +917,6 @@ finit_module_flags = MODULE_INIT_IGNORE_MODVERSIONS, MODULE_INIT_IGNORE_VERMAGIC delete_module_flags = O_NONBLOCK, O_TRUNC kexec_load_flags = KEXEC_ON_CRASH, KEXEC_PRESERVE_CONTEXT, KEXEC_ARCH_386, KEXEC_ARCH_X86_64, KEXEC_ARCH_PPC, KEXEC_ARCH_PPC64, KEXEC_ARCH_IA_64, KEXEC_ARCH_ARM, KEXEC_ARCH_S390, KEXEC_ARCH_SH, KEXEC_ARCH_MIPS, KEXEC_ARCH_MIPS_LE, KEXEC_ARCH_DEFAULT faccessat_flags = 0x100, 0x200, 0x400, 0x800, 0x1000 -futex_op = FUTEX_WAIT, FUTEX_WAIT_BITSET, FUTEX_WAKE, FUTEX_REQUEUE, FUTEX_CMP_REQUEUE, FUTEX_WAIT_PRIVATE, FUTEX_WAKE_PRIVATE, FUTEX_WAIT_REQUEUE_PI_PRIVATE, FUTEX_CMP_REQUEUE_PI_PRIVATE sync_file_flags = SYNC_FILE_RANGE_WAIT_BEFORE, SYNC_FILE_RANGE_WRITE, SYNC_FILE_RANGE_WAIT_AFTER kcmp_flags = KCMP_FILE, KCMP_FILES, KCMP_FS, KCMP_IO, KCMP_SIGHAND, KCMP_SYSVSEM, KCMP_VM rusage_who = RUSAGE_SELF, RUSAGE_CHILDREN, RUSAGE_THREAD diff --git a/sys/linux/sys_386.const b/sys/linux/sys_386.const index ff93dc441..ccb7508c2 100644 --- a/sys/linux/sys_386.const +++ b/sys/linux/sys_386.const @@ -108,15 +108,6 @@ FIONBIO = 21537 FIONCLEX = 21584 FIOQSIZE = 21600 FITHAW = 3221510264 -FUTEX_CMP_REQUEUE = 4 -FUTEX_CMP_REQUEUE_PI_PRIVATE = 140 -FUTEX_REQUEUE = 3 -FUTEX_WAIT = 0 -FUTEX_WAIT_BITSET = 9 -FUTEX_WAIT_PRIVATE = 128 -FUTEX_WAIT_REQUEUE_PI_PRIVATE = 139 -FUTEX_WAKE = 1 -FUTEX_WAKE_PRIVATE = 129 F_ADD_SEALS = 1033 F_DUPFD = 0 F_DUPFD_CLOEXEC = 1030 @@ -599,10 +590,8 @@ __NR_fstatat64 = 300 __NR_fstatfs = 100 __NR_fsync = 118 __NR_ftruncate = 93 -__NR_futex = 240 __NR_futimesat = 299 __NR_get_mempolicy = 275 -__NR_get_robust_list = 312 __NR_get_thread_area = 244 __NR_getcwd = 183 __NR_getdents = 141 @@ -730,7 +719,6 @@ __NR_select = 82 __NR_sendfile = 187 __NR_sendfile64 = 239 __NR_set_mempolicy = 276 -__NR_set_robust_list = 311 __NR_set_thread_area = 243 __NR_set_tid_address = 258 __NR_setfsgid = 139 diff --git a/sys/linux/sys_amd64.const b/sys/linux/sys_amd64.const index 4c09a4e0d..3b43c4ecd 100644 --- a/sys/linux/sys_amd64.const +++ b/sys/linux/sys_amd64.const @@ -108,15 +108,6 @@ FIONBIO = 21537 FIONCLEX = 21584 FIOQSIZE = 21600 FITHAW = 3221510264 -FUTEX_CMP_REQUEUE = 4 -FUTEX_CMP_REQUEUE_PI_PRIVATE = 140 -FUTEX_REQUEUE = 3 -FUTEX_WAIT = 0 -FUTEX_WAIT_BITSET = 9 -FUTEX_WAIT_PRIVATE = 128 -FUTEX_WAIT_REQUEUE_PI_PRIVATE = 139 -FUTEX_WAKE = 1 -FUTEX_WAKE_PRIVATE = 129 F_ADD_SEALS = 1033 F_DUPFD = 0 F_DUPFD_CLOEXEC = 1030 @@ -599,10 +590,8 @@ __NR_fstat = 5 __NR_fstatfs = 138 __NR_fsync = 74 __NR_ftruncate = 77 -__NR_futex = 202 __NR_futimesat = 261 __NR_get_mempolicy = 239 -__NR_get_robust_list = 274 __NR_get_thread_area = 211 __NR_getcwd = 79 __NR_getdents = 78 @@ -730,7 +719,6 @@ __NR_select = 23 __NR_sendfile = 40 # __NR_sendfile64 is not set __NR_set_mempolicy = 238 -__NR_set_robust_list = 273 __NR_set_thread_area = 205 __NR_set_tid_address = 218 __NR_setfsgid = 123 diff --git a/sys/linux/sys_arm.const b/sys/linux/sys_arm.const index 5f4ddac83..531698582 100644 --- a/sys/linux/sys_arm.const +++ b/sys/linux/sys_arm.const @@ -108,15 +108,6 @@ FIONBIO = 21537 FIONCLEX = 21584 FIOQSIZE = 21598 FITHAW = 3221510264 -FUTEX_CMP_REQUEUE = 4 -FUTEX_CMP_REQUEUE_PI_PRIVATE = 140 -FUTEX_REQUEUE = 3 -FUTEX_WAIT = 0 -FUTEX_WAIT_BITSET = 9 -FUTEX_WAIT_PRIVATE = 128 -FUTEX_WAIT_REQUEUE_PI_PRIVATE = 139 -FUTEX_WAKE = 1 -FUTEX_WAKE_PRIVATE = 129 F_ADD_SEALS = 1033 F_DUPFD = 0 F_DUPFD_CLOEXEC = 1030 @@ -599,10 +590,8 @@ __NR_fstatat64 = 327 __NR_fstatfs = 100 __NR_fsync = 118 __NR_ftruncate = 93 -__NR_futex = 240 __NR_futimesat = 326 __NR_get_mempolicy = 320 -__NR_get_robust_list = 339 # __NR_get_thread_area is not set __NR_getcwd = 183 __NR_getdents = 141 @@ -730,7 +719,6 @@ __NR_sched_yield = 158 __NR_sendfile = 187 __NR_sendfile64 = 239 __NR_set_mempolicy = 321 -__NR_set_robust_list = 338 # __NR_set_thread_area is not set __NR_set_tid_address = 256 __NR_setfsgid = 139 diff --git a/sys/linux/sys_arm64.const b/sys/linux/sys_arm64.const index 1ec147f65..49a2f6928 100644 --- a/sys/linux/sys_arm64.const +++ b/sys/linux/sys_arm64.const @@ -108,15 +108,6 @@ FIONBIO = 21537 FIONCLEX = 21584 FIOQSIZE = 21600 FITHAW = 3221510264 -FUTEX_CMP_REQUEUE = 4 -FUTEX_CMP_REQUEUE_PI_PRIVATE = 140 -FUTEX_REQUEUE = 3 -FUTEX_WAIT = 0 -FUTEX_WAIT_BITSET = 9 -FUTEX_WAIT_PRIVATE = 128 -FUTEX_WAIT_REQUEUE_PI_PRIVATE = 139 -FUTEX_WAKE = 1 -FUTEX_WAKE_PRIVATE = 129 F_ADD_SEALS = 1033 F_DUPFD = 0 F_DUPFD_CLOEXEC = 1030 @@ -599,10 +590,8 @@ __NR_fstat = 80 __NR_fstatfs = 44 __NR_fsync = 82 __NR_ftruncate = 46 -__NR_futex = 98 # __NR_futimesat is not set __NR_get_mempolicy = 236 -__NR_get_robust_list = 100 # __NR_get_thread_area is not set __NR_getcwd = 17 # __NR_getdents is not set @@ -730,7 +719,6 @@ __NR_sched_yield = 124 __NR_sendfile = 71 # __NR_sendfile64 is not set __NR_set_mempolicy = 237 -__NR_set_robust_list = 99 # __NR_set_thread_area is not set __NR_set_tid_address = 96 __NR_setfsgid = 152 diff --git a/sys/linux/sys_mips64le.const b/sys/linux/sys_mips64le.const index 728aac2ed..e4c37f7f7 100644 --- a/sys/linux/sys_mips64le.const +++ b/sys/linux/sys_mips64le.const @@ -108,15 +108,6 @@ FIONBIO = 26238 FIONCLEX = 26114 FIOQSIZE = 26239 FITHAW = 3221510264 -FUTEX_CMP_REQUEUE = 4 -FUTEX_CMP_REQUEUE_PI_PRIVATE = 140 -FUTEX_REQUEUE = 3 -FUTEX_WAIT = 0 -FUTEX_WAIT_BITSET = 9 -FUTEX_WAIT_PRIVATE = 128 -FUTEX_WAIT_REQUEUE_PI_PRIVATE = 139 -FUTEX_WAKE = 1 -FUTEX_WAKE_PRIVATE = 129 F_ADD_SEALS = 1033 F_DUPFD = 0 F_DUPFD_CLOEXEC = 1030 @@ -599,10 +590,8 @@ __NR_fstat = 5005 __NR_fstatfs = 5135 __NR_fsync = 5072 __NR_ftruncate = 5075 -__NR_futex = 5194 __NR_futimesat = 5251 __NR_get_mempolicy = 5228 -__NR_get_robust_list = 5269 # __NR_get_thread_area is not set __NR_getcwd = 5077 __NR_getdents = 5076 @@ -730,7 +719,6 @@ __NR_sched_yield = 5023 __NR_sendfile = 5039 # __NR_sendfile64 is not set __NR_set_mempolicy = 5229 -__NR_set_robust_list = 5268 __NR_set_thread_area = 5242 __NR_set_tid_address = 5212 __NR_setfsgid = 5121 diff --git a/sys/linux/sys_ppc64le.const b/sys/linux/sys_ppc64le.const index c55be9c8b..efddafe61 100644 --- a/sys/linux/sys_ppc64le.const +++ b/sys/linux/sys_ppc64le.const @@ -108,15 +108,6 @@ FIONBIO = 2147772030 FIONCLEX = 536897026 FIOQSIZE = 1074292352 FITHAW = 3221510264 -FUTEX_CMP_REQUEUE = 4 -FUTEX_CMP_REQUEUE_PI_PRIVATE = 140 -FUTEX_REQUEUE = 3 -FUTEX_WAIT = 0 -FUTEX_WAIT_BITSET = 9 -FUTEX_WAIT_PRIVATE = 128 -FUTEX_WAIT_REQUEUE_PI_PRIVATE = 139 -FUTEX_WAKE = 1 -FUTEX_WAKE_PRIVATE = 129 F_ADD_SEALS = 1033 F_DUPFD = 0 F_DUPFD_CLOEXEC = 1030 @@ -599,10 +590,8 @@ __NR_fstat = 108 __NR_fstatfs = 100 __NR_fsync = 118 __NR_ftruncate = 93 -__NR_futex = 221 __NR_futimesat = 290 __NR_get_mempolicy = 260 -__NR_get_robust_list = 299 # __NR_get_thread_area is not set __NR_getcwd = 182 __NR_getdents = 141 @@ -730,7 +719,6 @@ __NR_select = 82 __NR_sendfile = 186 # __NR_sendfile64 is not set __NR_set_mempolicy = 261 -__NR_set_robust_list = 300 # __NR_set_thread_area is not set __NR_set_tid_address = 232 __NR_setfsgid = 139 |
