gnuk/ChibiOS_2.0.6/docs/html/chschd_8h.html
2010-11-22 14:53:37 +09:00

118 lines
14 KiB
HTML

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>ChibiOS/RT: chschd.h File Reference</title>
<link href="custom.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<table style="text-align: center; width: 100%;" border="0"
cellpadding="2" cellspacing="2">
<tbody>
<tr>
<td style="width: 80px;"><img alt="ChibiOS/RT Logo" src="logo_small.png"></td>
<td><big><big>ChibiOS/RT</big></big><br><br>Architecture - Reference Manual - Guides</td>
<td style="width: 80px;"></td>
</tr>
</tbody>
</table>
<hr size="1">
<!-- Generated by Doxygen 1.7.1 -->
<div class="navigation" id="top">
<div class="tabs">
<ul class="tablist">
<li><a href="main.html"><span>Main&nbsp;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
<div class="tabs2">
<ul class="tablist">
<li><a href="files.html"><span>File&nbsp;List</span></a></li>
<li><a href="globals.html"><span>Globals</span></a></li>
</ul>
</div>
</div>
<div class="header">
<div class="summary">
<a href="#nested-classes">Data Structures</a> &#124;
<a href="#define-members">Defines</a> &#124;
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
<h1>chschd.h File Reference</h1> </div>
</div>
<div class="contents">
<p>Scheduler macros and structures.
<a href="#_details">More...</a></p>
<p><a href="chschd_8h_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr><td colspan="2"><h2><a name="nested-classes"></a>
Data Structures</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ready_list.html">ReadyList</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Ready list header. <a href="struct_ready_list.html#_details">More...</a><br/></td></tr>
<tr><td colspan="2"><h2><a name="define-members"></a>
Defines</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__scheduler.html#gae1c86078318e11c2fa57ee3c2ec69f61">RDY_OK</a>&nbsp;&nbsp;&nbsp;0</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Default thread wakeup low level message. <a href="group__scheduler.html#gae1c86078318e11c2fa57ee3c2ec69f61"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__scheduler.html#gaf28d5427eeeb8f737cc7db495157780c">RDY_TIMEOUT</a>&nbsp;&nbsp;&nbsp;-1</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Low level message sent to a thread awakened by a timeout. <a href="group__scheduler.html#gaf28d5427eeeb8f737cc7db495157780c"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__scheduler.html#ga3a606c833796229f23adcb3f6c404a81">RDY_RESET</a>&nbsp;&nbsp;&nbsp;-2</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Low level message sent to a thread awakened by a reset operation. <a href="group__scheduler.html#ga3a606c833796229f23adcb3f6c404a81"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__scheduler.html#gaeb0aae94eb04f9809571cdab39679651">NOPRIO</a>&nbsp;&nbsp;&nbsp;0</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Ready list header priority. <a href="group__scheduler.html#gaeb0aae94eb04f9809571cdab39679651"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__scheduler.html#gacfbd3f4098069329a23d7ec54a7fb8ab">IDLEPRIO</a>&nbsp;&nbsp;&nbsp;1</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Idle thread priority. <a href="group__scheduler.html#gacfbd3f4098069329a23d7ec54a7fb8ab"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__scheduler.html#ga38aff897bc7950077d5985b3d4bcf4d5">LOWPRIO</a>&nbsp;&nbsp;&nbsp;2</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Lowest user priority. <a href="group__scheduler.html#ga38aff897bc7950077d5985b3d4bcf4d5"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__scheduler.html#gad6a6b28f0c1cf8e0da714ef771fb90a0">NORMALPRIO</a>&nbsp;&nbsp;&nbsp;64</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Normal user priority. <a href="group__scheduler.html#gad6a6b28f0c1cf8e0da714ef771fb90a0"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__scheduler.html#ga0621c307e30868052b802fbc821297e8">HIGHPRIO</a>&nbsp;&nbsp;&nbsp;127</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Highest user priority. <a href="group__scheduler.html#ga0621c307e30868052b802fbc821297e8"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__scheduler.html#gadb5ffd31ad382d3b83488e6b6780f03f">ABSPRIO</a>&nbsp;&nbsp;&nbsp;255</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Greatest possible priority. <a href="group__scheduler.html#gadb5ffd31ad382d3b83488e6b6780f03f"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__scheduler.html#gad1ac15e9e5fc17810a94a779257f3d29">TIME_IMMEDIATE</a>&nbsp;&nbsp;&nbsp;((<a class="el" href="group__types.html#gae3e32a98d431a02106616da3071832dd">systime_t</a>)-1)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Zero time specification for some syscalls with a timeout specification. <a href="group__scheduler.html#gad1ac15e9e5fc17810a94a779257f3d29"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__scheduler.html#gae1568cf3090c973c3bc47f86ae2f5afb">TIME_INFINITE</a>&nbsp;&nbsp;&nbsp;((<a class="el" href="group__types.html#gae3e32a98d431a02106616da3071832dd">systime_t</a>)0)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Infinite time specification for all the syscalls with a timeout specification. <a href="group__scheduler.html#gae1568cf3090c973c3bc47f86ae2f5afb"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__scheduler.html#gaa3e744fe83212f48d7373b764b9abb2d">firstprio</a>(rlp)&nbsp;&nbsp;&nbsp;((rlp)-&gt;p_next-&gt;p_prio)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the priority of the first thread on the given ready list. <a href="group__scheduler.html#gaa3e744fe83212f48d7373b764b9abb2d"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__scheduler.html#ga1a5fddde56420e8accd0c09c1abb32a7">currp</a>&nbsp;&nbsp;&nbsp;rlist.r_current</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Current thread pointer access macro. <a href="group__scheduler.html#ga1a5fddde56420e8accd0c09c1abb32a7"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__scheduler.html#ga226bd98a30b2db31dbb1ecc572c18da2">setcurrp</a>(tp)&nbsp;&nbsp;&nbsp;(currp = (tp))</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Current thread pointer change macro. <a href="group__scheduler.html#ga226bd98a30b2db31dbb1ecc572c18da2"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__scheduler.html#ga146230c1fe7e6dab4bc6649f2a71444c">chSchIsRescRequiredI</a>()&nbsp;&nbsp;&nbsp;(firstprio(&amp;rlist.r_queue) &gt; currp-&gt;p_prio)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Determines if the current thread must reschedule. <a href="group__scheduler.html#ga146230c1fe7e6dab4bc6649f2a71444c"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__scheduler.html#gac45d5a97963db4129d95645429e2dd8b">chSchCanYieldS</a>()&nbsp;&nbsp;&nbsp;(firstprio(&amp;rlist.r_queue) &gt;= currp-&gt;p_prio)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Determines if yielding is possible. <a href="group__scheduler.html#gac45d5a97963db4129d95645429e2dd8b"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__scheduler.html#ga8fd763c1a004a010fc13575578edefbd">chSchDoYieldS</a>()</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Yields the time slot. <a href="group__scheduler.html#ga8fd763c1a004a010fc13575578edefbd"></a><br/></td></tr>
<tr><td colspan="2"><h2><a name="func-members"></a>
Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__scheduler.html#gab258cc2856e5f6bb125907cc23358fbd">scheduler_init</a> (void)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Scheduler initialization. <a href="group__scheduler.html#gab258cc2856e5f6bb125907cc23358fbd"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="struct_thread.html">Thread</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__scheduler.html#ga535d58cfb3436c8d4e4586c31c062298">chSchReadyI</a> (<a class="el" href="struct_thread.html">Thread</a> *tp)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Inserts a thread in the Ready List. <a href="group__scheduler.html#ga535d58cfb3436c8d4e4586c31c062298"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__scheduler.html#ga97c1c514b755a1e71caf2f19c1ccf986">chSchGoSleepS</a> (<a class="el" href="group__types.html#ga52d7ed152360a74632afa37bbeeca7ca">tstate_t</a> newstate)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Puts the current thread to sleep into the specified state. <a href="group__scheduler.html#ga97c1c514b755a1e71caf2f19c1ccf986"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__types.html#ga35bcb0c321cd7bc45bf1a11fa17ebdd3">msg_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__scheduler.html#ga306e564f678c1a39139639490c77e78b">chSchGoSleepTimeoutS</a> (<a class="el" href="group__types.html#ga52d7ed152360a74632afa37bbeeca7ca">tstate_t</a> newstate, <a class="el" href="group__types.html#gae3e32a98d431a02106616da3071832dd">systime_t</a> time)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Puts the current thread to sleep into the specified state with timeout specification. <a href="group__scheduler.html#ga306e564f678c1a39139639490c77e78b"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__scheduler.html#gae47a8819a21ef2d521124e76bfb37c95">chSchWakeupS</a> (<a class="el" href="struct_thread.html">Thread</a> *ntp, <a class="el" href="group__types.html#ga35bcb0c321cd7bc45bf1a11fa17ebdd3">msg_t</a> msg)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Wakes up a thread. <a href="group__scheduler.html#gae47a8819a21ef2d521124e76bfb37c95"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__scheduler.html#ga0257cf203e72a766a52059750cb97e6e">chSchDoRescheduleI</a> (void)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Switches to the first thread on the runnable queue. <a href="group__scheduler.html#ga0257cf203e72a766a52059750cb97e6e"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__scheduler.html#ga4e38b4bee3d2330f6a0f1cdb7660af20">chSchRescheduleS</a> (void)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Performs a reschedule if a higher priority thread is runnable. <a href="group__scheduler.html#ga4e38b4bee3d2330f6a0f1cdb7660af20"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__types.html#ga7556af1cb61728b53228fa3af1c851de">bool_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__scheduler.html#ga5fa012ef9d1e920983fe2aea2695a52a">chSchIsRescRequiredExI</a> (void)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Evaluates if a reschedule is required. <a href="group__scheduler.html#ga5fa012ef9d1e920983fe2aea2695a52a"></a><br/></td></tr>
</table>
<hr/><a name="_details"></a><h2>Detailed Description</h2>
<p>Scheduler macros and structures. </p>
<p>Definition in file <a class="el" href="chschd_8h_source.html">chschd.h</a>.</p>
</div>
<hr size="1"><address style="text-align: right;"><small>
Generated on Sun Oct 24 2010 09:40:38 for ChibiOS/RT by&nbsp;<a href="http://www.doxygen.org/index.html"><img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.7.1</small></address>
</body>
</html>