sdk-ameba-v4.0c_180328/doc/api_doc/group___r_t_o_s.html
2019-04-02 16:34:25 +08:00

3844 lines
226 KiB
HTML
Executable file

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.11"/>
<title>SDK3.5: RTOS</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>
<script type="text/javascript">
$(document).ready(function() { init_search(); });
</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">SDK3.5
</div>
<div id="projectbrief">This document shows Ameba SDK 3.5 APIs</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.11 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li class="current"><a href="modules.html"><span>Modules</span></a></li>
<li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
<li>
<div id="MSearchBox" class="MSearchBoxInactive">
<span class="left">
<img id="MSearchSelect" src="search/mag_sel.png"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
alt=""/>
<input type="text" id="MSearchField" value="Search" accesskey="S"
onfocus="searchBox.OnSearchFieldFocus(true)"
onblur="searchBox.OnSearchFieldFocus(false)"
onkeyup="searchBox.OnSearchFieldChange(event)"/>
</span><span class="right">
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
</span>
</div>
</li>
</ul>
</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="#typedef-members">Typedefs</a> &#124;
<a href="#func-members">Functions</a> &#124;
<a href="#var-members">Variables</a> </div>
<div class="headertitle">
<div class="title">RTOS<div class="ingroups"><a class="el" href="group__sdk.html">Ameba SDK</a></div></div> </div>
</div><!--header-->
<div class="contents">
<p>RTOS functions.
<a href="#details">More...</a></p>
<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:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structtimer__list.html">timer_list</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structtask__struct.html">task_struct</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structrtw__worker__thread__t.html">rtw_worker_thread_t</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structrtw__event__message__t.html">rtw_event_message_t</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structworker__timer__entry.html">worker_timer_entry</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structwork__struct.html">work_struct</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structdelayed__work.html">delayed_work</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmem__entry.html">mem_entry</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structosdep__service__ops.html">osdep_service_ops</a></td></tr>
<tr class="separator:"><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:ga117baf4440fdac93925d863f0f1839b2"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga117baf4440fdac93925d863f0f1839b2"></a>
typedef thread_return(*&#160;</td><td class="memItemRight" valign="bottom"><b>thread_func_t</b>) (thread_context context)</td></tr>
<tr class="separator:ga117baf4440fdac93925d863f0f1839b2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga18f10d211eed8a651c0cc76f218364ed"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga18f10d211eed8a651c0cc76f218364ed"></a>
typedef void(*&#160;</td><td class="memItemRight" valign="bottom"><b>TIMER_FUN</b>) (void *context)</td></tr>
<tr class="separator:ga18f10d211eed8a651c0cc76f218364ed"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gae83a3878243b5da85a8463b9d675e1c6"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gae83a3878243b5da85a8463b9d675e1c6"></a>
typedef int(*&#160;</td><td class="memItemRight" valign="bottom"><b>event_handler_t</b>) (char *buf, int buf_len, int flags, void *user_data)</td></tr>
<tr class="separator:gae83a3878243b5da85a8463b9d675e1c6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac5a1b69ca2eb46666787a6f5d1a28d02"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gac5a1b69ca2eb46666787a6f5d1a28d02"></a>
typedef void(*&#160;</td><td class="memItemRight" valign="bottom"><b>work_func_t</b>) (void *context)</td></tr>
<tr class="separator:gac5a1b69ca2eb46666787a6f5d1a28d02"><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:ga9f8235595e6f9b556f30025bcc149f21"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___r_t_o_s.html#ga9f8235595e6f9b556f30025bcc149f21">init_mem_monitor</a> (_list *pmem_table, int *used_num)</td></tr>
<tr class="memdesc:ga9f8235595e6f9b556f30025bcc149f21"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function initializes a memory table. <a href="#ga9f8235595e6f9b556f30025bcc149f21">More...</a><br /></td></tr>
<tr class="separator:ga9f8235595e6f9b556f30025bcc149f21"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga37363e084632199f1870b3105a7dc454"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___r_t_o_s.html#ga37363e084632199f1870b3105a7dc454">deinit_mem_monitor</a> (_list *pmem_table, int *used_num)</td></tr>
<tr class="memdesc:ga37363e084632199f1870b3105a7dc454"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function deinitializes a memory table. <a href="#ga37363e084632199f1870b3105a7dc454">More...</a><br /></td></tr>
<tr class="separator:ga37363e084632199f1870b3105a7dc454"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaa8fba4d853a4b5981aaaa0e37cdae7de"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___r_t_o_s.html#gaa8fba4d853a4b5981aaaa0e37cdae7de">add_mem_usage</a> (_list *pmem_table, void *ptr, int size, int *used_num, int flag)</td></tr>
<tr class="memdesc:gaa8fba4d853a4b5981aaaa0e37cdae7de"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function alloc <a class="el" href="structmem__entry.html">mem_entry</a> to the memory table. <a href="#gaa8fba4d853a4b5981aaaa0e37cdae7de">More...</a><br /></td></tr>
<tr class="separator:gaa8fba4d853a4b5981aaaa0e37cdae7de"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gadf74d3a405d503e2465988dffa6f1a64"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___r_t_o_s.html#gadf74d3a405d503e2465988dffa6f1a64">del_mem_usage</a> (_list *pmem_table, void *ptr, int *used_num, int flag)</td></tr>
<tr class="memdesc:gadf74d3a405d503e2465988dffa6f1a64"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function frees memory from the memory table. <a href="#gadf74d3a405d503e2465988dffa6f1a64">More...</a><br /></td></tr>
<tr class="separator:gadf74d3a405d503e2465988dffa6f1a64"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaa56f111283bb33a374b7d4d0bc1c94c2"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___r_t_o_s.html#gaa56f111283bb33a374b7d4d0bc1c94c2">get_mem_usage</a> (_list *pmem_table)</td></tr>
<tr class="memdesc:gaa56f111283bb33a374b7d4d0bc1c94c2"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function get the memory usage of a memory table. <a href="#gaa56f111283bb33a374b7d4d0bc1c94c2">More...</a><br /></td></tr>
<tr class="separator:gaa56f111283bb33a374b7d4d0bc1c94c2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga76cffedcd6c0dfdf619d8f74b0d14fbb"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga76cffedcd6c0dfdf619d8f74b0d14fbb"></a>
u8 *&#160;</td><td class="memItemRight" valign="bottom"><b>_rtw_vmalloc</b> (u32 sz)</td></tr>
<tr class="separator:ga76cffedcd6c0dfdf619d8f74b0d14fbb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga318b4a6ed66ac06542d3a35ea27f8aaf"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga318b4a6ed66ac06542d3a35ea27f8aaf"></a>
u8 *&#160;</td><td class="memItemRight" valign="bottom"><b>_rtw_zvmalloc</b> (u32 sz)</td></tr>
<tr class="separator:ga318b4a6ed66ac06542d3a35ea27f8aaf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf5b456162805d1bd55db3944a8f83c2e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaf5b456162805d1bd55db3944a8f83c2e"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>_rtw_vmfree</b> (u8 *pbuf, u32 sz)</td></tr>
<tr class="separator:gaf5b456162805d1bd55db3944a8f83c2e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaee7dfae34a99cc861487bc077ce0c830"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaee7dfae34a99cc861487bc077ce0c830"></a>
u8 *&#160;</td><td class="memItemRight" valign="bottom"><b>_rtw_zmalloc</b> (u32 sz)</td></tr>
<tr class="separator:gaee7dfae34a99cc861487bc077ce0c830"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gace303c4e7e2412d2da8a06e44e73cfd4"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gace303c4e7e2412d2da8a06e44e73cfd4"></a>
u8 *&#160;</td><td class="memItemRight" valign="bottom"><b>_rtw_malloc</b> (u32 sz)</td></tr>
<tr class="separator:gace303c4e7e2412d2da8a06e44e73cfd4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga473ae2d56fd110772c8e2934084bed76"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga473ae2d56fd110772c8e2934084bed76"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>_rtw_mfree</b> (u8 *pbuf, u32 sz)</td></tr>
<tr class="separator:ga473ae2d56fd110772c8e2934084bed76"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gae5627853bef70ebbcccb913093b2a3c3"><td class="memItemLeft" align="right" valign="top">u8 *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___r_t_o_s.html#gae5627853bef70ebbcccb913093b2a3c3">rtw_vmalloc</a> (u32 sz)</td></tr>
<tr class="memdesc:gae5627853bef70ebbcccb913093b2a3c3"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function allocates the virtually contiguous memory. <a href="#gae5627853bef70ebbcccb913093b2a3c3">More...</a><br /></td></tr>
<tr class="separator:gae5627853bef70ebbcccb913093b2a3c3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaa2cd73358028cae5a8c9970bfe41b996"><td class="memItemLeft" align="right" valign="top">u8 *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___r_t_o_s.html#gaa2cd73358028cae5a8c9970bfe41b996">rtw_zvmalloc</a> (u32 sz)</td></tr>
<tr class="memdesc:gaa2cd73358028cae5a8c9970bfe41b996"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function allocates the virtually contiguous memory and the values of the memory are setted to 0. <a href="#gaa2cd73358028cae5a8c9970bfe41b996">More...</a><br /></td></tr>
<tr class="separator:gaa2cd73358028cae5a8c9970bfe41b996"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga510c5826df487b958b88a22574cc0e53"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___r_t_o_s.html#ga510c5826df487b958b88a22574cc0e53">rtw_vmfree</a> (u8 *pbuf, u32 sz)</td></tr>
<tr class="memdesc:ga510c5826df487b958b88a22574cc0e53"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function frees the virtually contiguous memory. <a href="#ga510c5826df487b958b88a22574cc0e53">More...</a><br /></td></tr>
<tr class="separator:ga510c5826df487b958b88a22574cc0e53"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga40bfe4cd4df674a0b6c8ada337314885"><td class="memItemLeft" align="right" valign="top">u8 *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___r_t_o_s.html#ga40bfe4cd4df674a0b6c8ada337314885">rtw_zmalloc</a> (u32 sz)</td></tr>
<tr class="memdesc:ga40bfe4cd4df674a0b6c8ada337314885"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function allocates the memory and the values of the memory are setted to 0. <a href="#ga40bfe4cd4df674a0b6c8ada337314885">More...</a><br /></td></tr>
<tr class="separator:ga40bfe4cd4df674a0b6c8ada337314885"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac38480df2657a06473435aebecf3f0f0"><td class="memItemLeft" align="right" valign="top">u8 *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___r_t_o_s.html#gac38480df2657a06473435aebecf3f0f0">rtw_malloc</a> (u32 sz)</td></tr>
<tr class="memdesc:gac38480df2657a06473435aebecf3f0f0"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function allocates the memory. <a href="#gac38480df2657a06473435aebecf3f0f0">More...</a><br /></td></tr>
<tr class="separator:gac38480df2657a06473435aebecf3f0f0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga210903829e249ee36ebbae895fdfeb68"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___r_t_o_s.html#ga210903829e249ee36ebbae895fdfeb68">rtw_mfree</a> (u8 *pbuf, u32 sz)</td></tr>
<tr class="memdesc:ga210903829e249ee36ebbae895fdfeb68"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function frees the virtually contiguous memory. <a href="#ga210903829e249ee36ebbae895fdfeb68">More...</a><br /></td></tr>
<tr class="separator:ga210903829e249ee36ebbae895fdfeb68"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga7e5cfcf0bfa0cf4d12b3140c927474a9"><td class="memItemLeft" align="right" valign="top">void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___r_t_o_s.html#ga7e5cfcf0bfa0cf4d12b3140c927474a9">rtw_malloc2d</a> (int h, int w, int size)</td></tr>
<tr class="memdesc:ga7e5cfcf0bfa0cf4d12b3140c927474a9"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function allocates a 2 dimensional array memory. <a href="#ga7e5cfcf0bfa0cf4d12b3140c927474a9">More...</a><br /></td></tr>
<tr class="separator:ga7e5cfcf0bfa0cf4d12b3140c927474a9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga9b960a8744e7f4d12336cbcce554f10b"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___r_t_o_s.html#ga9b960a8744e7f4d12336cbcce554f10b">rtw_mfree2d</a> (void *pbuf, int h, int w, int size)</td></tr>
<tr class="memdesc:ga9b960a8744e7f4d12336cbcce554f10b"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function deallocates the block of memory previously allocated to make it available again. <a href="#ga9b960a8744e7f4d12336cbcce554f10b">More...</a><br /></td></tr>
<tr class="separator:ga9b960a8744e7f4d12336cbcce554f10b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga8b31fb541897d351bcf322467e7626ed"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___r_t_o_s.html#ga8b31fb541897d351bcf322467e7626ed">rtw_memcpy</a> (void *dst, void *src, u32 sz)</td></tr>
<tr class="memdesc:ga8b31fb541897d351bcf322467e7626ed"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function copies the values of "sz" bytes from the location pointed to by "src" directly to the memory block pointed to by "des". <a href="#ga8b31fb541897d351bcf322467e7626ed">More...</a><br /></td></tr>
<tr class="separator:ga8b31fb541897d351bcf322467e7626ed"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaa049f0f8d4f7f3dc1dccaa7cab8b00e2"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___r_t_o_s.html#gaa049f0f8d4f7f3dc1dccaa7cab8b00e2">rtw_memcmp</a> (void *dst, void *src, u32 sz)</td></tr>
<tr class="memdesc:gaa049f0f8d4f7f3dc1dccaa7cab8b00e2"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function compares the first "sz" bytes of the block of memory pointed by "dst" to the first "sz" bytes pointed by "src". <a href="#gaa049f0f8d4f7f3dc1dccaa7cab8b00e2">More...</a><br /></td></tr>
<tr class="separator:gaa049f0f8d4f7f3dc1dccaa7cab8b00e2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaa5db16ab98682918647b010a65daf179"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___r_t_o_s.html#gaa5db16ab98682918647b010a65daf179">rtw_memset</a> (void *pbuf, int c, u32 sz)</td></tr>
<tr class="memdesc:gaa5db16ab98682918647b010a65daf179"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function sets the first "sz" bytes of the block of memory pointed by "pbuf" to the specified "c". <a href="#gaa5db16ab98682918647b010a65daf179">More...</a><br /></td></tr>
<tr class="separator:gaa5db16ab98682918647b010a65daf179"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga4e3c7baf89d8fd411e5ed5dc9682c2ba"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___r_t_o_s.html#ga4e3c7baf89d8fd411e5ed5dc9682c2ba">rtw_init_listhead</a> (_list *list)</td></tr>
<tr class="memdesc:ga4e3c7baf89d8fd411e5ed5dc9682c2ba"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function initializes the head of the list. <a href="#ga4e3c7baf89d8fd411e5ed5dc9682c2ba">More...</a><br /></td></tr>
<tr class="separator:ga4e3c7baf89d8fd411e5ed5dc9682c2ba"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gabfab29b24ba6eac2f7daf8a37946eed0"><td class="memItemLeft" align="right" valign="top">u32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___r_t_o_s.html#gabfab29b24ba6eac2f7daf8a37946eed0">rtw_is_list_empty</a> (_list *phead)</td></tr>
<tr class="memdesc:gabfab29b24ba6eac2f7daf8a37946eed0"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function tests whether a list is empty. <a href="#gabfab29b24ba6eac2f7daf8a37946eed0">More...</a><br /></td></tr>
<tr class="separator:gabfab29b24ba6eac2f7daf8a37946eed0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga804faac1fb48202fb596096d27679fbd"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___r_t_o_s.html#ga804faac1fb48202fb596096d27679fbd">rtw_list_insert_head</a> (_list *plist, _list *phead)</td></tr>
<tr class="memdesc:ga804faac1fb48202fb596096d27679fbd"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function adds a new entry after "phead" for the list. <a href="#ga804faac1fb48202fb596096d27679fbd">More...</a><br /></td></tr>
<tr class="separator:ga804faac1fb48202fb596096d27679fbd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga5f342e747430bbf855b1b0f845bf9d87"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___r_t_o_s.html#ga5f342e747430bbf855b1b0f845bf9d87">rtw_list_insert_tail</a> (_list *plist, _list *phead)</td></tr>
<tr class="memdesc:ga5f342e747430bbf855b1b0f845bf9d87"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function adds a new entry before "phead" for the list. <a href="#ga5f342e747430bbf855b1b0f845bf9d87">More...</a><br /></td></tr>
<tr class="separator:ga5f342e747430bbf855b1b0f845bf9d87"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gad2f1bf966f380681638ec580b709ee77"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___r_t_o_s.html#gad2f1bf966f380681638ec580b709ee77">rtw_list_delete</a> (_list *plist)</td></tr>
<tr class="memdesc:gad2f1bf966f380681638ec580b709ee77"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function deletes entry from list and reinitialize it. <a href="#gad2f1bf966f380681638ec580b709ee77">More...</a><br /></td></tr>
<tr class="separator:gad2f1bf966f380681638ec580b709ee77"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga672f0efc2e47205a5379fe474e7a176b"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___r_t_o_s.html#ga672f0efc2e47205a5379fe474e7a176b">rtw_init_sema</a> (_sema *sema, int init_val)</td></tr>
<tr class="memdesc:ga672f0efc2e47205a5379fe474e7a176b"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function initializes the unnamed semaphore referred to by "sema" to the value "init_val". <a href="#ga672f0efc2e47205a5379fe474e7a176b">More...</a><br /></td></tr>
<tr class="separator:ga672f0efc2e47205a5379fe474e7a176b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gae38a2d622f9867e03a61245badd4a481"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___r_t_o_s.html#gae38a2d622f9867e03a61245badd4a481">rtw_free_sema</a> (_sema *sema)</td></tr>
<tr class="memdesc:gae38a2d622f9867e03a61245badd4a481"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function deletes the semaphore. <a href="#gae38a2d622f9867e03a61245badd4a481">More...</a><br /></td></tr>
<tr class="separator:gae38a2d622f9867e03a61245badd4a481"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga96ec8c04aa355f3b8f793ab2bd203708"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___r_t_o_s.html#ga96ec8c04aa355f3b8f793ab2bd203708">rtw_up_sema</a> (_sema *sema)</td></tr>
<tr class="memdesc:ga96ec8c04aa355f3b8f793ab2bd203708"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function releases the semaphore. This macro must not be used from an ISR. <a href="#ga96ec8c04aa355f3b8f793ab2bd203708">More...</a><br /></td></tr>
<tr class="separator:ga96ec8c04aa355f3b8f793ab2bd203708"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga6d38da5c99a8b7a89e101aee8ffd69b9"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___r_t_o_s.html#ga6d38da5c99a8b7a89e101aee8ffd69b9">rtw_up_sema_from_isr</a> (_sema *sema)</td></tr>
<tr class="memdesc:ga6d38da5c99a8b7a89e101aee8ffd69b9"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function releases the semaphore. This macro can be used from an ISR. <a href="#ga6d38da5c99a8b7a89e101aee8ffd69b9">More...</a><br /></td></tr>
<tr class="separator:ga6d38da5c99a8b7a89e101aee8ffd69b9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga8866f237041311efe4a0096a901c82c6"><td class="memItemLeft" align="right" valign="top">u32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___r_t_o_s.html#ga8866f237041311efe4a0096a901c82c6">rtw_down_sema</a> (_sema *sema)</td></tr>
<tr class="memdesc:ga8866f237041311efe4a0096a901c82c6"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function acquires the semaphore. If no more tasks are allowed to acquire the semaphore, calling this function will put the task to sleep until the semaphore is up. <a href="#ga8866f237041311efe4a0096a901c82c6">More...</a><br /></td></tr>
<tr class="separator:ga8866f237041311efe4a0096a901c82c6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaef950465b7b07566a08e6ae45803de5d"><td class="memItemLeft" align="right" valign="top">u32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___r_t_o_s.html#gaef950465b7b07566a08e6ae45803de5d">rtw_down_timeout_sema</a> (_sema *sema, u32 timeout)</td></tr>
<tr class="memdesc:gaef950465b7b07566a08e6ae45803de5d"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function acquires the semaphore. If no more tasks are allowed to acquire the semaphore, calling this function will put the task to sleep until the semaphore is up. <a href="#gaef950465b7b07566a08e6ae45803de5d">More...</a><br /></td></tr>
<tr class="separator:gaef950465b7b07566a08e6ae45803de5d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga46eb1c50c29acf8e4052707ab51e768c"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___r_t_o_s.html#ga46eb1c50c29acf8e4052707ab51e768c">rtw_mutex_init</a> (_mutex *pmutex)</td></tr>
<tr class="memdesc:ga46eb1c50c29acf8e4052707ab51e768c"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function implements a mutex semaphore by using the existing queue mechanism. <a href="#ga46eb1c50c29acf8e4052707ab51e768c">More...</a><br /></td></tr>
<tr class="separator:ga46eb1c50c29acf8e4052707ab51e768c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga0a2f29a11830cdc9030a91f6ed49f74a"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___r_t_o_s.html#ga0a2f29a11830cdc9030a91f6ed49f74a">rtw_mutex_free</a> (_mutex *pmutex)</td></tr>
<tr class="memdesc:ga0a2f29a11830cdc9030a91f6ed49f74a"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function deletes the mutex semaphore. <a href="#ga0a2f29a11830cdc9030a91f6ed49f74a">More...</a><br /></td></tr>
<tr class="separator:ga0a2f29a11830cdc9030a91f6ed49f74a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga61df40838863df72ef65ad766aee3fa4"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___r_t_o_s.html#ga61df40838863df72ef65ad766aee3fa4">rtw_mutex_put</a> (_mutex *pmutex)</td></tr>
<tr class="memdesc:ga61df40838863df72ef65ad766aee3fa4"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function releases a mutex semaphore. <a href="#ga61df40838863df72ef65ad766aee3fa4">More...</a><br /></td></tr>
<tr class="separator:ga61df40838863df72ef65ad766aee3fa4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga62acfe38de294d000720de79d20ea3e9"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___r_t_o_s.html#ga62acfe38de294d000720de79d20ea3e9">rtw_mutex_get</a> (_mutex *pmutex)</td></tr>
<tr class="memdesc:ga62acfe38de294d000720de79d20ea3e9"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function obtains a mutex semaphore. <a href="#ga62acfe38de294d000720de79d20ea3e9">More...</a><br /></td></tr>
<tr class="separator:ga62acfe38de294d000720de79d20ea3e9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga29651aa1be8c5cfaa8dcbecb5917bb3c"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___r_t_o_s.html#ga29651aa1be8c5cfaa8dcbecb5917bb3c">rtw_mutex_get_timeout</a> (_mutex *pmutex, u32 timeout_ms)</td></tr>
<tr class="memdesc:ga29651aa1be8c5cfaa8dcbecb5917bb3c"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function obtains a mutex semaphore with a timeout setting. <a href="#ga29651aa1be8c5cfaa8dcbecb5917bb3c">More...</a><br /></td></tr>
<tr class="separator:ga29651aa1be8c5cfaa8dcbecb5917bb3c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga25ebf88345d437f95ac6db2534a9f3bd"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___r_t_o_s.html#ga25ebf88345d437f95ac6db2534a9f3bd">rtw_enter_critical</a> (_lock *plock, _irqL *pirqL)</td></tr>
<tr class="memdesc:ga25ebf88345d437f95ac6db2534a9f3bd"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function marks the start of a critical code region. Preemptive context switches cannot occur when in a critical region. <a href="#ga25ebf88345d437f95ac6db2534a9f3bd">More...</a><br /></td></tr>
<tr class="separator:ga25ebf88345d437f95ac6db2534a9f3bd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gab0a8793d6348a9b8875163fd04961b38"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___r_t_o_s.html#gab0a8793d6348a9b8875163fd04961b38">rtw_exit_critical</a> (_lock *plock, _irqL *pirqL)</td></tr>
<tr class="memdesc:gab0a8793d6348a9b8875163fd04961b38"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function marks end of a critical code region. Preemptive context switches cannot occur when in a critical region. <a href="#gab0a8793d6348a9b8875163fd04961b38">More...</a><br /></td></tr>
<tr class="separator:gab0a8793d6348a9b8875163fd04961b38"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gad8b05366edfa20347cbd6501b9e77ec9"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___r_t_o_s.html#gad8b05366edfa20347cbd6501b9e77ec9">rtw_enter_critical_from_isr</a> (_lock *plock, _irqL *pirqL)</td></tr>
<tr class="memdesc:gad8b05366edfa20347cbd6501b9e77ec9"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function marks the start of a critical code region from isr. <a href="#gad8b05366edfa20347cbd6501b9e77ec9">More...</a><br /></td></tr>
<tr class="separator:gad8b05366edfa20347cbd6501b9e77ec9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga58e735aa05f4c73300225a4b9ccb2bfa"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___r_t_o_s.html#ga58e735aa05f4c73300225a4b9ccb2bfa">rtw_exit_critical_from_isr</a> (_lock *plock, _irqL *pirqL)</td></tr>
<tr class="memdesc:ga58e735aa05f4c73300225a4b9ccb2bfa"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function marks the end of a critical code region from isr. <a href="#ga58e735aa05f4c73300225a4b9ccb2bfa">More...</a><br /></td></tr>
<tr class="separator:ga58e735aa05f4c73300225a4b9ccb2bfa"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga3c65ec3e920cf2096815d65cb73c417c"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___r_t_o_s.html#ga3c65ec3e920cf2096815d65cb73c417c">rtw_enter_critical_bh</a> (_lock *plock, _irqL *pirqL)</td></tr>
<tr class="memdesc:ga3c65ec3e920cf2096815d65cb73c417c"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function obtains a spin lock semaphore. <a href="#ga3c65ec3e920cf2096815d65cb73c417c">More...</a><br /></td></tr>
<tr class="separator:ga3c65ec3e920cf2096815d65cb73c417c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga098121bd2ccffdb029660cab44ebeede"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___r_t_o_s.html#ga098121bd2ccffdb029660cab44ebeede">rtw_exit_critical_bh</a> (_lock *plock, _irqL *pirqL)</td></tr>
<tr class="memdesc:ga098121bd2ccffdb029660cab44ebeede"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function releases a spin lock semaphore. <a href="#ga098121bd2ccffdb029660cab44ebeede">More...</a><br /></td></tr>
<tr class="separator:ga098121bd2ccffdb029660cab44ebeede"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga24f292f35f2f61373ff4727e42786a0d"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___r_t_o_s.html#ga24f292f35f2f61373ff4727e42786a0d">rtw_enter_critical_mutex</a> (_mutex *pmutex, _irqL *pirqL)</td></tr>
<tr class="memdesc:ga24f292f35f2f61373ff4727e42786a0d"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function obtains a semaphore. <a href="#ga24f292f35f2f61373ff4727e42786a0d">More...</a><br /></td></tr>
<tr class="separator:ga24f292f35f2f61373ff4727e42786a0d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga658ee4891ddc4170afcf48224a6417ee"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___r_t_o_s.html#ga658ee4891ddc4170afcf48224a6417ee">rtw_exit_critical_mutex</a> (_mutex *pmutex, _irqL *pirqL)</td></tr>
<tr class="memdesc:ga658ee4891ddc4170afcf48224a6417ee"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function releases a semaphore. <a href="#ga658ee4891ddc4170afcf48224a6417ee">More...</a><br /></td></tr>
<tr class="separator:ga658ee4891ddc4170afcf48224a6417ee"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga37001b820c09b1a19cf192ded723010d"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___r_t_o_s.html#ga37001b820c09b1a19cf192ded723010d">rtw_spinlock_init</a> (_lock *plock)</td></tr>
<tr class="memdesc:ga37001b820c09b1a19cf192ded723010d"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function implements a spin lock semaphore by using the existing queue mechanism. <a href="#ga37001b820c09b1a19cf192ded723010d">More...</a><br /></td></tr>
<tr class="separator:ga37001b820c09b1a19cf192ded723010d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaef28ab6984d1cf7146af03b748c84454"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___r_t_o_s.html#gaef28ab6984d1cf7146af03b748c84454">rtw_spinlock_free</a> (_lock *plock)</td></tr>
<tr class="memdesc:gaef28ab6984d1cf7146af03b748c84454"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function deletes the spin lock semaphore. <a href="#gaef28ab6984d1cf7146af03b748c84454">More...</a><br /></td></tr>
<tr class="separator:gaef28ab6984d1cf7146af03b748c84454"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gad4f01ed4e9126a09d40b702fe3d4525c"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___r_t_o_s.html#gad4f01ed4e9126a09d40b702fe3d4525c">rtw_spin_lock</a> (_lock *plock)</td></tr>
<tr class="memdesc:gad4f01ed4e9126a09d40b702fe3d4525c"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function obtains a spin lock semaphore. <a href="#gad4f01ed4e9126a09d40b702fe3d4525c">More...</a><br /></td></tr>
<tr class="separator:gad4f01ed4e9126a09d40b702fe3d4525c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gad7267f308d095c538c0d897eaf63035e"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___r_t_o_s.html#gad7267f308d095c538c0d897eaf63035e">rtw_spin_unlock</a> (_lock *plock)</td></tr>
<tr class="memdesc:gad7267f308d095c538c0d897eaf63035e"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function releases a spin lock semaphore. <a href="#gad7267f308d095c538c0d897eaf63035e">More...</a><br /></td></tr>
<tr class="separator:gad7267f308d095c538c0d897eaf63035e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac6ad8236244e673850643924ce5078de"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___r_t_o_s.html#gac6ad8236244e673850643924ce5078de">rtw_spinlock_irqsave</a> (_lock *plock, _irqL *irqL)</td></tr>
<tr class="memdesc:gac6ad8236244e673850643924ce5078de"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function marks the start of a critical code region and obtains a spin lock semaphore. <a href="#gac6ad8236244e673850643924ce5078de">More...</a><br /></td></tr>
<tr class="separator:gac6ad8236244e673850643924ce5078de"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac87035e791ade7f016b995a6de36b113"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___r_t_o_s.html#gac87035e791ade7f016b995a6de36b113">rtw_spinunlock_irqsave</a> (_lock *plock, _irqL *irqL)</td></tr>
<tr class="memdesc:gac87035e791ade7f016b995a6de36b113"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function releases a spin lock semaphore and marks the end of a critical code region. <a href="#gac87035e791ade7f016b995a6de36b113">More...</a><br /></td></tr>
<tr class="separator:gac87035e791ade7f016b995a6de36b113"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac436de1bb8861d23654d3a7791cb15da"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___r_t_o_s.html#gac436de1bb8861d23654d3a7791cb15da">rtw_init_xqueue</a> (_xqueue *queue, const char *name, u32 message_size, u32 number_of_messages)</td></tr>
<tr class="memdesc:gac436de1bb8861d23654d3a7791cb15da"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function creates a new queue instance. <a href="#gac436de1bb8861d23654d3a7791cb15da">More...</a><br /></td></tr>
<tr class="separator:gac436de1bb8861d23654d3a7791cb15da"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga441c8d4a290d6686a80bebb8e41c59f1"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___r_t_o_s.html#ga441c8d4a290d6686a80bebb8e41c59f1">rtw_push_to_xqueue</a> (_xqueue *queue, void *message, u32 timeout_ms)</td></tr>
<tr class="memdesc:ga441c8d4a290d6686a80bebb8e41c59f1"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function posts a message to the back of a queue. The message is queued by copy, not by reference. <a href="#ga441c8d4a290d6686a80bebb8e41c59f1">More...</a><br /></td></tr>
<tr class="separator:ga441c8d4a290d6686a80bebb8e41c59f1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga455fb88ce04abec31355991e71d32274"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___r_t_o_s.html#ga455fb88ce04abec31355991e71d32274">rtw_pop_from_xqueue</a> (_xqueue *queue, void *message, u32 timeout_ms)</td></tr>
<tr class="memdesc:ga455fb88ce04abec31355991e71d32274"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function receives a message from a queue. The message is recieved by copy so a buffer adequate size must be provided. <a href="#ga455fb88ce04abec31355991e71d32274">More...</a><br /></td></tr>
<tr class="separator:ga455fb88ce04abec31355991e71d32274"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga64fd7ef8908a2640802c672327d4d46f"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___r_t_o_s.html#ga64fd7ef8908a2640802c672327d4d46f">rtw_deinit_xqueue</a> (_xqueue *queue)</td></tr>
<tr class="memdesc:ga64fd7ef8908a2640802c672327d4d46f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Delete a queue - freeing all the memory allocated for storing of messages placed on the queue. <a href="#ga64fd7ef8908a2640802c672327d4d46f">More...</a><br /></td></tr>
<tr class="separator:ga64fd7ef8908a2640802c672327d4d46f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga37abdd1a993f77351644abed9c5468c4"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___r_t_o_s.html#ga37abdd1a993f77351644abed9c5468c4">rtw_init_queue</a> (_queue *pqueue)</td></tr>
<tr class="memdesc:ga37abdd1a993f77351644abed9c5468c4"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function creates a new queue instance. <a href="#ga37abdd1a993f77351644abed9c5468c4">More...</a><br /></td></tr>
<tr class="separator:ga37abdd1a993f77351644abed9c5468c4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gafb597346ec4381df572c9ae692db7d5c"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gafb597346ec4381df572c9ae692db7d5c"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>rtw_deinit_queue</b> (_queue *pqueue)</td></tr>
<tr class="separator:gafb597346ec4381df572c9ae692db7d5c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga7c35c1d7ca06a947b589c21fe87b7a7f"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga7c35c1d7ca06a947b589c21fe87b7a7f"></a>
u32&#160;</td><td class="memItemRight" valign="bottom"><b>rtw_is_queue_empty</b> (_queue *pqueue)</td></tr>
<tr class="separator:ga7c35c1d7ca06a947b589c21fe87b7a7f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga09e9d6fa920cee8cfd10c4d7848a5206"><td class="memItemLeft" align="right" valign="top">u32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___r_t_o_s.html#ga09e9d6fa920cee8cfd10c4d7848a5206">rtw_queue_empty</a> (_queue *pqueue)</td></tr>
<tr class="memdesc:ga09e9d6fa920cee8cfd10c4d7848a5206"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function tests whether the queue is empty. <a href="#ga09e9d6fa920cee8cfd10c4d7848a5206">More...</a><br /></td></tr>
<tr class="separator:ga09e9d6fa920cee8cfd10c4d7848a5206"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga9e31ec8ce94b8c465ffb686047b47c14"><td class="memItemLeft" align="right" valign="top">u32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___r_t_o_s.html#ga9e31ec8ce94b8c465ffb686047b47c14">rtw_end_of_queue_search</a> (_list *queue, _list *pelement)</td></tr>
<tr class="memdesc:ga9e31ec8ce94b8c465ffb686047b47c14"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function tests whether the "pelement" is at the "queue". <a href="#ga9e31ec8ce94b8c465ffb686047b47c14">More...</a><br /></td></tr>
<tr class="separator:ga9e31ec8ce94b8c465ffb686047b47c14"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga9476f68866e5ade8b95be4da6c4b741c"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga9476f68866e5ade8b95be4da6c4b741c"></a>
_list *&#160;</td><td class="memItemRight" valign="bottom"><b>rtw_get_queue_head</b> (_queue *queue)</td></tr>
<tr class="separator:ga9476f68866e5ade8b95be4da6c4b741c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga388ad68fb55be66baa224afcf504dddd"><td class="memItemLeft" align="right" valign="top">u32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___r_t_o_s.html#ga388ad68fb55be66baa224afcf504dddd">rtw_get_current_time</a> (void)</td></tr>
<tr class="memdesc:ga388ad68fb55be66baa224afcf504dddd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the count of ticks since the vTaskStartScheduler was called. <a href="#ga388ad68fb55be66baa224afcf504dddd">More...</a><br /></td></tr>
<tr class="separator:ga388ad68fb55be66baa224afcf504dddd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga8674586494dd8574362f90ffa8401a54"><td class="memItemLeft" align="right" valign="top">u32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___r_t_o_s.html#ga8674586494dd8574362f90ffa8401a54">rtw_systime_to_ms</a> (u32 systime)</td></tr>
<tr class="memdesc:ga8674586494dd8574362f90ffa8401a54"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convert system time to milliseconds. <a href="#ga8674586494dd8574362f90ffa8401a54">More...</a><br /></td></tr>
<tr class="separator:ga8674586494dd8574362f90ffa8401a54"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga6d180388ea1f302c61467595c44e6ab5"><td class="memItemLeft" align="right" valign="top">u32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___r_t_o_s.html#ga6d180388ea1f302c61467595c44e6ab5">rtw_systime_to_sec</a> (u32 systime)</td></tr>
<tr class="memdesc:ga6d180388ea1f302c61467595c44e6ab5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convert system time to seconds. <a href="#ga6d180388ea1f302c61467595c44e6ab5">More...</a><br /></td></tr>
<tr class="separator:ga6d180388ea1f302c61467595c44e6ab5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gad3cc21a9fcd329ae2a3e7f399d230176"><td class="memItemLeft" align="right" valign="top">u32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___r_t_o_s.html#gad3cc21a9fcd329ae2a3e7f399d230176">rtw_ms_to_systime</a> (u32 ms)</td></tr>
<tr class="memdesc:gad3cc21a9fcd329ae2a3e7f399d230176"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convert milliseconds to system time. <a href="#gad3cc21a9fcd329ae2a3e7f399d230176">More...</a><br /></td></tr>
<tr class="separator:gad3cc21a9fcd329ae2a3e7f399d230176"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga6a5babf897e2d8284329aeae10c88520"><td class="memItemLeft" align="right" valign="top">u32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___r_t_o_s.html#ga6a5babf897e2d8284329aeae10c88520">rtw_sec_to_systime</a> (u32 sec)</td></tr>
<tr class="memdesc:ga6a5babf897e2d8284329aeae10c88520"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convert seconds to system time. <a href="#ga6a5babf897e2d8284329aeae10c88520">More...</a><br /></td></tr>
<tr class="separator:ga6a5babf897e2d8284329aeae10c88520"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gab29555dec53b9cfd459ca0c7b3a0afa8"><td class="memItemLeft" align="right" valign="top">s32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___r_t_o_s.html#gab29555dec53b9cfd459ca0c7b3a0afa8">rtw_get_passing_time_ms</a> (u32 start)</td></tr>
<tr class="memdesc:gab29555dec53b9cfd459ca0c7b3a0afa8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the passing time from the "start" in milliseconds. <a href="#gab29555dec53b9cfd459ca0c7b3a0afa8">More...</a><br /></td></tr>
<tr class="separator:gab29555dec53b9cfd459ca0c7b3a0afa8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga8bc34bd42ed88ca127f481165bdb9b63"><td class="memItemLeft" align="right" valign="top">s32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___r_t_o_s.html#ga8bc34bd42ed88ca127f481165bdb9b63">rtw_get_time_interval_ms</a> (u32 start, u32 end)</td></tr>
<tr class="memdesc:ga8bc34bd42ed88ca127f481165bdb9b63"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the interval time from the "start" to "end" in milliseconds. <a href="#ga8bc34bd42ed88ca127f481165bdb9b63">More...</a><br /></td></tr>
<tr class="separator:ga8bc34bd42ed88ca127f481165bdb9b63"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gab46a8d1780b6f053d1ac91e1609a23be"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___r_t_o_s.html#gab46a8d1780b6f053d1ac91e1609a23be">rtw_msleep_os</a> (int ms)</td></tr>
<tr class="memdesc:gab46a8d1780b6f053d1ac91e1609a23be"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function suspends execution of the calling thread for "ms" milliseconds. <a href="#gab46a8d1780b6f053d1ac91e1609a23be">More...</a><br /></td></tr>
<tr class="separator:gab46a8d1780b6f053d1ac91e1609a23be"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga32743271ed298e09a4a5d6d55ab8736e"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___r_t_o_s.html#ga32743271ed298e09a4a5d6d55ab8736e">rtw_usleep_os</a> (int us)</td></tr>
<tr class="memdesc:ga32743271ed298e09a4a5d6d55ab8736e"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function suspends execution of the calling thread for "us" microseconds. <a href="#ga32743271ed298e09a4a5d6d55ab8736e">More...</a><br /></td></tr>
<tr class="separator:ga32743271ed298e09a4a5d6d55ab8736e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaaf5382ca9167916b15af0880f5efe838"><td class="memItemLeft" align="right" valign="top">u32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___r_t_o_s.html#gaaf5382ca9167916b15af0880f5efe838">rtw_atoi</a> (u8 *s)</td></tr>
<tr class="memdesc:gaaf5382ca9167916b15af0880f5efe838"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function converts the initial portion of the string to integer. <a href="#gaaf5382ca9167916b15af0880f5efe838">More...</a><br /></td></tr>
<tr class="separator:gaaf5382ca9167916b15af0880f5efe838"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gad8f2c25e0e8525260b0283938acf3e5f"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___r_t_o_s.html#gad8f2c25e0e8525260b0283938acf3e5f">rtw_mdelay_os</a> (int ms)</td></tr>
<tr class="memdesc:gad8f2c25e0e8525260b0283938acf3e5f"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function delays a task for the giving time in milliseconds. <a href="#gad8f2c25e0e8525260b0283938acf3e5f">More...</a><br /></td></tr>
<tr class="separator:gad8f2c25e0e8525260b0283938acf3e5f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf2a43ba4d719a9577d717e7f047a44eb"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___r_t_o_s.html#gaf2a43ba4d719a9577d717e7f047a44eb">rtw_udelay_os</a> (int us)</td></tr>
<tr class="memdesc:gaf2a43ba4d719a9577d717e7f047a44eb"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function delays a task for the giving time in microseconds. <a href="#gaf2a43ba4d719a9577d717e7f047a44eb">More...</a><br /></td></tr>
<tr class="separator:gaf2a43ba4d719a9577d717e7f047a44eb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gad1d04350f2daf1172a7c4baf27f023e4"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___r_t_o_s.html#gad1d04350f2daf1172a7c4baf27f023e4">rtw_yield_os</a> (void)</td></tr>
<tr class="memdesc:gad1d04350f2daf1172a7c4baf27f023e4"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function for forcing a context switch. <a href="#gad1d04350f2daf1172a7c4baf27f023e4">More...</a><br /></td></tr>
<tr class="separator:gad1d04350f2daf1172a7c4baf27f023e4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga773eff3884ab09b0b2adfae502c6fbb3"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___r_t_o_s.html#ga773eff3884ab09b0b2adfae502c6fbb3">ATOMIC_SET</a> (ATOMIC_T *v, int i)</td></tr>
<tr class="memdesc:ga773eff3884ab09b0b2adfae502c6fbb3"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function atomically sets the value of the variable. <a href="#ga773eff3884ab09b0b2adfae502c6fbb3">More...</a><br /></td></tr>
<tr class="separator:ga773eff3884ab09b0b2adfae502c6fbb3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaea3db066675908db9b865ce38db5abc1"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___r_t_o_s.html#gaea3db066675908db9b865ce38db5abc1">ATOMIC_READ</a> (ATOMIC_T *v)</td></tr>
<tr class="memdesc:gaea3db066675908db9b865ce38db5abc1"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function atomically reads the value of the variable. <a href="#gaea3db066675908db9b865ce38db5abc1">More...</a><br /></td></tr>
<tr class="separator:gaea3db066675908db9b865ce38db5abc1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gae40eb2eab2fe72770b747959a37c9dfa"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___r_t_o_s.html#gae40eb2eab2fe72770b747959a37c9dfa">ATOMIC_ADD</a> (ATOMIC_T *v, int i)</td></tr>
<tr class="memdesc:gae40eb2eab2fe72770b747959a37c9dfa"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function adds "i" to the contained "v". <a href="#gae40eb2eab2fe72770b747959a37c9dfa">More...</a><br /></td></tr>
<tr class="separator:gae40eb2eab2fe72770b747959a37c9dfa"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gadc182a9a76b9ab086fb850ef4a3fa9d4"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___r_t_o_s.html#gadc182a9a76b9ab086fb850ef4a3fa9d4">ATOMIC_SUB</a> (ATOMIC_T *v, int i)</td></tr>
<tr class="memdesc:gadc182a9a76b9ab086fb850ef4a3fa9d4"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function subtracts "i" from th econtained "v". <a href="#gadc182a9a76b9ab086fb850ef4a3fa9d4">More...</a><br /></td></tr>
<tr class="separator:gadc182a9a76b9ab086fb850ef4a3fa9d4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga37d5eb980755600e00f7870dddfc9201"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___r_t_o_s.html#ga37d5eb980755600e00f7870dddfc9201">ATOMIC_INC</a> (ATOMIC_T *v)</td></tr>
<tr class="memdesc:ga37d5eb980755600e00f7870dddfc9201"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function adds 1 to the contained "v". <a href="#ga37d5eb980755600e00f7870dddfc9201">More...</a><br /></td></tr>
<tr class="separator:ga37d5eb980755600e00f7870dddfc9201"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga6ed19ec7dd00eb7f86e731973e503d38"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___r_t_o_s.html#ga6ed19ec7dd00eb7f86e731973e503d38">ATOMIC_DEC</a> (ATOMIC_T *v)</td></tr>
<tr class="memdesc:ga6ed19ec7dd00eb7f86e731973e503d38"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function subtracts 1 from th econtained "v". <a href="#ga6ed19ec7dd00eb7f86e731973e503d38">More...</a><br /></td></tr>
<tr class="separator:ga6ed19ec7dd00eb7f86e731973e503d38"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaafe4466dbf996db5b4f65b2154184374"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___r_t_o_s.html#gaafe4466dbf996db5b4f65b2154184374">ATOMIC_ADD_RETURN</a> (ATOMIC_T *v, int i)</td></tr>
<tr class="memdesc:gaafe4466dbf996db5b4f65b2154184374"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function adds "i" to the contained "v" and returns the result. <a href="#gaafe4466dbf996db5b4f65b2154184374">More...</a><br /></td></tr>
<tr class="separator:gaafe4466dbf996db5b4f65b2154184374"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gab2a0f53c84834521a0794d3c317fcdd7"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___r_t_o_s.html#gab2a0f53c84834521a0794d3c317fcdd7">ATOMIC_SUB_RETURN</a> (ATOMIC_T *v, int i)</td></tr>
<tr class="memdesc:gab2a0f53c84834521a0794d3c317fcdd7"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function subtracts "i" from th econtained "v" and returns the result. <a href="#gab2a0f53c84834521a0794d3c317fcdd7">More...</a><br /></td></tr>
<tr class="separator:gab2a0f53c84834521a0794d3c317fcdd7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga8ec0db9ec483df31ae5543c47c9ddaa5"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___r_t_o_s.html#ga8ec0db9ec483df31ae5543c47c9ddaa5">ATOMIC_INC_RETURN</a> (ATOMIC_T *v)</td></tr>
<tr class="memdesc:ga8ec0db9ec483df31ae5543c47c9ddaa5"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function adds 1 to the contained "v" and returns the result. <a href="#ga8ec0db9ec483df31ae5543c47c9ddaa5">More...</a><br /></td></tr>
<tr class="separator:ga8ec0db9ec483df31ae5543c47c9ddaa5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gad9fc2abd337dff5eb39d0dcaf245096c"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___r_t_o_s.html#gad9fc2abd337dff5eb39d0dcaf245096c">ATOMIC_DEC_RETURN</a> (ATOMIC_T *v)</td></tr>
<tr class="memdesc:gad9fc2abd337dff5eb39d0dcaf245096c"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function subtracts 1 from th econtained "v" and returns the result. <a href="#gad9fc2abd337dff5eb39d0dcaf245096c">More...</a><br /></td></tr>
<tr class="separator:gad9fc2abd337dff5eb39d0dcaf245096c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga9fec214a366463f97068abc3d5bfb687"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___r_t_o_s.html#ga9fec214a366463f97068abc3d5bfb687">ATOMIC_DEC_AND_TEST</a> (ATOMIC_T *v)</td></tr>
<tr class="memdesc:ga9fec214a366463f97068abc3d5bfb687"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function subtracts 1 from th econtained "v" and test if the result equals 0. <a href="#ga9fec214a366463f97068abc3d5bfb687">More...</a><br /></td></tr>
<tr class="separator:ga9fec214a366463f97068abc3d5bfb687"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga9dc460001f4896c25c187a1bf9b5f858"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga9dc460001f4896c25c187a1bf9b5f858"></a>
u64&#160;</td><td class="memItemRight" valign="bottom"><b>rtw_modular64</b> (u64 x, u64 y)</td></tr>
<tr class="separator:ga9dc460001f4896c25c187a1bf9b5f858"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga544cb429c5677ce1d0bd5f354c2b7673"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___r_t_o_s.html#ga544cb429c5677ce1d0bd5f354c2b7673">rtw_get_random_bytes</a> (void *dst, u32 size)</td></tr>
<tr class="memdesc:ga544cb429c5677ce1d0bd5f354c2b7673"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function generates random bytes. <a href="#ga544cb429c5677ce1d0bd5f354c2b7673">More...</a><br /></td></tr>
<tr class="separator:ga544cb429c5677ce1d0bd5f354c2b7673"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gacfe16158e1e19265e765c0b85399919d"><td class="memItemLeft" align="right" valign="top">u32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___r_t_o_s.html#gacfe16158e1e19265e765c0b85399919d">rtw_getFreeHeapSize</a> (void)</td></tr>
<tr class="memdesc:gacfe16158e1e19265e765c0b85399919d"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function gets the available heap size. <a href="#gacfe16158e1e19265e765c0b85399919d">More...</a><br /></td></tr>
<tr class="separator:gacfe16158e1e19265e765c0b85399919d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga902a5016ea1baf4937382c579b3f83b1"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga902a5016ea1baf4937382c579b3f83b1"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>flush_signals_thread</b> (void)</td></tr>
<tr class="separator:ga902a5016ea1baf4937382c579b3f83b1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gacf87f11f7a0f0b78efc5fd5156bfa83c"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___r_t_o_s.html#gacf87f11f7a0f0b78efc5fd5156bfa83c">rtw_acquire_wakelock</a> (void)</td></tr>
<tr class="memdesc:gacf87f11f7a0f0b78efc5fd5156bfa83c"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function indicates that the WLAN needs to stay on which means cannot go into power saving mode. <a href="#gacf87f11f7a0f0b78efc5fd5156bfa83c">More...</a><br /></td></tr>
<tr class="separator:gacf87f11f7a0f0b78efc5fd5156bfa83c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga1471dbb012522a892cc24edb3d93ba21"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___r_t_o_s.html#ga1471dbb012522a892cc24edb3d93ba21">rtw_release_wakelock</a> (void)</td></tr>
<tr class="memdesc:ga1471dbb012522a892cc24edb3d93ba21"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function indicates that the WLAN does not need to stay on which means can go into power saving mode. <a href="#ga1471dbb012522a892cc24edb3d93ba21">More...</a><br /></td></tr>
<tr class="separator:ga1471dbb012522a892cc24edb3d93ba21"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf05bab7536fa13a124a6d4ca30aa8db1"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaf05bab7536fa13a124a6d4ca30aa8db1"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>rtw_wakelock_timeout</b> (u32 timeout)</td></tr>
<tr class="separator:gaf05bab7536fa13a124a6d4ca30aa8db1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaa51afb2660acc623a9b423e6f8d5f7ec"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___r_t_o_s.html#gaa51afb2660acc623a9b423e6f8d5f7ec">rtw_create_task</a> (struct <a class="el" href="structtask__struct.html">task_struct</a> *task, const char *name, u32 stack_size, u32 priority, thread_func_t func, void *thctx)</td></tr>
<tr class="memdesc:gaa51afb2660acc623a9b423e6f8d5f7ec"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function creates a new task and adds it to the list of tasks that are ready to run. <a href="#gaa51afb2660acc623a9b423e6f8d5f7ec">More...</a><br /></td></tr>
<tr class="separator:gaa51afb2660acc623a9b423e6f8d5f7ec"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gad2c40877bebfdd7c08484792e7a0bc24"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___r_t_o_s.html#gad2c40877bebfdd7c08484792e7a0bc24">rtw_delete_task</a> (struct <a class="el" href="structtask__struct.html">task_struct</a> *task)</td></tr>
<tr class="memdesc:gad2c40877bebfdd7c08484792e7a0bc24"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function deletes a task. <a href="#gad2c40877bebfdd7c08484792e7a0bc24">More...</a><br /></td></tr>
<tr class="separator:gad2c40877bebfdd7c08484792e7a0bc24"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga9d259d21a6ce29d0805e8f36f4ddfcc4"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___r_t_o_s.html#ga9d259d21a6ce29d0805e8f36f4ddfcc4">rtw_wakeup_task</a> (struct <a class="el" href="structtask__struct.html">task_struct</a> *task)</td></tr>
<tr class="memdesc:ga9d259d21a6ce29d0805e8f36f4ddfcc4"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function wake up a task. <a href="#ga9d259d21a6ce29d0805e8f36f4ddfcc4">More...</a><br /></td></tr>
<tr class="separator:ga9d259d21a6ce29d0805e8f36f4ddfcc4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gabb9c7c644b1163085e9f196d8a543b7d"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___r_t_o_s.html#gabb9c7c644b1163085e9f196d8a543b7d">rtw_create_worker_thread</a> (<a class="el" href="structrtw__worker__thread__t.html">rtw_worker_thread_t</a> *worker_thread, u8 priority, u32 stack_size, u32 event_queue_size)</td></tr>
<tr class="memdesc:gabb9c7c644b1163085e9f196d8a543b7d"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function creates a new worker thread. <a href="#gabb9c7c644b1163085e9f196d8a543b7d">More...</a><br /></td></tr>
<tr class="separator:gabb9c7c644b1163085e9f196d8a543b7d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga3d7555282b121476074275d0a3b3eb70"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___r_t_o_s.html#ga3d7555282b121476074275d0a3b3eb70">rtw_delete_worker_thread</a> (<a class="el" href="structrtw__worker__thread__t.html">rtw_worker_thread_t</a> *worker_thread)</td></tr>
<tr class="memdesc:ga3d7555282b121476074275d0a3b3eb70"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function deletes a worker thread. <a href="#ga3d7555282b121476074275d0a3b3eb70">More...</a><br /></td></tr>
<tr class="separator:ga3d7555282b121476074275d0a3b3eb70"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga565da458ab0ac16b51792cc065c54343"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga565da458ab0ac16b51792cc065c54343"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>rtw_init_delayed_work</b> (struct <a class="el" href="structdelayed__work.html">delayed_work</a> *dwork, work_func_t func, const char *name)</td></tr>
<tr class="separator:ga565da458ab0ac16b51792cc065c54343"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga33287dd308dd918a125295b74f7271a9"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga33287dd308dd918a125295b74f7271a9"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>rtw_deinit_delayed_work</b> (struct <a class="el" href="structdelayed__work.html">delayed_work</a> *dwork)</td></tr>
<tr class="separator:ga33287dd308dd918a125295b74f7271a9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gad89c16f4403ce1715c650ecad30ae458"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gad89c16f4403ce1715c650ecad30ae458"></a>
int&#160;</td><td class="memItemRight" valign="bottom"><b>rtw_queue_delayed_work</b> (struct workqueue_struct *wq, struct <a class="el" href="structdelayed__work.html">delayed_work</a> *dwork, u32 delay, void *context)</td></tr>
<tr class="separator:gad89c16f4403ce1715c650ecad30ae458"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga2207ff998ec1b65d9336aaad82c3dcea"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga2207ff998ec1b65d9336aaad82c3dcea"></a>
BOOLEAN&#160;</td><td class="memItemRight" valign="bottom"><b>rtw_cancel_delayed_work</b> (struct <a class="el" href="structdelayed__work.html">delayed_work</a> *dwork)</td></tr>
<tr class="separator:ga2207ff998ec1b65d9336aaad82c3dcea"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga4f70a3abe91f6e1958eabce586f3b704"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___r_t_o_s.html#ga4f70a3abe91f6e1958eabce586f3b704">rtw_thread_enter</a> (char *name)</td></tr>
<tr class="memdesc:ga4f70a3abe91f6e1958eabce586f3b704"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function prints the name of the thread in DBG_INFO. <a href="#ga4f70a3abe91f6e1958eabce586f3b704">More...</a><br /></td></tr>
<tr class="separator:ga4f70a3abe91f6e1958eabce586f3b704"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac86052516c9cb6c3a4c1bc90e1cca303"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___r_t_o_s.html#gac86052516c9cb6c3a4c1bc90e1cca303">rtw_thread_exit</a> (void)</td></tr>
<tr class="memdesc:gac86052516c9cb6c3a4c1bc90e1cca303"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function exits the calling thread. <a href="#gac86052516c9cb6c3a4c1bc90e1cca303">More...</a><br /></td></tr>
<tr class="separator:gac86052516c9cb6c3a4c1bc90e1cca303"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga15a2aff5d28a079185ae68f78ff1ce7f"><td class="memItemLeft" align="right" valign="top">u8&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___r_t_o_s.html#ga15a2aff5d28a079185ae68f78ff1ce7f">rtw_get_scheduler_state</a> (void)</td></tr>
<tr class="memdesc:ga15a2aff5d28a079185ae68f78ff1ce7f"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function gets the scheduler state of the calling thread. <a href="#ga15a2aff5d28a079185ae68f78ff1ce7f">More...</a><br /></td></tr>
<tr class="separator:ga15a2aff5d28a079185ae68f78ff1ce7f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac584192034fe149a89a9c6ff816cb824"><td class="memItemLeft" align="right" valign="top">_timerHandle&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___r_t_o_s.html#gac584192034fe149a89a9c6ff816cb824">rtw_timerCreate</a> (const signed char *pcTimerName, osdepTickType xTimerPeriodInTicks, u32 uxAutoReload, void *pvTimerID, TIMER_FUN pxCallbackFunction)</td></tr>
<tr class="memdesc:gac584192034fe149a89a9c6ff816cb824"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function creates a new software timer instance. <a href="#gac584192034fe149a89a9c6ff816cb824">More...</a><br /></td></tr>
<tr class="separator:gac584192034fe149a89a9c6ff816cb824"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga70c7ca6935ebab8b73083de9893afd09"><td class="memItemLeft" align="right" valign="top">u32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___r_t_o_s.html#ga70c7ca6935ebab8b73083de9893afd09">rtw_timerDelete</a> (_timerHandle xTimer, osdepTickType xBlockTime)</td></tr>
<tr class="memdesc:ga70c7ca6935ebab8b73083de9893afd09"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function deletes a timer that was previously created using rtw_timerCreate. <a href="#ga70c7ca6935ebab8b73083de9893afd09">More...</a><br /></td></tr>
<tr class="separator:ga70c7ca6935ebab8b73083de9893afd09"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga2a7497759cd3304af7e1ea19fe9d3627"><td class="memItemLeft" align="right" valign="top">u32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___r_t_o_s.html#ga2a7497759cd3304af7e1ea19fe9d3627">rtw_timerIsTimerActive</a> (_timerHandle xTimer)</td></tr>
<tr class="memdesc:ga2a7497759cd3304af7e1ea19fe9d3627"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function queries a timer to see if it is active or dormant. <a href="#ga2a7497759cd3304af7e1ea19fe9d3627">More...</a><br /></td></tr>
<tr class="separator:ga2a7497759cd3304af7e1ea19fe9d3627"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga658aea6db26460a6d9d9b3c4d1f46d21"><td class="memItemLeft" align="right" valign="top">u32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___r_t_o_s.html#ga658aea6db26460a6d9d9b3c4d1f46d21">rtw_timerStop</a> (_timerHandle xTimer, osdepTickType xBlockTime)</td></tr>
<tr class="memdesc:ga658aea6db26460a6d9d9b3c4d1f46d21"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function stops a timer that was previously started. <a href="#ga658aea6db26460a6d9d9b3c4d1f46d21">More...</a><br /></td></tr>
<tr class="separator:ga658aea6db26460a6d9d9b3c4d1f46d21"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gabbc6483e7d29c8ab1918784d20724ff6"><td class="memItemLeft" align="right" valign="top">u32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___r_t_o_s.html#gabbc6483e7d29c8ab1918784d20724ff6">rtw_timerChangePeriod</a> (_timerHandle xTimer, osdepTickType xNewPeriod, osdepTickType xBlockTime)</td></tr>
<tr class="memdesc:gabbc6483e7d29c8ab1918784d20724ff6"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function changes the period of a timer that was previously created. <a href="#gabbc6483e7d29c8ab1918784d20724ff6">More...</a><br /></td></tr>
<tr class="separator:gabbc6483e7d29c8ab1918784d20724ff6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga5b8024a79fa980c8f84f1f8b136371df"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga5b8024a79fa980c8f84f1f8b136371df"></a>
void *&#160;</td><td class="memItemRight" valign="bottom"><b>rtw_timerGetID</b> (_timerHandle xTimer)</td></tr>
<tr class="separator:ga5b8024a79fa980c8f84f1f8b136371df"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga870f0629ff9abd4c65e6b23d3ff033b0"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga870f0629ff9abd4c65e6b23d3ff033b0"></a>
u32&#160;</td><td class="memItemRight" valign="bottom"><b>rtw_timerStart</b> (_timerHandle xTimer, osdepTickType xBlockTime)</td></tr>
<tr class="separator:ga870f0629ff9abd4c65e6b23d3ff033b0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf2bcbeec1f2b6241ab5260cb315cee9b"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaf2bcbeec1f2b6241ab5260cb315cee9b"></a>
u32&#160;</td><td class="memItemRight" valign="bottom"><b>rtw_timerStartFromISR</b> (_timerHandle xTimer, osdepBASE_TYPE *pxHigherPriorityTaskWoken)</td></tr>
<tr class="separator:gaf2bcbeec1f2b6241ab5260cb315cee9b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga3f3c7b4acb0442110b221865a24d464f"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga3f3c7b4acb0442110b221865a24d464f"></a>
u32&#160;</td><td class="memItemRight" valign="bottom"><b>rtw_timerStopFromISR</b> (_timerHandle xTimer, osdepBASE_TYPE *pxHigherPriorityTaskWoken)</td></tr>
<tr class="separator:ga3f3c7b4acb0442110b221865a24d464f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga6c095d925bf041e148c49b7a88d059ac"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga6c095d925bf041e148c49b7a88d059ac"></a>
u32&#160;</td><td class="memItemRight" valign="bottom"><b>rtw_timerResetFromISR</b> (_timerHandle xTimer, osdepBASE_TYPE *pxHigherPriorityTaskWoken)</td></tr>
<tr class="separator:ga6c095d925bf041e148c49b7a88d059ac"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gae02ea10456b91eca9171ad79e028d13b"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gae02ea10456b91eca9171ad79e028d13b"></a>
u32&#160;</td><td class="memItemRight" valign="bottom"><b>rtw_timerChangePeriodFromISR</b> (_timerHandle xTimer, osdepTickType xNewPeriod, osdepBASE_TYPE *pxHigherPriorityTaskWoken)</td></tr>
<tr class="separator:gae02ea10456b91eca9171ad79e028d13b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gab34d0513b0f4fe83f00fb4b9d1337374"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gab34d0513b0f4fe83f00fb4b9d1337374"></a>
u32&#160;</td><td class="memItemRight" valign="bottom"><b>rtw_timerReset</b> (_timerHandle xTimer, osdepTickType xBlockTime)</td></tr>
<tr class="separator:gab34d0513b0f4fe83f00fb4b9d1337374"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="var-members"></a>
Variables</h2></td></tr>
<tr class="memitem:gabb2f46df7b94e2d43654685f892a96fd"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gabb2f46df7b94e2d43654685f892a96fd"></a>
_timerHandle&#160;</td><td class="memItemRight" valign="bottom"><b>timer_hdl</b></td></tr>
<tr class="separator:gabb2f46df7b94e2d43654685f892a96fd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gad6eab33201496ee923f45155e6a47b58"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gad6eab33201496ee923f45155e6a47b58"></a>
unsigned long&#160;</td><td class="memItemRight" valign="bottom"><b>data</b></td></tr>
<tr class="separator:gad6eab33201496ee923f45155e6a47b58"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gafb29d621bb8c12b62eefbb220cab360b"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gafb29d621bb8c12b62eefbb220cab360b"></a>
void(*&#160;</td><td class="memItemRight" valign="bottom"><b>function</b> )(void *)</td></tr>
<tr class="separator:gafb29d621bb8c12b62eefbb220cab360b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gad87bb135e802a9cd9c35e58f6a74d417"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gad87bb135e802a9cd9c35e58f6a74d417"></a>
const char *&#160;</td><td class="memItemRight" valign="bottom"><b>task_name</b></td></tr>
<tr class="separator:gad87bb135e802a9cd9c35e58f6a74d417"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga70924c677db263786ed45f537de4005e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga70924c677db263786ed45f537de4005e"></a>
_thread_hdl_&#160;</td><td class="memItemRight" valign="bottom"><b>task</b></td></tr>
<tr class="separator:ga70924c677db263786ed45f537de4005e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga8f8f80d37794cde9472343e4487ba3eb"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga8f8f80d37794cde9472343e4487ba3eb"></a>
const char *&#160;</td><td class="memItemRight" valign="bottom"><b>name</b></td></tr>
<tr class="separator:ga8f8f80d37794cde9472343e4487ba3eb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga5b2c63267e51fbd085f33de389c6ac3c"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga5b2c63267e51fbd085f33de389c6ac3c"></a>
u32&#160;</td><td class="memItemRight" valign="bottom"><b>queue_num</b></td></tr>
<tr class="separator:ga5b2c63267e51fbd085f33de389c6ac3c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga21358e8ad5bfd5ee01efd4b80c88c025"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga21358e8ad5bfd5ee01efd4b80c88c025"></a>
u32&#160;</td><td class="memItemRight" valign="bottom"><b>cur_queue_num</b></td></tr>
<tr class="separator:ga21358e8ad5bfd5ee01efd4b80c88c025"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga642247da935ee22f2a6df5dff8090b00"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga642247da935ee22f2a6df5dff8090b00"></a>
_sema&#160;</td><td class="memItemRight" valign="bottom"><b>wakeup_sema</b></td></tr>
<tr class="separator:ga642247da935ee22f2a6df5dff8090b00"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gadfb5e9456290f40f5bbe97c379cd35ff"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gadfb5e9456290f40f5bbe97c379cd35ff"></a>
_sema&#160;</td><td class="memItemRight" valign="bottom"><b>terminate_sema</b></td></tr>
<tr class="separator:gadfb5e9456290f40f5bbe97c379cd35ff"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf59a81cd2de23527c375eacdacdda7ec"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaf59a81cd2de23527c375eacdacdda7ec"></a>
u32&#160;</td><td class="memItemRight" valign="bottom"><b>blocked</b></td></tr>
<tr class="separator:gaf59a81cd2de23527c375eacdacdda7ec"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gacf5740f940cb279ee22baa27a24873e9"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gacf5740f940cb279ee22baa27a24873e9"></a>
u32&#160;</td><td class="memItemRight" valign="bottom"><b>callback_running</b></td></tr>
<tr class="separator:gacf5740f940cb279ee22baa27a24873e9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga0cad63dec7a772155329d267e88b328a"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga0cad63dec7a772155329d267e88b328a"></a>
_xqueue&#160;</td><td class="memItemRight" valign="bottom"><b>event_queue</b></td></tr>
<tr class="separator:ga0cad63dec7a772155329d267e88b328a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga0cefcae54afc192b78e64fb1d4dc280b"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga0cefcae54afc192b78e64fb1d4dc280b"></a>
struct <a class="el" href="structtask__struct.html">task_struct</a>&#160;</td><td class="memItemRight" valign="bottom"><b>thread</b></td></tr>
<tr class="separator:ga0cefcae54afc192b78e64fb1d4dc280b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga1abdc60a9d65aaf0e2825977d9642198"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga1abdc60a9d65aaf0e2825977d9642198"></a>
event_handler_t&#160;</td><td class="memItemRight" valign="bottom"><b>function</b></td></tr>
<tr class="separator:ga1abdc60a9d65aaf0e2825977d9642198"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga1fe855c208bc17a51a4d34fefdb2d5b1"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga1fe855c208bc17a51a4d34fefdb2d5b1"></a>
char *&#160;</td><td class="memItemRight" valign="bottom"><b>buf</b></td></tr>
<tr class="separator:ga1fe855c208bc17a51a4d34fefdb2d5b1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga7666bbf00997cc13da27d55cb05d27c4"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga7666bbf00997cc13da27d55cb05d27c4"></a>
int&#160;</td><td class="memItemRight" valign="bottom"><b>buf_len</b></td></tr>
<tr class="separator:ga7666bbf00997cc13da27d55cb05d27c4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac8bf36fe0577cba66bccda3a6f7e80a4"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gac8bf36fe0577cba66bccda3a6f7e80a4"></a>
int&#160;</td><td class="memItemRight" valign="bottom"><b>flags</b></td></tr>
<tr class="separator:gac8bf36fe0577cba66bccda3a6f7e80a4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga0f53d287ac7c064d1a49d4bd93ca1cb9"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga0f53d287ac7c064d1a49d4bd93ca1cb9"></a>
void *&#160;</td><td class="memItemRight" valign="bottom"><b>user_data</b></td></tr>
<tr class="separator:ga0f53d287ac7c064d1a49d4bd93ca1cb9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga1f00f18b91d5a820f2c43064243aa86e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga1f00f18b91d5a820f2c43064243aa86e"></a>
struct list_head&#160;</td><td class="memItemRight" valign="bottom"><b>list</b></td></tr>
<tr class="separator:ga1f00f18b91d5a820f2c43064243aa86e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gabb2f46df7b94e2d43654685f892a96fd"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gabb2f46df7b94e2d43654685f892a96fd"></a>
_timerHandle&#160;</td><td class="memItemRight" valign="bottom"><b>timer_hdl</b></td></tr>
<tr class="separator:gabb2f46df7b94e2d43654685f892a96fd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaa4047137ccaf91876ca8c33565c41688"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaa4047137ccaf91876ca8c33565c41688"></a>
<a class="el" href="structrtw__event__message__t.html">rtw_event_message_t</a>&#160;</td><td class="memItemRight" valign="bottom"><b>message</b></td></tr>
<tr class="separator:gaa4047137ccaf91876ca8c33565c41688"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gad15c3e21590518e8e8c55a89efae6f89"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gad15c3e21590518e8e8c55a89efae6f89"></a>
<a class="el" href="structrtw__worker__thread__t.html">rtw_worker_thread_t</a> *&#160;</td><td class="memItemRight" valign="bottom"><b>worker_thread</b></td></tr>
<tr class="separator:gad15c3e21590518e8e8c55a89efae6f89"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaab0b8a4320e771becf663b000c2cd7e1"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaab0b8a4320e771becf663b000c2cd7e1"></a>
u32&#160;</td><td class="memItemRight" valign="bottom"><b>timeout</b></td></tr>
<tr class="separator:gaab0b8a4320e771becf663b000c2cd7e1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga5486f3329aeeb7cefc072216d3dd74a4"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga5486f3329aeeb7cefc072216d3dd74a4"></a>
_list&#160;</td><td class="memItemRight" valign="bottom"><b>list</b></td></tr>
<tr class="separator:ga5486f3329aeeb7cefc072216d3dd74a4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga0e5b72ac4f845f11204b39c8fb0f5d91"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga0e5b72ac4f845f11204b39c8fb0f5d91"></a>
u32&#160;</td><td class="memItemRight" valign="bottom"><b>data</b></td></tr>
<tr class="separator:ga0e5b72ac4f845f11204b39c8fb0f5d91"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga24740334b036f874b9efddb4bf157d33"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga24740334b036f874b9efddb4bf157d33"></a>
work_func_t&#160;</td><td class="memItemRight" valign="bottom"><b>func</b></td></tr>
<tr class="separator:ga24740334b036f874b9efddb4bf157d33"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gae376f130b17d169ee51be68077a89ed0"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gae376f130b17d169ee51be68077a89ed0"></a>
void *&#160;</td><td class="memItemRight" valign="bottom"><b>context</b></td></tr>
<tr class="separator:gae376f130b17d169ee51be68077a89ed0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga5db04cfb338f81690a176db820c75426"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga5db04cfb338f81690a176db820c75426"></a>
struct <a class="el" href="structtask__struct.html">task_struct</a> *&#160;</td><td class="memItemRight" valign="bottom"><b>used_wq</b></td></tr>
<tr class="separator:ga5db04cfb338f81690a176db820c75426"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga623997e11b94d7c467ce26627cc488a2"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga623997e11b94d7c467ce26627cc488a2"></a>
struct <a class="el" href="structwork__struct.html">work_struct</a>&#160;</td><td class="memItemRight" valign="bottom"><b>work</b></td></tr>
<tr class="separator:ga623997e11b94d7c467ce26627cc488a2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gae8aedee6c0bd2f7edbb10f18d574f107"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gae8aedee6c0bd2f7edbb10f18d574f107"></a>
struct <a class="el" href="structtimer__list.html">timer_list</a>&#160;</td><td class="memItemRight" valign="bottom"><b>timer</b></td></tr>
<tr class="separator:gae8aedee6c0bd2f7edbb10f18d574f107"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga1f00f18b91d5a820f2c43064243aa86e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga1f00f18b91d5a820f2c43064243aa86e"></a>
struct list_head&#160;</td><td class="memItemRight" valign="bottom"><b>list</b></td></tr>
<tr class="separator:ga1f00f18b91d5a820f2c43064243aa86e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga439227feff9d7f55384e8780cfc2eb82"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga439227feff9d7f55384e8780cfc2eb82"></a>
int&#160;</td><td class="memItemRight" valign="bottom"><b>size</b></td></tr>
<tr class="separator:ga439227feff9d7f55384e8780cfc2eb82"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gadd9af9569af79ec26dd741fb226b38ba"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gadd9af9569af79ec26dd741fb226b38ba"></a>
void *&#160;</td><td class="memItemRight" valign="bottom"><b>ptr</b></td></tr>
<tr class="separator:gadd9af9569af79ec26dd741fb226b38ba"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gad854820a3f414d9a12bbd125bcd53d20"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gad854820a3f414d9a12bbd125bcd53d20"></a>
u8 *(*&#160;</td><td class="memItemRight" valign="bottom"><b>rtw_vmalloc</b> )(u32 sz)</td></tr>
<tr class="separator:gad854820a3f414d9a12bbd125bcd53d20"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga8cb64b440254d991cf145e4151f28fbc"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga8cb64b440254d991cf145e4151f28fbc"></a>
u8 *(*&#160;</td><td class="memItemRight" valign="bottom"><b>rtw_zvmalloc</b> )(u32 sz)</td></tr>
<tr class="separator:ga8cb64b440254d991cf145e4151f28fbc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga9a73eb2d356f387097b998c86a620d37"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga9a73eb2d356f387097b998c86a620d37"></a>
void(*&#160;</td><td class="memItemRight" valign="bottom"><b>rtw_vmfree</b> )(u8 *pbuf, u32 sz)</td></tr>
<tr class="separator:ga9a73eb2d356f387097b998c86a620d37"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gafb5e23995fe962703b7e1a935a7c1bf2"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gafb5e23995fe962703b7e1a935a7c1bf2"></a>
u8 *(*&#160;</td><td class="memItemRight" valign="bottom"><b>rtw_malloc</b> )(u32 sz)</td></tr>
<tr class="separator:gafb5e23995fe962703b7e1a935a7c1bf2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga4f2e9e56d84ee06e5d5257e3dd451ea3"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga4f2e9e56d84ee06e5d5257e3dd451ea3"></a>
u8 *(*&#160;</td><td class="memItemRight" valign="bottom"><b>rtw_zmalloc</b> )(u32 sz)</td></tr>
<tr class="separator:ga4f2e9e56d84ee06e5d5257e3dd451ea3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga98f577c6c41edaae4e45bb5096fe3191"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga98f577c6c41edaae4e45bb5096fe3191"></a>
void(*&#160;</td><td class="memItemRight" valign="bottom"><b>rtw_mfree</b> )(u8 *pbuf, u32 sz)</td></tr>
<tr class="separator:ga98f577c6c41edaae4e45bb5096fe3191"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf10cb1336e49d9baf316c73366bb24ef"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaf10cb1336e49d9baf316c73366bb24ef"></a>
void(*&#160;</td><td class="memItemRight" valign="bottom"><b>rtw_memcpy</b> )(void *dst, void *src, u32 sz)</td></tr>
<tr class="separator:gaf10cb1336e49d9baf316c73366bb24ef"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga3704c9fca7f09f70afdf8e583e669954"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga3704c9fca7f09f70afdf8e583e669954"></a>
int(*&#160;</td><td class="memItemRight" valign="bottom"><b>rtw_memcmp</b> )(void *dst, void *src, u32 sz)</td></tr>
<tr class="separator:ga3704c9fca7f09f70afdf8e583e669954"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gadf692021b87c86f1b84c2dd7838d7b47"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gadf692021b87c86f1b84c2dd7838d7b47"></a>
void(*&#160;</td><td class="memItemRight" valign="bottom"><b>rtw_memset</b> )(void *pbuf, int c, u32 sz)</td></tr>
<tr class="separator:gadf692021b87c86f1b84c2dd7838d7b47"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gad50de3b77e1b461177709d7079b79ee9"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gad50de3b77e1b461177709d7079b79ee9"></a>
void(*&#160;</td><td class="memItemRight" valign="bottom"><b>rtw_init_sema</b> )(_sema *sema, int init_val)</td></tr>
<tr class="separator:gad50de3b77e1b461177709d7079b79ee9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga20c2396c3b5522c38df8190f1fa8f11d"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga20c2396c3b5522c38df8190f1fa8f11d"></a>
void(*&#160;</td><td class="memItemRight" valign="bottom"><b>rtw_free_sema</b> )(_sema *sema)</td></tr>
<tr class="separator:ga20c2396c3b5522c38df8190f1fa8f11d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga8553039f96368851eba363e6b1c6627a"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga8553039f96368851eba363e6b1c6627a"></a>
void(*&#160;</td><td class="memItemRight" valign="bottom"><b>rtw_up_sema</b> )(_sema *sema)</td></tr>
<tr class="separator:ga8553039f96368851eba363e6b1c6627a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaa19ddbaf66d7a2f64a06328b0049e417"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaa19ddbaf66d7a2f64a06328b0049e417"></a>
void(*&#160;</td><td class="memItemRight" valign="bottom"><b>rtw_up_sema_from_isr</b> )(_sema *sema)</td></tr>
<tr class="separator:gaa19ddbaf66d7a2f64a06328b0049e417"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga29300857f38e5371caa87c733507ec05"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga29300857f38e5371caa87c733507ec05"></a>
u32(*&#160;</td><td class="memItemRight" valign="bottom"><b>rtw_down_timeout_sema</b> )(_sema *sema, u32 timeout)</td></tr>
<tr class="separator:ga29300857f38e5371caa87c733507ec05"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga810ce81ffd0b72e1e9ae6679ae238a15"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga810ce81ffd0b72e1e9ae6679ae238a15"></a>
void(*&#160;</td><td class="memItemRight" valign="bottom"><b>rtw_mutex_init</b> )(_mutex *pmutex)</td></tr>
<tr class="separator:ga810ce81ffd0b72e1e9ae6679ae238a15"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf61ae0df63c9d166340386fc95f8a346"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaf61ae0df63c9d166340386fc95f8a346"></a>
void(*&#160;</td><td class="memItemRight" valign="bottom"><b>rtw_mutex_free</b> )(_mutex *pmutex)</td></tr>
<tr class="separator:gaf61ae0df63c9d166340386fc95f8a346"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac7ecf5efcf36fccb05017348f3753a77"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gac7ecf5efcf36fccb05017348f3753a77"></a>
void(*&#160;</td><td class="memItemRight" valign="bottom"><b>rtw_mutex_get</b> )(_mutex *pmutex)</td></tr>
<tr class="separator:gac7ecf5efcf36fccb05017348f3753a77"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga11441ccfe5ad7ceacff8418a041f6aa6"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga11441ccfe5ad7ceacff8418a041f6aa6"></a>
int(*&#160;</td><td class="memItemRight" valign="bottom"><b>rtw_mutex_get_timeout</b> )(_mutex *pmutex, u32 timeout_ms)</td></tr>
<tr class="separator:ga11441ccfe5ad7ceacff8418a041f6aa6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf77a8a385244db759efe226633c45c30"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaf77a8a385244db759efe226633c45c30"></a>
void(*&#160;</td><td class="memItemRight" valign="bottom"><b>rtw_mutex_put</b> )(_mutex *pmutex)</td></tr>
<tr class="separator:gaf77a8a385244db759efe226633c45c30"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gae94d05a3ee42ff14809b5d05054d11ed"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gae94d05a3ee42ff14809b5d05054d11ed"></a>
void(*&#160;</td><td class="memItemRight" valign="bottom"><b>rtw_enter_critical</b> )(_lock *plock, _irqL *pirqL)</td></tr>
<tr class="separator:gae94d05a3ee42ff14809b5d05054d11ed"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac1a58a367c73472f0d6b1a95dab7cd21"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gac1a58a367c73472f0d6b1a95dab7cd21"></a>
void(*&#160;</td><td class="memItemRight" valign="bottom"><b>rtw_exit_critical</b> )(_lock *plock, _irqL *pirqL)</td></tr>
<tr class="separator:gac1a58a367c73472f0d6b1a95dab7cd21"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga29537ba3a6d649a770233095281fd641"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga29537ba3a6d649a770233095281fd641"></a>
void(*&#160;</td><td class="memItemRight" valign="bottom"><b>rtw_enter_critical_from_isr</b> )(_lock *plock, _irqL *pirqL)</td></tr>
<tr class="separator:ga29537ba3a6d649a770233095281fd641"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gabbb45d4a992f98ff9f510bd12c97140d"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gabbb45d4a992f98ff9f510bd12c97140d"></a>
void(*&#160;</td><td class="memItemRight" valign="bottom"><b>rtw_exit_critical_from_isr</b> )(_lock *plock, _irqL *pirqL)</td></tr>
<tr class="separator:gabbb45d4a992f98ff9f510bd12c97140d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga48199da00ae10baf1e9b556b2c0070c2"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga48199da00ae10baf1e9b556b2c0070c2"></a>
void(*&#160;</td><td class="memItemRight" valign="bottom"><b>rtw_enter_critical_bh</b> )(_lock *plock, _irqL *pirqL)</td></tr>
<tr class="separator:ga48199da00ae10baf1e9b556b2c0070c2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf54ee648e4b14f9778d61f89b9b9cfc4"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaf54ee648e4b14f9778d61f89b9b9cfc4"></a>
void(*&#160;</td><td class="memItemRight" valign="bottom"><b>rtw_exit_critical_bh</b> )(_lock *plock, _irqL *pirqL)</td></tr>
<tr class="separator:gaf54ee648e4b14f9778d61f89b9b9cfc4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaec4251f458acd81c6c3d157ac68765a8"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaec4251f458acd81c6c3d157ac68765a8"></a>
int(*&#160;</td><td class="memItemRight" valign="bottom"><b>rtw_enter_critical_mutex</b> )(_mutex *pmutex, _irqL *pirqL)</td></tr>
<tr class="separator:gaec4251f458acd81c6c3d157ac68765a8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaebaaaaee65d98cc32a763aa38c603508"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaebaaaaee65d98cc32a763aa38c603508"></a>
void(*&#160;</td><td class="memItemRight" valign="bottom"><b>rtw_exit_critical_mutex</b> )(_mutex *pmutex, _irqL *pirqL)</td></tr>
<tr class="separator:gaebaaaaee65d98cc32a763aa38c603508"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gae51a80e94bf6ebc2b8188f93f98be611"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gae51a80e94bf6ebc2b8188f93f98be611"></a>
void(*&#160;</td><td class="memItemRight" valign="bottom"><b>rtw_spinlock_init</b> )(_lock *plock)</td></tr>
<tr class="separator:gae51a80e94bf6ebc2b8188f93f98be611"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga2810a456eebed4abc34b4b21ee37ffe2"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga2810a456eebed4abc34b4b21ee37ffe2"></a>
void(*&#160;</td><td class="memItemRight" valign="bottom"><b>rtw_spinlock_free</b> )(_lock *plock)</td></tr>
<tr class="separator:ga2810a456eebed4abc34b4b21ee37ffe2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga75b1792b12a2cde579c67f10bc42893d"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga75b1792b12a2cde579c67f10bc42893d"></a>
void(*&#160;</td><td class="memItemRight" valign="bottom"><b>rtw_spin_lock</b> )(_lock *plock)</td></tr>
<tr class="separator:ga75b1792b12a2cde579c67f10bc42893d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gae4483a4de319496668928451e3eb20bc"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gae4483a4de319496668928451e3eb20bc"></a>
void(*&#160;</td><td class="memItemRight" valign="bottom"><b>rtw_spin_unlock</b> )(_lock *plock)</td></tr>
<tr class="separator:gae4483a4de319496668928451e3eb20bc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga5e0c2054ff5de28750e5cf3c6ef8e485"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga5e0c2054ff5de28750e5cf3c6ef8e485"></a>
void(*&#160;</td><td class="memItemRight" valign="bottom"><b>rtw_spinlock_irqsave</b> )(_lock *plock, _irqL *irqL)</td></tr>
<tr class="separator:ga5e0c2054ff5de28750e5cf3c6ef8e485"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga023c4ac001a01aab31c385230d76e4a4"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga023c4ac001a01aab31c385230d76e4a4"></a>
void(*&#160;</td><td class="memItemRight" valign="bottom"><b>rtw_spinunlock_irqsave</b> )(_lock *plock, _irqL *irqL)</td></tr>
<tr class="separator:ga023c4ac001a01aab31c385230d76e4a4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga209c19e146b41c62b4c944626a818b96"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga209c19e146b41c62b4c944626a818b96"></a>
int(*&#160;</td><td class="memItemRight" valign="bottom"><b>rtw_init_xqueue</b> )(_xqueue *queue, const char *name, u32 message_size, u32 number_of_messages)</td></tr>
<tr class="separator:ga209c19e146b41c62b4c944626a818b96"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga7f32d7b0dfb65652b4e10311c8a8baf5"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga7f32d7b0dfb65652b4e10311c8a8baf5"></a>
int(*&#160;</td><td class="memItemRight" valign="bottom"><b>rtw_push_to_xqueue</b> )(_xqueue *queue, void *message, u32 timeout_ms)</td></tr>
<tr class="separator:ga7f32d7b0dfb65652b4e10311c8a8baf5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaa5be7044fcfd6237626a12d7422971ce"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaa5be7044fcfd6237626a12d7422971ce"></a>
int(*&#160;</td><td class="memItemRight" valign="bottom"><b>rtw_pop_from_xqueue</b> )(_xqueue *queue, void *message, u32 timeout_ms)</td></tr>
<tr class="separator:gaa5be7044fcfd6237626a12d7422971ce"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaa41d865a53163c267d549791319bf2db"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaa41d865a53163c267d549791319bf2db"></a>
int(*&#160;</td><td class="memItemRight" valign="bottom"><b>rtw_deinit_xqueue</b> )(_xqueue *queue)</td></tr>
<tr class="separator:gaa41d865a53163c267d549791319bf2db"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga0940a7c33d8aa3b5c172ddca23e59694"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga0940a7c33d8aa3b5c172ddca23e59694"></a>
u32(*&#160;</td><td class="memItemRight" valign="bottom"><b>rtw_get_current_time</b> )(void)</td></tr>
<tr class="separator:ga0940a7c33d8aa3b5c172ddca23e59694"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gadb8488b162f8af06f621613b7f23c393"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gadb8488b162f8af06f621613b7f23c393"></a>
u32(*&#160;</td><td class="memItemRight" valign="bottom"><b>rtw_systime_to_ms</b> )(u32 systime)</td></tr>
<tr class="separator:gadb8488b162f8af06f621613b7f23c393"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga41509ad759f84dddca025a077575c306"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga41509ad759f84dddca025a077575c306"></a>
u32(*&#160;</td><td class="memItemRight" valign="bottom"><b>rtw_systime_to_sec</b> )(u32 systime)</td></tr>
<tr class="separator:ga41509ad759f84dddca025a077575c306"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gade4a70def7805eacb56e99ca8b331c15"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gade4a70def7805eacb56e99ca8b331c15"></a>
u32(*&#160;</td><td class="memItemRight" valign="bottom"><b>rtw_ms_to_systime</b> )(u32 ms)</td></tr>
<tr class="separator:gade4a70def7805eacb56e99ca8b331c15"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gacb0ff6a42ffe349b719971ceb39daec6"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gacb0ff6a42ffe349b719971ceb39daec6"></a>
u32(*&#160;</td><td class="memItemRight" valign="bottom"><b>rtw_sec_to_systime</b> )(u32 sec)</td></tr>
<tr class="separator:gacb0ff6a42ffe349b719971ceb39daec6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga161868560ea4eb05d93b7413a9967e3e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga161868560ea4eb05d93b7413a9967e3e"></a>
void(*&#160;</td><td class="memItemRight" valign="bottom"><b>rtw_msleep_os</b> )(int ms)</td></tr>
<tr class="separator:ga161868560ea4eb05d93b7413a9967e3e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga3b385ba89e84276edbd3066ffcd3b146"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga3b385ba89e84276edbd3066ffcd3b146"></a>
void(*&#160;</td><td class="memItemRight" valign="bottom"><b>rtw_usleep_os</b> )(int us)</td></tr>
<tr class="separator:ga3b385ba89e84276edbd3066ffcd3b146"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gad673b809326638cbd0c794825e2ca4eb"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gad673b809326638cbd0c794825e2ca4eb"></a>
void(*&#160;</td><td class="memItemRight" valign="bottom"><b>rtw_mdelay_os</b> )(int ms)</td></tr>
<tr class="separator:gad673b809326638cbd0c794825e2ca4eb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gab2c8d89e7b77ef980ce2894ba2f1cbd4"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gab2c8d89e7b77ef980ce2894ba2f1cbd4"></a>
void(*&#160;</td><td class="memItemRight" valign="bottom"><b>rtw_udelay_os</b> )(int us)</td></tr>
<tr class="separator:gab2c8d89e7b77ef980ce2894ba2f1cbd4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaea9b4b888ce277319242d5022700594f"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaea9b4b888ce277319242d5022700594f"></a>
void(*&#160;</td><td class="memItemRight" valign="bottom"><b>rtw_yield_os</b> )(void)</td></tr>
<tr class="separator:gaea9b4b888ce277319242d5022700594f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga513bf984170cecda12bd3e34609bb912"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga513bf984170cecda12bd3e34609bb912"></a>
void(*&#160;</td><td class="memItemRight" valign="bottom"><b>ATOMIC_SET</b> )(ATOMIC_T *v, int i)</td></tr>
<tr class="separator:ga513bf984170cecda12bd3e34609bb912"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga4c9c35304170f8afe3cf818aecd2809f"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga4c9c35304170f8afe3cf818aecd2809f"></a>
int(*&#160;</td><td class="memItemRight" valign="bottom"><b>ATOMIC_READ</b> )(ATOMIC_T *v)</td></tr>
<tr class="separator:ga4c9c35304170f8afe3cf818aecd2809f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga4d0e61df1d5ca72c617d3a5eb7d6ab0a"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga4d0e61df1d5ca72c617d3a5eb7d6ab0a"></a>
void(*&#160;</td><td class="memItemRight" valign="bottom"><b>ATOMIC_ADD</b> )(ATOMIC_T *v, int i)</td></tr>
<tr class="separator:ga4d0e61df1d5ca72c617d3a5eb7d6ab0a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf6ca0c1b77a32588930b926236cdf1ce"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaf6ca0c1b77a32588930b926236cdf1ce"></a>
void(*&#160;</td><td class="memItemRight" valign="bottom"><b>ATOMIC_SUB</b> )(ATOMIC_T *v, int i)</td></tr>
<tr class="separator:gaf6ca0c1b77a32588930b926236cdf1ce"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga8b154cb032de59e8acdd581493768ea0"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga8b154cb032de59e8acdd581493768ea0"></a>
void(*&#160;</td><td class="memItemRight" valign="bottom"><b>ATOMIC_INC</b> )(ATOMIC_T *v)</td></tr>
<tr class="separator:ga8b154cb032de59e8acdd581493768ea0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga099d1c127249e7b858caabe3f7fe7be4"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga099d1c127249e7b858caabe3f7fe7be4"></a>
void(*&#160;</td><td class="memItemRight" valign="bottom"><b>ATOMIC_DEC</b> )(ATOMIC_T *v)</td></tr>
<tr class="separator:ga099d1c127249e7b858caabe3f7fe7be4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga7fbcc3d7280f63c59ca0c6157837cd0c"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga7fbcc3d7280f63c59ca0c6157837cd0c"></a>
int(*&#160;</td><td class="memItemRight" valign="bottom"><b>ATOMIC_ADD_RETURN</b> )(ATOMIC_T *v, int i)</td></tr>
<tr class="separator:ga7fbcc3d7280f63c59ca0c6157837cd0c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga17725996314746a56d0438bbd2b45cf1"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga17725996314746a56d0438bbd2b45cf1"></a>
int(*&#160;</td><td class="memItemRight" valign="bottom"><b>ATOMIC_SUB_RETURN</b> )(ATOMIC_T *v, int i)</td></tr>
<tr class="separator:ga17725996314746a56d0438bbd2b45cf1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga7c8c4340b617f99df8f29b7667bb6495"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga7c8c4340b617f99df8f29b7667bb6495"></a>
int(*&#160;</td><td class="memItemRight" valign="bottom"><b>ATOMIC_INC_RETURN</b> )(ATOMIC_T *v)</td></tr>
<tr class="separator:ga7c8c4340b617f99df8f29b7667bb6495"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga8949c2b741b6a454f322a6f1a2282d91"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga8949c2b741b6a454f322a6f1a2282d91"></a>
int(*&#160;</td><td class="memItemRight" valign="bottom"><b>ATOMIC_DEC_RETURN</b> )(ATOMIC_T *v)</td></tr>
<tr class="separator:ga8949c2b741b6a454f322a6f1a2282d91"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga7c1f9d7b27a24a64fe2fb8d080ea4485"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga7c1f9d7b27a24a64fe2fb8d080ea4485"></a>
u64(*&#160;</td><td class="memItemRight" valign="bottom"><b>rtw_modular64</b> )(u64 x, u64 y)</td></tr>
<tr class="separator:ga7c1f9d7b27a24a64fe2fb8d080ea4485"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf8e01ddb457220dbb619268f88a6da70"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaf8e01ddb457220dbb619268f88a6da70"></a>
int(*&#160;</td><td class="memItemRight" valign="bottom"><b>rtw_get_random_bytes</b> )(void *dst, u32 size)</td></tr>
<tr class="separator:gaf8e01ddb457220dbb619268f88a6da70"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gafaee0cd9b41d67e9df2b8b5d12eea258"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gafaee0cd9b41d67e9df2b8b5d12eea258"></a>
u32(*&#160;</td><td class="memItemRight" valign="bottom"><b>rtw_getFreeHeapSize</b> )(void)</td></tr>
<tr class="separator:gafaee0cd9b41d67e9df2b8b5d12eea258"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga6d3e60d7711939c566443342e5e440f8"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga6d3e60d7711939c566443342e5e440f8"></a>
int(*&#160;</td><td class="memItemRight" valign="bottom"><b>rtw_create_task</b> )(struct <a class="el" href="structtask__struct.html">task_struct</a> *task, const char *name, u32 stack_size, u32 priority, thread_func_t func, void *thctx)</td></tr>
<tr class="separator:ga6d3e60d7711939c566443342e5e440f8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga8f7bf717d4629d2231bfe09a9de0a330"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga8f7bf717d4629d2231bfe09a9de0a330"></a>
void(*&#160;</td><td class="memItemRight" valign="bottom"><b>rtw_delete_task</b> )(struct <a class="el" href="structtask__struct.html">task_struct</a> *task)</td></tr>
<tr class="separator:ga8f7bf717d4629d2231bfe09a9de0a330"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga7212e9f2cf456ec74394b3462851dd79"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga7212e9f2cf456ec74394b3462851dd79"></a>
void(*&#160;</td><td class="memItemRight" valign="bottom"><b>rtw_wakeup_task</b> )(struct <a class="el" href="structtask__struct.html">task_struct</a> *task)</td></tr>
<tr class="separator:ga7212e9f2cf456ec74394b3462851dd79"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga6d16f63efe1a0690a1ec7310ea55939a"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga6d16f63efe1a0690a1ec7310ea55939a"></a>
void(*&#160;</td><td class="memItemRight" valign="bottom"><b>rtw_init_delayed_work</b> )(struct <a class="el" href="structdelayed__work.html">delayed_work</a> *dwork, work_func_t func, const char *name)</td></tr>
<tr class="separator:ga6d16f63efe1a0690a1ec7310ea55939a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac6cf86ee7cfb977648f0c694d06788d0"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gac6cf86ee7cfb977648f0c694d06788d0"></a>
void(*&#160;</td><td class="memItemRight" valign="bottom"><b>rtw_deinit_delayed_work</b> )(struct <a class="el" href="structdelayed__work.html">delayed_work</a> *dwork)</td></tr>
<tr class="separator:gac6cf86ee7cfb977648f0c694d06788d0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaa79777284382b6fde67d9969a47355eb"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaa79777284382b6fde67d9969a47355eb"></a>
int(*&#160;</td><td class="memItemRight" valign="bottom"><b>rtw_queue_delayed_work</b> )(struct workqueue_struct *wq, struct <a class="el" href="structdelayed__work.html">delayed_work</a> *dwork, unsigned long delay, void *context)</td></tr>
<tr class="separator:gaa79777284382b6fde67d9969a47355eb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga46d108106df0681cf2d801066bdc3b03"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga46d108106df0681cf2d801066bdc3b03"></a>
BOOLEAN(*&#160;</td><td class="memItemRight" valign="bottom"><b>rtw_cancel_delayed_work</b> )(struct <a class="el" href="structdelayed__work.html">delayed_work</a> *dwork)</td></tr>
<tr class="separator:ga46d108106df0681cf2d801066bdc3b03"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gad34b291d50926247f462bfbe66171b5e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gad34b291d50926247f462bfbe66171b5e"></a>
void(*&#160;</td><td class="memItemRight" valign="bottom"><b>rtw_thread_enter</b> )(char *name)</td></tr>
<tr class="separator:gad34b291d50926247f462bfbe66171b5e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga682e6100d05dab084eb30e67bcea2674"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga682e6100d05dab084eb30e67bcea2674"></a>
void(*&#160;</td><td class="memItemRight" valign="bottom"><b>rtw_thread_exit</b> )(void)</td></tr>
<tr class="separator:ga682e6100d05dab084eb30e67bcea2674"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga0e34bf3f3b501dd5e2ee8a52193aaa1a"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga0e34bf3f3b501dd5e2ee8a52193aaa1a"></a>
_timerHandle(*&#160;</td><td class="memItemRight" valign="bottom"><b>rtw_timerCreate</b> )(const signed char *pcTimerName, osdepTickType xTimerPeriodInTicks, u32 uxAutoReload, void *pvTimerID, TIMER_FUN pxCallbackFunction)</td></tr>
<tr class="separator:ga0e34bf3f3b501dd5e2ee8a52193aaa1a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga37507227edd06a3b3e5fdcc9579df1f5"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga37507227edd06a3b3e5fdcc9579df1f5"></a>
u32(*&#160;</td><td class="memItemRight" valign="bottom"><b>rtw_timerDelete</b> )(_timerHandle xTimer, osdepTickType xBlockTime)</td></tr>
<tr class="separator:ga37507227edd06a3b3e5fdcc9579df1f5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga569cd27ccd1835012d4cf8004ce11bd8"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga569cd27ccd1835012d4cf8004ce11bd8"></a>
u32(*&#160;</td><td class="memItemRight" valign="bottom"><b>rtw_timerIsTimerActive</b> )(_timerHandle xTimer)</td></tr>
<tr class="separator:ga569cd27ccd1835012d4cf8004ce11bd8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gab233ddc76bb226fd0ef3cc61c46c6161"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gab233ddc76bb226fd0ef3cc61c46c6161"></a>
u32(*&#160;</td><td class="memItemRight" valign="bottom"><b>rtw_timerStop</b> )(_timerHandle xTimer, osdepTickType xBlockTime)</td></tr>
<tr class="separator:gab233ddc76bb226fd0ef3cc61c46c6161"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga4c3c5b8e8d854e18f9c6037bd96c98cf"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga4c3c5b8e8d854e18f9c6037bd96c98cf"></a>
u32(*&#160;</td><td class="memItemRight" valign="bottom"><b>rtw_timerChangePeriod</b> )(_timerHandle xTimer, osdepTickType xNewPeriod, osdepTickType xBlockTime)</td></tr>
<tr class="separator:ga4c3c5b8e8d854e18f9c6037bd96c98cf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga13115e72305d46125bc9231997d5ade2"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga13115e72305d46125bc9231997d5ade2"></a>
void *(*&#160;</td><td class="memItemRight" valign="bottom"><b>rtw_timerGetID</b> )(_timerHandle xTimer)</td></tr>
<tr class="separator:ga13115e72305d46125bc9231997d5ade2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga700fce2e6e2d72051f5d9a52700ad823"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga700fce2e6e2d72051f5d9a52700ad823"></a>
u32(*&#160;</td><td class="memItemRight" valign="bottom"><b>rtw_timerStart</b> )(_timerHandle xTimer, osdepTickType xBlockTime)</td></tr>
<tr class="separator:ga700fce2e6e2d72051f5d9a52700ad823"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga0735971cd1a9ce3fca84830c4d345921"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga0735971cd1a9ce3fca84830c4d345921"></a>
u32(*&#160;</td><td class="memItemRight" valign="bottom"><b>rtw_timerStartFromISR</b> )(_timerHandle xTimer, osdepBASE_TYPE *pxHigherPriorityTaskWoken)</td></tr>
<tr class="separator:ga0735971cd1a9ce3fca84830c4d345921"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga16eb26e2e32c620e81f7819c5d06ae80"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga16eb26e2e32c620e81f7819c5d06ae80"></a>
u32(*&#160;</td><td class="memItemRight" valign="bottom"><b>rtw_timerStopFromISR</b> )(_timerHandle xTimer, osdepBASE_TYPE *pxHigherPriorityTaskWoken)</td></tr>
<tr class="separator:ga16eb26e2e32c620e81f7819c5d06ae80"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga04c17702dd1e67edbe97507b06ed7c67"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga04c17702dd1e67edbe97507b06ed7c67"></a>
u32(*&#160;</td><td class="memItemRight" valign="bottom"><b>rtw_timerResetFromISR</b> )(_timerHandle xTimer, osdepBASE_TYPE *pxHigherPriorityTaskWoken)</td></tr>
<tr class="separator:ga04c17702dd1e67edbe97507b06ed7c67"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga341759179a1ab87c93fe9574b884009b"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga341759179a1ab87c93fe9574b884009b"></a>
u32(*&#160;</td><td class="memItemRight" valign="bottom"><b>rtw_timerChangePeriodFromISR</b> )(_timerHandle xTimer, osdepTickType xNewPeriod, osdepBASE_TYPE *pxHigherPriorityTaskWoken)</td></tr>
<tr class="separator:ga341759179a1ab87c93fe9574b884009b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga96501b3319eb7d7f0197ed1decfd387e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga96501b3319eb7d7f0197ed1decfd387e"></a>
u32(*&#160;</td><td class="memItemRight" valign="bottom"><b>rtw_timerReset</b> )(_timerHandle xTimer, osdepTickType xBlockTime)</td></tr>
<tr class="separator:ga96501b3319eb7d7f0197ed1decfd387e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaa4142fc07dfd4fe91320f5cbecdc4196"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaa4142fc07dfd4fe91320f5cbecdc4196"></a>
void(*&#160;</td><td class="memItemRight" valign="bottom"><b>rtw_acquire_wakelock</b> )(void)</td></tr>
<tr class="separator:gaa4142fc07dfd4fe91320f5cbecdc4196"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga94130f29f68be3cee9f763ef8fca2881"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga94130f29f68be3cee9f763ef8fca2881"></a>
void(*&#160;</td><td class="memItemRight" valign="bottom"><b>rtw_release_wakelock</b> )(void)</td></tr>
<tr class="separator:ga94130f29f68be3cee9f763ef8fca2881"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga981f5f4765f9cbbf9e9847b02825d693"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga981f5f4765f9cbbf9e9847b02825d693"></a>
void(*&#160;</td><td class="memItemRight" valign="bottom"><b>rtw_wakelock_timeout</b> )(u32 timeoutMs)</td></tr>
<tr class="separator:ga981f5f4765f9cbbf9e9847b02825d693"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaa8dd9a3fda0f464b8fdcfc909ab5b4f8"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaa8dd9a3fda0f464b8fdcfc909ab5b4f8"></a>
u8(*&#160;</td><td class="memItemRight" valign="bottom"><b>rtw_get_scheduler_state</b> )(void)</td></tr>
<tr class="separator:gaa8dd9a3fda0f464b8fdcfc909ab5b4f8"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<p>RTOS functions. </p>
<h2 class="groupheader">Function Documentation</h2>
<a class="anchor" id="gaa8fba4d853a4b5981aaaa0e37cdae7de"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void add_mem_usage </td>
<td>(</td>
<td class="paramtype">_list *&#160;</td>
<td class="paramname"><em>pmem_table</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">void *&#160;</td>
<td class="paramname"><em>ptr</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>size</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int *&#160;</td>
<td class="paramname"><em>used_num</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>flag</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function alloc <a class="el" href="structmem__entry.html">mem_entry</a> to the memory table. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">pmem_table</td><td>The pointer to the memory table to be added. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">ptr</td><td>The pointer to the position to be added. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">size</td><td>The size of added memory. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">used_num</td><td>The number of <a class="el" href="structmem__entry.html">mem_entry</a> kept in monitor which will add 1 after. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">flag</td><td>MEM_MONITOR_FLAG_WPAS/MEM_MONITOR_FLAG_WIFI_DRV </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>None </dd></dl>
</div>
</div>
<a class="anchor" id="gae40eb2eab2fe72770b747959a37c9dfa"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void ATOMIC_ADD </td>
<td>(</td>
<td class="paramtype">ATOMIC_T *&#160;</td>
<td class="paramname"><em>v</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>i</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function adds "i" to the contained "v". </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">v</td><td>Pointer of type atomic_t. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">i</td><td>value to add. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>None </dd></dl>
</div>
</div>
<a class="anchor" id="gaafe4466dbf996db5b4f65b2154184374"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int ATOMIC_ADD_RETURN </td>
<td>(</td>
<td class="paramtype">ATOMIC_T *&#160;</td>
<td class="paramname"><em>v</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>i</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function adds "i" to the contained "v" and returns the result. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">v</td><td>Pointer of type atomic_t. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">i</td><td>value to add. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>None </dd></dl>
</div>
</div>
<a class="anchor" id="ga6ed19ec7dd00eb7f86e731973e503d38"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void ATOMIC_DEC </td>
<td>(</td>
<td class="paramtype">ATOMIC_T *&#160;</td>
<td class="paramname"><em>v</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function subtracts 1 from th econtained "v". </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">v</td><td>Pointer of type atomic_t. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>None </dd></dl>
</div>
</div>
<a class="anchor" id="ga9fec214a366463f97068abc3d5bfb687"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int ATOMIC_DEC_AND_TEST </td>
<td>(</td>
<td class="paramtype">ATOMIC_T *&#160;</td>
<td class="paramname"><em>v</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function subtracts 1 from th econtained "v" and test if the result equals 0. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">v</td><td>Pointer of type atomic_t. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>0: The result after subtracting 1 is 0 </dd>
<dd>
-1: The result after subtracting 1 is not 0 </dd></dl>
</div>
</div>
<a class="anchor" id="gad9fc2abd337dff5eb39d0dcaf245096c"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int ATOMIC_DEC_RETURN </td>
<td>(</td>
<td class="paramtype">ATOMIC_T *&#160;</td>
<td class="paramname"><em>v</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function subtracts 1 from th econtained "v" and returns the result. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">v</td><td>Pointer of type atomic_t. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>None </dd></dl>
</div>
</div>
<a class="anchor" id="ga37d5eb980755600e00f7870dddfc9201"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void ATOMIC_INC </td>
<td>(</td>
<td class="paramtype">ATOMIC_T *&#160;</td>
<td class="paramname"><em>v</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function adds 1 to the contained "v". </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">v</td><td>Pointer of type atomic_t. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>None </dd></dl>
</div>
</div>
<a class="anchor" id="ga8ec0db9ec483df31ae5543c47c9ddaa5"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int ATOMIC_INC_RETURN </td>
<td>(</td>
<td class="paramtype">ATOMIC_T *&#160;</td>
<td class="paramname"><em>v</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function adds 1 to the contained "v" and returns the result. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">v</td><td>Pointer of type atomic_t. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>None </dd></dl>
</div>
</div>
<a class="anchor" id="gaea3db066675908db9b865ce38db5abc1"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int ATOMIC_READ </td>
<td>(</td>
<td class="paramtype">ATOMIC_T *&#160;</td>
<td class="paramname"><em>v</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function atomically reads the value of the variable. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">v</td><td>Pointer of type atomic_t that to be read. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The value of the variable. </dd></dl>
<dl class="section note"><dt>Note</dt><dd>The guaranteed useful range of an atomic_t is only 24 bits. </dd></dl>
</div>
</div>
<a class="anchor" id="ga773eff3884ab09b0b2adfae502c6fbb3"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void ATOMIC_SET </td>
<td>(</td>
<td class="paramtype">ATOMIC_T *&#160;</td>
<td class="paramname"><em>v</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>i</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function atomically sets the value of the variable. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">v</td><td>Pointer of type atomic_t that to be set value. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">i</td><td>Required value. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>None </dd></dl>
<dl class="section note"><dt>Note</dt><dd>The guaranteed useful range of an atomic_t is only 24 bits. </dd></dl>
</div>
</div>
<a class="anchor" id="gadc182a9a76b9ab086fb850ef4a3fa9d4"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void ATOMIC_SUB </td>
<td>(</td>
<td class="paramtype">ATOMIC_T *&#160;</td>
<td class="paramname"><em>v</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>i</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function subtracts "i" from th econtained "v". </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">v</td><td>Pointer of type atomic_t. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">i</td><td>value to subtract. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>None </dd></dl>
</div>
</div>
<a class="anchor" id="gab2a0f53c84834521a0794d3c317fcdd7"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int ATOMIC_SUB_RETURN </td>
<td>(</td>
<td class="paramtype">ATOMIC_T *&#160;</td>
<td class="paramname"><em>v</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>i</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function subtracts "i" from th econtained "v" and returns the result. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">v</td><td>Pointer of type atomic_t. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">i</td><td>value to subtract. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>None </dd></dl>
</div>
</div>
<a class="anchor" id="ga37363e084632199f1870b3105a7dc454"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void deinit_mem_monitor </td>
<td>(</td>
<td class="paramtype">_list *&#160;</td>
<td class="paramname"><em>pmem_table</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int *&#160;</td>
<td class="paramname"><em>used_num</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function deinitializes a memory table. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">pmem_table</td><td>The pointer to the memory table. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">used_num</td><td>The number of <a class="el" href="structmem__entry.html">mem_entry</a> kept in monitor. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>None </dd></dl>
</div>
</div>
<a class="anchor" id="gadf74d3a405d503e2465988dffa6f1a64"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void del_mem_usage </td>
<td>(</td>
<td class="paramtype">_list *&#160;</td>
<td class="paramname"><em>pmem_table</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">void *&#160;</td>
<td class="paramname"><em>ptr</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int *&#160;</td>
<td class="paramname"><em>used_num</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>flag</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function frees memory from the memory table. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">pmem_table</td><td>The pointer to the memory table </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">ptr</td><td>The pointer to the position to be free. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">used_num</td><td>The number of <a class="el" href="structmem__entry.html">mem_entry</a> kept in monitor. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">flag</td><td>MEM_MONITOR_FLAG_WPAS/MEM_MONITOR_FLAG_WIFI_DRV </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>None </dd></dl>
</div>
</div>
<a class="anchor" id="gaa56f111283bb33a374b7d4d0bc1c94c2"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int get_mem_usage </td>
<td>(</td>
<td class="paramtype">_list *&#160;</td>
<td class="paramname"><em>pmem_table</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function get the memory usage of a memory table. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">pmem_table</td><td>The pointer to the memory table. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The size of the memory used </dd></dl>
</div>
</div>
<a class="anchor" id="ga9f8235595e6f9b556f30025bcc149f21"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void init_mem_monitor </td>
<td>(</td>
<td class="paramtype">_list *&#160;</td>
<td class="paramname"><em>pmem_table</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int *&#160;</td>
<td class="paramname"><em>used_num</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function initializes a memory table. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">pmem_table</td><td>The pointer to the memory table. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">used_num</td><td>The number of <a class="el" href="structmem__entry.html">mem_entry</a> kept in monitor which will be set to 0. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>None </dd></dl>
</div>
</div>
<a class="anchor" id="gacf87f11f7a0f0b78efc5fd5156bfa83c"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void rtw_acquire_wakelock </td>
<td>(</td>
<td class="paramtype">void&#160;</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function indicates that the WLAN needs to stay on which means cannot go into power saving mode. </p>
<dl class="section return"><dt>Returns</dt><dd>None </dd></dl>
<dl class="section note"><dt>Note</dt><dd>Defining configUSE_WAKELOCK_PMU 1 in "FreeRTOSConfig.h" needs to be done before compiling, or this API won't be effective. </dd></dl>
</div>
</div>
<a class="anchor" id="gaaf5382ca9167916b15af0880f5efe838"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">u32 rtw_atoi </td>
<td>(</td>
<td class="paramtype">u8 *&#160;</td>
<td class="paramname"><em>s</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function converts the initial portion of the string to integer. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">s</td><td>The pointer to the string to be converted. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The converted value. </dd></dl>
</div>
</div>
<a class="anchor" id="gaa51afb2660acc623a9b423e6f8d5f7ec"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int rtw_create_task </td>
<td>(</td>
<td class="paramtype">struct <a class="el" href="structtask__struct.html">task_struct</a> *&#160;</td>
<td class="paramname"><em>task</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char *&#160;</td>
<td class="paramname"><em>name</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">u32&#160;</td>
<td class="paramname"><em>stack_size</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">u32&#160;</td>
<td class="paramname"><em>priority</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">thread_func_t&#160;</td>
<td class="paramname"><em>func</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">void *&#160;</td>
<td class="paramname"><em>thctx</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function creates a new task and adds it to the list of tasks that are ready to run. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">task</td><td>The task stucture which will store the task related infomation. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">name</td><td>A descriptive name for the task. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">stack_size</td><td>The size of the task stack specified as the variables the stack can hold. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">priority</td><td>The priority at which the task should run. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">func</td><td>The task entry function. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">thctx</td><td>The pointer that will be used as the parameter for the task being created. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>pdPASS: The task was successfully created and added to a ready list. </dd>
<dd>
other error code defined in the file errors.h. </dd></dl>
<dl class="section note"><dt>Note</dt><dd>For the task name, please do not use "rtw_little_wifi_mcu_thread", "rtw_check_in_req_state_thread", "rtw_TDMA_change_state_thread", "xmit_thread", "recv_thread", "rtw_recv_tasklet", "rtw_xmit_tasklet", "rtw_interrupt_thread", "cmd_thread", "usb_init", "MSC_BULK_CMD" and "MSC_BULK_DATA". </dd></dl>
</div>
</div>
<a class="anchor" id="gabb9c7c644b1163085e9f196d8a543b7d"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int rtw_create_worker_thread </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structrtw__worker__thread__t.html">rtw_worker_thread_t</a> *&#160;</td>
<td class="paramname"><em>worker_thread</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">u8&#160;</td>
<td class="paramname"><em>priority</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">u32&#160;</td>
<td class="paramname"><em>stack_size</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">u32&#160;</td>
<td class="paramname"><em>event_queue_size</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function creates a new worker thread. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">worker_thread</td><td>The pointer to the worker thread stucture. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">priority</td><td>The priority of the thread. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">stack_size</td><td>The size of the thread stack specified as the variables the stack can hold. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">event_queue_size</td><td>The queue size of events. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>SUCCESS/FAIL. </dd></dl>
</div>
</div>
<a class="anchor" id="ga64fd7ef8908a2640802c672327d4d46f"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int rtw_deinit_xqueue </td>
<td>(</td>
<td class="paramtype">_xqueue *&#160;</td>
<td class="paramname"><em>queue</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Delete a queue - freeing all the memory allocated for storing of messages placed on the queue. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">queue</td><td>The handle to the queue to be deleted. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>0: The queue was successfully deleted. </dd>
<dd>
-1: The queue was not empty so cannot be deleted. </dd></dl>
</div>
</div>
<a class="anchor" id="gad2c40877bebfdd7c08484792e7a0bc24"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void rtw_delete_task </td>
<td>(</td>
<td class="paramtype">struct <a class="el" href="structtask__struct.html">task_struct</a> *&#160;</td>
<td class="paramname"><em>task</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function deletes a task. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">task</td><td>The task stucture which will be deleted. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>None </dd></dl>
</div>
</div>
<a class="anchor" id="ga3d7555282b121476074275d0a3b3eb70"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int rtw_delete_worker_thread </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structrtw__worker__thread__t.html">rtw_worker_thread_t</a> *&#160;</td>
<td class="paramname"><em>worker_thread</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function deletes a worker thread. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">worker_thread</td><td>The pointer to the worker thread stucture to be deleted. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>SUCCESS/FAIL. </dd></dl>
</div>
</div>
<a class="anchor" id="ga8866f237041311efe4a0096a901c82c6"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">u32 rtw_down_sema </td>
<td>(</td>
<td class="paramtype">_sema *&#160;</td>
<td class="paramname"><em>sema</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function acquires the semaphore. If no more tasks are allowed to acquire the semaphore, calling this function will put the task to sleep until the semaphore is up. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">sema</td><td>The semaphore to be acquired. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>pdTRUE: The semaphore was obtained. </dd>
<dd>
pdFALSE: Obtain the semaphore failed. </dd></dl>
</div>
</div>
<a class="anchor" id="gaef950465b7b07566a08e6ae45803de5d"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">u32 rtw_down_timeout_sema </td>
<td>(</td>
<td class="paramtype">_sema *&#160;</td>
<td class="paramname"><em>sema</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">u32&#160;</td>
<td class="paramname"><em>timeout</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function acquires the semaphore. If no more tasks are allowed to acquire the semaphore, calling this function will put the task to sleep until the semaphore is up. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">sema</td><td>The semaphore to be acquired. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">timeout</td><td>The time in ms to wait for the semaphore to become available. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>pdTRUE: The semaphore was obtained. </dd>
<dd>
pdFALSE: Timeout without the semaphore becoming available. </dd></dl>
</div>
</div>
<a class="anchor" id="ga9e31ec8ce94b8c465ffb686047b47c14"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">u32 rtw_end_of_queue_search </td>
<td>(</td>
<td class="paramtype">_list *&#160;</td>
<td class="paramname"><em>queue</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">_list *&#160;</td>
<td class="paramname"><em>pelement</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function tests whether the "pelement" is at the "queue". </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">queue</td><td>The pointer to the queue that to be tested. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">pelement</td><td>The element that to be tested. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>_TRUE/_FALSE </dd></dl>
</div>
</div>
<a class="anchor" id="ga25ebf88345d437f95ac6db2534a9f3bd"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void rtw_enter_critical </td>
<td>(</td>
<td class="paramtype">_lock *&#160;</td>
<td class="paramname"><em>plock</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">_irqL *&#160;</td>
<td class="paramname"><em>pirqL</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function marks the start of a critical code region. Preemptive context switches cannot occur when in a critical region. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">plock</td><td>Pointer to the spin lock semaphore. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">pirqL</td><td>Pointer to the IRQ. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>None </dd></dl>
<dl class="section note"><dt>Note</dt><dd>: This may alter the stack (depending on the portable implementation) so must be used with care! </dd></dl>
</div>
</div>
<a class="anchor" id="ga3c65ec3e920cf2096815d65cb73c417c"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void rtw_enter_critical_bh </td>
<td>(</td>
<td class="paramtype">_lock *&#160;</td>
<td class="paramname"><em>plock</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">_irqL *&#160;</td>
<td class="paramname"><em>pirqL</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function obtains a spin lock semaphore. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">plock</td><td>Pointer to the spin lock semaphore being taken - obtained when the mutex semaphore was created. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">pirqL</td><td>Pointer to the IRQ. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>None </dd></dl>
</div>
</div>
<a class="anchor" id="gad8b05366edfa20347cbd6501b9e77ec9"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void rtw_enter_critical_from_isr </td>
<td>(</td>
<td class="paramtype">_lock *&#160;</td>
<td class="paramname"><em>plock</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">_irqL *&#160;</td>
<td class="paramname"><em>pirqL</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function marks the start of a critical code region from isr. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">plock</td><td>Pointer to the spin lock semaphore. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">pirqL</td><td>Pointer to the IRQ. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>None </dd></dl>
</div>
</div>
<a class="anchor" id="ga24f292f35f2f61373ff4727e42786a0d"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int rtw_enter_critical_mutex </td>
<td>(</td>
<td class="paramtype">_mutex *&#160;</td>
<td class="paramname"><em>pmutex</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">_irqL *&#160;</td>
<td class="paramname"><em>pirqL</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function obtains a semaphore. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">pmutex</td><td>The handle to the mutex semaphore to be obtained. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">pirqL</td><td>Pointer to the IRQ. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>None </dd></dl>
</div>
</div>
<a class="anchor" id="gab0a8793d6348a9b8875163fd04961b38"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void rtw_exit_critical </td>
<td>(</td>
<td class="paramtype">_lock *&#160;</td>
<td class="paramname"><em>plock</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">_irqL *&#160;</td>
<td class="paramname"><em>pirqL</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function marks end of a critical code region. Preemptive context switches cannot occur when in a critical region. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">plock</td><td>Pointer to the spin lock semaphore. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">pirqL</td><td>Pointer to the IRQ. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>None </dd></dl>
<dl class="section note"><dt>Note</dt><dd>: This may alter the stack (depending on the portable implementation) so must be used with care! </dd></dl>
</div>
</div>
<a class="anchor" id="ga098121bd2ccffdb029660cab44ebeede"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void rtw_exit_critical_bh </td>
<td>(</td>
<td class="paramtype">_lock *&#160;</td>
<td class="paramname"><em>plock</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">_irqL *&#160;</td>
<td class="paramname"><em>pirqL</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function releases a spin lock semaphore. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">plock</td><td>Pointer to the spin lock semaphore to be released. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">pirqL</td><td>Pointer to the IRQ. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>None </dd></dl>
</div>
</div>
<a class="anchor" id="ga58e735aa05f4c73300225a4b9ccb2bfa"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void rtw_exit_critical_from_isr </td>
<td>(</td>
<td class="paramtype">_lock *&#160;</td>
<td class="paramname"><em>plock</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">_irqL *&#160;</td>
<td class="paramname"><em>pirqL</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function marks the end of a critical code region from isr. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">plock</td><td>Pointer to the spin lock semaphore. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">pirqL</td><td>Pointer to the IRQ. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>None </dd></dl>
</div>
</div>
<a class="anchor" id="ga658ee4891ddc4170afcf48224a6417ee"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void rtw_exit_critical_mutex </td>
<td>(</td>
<td class="paramtype">_mutex *&#160;</td>
<td class="paramname"><em>pmutex</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">_irqL *&#160;</td>
<td class="paramname"><em>pirqL</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function releases a semaphore. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">pmutex</td><td>The handle to the mutex semaphore to be released. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">pirqL</td><td>Pointer to the IRQ. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>None </dd></dl>
</div>
</div>
<a class="anchor" id="gae38a2d622f9867e03a61245badd4a481"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void rtw_free_sema </td>
<td>(</td>
<td class="paramtype">_sema *&#160;</td>
<td class="paramname"><em>sema</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function deletes the semaphore. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">sema</td><td>The semaphore to be deleted. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>None </dd></dl>
</div>
</div>
<a class="anchor" id="ga388ad68fb55be66baa224afcf504dddd"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">u32 rtw_get_current_time </td>
<td>(</td>
<td class="paramtype">void&#160;</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Get the count of ticks since the vTaskStartScheduler was called. </p>
<dl class="section return"><dt>Returns</dt><dd>The count of ticks since the vTaskStartScheduler was called. </dd></dl>
</div>
</div>
<a class="anchor" id="gab29555dec53b9cfd459ca0c7b3a0afa8"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">s32 rtw_get_passing_time_ms </td>
<td>(</td>
<td class="paramtype">u32&#160;</td>
<td class="paramname"><em>start</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Get the passing time from the "start" in milliseconds. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">start</td><td>The start time which is in system time format. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>: The passing time from "start" in milliseconds. </dd></dl>
</div>
</div>
<a class="anchor" id="ga544cb429c5677ce1d0bd5f354c2b7673"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int rtw_get_random_bytes </td>
<td>(</td>
<td class="paramtype">void *&#160;</td>
<td class="paramname"><em>dst</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">u32&#160;</td>
<td class="paramname"><em>size</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function generates random bytes. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">dst</td><td>The pointer to the buffer to store the random bytes. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">size</td><td>The size of the random bytes. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>0 </dd></dl>
</div>
</div>
<a class="anchor" id="ga15a2aff5d28a079185ae68f78ff1ce7f"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">u8 rtw_get_scheduler_state </td>
<td>(</td>
<td class="paramtype">void&#160;</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function gets the scheduler state of the calling thread. </p>
<dl class="section return"><dt>Returns</dt><dd>OS_SCHEDULER_NOT_STARTED </dd>
<dd>
OS_SCHEDULER_RUNNING </dd>
<dd>
OS_SCHEDULER_SUSPENDED </dd></dl>
</div>
</div>
<a class="anchor" id="ga8bc34bd42ed88ca127f481165bdb9b63"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">s32 rtw_get_time_interval_ms </td>
<td>(</td>
<td class="paramtype">u32&#160;</td>
<td class="paramname"><em>start</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">u32&#160;</td>
<td class="paramname"><em>end</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Get the interval time from the "start" to "end" in milliseconds. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">start</td><td>The start time which is in system time format. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">end</td><td>The end time which is in system time format. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>: The interval time from "start" to "end" in milliseconds. </dd></dl>
</div>
</div>
<a class="anchor" id="gacfe16158e1e19265e765c0b85399919d"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">u32 rtw_getFreeHeapSize </td>
<td>(</td>
<td class="paramtype">void&#160;</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function gets the available heap size. </p>
<dl class="section return"><dt>Returns</dt><dd>The value of the available heap size. </dd></dl>
</div>
</div>
<a class="anchor" id="ga4e3c7baf89d8fd411e5ed5dc9682c2ba"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void rtw_init_listhead </td>
<td>(</td>
<td class="paramtype">_list *&#160;</td>
<td class="paramname"><em>list</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function initializes the head of the list. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">list</td><td>Pointer to the list to be initialized. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>None </dd></dl>
</div>
</div>
<a class="anchor" id="ga37abdd1a993f77351644abed9c5468c4"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void rtw_init_queue </td>
<td>(</td>
<td class="paramtype">_queue *&#160;</td>
<td class="paramname"><em>pqueue</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function creates a new queue instance. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">pqueue</td><td>The handle to the newly created queue. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>None </dd></dl>
</div>
</div>
<a class="anchor" id="ga672f0efc2e47205a5379fe474e7a176b"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void rtw_init_sema </td>
<td>(</td>
<td class="paramtype">_sema *&#160;</td>
<td class="paramname"><em>sema</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>init_val</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function initializes the unnamed semaphore referred to by "sema" to the value "init_val". </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">sema</td><td>Pointer to the semaphore handle to be initialized. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">init_val</td><td>Initial value for semaphore. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>None </dd></dl>
</div>
</div>
<a class="anchor" id="gac436de1bb8861d23654d3a7791cb15da"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int rtw_init_xqueue </td>
<td>(</td>
<td class="paramtype">_xqueue *&#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>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">u32&#160;</td>
<td class="paramname"><em>message_size</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">u32&#160;</td>
<td class="paramname"><em>number_of_messages</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function creates a new queue instance. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">queue</td><td>The handle to the newly created queue. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">name</td><td>The name of the queue </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">message_size</td><td>The number of bytes each message in the queue will require. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">number_of_messages</td><td>The maximum number of messages that kthe queue can contain. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>0: Creating queue success </dd>
<dd>
-1: Creating queue fail </dd></dl>
</div>
</div>
<a class="anchor" id="gabfab29b24ba6eac2f7daf8a37946eed0"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">u32 rtw_is_list_empty </td>
<td>(</td>
<td class="paramtype">_list *&#160;</td>
<td class="paramname"><em>phead</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function tests whether a list is empty. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">phead</td><td>Pointer to the list to test. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>_TRUE/_FALSE </dd></dl>
</div>
</div>
<a class="anchor" id="gad2f1bf966f380681638ec580b709ee77"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void rtw_list_delete </td>
<td>(</td>
<td class="paramtype">_list *&#160;</td>
<td class="paramname"><em>plist</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function deletes entry from list and reinitialize it. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">plist</td><td>The element to delete from the list. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>None </dd></dl>
<dl class="section note"><dt>Note</dt><dd>Caller must check if the list is empty before calling rtw_list_delete </dd></dl>
</div>
</div>
<a class="anchor" id="ga804faac1fb48202fb596096d27679fbd"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void rtw_list_insert_head </td>
<td>(</td>
<td class="paramtype">_list *&#160;</td>
<td class="paramname"><em>plist</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">_list *&#160;</td>
<td class="paramname"><em>phead</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function adds a new entry after "phead" for the list. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">plist</td><td>Pointer to the list to be added. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">phead</td><td>List head to add it after. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>None </dd></dl>
</div>
</div>
<a class="anchor" id="ga5f342e747430bbf855b1b0f845bf9d87"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void rtw_list_insert_tail </td>
<td>(</td>
<td class="paramtype">_list *&#160;</td>
<td class="paramname"><em>plist</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">_list *&#160;</td>
<td class="paramname"><em>phead</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function adds a new entry before "phead" for the list. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">plist</td><td>Pointer to the list to be added. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">phead</td><td>List head to add it before. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>None </dd></dl>
</div>
</div>
<a class="anchor" id="gac38480df2657a06473435aebecf3f0f0"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">u8* rtw_malloc </td>
<td>(</td>
<td class="paramtype">u32&#160;</td>
<td class="paramname"><em>sz</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function allocates the memory. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">sz</td><td>The size of memory to be allocated. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The pointer to the beginning of the memory </dd></dl>
</div>
</div>
<a class="anchor" id="ga7e5cfcf0bfa0cf4d12b3140c927474a9"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void* rtw_malloc2d </td>
<td>(</td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>h</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>w</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>size</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function allocates a 2 dimensional array memory. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">h</td><td>The height of the 2D array. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">w</td><td>The width of the 2D array. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">size</td><td>The size of the each charactor in array. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>the pointer to the beginning of the block </dd></dl>
</div>
</div>
<a class="anchor" id="gad8f2c25e0e8525260b0283938acf3e5f"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void rtw_mdelay_os </td>
<td>(</td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>ms</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function delays a task for the giving time in milliseconds. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">ms</td><td>The amount of time, in milliseconds, that the calling task should block. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>None </dd></dl>
</div>
</div>
<a class="anchor" id="gaa049f0f8d4f7f3dc1dccaa7cab8b00e2"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int rtw_memcmp </td>
<td>(</td>
<td class="paramtype">void *&#160;</td>
<td class="paramname"><em>dst</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">void *&#160;</td>
<td class="paramname"><em>src</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">u32&#160;</td>
<td class="paramname"><em>sz</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function compares the first "sz" bytes of the block of memory pointed by "dst" to the first "sz" bytes pointed by "src". </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">dst</td><td>Pointer to block of memory to be compared. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">src</td><td>pointer to block of memory to compare. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">sz</td><td>Size of memory to compare. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>&lt;0: The first byte that does not match in both memory blocks has a lower value in dst than in src. </dd>
<dd>
0: The contents of both memory blocks are equal. </dd>
<dd>
&lt;0: The first byte that does not match in both memory blocks has a greater value in dst than in src. </dd></dl>
</div>
</div>
<a class="anchor" id="ga8b31fb541897d351bcf322467e7626ed"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void rtw_memcpy </td>
<td>(</td>
<td class="paramtype">void *&#160;</td>
<td class="paramname"><em>dst</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">void *&#160;</td>
<td class="paramname"><em>src</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">u32&#160;</td>
<td class="paramname"><em>sz</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function copies the values of "sz" bytes from the location pointed to by "src" directly to the memory block pointed to by "des". </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">dst</td><td>Pointer to the destination array where the content is to be copied, type-casted to a pointer of type void*. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">src</td><td>Pointer to the source of data to be copied, type-casted to a pointer of type void*. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">sz</td><td>Size of memory to copy. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>None </dd></dl>
</div>
</div>
<a class="anchor" id="gaa5db16ab98682918647b010a65daf179"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void rtw_memset </td>
<td>(</td>
<td class="paramtype">void *&#160;</td>
<td class="paramname"><em>pbuf</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>c</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">u32&#160;</td>
<td class="paramname"><em>sz</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function sets the first "sz" bytes of the block of memory pointed by "pbuf" to the specified "c". </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">pbuf</td><td>Pointer to the block of memory to fill. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">c</td><td>Value to be set. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">sz</td><td>Size of memory to be set to the value "c". </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>None </dd></dl>
</div>
</div>
<a class="anchor" id="ga210903829e249ee36ebbae895fdfeb68"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void rtw_mfree </td>
<td>(</td>
<td class="paramtype">u8 *&#160;</td>
<td class="paramname"><em>pbuf</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">u32&#160;</td>
<td class="paramname"><em>sz</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function frees the virtually contiguous memory. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">pbuf</td><td>The pointer to the beginning of the memory to be free </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">sz</td><td>The size of memory allocated. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>None </dd></dl>
</div>
</div>
<a class="anchor" id="ga9b960a8744e7f4d12336cbcce554f10b"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void rtw_mfree2d </td>
<td>(</td>
<td class="paramtype">void *&#160;</td>
<td class="paramname"><em>pbuf</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>h</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>w</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>size</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function deallocates the block of memory previously allocated to make it available again. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">pbuf</td><td>Pointer to a memory block previously allocated. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">h</td><td>The height of the 2D array. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">w</td><td>The width of the 2D array. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">size</td><td>The size of the each charactor in array. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>None </dd></dl>
</div>
</div>
<a class="anchor" id="gad3cc21a9fcd329ae2a3e7f399d230176"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">u32 rtw_ms_to_systime </td>
<td>(</td>
<td class="paramtype">u32&#160;</td>
<td class="paramname"><em>ms</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Convert milliseconds to system time. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">systime</td><td>The milliseconds to be converted. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>: The system time that converted by the milliseconds. </dd></dl>
</div>
</div>
<a class="anchor" id="gab46a8d1780b6f053d1ac91e1609a23be"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void rtw_msleep_os </td>
<td>(</td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>ms</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function suspends execution of the calling thread for "ms" milliseconds. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">ms</td><td>The time that the function sleep in milliseconds </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>None </dd></dl>
</div>
</div>
<a class="anchor" id="ga0a2f29a11830cdc9030a91f6ed49f74a"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void rtw_mutex_free </td>
<td>(</td>
<td class="paramtype">_mutex *&#160;</td>
<td class="paramname"><em>pmutex</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function deletes the mutex semaphore. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">pmutex</td><td>Pointer to the mutex semaphore to be deleted. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>None </dd></dl>
</div>
</div>
<a class="anchor" id="ga62acfe38de294d000720de79d20ea3e9"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void rtw_mutex_get </td>
<td>(</td>
<td class="paramtype">_mutex *&#160;</td>
<td class="paramname"><em>pmutex</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function obtains a mutex semaphore. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">pmutex</td><td>Pointer to the mutex semaphore being taken - obtained when the mutex semaphore was created. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>None </dd></dl>
</div>
</div>
<a class="anchor" id="ga29651aa1be8c5cfaa8dcbecb5917bb3c"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int rtw_mutex_get_timeout </td>
<td>(</td>
<td class="paramtype">_mutex *&#160;</td>
<td class="paramname"><em>pmutex</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">u32&#160;</td>
<td class="paramname"><em>timeout_ms</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function obtains a mutex semaphore with a timeout setting. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">pmutex</td><td>Pointer to the mutex semaphore being taken - obtained when the mutex semaphore was created. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">timeout</td><td>The time in ms to wait for the semaphore to become available. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>0: The semaphore was obtained. </dd>
<dd>
-1: Timeout without the semaphore becoming available. </dd></dl>
</div>
</div>
<a class="anchor" id="ga46eb1c50c29acf8e4052707ab51e768c"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void rtw_mutex_init </td>
<td>(</td>
<td class="paramtype">_mutex *&#160;</td>
<td class="paramname"><em>pmutex</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function implements a mutex semaphore by using the existing queue mechanism. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">pmutex</td><td>Pointer to the created mutex semaphore. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>None </dd></dl>
</div>
</div>
<a class="anchor" id="ga61df40838863df72ef65ad766aee3fa4"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void rtw_mutex_put </td>
<td>(</td>
<td class="paramtype">_mutex *&#160;</td>
<td class="paramname"><em>pmutex</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function releases a mutex semaphore. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">pmutex</td><td>Pointer to the mutex semaphore to be released. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>None </dd></dl>
</div>
</div>
<a class="anchor" id="ga455fb88ce04abec31355991e71d32274"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int rtw_pop_from_xqueue </td>
<td>(</td>
<td class="paramtype">_xqueue *&#160;</td>
<td class="paramname"><em>queue</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">void *&#160;</td>
<td class="paramname"><em>message</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">u32&#160;</td>
<td class="paramname"><em>timeout_ms</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function receives a message from a queue. The message is recieved by copy so a buffer adequate size must be provided. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">queue</td><td>The handle to the queue from which the message is to be received. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">message</td><td>The pointer to the buffer into which the received message will be copied. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">timeout_ms</td><td>The maximum amout of time the task should block waiting for a message to receive should the queue be empty at the time of the call. The time is defined in ms. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>0: A message was successfully received from the queue. </dd>
<dd>
-1: No message was received from the queue. </dd></dl>
</div>
</div>
<a class="anchor" id="ga441c8d4a290d6686a80bebb8e41c59f1"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int rtw_push_to_xqueue </td>
<td>(</td>
<td class="paramtype">_xqueue *&#160;</td>
<td class="paramname"><em>queue</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">void *&#160;</td>
<td class="paramname"><em>message</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">u32&#160;</td>
<td class="paramname"><em>timeout_ms</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function posts a message to the back of a queue. The message is queued by copy, not by reference. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">queue</td><td>The handle to the queue on which the message is to be posted. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">message</td><td>The pointer to the message that is to be placed on the queue. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">timeout_ms</td><td>The maximum amout of time the task should block waiting for the space to become available on the queue, should it already be full. The time is defined in ms. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>0: The message was successfully posted. </dd>
<dd>
-1: The message was not posted. </dd></dl>
</div>
</div>
<a class="anchor" id="ga09e9d6fa920cee8cfd10c4d7848a5206"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">u32 rtw_queue_empty </td>
<td>(</td>
<td class="paramtype">_queue *&#160;</td>
<td class="paramname"><em>pqueue</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function tests whether the queue is empty. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">pqueue</td><td>The handle to the queue to be tested. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>None </dd></dl>
</div>
</div>
<a class="anchor" id="ga1471dbb012522a892cc24edb3d93ba21"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void rtw_release_wakelock </td>
<td>(</td>
<td class="paramtype">void&#160;</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function indicates that the WLAN does not need to stay on which means can go into power saving mode. </p>
<dl class="section return"><dt>Returns</dt><dd>None </dd></dl>
<dl class="section note"><dt>Note</dt><dd>Defining configUSE_WAKELOCK_PMU 1 in "FreeRTOSConfig.h" needs to be done before compiling, or this API won't be effective. </dd></dl>
</div>
</div>
<a class="anchor" id="ga6a5babf897e2d8284329aeae10c88520"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">u32 rtw_sec_to_systime </td>
<td>(</td>
<td class="paramtype">u32&#160;</td>
<td class="paramname"><em>sec</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Convert seconds to system time. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">systime</td><td>The seconds to be converted. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>: The system time that converted by the seconds. </dd></dl>
</div>
</div>
<a class="anchor" id="gad4f01ed4e9126a09d40b702fe3d4525c"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void rtw_spin_lock </td>
<td>(</td>
<td class="paramtype">_lock *&#160;</td>
<td class="paramname"><em>plock</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function obtains a spin lock semaphore. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">plock</td><td>Pointer to the spin lock semaphore being taken - obtained when the mutex semaphore was created. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>None </dd></dl>
</div>
</div>
<a class="anchor" id="gad7267f308d095c538c0d897eaf63035e"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void rtw_spin_unlock </td>
<td>(</td>
<td class="paramtype">_lock *&#160;</td>
<td class="paramname"><em>plock</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function releases a spin lock semaphore. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">plock</td><td>Pointer to the spin lock semaphore to be released. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>None </dd></dl>
</div>
</div>
<a class="anchor" id="gaef28ab6984d1cf7146af03b748c84454"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void rtw_spinlock_free </td>
<td>(</td>
<td class="paramtype">_lock *&#160;</td>
<td class="paramname"><em>plock</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function deletes the spin lock semaphore. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">pmutex</td><td>Pointer to the spin lock semaphore to be deleted. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>None </dd></dl>
</div>
</div>
<a class="anchor" id="ga37001b820c09b1a19cf192ded723010d"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void rtw_spinlock_init </td>
<td>(</td>
<td class="paramtype">_lock *&#160;</td>
<td class="paramname"><em>plock</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function implements a spin lock semaphore by using the existing queue mechanism. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">plock</td><td>Pointer to the created spin lock semaphore. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>None </dd></dl>
</div>
</div>
<a class="anchor" id="gac6ad8236244e673850643924ce5078de"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void rtw_spinlock_irqsave </td>
<td>(</td>
<td class="paramtype">_lock *&#160;</td>
<td class="paramname"><em>plock</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">_irqL *&#160;</td>
<td class="paramname"><em>irqL</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function marks the start of a critical code region and obtains a spin lock semaphore. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">plock</td><td>Pointer to the spin lock semaphore being taken - obtained when the mutex semaphore was created. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">irqL</td><td>Pointer to the IRQ. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>None </dd></dl>
</div>
</div>
<a class="anchor" id="gac87035e791ade7f016b995a6de36b113"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void rtw_spinunlock_irqsave </td>
<td>(</td>
<td class="paramtype">_lock *&#160;</td>
<td class="paramname"><em>plock</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">_irqL *&#160;</td>
<td class="paramname"><em>irqL</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function releases a spin lock semaphore and marks the end of a critical code region. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">plock</td><td>Pointer to the spin lock semaphore to be released. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">irqL</td><td>Pointer to the IRQ. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>None </dd></dl>
</div>
</div>
<a class="anchor" id="ga8674586494dd8574362f90ffa8401a54"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">u32 rtw_systime_to_ms </td>
<td>(</td>
<td class="paramtype">u32&#160;</td>
<td class="paramname"><em>systime</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Convert system time to milliseconds. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">systime</td><td>The system time to be converted. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>: The milliseconds that converted by the system time. </dd></dl>
</div>
</div>
<a class="anchor" id="ga6d180388ea1f302c61467595c44e6ab5"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">u32 rtw_systime_to_sec </td>
<td>(</td>
<td class="paramtype">u32&#160;</td>
<td class="paramname"><em>systime</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Convert system time to seconds. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">systime</td><td>The system time to be converted. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>: The seconds that converted by the system time. </dd></dl>
</div>
</div>
<a class="anchor" id="ga4f70a3abe91f6e1958eabce586f3b704"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void rtw_thread_enter </td>
<td>(</td>
<td class="paramtype">char *&#160;</td>
<td class="paramname"><em>name</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function prints the name of the thread in DBG_INFO. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">name</td><td>The name of the thread. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>None </dd></dl>
</div>
</div>
<a class="anchor" id="gac86052516c9cb6c3a4c1bc90e1cca303"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void rtw_thread_exit </td>
<td>(</td>
<td class="paramtype">void&#160;</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function exits the calling thread. </p>
<dl class="section return"><dt>Returns</dt><dd>None </dd></dl>
</div>
</div>
<a class="anchor" id="gabbc6483e7d29c8ab1918784d20724ff6"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">u32 rtw_timerChangePeriod </td>
<td>(</td>
<td class="paramtype">_timerHandle&#160;</td>
<td class="paramname"><em>xTimer</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">osdepTickType&#160;</td>
<td class="paramname"><em>xNewPeriod</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">osdepTickType&#160;</td>
<td class="paramname"><em>xBlockTime</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function changes the period of a timer that was previously created. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">xTimer</td><td>The handle of the timer that is having its period changed. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">xNewPeriod</td><td>The new period for xTimer. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">xBlockTime</td><td>Specifies the time, in ticks, that the calling task should be held in the Blocked state to wait for the change period command to be successfully sent to the timer command queue, should the queue already be full when <a class="el" href="group___r_t_o_s.html#gabbc6483e7d29c8ab1918784d20724ff6" title="This function changes the period of a timer that was previously created. ">rtw_timerChangePeriod()</a> was called. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>pdFAIL will be returned if the change period command could not be sent to the timer command queue even after xTicksToWait ticks had passed. pdPASS will be returned if the command was successfully sent to the timer command queue. When the command is actually processed will depend on the priority of the timer service/daemon task relative to other tasks in the system. </dd></dl>
</div>
</div>
<a class="anchor" id="gac584192034fe149a89a9c6ff816cb824"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">_timerHandle rtw_timerCreate </td>
<td>(</td>
<td class="paramtype">const signed char *&#160;</td>
<td class="paramname"><em>pcTimerName</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">osdepTickType&#160;</td>
<td class="paramname"><em>xTimerPeriodInTicks</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">u32&#160;</td>
<td class="paramname"><em>uxAutoReload</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">void *&#160;</td>
<td class="paramname"><em>pvTimerID</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">TIMER_FUN&#160;</td>
<td class="paramname"><em>pxCallbackFunction</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function creates a new software timer instance. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">pcTimerName</td><td>A text name that is assigned to the timer. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">xTimerPeriodInTicks</td><td>The timer period which is defined in tick periods. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">uxAutoReload</td><td>If uxAutoReload is set to pdTRUE then the timer will expire repeatedly with a frequency set by the xTimerPeriodInTicks parameter. If uxAutoReload is set to pdFALSE then the timer will be a one-shot timer and enter the dormant state after it expires. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">pvTimerID</td><td>An identifier that is assigned to the timer being created. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">pxCallbackFunction</td><td>The function to call when the timer expires. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>If the timer is successfully create then a handle to the newly created timer is returned. If the timer cannot be created, then 0 is returned. </dd></dl>
</div>
</div>
<a class="anchor" id="ga70c7ca6935ebab8b73083de9893afd09"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">u32 rtw_timerDelete </td>
<td>(</td>
<td class="paramtype">_timerHandle&#160;</td>
<td class="paramname"><em>xTimer</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">osdepTickType&#160;</td>
<td class="paramname"><em>xBlockTime</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function deletes a timer that was previously created using rtw_timerCreate. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">xTimer</td><td>The handle of the timer being deleted. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">xBlockTime</td><td>Specifies th etime, in ticks, that the calling task should be held in the Blocked State to wait for the delete command to be successfully sent to the timer command queue, should the queue already be full when rtw_timerDelete was called. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>pdFAIL will be returned if the delete command could not be sent to the timer command queue even after xTicksToWait ticks had passed. pdPASS will be returned if the command was successfully sent to the timer command queue. When the command is actually processed will depend on the priority of the timer service/daemon task relative to other tasks in the system. </dd></dl>
</div>
</div>
<a class="anchor" id="ga2a7497759cd3304af7e1ea19fe9d3627"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">u32 rtw_timerIsTimerActive </td>
<td>(</td>
<td class="paramtype">_timerHandle&#160;</td>
<td class="paramname"><em>xTimer</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function queries a timer to see if it is active or dormant. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">xTimer</td><td>The timer being queried. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>pdFALSE will be returned if the timer is dormant. A value other than pdFALSE will be returned if the timer is active. </dd></dl>
<dl class="section note"><dt>Note</dt><dd>A timer will be dormant if: 1) It has been created but not started, or 2) It is an expired one-shot timer that has not been restarted. </dd></dl>
</div>
</div>
<a class="anchor" id="ga658aea6db26460a6d9d9b3c4d1f46d21"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">u32 rtw_timerStop </td>
<td>(</td>
<td class="paramtype">_timerHandle&#160;</td>
<td class="paramname"><em>xTimer</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">osdepTickType&#160;</td>
<td class="paramname"><em>xBlockTime</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function stops a timer that was previously started. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">xTimer</td><td>The handle of the timer being stopped. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">xBlockTime</td><td>Specifies the time, in ticks, that the calling task should be held in the Blocked state to wait for the stop command to be successfully sent to the timer command queue, should the queue already be full when <a class="el" href="group___r_t_o_s.html#ga658aea6db26460a6d9d9b3c4d1f46d21" title="This function stops a timer that was previously started. ">rtw_timerStop()</a> was called. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>pdFAIL will be returned if the stop command could not be sent to the timer command queue even after xTicksToWait ticks had passed. pdPASS will be returned if the command was successfully sent to the timer command queue. When the command is actually processed will depend on the priority of the timer service/daemon task relative to other tasks in the system. </dd></dl>
</div>
</div>
<a class="anchor" id="gaf2a43ba4d719a9577d717e7f047a44eb"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void rtw_udelay_os </td>
<td>(</td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>us</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function delays a task for the giving time in microseconds. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">ms</td><td>The amount of time, in microseconds, that the calling task should block. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>None </dd></dl>
</div>
</div>
<a class="anchor" id="ga96ec8c04aa355f3b8f793ab2bd203708"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void rtw_up_sema </td>
<td>(</td>
<td class="paramtype">_sema *&#160;</td>
<td class="paramname"><em>sema</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function releases the semaphore. This macro must not be used from an ISR. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">sema</td><td>The semaphore to be released. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>None </dd></dl>
</div>
</div>
<a class="anchor" id="ga6d38da5c99a8b7a89e101aee8ffd69b9"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void rtw_up_sema_from_isr </td>
<td>(</td>
<td class="paramtype">_sema *&#160;</td>
<td class="paramname"><em>sema</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function releases the semaphore. This macro can be used from an ISR. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">sema</td><td>The semaphore to be released. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>None </dd></dl>
</div>
</div>
<a class="anchor" id="ga32743271ed298e09a4a5d6d55ab8736e"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void rtw_usleep_os </td>
<td>(</td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>us</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function suspends execution of the calling thread for "us" microseconds. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">ms</td><td>The time that the function sleep in microseconds </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>None </dd></dl>
</div>
</div>
<a class="anchor" id="gae5627853bef70ebbcccb913093b2a3c3"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">u8* rtw_vmalloc </td>
<td>(</td>
<td class="paramtype">u32&#160;</td>
<td class="paramname"><em>sz</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function allocates the virtually contiguous memory. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">sz</td><td>The size of memory to be allocated. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The pointer to the beginning of the memory </dd></dl>
</div>
</div>
<a class="anchor" id="ga510c5826df487b958b88a22574cc0e53"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void rtw_vmfree </td>
<td>(</td>
<td class="paramtype">u8 *&#160;</td>
<td class="paramname"><em>pbuf</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">u32&#160;</td>
<td class="paramname"><em>sz</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function frees the virtually contiguous memory. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">pbuf</td><td>The pointer to the beginning of the memory to be free </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">sz</td><td>The size of memory allocated. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>None </dd></dl>
</div>
</div>
<a class="anchor" id="ga9d259d21a6ce29d0805e8f36f4ddfcc4"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void rtw_wakeup_task </td>
<td>(</td>
<td class="paramtype">struct <a class="el" href="structtask__struct.html">task_struct</a> *&#160;</td>
<td class="paramname"><em>task</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function wake up a task. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">task</td><td>The task stucture which will be waked up. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>None </dd></dl>
</div>
</div>
<a class="anchor" id="gad1d04350f2daf1172a7c4baf27f023e4"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void rtw_yield_os </td>
<td>(</td>
<td class="paramtype">void&#160;</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function for forcing a context switch. </p>
<dl class="section return"><dt>Returns</dt><dd>None </dd></dl>
</div>
</div>
<a class="anchor" id="ga40bfe4cd4df674a0b6c8ada337314885"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">u8* rtw_zmalloc </td>
<td>(</td>
<td class="paramtype">u32&#160;</td>
<td class="paramname"><em>sz</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function allocates the memory and the values of the memory are setted to 0. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">sz</td><td>The size of memory to be allocated. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The pointer to the beginning of the memory </dd></dl>
</div>
</div>
<a class="anchor" id="gaa2cd73358028cae5a8c9970bfe41b996"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">u8* rtw_zvmalloc </td>
<td>(</td>
<td class="paramtype">u32&#160;</td>
<td class="paramname"><em>sz</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function allocates the virtually contiguous memory and the values of the memory are setted to 0. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">sz</td><td>The size of memory to be allocated. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The pointer to the beginning of the memory </dd></dl>
</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.11
</small></address>
</body>
</html>