FUTEX_WAIT_SETUP(9) Futex API reference FUTEX_WAIT_SETUP(9)NAMEfutex_wait_setup - Prepare to wait on a futex
SYNOPSIS
int futex_wait_setup(u32 __user * uaddr, u32 val, unsigned int flags,
struct futex_q * q,
struct futex_hash_bucket ** hb);
ARGUMENTS
uaddr
the futex userspace address
val
the expected value
flags
futex flags (FLAGS_SHARED, etc.)
q
the associated futex_q
hb
storage for hash_bucket pointer to be returned to caller
DESCRIPTION
Setup the futex_q and locate the hash_bucket. Get the futex value and
compare it with the expected value. Handle atomic faults internally.
Return with the hb lock held and a q.key reference on success, and
unlocked with no q.key reference on failure.
RETURN
0 - uaddr contains val and hb has been locked; <1 - -EFAULT or
-EWOULDBLOCK (uaddr does not contain val) and hb is unlocked
AUTHOR
Rusty Russell <rusty@rustcorp.com.au>
Author.
COPYRIGHTKernel Hackers Manual 3.11 November 2013 FUTEX_WAIT_SETUP(9)