Atomic work required to acquire a pi aware futex
int futex_lock_pi_atomic(u32 __user * uaddr, struct futex_hash_bucket * hb, union futex_key * key, struct futex_pi_state ** ps, struct task_struct * task, int set_waiters);
uaddr
the pi futex user address
hb
the pi futex hash bucket
key
the futex key associated with uaddr and hb
ps
the pi_state pointer where we store the result of the lookup
task
the task to perform the atomic lock work for. This will be “current” except in the case of requeue pi.
set_waiters
force setting the FUTEX_WAITERS bit (1) or not (0)
0 - ready to wait; 1 - acquired the lock; <0 - error
The hb->lock and futex_key refs shall be held by the caller.
Rusty Russell <[email protected]>
Author.