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