Chapter 12. Futex API reference

Table of Contents

struct futex_q — The hashed futex queue entry, one per waiting task
hash_futex — Return the hash bucket in the global hash
match_futex — Check whether two futex keys are equal
get_futex_key — Get parameters which are the keys for a futex
fault_in_user_writeable — Fault in user address and verify RW access
futex_top_waiter — Return the highest priority waiter on a futex
futex_lock_pi_atomic — Atomic work required to acquire a pi aware futex
__unqueue_futex — Remove the futex_q from its futex_hash_bucket
requeue_futex — Requeue a futex_q from one hb to another
requeue_pi_wake_futex — Wake a task that acquired the lock during requeue
futex_proxy_trylock_atomic — Attempt an atomic lock for the top waiter
futex_requeue — Requeue waiters from uaddr1 to uaddr2
queue_me — Enqueue the futex_q on the futex_hash_bucket
unqueue_me — Remove the futex_q from its futex_hash_bucket
fixup_owner — Post lock pi_state and corner case management
futex_wait_queue_me queue_me and wait for wakeup, timeout, or signal
futex_wait_setup — Prepare to wait on a futex
handle_early_requeue_pi_wakeup — Detect early wakeup on the initial futex
futex_wait_requeue_pi — Wait on uaddr and take uaddr2
sys_set_robust_list — Set the robust-futex list head of a task
sys_get_robust_list — Get the robust-futex list head of a task