wut/group__coreinit__alarms.html
2020-03-26 16:49:18 +11:00

772 lines
40 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">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.17"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>wut: Alarms</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 style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">wut
&#160;<span id="projectnumber">1.0.0-beta9</span>
</div>
<div id="projectbrief">Wii U Toolchain</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.17 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @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:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(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">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</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="#func-members">Functions</a> </div>
<div class="headertitle">
<div class="title">Alarms<div class="ingroups"><a class="el" href="group__coreinit.html">coreinit</a></div></div> </div>
</div><!--header-->
<div class="contents">
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
Data Structures</h2></td></tr>
<tr class="memitem:structOSAlarmQueue"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__coreinit__alarms.html#structOSAlarmQueue">OSAlarmQueue</a></td></tr>
<tr class="separator:structOSAlarmQueue"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:structOSAlarmLink"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__coreinit__alarms.html#structOSAlarmLink">OSAlarmLink</a></td></tr>
<tr class="separator:structOSAlarmLink"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:structOSAlarm"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__coreinit__alarms.html#structOSAlarm">OSAlarm</a></td></tr>
<tr class="separator:structOSAlarm"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
Macros</h2></td></tr>
<tr class="memitem:ga3e72b0eb6fc59257bebc8d017d162e7c"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__coreinit__alarms.html#ga3e72b0eb6fc59257bebc8d017d162e7c">OS_ALARM_QUEUE_TAG</a>&#160;&#160;&#160;0x614C6D51u</td></tr>
<tr class="separator:ga3e72b0eb6fc59257bebc8d017d162e7c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga1510961a9ef9784d00043a8787750020"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__coreinit__alarms.html#ga1510961a9ef9784d00043a8787750020">OS_ALARM_TAG</a>&#160;&#160;&#160;0x614C724Du</td></tr>
<tr class="separator:ga1510961a9ef9784d00043a8787750020"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
Typedefs</h2></td></tr>
<tr class="memitem:gabe3fe2259612e01057e5c7b71ac1b51b"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="group__coreinit__alarms.html#structOSAlarm">OSAlarm</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__coreinit__alarms.html#gabe3fe2259612e01057e5c7b71ac1b51b">OSAlarm</a></td></tr>
<tr class="separator:gabe3fe2259612e01057e5c7b71ac1b51b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga8d028dafb8787ca81f686458aa35a4b6"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="group__coreinit__alarms.html#structOSAlarmLink">OSAlarmLink</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__coreinit__alarms.html#ga8d028dafb8787ca81f686458aa35a4b6">OSAlarmLink</a></td></tr>
<tr class="separator:ga8d028dafb8787ca81f686458aa35a4b6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga2fda9bac83e5e790e234d877e9a7e5aa"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="group__coreinit__alarms.html#structOSAlarmQueue">OSAlarmQueue</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__coreinit__alarms.html#ga2fda9bac83e5e790e234d877e9a7e5aa">OSAlarmQueue</a></td></tr>
<tr class="separator:ga2fda9bac83e5e790e234d877e9a7e5aa"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gae3b9b1db3508671a41015800fae35b8c"><td class="memItemLeft" align="right" valign="top">typedef void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__coreinit__alarms.html#gae3b9b1db3508671a41015800fae35b8c">OSAlarmCallback</a>) (<a class="el" href="group__coreinit__alarms.html#structOSAlarm">OSAlarm</a> *, <a class="el" href="group__coreinit__context.html#ga924296baf430a531adb5135a5cd54207">OSContext</a> *)</td></tr>
<tr class="separator:gae3b9b1db3508671a41015800fae35b8c"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:gaf2d82c5e86eefb3acf43c20cee0c2818"><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__alarms.html#gaf2d82c5e86eefb3acf43c20cee0c2818">OSCancelAlarm</a> (<a class="el" href="group__coreinit__alarms.html#structOSAlarm">OSAlarm</a> *alarm)</td></tr>
<tr class="memdesc:gaf2d82c5e86eefb3acf43c20cee0c2818"><td class="mdescLeft">&#160;</td><td class="mdescRight">Cancel an alarm. <a href="group__coreinit__alarms.html#gaf2d82c5e86eefb3acf43c20cee0c2818">More...</a><br /></td></tr>
<tr class="separator:gaf2d82c5e86eefb3acf43c20cee0c2818"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga5720fedb272532af0980a8d5c3caea40"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__coreinit__alarms.html#ga5720fedb272532af0980a8d5c3caea40">OSCancelAlarms</a> (uint32_t group)</td></tr>
<tr class="memdesc:ga5720fedb272532af0980a8d5c3caea40"><td class="mdescLeft">&#160;</td><td class="mdescRight">Cancel all alarms which have a matching tag set by OSSetAlarmTag. <a href="group__coreinit__alarms.html#ga5720fedb272532af0980a8d5c3caea40">More...</a><br /></td></tr>
<tr class="separator:ga5720fedb272532af0980a8d5c3caea40"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga5a664886e2a2735e954d8d82f5dfdcc8"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__coreinit__alarms.html#ga5a664886e2a2735e954d8d82f5dfdcc8">OSCreateAlarm</a> (<a class="el" href="group__coreinit__alarms.html#structOSAlarm">OSAlarm</a> *alarm)</td></tr>
<tr class="memdesc:ga5a664886e2a2735e954d8d82f5dfdcc8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialise an alarm structure. <a href="group__coreinit__alarms.html#ga5a664886e2a2735e954d8d82f5dfdcc8">More...</a><br /></td></tr>
<tr class="separator:ga5a664886e2a2735e954d8d82f5dfdcc8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga3a30762bb4654675399f0ac3de1144e7"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__coreinit__alarms.html#ga3a30762bb4654675399f0ac3de1144e7">OSCreateAlarmEx</a> (<a class="el" href="group__coreinit__alarms.html#structOSAlarm">OSAlarm</a> *alarm, const char *name)</td></tr>
<tr class="memdesc:ga3a30762bb4654675399f0ac3de1144e7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialise an alarm structure with a name. <a href="group__coreinit__alarms.html#ga3a30762bb4654675399f0ac3de1144e7">More...</a><br /></td></tr>
<tr class="separator:ga3a30762bb4654675399f0ac3de1144e7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga7ef9512e147f3636433f81312b516180"><td class="memItemLeft" align="right" valign="top">void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__coreinit__alarms.html#ga7ef9512e147f3636433f81312b516180">OSGetAlarmUserData</a> (<a class="el" href="group__coreinit__alarms.html#structOSAlarm">OSAlarm</a> *alarm)</td></tr>
<tr class="memdesc:ga7ef9512e147f3636433f81312b516180"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return user data set by OSSetAlarmUserData. <a href="group__coreinit__alarms.html#ga7ef9512e147f3636433f81312b516180">More...</a><br /></td></tr>
<tr class="separator:ga7ef9512e147f3636433f81312b516180"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac10998d540b1f79f2a00e08e029e3a22"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__coreinit__alarms.html#gac10998d540b1f79f2a00e08e029e3a22">OSInitAlarmQueue</a> (<a class="el" href="group__coreinit__alarms.html#structOSAlarmQueue">OSAlarmQueue</a> *queue)</td></tr>
<tr class="memdesc:gac10998d540b1f79f2a00e08e029e3a22"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialise an alarm queue structure. <a href="group__coreinit__alarms.html#gac10998d540b1f79f2a00e08e029e3a22">More...</a><br /></td></tr>
<tr class="separator:gac10998d540b1f79f2a00e08e029e3a22"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga3697277777b6cb3e3037cf420ebc3870"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__coreinit__alarms.html#ga3697277777b6cb3e3037cf420ebc3870">OSInitAlarmQueueEx</a> (<a class="el" href="group__coreinit__alarms.html#structOSAlarmQueue">OSAlarmQueue</a> *queue, const char *name)</td></tr>
<tr class="memdesc:ga3697277777b6cb3e3037cf420ebc3870"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialise an alarm queue structure with a name. <a href="group__coreinit__alarms.html#ga3697277777b6cb3e3037cf420ebc3870">More...</a><br /></td></tr>
<tr class="separator:ga3697277777b6cb3e3037cf420ebc3870"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga4145b4d9637ede72450ee18cf98cd8a4"><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__alarms.html#ga4145b4d9637ede72450ee18cf98cd8a4">OSSetAlarm</a> (<a class="el" href="group__coreinit__alarms.html#structOSAlarm">OSAlarm</a> *alarm, <a class="el" href="group__coreinit__time.html#ga4d4f771188f6c29e758ed6b3b8347b4d">OSTime</a> time, <a class="el" href="group__coreinit__alarms.html#gae3b9b1db3508671a41015800fae35b8c">OSAlarmCallback</a> callback)</td></tr>
<tr class="memdesc:ga4145b4d9637ede72450ee18cf98cd8a4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set a one shot alarm to perform a callback after a set amount of time. <a href="group__coreinit__alarms.html#ga4145b4d9637ede72450ee18cf98cd8a4">More...</a><br /></td></tr>
<tr class="separator:ga4145b4d9637ede72450ee18cf98cd8a4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga185b2ba5f2148dd78cac83c459d3568f"><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__alarms.html#ga185b2ba5f2148dd78cac83c459d3568f">OSSetPeriodicAlarm</a> (<a class="el" href="group__coreinit__alarms.html#structOSAlarm">OSAlarm</a> *alarm, <a class="el" href="group__coreinit__time.html#ga4d4f771188f6c29e758ed6b3b8347b4d">OSTime</a> start, <a class="el" href="group__coreinit__time.html#ga4d4f771188f6c29e758ed6b3b8347b4d">OSTime</a> interval, <a class="el" href="group__coreinit__alarms.html#gae3b9b1db3508671a41015800fae35b8c">OSAlarmCallback</a> callback)</td></tr>
<tr class="memdesc:ga185b2ba5f2148dd78cac83c459d3568f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set a repeated alarm to execute a callback every interval from start. <a href="group__coreinit__alarms.html#ga185b2ba5f2148dd78cac83c459d3568f">More...</a><br /></td></tr>
<tr class="separator:ga185b2ba5f2148dd78cac83c459d3568f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga411a482a63988aca30bf4a0cb354e350"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__coreinit__alarms.html#ga411a482a63988aca30bf4a0cb354e350">OSSetAlarmTag</a> (<a class="el" href="group__coreinit__alarms.html#structOSAlarm">OSAlarm</a> *alarm, uint32_t group)</td></tr>
<tr class="memdesc:ga411a482a63988aca30bf4a0cb354e350"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set an alarm tag which is used in OSCancelAlarms for bulk cancellation. <a href="group__coreinit__alarms.html#ga411a482a63988aca30bf4a0cb354e350">More...</a><br /></td></tr>
<tr class="separator:ga411a482a63988aca30bf4a0cb354e350"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaaf24ef65a362b6ff62b9cc96f3bbe458"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__coreinit__alarms.html#gaaf24ef65a362b6ff62b9cc96f3bbe458">OSSetAlarmUserData</a> (<a class="el" href="group__coreinit__alarms.html#structOSAlarm">OSAlarm</a> *alarm, void *data)</td></tr>
<tr class="memdesc:gaaf24ef65a362b6ff62b9cc96f3bbe458"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set alarm user data which is returned by OSGetAlarmUserData. <a href="group__coreinit__alarms.html#gaaf24ef65a362b6ff62b9cc96f3bbe458">More...</a><br /></td></tr>
<tr class="separator:gaaf24ef65a362b6ff62b9cc96f3bbe458"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gad84aa4992e422bf52deb596c1e77c6b8"><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__alarms.html#gad84aa4992e422bf52deb596c1e77c6b8">OSWaitAlarm</a> (<a class="el" href="group__coreinit__alarms.html#structOSAlarm">OSAlarm</a> *alarm)</td></tr>
<tr class="memdesc:gad84aa4992e422bf52deb596c1e77c6b8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sleep the current thread until the alarm has been triggered or cancelled. <a href="group__coreinit__alarms.html#gad84aa4992e422bf52deb596c1e77c6b8">More...</a><br /></td></tr>
<tr class="separator:gad84aa4992e422bf52deb596c1e77c6b8"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<p>The alarm family of functions are used for creating alarms which call a callback or wake up waiting threads after a period of time.</p>
<p>Alarms can be one shot alarms which trigger once after a period of time, or periodic which trigger at regular intervals until they are cancelled. </p>
<hr/><h2 class="groupheader">Data Structure Documentation</h2>
<a name="structOSAlarmQueue" id="structOSAlarmQueue"></a>
<h2 class="memtitle"><span class="permalink"><a href="#structOSAlarmQueue">&#9670;&nbsp;</a></span>OSAlarmQueue</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">struct OSAlarmQueue</td>
</tr>
</table>
</div><div class="memdoc">
<div class="textblock">
<p class="definition">Definition at line <a class="el" href="alarm_8h_source.html#l00032">32</a> of file <a class="el" href="alarm_8h_source.html">alarm.h</a>.</p>
</div><table class="fieldtable">
<tr><th colspan="3">Data Fields</th></tr>
<tr><td class="fieldtype">
<a id="a1c50fcd1195659821729f52af8f3bb7d"></a>uint32_t</td>
<td class="fieldname">
tag</td>
<td class="fielddoc">
Should always be set to the value OS_ALARM_QUEUE_TAG. </td></tr>
<tr><td class="fieldtype">
<a id="a8f8f80d37794cde9472343e4487ba3eb"></a>const char *</td>
<td class="fieldname">
name</td>
<td class="fielddoc">
Name set by OSInitAlarmQueueEx. </td></tr>
<tr><td class="fieldtype">
<a id="a419c428ab51c6fbee4323287d2d9b3a8"></a><a class="el" href="group__coreinit__threadq.html#structOSThreadQueue">OSThreadQueue</a></td>
<td class="fieldname">
threadQueue</td>
<td class="fielddoc">
</td></tr>
<tr><td class="fieldtype">
<a id="a76fb1f6882f07151c599433897f8177c"></a><a class="el" href="group__coreinit__alarms.html#structOSAlarm">OSAlarm</a> *</td>
<td class="fieldname">
head</td>
<td class="fielddoc">
</td></tr>
<tr><td class="fieldtype">
<a id="a2a57b9fc23d9bfbe4c6f7af173399ff5"></a><a class="el" href="group__coreinit__alarms.html#structOSAlarm">OSAlarm</a> *</td>
<td class="fieldname">
tail</td>
<td class="fielddoc">
</td></tr>
</table>
</div>
</div>
<a name="structOSAlarmLink" id="structOSAlarmLink"></a>
<h2 class="memtitle"><span class="permalink"><a href="#structOSAlarmLink">&#9670;&nbsp;</a></span>OSAlarmLink</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">struct OSAlarmLink</td>
</tr>
</table>
</div><div class="memdoc">
<div class="textblock">
<p class="definition">Definition at line <a class="el" href="alarm_8h_source.html#l00052">52</a> of file <a class="el" href="alarm_8h_source.html">alarm.h</a>.</p>
</div><table class="fieldtable">
<tr><th colspan="3">Data Fields</th></tr>
<tr><td class="fieldtype">
<a id="a8c6e4375dd265274be8215fa61ecae36"></a><a class="el" href="group__coreinit__alarms.html#structOSAlarm">OSAlarm</a> *</td>
<td class="fieldname">
prev</td>
<td class="fielddoc">
</td></tr>
<tr><td class="fieldtype">
<a id="a4153db103df18171b1c68e5a0ec30824"></a><a class="el" href="group__coreinit__alarms.html#structOSAlarm">OSAlarm</a> *</td>
<td class="fieldname">
next</td>
<td class="fielddoc">
</td></tr>
</table>
</div>
</div>
<a name="structOSAlarm" id="structOSAlarm"></a>
<h2 class="memtitle"><span class="permalink"><a href="#structOSAlarm">&#9670;&nbsp;</a></span>OSAlarm</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">struct OSAlarm</td>
</tr>
</table>
</div><div class="memdoc">
<div class="textblock">
<p class="definition">Definition at line <a class="el" href="alarm_8h_source.html#l00062">62</a> of file <a class="el" href="alarm_8h_source.html">alarm.h</a>.</p>
</div><table class="fieldtable">
<tr><th colspan="3">Data Fields</th></tr>
<tr><td class="fieldtype">
<a id="a1c50fcd1195659821729f52af8f3bb7d"></a>uint32_t</td>
<td class="fieldname">
tag</td>
<td class="fielddoc">
Should always be set to the value OS_ALARM_TAG. </td></tr>
<tr><td class="fieldtype">
<a id="a8f8f80d37794cde9472343e4487ba3eb"></a>const char *</td>
<td class="fieldname">
name</td>
<td class="fielddoc">
Name set from OSCreateAlarmEx. </td></tr>
<tr><td class="fieldtype">
<a id="a7501d0e87468f1eeb436de26e5924e99"></a><a class="el" href="group__coreinit__alarms.html#gae3b9b1db3508671a41015800fae35b8c">OSAlarmCallback</a></td>
<td class="fieldname">
callback</td>
<td class="fielddoc">
The callback to execute once the alarm is triggered. </td></tr>
<tr><td class="fieldtype">
<a id="a0d20c78ce80e301ed514bd4b4dec9ec0"></a>uint32_t</td>
<td class="fieldname">
group</td>
<td class="fielddoc">
Used with OSCancelAlarms for bulk cancellation of alarms. </td></tr>
<tr><td class="fieldtype">
<a id="a190eeb5b754b49ac842c452668043052"></a><a class="el" href="group__coreinit__time.html#ga4d4f771188f6c29e758ed6b3b8347b4d">OSTime</a></td>
<td class="fieldname">
nextFire</td>
<td class="fielddoc">
The time when the alarm will next be triggered. </td></tr>
<tr><td class="fieldtype">
<a id="a394e95a3ba6feaf90390cf136d69a6a1"></a><a class="el" href="group__coreinit__alarms.html#structOSAlarmLink">OSAlarmLink</a></td>
<td class="fieldname">
link</td>
<td class="fielddoc">
Link used for when this <a class="el" href="group__coreinit__alarms.html#structOSAlarm">OSAlarm</a> object is inside an <a class="el" href="group__coreinit__alarms.html#structOSAlarmQueue">OSAlarmQueue</a>. </td></tr>
<tr><td class="fieldtype">
<a id="a52c650ff8028e52e5e24e5e265fb854d"></a><a class="el" href="group__coreinit__time.html#ga4d4f771188f6c29e758ed6b3b8347b4d">OSTime</a></td>
<td class="fieldname">
period</td>
<td class="fielddoc">
The period between alarm triggers, this is only set for periodic alarms. </td></tr>
<tr><td class="fieldtype">
<a id="a206af50e853c293ba5cc104765aea702"></a><a class="el" href="group__coreinit__time.html#ga4d4f771188f6c29e758ed6b3b8347b4d">OSTime</a></td>
<td class="fieldname">
start</td>
<td class="fielddoc">
The time the alarm was started. </td></tr>
<tr><td class="fieldtype">
<a id="a2e294dd14122c554baa0665072b4ca7a"></a>void *</td>
<td class="fieldname">
userData</td>
<td class="fielddoc">
User data set with OSSetAlarmUserData and retrieved with OSGetAlarmUserData. </td></tr>
<tr><td class="fieldtype">
<a id="a1b0c7bd4d79798ef4e0ce23894c9aeb2"></a>uint32_t</td>
<td class="fieldname">
state</td>
<td class="fielddoc">
The current state of the alarm, internal values. </td></tr>
<tr><td class="fieldtype">
<a id="a419c428ab51c6fbee4323287d2d9b3a8"></a><a class="el" href="group__coreinit__threadq.html#structOSThreadQueue">OSThreadQueue</a></td>
<td class="fieldname">
threadQueue</td>
<td class="fielddoc">
Queue of threads currently waiting for the alarm to trigger with OSWaitAlarm. </td></tr>
<tr><td class="fieldtype">
<a id="a9791c7d04c2ff00663a6f3d77dc33142"></a><a class="el" href="group__coreinit__alarms.html#structOSAlarmQueue">OSAlarmQueue</a> *</td>
<td class="fieldname">
alarmQueue</td>
<td class="fielddoc">
The queue that this alarm is currently in. </td></tr>
<tr><td class="fieldtype">
<a id="a609d437ccc99bf081949d875f543cba1"></a><a class="el" href="group__coreinit__context.html#ga924296baf430a531adb5135a5cd54207">OSContext</a> *</td>
<td class="fieldname">
context</td>
<td class="fielddoc">
The context the alarm was triggered on. </td></tr>
</table>
</div>
</div>
<h2 class="groupheader">Macro Definition Documentation</h2>
<a id="ga3e72b0eb6fc59257bebc8d017d162e7c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga3e72b0eb6fc59257bebc8d017d162e7c">&#9670;&nbsp;</a></span>OS_ALARM_QUEUE_TAG</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define OS_ALARM_QUEUE_TAG&#160;&#160;&#160;0x614C6D51u</td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="alarm_8h_source.html#l00030">30</a> of file <a class="el" href="alarm_8h_source.html">alarm.h</a>.</p>
</div>
</div>
<a id="ga1510961a9ef9784d00043a8787750020"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga1510961a9ef9784d00043a8787750020">&#9670;&nbsp;</a></span>OS_ALARM_TAG</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define OS_ALARM_TAG&#160;&#160;&#160;0x614C724Du</td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="alarm_8h_source.html#l00061">61</a> of file <a class="el" href="alarm_8h_source.html">alarm.h</a>.</p>
</div>
</div>
<h2 class="groupheader">Typedef Documentation</h2>
<a id="gabe3fe2259612e01057e5c7b71ac1b51b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gabe3fe2259612e01057e5c7b71ac1b51b">&#9670;&nbsp;</a></span>OSAlarm</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef struct <a class="el" href="group__coreinit__alarms.html#structOSAlarm">OSAlarm</a> <a class="el" href="group__coreinit__alarms.html#structOSAlarm">OSAlarm</a></td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="alarm_8h_source.html#l00024">24</a> of file <a class="el" href="alarm_8h_source.html">alarm.h</a>.</p>
</div>
</div>
<a id="ga8d028dafb8787ca81f686458aa35a4b6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga8d028dafb8787ca81f686458aa35a4b6">&#9670;&nbsp;</a></span>OSAlarmLink</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef struct <a class="el" href="group__coreinit__alarms.html#structOSAlarmLink">OSAlarmLink</a> <a class="el" href="group__coreinit__alarms.html#structOSAlarmLink">OSAlarmLink</a></td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="alarm_8h_source.html#l00025">25</a> of file <a class="el" href="alarm_8h_source.html">alarm.h</a>.</p>
</div>
</div>
<a id="ga2fda9bac83e5e790e234d877e9a7e5aa"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga2fda9bac83e5e790e234d877e9a7e5aa">&#9670;&nbsp;</a></span>OSAlarmQueue</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef struct <a class="el" href="group__coreinit__alarms.html#structOSAlarmQueue">OSAlarmQueue</a> <a class="el" href="group__coreinit__alarms.html#structOSAlarmQueue">OSAlarmQueue</a></td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="alarm_8h_source.html#l00026">26</a> of file <a class="el" href="alarm_8h_source.html">alarm.h</a>.</p>
</div>
</div>
<a id="gae3b9b1db3508671a41015800fae35b8c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gae3b9b1db3508671a41015800fae35b8c">&#9670;&nbsp;</a></span>OSAlarmCallback</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef void(* OSAlarmCallback) (<a class="el" href="group__coreinit__alarms.html#structOSAlarm">OSAlarm</a> *, <a class="el" href="group__coreinit__context.html#ga924296baf430a531adb5135a5cd54207">OSContext</a> *)</td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="alarm_8h_source.html#l00028">28</a> of file <a class="el" href="alarm_8h_source.html">alarm.h</a>.</p>
</div>
</div>
<h2 class="groupheader">Function Documentation</h2>
<a id="gaf2d82c5e86eefb3acf43c20cee0c2818"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaf2d82c5e86eefb3acf43c20cee0c2818">&#9670;&nbsp;</a></span>OSCancelAlarm()</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> OSCancelAlarm </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__coreinit__alarms.html#structOSAlarm">OSAlarm</a> *&#160;</td>
<td class="paramname"><em>alarm</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Cancel an alarm. </p>
</div>
</div>
<a id="ga5720fedb272532af0980a8d5c3caea40"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga5720fedb272532af0980a8d5c3caea40">&#9670;&nbsp;</a></span>OSCancelAlarms()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void OSCancelAlarms </td>
<td>(</td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>group</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Cancel all alarms which have a matching tag set by OSSetAlarmTag. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">group</td><td>The alarm tag to cancel. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="ga5a664886e2a2735e954d8d82f5dfdcc8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga5a664886e2a2735e954d8d82f5dfdcc8">&#9670;&nbsp;</a></span>OSCreateAlarm()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void OSCreateAlarm </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__coreinit__alarms.html#structOSAlarm">OSAlarm</a> *&#160;</td>
<td class="paramname"><em>alarm</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Initialise an alarm structure. </p>
</div>
</div>
<a id="ga3a30762bb4654675399f0ac3de1144e7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga3a30762bb4654675399f0ac3de1144e7">&#9670;&nbsp;</a></span>OSCreateAlarmEx()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void OSCreateAlarmEx </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__coreinit__alarms.html#structOSAlarm">OSAlarm</a> *&#160;</td>
<td class="paramname"><em>alarm</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>Initialise an alarm structure with a name. </p>
</div>
</div>
<a id="ga7ef9512e147f3636433f81312b516180"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga7ef9512e147f3636433f81312b516180">&#9670;&nbsp;</a></span>OSGetAlarmUserData()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void* OSGetAlarmUserData </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__coreinit__alarms.html#structOSAlarm">OSAlarm</a> *&#160;</td>
<td class="paramname"><em>alarm</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Return user data set by OSSetAlarmUserData. </p>
</div>
</div>
<a id="gac10998d540b1f79f2a00e08e029e3a22"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gac10998d540b1f79f2a00e08e029e3a22">&#9670;&nbsp;</a></span>OSInitAlarmQueue()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void OSInitAlarmQueue </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__coreinit__alarms.html#structOSAlarmQueue">OSAlarmQueue</a> *&#160;</td>
<td class="paramname"><em>queue</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Initialise an alarm queue structure. </p>
</div>
</div>
<a id="ga3697277777b6cb3e3037cf420ebc3870"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga3697277777b6cb3e3037cf420ebc3870">&#9670;&nbsp;</a></span>OSInitAlarmQueueEx()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void OSInitAlarmQueueEx </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__coreinit__alarms.html#structOSAlarmQueue">OSAlarmQueue</a> *&#160;</td>
<td class="paramname"><em>queue</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>Initialise an alarm queue structure with a name. </p>
</div>
</div>
<a id="ga4145b4d9637ede72450ee18cf98cd8a4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga4145b4d9637ede72450ee18cf98cd8a4">&#9670;&nbsp;</a></span>OSSetAlarm()</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> OSSetAlarm </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__coreinit__alarms.html#structOSAlarm">OSAlarm</a> *&#160;</td>
<td class="paramname"><em>alarm</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group__coreinit__time.html#ga4d4f771188f6c29e758ed6b3b8347b4d">OSTime</a>&#160;</td>
<td class="paramname"><em>time</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group__coreinit__alarms.html#gae3b9b1db3508671a41015800fae35b8c">OSAlarmCallback</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 a one shot alarm to perform a callback after a set amount of time. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">alarm</td><td>The alarm to set. </td></tr>
<tr><td class="paramname">time</td><td>The duration until the alarm should be triggered. </td></tr>
<tr><td class="paramname">callback</td><td>The alarm callback to call when the alarm is triggered. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="ga185b2ba5f2148dd78cac83c459d3568f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga185b2ba5f2148dd78cac83c459d3568f">&#9670;&nbsp;</a></span>OSSetPeriodicAlarm()</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> OSSetPeriodicAlarm </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__coreinit__alarms.html#structOSAlarm">OSAlarm</a> *&#160;</td>
<td class="paramname"><em>alarm</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group__coreinit__time.html#ga4d4f771188f6c29e758ed6b3b8347b4d">OSTime</a>&#160;</td>
<td class="paramname"><em>start</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group__coreinit__time.html#ga4d4f771188f6c29e758ed6b3b8347b4d">OSTime</a>&#160;</td>
<td class="paramname"><em>interval</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group__coreinit__alarms.html#gae3b9b1db3508671a41015800fae35b8c">OSAlarmCallback</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 a repeated alarm to execute a callback every interval from start. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">alarm</td><td>The alarm to set. </td></tr>
<tr><td class="paramname">start</td><td>The duration until the alarm should first be triggered. </td></tr>
<tr><td class="paramname">interval</td><td>The interval between triggers after the first trigger. </td></tr>
<tr><td class="paramname">callback</td><td>The alarm callback to call when the alarm is triggered. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="ga411a482a63988aca30bf4a0cb354e350"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga411a482a63988aca30bf4a0cb354e350">&#9670;&nbsp;</a></span>OSSetAlarmTag()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void OSSetAlarmTag </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__coreinit__alarms.html#structOSAlarm">OSAlarm</a> *&#160;</td>
<td class="paramname"><em>alarm</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>group</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Set an alarm tag which is used in OSCancelAlarms for bulk cancellation. </p>
</div>
</div>
<a id="gaaf24ef65a362b6ff62b9cc96f3bbe458"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaaf24ef65a362b6ff62b9cc96f3bbe458">&#9670;&nbsp;</a></span>OSSetAlarmUserData()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void OSSetAlarmUserData </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__coreinit__alarms.html#structOSAlarm">OSAlarm</a> *&#160;</td>
<td class="paramname"><em>alarm</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">void *&#160;</td>
<td class="paramname"><em>data</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Set alarm user data which is returned by OSGetAlarmUserData. </p>
</div>
</div>
<a id="gad84aa4992e422bf52deb596c1e77c6b8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gad84aa4992e422bf52deb596c1e77c6b8">&#9670;&nbsp;</a></span>OSWaitAlarm()</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> OSWaitAlarm </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__coreinit__alarms.html#structOSAlarm">OSAlarm</a> *&#160;</td>
<td class="paramname"><em>alarm</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Sleep the current thread until the alarm has been triggered or cancelled. </p>
</div>
</div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>
</body>
</html>