Sophie

Sophie

distrib > Fedora > 18 > x86_64 > media > updates > by-pkgid > 1a595394b241504ff370a8d12ebfcea7 > files > 675

kernel-doc-3.11.10-100.fc18.noarch.rpm

<?xml version="1.0" encoding="ANSI_X3.4-1968" standalone="no"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=ANSI_X3.4-1968" /><title>__wake_up_sync_key</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1" /><link rel="home" href="index.html" title="Linux Device Drivers" /><link rel="up" href="ch01s03.html" title="Delaying, scheduling, and timer routines" /><link rel="prev" href="API---wake-up.html" title="__wake_up" /><link rel="next" href="API-complete.html" title="complete" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">__wake_up_sync_key</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API---wake-up.html">Prev</a>&#160;</td><th width="60%" align="center">Delaying, scheduling, and timer routines</th><td width="20%" align="right">&#160;<a accesskey="n" href="API-complete.html">Next</a></td></tr></table><hr /></div><div class="refentry"><a id="API---wake-up-sync-key"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>__wake_up_sync_key &#8212; 
     wake up threads blocked on a waitqueue.
 </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">void <strong class="fsfunc">__wake_up_sync_key </strong>(</code></td><td>wait_queue_head_t * <var class="pdparam">q</var>, </td></tr><tr><td>&#160;</td><td>unsigned int <var class="pdparam">mode</var>, </td></tr><tr><td>&#160;</td><td>int <var class="pdparam">nr_exclusive</var>, </td></tr><tr><td>&#160;</td><td>void * <var class="pdparam">key</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer">&#160;</div></div></div><div class="refsect1"><a id="idm140404969429568"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>q</code></em></span></dt><dd><p>
     the waitqueue
    </p></dd><dt><span class="term"><em class="parameter"><code>mode</code></em></span></dt><dd><p>
     which threads
    </p></dd><dt><span class="term"><em class="parameter"><code>nr_exclusive</code></em></span></dt><dd><p>
     how many wake-one or wake-many threads to wake up
    </p></dd><dt><span class="term"><em class="parameter"><code>key</code></em></span></dt><dd><p>
     opaque value to be passed to wakeup targets
    </p></dd></dl></div></div><div class="refsect1"><a id="idm140404969420800"></a><h2>Description</h2><p>
   The sync wakeup differs that the waker knows that it will schedule
   away soon, so while the target thread will be woken up, it will not
   be migrated to another CPU - ie. the two threads are 'synchronized'
   with each other. This can prevent needless bouncing between CPUs.
   </p><p>

   On UP it can prevent extra preemption.
   </p><p>

   It may be assumed that this function implies a write memory barrier before
   changing the task state if and only if any tasks are woken up.
</p></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API---wake-up.html">Prev</a>&#160;</td><td width="20%" align="center"><a accesskey="u" href="ch01s03.html">Up</a></td><td width="40%" align="right">&#160;<a accesskey="n" href="API-complete.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">__wake_up</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">complete</span></td></tr></table></div></body></html>