FUTEX_WAIT_SETUP(9) | Futex API reference | FUTEX_WAIT_SETUP(9) |
NAME¶
futex_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¶
u32 __user * uaddr
u32 val
unsigned int flags
struct futex_q * q
struct futex_hash_bucket ** hb
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>
COPYRIGHT¶
September 2017 | Kernel Hackers Manual 4.12 |