github.com/google/syzkaller@v0.0.0-20240517125934-c0f1611a36d6/sys/linux/futex.txt (about) 1 # Copyright 2020 syzkaller project authors. All rights reserved. 2 # Use of this source code is governed by Apache 2 LICENSE that can be found in the LICENSE file. 3 4 include <linux/futex.h> 5 6 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]) 7 set_robust_list(head ptr[in, robust_list_head], len len[head]) 8 get_robust_list(pid pid, head ptr[in, ptr[out, robust_list_head]], len ptr[inout, len[head, intptr]]) 9 10 robust_list_head { 11 list ptr[in, robust_list, opt] 12 futex_offset intptr 13 list_op_pending ptr[in, robust_list, opt] 14 } 15 16 robust_list { 17 next ptr[in, robust_list, opt] 18 } 19 20 futex_waitv(addr ptr[in, array[futex_waitv, 0:FUTEX_WAITV_MAX_INDEX]], val len[addr], flg const[0], timeout ptr[in, timespec], clockid flags[futex_clock_id]) 21 22 futex_waitv { 23 val int64 24 uaddr ptr64[in, int64] 25 flags flags[struct_flags_op, int32] 26 __reserved const[0, int32] 27 } 28 29 futex_op = FUTEX_WAIT, FUTEX_WAKE, FUTEX_FD, FUTEX_REQUEUE, FUTEX_CMP_REQUEUE, FUTEX_WAKE_OP, FUTEX_LOCK_PI, FUTEX_UNLOCK_PI, FUTEX_TRYLOCK_PI, FUTEX_WAIT_BITSET, FUTEX_WAKE_BITSET, FUTEX_WAIT_REQUEUE_PI, FUTEX_CMP_REQUEUE_PI, FUTEX_LOCK_PI2, FUTEX_PRIVATE_FLAG, FUTEX_CLOCK_REALTIME 30 31 futex_clock_id = CLOCK_REALTIME, CLOCK_MONOTONIC 32 struct_flags_op = FUTEX_32, FUTEX_PRIVATE_32 33 define FUTEX_WAITV_MAX_INDEX FUTEX_WAITV_MAX - 1 34 define FUTEX_PRIVATE_32 FUTEX_32 | FUTEX_PRIVATE_FLAG