1<html><head><meta http-equiv="Content-Type" content="text/html; charset=ANSI_X3.4-1968"><title>Chapter&#160;12.&#160;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&#160;12.&#160;Futex API reference</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-atomic-dec-and-mutex-lock.html">Prev</a>&#160;</td><th width="60%" align="center">&#160;</th><td width="20%" align="right">&#160;<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&#160;12.&#160;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"> &#8212; 
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"> &#8212; 
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"> &#8212; 
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"> &#8212; 
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"> &#8212; 
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"> &#8212; 
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"> &#8212; 
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"> &#8212; 
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"> &#8212; 
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"> &#8212; 
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"> &#8212; 
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"> &#8212; 
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"> &#8212; 
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"> &#8212; 
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"> &#8212; 
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"> &#8212; 
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"> &#8212; 
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"> &#8212; 
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"> &#8212; 
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>&#160;</td><td width="20%" align="center">&#160;</td><td width="40%" align="right">&#160;<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>&#160;</td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top">&#160;<span class="phrase">struct futex_q</span></td></tr></table></div></body></html>
40