wut/group__coreinit__thread.html

2173 lines
130 KiB
HTML

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.9.8"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>wut: Thread</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">wut<span id="projectnumber">&#160;v1.9.1</span>
</div>
<div id="projectbrief">Wii U Toolchain</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.8 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
</div><!-- top -->
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<div id="MSearchResults">
<div class="SRPage">
<div id="SRIndex">
<div id="SRResults"></div>
<div class="SRStatus" id="Loading">Loading...</div>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
</div>
</div>
</div>
</div>
<div class="header">
<div class="summary">
<a href="#nested-classes">Data Structures</a> &#124;
<a href="#define-members">Macros</a> &#124;
<a href="#typedef-members">Typedefs</a> &#124;
<a href="#enum-members">Enumerations</a> &#124;
<a href="#func-members">Functions</a> </div>
<div class="headertitle"><div class="title">Thread<div class="ingroups"><a class="el" href="group__coreinit.html">coreinit</a></div></div></div>
</div><!--header-->
<div class="contents">
<p>Manage and run threads on each of the system's cores.
<a href="#details">More...</a></p>
<div class="dynheader">
Collaboration diagram for Thread:</div>
<div class="dyncontent">
<div class="center"><img src="group__coreinit__thread.png" border="0" usemap="#agroup____coreinit____thread" alt=""/></div>
<map name="agroup____coreinit____thread" id="agroup____coreinit____thread">
<area shape="rect" href="group__coreinit.html" title="Contains all core operating system functions such as threads, synchronisation objects,..." alt="" coords="5,5,76,31"/>
<area shape="rect" title="Manage and run threads on each of the system&#39;s cores." alt="" coords="124,5,191,31"/>
</map>
</div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="nested-classes" name="nested-classes"></a>
Data Structures</h2></td></tr>
<tr class="memitem:structOSThreadGHSExceptionHandling" id="r_structOSThreadGHSExceptionHandling"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__coreinit__thread.html#structOSThreadGHSExceptionHandling">OSThreadGHSExceptionHandling</a></td></tr>
<tr class="separator:structOSThreadGHSExceptionHandling"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:structOSMutexQueue" id="r_structOSMutexQueue"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__coreinit__thread.html#structOSMutexQueue">OSMutexQueue</a></td></tr>
<tr class="separator:structOSMutexQueue"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:structOSFastMutexQueue" id="r_structOSFastMutexQueue"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__coreinit__thread.html#structOSFastMutexQueue">OSFastMutexQueue</a></td></tr>
<tr class="separator:structOSFastMutexQueue"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:structOSTLSSection" id="r_structOSTLSSection"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__coreinit__thread.html#structOSTLSSection">OSTLSSection</a></td></tr>
<tr class="separator:structOSTLSSection"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:structOSThread" id="r_structOSThread"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__coreinit__thread.html#structOSThread">OSThread</a></td></tr>
<tr class="separator:structOSThread"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="define-members" name="define-members"></a>
Macros</h2></td></tr>
<tr class="memitem:ga557f93deefa5ce76cc300ec1beb0c879" id="r_ga557f93deefa5ce76cc300ec1beb0c879"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__coreinit__thread.html#ga557f93deefa5ce76cc300ec1beb0c879">OS_THREAD_TAG</a>&#160;&#160;&#160;0x74487244u</td></tr>
<tr class="separator:ga557f93deefa5ce76cc300ec1beb0c879"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="typedef-members" name="typedef-members"></a>
Typedefs</h2></td></tr>
<tr class="memitem:ga1a46c02caff79a13ecf041e55a454696" id="r_ga1a46c02caff79a13ecf041e55a454696"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="group__coreinit__fastmutex.html#structOSFastMutex">OSFastMutex</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__coreinit__thread.html#ga1a46c02caff79a13ecf041e55a454696">OSFastMutex</a></td></tr>
<tr class="separator:ga1a46c02caff79a13ecf041e55a454696"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga6ab521577a62122534149c14253952cb" id="r_ga6ab521577a62122534149c14253952cb"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="group__coreinit__thread.html#structOSFastMutexQueue">OSFastMutexQueue</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__coreinit__thread.html#ga6ab521577a62122534149c14253952cb">OSFastMutexQueue</a></td></tr>
<tr class="separator:ga6ab521577a62122534149c14253952cb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga42b7c5a07043d7f6c8324f51ac1747c8" id="r_ga42b7c5a07043d7f6c8324f51ac1747c8"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="group__coreinit__mutex.html#structOSMutex">OSMutex</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__coreinit__thread.html#ga42b7c5a07043d7f6c8324f51ac1747c8">OSMutex</a></td></tr>
<tr class="separator:ga42b7c5a07043d7f6c8324f51ac1747c8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga585231e15c29fd8485e2ef645623fdec" id="r_ga585231e15c29fd8485e2ef645623fdec"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="group__coreinit__thread.html#structOSMutexQueue">OSMutexQueue</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__coreinit__thread.html#ga585231e15c29fd8485e2ef645623fdec">OSMutexQueue</a></td></tr>
<tr class="separator:ga585231e15c29fd8485e2ef645623fdec"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga21cc46877b04baece01ef544fa06a906" id="r_ga21cc46877b04baece01ef544fa06a906"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="group__coreinit__thread.html#structOSThread">OSThread</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__coreinit__thread.html#ga21cc46877b04baece01ef544fa06a906">OSThread</a></td></tr>
<tr class="separator:ga21cc46877b04baece01ef544fa06a906"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gab0cf3f806efffed339dc9cef8ad0fd1d" id="r_gab0cf3f806efffed339dc9cef8ad0fd1d"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="group__coreinit__thread.html#structOSTLSSection">OSTLSSection</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__coreinit__thread.html#gab0cf3f806efffed339dc9cef8ad0fd1d">OSTLSSection</a></td></tr>
<tr class="separator:gab0cf3f806efffed339dc9cef8ad0fd1d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gafd14e9c7d88bc7d56e2b9bf96cd0c9f1" id="r_gafd14e9c7d88bc7d56e2b9bf96cd0c9f1"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="group__coreinit__thread.html#structOSThreadGHSExceptionHandling">OSThreadGHSExceptionHandling</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__coreinit__thread.html#gafd14e9c7d88bc7d56e2b9bf96cd0c9f1">OSThreadGHSExceptionHandling</a></td></tr>
<tr class="separator:gafd14e9c7d88bc7d56e2b9bf96cd0c9f1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga1c33fd51f40dec4bfff9d98992c7e2cc" id="r_ga1c33fd51f40dec4bfff9d98992c7e2cc"><td class="memItemLeft" align="right" valign="top">typedef uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__coreinit__thread.html#ga1c33fd51f40dec4bfff9d98992c7e2cc">OSThreadState</a></td></tr>
<tr class="memdesc:ga1c33fd51f40dec4bfff9d98992c7e2cc"><td class="mdescLeft">&#160;</td><td class="mdescRight">A value from enum OS_THREAD_STATE. <br /></td></tr>
<tr class="separator:ga1c33fd51f40dec4bfff9d98992c7e2cc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga2b4866b3e51f4690fd197462d2cdebe7" id="r_ga2b4866b3e51f4690fd197462d2cdebe7"><td class="memItemLeft" align="right" valign="top">typedef uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__coreinit__thread.html#ga2b4866b3e51f4690fd197462d2cdebe7">OSThreadRequest</a></td></tr>
<tr class="memdesc:ga2b4866b3e51f4690fd197462d2cdebe7"><td class="mdescLeft">&#160;</td><td class="mdescRight">A value from enum OS_THREAD_REQUEST. <br /></td></tr>
<tr class="separator:ga2b4866b3e51f4690fd197462d2cdebe7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga47c38b62e66b6163f6b080a35830897a" id="r_ga47c38b62e66b6163f6b080a35830897a"><td class="memItemLeft" align="right" valign="top">typedef uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__coreinit__thread.html#ga47c38b62e66b6163f6b080a35830897a">OSThreadAttributes</a></td></tr>
<tr class="memdesc:ga47c38b62e66b6163f6b080a35830897a"><td class="mdescLeft">&#160;</td><td class="mdescRight">A bitfield of enum OS_THREAD_ATTRIB. <br /></td></tr>
<tr class="separator:ga47c38b62e66b6163f6b080a35830897a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gadbf11c3e7af2e76e4889d9030e0b3069" id="r_gadbf11c3e7af2e76e4889d9030e0b3069"><td class="memItemLeft" align="right" valign="top">typedef uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__coreinit__thread.html#gadbf11c3e7af2e76e4889d9030e0b3069">OSThreadType</a></td></tr>
<tr class="memdesc:gadbf11c3e7af2e76e4889d9030e0b3069"><td class="mdescLeft">&#160;</td><td class="mdescRight">A bitfield of enum OS_THREAD_TYPE. <br /></td></tr>
<tr class="separator:gadbf11c3e7af2e76e4889d9030e0b3069"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gab5cdc96dcec643891f88be54830acae9" id="r_gab5cdc96dcec643891f88be54830acae9"><td class="memItemLeft" align="right" valign="top">typedef int(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__coreinit__thread.html#gab5cdc96dcec643891f88be54830acae9">OSThreadEntryPointFn</a>) (int argc, const char **argv)</td></tr>
<tr class="separator:gab5cdc96dcec643891f88be54830acae9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga729a75fba87a2740d7af69aa8978ea5a" id="r_ga729a75fba87a2740d7af69aa8978ea5a"><td class="memItemLeft" align="right" valign="top">typedef void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__coreinit__thread.html#ga729a75fba87a2740d7af69aa8978ea5a">OSThreadCleanupCallbackFn</a>) (<a class="el" href="group__coreinit__thread.html#structOSThread">OSThread</a> *thread, void *stack)</td></tr>
<tr class="separator:ga729a75fba87a2740d7af69aa8978ea5a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac8fa3d74d8d161709d327e38eb426422" id="r_gac8fa3d74d8d161709d327e38eb426422"><td class="memItemLeft" align="right" valign="top">typedef void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__coreinit__thread.html#gac8fa3d74d8d161709d327e38eb426422">OSThreadDeallocatorFn</a>) (<a class="el" href="group__coreinit__thread.html#structOSThread">OSThread</a> *thread, void *stack)</td></tr>
<tr class="separator:gac8fa3d74d8d161709d327e38eb426422"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga15cfcd8665718832fc161efc3eee6a4f" id="r_ga15cfcd8665718832fc161efc3eee6a4f"><td class="memItemLeft" align="right" valign="top">typedef enum <a class="el" href="group__coreinit__thread.html#ga3f2878f0880765b0e59174d64e6598a2">OSThreadSpecificID</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__coreinit__thread.html#ga15cfcd8665718832fc161efc3eee6a4f">OSThreadSpecificID</a></td></tr>
<tr class="separator:ga15cfcd8665718832fc161efc3eee6a4f"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="enum-members" name="enum-members"></a>
Enumerations</h2></td></tr>
<tr class="memitem:ga3f2878f0880765b0e59174d64e6598a2" id="r_ga3f2878f0880765b0e59174d64e6598a2"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__coreinit__thread.html#ga3f2878f0880765b0e59174d64e6598a2">OSThreadSpecificID</a> { <br />
&#160;&#160;<a class="el" href="group__coreinit__thread.html#gga3f2878f0880765b0e59174d64e6598a2a0af999bb500af1658d200849d8768953">OS_THREAD_SPECIFIC_0</a> = 0
, <br />
&#160;&#160;<a class="el" href="group__coreinit__thread.html#gga3f2878f0880765b0e59174d64e6598a2a0e4c73632967864aa71d20be90d7817a">OS_THREAD_SPECIFIC_1</a> = 1
, <br />
&#160;&#160;<a class="el" href="group__coreinit__thread.html#gga3f2878f0880765b0e59174d64e6598a2aa0e9dab835cb43ab3ed8dd06bf9d6890">OS_THREAD_SPECIFIC_2</a> = 2
, <br />
&#160;&#160;<a class="el" href="group__coreinit__thread.html#gga3f2878f0880765b0e59174d64e6598a2a26affb6430cf574592d8855888d42466">OS_THREAD_SPECIFIC_3</a> = 3
, <br />
&#160;&#160;<a class="el" href="group__coreinit__thread.html#gga3f2878f0880765b0e59174d64e6598a2aa4715ed2571c0bb8c8686b9c0ade5e18">OS_THREAD_SPECIFIC_4</a> = 4
, <br />
&#160;&#160;<a class="el" href="group__coreinit__thread.html#gga3f2878f0880765b0e59174d64e6598a2a9a4acf651b8165fc0923334a265424c9">OS_THREAD_SPECIFIC_5</a> = 5
, <br />
&#160;&#160;<a class="el" href="group__coreinit__thread.html#gga3f2878f0880765b0e59174d64e6598a2aed9b7eb8d997f6e759d91f7f47747ced">OS_THREAD_SPECIFIC_6</a> = 6
, <br />
&#160;&#160;<a class="el" href="group__coreinit__thread.html#gga3f2878f0880765b0e59174d64e6598a2ae569fe7516a839ab602614924c8eef79">OS_THREAD_SPECIFIC_7</a> = 7
, <br />
&#160;&#160;<a class="el" href="group__coreinit__thread.html#gga3f2878f0880765b0e59174d64e6598a2a8b2a39500809668f4022177ab5f71077">OS_THREAD_SPECIFIC_8</a> = 8
, <br />
&#160;&#160;<a class="el" href="group__coreinit__thread.html#gga3f2878f0880765b0e59174d64e6598a2aeb09f7be052cd7c9751246a6a83be0ea">OS_THREAD_SPECIFIC_9</a> = 9
, <br />
&#160;&#160;<a class="el" href="group__coreinit__thread.html#gga3f2878f0880765b0e59174d64e6598a2a745871c6a903996e07e74844a50bb178">OS_THREAD_SPECIFIC_10</a> = 10
, <br />
&#160;&#160;<a class="el" href="group__coreinit__thread.html#gga3f2878f0880765b0e59174d64e6598a2a6e4fa62432567eaa5ff65b4fdd766882">OS_THREAD_SPECIFIC_11</a> = 11
, <br />
&#160;&#160;<a class="el" href="group__coreinit__thread.html#gga3f2878f0880765b0e59174d64e6598a2af1751f945ddebd495accd5a36591c573">OS_THREAD_SPECIFIC_12</a> = 12
, <br />
&#160;&#160;<a class="el" href="group__coreinit__thread.html#gga3f2878f0880765b0e59174d64e6598a2a86173585e23d134596011f9a8174ef57">OS_THREAD_SPECIFIC_13</a> = 13
, <br />
&#160;&#160;<a class="el" href="group__coreinit__thread.html#gga3f2878f0880765b0e59174d64e6598a2ae32bd9917e690dad7b9b7adfb70d17e6">OS_THREAD_SPECIFIC_WUT_RESERVED_0</a> = 14
, <br />
&#160;&#160;<a class="el" href="group__coreinit__thread.html#gga3f2878f0880765b0e59174d64e6598a2ad52801cec9de7320bf3e8d8b38e7c886">OS_THREAD_SPECIFIC_WUT_RESERVED_1</a> = 15
<br />
}</td></tr>
<tr class="separator:ga3f2878f0880765b0e59174d64e6598a2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga2051f6f880e722ee1c16d7a9b33fc285" id="r_ga2051f6f880e722ee1c16d7a9b33fc285"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__coreinit__thread.html#ga2051f6f880e722ee1c16d7a9b33fc285">OS_THREAD_STATE</a> { <br />
&#160;&#160;<a class="el" href="group__coreinit__thread.html#gga2051f6f880e722ee1c16d7a9b33fc285a13a1674553ea65a706ae780c20ae84bc">OS_THREAD_STATE_NONE</a> = 0
, <br />
&#160;&#160;<a class="el" href="group__coreinit__thread.html#gga2051f6f880e722ee1c16d7a9b33fc285aba95f54efb4f40634409efe14ac7aa1f">OS_THREAD_STATE_READY</a> = 1 &lt;&lt; 0
, <br />
&#160;&#160;<a class="el" href="group__coreinit__thread.html#gga2051f6f880e722ee1c16d7a9b33fc285ad2b8ca7ea948310fdce859f2a7fd265b">OS_THREAD_STATE_RUNNING</a> = 1 &lt;&lt; 1
, <br />
&#160;&#160;<a class="el" href="group__coreinit__thread.html#gga2051f6f880e722ee1c16d7a9b33fc285a4318e1cf6017f194840a32dd1be1d57f">OS_THREAD_STATE_WAITING</a> = 1 &lt;&lt; 2
, <br />
&#160;&#160;<a class="el" href="group__coreinit__thread.html#gga2051f6f880e722ee1c16d7a9b33fc285a1a499958e89f028b8c3d29f869f97517">OS_THREAD_STATE_MORIBUND</a> = 1 &lt;&lt; 3
<br />
}</td></tr>
<tr class="separator:ga2051f6f880e722ee1c16d7a9b33fc285"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac1b924b5c296e435eae41f0bf395d02a" id="r_gac1b924b5c296e435eae41f0bf395d02a"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__coreinit__thread.html#gac1b924b5c296e435eae41f0bf395d02a">OS_THREAD_REQUEST</a> { <br />
&#160;&#160;<a class="el" href="group__coreinit__thread.html#ggac1b924b5c296e435eae41f0bf395d02aa46b42c24c445d69479b6a163ada1c3c0">OS_THREAD_REQUEST_NONE</a> = 0
, <br />
&#160;&#160;<a class="el" href="group__coreinit__thread.html#ggac1b924b5c296e435eae41f0bf395d02aa632959c993cef4fd2735051db6797329">OS_THREAD_REQUEST_SUSPEND</a> = 1
, <br />
&#160;&#160;<a class="el" href="group__coreinit__thread.html#ggac1b924b5c296e435eae41f0bf395d02aab227c9a028b4fb3a9f71afc33995748a">OS_THREAD_REQUEST_CANCEL</a> = 2
<br />
}</td></tr>
<tr class="separator:gac1b924b5c296e435eae41f0bf395d02a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga93f63e1c4e8826006db8878c9a6d0519" id="r_ga93f63e1c4e8826006db8878c9a6d0519"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__coreinit__thread.html#ga93f63e1c4e8826006db8878c9a6d0519">OS_THREAD_ATTRIB</a> { <br />
&#160;&#160;<a class="el" href="group__coreinit__thread.html#gga93f63e1c4e8826006db8878c9a6d0519a3ea0c3a38f1342783fd2ddfa6a84a13d">OS_THREAD_ATTRIB_AFFINITY_CPU0</a> = 1 &lt;&lt; 0
, <br />
&#160;&#160;<a class="el" href="group__coreinit__thread.html#gga93f63e1c4e8826006db8878c9a6d0519adcea8a57b4636bc5a0c3e283ce83e0f7">OS_THREAD_ATTRIB_AFFINITY_CPU1</a> = 1 &lt;&lt; 1
, <br />
&#160;&#160;<a class="el" href="group__coreinit__thread.html#gga93f63e1c4e8826006db8878c9a6d0519a1434f284dfb835aa2d0704cebf81345c">OS_THREAD_ATTRIB_AFFINITY_CPU2</a> = 1 &lt;&lt; 2
, <br />
&#160;&#160;<a class="el" href="group__coreinit__thread.html#gga93f63e1c4e8826006db8878c9a6d0519abb854560be1fd9b10763999f08b3591b">OS_THREAD_ATTRIB_AFFINITY_ANY</a> = ((1 &lt;&lt; 0) | (1 &lt;&lt; 1) | (1 &lt;&lt; 2))
, <br />
&#160;&#160;<a class="el" href="group__coreinit__thread.html#gga93f63e1c4e8826006db8878c9a6d0519a643750f290d1a1327e4d6f83a385a923">OS_THREAD_ATTRIB_DETACHED</a> = 1 &lt;&lt; 3
, <br />
&#160;&#160;<a class="el" href="group__coreinit__thread.html#gga93f63e1c4e8826006db8878c9a6d0519a6b6ea70f704c863a0a37b03ffbffaa85">OS_THREAD_ATTRIB_STACK_USAGE</a> = 1 &lt;&lt; 5
, <br />
&#160;&#160;<a class="el" href="group__coreinit__thread.html#gga93f63e1c4e8826006db8878c9a6d0519ace8f6b543d38b19c674923af4e0cba06">OS_THREAD_ATTRIB_UNKNOWN</a> = 1 &lt;&lt; 7
<br />
}</td></tr>
<tr class="separator:ga93f63e1c4e8826006db8878c9a6d0519"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gae384e3d66353d806bd97e9d083dcb71c" id="r_gae384e3d66353d806bd97e9d083dcb71c"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__coreinit__thread.html#gae384e3d66353d806bd97e9d083dcb71c">OS_THREAD_TYPE</a> { <br />
&#160;&#160;<a class="el" href="group__coreinit__thread.html#ggae384e3d66353d806bd97e9d083dcb71caf8483c47eb5947b9925be22d1e9d70c3">OS_THREAD_TYPE_DRIVER</a> = 0
, <br />
&#160;&#160;<a class="el" href="group__coreinit__thread.html#ggae384e3d66353d806bd97e9d083dcb71cae2f689990595562c636872dbcaf0771a">OS_THREAD_TYPE_IO</a> = 1
, <br />
&#160;&#160;<a class="el" href="group__coreinit__thread.html#ggae384e3d66353d806bd97e9d083dcb71ca1ec2b2e8a1e8ae1b929c110cb5149cba">OS_THREAD_TYPE_APP</a> = 2
<br />
}</td></tr>
<tr class="separator:gae384e3d66353d806bd97e9d083dcb71c"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="func-members" name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:ga4dc00e8b9758c58fbdbb73350637f805" id="r_ga4dc00e8b9758c58fbdbb73350637f805"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__coreinit__thread.html#ga4dc00e8b9758c58fbdbb73350637f805">OSCancelThread</a> (<a class="el" href="group__coreinit__thread.html#structOSThread">OSThread</a> *thread)</td></tr>
<tr class="memdesc:ga4dc00e8b9758c58fbdbb73350637f805"><td class="mdescLeft">&#160;</td><td class="mdescRight">Cancels a thread. <br /></td></tr>
<tr class="separator:ga4dc00e8b9758c58fbdbb73350637f805"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga0b90395dabd5e3077b274f8dd65fe5bb" id="r_ga0b90395dabd5e3077b274f8dd65fe5bb"><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__coreinit__thread.html#ga0b90395dabd5e3077b274f8dd65fe5bb">OSCheckActiveThreads</a> ()</td></tr>
<tr class="memdesc:ga0b90395dabd5e3077b274f8dd65fe5bb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the count of active threads. <br /></td></tr>
<tr class="separator:ga0b90395dabd5e3077b274f8dd65fe5bb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga2bfc1c71ab2551fa12c1dd26c8c9efce" id="r_ga2bfc1c71ab2551fa12c1dd26c8c9efce"><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__coreinit__thread.html#ga2bfc1c71ab2551fa12c1dd26c8c9efce">OSCheckThreadStackUsage</a> (<a class="el" href="group__coreinit__thread.html#structOSThread">OSThread</a> *thread)</td></tr>
<tr class="memdesc:ga2bfc1c71ab2551fa12c1dd26c8c9efce"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the maximum amount of stack the thread has used. <br /></td></tr>
<tr class="separator:ga2bfc1c71ab2551fa12c1dd26c8c9efce"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf3ca5305804fa4552529c5912c96ce2b" id="r_gaf3ca5305804fa4552529c5912c96ce2b"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__coreinit__thread.html#gaf3ca5305804fa4552529c5912c96ce2b">OSClearThreadStackUsage</a> (<a class="el" href="group__coreinit__thread.html#structOSThread">OSThread</a> *thread)</td></tr>
<tr class="memdesc:gaf3ca5305804fa4552529c5912c96ce2b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Disable tracking of thread stack usage. <br /></td></tr>
<tr class="separator:gaf3ca5305804fa4552529c5912c96ce2b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga6aa2bd70bb3560ca3811aa0215971cf8" id="r_ga6aa2bd70bb3560ca3811aa0215971cf8"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__coreinit__thread.html#ga6aa2bd70bb3560ca3811aa0215971cf8">OSContinueThread</a> (<a class="el" href="group__coreinit__thread.html#structOSThread">OSThread</a> *thread)</td></tr>
<tr class="memdesc:ga6aa2bd70bb3560ca3811aa0215971cf8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Clears a thread's suspend counter and resumes it. <br /></td></tr>
<tr class="separator:ga6aa2bd70bb3560ca3811aa0215971cf8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga558f8aecea78aa6a81817c1d1fcbe8b1" id="r_ga558f8aecea78aa6a81817c1d1fcbe8b1"><td class="memItemLeft" align="right" valign="top"><a class="el" href="wut__types_8h.html#a975dbe9e4396bf9e0064ce01827fa372">BOOL</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__coreinit__thread.html#ga558f8aecea78aa6a81817c1d1fcbe8b1">OSCreateThread</a> (<a class="el" href="group__coreinit__thread.html#structOSThread">OSThread</a> *thread, <a class="el" href="group__coreinit__thread.html#gab5cdc96dcec643891f88be54830acae9">OSThreadEntryPointFn</a> entry, int32_t argc, char *argv, void *stack, uint32_t stackSize, int32_t priority, <a class="el" href="group__coreinit__thread.html#ga47c38b62e66b6163f6b080a35830897a">OSThreadAttributes</a> attributes)</td></tr>
<tr class="memdesc:ga558f8aecea78aa6a81817c1d1fcbe8b1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a new thread. <br /></td></tr>
<tr class="separator:ga558f8aecea78aa6a81817c1d1fcbe8b1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga5c8cbb581c038073ea97105cbc389e73" id="r_ga5c8cbb581c038073ea97105cbc389e73"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__coreinit__thread.html#ga5c8cbb581c038073ea97105cbc389e73">OSDetachThread</a> (<a class="el" href="group__coreinit__thread.html#structOSThread">OSThread</a> *thread)</td></tr>
<tr class="memdesc:ga5c8cbb581c038073ea97105cbc389e73"><td class="mdescLeft">&#160;</td><td class="mdescRight">Detach thread. <br /></td></tr>
<tr class="separator:ga5c8cbb581c038073ea97105cbc389e73"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga481f2365b62f2ed1b7cda3d0bec91ff2" id="r_ga481f2365b62f2ed1b7cda3d0bec91ff2"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__coreinit__thread.html#ga481f2365b62f2ed1b7cda3d0bec91ff2">OSExitThread</a> (int32_t result)</td></tr>
<tr class="memdesc:ga481f2365b62f2ed1b7cda3d0bec91ff2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Exit the current thread with a exit code. <br /></td></tr>
<tr class="separator:ga481f2365b62f2ed1b7cda3d0bec91ff2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga541eec9e102156579ad86cc440d741b1" id="r_ga541eec9e102156579ad86cc440d741b1"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__coreinit__thread.html#ga541eec9e102156579ad86cc440d741b1">OSGetActiveThreadLink</a> (<a class="el" href="group__coreinit__thread.html#structOSThread">OSThread</a> *thread, <a class="el" href="group__coreinit__threadq.html#structOSThreadLink">OSThreadLink</a> *link)</td></tr>
<tr class="memdesc:ga541eec9e102156579ad86cc440d741b1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the next and previous thread in the thread's active queue. <br /></td></tr>
<tr class="separator:ga541eec9e102156579ad86cc440d741b1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga0cc38507c16aef9a9651af7e58533b5c" id="r_ga0cc38507c16aef9a9651af7e58533b5c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__coreinit__thread.html#structOSThread">OSThread</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__coreinit__thread.html#ga0cc38507c16aef9a9651af7e58533b5c">OSGetCurrentThread</a> ()</td></tr>
<tr class="memdesc:ga0cc38507c16aef9a9651af7e58533b5c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return pointer to <a class="el" href="group__coreinit__thread.html#structOSThread">OSThread</a> object for the current thread. <br /></td></tr>
<tr class="separator:ga0cc38507c16aef9a9651af7e58533b5c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga98d82be4f3984b9a4888d64eb014791d" id="r_ga98d82be4f3984b9a4888d64eb014791d"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__coreinit__thread.html#structOSThread">OSThread</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__coreinit__thread.html#ga98d82be4f3984b9a4888d64eb014791d">OSGetDefaultThread</a> (uint32_t coreID)</td></tr>
<tr class="memdesc:ga98d82be4f3984b9a4888d64eb014791d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the default thread for a specific core. <br /></td></tr>
<tr class="separator:ga98d82be4f3984b9a4888d64eb014791d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga42e2be4ac798739e6b6e947099547921" id="r_ga42e2be4ac798739e6b6e947099547921"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__coreinit__thread.html#ga42e2be4ac798739e6b6e947099547921">OSGetStackPointer</a> ()</td></tr>
<tr class="memdesc:ga42e2be4ac798739e6b6e947099547921"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return current stack pointer, value of r1 register. <br /></td></tr>
<tr class="separator:ga42e2be4ac798739e6b6e947099547921"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga62e2afe54836ced17ce04b005b9be728" id="r_ga62e2afe54836ced17ce04b005b9be728"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__coreinit__thread.html#ga62e2afe54836ced17ce04b005b9be728">OSGetThreadAffinity</a> (<a class="el" href="group__coreinit__thread.html#structOSThread">OSThread</a> *thread)</td></tr>
<tr class="memdesc:ga62e2afe54836ced17ce04b005b9be728"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get a thread's affinity. <br /></td></tr>
<tr class="separator:ga62e2afe54836ced17ce04b005b9be728"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga191065f12ea5b0e1b2c02cf8671d9372" id="r_ga191065f12ea5b0e1b2c02cf8671d9372"><td class="memItemLeft" align="right" valign="top">const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__coreinit__thread.html#ga191065f12ea5b0e1b2c02cf8671d9372">OSGetThreadName</a> (<a class="el" href="group__coreinit__thread.html#structOSThread">OSThread</a> *thread)</td></tr>
<tr class="memdesc:ga191065f12ea5b0e1b2c02cf8671d9372"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get a thread's name. <br /></td></tr>
<tr class="separator:ga191065f12ea5b0e1b2c02cf8671d9372"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga9e1c9d9b8de8927fb46276114a2f43ec" id="r_ga9e1c9d9b8de8927fb46276114a2f43ec"><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__coreinit__thread.html#ga9e1c9d9b8de8927fb46276114a2f43ec">OSGetThreadPriority</a> (<a class="el" href="group__coreinit__thread.html#structOSThread">OSThread</a> *thread)</td></tr>
<tr class="memdesc:ga9e1c9d9b8de8927fb46276114a2f43ec"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get a thread's base priority. <br /></td></tr>
<tr class="separator:ga9e1c9d9b8de8927fb46276114a2f43ec"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga5316c67d3c32478cbb3cb6838f702c3d" id="r_ga5316c67d3c32478cbb3cb6838f702c3d"><td class="memItemLeft" align="right" valign="top">void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__coreinit__thread.html#ga5316c67d3c32478cbb3cb6838f702c3d">OSGetThreadSpecific</a> (<a class="el" href="group__coreinit__thread.html#ga3f2878f0880765b0e59174d64e6598a2">OSThreadSpecificID</a> id)</td></tr>
<tr class="memdesc:ga5316c67d3c32478cbb3cb6838f702c3d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get a thread's specific value set by OSSetThreadSpecific. <br /></td></tr>
<tr class="separator:ga5316c67d3c32478cbb3cb6838f702c3d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga0074df288baf29c18a7c823c258ba353" id="r_ga0074df288baf29c18a7c823c258ba353"><td class="memItemLeft" align="right" valign="top"><a class="el" href="wut__types_8h.html#a975dbe9e4396bf9e0064ce01827fa372">BOOL</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__coreinit__thread.html#ga0074df288baf29c18a7c823c258ba353">OSIsThreadSuspended</a> (<a class="el" href="group__coreinit__thread.html#structOSThread">OSThread</a> *thread)</td></tr>
<tr class="memdesc:ga0074df288baf29c18a7c823c258ba353"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns TRUE if a thread is suspended. <br /></td></tr>
<tr class="separator:ga0074df288baf29c18a7c823c258ba353"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga0bec4859c6c3575439660463ab58fc14" id="r_ga0bec4859c6c3575439660463ab58fc14"><td class="memItemLeft" align="right" valign="top"><a class="el" href="wut__types_8h.html#a975dbe9e4396bf9e0064ce01827fa372">BOOL</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__coreinit__thread.html#ga0bec4859c6c3575439660463ab58fc14">OSIsThreadTerminated</a> (<a class="el" href="group__coreinit__thread.html#structOSThread">OSThread</a> *thread)</td></tr>
<tr class="memdesc:ga0bec4859c6c3575439660463ab58fc14"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns TRUE if a thread is terminated. <br /></td></tr>
<tr class="separator:ga0bec4859c6c3575439660463ab58fc14"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gabadb986bf587ed067719230d0194e432" id="r_gabadb986bf587ed067719230d0194e432"><td class="memItemLeft" align="right" valign="top"><a class="el" href="wut__types_8h.html#a975dbe9e4396bf9e0064ce01827fa372">BOOL</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__coreinit__thread.html#gabadb986bf587ed067719230d0194e432">OSJoinThread</a> (<a class="el" href="group__coreinit__thread.html#structOSThread">OSThread</a> *thread, int *threadResult)</td></tr>
<tr class="memdesc:gabadb986bf587ed067719230d0194e432"><td class="mdescLeft">&#160;</td><td class="mdescRight">Wait until thread is terminated. <br /></td></tr>
<tr class="separator:gabadb986bf587ed067719230d0194e432"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga8e47bab6ad06370cbb0990d979e1729b" id="r_ga8e47bab6ad06370cbb0990d979e1729b"><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__coreinit__thread.html#ga8e47bab6ad06370cbb0990d979e1729b">OSResumeThread</a> (<a class="el" href="group__coreinit__thread.html#structOSThread">OSThread</a> *thread)</td></tr>
<tr class="memdesc:ga8e47bab6ad06370cbb0990d979e1729b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Resumes a thread. <br /></td></tr>
<tr class="separator:ga8e47bab6ad06370cbb0990d979e1729b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaa3241ca6d126d3b4dc4be94d9836f573" id="r_gaa3241ca6d126d3b4dc4be94d9836f573"><td class="memItemLeft" align="right" valign="top"><a class="el" href="wut__types_8h.html#a975dbe9e4396bf9e0064ce01827fa372">BOOL</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__coreinit__thread.html#gaa3241ca6d126d3b4dc4be94d9836f573">OSRunThread</a> (<a class="el" href="group__coreinit__thread.html#structOSThread">OSThread</a> *thread, <a class="el" href="group__coreinit__thread.html#gab5cdc96dcec643891f88be54830acae9">OSThreadEntryPointFn</a> entry, int argc, const char **argv)</td></tr>
<tr class="memdesc:gaa3241ca6d126d3b4dc4be94d9836f573"><td class="mdescLeft">&#160;</td><td class="mdescRight">Run a function on an already created thread. <br /></td></tr>
<tr class="separator:gaa3241ca6d126d3b4dc4be94d9836f573"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga64b826e25d3352b17abf9a1e4243837e" id="r_ga64b826e25d3352b17abf9a1e4243837e"><td class="memItemLeft" align="right" valign="top"><a class="el" href="wut__types_8h.html#a975dbe9e4396bf9e0064ce01827fa372">BOOL</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__coreinit__thread.html#ga64b826e25d3352b17abf9a1e4243837e">OSSetThreadAffinity</a> (<a class="el" href="group__coreinit__thread.html#structOSThread">OSThread</a> *thread, uint32_t affinity)</td></tr>
<tr class="memdesc:ga64b826e25d3352b17abf9a1e4243837e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set a thread's affinity. <br /></td></tr>
<tr class="separator:ga64b826e25d3352b17abf9a1e4243837e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga5ab3e3f830d155273978285c2ee0670f" id="r_ga5ab3e3f830d155273978285c2ee0670f"><td class="memItemLeft" align="right" valign="top"><a class="el" href="wut__types_8h.html#a975dbe9e4396bf9e0064ce01827fa372">BOOL</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__coreinit__thread.html#ga5ab3e3f830d155273978285c2ee0670f">OSSetThreadCancelState</a> (<a class="el" href="wut__types_8h.html#a975dbe9e4396bf9e0064ce01827fa372">BOOL</a> state)</td></tr>
<tr class="memdesc:ga5ab3e3f830d155273978285c2ee0670f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set a thread's cancellation state. <br /></td></tr>
<tr class="separator:ga5ab3e3f830d155273978285c2ee0670f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaddb66bd8a4fcdd50eec34e0eaabaa4ea" id="r_gaddb66bd8a4fcdd50eec34e0eaabaa4ea"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__coreinit__thread.html#ga729a75fba87a2740d7af69aa8978ea5a">OSThreadCleanupCallbackFn</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__coreinit__thread.html#gaddb66bd8a4fcdd50eec34e0eaabaa4ea">OSSetThreadCleanupCallback</a> (<a class="el" href="group__coreinit__thread.html#structOSThread">OSThread</a> *thread, <a class="el" href="group__coreinit__thread.html#ga729a75fba87a2740d7af69aa8978ea5a">OSThreadCleanupCallbackFn</a> callback)</td></tr>
<tr class="memdesc:gaddb66bd8a4fcdd50eec34e0eaabaa4ea"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the callback to be called just before a thread is terminated. <br /></td></tr>
<tr class="separator:gaddb66bd8a4fcdd50eec34e0eaabaa4ea"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gab5f71458522cd623a26fda4bc7a08706" id="r_gab5f71458522cd623a26fda4bc7a08706"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__coreinit__thread.html#gac8fa3d74d8d161709d327e38eb426422">OSThreadDeallocatorFn</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__coreinit__thread.html#gab5f71458522cd623a26fda4bc7a08706">OSSetThreadDeallocator</a> (<a class="el" href="group__coreinit__thread.html#structOSThread">OSThread</a> *thread, <a class="el" href="group__coreinit__thread.html#gac8fa3d74d8d161709d327e38eb426422">OSThreadDeallocatorFn</a> deallocator)</td></tr>
<tr class="memdesc:gab5f71458522cd623a26fda4bc7a08706"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the callback to be called just after a thread is terminated. <br /></td></tr>
<tr class="separator:gab5f71458522cd623a26fda4bc7a08706"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf73770f5c74390d22caa7e993e667984" id="r_gaf73770f5c74390d22caa7e993e667984"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__coreinit__thread.html#gaf73770f5c74390d22caa7e993e667984">OSSetThreadName</a> (<a class="el" href="group__coreinit__thread.html#structOSThread">OSThread</a> *thread, const char *name)</td></tr>
<tr class="memdesc:gaf73770f5c74390d22caa7e993e667984"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set a thread's name. <br /></td></tr>
<tr class="separator:gaf73770f5c74390d22caa7e993e667984"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf949db9990798fe799eef6f10400febc" id="r_gaf949db9990798fe799eef6f10400febc"><td class="memItemLeft" align="right" valign="top"><a class="el" href="wut__types_8h.html#a975dbe9e4396bf9e0064ce01827fa372">BOOL</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__coreinit__thread.html#gaf949db9990798fe799eef6f10400febc">OSSetThreadPriority</a> (<a class="el" href="group__coreinit__thread.html#structOSThread">OSThread</a> *thread, int32_t priority)</td></tr>
<tr class="memdesc:gaf949db9990798fe799eef6f10400febc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set a thread's priority. <br /></td></tr>
<tr class="separator:gaf949db9990798fe799eef6f10400febc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gabcdf5e618af28ab7d0eb1dcc9dfc9d36" id="r_gabcdf5e618af28ab7d0eb1dcc9dfc9d36"><td class="memItemLeft" align="right" valign="top"><a class="el" href="wut__types_8h.html#a975dbe9e4396bf9e0064ce01827fa372">BOOL</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__coreinit__thread.html#gabcdf5e618af28ab7d0eb1dcc9dfc9d36">OSSetThreadRunQuantum</a> (<a class="el" href="group__coreinit__thread.html#structOSThread">OSThread</a> *thread, uint32_t quantum)</td></tr>
<tr class="memdesc:gabcdf5e618af28ab7d0eb1dcc9dfc9d36"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set a thread's run quantum. <br /></td></tr>
<tr class="separator:gabcdf5e618af28ab7d0eb1dcc9dfc9d36"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gadcd39949af391000c17a9bb4e093520b" id="r_gadcd39949af391000c17a9bb4e093520b"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__coreinit__thread.html#gadcd39949af391000c17a9bb4e093520b">OSSetThreadSpecific</a> (<a class="el" href="group__coreinit__thread.html#ga3f2878f0880765b0e59174d64e6598a2">OSThreadSpecificID</a> id, void *value)</td></tr>
<tr class="memdesc:gadcd39949af391000c17a9bb4e093520b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set a thread specific value. <br /></td></tr>
<tr class="separator:gadcd39949af391000c17a9bb4e093520b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga3be0f7ef0eed586ef8bf5d57f3cd1dfa" id="r_ga3be0f7ef0eed586ef8bf5d57f3cd1dfa"><td class="memItemLeft" align="right" valign="top"><a class="el" href="wut__types_8h.html#a975dbe9e4396bf9e0064ce01827fa372">BOOL</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__coreinit__thread.html#ga3be0f7ef0eed586ef8bf5d57f3cd1dfa">OSSetThreadStackUsage</a> (<a class="el" href="group__coreinit__thread.html#structOSThread">OSThread</a> *thread)</td></tr>
<tr class="memdesc:ga3be0f7ef0eed586ef8bf5d57f3cd1dfa"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set thread stack usage tracking. <br /></td></tr>
<tr class="separator:ga3be0f7ef0eed586ef8bf5d57f3cd1dfa"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga40601ddddabf312483c9a3da0a924fa6" id="r_ga40601ddddabf312483c9a3da0a924fa6"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__coreinit__thread.html#ga40601ddddabf312483c9a3da0a924fa6">OSSleepThread</a> (<a class="el" href="group__coreinit__threadq.html#structOSThreadQueue">OSThreadQueue</a> *queue)</td></tr>
<tr class="memdesc:ga40601ddddabf312483c9a3da0a924fa6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sleep the current thread and add it to a thread queue. <br /></td></tr>
<tr class="separator:ga40601ddddabf312483c9a3da0a924fa6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaec240f68873bb19c753cfdd346264c17" id="r_gaec240f68873bb19c753cfdd346264c17"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__coreinit__thread.html#gaec240f68873bb19c753cfdd346264c17">OSSleepTicks</a> (<a class="el" href="group__coreinit__time.html#ga4d4f771188f6c29e758ed6b3b8347b4d">OSTime</a> ticks)</td></tr>
<tr class="memdesc:gaec240f68873bb19c753cfdd346264c17"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sleep the current thread for a period of time. <br /></td></tr>
<tr class="separator:gaec240f68873bb19c753cfdd346264c17"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga97d4800cbe08b3e3cd68906a197bf587" id="r_ga97d4800cbe08b3e3cd68906a197bf587"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__coreinit__thread.html#ga97d4800cbe08b3e3cd68906a197bf587">OSSuspendThread</a> (<a class="el" href="group__coreinit__thread.html#structOSThread">OSThread</a> *thread)</td></tr>
<tr class="memdesc:ga97d4800cbe08b3e3cd68906a197bf587"><td class="mdescLeft">&#160;</td><td class="mdescRight">Suspend a thread. <br /></td></tr>
<tr class="separator:ga97d4800cbe08b3e3cd68906a197bf587"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga02fe8497fed97926886f441c4369f47f" id="r_ga02fe8497fed97926886f441c4369f47f"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__coreinit__thread.html#ga02fe8497fed97926886f441c4369f47f">__OSSuspendThreadNolock</a> (<a class="el" href="group__coreinit__thread.html#structOSThread">OSThread</a> *thread)</td></tr>
<tr class="separator:ga02fe8497fed97926886f441c4369f47f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga3d5f9fe631c3b30a30ee84a2d32a617c" id="r_ga3d5f9fe631c3b30a30ee84a2d32a617c"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__coreinit__thread.html#ga3d5f9fe631c3b30a30ee84a2d32a617c">OSTestThreadCancel</a> ()</td></tr>
<tr class="memdesc:ga3d5f9fe631c3b30a30ee84a2d32a617c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Check to see if the current thread should be cancelled or suspended. <br /></td></tr>
<tr class="separator:ga3d5f9fe631c3b30a30ee84a2d32a617c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga233d3d678de8dcccceb18424e24950b8" id="r_ga233d3d678de8dcccceb18424e24950b8"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__coreinit__thread.html#ga233d3d678de8dcccceb18424e24950b8">OSWakeupThread</a> (<a class="el" href="group__coreinit__threadq.html#structOSThreadQueue">OSThreadQueue</a> *queue)</td></tr>
<tr class="memdesc:ga233d3d678de8dcccceb18424e24950b8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Wake up all threads in queue. <br /></td></tr>
<tr class="separator:ga233d3d678de8dcccceb18424e24950b8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaabc089f75f232061a8ba1c2f4d3a9169" id="r_gaabc089f75f232061a8ba1c2f4d3a9169"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__coreinit__thread.html#gaabc089f75f232061a8ba1c2f4d3a9169">OSYieldThread</a> ()</td></tr>
<tr class="memdesc:gaabc089f75f232061a8ba1c2f4d3a9169"><td class="mdescLeft">&#160;</td><td class="mdescRight">Yield execution to waiting threads with same priority. <br /></td></tr>
<tr class="separator:gaabc089f75f232061a8ba1c2f4d3a9169"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<p>Manage and run threads on each of the system's cores. </p>
<p>The thread scheduler in the Wii U uses co-operative scheduling, this is different to the usual pre-emptive scheduling that most operating systems use (such as Windows, Linux, etc). In co-operative scheduling threads must voluntarily yield execution to other threads. In pre-emptive threads are switched by the operating system after an amount of time.</p>
<p>With the Wii U's scheduling model the thread with the highest priority which is in a non-waiting state will always be running (where 0 is the highest priority and 31 is the lowest). Execution will only switch to other threads once this thread has been forced to wait, such as when waiting to acquire a mutex, or when the thread voluntarily yields execution to other threads which have the same priority using OSYieldThread. OSYieldThread will never yield to a thread with lower priority than the current thread. </p>
<hr/><h2 class="groupheader">Data Structure Documentation</h2>
<a name="structOSThreadGHSExceptionHandling" id="structOSThreadGHSExceptionHandling"></a>
<h2 class="memtitle"><span class="permalink"><a href="#structOSThreadGHSExceptionHandling">&#9670;&#160;</a></span>OSThreadGHSExceptionHandling</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">struct OSThreadGHSExceptionHandling</td>
</tr>
</table>
</div><div class="memdoc">
<div class="textblock">
<p class="definition">Definition at line <a class="el" href="thread_8h_source.html#l00136">136</a> of file <a class="el" href="thread_8h_source.html">thread.h</a>.</p>
</div><table class="fieldtable">
<tr><th colspan="3">Data Fields</th></tr>
<tr><td class="fieldtype">
<a id="aa9ccb5d8f48fb42266ff3b9e166eeaf6" name="aa9ccb5d8f48fb42266ff3b9e166eeaf6"></a>void *</td>
<td class="fieldname">
eh_globals</td>
<td class="fielddoc">
</td></tr>
<tr><td class="fieldtype">
<a id="a1d2fbac3c96e681ec287629b517cca5e" name="a1d2fbac3c96e681ec287629b517cca5e"></a>void *</td>
<td class="fieldname">
eh_mem_manage[9]</td>
<td class="fielddoc">
</td></tr>
<tr><td class="fieldtype">
<a id="a3c61e7e00eca5fc08297db9d2ddf5f03" name="a3c61e7e00eca5fc08297db9d2ddf5f03"></a>void *</td>
<td class="fieldname">
eh_store_globals[6]</td>
<td class="fielddoc">
</td></tr>
<tr><td class="fieldtype">
<a id="a2066671169595a8e4a8a09c5adc20f8b" name="a2066671169595a8e4a8a09c5adc20f8b"></a>void *</td>
<td class="fieldname">
eh_store_globals_tdeh[76]</td>
<td class="fielddoc">
</td></tr>
</table>
</div>
</div>
<a name="structOSMutexQueue" id="structOSMutexQueue"></a>
<h2 class="memtitle"><span class="permalink"><a href="#structOSMutexQueue">&#9670;&#160;</a></span>OSMutexQueue</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">struct OSMutexQueue</td>
</tr>
</table>
</div><div class="memdoc">
<div class="textblock">
<p class="definition">Definition at line <a class="el" href="thread_8h_source.html#l00150">150</a> of file <a class="el" href="thread_8h_source.html">thread.h</a>.</p>
</div><table class="fieldtable">
<tr><th colspan="3">Data Fields</th></tr>
<tr><td class="fieldtype">
<a id="a0896610fffd2641ab3f42ea99b6d147a" name="a0896610fffd2641ab3f42ea99b6d147a"></a><a class="el" href="group__coreinit__thread.html#ga42b7c5a07043d7f6c8324f51ac1747c8">OSMutex</a> *</td>
<td class="fieldname">
head</td>
<td class="fielddoc">
</td></tr>
<tr><td class="fieldtype">
<a id="a69d02e959411b8ca397138183d931eae" name="a69d02e959411b8ca397138183d931eae"></a><a class="el" href="group__coreinit__thread.html#ga42b7c5a07043d7f6c8324f51ac1747c8">OSMutex</a> *</td>
<td class="fieldname">
tail</td>
<td class="fielddoc">
</td></tr>
<tr><td class="fieldtype">
<a id="a5f450b216725a37cbc0acd54340144d9" name="a5f450b216725a37cbc0acd54340144d9"></a>void *</td>
<td class="fieldname">
parent</td>
<td class="fielddoc">
</td></tr>
</table>
</div>
</div>
<a name="structOSFastMutexQueue" id="structOSFastMutexQueue"></a>
<h2 class="memtitle"><span class="permalink"><a href="#structOSFastMutexQueue">&#9670;&#160;</a></span>OSFastMutexQueue</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">struct OSFastMutexQueue</td>
</tr>
</table>
</div><div class="memdoc">
<div class="textblock">
<p class="definition">Definition at line <a class="el" href="thread_8h_source.html#l00162">162</a> of file <a class="el" href="thread_8h_source.html">thread.h</a>.</p>
</div><table class="fieldtable">
<tr><th colspan="3">Data Fields</th></tr>
<tr><td class="fieldtype">
<a id="ad55284e8266fdfe37e1c0900cf3c72dc" name="ad55284e8266fdfe37e1c0900cf3c72dc"></a><a class="el" href="group__coreinit__thread.html#ga1a46c02caff79a13ecf041e55a454696">OSFastMutex</a> *</td>
<td class="fieldname">
head</td>
<td class="fielddoc">
</td></tr>
<tr><td class="fieldtype">
<a id="a1563f8b9f6ceef503288783aa43fcb86" name="a1563f8b9f6ceef503288783aa43fcb86"></a><a class="el" href="group__coreinit__thread.html#ga1a46c02caff79a13ecf041e55a454696">OSFastMutex</a> *</td>
<td class="fieldname">
tail</td>
<td class="fielddoc">
</td></tr>
</table>
</div>
</div>
<a name="structOSTLSSection" id="structOSTLSSection"></a>
<h2 class="memtitle"><span class="permalink"><a href="#structOSTLSSection">&#9670;&#160;</a></span>OSTLSSection</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">struct OSTLSSection</td>
</tr>
</table>
</div><div class="memdoc">
<div class="textblock">
<p class="definition">Definition at line <a class="el" href="thread_8h_source.html#l00171">171</a> of file <a class="el" href="thread_8h_source.html">thread.h</a>.</p>
</div><table class="fieldtable">
<tr><th colspan="3">Data Fields</th></tr>
<tr><td class="fieldtype">
<a id="a735984d41155bc1032e09bece8f8d66d" name="a735984d41155bc1032e09bece8f8d66d"></a>void *</td>
<td class="fieldname">
data</td>
<td class="fielddoc">
</td></tr>
</table>
</div>
</div>
<a name="structOSThread" id="structOSThread"></a>
<h2 class="memtitle"><span class="permalink"><a href="#structOSThread">&#9670;&#160;</a></span>OSThread</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">struct OSThread</td>
</tr>
</table>
</div><div class="memdoc">
<div class="textblock">
<p class="definition">Definition at line <a class="el" href="thread_8h_source.html#l00181">181</a> of file <a class="el" href="thread_8h_source.html">thread.h</a>.</p>
</div><table class="fieldtable">
<tr><th colspan="3">Data Fields</th></tr>
<tr><td class="fieldtype">
<a id="ab690e765a841a6d0748e1d5e7146b093" name="ab690e765a841a6d0748e1d5e7146b093"></a><a class="el" href="group__coreinit__context.html#structOSContext">OSContext</a></td>
<td class="fieldname">
context</td>
<td class="fielddoc">
</td></tr>
<tr><td class="fieldtype">
<a id="a1c50fcd1195659821729f52af8f3bb7d" name="a1c50fcd1195659821729f52af8f3bb7d"></a>uint32_t</td>
<td class="fieldname">
tag</td>
<td class="fielddoc">
Should always be set to the value OS_THREAD_TAG. </td></tr>
<tr><td class="fieldtype">
<a id="a18fc1c8e9296f17ef97a86147387d8b4" name="a18fc1c8e9296f17ef97a86147387d8b4"></a><a class="el" href="group__coreinit__thread.html#ga1c33fd51f40dec4bfff9d98992c7e2cc">OSThreadState</a></td>
<td class="fieldname">
state</td>
<td class="fielddoc">
Bitfield of OS_THREAD_STATE. </td></tr>
<tr><td class="fieldtype">
<a id="a153ded885759fdfe2b26d53afbbba830" name="a153ded885759fdfe2b26d53afbbba830"></a><a class="el" href="group__coreinit__thread.html#ga47c38b62e66b6163f6b080a35830897a">OSThreadAttributes</a></td>
<td class="fieldname">
attr</td>
<td class="fielddoc">
Bitfield of OS_THREAD_ATTRIB. </td></tr>
<tr><td class="fieldtype">
<a id="a4fc3a0c58dfbd1e68224521185cb9384" name="a4fc3a0c58dfbd1e68224521185cb9384"></a>uint16_t</td>
<td class="fieldname">
id</td>
<td class="fielddoc">
Unique thread ID. </td></tr>
<tr><td class="fieldtype">
<a id="abf662d124c8c0e60275f632c06d97dd1" name="abf662d124c8c0e60275f632c06d97dd1"></a>int32_t</td>
<td class="fieldname">
suspendCounter</td>
<td class="fielddoc">
Suspend count (increased by OSSuspendThread). </td></tr>
<tr><td class="fieldtype">
<a id="a41b7c4ba47c44a632d5903b1f1338ad0" name="a41b7c4ba47c44a632d5903b1f1338ad0"></a>int32_t</td>
<td class="fieldname">
priority</td>
<td class="fielddoc">
Actual priority of thread. </td></tr>
<tr><td class="fieldtype">
<a id="a6a68a5710d475b823ee9efb0396cdf49" name="a6a68a5710d475b823ee9efb0396cdf49"></a>int32_t</td>
<td class="fieldname">
basePriority</td>
<td class="fielddoc">
Base priority of thread, 0 is highest priority, 31 is lowest priority. </td></tr>
<tr><td class="fieldtype">
<a id="ab3b846817f872aed4903032f00d16246" name="ab3b846817f872aed4903032f00d16246"></a>int32_t</td>
<td class="fieldname">
exitValue</td>
<td class="fielddoc">
Exit value. </td></tr>
<tr><td class="fieldtype">
<a id="af3e4045ac86cf3f4077e6789a04cfb3c" name="af3e4045ac86cf3f4077e6789a04cfb3c"></a><a class="el" href="group__coreinit__threadq.html#structOSThreadQueue">OSThreadQueue</a> *</td>
<td class="fieldname">
coreRunQueue[3]</td>
<td class="fielddoc">
Core run queue stuff. </td></tr>
<tr><td class="fieldtype">
<a id="a244b9ee415954077e0fbebe7b7c8f2a7" name="a244b9ee415954077e0fbebe7b7c8f2a7"></a><a class="el" href="group__coreinit__threadq.html#structOSThreadLink">OSThreadLink</a></td>
<td class="fieldname">
coreRunQueueLink[3]</td>
<td class="fielddoc">
</td></tr>
<tr><td class="fieldtype">
<a id="ab426d2b1b54499adfbda3a7922e69ff0" name="ab426d2b1b54499adfbda3a7922e69ff0"></a><a class="el" href="group__coreinit__threadq.html#structOSThreadQueue">OSThreadQueue</a> *</td>
<td class="fieldname">
queue</td>
<td class="fielddoc">
Queue the thread is currently waiting on. </td></tr>
<tr><td class="fieldtype">
<a id="af7a13b9b9c0c4a91fd90af02e7ea7771" name="af7a13b9b9c0c4a91fd90af02e7ea7771"></a><a class="el" href="group__coreinit__threadq.html#structOSThreadLink">OSThreadLink</a></td>
<td class="fieldname">
link</td>
<td class="fielddoc">
Link used for thread queue. </td></tr>
<tr><td class="fieldtype">
<a id="ae12b5a541aff405df56ed7abfa97e3b4" name="ae12b5a541aff405df56ed7abfa97e3b4"></a><a class="el" href="group__coreinit__threadq.html#structOSThreadQueue">OSThreadQueue</a></td>
<td class="fieldname">
joinQueue</td>
<td class="fielddoc">
Queue of threads waiting to join this thread. </td></tr>
<tr><td class="fieldtype">
<a id="a8f0e11d3f286a61d3ed336429d317abf" name="a8f0e11d3f286a61d3ed336429d317abf"></a><a class="el" href="group__coreinit__thread.html#ga42b7c5a07043d7f6c8324f51ac1747c8">OSMutex</a> *</td>
<td class="fieldname">
mutex</td>
<td class="fielddoc">
Mutex this thread is waiting to lock. </td></tr>
<tr><td class="fieldtype">
<a id="a1a546bbd037b80cd528453546cf0a341" name="a1a546bbd037b80cd528453546cf0a341"></a><a class="el" href="group__coreinit__thread.html#structOSMutexQueue">OSMutexQueue</a></td>
<td class="fieldname">
mutexQueue</td>
<td class="fielddoc">
Queue of mutexes this thread owns. </td></tr>
<tr><td class="fieldtype">
<a id="a01d3b93eba14965d9aba07081986d663" name="a01d3b93eba14965d9aba07081986d663"></a><a class="el" href="group__coreinit__threadq.html#structOSThreadLink">OSThreadLink</a></td>
<td class="fieldname">
activeLink</td>
<td class="fielddoc">
Link for global active thread queue. </td></tr>
<tr><td class="fieldtype">
<a id="acbe2c909215dcda5e24aabd7dd5995de" name="acbe2c909215dcda5e24aabd7dd5995de"></a>void *</td>
<td class="fieldname">
stackStart</td>
<td class="fielddoc">
Stack start (top, highest address) </td></tr>
<tr><td class="fieldtype">
<a id="afcde11463f0a6ad5922e39525ec03c7e" name="afcde11463f0a6ad5922e39525ec03c7e"></a>void *</td>
<td class="fieldname">
stackEnd</td>
<td class="fielddoc">
Stack end (bottom, lowest address) </td></tr>
<tr><td class="fieldtype">
<a id="a5b1f5074d3ad451216e44edd1b73bc1d" name="a5b1f5074d3ad451216e44edd1b73bc1d"></a><a class="el" href="group__coreinit__thread.html#gab5cdc96dcec643891f88be54830acae9">OSThreadEntryPointFn</a></td>
<td class="fieldname">
entryPoint</td>
<td class="fielddoc">
Thread entry point. </td></tr>
<tr><td class="fieldtype">
<a id="a33f6e33810388834523b89afd7bc32eb" name="a33f6e33810388834523b89afd7bc32eb"></a><a class="el" href="group__coreinit__thread.html#structOSThreadGHSExceptionHandling">OSThreadGHSExceptionHandling</a></td>
<td class="fieldname">
ghsExceptionHandling</td>
<td class="fielddoc">
GHS Exception handling thread-specifics. </td></tr>
<tr><td class="fieldtype">
<a id="a31d2cd35c17d9db6a2bc0f44bfdf754b" name="a31d2cd35c17d9db6a2bc0f44bfdf754b"></a><a class="el" href="wut__types_8h.html#a975dbe9e4396bf9e0064ce01827fa372">BOOL</a></td>
<td class="fieldname">
alarmCancelled</td>
<td class="fielddoc">
</td></tr>
<tr><td class="fieldtype">
<a id="a2cc41d719c59b65ac3ea023bf3f42286" name="a2cc41d719c59b65ac3ea023bf3f42286"></a>void *</td>
<td class="fieldname">
specific[0x10]</td>
<td class="fielddoc">
Thread specific values, accessed with OSSetThreadSpecific and OSGetThreadSpecific. </td></tr>
<tr><td class="fieldtype">
<a id="ae07a92983edc376c0d262698477a5088" name="ae07a92983edc376c0d262698477a5088"></a><a class="el" href="group__coreinit__thread.html#gadbf11c3e7af2e76e4889d9030e0b3069">OSThreadType</a></td>
<td class="fieldname">
type</td>
<td class="fielddoc">
</td></tr>
<tr><td class="fieldtype">
<a id="a8f8f80d37794cde9472343e4487ba3eb" name="a8f8f80d37794cde9472343e4487ba3eb"></a>const char *</td>
<td class="fieldname">
name</td>
<td class="fielddoc">
Thread name, accessed with OSSetThreadName and OSGetThreadName. </td></tr>
<tr><td class="fieldtype">
<a id="a5d65070d8d34083e124ddcf9d3d3827a" name="a5d65070d8d34083e124ddcf9d3d3827a"></a><a class="el" href="group__coreinit__alarms.html#structOSAlarm">OSAlarm</a> *</td>
<td class="fieldname">
waitEventTimeoutAlarm</td>
<td class="fielddoc">
</td></tr>
<tr><td class="fieldtype">
<a id="a234a19eb0790f50fe6be08397cbafd46" name="a234a19eb0790f50fe6be08397cbafd46"></a>void *</td>
<td class="fieldname">
userStackPointer</td>
<td class="fielddoc">
The stack pointer passed in OSCreateThread. </td></tr>
<tr><td class="fieldtype">
<a id="ace4c76a6af356088cb17b29968e3fc7d" name="ace4c76a6af356088cb17b29968e3fc7d"></a><a class="el" href="group__coreinit__thread.html#ga729a75fba87a2740d7af69aa8978ea5a">OSThreadCleanupCallbackFn</a></td>
<td class="fieldname">
cleanupCallback</td>
<td class="fielddoc">
Called just before thread is terminated, set with OSSetThreadCleanupCallback. </td></tr>
<tr><td class="fieldtype">
<a id="a26a9241292d04c9c6fe64a140aff3665" name="a26a9241292d04c9c6fe64a140aff3665"></a><a class="el" href="group__coreinit__thread.html#gac8fa3d74d8d161709d327e38eb426422">OSThreadDeallocatorFn</a></td>
<td class="fieldname">
deallocator</td>
<td class="fielddoc">
Called just after a thread is terminated, set with OSSetThreadDeallocator. </td></tr>
<tr><td class="fieldtype">
<a id="aaf5c9c6f6be9a468c705d9f3c39f6904" name="aaf5c9c6f6be9a468c705d9f3c39f6904"></a><a class="el" href="wut__types_8h.html#a975dbe9e4396bf9e0064ce01827fa372">BOOL</a></td>
<td class="fieldname">
cancelState</td>
<td class="fielddoc">
If TRUE then a thread can be cancelled or suspended, set with OSSetThreadCancelState. </td></tr>
<tr><td class="fieldtype">
<a id="a9ec25c03ad5e1dc83c7f66950ce6e4ff" name="a9ec25c03ad5e1dc83c7f66950ce6e4ff"></a><a class="el" href="group__coreinit__thread.html#ga2b4866b3e51f4690fd197462d2cdebe7">OSThreadRequest</a></td>
<td class="fieldname">
requestFlag</td>
<td class="fielddoc">
Current thread request, used for cancelleing and suspending the thread. </td></tr>
<tr><td class="fieldtype">
<a id="a37e895fcd32c37e6a2962a948296bf64" name="a37e895fcd32c37e6a2962a948296bf64"></a>int32_t</td>
<td class="fieldname">
needSuspend</td>
<td class="fielddoc">
Pending suspend request count. </td></tr>
<tr><td class="fieldtype">
<a id="ac4c316e77fc64758b15a09a6b5756bb1" name="ac4c316e77fc64758b15a09a6b5756bb1"></a>int32_t</td>
<td class="fieldname">
suspendResult</td>
<td class="fielddoc">
Result of thread suspend. </td></tr>
<tr><td class="fieldtype">
<a id="ac466ad7864ccba783b664db7b8853b71" name="ac466ad7864ccba783b664db7b8853b71"></a><a class="el" href="group__coreinit__threadq.html#structOSThreadQueue">OSThreadQueue</a></td>
<td class="fieldname">
suspendQueue</td>
<td class="fielddoc">
Queue of threads waiting for a thread to be suspended. </td></tr>
<tr><td class="fieldtype">
<a id="ac620b81b6b79562be55a1096486ab038" name="ac620b81b6b79562be55a1096486ab038"></a>int64_t</td>
<td class="fieldname">
runQuantumTicks</td>
<td class="fielddoc">
How many ticks the thread should run for before suspension. </td></tr>
<tr><td class="fieldtype">
<a id="a0fad6b562bf6bdd76bd81845b8ce258b" name="a0fad6b562bf6bdd76bd81845b8ce258b"></a>uint64_t</td>
<td class="fieldname">
coreTimeConsumedNs</td>
<td class="fielddoc">
The total amount of core time consumed by this thread (Does not include time while Running) </td></tr>
<tr><td class="fieldtype">
<a id="a5ec09b46d411f82cba705390be02fdc7" name="a5ec09b46d411f82cba705390be02fdc7"></a>uint64_t</td>
<td class="fieldname">
wakeCount</td>
<td class="fielddoc">
The number of times this thread has been awoken. </td></tr>
<tr><td class="fieldtype">
<a id="a9074b52fc8c922574c76cece9de72904" name="a9074b52fc8c922574c76cece9de72904"></a><a class="el" href="group__coreinit__time.html#ga4d4f771188f6c29e758ed6b3b8347b4d">OSTime</a></td>
<td class="fieldname">
unk0x610</td>
<td class="fielddoc">
</td></tr>
<tr><td class="fieldtype">
<a id="a44a9192e31a1158179a3a9c6e9b72043" name="a44a9192e31a1158179a3a9c6e9b72043"></a><a class="el" href="group__coreinit__time.html#ga4d4f771188f6c29e758ed6b3b8347b4d">OSTime</a></td>
<td class="fieldname">
unk0x618</td>
<td class="fielddoc">
</td></tr>
<tr><td class="fieldtype">
<a id="a1be6e79e60d1ac7b613170b564d7aa8c" name="a1be6e79e60d1ac7b613170b564d7aa8c"></a><a class="el" href="group__coreinit__time.html#ga4d4f771188f6c29e758ed6b3b8347b4d">OSTime</a></td>
<td class="fieldname">
unk0x620</td>
<td class="fielddoc">
</td></tr>
<tr><td class="fieldtype">
<a id="aa8baa9199ddab33c6e7d72a861621b1a" name="aa8baa9199ddab33c6e7d72a861621b1a"></a><a class="el" href="group__coreinit__time.html#ga4d4f771188f6c29e758ed6b3b8347b4d">OSTime</a></td>
<td class="fieldname">
unk0x628</td>
<td class="fielddoc">
</td></tr>
<tr><td class="fieldtype">
<a id="a997af944f6bad2f2964875a599cf27af" name="a997af944f6bad2f2964875a599cf27af"></a><a class="el" href="group__coreinit__exception.html#gaf44fe86e7b12f2840eeae1571f4beb16">OSExceptionCallbackFn</a></td>
<td class="fieldname">
dsiCallback[3]</td>
<td class="fielddoc">
Callback for DSI exception. </td></tr>
<tr><td class="fieldtype">
<a id="a029b76e5cffab4bd027f3b54de3af664" name="a029b76e5cffab4bd027f3b54de3af664"></a><a class="el" href="group__coreinit__exception.html#gaf44fe86e7b12f2840eeae1571f4beb16">OSExceptionCallbackFn</a></td>
<td class="fieldname">
isiCallback[3]</td>
<td class="fielddoc">
Callback for ISI exception. </td></tr>
<tr><td class="fieldtype">
<a id="a96f8f2b35fce7f2ce5f70c18ac6e1922" name="a96f8f2b35fce7f2ce5f70c18ac6e1922"></a><a class="el" href="group__coreinit__exception.html#gaf44fe86e7b12f2840eeae1571f4beb16">OSExceptionCallbackFn</a></td>
<td class="fieldname">
programCallback[3]</td>
<td class="fielddoc">
Callback for Program exception. </td></tr>
<tr><td class="fieldtype">
<a id="a1a300e73274b98e75e035bef667c0264" name="a1a300e73274b98e75e035bef667c0264"></a><a class="el" href="group__coreinit__exception.html#gaf44fe86e7b12f2840eeae1571f4beb16">OSExceptionCallbackFn</a></td>
<td class="fieldname">
perfMonCallback[3]</td>
<td class="fielddoc">
Callback for PerfMon exception. </td></tr>
<tr><td class="fieldtype">
<a id="ad47fd3c60d5132e95faaf97cc199b45b" name="ad47fd3c60d5132e95faaf97cc199b45b"></a><a class="el" href="wut__types_8h.html#a975dbe9e4396bf9e0064ce01827fa372">BOOL</a></td>
<td class="fieldname">
stackSyncObjAllowed</td>
<td class="fielddoc">
Checks for synchronization objects placed on stack in debug mode when set to true. </td></tr>
<tr><td class="fieldtype">
<a id="a9d6917c6cc21fcdda4887e94b892d049" name="a9d6917c6cc21fcdda4887e94b892d049"></a>uint16_t</td>
<td class="fieldname">
tlsSectionCount</td>
<td class="fielddoc">
Number of TLS sections. </td></tr>
<tr><td class="fieldtype">
<a id="a2360ab38ddf1343f40b87dbade0c392d" name="a2360ab38ddf1343f40b87dbade0c392d"></a><a class="el" href="group__coreinit__thread.html#structOSTLSSection">OSTLSSection</a> *</td>
<td class="fieldname">
tlsSections</td>
<td class="fielddoc">
TLS Sections. </td></tr>
<tr><td class="fieldtype">
<a id="a1e763e6c023696454e84259c03393175" name="a1e763e6c023696454e84259c03393175"></a><a class="el" href="group__coreinit__thread.html#ga1a46c02caff79a13ecf041e55a454696">OSFastMutex</a> *</td>
<td class="fieldname">
fastMutex</td>
<td class="fielddoc">
The fast mutex we are currently waiting for. </td></tr>
<tr><td class="fieldtype">
<a id="a0355b15ee883eb1aaaf3438cc3fe9cdc" name="a0355b15ee883eb1aaaf3438cc3fe9cdc"></a><a class="el" href="group__coreinit__thread.html#structOSFastMutexQueue">OSFastMutexQueue</a></td>
<td class="fieldname">
contendedFastMutexes</td>
<td class="fielddoc">
The fast mutexes we are currently contended on. </td></tr>
<tr><td class="fieldtype">
<a id="af31bb0b80078fbbb202a9ad177c8fc82" name="af31bb0b80078fbbb202a9ad177c8fc82"></a><a class="el" href="group__coreinit__thread.html#structOSFastMutexQueue">OSFastMutexQueue</a></td>
<td class="fieldname">
fastMutexQueue</td>
<td class="fielddoc">
The fast mutexes we currently own locks on. </td></tr>
<tr><td class="fieldtype">
<a id="a45ced66e540de31b475f172d05048120" name="a45ced66e540de31b475f172d05048120"></a><a class="el" href="group__coreinit__exception.html#gaf44fe86e7b12f2840eeae1571f4beb16">OSExceptionCallbackFn</a></td>
<td class="fieldname">
alignCallback[3]</td>
<td class="fielddoc">
Callback for Alignment exception. </td></tr>
<tr><td class="fieldtype">
<a id="a580530edeb2c6a08ca9f43e25b9e2ec5" name="a580530edeb2c6a08ca9f43e25b9e2ec5"></a>uint32_t</td>
<td class="fieldname">
reserved[5]</td>
<td class="fielddoc">
Cleared on thread creation but never used. </td></tr>
</table>
</div>
</div>
<h2 class="groupheader">Macro Definition Documentation</h2>
<a id="ga557f93deefa5ce76cc300ec1beb0c879" name="ga557f93deefa5ce76cc300ec1beb0c879"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga557f93deefa5ce76cc300ec1beb0c879">&#9670;&#160;</a></span>OS_THREAD_TAG</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define OS_THREAD_TAG&#160;&#160;&#160;0x74487244u</td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="thread_8h_source.html#l00179">179</a> of file <a class="el" href="thread_8h_source.html">thread.h</a>.</p>
</div>
</div>
<h2 class="groupheader">Typedef Documentation</h2>
<a id="ga1a46c02caff79a13ecf041e55a454696" name="ga1a46c02caff79a13ecf041e55a454696"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga1a46c02caff79a13ecf041e55a454696">&#9670;&#160;</a></span>OSFastMutex</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef struct <a class="el" href="group__coreinit__fastmutex.html#structOSFastMutex">OSFastMutex</a> <a class="el" href="group__coreinit__fastmutex.html#structOSFastMutex">OSFastMutex</a></td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="thread_8h_source.html#l00036">36</a> of file <a class="el" href="thread_8h_source.html">thread.h</a>.</p>
</div>
</div>
<a id="ga6ab521577a62122534149c14253952cb" name="ga6ab521577a62122534149c14253952cb"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga6ab521577a62122534149c14253952cb">&#9670;&#160;</a></span>OSFastMutexQueue</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef struct <a class="el" href="group__coreinit__thread.html#structOSFastMutexQueue">OSFastMutexQueue</a> <a class="el" href="group__coreinit__thread.html#structOSFastMutexQueue">OSFastMutexQueue</a></td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="thread_8h_source.html#l00037">37</a> of file <a class="el" href="thread_8h_source.html">thread.h</a>.</p>
</div>
</div>
<a id="ga42b7c5a07043d7f6c8324f51ac1747c8" name="ga42b7c5a07043d7f6c8324f51ac1747c8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga42b7c5a07043d7f6c8324f51ac1747c8">&#9670;&#160;</a></span>OSMutex</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef struct <a class="el" href="group__coreinit__mutex.html#structOSMutex">OSMutex</a> <a class="el" href="group__coreinit__mutex.html#structOSMutex">OSMutex</a></td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="thread_8h_source.html#l00038">38</a> of file <a class="el" href="thread_8h_source.html">thread.h</a>.</p>
</div>
</div>
<a id="ga585231e15c29fd8485e2ef645623fdec" name="ga585231e15c29fd8485e2ef645623fdec"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga585231e15c29fd8485e2ef645623fdec">&#9670;&#160;</a></span>OSMutexQueue</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef struct <a class="el" href="group__coreinit__thread.html#structOSMutexQueue">OSMutexQueue</a> <a class="el" href="group__coreinit__thread.html#structOSMutexQueue">OSMutexQueue</a></td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="thread_8h_source.html#l00039">39</a> of file <a class="el" href="thread_8h_source.html">thread.h</a>.</p>
</div>
</div>
<a id="ga21cc46877b04baece01ef544fa06a906" name="ga21cc46877b04baece01ef544fa06a906"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga21cc46877b04baece01ef544fa06a906">&#9670;&#160;</a></span>OSThread</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef struct <a class="el" href="group__coreinit__thread.html#structOSThread">OSThread</a> <a class="el" href="group__coreinit__thread.html#structOSThread">OSThread</a></td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="thread_8h_source.html#l00040">40</a> of file <a class="el" href="thread_8h_source.html">thread.h</a>.</p>
</div>
</div>
<a id="gab0cf3f806efffed339dc9cef8ad0fd1d" name="gab0cf3f806efffed339dc9cef8ad0fd1d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gab0cf3f806efffed339dc9cef8ad0fd1d">&#9670;&#160;</a></span>OSTLSSection</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef struct <a class="el" href="group__coreinit__thread.html#structOSTLSSection">OSTLSSection</a> <a class="el" href="group__coreinit__thread.html#structOSTLSSection">OSTLSSection</a></td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="thread_8h_source.html#l00041">41</a> of file <a class="el" href="thread_8h_source.html">thread.h</a>.</p>
</div>
</div>
<a id="gafd14e9c7d88bc7d56e2b9bf96cd0c9f1" name="gafd14e9c7d88bc7d56e2b9bf96cd0c9f1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gafd14e9c7d88bc7d56e2b9bf96cd0c9f1">&#9670;&#160;</a></span>OSThreadGHSExceptionHandling</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef struct <a class="el" href="group__coreinit__thread.html#structOSThreadGHSExceptionHandling">OSThreadGHSExceptionHandling</a> <a class="el" href="group__coreinit__thread.html#structOSThreadGHSExceptionHandling">OSThreadGHSExceptionHandling</a></td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="thread_8h_source.html#l00042">42</a> of file <a class="el" href="thread_8h_source.html">thread.h</a>.</p>
</div>
</div>
<a id="ga1c33fd51f40dec4bfff9d98992c7e2cc" name="ga1c33fd51f40dec4bfff9d98992c7e2cc"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga1c33fd51f40dec4bfff9d98992c7e2cc">&#9670;&#160;</a></span>OSThreadState</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef uint8_t <a class="el" href="group__coreinit__thread.html#ga1c33fd51f40dec4bfff9d98992c7e2cc">OSThreadState</a></td>
</tr>
</table>
</div><div class="memdoc">
<p>A value from enum OS_THREAD_STATE. </p>
<p class="definition">Definition at line <a class="el" href="thread_8h_source.html#l00045">45</a> of file <a class="el" href="thread_8h_source.html">thread.h</a>.</p>
</div>
</div>
<a id="ga2b4866b3e51f4690fd197462d2cdebe7" name="ga2b4866b3e51f4690fd197462d2cdebe7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga2b4866b3e51f4690fd197462d2cdebe7">&#9670;&#160;</a></span>OSThreadRequest</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef uint32_t <a class="el" href="group__coreinit__thread.html#ga2b4866b3e51f4690fd197462d2cdebe7">OSThreadRequest</a></td>
</tr>
</table>
</div><div class="memdoc">
<p>A value from enum OS_THREAD_REQUEST. </p>
<p class="definition">Definition at line <a class="el" href="thread_8h_source.html#l00048">48</a> of file <a class="el" href="thread_8h_source.html">thread.h</a>.</p>
</div>
</div>
<a id="ga47c38b62e66b6163f6b080a35830897a" name="ga47c38b62e66b6163f6b080a35830897a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga47c38b62e66b6163f6b080a35830897a">&#9670;&#160;</a></span>OSThreadAttributes</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef uint8_t <a class="el" href="group__coreinit__thread.html#ga47c38b62e66b6163f6b080a35830897a">OSThreadAttributes</a></td>
</tr>
</table>
</div><div class="memdoc">
<p>A bitfield of enum OS_THREAD_ATTRIB. </p>
<p class="definition">Definition at line <a class="el" href="thread_8h_source.html#l00051">51</a> of file <a class="el" href="thread_8h_source.html">thread.h</a>.</p>
</div>
</div>
<a id="gadbf11c3e7af2e76e4889d9030e0b3069" name="gadbf11c3e7af2e76e4889d9030e0b3069"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gadbf11c3e7af2e76e4889d9030e0b3069">&#9670;&#160;</a></span>OSThreadType</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef uint32_t <a class="el" href="group__coreinit__thread.html#gadbf11c3e7af2e76e4889d9030e0b3069">OSThreadType</a></td>
</tr>
</table>
</div><div class="memdoc">
<p>A bitfield of enum OS_THREAD_TYPE. </p>
<p class="definition">Definition at line <a class="el" href="thread_8h_source.html#l00054">54</a> of file <a class="el" href="thread_8h_source.html">thread.h</a>.</p>
</div>
</div>
<a id="gab5cdc96dcec643891f88be54830acae9" name="gab5cdc96dcec643891f88be54830acae9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gab5cdc96dcec643891f88be54830acae9">&#9670;&#160;</a></span>OSThreadEntryPointFn</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef int(* OSThreadEntryPointFn) (int argc, const char **argv)</td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="thread_8h_source.html#l00056">56</a> of file <a class="el" href="thread_8h_source.html">thread.h</a>.</p>
</div>
</div>
<a id="ga729a75fba87a2740d7af69aa8978ea5a" name="ga729a75fba87a2740d7af69aa8978ea5a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga729a75fba87a2740d7af69aa8978ea5a">&#9670;&#160;</a></span>OSThreadCleanupCallbackFn</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef void(* OSThreadCleanupCallbackFn) (<a class="el" href="group__coreinit__thread.html#structOSThread">OSThread</a> *thread, void *stack)</td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="thread_8h_source.html#l00057">57</a> of file <a class="el" href="thread_8h_source.html">thread.h</a>.</p>
</div>
</div>
<a id="gac8fa3d74d8d161709d327e38eb426422" name="gac8fa3d74d8d161709d327e38eb426422"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gac8fa3d74d8d161709d327e38eb426422">&#9670;&#160;</a></span>OSThreadDeallocatorFn</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef void(* OSThreadDeallocatorFn) (<a class="el" href="group__coreinit__thread.html#structOSThread">OSThread</a> *thread, void *stack)</td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="thread_8h_source.html#l00058">58</a> of file <a class="el" href="thread_8h_source.html">thread.h</a>.</p>
</div>
</div>
<a id="ga15cfcd8665718832fc161efc3eee6a4f" name="ga15cfcd8665718832fc161efc3eee6a4f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga15cfcd8665718832fc161efc3eee6a4f">&#9670;&#160;</a></span>OSThreadSpecificID</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef enum <a class="el" href="group__coreinit__thread.html#ga3f2878f0880765b0e59174d64e6598a2">OSThreadSpecificID</a> <a class="el" href="group__coreinit__thread.html#ga3f2878f0880765b0e59174d64e6598a2">OSThreadSpecificID</a></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<h2 class="groupheader">Enumeration Type Documentation</h2>
<a id="ga3f2878f0880765b0e59174d64e6598a2" name="ga3f2878f0880765b0e59174d64e6598a2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga3f2878f0880765b0e59174d64e6598a2">&#9670;&#160;</a></span>OSThreadSpecificID</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="group__coreinit__thread.html#ga3f2878f0880765b0e59174d64e6598a2">OSThreadSpecificID</a></td>
</tr>
</table>
</div><div class="memdoc">
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="gga3f2878f0880765b0e59174d64e6598a2a0af999bb500af1658d200849d8768953" name="gga3f2878f0880765b0e59174d64e6598a2a0af999bb500af1658d200849d8768953"></a>OS_THREAD_SPECIFIC_0&#160;</td><td class="fielddoc"><p>These can be used by applications. </p>
</td></tr>
<tr><td class="fieldname"><a id="gga3f2878f0880765b0e59174d64e6598a2a0e4c73632967864aa71d20be90d7817a" name="gga3f2878f0880765b0e59174d64e6598a2a0e4c73632967864aa71d20be90d7817a"></a>OS_THREAD_SPECIFIC_1&#160;</td><td class="fielddoc"></td></tr>
<tr><td class="fieldname"><a id="gga3f2878f0880765b0e59174d64e6598a2aa0e9dab835cb43ab3ed8dd06bf9d6890" name="gga3f2878f0880765b0e59174d64e6598a2aa0e9dab835cb43ab3ed8dd06bf9d6890"></a>OS_THREAD_SPECIFIC_2&#160;</td><td class="fielddoc"></td></tr>
<tr><td class="fieldname"><a id="gga3f2878f0880765b0e59174d64e6598a2a26affb6430cf574592d8855888d42466" name="gga3f2878f0880765b0e59174d64e6598a2a26affb6430cf574592d8855888d42466"></a>OS_THREAD_SPECIFIC_3&#160;</td><td class="fielddoc"></td></tr>
<tr><td class="fieldname"><a id="gga3f2878f0880765b0e59174d64e6598a2aa4715ed2571c0bb8c8686b9c0ade5e18" name="gga3f2878f0880765b0e59174d64e6598a2aa4715ed2571c0bb8c8686b9c0ade5e18"></a>OS_THREAD_SPECIFIC_4&#160;</td><td class="fielddoc"></td></tr>
<tr><td class="fieldname"><a id="gga3f2878f0880765b0e59174d64e6598a2a9a4acf651b8165fc0923334a265424c9" name="gga3f2878f0880765b0e59174d64e6598a2a9a4acf651b8165fc0923334a265424c9"></a>OS_THREAD_SPECIFIC_5&#160;</td><td class="fielddoc"></td></tr>
<tr><td class="fieldname"><a id="gga3f2878f0880765b0e59174d64e6598a2aed9b7eb8d997f6e759d91f7f47747ced" name="gga3f2878f0880765b0e59174d64e6598a2aed9b7eb8d997f6e759d91f7f47747ced"></a>OS_THREAD_SPECIFIC_6&#160;</td><td class="fielddoc"></td></tr>
<tr><td class="fieldname"><a id="gga3f2878f0880765b0e59174d64e6598a2ae569fe7516a839ab602614924c8eef79" name="gga3f2878f0880765b0e59174d64e6598a2ae569fe7516a839ab602614924c8eef79"></a>OS_THREAD_SPECIFIC_7&#160;</td><td class="fielddoc"></td></tr>
<tr><td class="fieldname"><a id="gga3f2878f0880765b0e59174d64e6598a2a8b2a39500809668f4022177ab5f71077" name="gga3f2878f0880765b0e59174d64e6598a2a8b2a39500809668f4022177ab5f71077"></a>OS_THREAD_SPECIFIC_8&#160;</td><td class="fielddoc"></td></tr>
<tr><td class="fieldname"><a id="gga3f2878f0880765b0e59174d64e6598a2aeb09f7be052cd7c9751246a6a83be0ea" name="gga3f2878f0880765b0e59174d64e6598a2aeb09f7be052cd7c9751246a6a83be0ea"></a>OS_THREAD_SPECIFIC_9&#160;</td><td class="fielddoc"></td></tr>
<tr><td class="fieldname"><a id="gga3f2878f0880765b0e59174d64e6598a2a745871c6a903996e07e74844a50bb178" name="gga3f2878f0880765b0e59174d64e6598a2a745871c6a903996e07e74844a50bb178"></a>OS_THREAD_SPECIFIC_10&#160;</td><td class="fielddoc"></td></tr>
<tr><td class="fieldname"><a id="gga3f2878f0880765b0e59174d64e6598a2a6e4fa62432567eaa5ff65b4fdd766882" name="gga3f2878f0880765b0e59174d64e6598a2a6e4fa62432567eaa5ff65b4fdd766882"></a>OS_THREAD_SPECIFIC_11&#160;</td><td class="fielddoc"></td></tr>
<tr><td class="fieldname"><a id="gga3f2878f0880765b0e59174d64e6598a2af1751f945ddebd495accd5a36591c573" name="gga3f2878f0880765b0e59174d64e6598a2af1751f945ddebd495accd5a36591c573"></a>OS_THREAD_SPECIFIC_12&#160;</td><td class="fielddoc"></td></tr>
<tr><td class="fieldname"><a id="gga3f2878f0880765b0e59174d64e6598a2a86173585e23d134596011f9a8174ef57" name="gga3f2878f0880765b0e59174d64e6598a2a86173585e23d134596011f9a8174ef57"></a>OS_THREAD_SPECIFIC_13&#160;</td><td class="fielddoc"></td></tr>
<tr><td class="fieldname"><a id="gga3f2878f0880765b0e59174d64e6598a2ae32bd9917e690dad7b9b7adfb70d17e6" name="gga3f2878f0880765b0e59174d64e6598a2ae32bd9917e690dad7b9b7adfb70d17e6"></a>OS_THREAD_SPECIFIC_WUT_RESERVED_0&#160;</td><td class="fielddoc"><p>These are reserved to wut for internal use. </p>
</td></tr>
<tr><td class="fieldname"><a id="gga3f2878f0880765b0e59174d64e6598a2ad52801cec9de7320bf3e8d8b38e7c886" name="gga3f2878f0880765b0e59174d64e6598a2ad52801cec9de7320bf3e8d8b38e7c886"></a>OS_THREAD_SPECIFIC_WUT_RESERVED_1&#160;</td><td class="fielddoc"></td></tr>
</table>
<p class="definition">Definition at line <a class="el" href="thread_8h_source.html#l00060">60</a> of file <a class="el" href="thread_8h_source.html">thread.h</a>.</p>
</div>
</div>
<a id="ga2051f6f880e722ee1c16d7a9b33fc285" name="ga2051f6f880e722ee1c16d7a9b33fc285"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga2051f6f880e722ee1c16d7a9b33fc285">&#9670;&#160;</a></span>OS_THREAD_STATE</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="group__coreinit__thread.html#ga2051f6f880e722ee1c16d7a9b33fc285">OS_THREAD_STATE</a></td>
</tr>
</table>
</div><div class="memdoc">
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="gga2051f6f880e722ee1c16d7a9b33fc285a13a1674553ea65a706ae780c20ae84bc" name="gga2051f6f880e722ee1c16d7a9b33fc285a13a1674553ea65a706ae780c20ae84bc"></a>OS_THREAD_STATE_NONE&#160;</td><td class="fielddoc"></td></tr>
<tr><td class="fieldname"><a id="gga2051f6f880e722ee1c16d7a9b33fc285aba95f54efb4f40634409efe14ac7aa1f" name="gga2051f6f880e722ee1c16d7a9b33fc285aba95f54efb4f40634409efe14ac7aa1f"></a>OS_THREAD_STATE_READY&#160;</td><td class="fielddoc"><p>Thread is ready to run. </p>
</td></tr>
<tr><td class="fieldname"><a id="gga2051f6f880e722ee1c16d7a9b33fc285ad2b8ca7ea948310fdce859f2a7fd265b" name="gga2051f6f880e722ee1c16d7a9b33fc285ad2b8ca7ea948310fdce859f2a7fd265b"></a>OS_THREAD_STATE_RUNNING&#160;</td><td class="fielddoc"><p>Thread is running. </p>
</td></tr>
<tr><td class="fieldname"><a id="gga2051f6f880e722ee1c16d7a9b33fc285a4318e1cf6017f194840a32dd1be1d57f" name="gga2051f6f880e722ee1c16d7a9b33fc285a4318e1cf6017f194840a32dd1be1d57f"></a>OS_THREAD_STATE_WAITING&#160;</td><td class="fielddoc"><p>Thread is waiting, i.e. on a mutex. </p>
</td></tr>
<tr><td class="fieldname"><a id="gga2051f6f880e722ee1c16d7a9b33fc285a1a499958e89f028b8c3d29f869f97517" name="gga2051f6f880e722ee1c16d7a9b33fc285a1a499958e89f028b8c3d29f869f97517"></a>OS_THREAD_STATE_MORIBUND&#160;</td><td class="fielddoc"><p>Thread is about to terminate. </p>
</td></tr>
</table>
<p class="definition">Definition at line <a class="el" href="thread_8h_source.html#l00082">82</a> of file <a class="el" href="thread_8h_source.html">thread.h</a>.</p>
</div>
</div>
<a id="gac1b924b5c296e435eae41f0bf395d02a" name="gac1b924b5c296e435eae41f0bf395d02a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gac1b924b5c296e435eae41f0bf395d02a">&#9670;&#160;</a></span>OS_THREAD_REQUEST</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="group__coreinit__thread.html#gac1b924b5c296e435eae41f0bf395d02a">OS_THREAD_REQUEST</a></td>
</tr>
</table>
</div><div class="memdoc">
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="ggac1b924b5c296e435eae41f0bf395d02aa46b42c24c445d69479b6a163ada1c3c0" name="ggac1b924b5c296e435eae41f0bf395d02aa46b42c24c445d69479b6a163ada1c3c0"></a>OS_THREAD_REQUEST_NONE&#160;</td><td class="fielddoc"></td></tr>
<tr><td class="fieldname"><a id="ggac1b924b5c296e435eae41f0bf395d02aa632959c993cef4fd2735051db6797329" name="ggac1b924b5c296e435eae41f0bf395d02aa632959c993cef4fd2735051db6797329"></a>OS_THREAD_REQUEST_SUSPEND&#160;</td><td class="fielddoc"></td></tr>
<tr><td class="fieldname"><a id="ggac1b924b5c296e435eae41f0bf395d02aab227c9a028b4fb3a9f71afc33995748a" name="ggac1b924b5c296e435eae41f0bf395d02aab227c9a028b4fb3a9f71afc33995748a"></a>OS_THREAD_REQUEST_CANCEL&#160;</td><td class="fielddoc"></td></tr>
</table>
<p class="definition">Definition at line <a class="el" href="thread_8h_source.html#l00099">99</a> of file <a class="el" href="thread_8h_source.html">thread.h</a>.</p>
</div>
</div>
<a id="ga93f63e1c4e8826006db8878c9a6d0519" name="ga93f63e1c4e8826006db8878c9a6d0519"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga93f63e1c4e8826006db8878c9a6d0519">&#9670;&#160;</a></span>OS_THREAD_ATTRIB</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="group__coreinit__thread.html#ga93f63e1c4e8826006db8878c9a6d0519">OS_THREAD_ATTRIB</a></td>
</tr>
</table>
</div><div class="memdoc">
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="gga93f63e1c4e8826006db8878c9a6d0519a3ea0c3a38f1342783fd2ddfa6a84a13d" name="gga93f63e1c4e8826006db8878c9a6d0519a3ea0c3a38f1342783fd2ddfa6a84a13d"></a>OS_THREAD_ATTRIB_AFFINITY_CPU0&#160;</td><td class="fielddoc"><p>Allow the thread to run on CPU0. </p>
</td></tr>
<tr><td class="fieldname"><a id="gga93f63e1c4e8826006db8878c9a6d0519adcea8a57b4636bc5a0c3e283ce83e0f7" name="gga93f63e1c4e8826006db8878c9a6d0519adcea8a57b4636bc5a0c3e283ce83e0f7"></a>OS_THREAD_ATTRIB_AFFINITY_CPU1&#160;</td><td class="fielddoc"><p>Allow the thread to run on CPU1. </p>
</td></tr>
<tr><td class="fieldname"><a id="gga93f63e1c4e8826006db8878c9a6d0519a1434f284dfb835aa2d0704cebf81345c" name="gga93f63e1c4e8826006db8878c9a6d0519a1434f284dfb835aa2d0704cebf81345c"></a>OS_THREAD_ATTRIB_AFFINITY_CPU2&#160;</td><td class="fielddoc"><p>Allow the thread to run on CPU2. </p>
</td></tr>
<tr><td class="fieldname"><a id="gga93f63e1c4e8826006db8878c9a6d0519abb854560be1fd9b10763999f08b3591b" name="gga93f63e1c4e8826006db8878c9a6d0519abb854560be1fd9b10763999f08b3591b"></a>OS_THREAD_ATTRIB_AFFINITY_ANY&#160;</td><td class="fielddoc"><p>Allow the thread to run any CPU. </p>
</td></tr>
<tr><td class="fieldname"><a id="gga93f63e1c4e8826006db8878c9a6d0519a643750f290d1a1327e4d6f83a385a923" name="gga93f63e1c4e8826006db8878c9a6d0519a643750f290d1a1327e4d6f83a385a923"></a>OS_THREAD_ATTRIB_DETACHED&#160;</td><td class="fielddoc"><p>Start the thread detached. </p>
</td></tr>
<tr><td class="fieldname"><a id="gga93f63e1c4e8826006db8878c9a6d0519a6b6ea70f704c863a0a37b03ffbffaa85" name="gga93f63e1c4e8826006db8878c9a6d0519a6b6ea70f704c863a0a37b03ffbffaa85"></a>OS_THREAD_ATTRIB_STACK_USAGE&#160;</td><td class="fielddoc"><p>Enables tracking of stack usage. </p>
</td></tr>
<tr><td class="fieldname"><a id="gga93f63e1c4e8826006db8878c9a6d0519ace8f6b543d38b19c674923af4e0cba06" name="gga93f63e1c4e8826006db8878c9a6d0519ace8f6b543d38b19c674923af4e0cba06"></a>OS_THREAD_ATTRIB_UNKNOWN&#160;</td><td class="fielddoc"></td></tr>
</table>
<p class="definition">Definition at line <a class="el" href="thread_8h_source.html#l00106">106</a> of file <a class="el" href="thread_8h_source.html">thread.h</a>.</p>
</div>
</div>
<a id="gae384e3d66353d806bd97e9d083dcb71c" name="gae384e3d66353d806bd97e9d083dcb71c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gae384e3d66353d806bd97e9d083dcb71c">&#9670;&#160;</a></span>OS_THREAD_TYPE</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="group__coreinit__thread.html#gae384e3d66353d806bd97e9d083dcb71c">OS_THREAD_TYPE</a></td>
</tr>
</table>
</div><div class="memdoc">
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="ggae384e3d66353d806bd97e9d083dcb71caf8483c47eb5947b9925be22d1e9d70c3" name="ggae384e3d66353d806bd97e9d083dcb71caf8483c47eb5947b9925be22d1e9d70c3"></a>OS_THREAD_TYPE_DRIVER&#160;</td><td class="fielddoc"></td></tr>
<tr><td class="fieldname"><a id="ggae384e3d66353d806bd97e9d083dcb71cae2f689990595562c636872dbcaf0771a" name="ggae384e3d66353d806bd97e9d083dcb71cae2f689990595562c636872dbcaf0771a"></a>OS_THREAD_TYPE_IO&#160;</td><td class="fielddoc"></td></tr>
<tr><td class="fieldname"><a id="ggae384e3d66353d806bd97e9d083dcb71ca1ec2b2e8a1e8ae1b929c110cb5149cba" name="ggae384e3d66353d806bd97e9d083dcb71ca1ec2b2e8a1e8ae1b929c110cb5149cba"></a>OS_THREAD_TYPE_APP&#160;</td><td class="fielddoc"></td></tr>
</table>
<p class="definition">Definition at line <a class="el" href="thread_8h_source.html#l00129">129</a> of file <a class="el" href="thread_8h_source.html">thread.h</a>.</p>
</div>
</div>
<h2 class="groupheader">Function Documentation</h2>
<a id="ga4dc00e8b9758c58fbdbb73350637f805" name="ga4dc00e8b9758c58fbdbb73350637f805"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga4dc00e8b9758c58fbdbb73350637f805">&#9670;&#160;</a></span>OSCancelThread()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void OSCancelThread </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__coreinit__thread.html#structOSThread">OSThread</a> *&#160;</td>
<td class="paramname"><em>thread</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Cancels a thread. </p>
<p>This sets the threads requestFlag to OS_THREAD_REQUEST_CANCEL, the thread will be terminated next time OSTestThreadCancel is called. </p>
</div>
</div>
<a id="ga0b90395dabd5e3077b274f8dd65fe5bb" name="ga0b90395dabd5e3077b274f8dd65fe5bb"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga0b90395dabd5e3077b274f8dd65fe5bb">&#9670;&#160;</a></span>OSCheckActiveThreads()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int32_t OSCheckActiveThreads </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns the count of active threads. </p>
</div>
</div>
<a id="ga2bfc1c71ab2551fa12c1dd26c8c9efce" name="ga2bfc1c71ab2551fa12c1dd26c8c9efce"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga2bfc1c71ab2551fa12c1dd26c8c9efce">&#9670;&#160;</a></span>OSCheckThreadStackUsage()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int32_t OSCheckThreadStackUsage </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__coreinit__thread.html#structOSThread">OSThread</a> *&#160;</td>
<td class="paramname"><em>thread</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Get the maximum amount of stack the thread has used. </p>
</div>
</div>
<a id="gaf3ca5305804fa4552529c5912c96ce2b" name="gaf3ca5305804fa4552529c5912c96ce2b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaf3ca5305804fa4552529c5912c96ce2b">&#9670;&#160;</a></span>OSClearThreadStackUsage()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void OSClearThreadStackUsage </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__coreinit__thread.html#structOSThread">OSThread</a> *&#160;</td>
<td class="paramname"><em>thread</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Disable tracking of thread stack usage. </p>
</div>
</div>
<a id="ga6aa2bd70bb3560ca3811aa0215971cf8" name="ga6aa2bd70bb3560ca3811aa0215971cf8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga6aa2bd70bb3560ca3811aa0215971cf8">&#9670;&#160;</a></span>OSContinueThread()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void OSContinueThread </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__coreinit__thread.html#structOSThread">OSThread</a> *&#160;</td>
<td class="paramname"><em>thread</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Clears a thread's suspend counter and resumes it. </p>
</div>
</div>
<a id="ga558f8aecea78aa6a81817c1d1fcbe8b1" name="ga558f8aecea78aa6a81817c1d1fcbe8b1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga558f8aecea78aa6a81817c1d1fcbe8b1">&#9670;&#160;</a></span>OSCreateThread()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="wut__types_8h.html#a975dbe9e4396bf9e0064ce01827fa372">BOOL</a> OSCreateThread </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__coreinit__thread.html#structOSThread">OSThread</a> *&#160;</td>
<td class="paramname"><em>thread</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group__coreinit__thread.html#gab5cdc96dcec643891f88be54830acae9">OSThreadEntryPointFn</a>&#160;</td>
<td class="paramname"><em>entry</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int32_t&#160;</td>
<td class="paramname"><em>argc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">char *&#160;</td>
<td class="paramname"><em>argv</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">void *&#160;</td>
<td class="paramname"><em>stack</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>stackSize</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int32_t&#160;</td>
<td class="paramname"><em>priority</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group__coreinit__thread.html#ga47c38b62e66b6163f6b080a35830897a">OSThreadAttributes</a>&#160;</td>
<td class="paramname"><em>attributes</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Create a new thread. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">thread</td><td>Thread to initialise. </td></tr>
<tr><td class="paramname">entry</td><td>Thread entry point. </td></tr>
<tr><td class="paramname">argc</td><td>argc argument passed to entry point. </td></tr>
<tr><td class="paramname">argv</td><td>argv argument passed to entry point. </td></tr>
<tr><td class="paramname">stack</td><td>Top of stack (highest address). </td></tr>
<tr><td class="paramname">stackSize</td><td>Size of stack. </td></tr>
<tr><td class="paramname">priority</td><td>Thread priority, 0 is highest priorty, 31 is lowest. </td></tr>
<tr><td class="paramname">attributes</td><td>Thread attributes, see OSThreadAttributes. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="ga5c8cbb581c038073ea97105cbc389e73" name="ga5c8cbb581c038073ea97105cbc389e73"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga5c8cbb581c038073ea97105cbc389e73">&#9670;&#160;</a></span>OSDetachThread()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void OSDetachThread </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__coreinit__thread.html#structOSThread">OSThread</a> *&#160;</td>
<td class="paramname"><em>thread</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Detach thread. </p>
</div>
</div>
<a id="ga481f2365b62f2ed1b7cda3d0bec91ff2" name="ga481f2365b62f2ed1b7cda3d0bec91ff2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga481f2365b62f2ed1b7cda3d0bec91ff2">&#9670;&#160;</a></span>OSExitThread()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void OSExitThread </td>
<td>(</td>
<td class="paramtype">int32_t&#160;</td>
<td class="paramname"><em>result</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Exit the current thread with a exit code. </p>
<p>This function is implicitly called when the thread entry point returns. </p>
</div>
</div>
<a id="ga541eec9e102156579ad86cc440d741b1" name="ga541eec9e102156579ad86cc440d741b1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga541eec9e102156579ad86cc440d741b1">&#9670;&#160;</a></span>OSGetActiveThreadLink()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void OSGetActiveThreadLink </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__coreinit__thread.html#structOSThread">OSThread</a> *&#160;</td>
<td class="paramname"><em>thread</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group__coreinit__threadq.html#structOSThreadLink">OSThreadLink</a> *&#160;</td>
<td class="paramname"><em>link</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Get the next and previous thread in the thread's active queue. </p>
</div>
</div>
<a id="ga0cc38507c16aef9a9651af7e58533b5c" name="ga0cc38507c16aef9a9651af7e58533b5c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga0cc38507c16aef9a9651af7e58533b5c">&#9670;&#160;</a></span>OSGetCurrentThread()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__coreinit__thread.html#structOSThread">OSThread</a> * OSGetCurrentThread </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Return pointer to <a class="el" href="group__coreinit__thread.html#structOSThread">OSThread</a> object for the current thread. </p>
</div>
</div>
<a id="ga98d82be4f3984b9a4888d64eb014791d" name="ga98d82be4f3984b9a4888d64eb014791d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga98d82be4f3984b9a4888d64eb014791d">&#9670;&#160;</a></span>OSGetDefaultThread()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__coreinit__thread.html#structOSThread">OSThread</a> * OSGetDefaultThread </td>
<td>(</td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>coreID</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns the default thread for a specific core. </p>
<p>Each core has 1 default thread created before the game boots. The default thread for core 1 calls the RPX entry point, the default threads for core 0 and 2 are suspended and can be used with OSRunThread. </p>
</div>
</div>
<a id="ga42e2be4ac798739e6b6e947099547921" name="ga42e2be4ac798739e6b6e947099547921"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga42e2be4ac798739e6b6e947099547921">&#9670;&#160;</a></span>OSGetStackPointer()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint32_t OSGetStackPointer </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Return current stack pointer, value of r1 register. </p>
</div>
</div>
<a id="ga62e2afe54836ced17ce04b005b9be728" name="ga62e2afe54836ced17ce04b005b9be728"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga62e2afe54836ced17ce04b005b9be728">&#9670;&#160;</a></span>OSGetThreadAffinity()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint32_t OSGetThreadAffinity </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__coreinit__thread.html#structOSThread">OSThread</a> *&#160;</td>
<td class="paramname"><em>thread</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Get a thread's affinity. </p>
</div>
</div>
<a id="ga191065f12ea5b0e1b2c02cf8671d9372" name="ga191065f12ea5b0e1b2c02cf8671d9372"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga191065f12ea5b0e1b2c02cf8671d9372">&#9670;&#160;</a></span>OSGetThreadName()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">const char * OSGetThreadName </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__coreinit__thread.html#structOSThread">OSThread</a> *&#160;</td>
<td class="paramname"><em>thread</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Get a thread's name. </p>
</div>
</div>
<a id="ga9e1c9d9b8de8927fb46276114a2f43ec" name="ga9e1c9d9b8de8927fb46276114a2f43ec"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga9e1c9d9b8de8927fb46276114a2f43ec">&#9670;&#160;</a></span>OSGetThreadPriority()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int32_t OSGetThreadPriority </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__coreinit__thread.html#structOSThread">OSThread</a> *&#160;</td>
<td class="paramname"><em>thread</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Get a thread's base priority. </p>
</div>
</div>
<a id="ga5316c67d3c32478cbb3cb6838f702c3d" name="ga5316c67d3c32478cbb3cb6838f702c3d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga5316c67d3c32478cbb3cb6838f702c3d">&#9670;&#160;</a></span>OSGetThreadSpecific()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void * OSGetThreadSpecific </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__coreinit__thread.html#ga3f2878f0880765b0e59174d64e6598a2">OSThreadSpecificID</a>&#160;</td>
<td class="paramname"><em>id</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Get a thread's specific value set by OSSetThreadSpecific. </p>
</div>
</div>
<a id="ga0074df288baf29c18a7c823c258ba353" name="ga0074df288baf29c18a7c823c258ba353"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga0074df288baf29c18a7c823c258ba353">&#9670;&#160;</a></span>OSIsThreadSuspended()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="wut__types_8h.html#a975dbe9e4396bf9e0064ce01827fa372">BOOL</a> OSIsThreadSuspended </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__coreinit__thread.html#structOSThread">OSThread</a> *&#160;</td>
<td class="paramname"><em>thread</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns TRUE if a thread is suspended. </p>
</div>
</div>
<a id="ga0bec4859c6c3575439660463ab58fc14" name="ga0bec4859c6c3575439660463ab58fc14"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga0bec4859c6c3575439660463ab58fc14">&#9670;&#160;</a></span>OSIsThreadTerminated()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="wut__types_8h.html#a975dbe9e4396bf9e0064ce01827fa372">BOOL</a> OSIsThreadTerminated </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__coreinit__thread.html#structOSThread">OSThread</a> *&#160;</td>
<td class="paramname"><em>thread</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns TRUE if a thread is terminated. </p>
</div>
</div>
<a id="gabadb986bf587ed067719230d0194e432" name="gabadb986bf587ed067719230d0194e432"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gabadb986bf587ed067719230d0194e432">&#9670;&#160;</a></span>OSJoinThread()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="wut__types_8h.html#a975dbe9e4396bf9e0064ce01827fa372">BOOL</a> OSJoinThread </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__coreinit__thread.html#structOSThread">OSThread</a> *&#160;</td>
<td class="paramname"><em>thread</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int *&#160;</td>
<td class="paramname"><em>threadResult</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Wait until thread is terminated. </p>
<p>If the target thread is detached, returns FALSE.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">thread</td><td>Thread to wait for </td></tr>
<tr><td class="paramname">threadResult</td><td>Pointer to store thread exit value in. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Returns TRUE if thread has terminated, FALSE if thread is detached. </dd></dl>
</div>
</div>
<a id="ga8e47bab6ad06370cbb0990d979e1729b" name="ga8e47bab6ad06370cbb0990d979e1729b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga8e47bab6ad06370cbb0990d979e1729b">&#9670;&#160;</a></span>OSResumeThread()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int32_t OSResumeThread </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__coreinit__thread.html#structOSThread">OSThread</a> *&#160;</td>
<td class="paramname"><em>thread</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Resumes a thread. </p>
<p>Decrements the thread's suspend counter, if the counter reaches 0 the thread is resumed.</p>
<dl class="section return"><dt>Returns</dt><dd>Returns the previous value of the suspend counter. </dd></dl>
</div>
</div>
<a id="gaa3241ca6d126d3b4dc4be94d9836f573" name="gaa3241ca6d126d3b4dc4be94d9836f573"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaa3241ca6d126d3b4dc4be94d9836f573">&#9670;&#160;</a></span>OSRunThread()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="wut__types_8h.html#a975dbe9e4396bf9e0064ce01827fa372">BOOL</a> OSRunThread </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__coreinit__thread.html#structOSThread">OSThread</a> *&#160;</td>
<td class="paramname"><em>thread</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group__coreinit__thread.html#gab5cdc96dcec643891f88be54830acae9">OSThreadEntryPointFn</a>&#160;</td>
<td class="paramname"><em>entry</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>argc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char **&#160;</td>
<td class="paramname"><em>argv</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Run a function on an already created thread. </p>
<p>Can only be used on idle threads. </p>
</div>
</div>
<a id="ga64b826e25d3352b17abf9a1e4243837e" name="ga64b826e25d3352b17abf9a1e4243837e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga64b826e25d3352b17abf9a1e4243837e">&#9670;&#160;</a></span>OSSetThreadAffinity()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="wut__types_8h.html#a975dbe9e4396bf9e0064ce01827fa372">BOOL</a> OSSetThreadAffinity </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__coreinit__thread.html#structOSThread">OSThread</a> *&#160;</td>
<td class="paramname"><em>thread</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>affinity</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Set a thread's affinity. </p>
</div>
</div>
<a id="ga5ab3e3f830d155273978285c2ee0670f" name="ga5ab3e3f830d155273978285c2ee0670f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga5ab3e3f830d155273978285c2ee0670f">&#9670;&#160;</a></span>OSSetThreadCancelState()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="wut__types_8h.html#a975dbe9e4396bf9e0064ce01827fa372">BOOL</a> OSSetThreadCancelState </td>
<td>(</td>
<td class="paramtype"><a class="el" href="wut__types_8h.html#a975dbe9e4396bf9e0064ce01827fa372">BOOL</a>&#160;</td>
<td class="paramname"><em>state</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Set a thread's cancellation state. </p>
<p>If the state is TRUE then the thread can be suspended or cancelled when OSTestThreadCancel is called. </p>
</div>
</div>
<a id="gaddb66bd8a4fcdd50eec34e0eaabaa4ea" name="gaddb66bd8a4fcdd50eec34e0eaabaa4ea"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaddb66bd8a4fcdd50eec34e0eaabaa4ea">&#9670;&#160;</a></span>OSSetThreadCleanupCallback()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__coreinit__thread.html#ga729a75fba87a2740d7af69aa8978ea5a">OSThreadCleanupCallbackFn</a> OSSetThreadCleanupCallback </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__coreinit__thread.html#structOSThread">OSThread</a> *&#160;</td>
<td class="paramname"><em>thread</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group__coreinit__thread.html#ga729a75fba87a2740d7af69aa8978ea5a">OSThreadCleanupCallbackFn</a>&#160;</td>
<td class="paramname"><em>callback</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Set the callback to be called just before a thread is terminated. </p>
</div>
</div>
<a id="gab5f71458522cd623a26fda4bc7a08706" name="gab5f71458522cd623a26fda4bc7a08706"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gab5f71458522cd623a26fda4bc7a08706">&#9670;&#160;</a></span>OSSetThreadDeallocator()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__coreinit__thread.html#gac8fa3d74d8d161709d327e38eb426422">OSThreadDeallocatorFn</a> OSSetThreadDeallocator </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__coreinit__thread.html#structOSThread">OSThread</a> *&#160;</td>
<td class="paramname"><em>thread</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group__coreinit__thread.html#gac8fa3d74d8d161709d327e38eb426422">OSThreadDeallocatorFn</a>&#160;</td>
<td class="paramname"><em>deallocator</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Set the callback to be called just after a thread is terminated. </p>
</div>
</div>
<a id="gaf73770f5c74390d22caa7e993e667984" name="gaf73770f5c74390d22caa7e993e667984"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaf73770f5c74390d22caa7e993e667984">&#9670;&#160;</a></span>OSSetThreadName()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void OSSetThreadName </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__coreinit__thread.html#structOSThread">OSThread</a> *&#160;</td>
<td class="paramname"><em>thread</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char *&#160;</td>
<td class="paramname"><em>name</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Set a thread's name. </p>
</div>
</div>
<a id="gaf949db9990798fe799eef6f10400febc" name="gaf949db9990798fe799eef6f10400febc"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaf949db9990798fe799eef6f10400febc">&#9670;&#160;</a></span>OSSetThreadPriority()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="wut__types_8h.html#a975dbe9e4396bf9e0064ce01827fa372">BOOL</a> OSSetThreadPriority </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__coreinit__thread.html#structOSThread">OSThread</a> *&#160;</td>
<td class="paramname"><em>thread</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int32_t&#160;</td>
<td class="paramname"><em>priority</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Set a thread's priority. </p>
</div>
</div>
<a id="gabcdf5e618af28ab7d0eb1dcc9dfc9d36" name="gabcdf5e618af28ab7d0eb1dcc9dfc9d36"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gabcdf5e618af28ab7d0eb1dcc9dfc9d36">&#9670;&#160;</a></span>OSSetThreadRunQuantum()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="wut__types_8h.html#a975dbe9e4396bf9e0064ce01827fa372">BOOL</a> OSSetThreadRunQuantum </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__coreinit__thread.html#structOSThread">OSThread</a> *&#160;</td>
<td class="paramname"><em>thread</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>quantum</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Set a thread's run quantum. </p>
<p>This is the maximum amount of time the thread can run for before being forced to yield. </p>
</div>
</div>
<a id="gadcd39949af391000c17a9bb4e093520b" name="gadcd39949af391000c17a9bb4e093520b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gadcd39949af391000c17a9bb4e093520b">&#9670;&#160;</a></span>OSSetThreadSpecific()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void OSSetThreadSpecific </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__coreinit__thread.html#ga3f2878f0880765b0e59174d64e6598a2">OSThreadSpecificID</a>&#160;</td>
<td class="paramname"><em>id</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">void *&#160;</td>
<td class="paramname"><em>value</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Set a thread specific value. </p>
<p>Can be read with OSGetThreadSpecific. </p>
</div>
</div>
<a id="ga3be0f7ef0eed586ef8bf5d57f3cd1dfa" name="ga3be0f7ef0eed586ef8bf5d57f3cd1dfa"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga3be0f7ef0eed586ef8bf5d57f3cd1dfa">&#9670;&#160;</a></span>OSSetThreadStackUsage()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="wut__types_8h.html#a975dbe9e4396bf9e0064ce01827fa372">BOOL</a> OSSetThreadStackUsage </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__coreinit__thread.html#structOSThread">OSThread</a> *&#160;</td>
<td class="paramname"><em>thread</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Set thread stack usage tracking. </p>
</div>
</div>
<a id="ga40601ddddabf312483c9a3da0a924fa6" name="ga40601ddddabf312483c9a3da0a924fa6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga40601ddddabf312483c9a3da0a924fa6">&#9670;&#160;</a></span>OSSleepThread()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void OSSleepThread </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__coreinit__threadq.html#structOSThreadQueue">OSThreadQueue</a> *&#160;</td>
<td class="paramname"><em>queue</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Sleep the current thread and add it to a thread queue. </p>
<p>Will sleep until the thread queue is woken with OSWakeupThread. </p>
</div>
</div>
<a id="gaec240f68873bb19c753cfdd346264c17" name="gaec240f68873bb19c753cfdd346264c17"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaec240f68873bb19c753cfdd346264c17">&#9670;&#160;</a></span>OSSleepTicks()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void OSSleepTicks </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__coreinit__time.html#ga4d4f771188f6c29e758ed6b3b8347b4d">OSTime</a>&#160;</td>
<td class="paramname"><em>ticks</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Sleep the current thread for a period of time. </p>
</div>
</div>
<a id="ga97d4800cbe08b3e3cd68906a197bf587" name="ga97d4800cbe08b3e3cd68906a197bf587"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga97d4800cbe08b3e3cd68906a197bf587">&#9670;&#160;</a></span>OSSuspendThread()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint32_t OSSuspendThread </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__coreinit__thread.html#structOSThread">OSThread</a> *&#160;</td>
<td class="paramname"><em>thread</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Suspend a thread. </p>
<p>Increases a thread's suspend counter, if the counter is &gt;0 then the thread is suspended.</p>
<dl class="section return"><dt>Returns</dt><dd>Returns the thread's previous suspend counter value </dd></dl>
</div>
</div>
<a id="ga02fe8497fed97926886f441c4369f47f" name="ga02fe8497fed97926886f441c4369f47f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga02fe8497fed97926886f441c4369f47f">&#9670;&#160;</a></span>__OSSuspendThreadNolock()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void __OSSuspendThreadNolock </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__coreinit__thread.html#structOSThread">OSThread</a> *&#160;</td>
<td class="paramname"><em>thread</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="ga3d5f9fe631c3b30a30ee84a2d32a617c" name="ga3d5f9fe631c3b30a30ee84a2d32a617c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga3d5f9fe631c3b30a30ee84a2d32a617c">&#9670;&#160;</a></span>OSTestThreadCancel()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void OSTestThreadCancel </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Check to see if the current thread should be cancelled or suspended. </p>
<p>This is implicitly called in:</p><ul>
<li>OSLockMutex</li>
<li>OSTryLockMutex</li>
<li>OSUnlockMutex</li>
<li>OSAcquireSpinLock</li>
<li>OSTryAcquireSpinLock</li>
<li>OSTryAcquireSpinLockWithTimeout</li>
<li>OSReleaseSpinLock</li>
<li>OSCancelThread </li>
</ul>
</div>
</div>
<a id="ga233d3d678de8dcccceb18424e24950b8" name="ga233d3d678de8dcccceb18424e24950b8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga233d3d678de8dcccceb18424e24950b8">&#9670;&#160;</a></span>OSWakeupThread()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void OSWakeupThread </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__coreinit__threadq.html#structOSThreadQueue">OSThreadQueue</a> *&#160;</td>
<td class="paramname"><em>queue</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Wake up all threads in queue. </p>
<p>Clears the thread queue. </p>
</div>
</div>
<a id="gaabc089f75f232061a8ba1c2f4d3a9169" name="gaabc089f75f232061a8ba1c2f4d3a9169"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaabc089f75f232061a8ba1c2f4d3a9169">&#9670;&#160;</a></span>OSYieldThread()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void OSYieldThread </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Yield execution to waiting threads with same priority. </p>
<p>This will never switch to a thread with a lower priority than the current thread. </p>
</div>
</div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.8
</small></address>
</body>
</html>