1<html><head><meta http-equiv="Content-Type" content="text/html; charset=ANSI_X3.4-1968"><title>Chapter 12. Futex API reference</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="Unreliable Guide To Locking"><link rel="up" href="index.html" title="Unreliable Guide To Locking"><link rel="prev" href="API-atomic-dec-and-mutex-lock.html" title="atomic_dec_and_mutex_lock"><link rel="next" href="API-struct-futex-q.html" title="struct futex_q"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 12. Futex API reference</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-atomic-dec-and-mutex-lock.html">Prev</a> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a accesskey="n" href="API-struct-futex-q.html">Next</a></td></tr></table><hr></div><div class="chapter"><div class="titlepage"><div><div><h1 class="title"><a name="apiref-futex"></a>Chapter 12. Futex API reference</h1></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl class="toc"><dt><span class="refentrytitle"><a href="API-struct-futex-q.html"><span class="phrase">struct futex_q</span></a></span><span class="refpurpose"> — 2 The hashed futex queue entry, one per waiting task 3 </span></dt><dt><span class="refentrytitle"><a href="API-get-futex-key.html"><span class="phrase">get_futex_key</span></a></span><span class="refpurpose"> — 4 Get parameters which are the keys for a futex 5 </span></dt><dt><span class="refentrytitle"><a href="API-fault-in-user-writeable.html"><span class="phrase">fault_in_user_writeable</span></a></span><span class="refpurpose"> — 6 Fault in user address and verify RW access 7 </span></dt><dt><span class="refentrytitle"><a href="API-futex-top-waiter.html"><span class="phrase">futex_top_waiter</span></a></span><span class="refpurpose"> — 8 Return the highest priority waiter on a futex 9 </span></dt><dt><span class="refentrytitle"><a href="API-futex-lock-pi-atomic.html"><span class="phrase">futex_lock_pi_atomic</span></a></span><span class="refpurpose"> — 10 Atomic work required to acquire a pi aware futex 11 </span></dt><dt><span class="refentrytitle"><a href="API---unqueue-futex.html"><span class="phrase">__unqueue_futex</span></a></span><span class="refpurpose"> — 12 Remove the futex_q from its futex_hash_bucket 13 </span></dt><dt><span class="refentrytitle"><a href="API-requeue-futex.html"><span class="phrase">requeue_futex</span></a></span><span class="refpurpose"> — 14 Requeue a futex_q from one hb to another 15 </span></dt><dt><span class="refentrytitle"><a href="API-requeue-pi-wake-futex.html"><span class="phrase">requeue_pi_wake_futex</span></a></span><span class="refpurpose"> — 16 Wake a task that acquired the lock during requeue 17 </span></dt><dt><span class="refentrytitle"><a href="API-futex-proxy-trylock-atomic.html"><span class="phrase">futex_proxy_trylock_atomic</span></a></span><span class="refpurpose"> — 18 Attempt an atomic lock for the top waiter 19 </span></dt><dt><span class="refentrytitle"><a href="API-futex-requeue.html"><span class="phrase">futex_requeue</span></a></span><span class="refpurpose"> — 20 Requeue waiters from uaddr1 to uaddr2 21 </span></dt><dt><span class="refentrytitle"><a href="API-queue-me.html"><span class="phrase">queue_me</span></a></span><span class="refpurpose"> — 22 Enqueue the futex_q on the futex_hash_bucket 23 </span></dt><dt><span class="refentrytitle"><a href="API-unqueue-me.html"><span class="phrase">unqueue_me</span></a></span><span class="refpurpose"> — 24 Remove the futex_q from its futex_hash_bucket 25 </span></dt><dt><span class="refentrytitle"><a href="API-fixup-owner.html"><span class="phrase">fixup_owner</span></a></span><span class="refpurpose"> — 26 Post lock pi_state and corner case management 27 </span></dt><dt><span class="refentrytitle"><a href="API-futex-wait-queue-me.html"><span class="phrase">futex_wait_queue_me</span></a></span><span class="refpurpose"> — 28 <code class="function">queue_me</code> and wait for wakeup, timeout, or signal 29 </span></dt><dt><span class="refentrytitle"><a href="API-futex-wait-setup.html"><span class="phrase">futex_wait_setup</span></a></span><span class="refpurpose"> — 30 Prepare to wait on a futex 31 </span></dt><dt><span class="refentrytitle"><a href="API-handle-early-requeue-pi-wakeup.html"><span class="phrase">handle_early_requeue_pi_wakeup</span></a></span><span class="refpurpose"> — 32 Detect early wakeup on the initial futex 33 </span></dt><dt><span class="refentrytitle"><a href="API-futex-wait-requeue-pi.html"><span class="phrase">futex_wait_requeue_pi</span></a></span><span class="refpurpose"> — 34 Wait on uaddr and take uaddr2 35 </span></dt><dt><span class="refentrytitle"><a href="API-sys-set-robust-list.html"><span class="phrase">sys_set_robust_list</span></a></span><span class="refpurpose"> — 36 Set the robust-futex list head of a task 37 </span></dt><dt><span class="refentrytitle"><a href="API-sys-get-robust-list.html"><span class="phrase">sys_get_robust_list</span></a></span><span class="refpurpose"> — 38 Get the robust-futex list head of a task 39 </span></dt></dl></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-atomic-dec-and-mutex-lock.html">Prev</a> </td><td width="20%" align="center"> </td><td width="40%" align="right"> <a accesskey="n" href="API-struct-futex-q.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">atomic_dec_and_mutex_lock</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">struct futex_q</span></td></tr></table></div></body></html> 40