Newer
Older
UbixOS / doc / html / sys_8h_source.html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.16"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>UbixOS V2: C:/Dev/git/UbixOS/sys/include/net/sys.h Source File</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="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
  $(document).ready(initResizable);
/* @license-end */</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">UbixOS V2
   &#160;<span id="projectnumber">2.0</span>
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.16 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
  initMenu('',true,false,'search.php','Search');
  $(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('sys_8h_source.html','');});
/* @license-end */
</script>
<div id="doc-content">
<!-- 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="headertitle">
<div class="title">sys.h</div>  </div>
</div><!--header-->
<div class="contents">
<a href="sys_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/*</span></div>
<div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Copyright (c) 2001-2004 Swedish Institute of Computer Science.</span></div>
<div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> * All rights reserved.</span></div>
<div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * Redistribution and use in source and binary forms, with or without modification,</span></div>
<div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * are permitted provided that the following conditions are met:</span></div>
<div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * 1. Redistributions of source code must retain the above copyright notice,</span></div>
<div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *    this list of conditions and the following disclaimer.</span></div>
<div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> * 2. Redistributions in binary form must reproduce the above copyright notice,</span></div>
<div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment"> *    this list of conditions and the following disclaimer in the documentation</span></div>
<div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment"> *    and/or other materials provided with the distribution.</span></div>
<div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment"> * 3. The name of the author may not be used to endorse or promote products</span></div>
<div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment"> *    derived from this software without specific prior written permission.</span></div>
<div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="comment"> * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS&#39;&#39; AND ANY EXPRESS OR IMPLIED</span></div>
<div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="comment"> * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF</span></div>
<div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="comment"> * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT</span></div>
<div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="comment"> * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,</span></div>
<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="comment"> * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT</span></div>
<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="comment"> * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS</span></div>
<div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<span class="comment"> * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN</span></div>
<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;<span class="comment"> * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING</span></div>
<div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;<span class="comment"> * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY</span></div>
<div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;<span class="comment"> * OF SUCH DAMAGE.</span></div>
<div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;<span class="comment"> * This file is part of the lwIP TCP/IP stack.</span></div>
<div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;<span class="comment"> * Author: Adam Dunkels &lt;adam@sics.se&gt;</span></div>
<div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160; </div>
<div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;<span class="preprocessor">#ifndef NET_HDR_SYS_H</span></div>
<div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;<span class="preprocessor">#define NET_HDR_SYS_H</span></div>
<div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160; </div>
<div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="opt_8h.html">net/opt.h</a>&gt;</span></div>
<div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="sys__arch_8h.html">net/arch/sys_arch.h</a>&gt;</span></div>
<div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160; </div>
<div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;<span class="preprocessor">#ifdef __cplusplus</span></div>
<div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;<span class="keyword">extern</span> <span class="stringliteral">&quot;C&quot;</span> {</div>
<div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160; </div>
<div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;<span class="preprocessor">#if NO_SYS</span></div>
<div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160; </div>
<div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;<span class="preprocessor">#else </span><span class="comment">/* NO_SYS */</span><span class="preprocessor"></span></div>
<div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160; </div>
<div class="line"><a name="l00047"></a><span class="lineno"><a class="line" href="sys_8h.html#ac1495030a8ab5e1f3c89e42ced527c5b">   47</a></span>&#160;<span class="preprocessor">#define SYS_ARCH_TIMEOUT 0xffffffffUL</span></div>
<div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160; </div>
<div class="line"><a name="l00052"></a><span class="lineno"><a class="line" href="sys_8h.html#ab0571e67edca0132b144106e9b319ef9">   52</a></span>&#160;<span class="preprocessor">#define SYS_MBOX_EMPTY SYS_ARCH_TIMEOUT</span></div>
<div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160; </div>
<div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="err_8h.html">net/err.h</a>&quot;</span></div>
<div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="sys__arch_8h.html">net/arch/sys_arch.h</a>&quot;</span></div>
<div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160; </div>
<div class="line"><a name="l00058"></a><span class="lineno"><a class="line" href="sys_8h.html#ae30a77bf6bd69bfcc5f235eaad54f2b9">   58</a></span>&#160;<span class="keyword">typedef</span> void (*<a class="code" href="sys_8h.html#ae30a77bf6bd69bfcc5f235eaad54f2b9">lwip_thread_fn</a>)(<span class="keywordtype">void</span> *arg);</div>
<div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160; </div>
<div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;<span class="comment">/* Function prototypes for functions to be implemented by platform ports</span></div>
<div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;<span class="comment">   (in sys_arch.c) */</span></div>
<div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160; </div>
<div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;<span class="comment">/* Mutex functions: */</span></div>
<div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160; </div>
<div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160;<span class="preprocessor">#ifndef LWIP_COMPAT_MUTEX</span></div>
<div class="line"><a name="l00068"></a><span class="lineno"><a class="line" href="sys_8h.html#a7bada49634cd3b28b28bdcedd763a1e6">   68</a></span>&#160;<span class="preprocessor">#define LWIP_COMPAT_MUTEX 0</span></div>
<div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160; </div>
<div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;<span class="preprocessor">#if LWIP_COMPAT_MUTEX</span></div>
<div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;<span class="comment">/* for old ports that don&#39;t have mutexes: define them to binary semaphores */</span></div>
<div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;<span class="preprocessor">#define sys_mutex_t                   sys_sem_t</span></div>
<div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160;<span class="preprocessor">#define sys_mutex_new(mutex)          sys_sem_new(mutex, 1)</span></div>
<div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160;<span class="preprocessor">#define sys_mutex_lock(mutex)         sys_sem_wait(mutex)</span></div>
<div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160;<span class="preprocessor">#define sys_mutex_unlock(mutex)       sys_sem_signal(mutex)</span></div>
<div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;<span class="preprocessor">#define sys_mutex_free(mutex)         sys_sem_free(mutex)</span></div>
<div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;<span class="preprocessor">#define sys_mutex_valid(mutex)        sys_sem_valid(mutex)</span></div>
<div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160;<span class="preprocessor">#define sys_mutex_set_invalid(mutex)  sys_sem_set_invalid(mutex)</span></div>
<div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160; </div>
<div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160;<span class="preprocessor">#else </span><span class="comment">/* LWIP_COMPAT_MUTEX */</span><span class="preprocessor"></span></div>
<div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160; </div>
<div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;<a class="code" href="group__infrastructure__errors.html#gaf02d9da80fd66b4f986d2c53d7231ddb">err_t</a> <a class="code" href="group__sys__mutex.html#ga38e7dae1fd88b338eb1cd97f110f3897">sys_mutex_new</a>(<a class="code" href="structsys__mutex.html">sys_mutex_t</a> *<a class="code" href="ubthread_8c.html#a18b6be9ca0cec4b0643171232d6f10de">mutex</a>);</div>
<div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160;<span class="keywordtype">void</span> <a class="code" href="group__sys__mutex.html#ga4d4eb9afe5965fa2661dd54ff55d616a">sys_mutex_lock</a>(<a class="code" href="structsys__mutex.html">sys_mutex_t</a> *<a class="code" href="ubthread_8c.html#a18b6be9ca0cec4b0643171232d6f10de">mutex</a>);</div>
<div class="line"><a name="l00103"></a><span class="lineno">  103</span>&#160;<span class="keywordtype">void</span> <a class="code" href="group__sys__mutex.html#ga5568f68898fe9d5735f9ce2f665624fb">sys_mutex_unlock</a>(<a class="code" href="structsys__mutex.html">sys_mutex_t</a> *<a class="code" href="ubthread_8c.html#a18b6be9ca0cec4b0643171232d6f10de">mutex</a>);</div>
<div class="line"><a name="l00109"></a><span class="lineno">  109</span>&#160;<span class="keywordtype">void</span> <a class="code" href="group__sys__mutex.html#ga16336ce68b741e98204102ca4bc84dd9">sys_mutex_free</a>(<a class="code" href="structsys__mutex.html">sys_mutex_t</a> *<a class="code" href="ubthread_8c.html#a18b6be9ca0cec4b0643171232d6f10de">mutex</a>);</div>
<div class="line"><a name="l00110"></a><span class="lineno">  110</span>&#160;<span class="preprocessor">#ifndef sys_mutex_valid</span></div>
<div class="line"><a name="l00111"></a><span class="lineno">  111</span>&#160; </div>
<div class="line"><a name="l00115"></a><span class="lineno">  115</span>&#160;<span class="keywordtype">int</span> <a class="code" href="group__sys__mutex.html#gaebe83ba90a6d9c23cdb3eb5d49562c4a">sys_mutex_valid</a>(<a class="code" href="structsys__mutex.html">sys_mutex_t</a> *<a class="code" href="ubthread_8c.html#a18b6be9ca0cec4b0643171232d6f10de">mutex</a>);</div>
<div class="line"><a name="l00116"></a><span class="lineno">  116</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160;<span class="preprocessor">#ifndef sys_mutex_set_invalid</span></div>
<div class="line"><a name="l00118"></a><span class="lineno">  118</span>&#160; </div>
<div class="line"><a name="l00122"></a><span class="lineno">  122</span>&#160;<span class="keywordtype">void</span> <a class="code" href="group__sys__mutex.html#ga3f392725971dc837aa56dd7e45fa7ca8">sys_mutex_set_invalid</a>(<a class="code" href="structsys__mutex.html">sys_mutex_t</a> *<a class="code" href="ubthread_8c.html#a18b6be9ca0cec4b0643171232d6f10de">mutex</a>);</div>
<div class="line"><a name="l00123"></a><span class="lineno">  123</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00124"></a><span class="lineno">  124</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* LWIP_COMPAT_MUTEX */</span><span class="preprocessor"></span></div>
<div class="line"><a name="l00125"></a><span class="lineno">  125</span>&#160; </div>
<div class="line"><a name="l00126"></a><span class="lineno">  126</span>&#160;<span class="comment">/* Semaphore functions: */</span></div>
<div class="line"><a name="l00127"></a><span class="lineno">  127</span>&#160; </div>
<div class="line"><a name="l00135"></a><span class="lineno">  135</span>&#160;<a class="code" href="group__infrastructure__errors.html#gaf02d9da80fd66b4f986d2c53d7231ddb">err_t</a> <a class="code" href="group__sys__sem.html#gadb68acad14b34550b9891bc11bbf4e63">sys_sem_new</a>(<a class="code" href="structsys__sem.html">sys_sem_t</a> **sem, <a class="code" href="group__compiler__abstraction.html#ga4caecabca98b43919dd11be1c0d4cd8e">u8_t</a> count);</div>
<div class="line"><a name="l00141"></a><span class="lineno">  141</span>&#160;<span class="keywordtype">void</span> <a class="code" href="group__sys__sem.html#gaff1dd2af219b75ae812e0b1660bd7455">sys_sem_signal</a>(<span class="keyword">struct</span> <a class="code" href="structsys__sem.html">sys_sem</a> **s);</div>
<div class="line"><a name="l00150"></a><span class="lineno">  150</span>&#160;<a class="code" href="include_2sys_2types_8h.html#a0238af00180b6d9278fa1c6aa790fdf4">uint32_t</a> <a class="code" href="group__sys__sem.html#ga28aa725e8a36dd0cfde89875af4f3ec9">sys_arch_sem_wait</a>(<span class="keyword">struct</span> <a class="code" href="structsys__sem.html">sys_sem</a> **s, <a class="code" href="include_2sys_2types_8h.html#a0238af00180b6d9278fa1c6aa790fdf4">uint32_t</a> timeout);</div>
<div class="line"><a name="l00156"></a><span class="lineno">  156</span>&#160;<span class="keywordtype">void</span> <a class="code" href="group__sys__sem.html#ga4d02e29e5dfa092559efc04dee985822">sys_sem_free</a>(<a class="code" href="structsys__sem.html">sys_sem_t</a> **sem);</div>
<div class="line"><a name="l00158"></a><span class="lineno"><a class="line" href="sys_8h.html#a84e7e4bc00255aee84e6e7289a985703">  158</a></span>&#160;<span class="preprocessor">#define sys_sem_wait(sem)                  sys_arch_sem_wait(sem, 0)</span></div>
<div class="line"><a name="l00159"></a><span class="lineno">  159</span>&#160;<span class="preprocessor">#ifndef sys_sem_valid</span></div>
<div class="line"><a name="l00160"></a><span class="lineno">  160</span>&#160; </div>
<div class="line"><a name="l00164"></a><span class="lineno">  164</span>&#160;<span class="keywordtype">int</span> <a class="code" href="group__sys__sem.html#gac7ff314270976b80559d043f6098817b">sys_sem_valid</a>(<span class="keyword">struct</span> <a class="code" href="structsys__sem.html">sys_sem</a> **s);</div>
<div class="line"><a name="l00165"></a><span class="lineno">  165</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00166"></a><span class="lineno">  166</span>&#160;<span class="preprocessor">#ifndef sys_sem_set_invalid</span></div>
<div class="line"><a name="l00167"></a><span class="lineno">  167</span>&#160; </div>
<div class="line"><a name="l00171"></a><span class="lineno">  171</span>&#160;<span class="keywordtype">void</span> <a class="code" href="group__sys__sem.html#ga6b618ddf0c8e73302f1dae7821661457">sys_sem_set_invalid</a>(<span class="keyword">struct</span> <a class="code" href="structsys__sem.html">sys_sem</a> **s);</div>
<div class="line"><a name="l00172"></a><span class="lineno">  172</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00173"></a><span class="lineno">  173</span>&#160;<span class="preprocessor">#ifndef sys_sem_valid_val</span></div>
<div class="line"><a name="l00174"></a><span class="lineno">  174</span>&#160; </div>
<div class="line"><a name="l00177"></a><span class="lineno"><a class="line" href="sys_8h.html#a9e8ad541356786936f23ab83b8f550cc">  177</a></span>&#160;<span class="preprocessor">#define sys_sem_valid_val(sem)       sys_sem_valid(&amp;(sem))</span></div>
<div class="line"><a name="l00178"></a><span class="lineno">  178</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00179"></a><span class="lineno">  179</span>&#160;<span class="preprocessor">#ifndef sys_sem_set_invalid_val</span></div>
<div class="line"><a name="l00180"></a><span class="lineno">  180</span>&#160; </div>
<div class="line"><a name="l00183"></a><span class="lineno"><a class="line" href="sys_8h.html#a2556e570f6973a6f4d57d0e76ef190d8">  183</a></span>&#160;<span class="preprocessor">#define sys_sem_set_invalid_val(sem) sys_sem_set_invalid(&amp;(sem))</span></div>
<div class="line"><a name="l00184"></a><span class="lineno">  184</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00185"></a><span class="lineno">  185</span>&#160; </div>
<div class="line"><a name="l00186"></a><span class="lineno">  186</span>&#160;<span class="preprocessor">#ifndef sys_msleep</span></div>
<div class="line"><a name="l00187"></a><span class="lineno">  187</span>&#160; </div>
<div class="line"><a name="l00191"></a><span class="lineno">  191</span>&#160;<span class="keywordtype">void</span> <a class="code" href="group__sys__misc.html#ga6b8786f43e779953e8b74e983c88682e">sys_msleep</a>(<a class="code" href="group__compiler__abstraction.html#ga4c14294869aceba3ef9d4c0c302d0f33">u32_t</a> ms); <span class="comment">/* only has a (close to) 1 ms resolution. */</span></div>
<div class="line"><a name="l00192"></a><span class="lineno">  192</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00193"></a><span class="lineno">  193</span>&#160; </div>
<div class="line"><a name="l00194"></a><span class="lineno">  194</span>&#160;<span class="comment">/* Mailbox functions. */</span></div>
<div class="line"><a name="l00195"></a><span class="lineno">  195</span>&#160; </div>
<div class="line"><a name="l00203"></a><span class="lineno">  203</span>&#160;<a class="code" href="group__infrastructure__errors.html#gaf02d9da80fd66b4f986d2c53d7231ddb">err_t</a> <a class="code" href="group__sys__mbox.html#ga26c015e64c859c9361a6f75c4e6fa829">sys_mbox_new</a>(<span class="keyword">struct</span> <a class="code" href="structsys__mbox.html">sys_mbox</a> **mb, <span class="keywordtype">int</span> size);</div>
<div class="line"><a name="l00211"></a><span class="lineno">  211</span>&#160;<span class="keywordtype">void</span> <a class="code" href="group__sys__mbox.html#ga8ff11ed9831af7ca486123f74d4064ac">sys_mbox_post</a>(<span class="keyword">struct</span> <a class="code" href="structsys__mbox.html">sys_mbox</a> **mb, <span class="keywordtype">void</span> *msg);</div>
<div class="line"><a name="l00218"></a><span class="lineno">  218</span>&#160;<a class="code" href="group__infrastructure__errors.html#gaf02d9da80fd66b4f986d2c53d7231ddb">err_t</a> <a class="code" href="group__sys__mbox.html#gacc06f47f34de04084e1d49788ce871b6">sys_mbox_trypost</a>(<span class="keyword">struct</span> <a class="code" href="structsys__mbox.html">sys_mbox</a> **mb, <span class="keywordtype">void</span> *msg);</div>
<div class="line"><a name="l00229"></a><span class="lineno">  229</span>&#160;<a class="code" href="include_2sys_2types_8h.html#a0238af00180b6d9278fa1c6aa790fdf4">uint32_t</a> <a class="code" href="group__sys__mbox.html#gacc53b5c30f131abc40f0885d39d32f87">sys_arch_mbox_fetch</a>(<span class="keyword">struct</span> <a class="code" href="structsys__mbox.html">sys_mbox</a> **mb, <span class="keywordtype">void</span> **msg, <a class="code" href="include_2sys_2types_8h.html#a0238af00180b6d9278fa1c6aa790fdf4">uint32_t</a> timeout);</div>
<div class="line"><a name="l00230"></a><span class="lineno">  230</span>&#160;<span class="comment">/* Allow port to override with a macro, e.g. special timeout for sys_arch_mbox_fetch() */</span></div>
<div class="line"><a name="l00231"></a><span class="lineno">  231</span>&#160;<span class="preprocessor">#ifndef sys_arch_mbox_tryfetch</span></div>
<div class="line"><a name="l00232"></a><span class="lineno">  232</span>&#160; </div>
<div class="line"><a name="l00240"></a><span class="lineno">  240</span>&#160;<a class="code" href="include_2sys_2types_8h.html#a0238af00180b6d9278fa1c6aa790fdf4">uint32_t</a> <a class="code" href="group__sys__mbox.html#ga3e0e0f02be2f670ebfb093a21f7dcdb8">sys_arch_mbox_tryfetch</a>(<span class="keyword">struct</span> <a class="code" href="structsys__mbox.html">sys_mbox</a> **mb, <span class="keywordtype">void</span> **msg);</div>
<div class="line"><a name="l00241"></a><span class="lineno">  241</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00242"></a><span class="lineno">  242</span>&#160; </div>
<div class="line"><a name="l00245"></a><span class="lineno"><a class="line" href="sys_8h.html#ab7841780b31ba9c0a39a440aad1fca13">  245</a></span>&#160;<span class="preprocessor">#define sys_mbox_tryfetch(mbox, msg) sys_arch_mbox_tryfetch(mbox, msg)</span></div>
<div class="line"><a name="l00246"></a><span class="lineno">  246</span>&#160; </div>
<div class="line"><a name="l00251"></a><span class="lineno">  251</span>&#160;<span class="keywordtype">void</span> <a class="code" href="group__sys__mbox.html#gad4a51a28337f89d4b4806e6deb99798d">sys_mbox_free</a>(<span class="keyword">struct</span> <a class="code" href="structsys__mbox.html">sys_mbox</a> **mb);</div>
<div class="line"><a name="l00252"></a><span class="lineno"><a class="line" href="sys_8h.html#a5bae9efa9c945dc810665dc4a7e60117">  252</a></span>&#160;<span class="preprocessor">#define sys_mbox_fetch(mbox, msg) sys_arch_mbox_fetch(mbox, msg, 0)</span></div>
<div class="line"><a name="l00253"></a><span class="lineno">  253</span>&#160;<span class="preprocessor">#ifndef sys_mbox_valid</span></div>
<div class="line"><a name="l00254"></a><span class="lineno">  254</span>&#160; </div>
<div class="line"><a name="l00258"></a><span class="lineno">  258</span>&#160;<span class="keywordtype">int</span> <a class="code" href="group__sys__mbox.html#gadf4b8fccb41fe2d76e88bef546e8e8bb">sys_mbox_valid</a>(<span class="keyword">struct</span> <a class="code" href="structsys__mbox.html">sys_mbox</a> **mb);</div>
<div class="line"><a name="l00259"></a><span class="lineno">  259</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00260"></a><span class="lineno">  260</span>&#160;<span class="preprocessor">#ifndef sys_mbox_set_invalid</span></div>
<div class="line"><a name="l00261"></a><span class="lineno">  261</span>&#160; </div>
<div class="line"><a name="l00265"></a><span class="lineno">  265</span>&#160;<span class="keywordtype">void</span> <a class="code" href="group__sys__mbox.html#ga64ca1b1ef4c810f4d67595eca4fdfef0">sys_mbox_set_invalid</a>(<span class="keyword">struct</span> <a class="code" href="structsys__mbox.html">sys_mbox</a> **mb);</div>
<div class="line"><a name="l00266"></a><span class="lineno">  266</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00267"></a><span class="lineno">  267</span>&#160;<span class="preprocessor">#ifndef sys_mbox_valid_val</span></div>
<div class="line"><a name="l00268"></a><span class="lineno">  268</span>&#160; </div>
<div class="line"><a name="l00271"></a><span class="lineno"><a class="line" href="sys_8h.html#aae82640d0bdbeec7b9b6511b3f8d99cb">  271</a></span>&#160;<span class="preprocessor">#define sys_mbox_valid_val(mbox)       sys_mbox_valid(&amp;(mbox))</span></div>
<div class="line"><a name="l00272"></a><span class="lineno">  272</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00273"></a><span class="lineno">  273</span>&#160;<span class="preprocessor">#ifndef sys_mbox_set_invalid_val</span></div>
<div class="line"><a name="l00274"></a><span class="lineno">  274</span>&#160; </div>
<div class="line"><a name="l00277"></a><span class="lineno"><a class="line" href="sys_8h.html#ae293feebb61d36f2db99be53702b8203">  277</a></span>&#160;<span class="preprocessor">#define sys_mbox_set_invalid_val(mbox) sys_mbox_set_invalid(&amp;(mbox))</span></div>
<div class="line"><a name="l00278"></a><span class="lineno">  278</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00279"></a><span class="lineno">  279</span>&#160; </div>
<div class="line"><a name="l00280"></a><span class="lineno">  280</span>&#160; </div>
<div class="line"><a name="l00291"></a><span class="lineno">  291</span>&#160;<a class="code" href="structsys__thread.html">sys_thread_t</a> <a class="code" href="group__sys__misc.html#ga0d596afdd8dbcfad320172d39b0f607a">sys_thread_new</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="pci_8c.html#a8f8f80d37794cde9472343e4487ba3eb">name</a>, <a class="code" href="sys_8h.html#ae30a77bf6bd69bfcc5f235eaad54f2b9">lwip_thread_fn</a> <a class="code" href="structthread.html">thread</a>, <span class="keywordtype">void</span> *arg, <span class="keywordtype">int</span> stacksize, <span class="keywordtype">int</span> prio);</div>
<div class="line"><a name="l00292"></a><span class="lineno">  292</span>&#160; </div>
<div class="line"><a name="l00293"></a><span class="lineno">  293</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* NO_SYS */</span><span class="preprocessor"></span></div>
<div class="line"><a name="l00294"></a><span class="lineno">  294</span>&#160; </div>
<div class="line"><a name="l00295"></a><span class="lineno">  295</span>&#160;<span class="comment">/* sys_init() must be called before anything else. */</span></div>
<div class="line"><a name="l00296"></a><span class="lineno">  296</span>&#160;<span class="keywordtype">void</span> <a class="code" href="sys_8h.html#af411a8bc6b7ed4b0af9114e10c959448">sys_init</a>(<span class="keywordtype">void</span>);</div>
<div class="line"><a name="l00297"></a><span class="lineno">  297</span>&#160; </div>
<div class="line"><a name="l00298"></a><span class="lineno">  298</span>&#160;<span class="preprocessor">#ifndef sys_jiffies</span></div>
<div class="line"><a name="l00299"></a><span class="lineno">  299</span>&#160; </div>
<div class="line"><a name="l00302"></a><span class="lineno">  302</span>&#160;<a class="code" href="group__compiler__abstraction.html#ga4c14294869aceba3ef9d4c0c302d0f33">u32_t</a> <a class="code" href="sys_8h.html#ac89f307e8b360eaf821b461a4f26753a">sys_jiffies</a>(<span class="keywordtype">void</span>);</div>
<div class="line"><a name="l00303"></a><span class="lineno">  303</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00304"></a><span class="lineno">  304</span>&#160; </div>
<div class="line"><a name="l00310"></a><span class="lineno">  310</span>&#160;<a class="code" href="group__compiler__abstraction.html#ga4c14294869aceba3ef9d4c0c302d0f33">u32_t</a> <a class="code" href="group__sys__time.html#ga11316ac1e77418c6fa4ab8869e3fa199">sys_now</a>(<span class="keywordtype">void</span>);</div>
<div class="line"><a name="l00311"></a><span class="lineno">  311</span>&#160; </div>
<div class="line"><a name="l00312"></a><span class="lineno">  312</span>&#160;<span class="comment">/* Critical Region Protection */</span></div>
<div class="line"><a name="l00313"></a><span class="lineno">  313</span>&#160;<span class="comment">/* These functions must be implemented in the sys_arch.c file.</span></div>
<div class="line"><a name="l00314"></a><span class="lineno">  314</span>&#160;<span class="comment">   In some implementations they can provide a more light-weight protection</span></div>
<div class="line"><a name="l00315"></a><span class="lineno">  315</span>&#160;<span class="comment">   mechanism than using semaphores. Otherwise semaphores can be used for</span></div>
<div class="line"><a name="l00316"></a><span class="lineno">  316</span>&#160;<span class="comment">   implementation */</span></div>
<div class="line"><a name="l00317"></a><span class="lineno">  317</span>&#160;<span class="preprocessor">#ifndef SYS_ARCH_PROTECT</span></div>
<div class="line"><a name="l00318"></a><span class="lineno">  318</span>&#160; </div>
<div class="line"><a name="l00323"></a><span class="lineno">  323</span>&#160;<span class="preprocessor">#if SYS_LIGHTWEIGHT_PROT</span></div>
<div class="line"><a name="l00324"></a><span class="lineno">  324</span>&#160; </div>
<div class="line"><a name="l00332"></a><span class="lineno">  332</span>&#160;<span class="preprocessor">#define SYS_ARCH_DECL_PROTECT(lev) sys_prot_t lev</span></div>
<div class="line"><a name="l00333"></a><span class="lineno">  333</span>&#160; </div>
<div class="line"><a name="l00344"></a><span class="lineno">  344</span>&#160;<span class="preprocessor">#define SYS_ARCH_PROTECT(lev) lev = sys_arch_protect()</span></div>
<div class="line"><a name="l00345"></a><span class="lineno">  345</span>&#160; </div>
<div class="line"><a name="l00355"></a><span class="lineno">  355</span>&#160;<span class="preprocessor">#define SYS_ARCH_UNPROTECT(lev) sys_arch_unprotect(lev)</span></div>
<div class="line"><a name="l00356"></a><span class="lineno">  356</span>&#160;sys_prot_t sys_arch_protect(<span class="keywordtype">void</span>);</div>
<div class="line"><a name="l00357"></a><span class="lineno">  357</span>&#160;<span class="keywordtype">void</span> sys_arch_unprotect(sys_prot_t pval);</div>
<div class="line"><a name="l00358"></a><span class="lineno">  358</span>&#160; </div>
<div class="line"><a name="l00359"></a><span class="lineno">  359</span>&#160;<span class="preprocessor">#else</span></div>
<div class="line"><a name="l00360"></a><span class="lineno">  360</span>&#160; </div>
<div class="line"><a name="l00361"></a><span class="lineno"><a class="line" href="sys_8h.html#a945395fa326214fc9736487242710a90">  361</a></span>&#160;<span class="preprocessor">#define SYS_ARCH_DECL_PROTECT(lev)</span></div>
<div class="line"><a name="l00362"></a><span class="lineno"><a class="line" href="sys_8h.html#a3d0e48feafd378e9c26c64567ecd8bab">  362</a></span>&#160;<span class="preprocessor">#define SYS_ARCH_PROTECT(lev)</span></div>
<div class="line"><a name="l00363"></a><span class="lineno"><a class="line" href="sys_8h.html#a2f48e97047945642ddeb27e65bf4ffe2">  363</a></span>&#160;<span class="preprocessor">#define SYS_ARCH_UNPROTECT(lev)</span></div>
<div class="line"><a name="l00364"></a><span class="lineno">  364</span>&#160; </div>
<div class="line"><a name="l00365"></a><span class="lineno">  365</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* SYS_LIGHTWEIGHT_PROT */</span><span class="preprocessor"></span></div>
<div class="line"><a name="l00366"></a><span class="lineno">  366</span>&#160; </div>
<div class="line"><a name="l00367"></a><span class="lineno">  367</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* SYS_ARCH_PROTECT */</span><span class="preprocessor"></span></div>
<div class="line"><a name="l00368"></a><span class="lineno">  368</span>&#160; </div>
<div class="line"><a name="l00369"></a><span class="lineno">  369</span>&#160;<span class="comment">/*</span></div>
<div class="line"><a name="l00370"></a><span class="lineno">  370</span>&#160;<span class="comment"> * Macros to set/get and increase/decrease variables in a thread-safe way.</span></div>
<div class="line"><a name="l00371"></a><span class="lineno">  371</span>&#160;<span class="comment"> * Use these for accessing variable that are used from more than one thread.</span></div>
<div class="line"><a name="l00372"></a><span class="lineno">  372</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00373"></a><span class="lineno">  373</span>&#160; </div>
<div class="line"><a name="l00374"></a><span class="lineno">  374</span>&#160;<span class="preprocessor">#ifndef SYS_ARCH_INC</span></div>
<div class="line"><a name="l00375"></a><span class="lineno"><a class="line" href="sys_8h.html#acc5f7f8cbd020de628d1e9a0443da4c7">  375</a></span>&#160;<span class="preprocessor">#define SYS_ARCH_INC(var, val) do { \</span></div>
<div class="line"><a name="l00376"></a><span class="lineno">  376</span>&#160;<span class="preprocessor">                                SYS_ARCH_DECL_PROTECT(old_level); \</span></div>
<div class="line"><a name="l00377"></a><span class="lineno">  377</span>&#160;<span class="preprocessor">                                SYS_ARCH_PROTECT(old_level); \</span></div>
<div class="line"><a name="l00378"></a><span class="lineno">  378</span>&#160;<span class="preprocessor">                                var += val; \</span></div>
<div class="line"><a name="l00379"></a><span class="lineno">  379</span>&#160;<span class="preprocessor">                                SYS_ARCH_UNPROTECT(old_level); \</span></div>
<div class="line"><a name="l00380"></a><span class="lineno">  380</span>&#160;<span class="preprocessor">                              } while(0)</span></div>
<div class="line"><a name="l00381"></a><span class="lineno">  381</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* SYS_ARCH_INC */</span><span class="preprocessor"></span></div>
<div class="line"><a name="l00382"></a><span class="lineno">  382</span>&#160; </div>
<div class="line"><a name="l00383"></a><span class="lineno">  383</span>&#160;<span class="preprocessor">#ifndef SYS_ARCH_DEC</span></div>
<div class="line"><a name="l00384"></a><span class="lineno"><a class="line" href="sys_8h.html#aa9a585faa63acdd5d59ac5e7759a07c5">  384</a></span>&#160;<span class="preprocessor">#define SYS_ARCH_DEC(var, val) do { \</span></div>
<div class="line"><a name="l00385"></a><span class="lineno">  385</span>&#160;<span class="preprocessor">                                SYS_ARCH_DECL_PROTECT(old_level); \</span></div>
<div class="line"><a name="l00386"></a><span class="lineno">  386</span>&#160;<span class="preprocessor">                                SYS_ARCH_PROTECT(old_level); \</span></div>
<div class="line"><a name="l00387"></a><span class="lineno">  387</span>&#160;<span class="preprocessor">                                var -= val; \</span></div>
<div class="line"><a name="l00388"></a><span class="lineno">  388</span>&#160;<span class="preprocessor">                                SYS_ARCH_UNPROTECT(old_level); \</span></div>
<div class="line"><a name="l00389"></a><span class="lineno">  389</span>&#160;<span class="preprocessor">                              } while(0)</span></div>
<div class="line"><a name="l00390"></a><span class="lineno">  390</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* SYS_ARCH_DEC */</span><span class="preprocessor"></span></div>
<div class="line"><a name="l00391"></a><span class="lineno">  391</span>&#160; </div>
<div class="line"><a name="l00392"></a><span class="lineno">  392</span>&#160;<span class="preprocessor">#ifndef SYS_ARCH_GET</span></div>
<div class="line"><a name="l00393"></a><span class="lineno"><a class="line" href="sys_8h.html#a0da95147531964d619be7744c7169986">  393</a></span>&#160;<span class="preprocessor">#define SYS_ARCH_GET(var, ret) do { \</span></div>
<div class="line"><a name="l00394"></a><span class="lineno">  394</span>&#160;<span class="preprocessor">                                SYS_ARCH_DECL_PROTECT(old_level); \</span></div>
<div class="line"><a name="l00395"></a><span class="lineno">  395</span>&#160;<span class="preprocessor">                                SYS_ARCH_PROTECT(old_level); \</span></div>
<div class="line"><a name="l00396"></a><span class="lineno">  396</span>&#160;<span class="preprocessor">                                ret = var; \</span></div>
<div class="line"><a name="l00397"></a><span class="lineno">  397</span>&#160;<span class="preprocessor">                                SYS_ARCH_UNPROTECT(old_level); \</span></div>
<div class="line"><a name="l00398"></a><span class="lineno">  398</span>&#160;<span class="preprocessor">                              } while(0)</span></div>
<div class="line"><a name="l00399"></a><span class="lineno">  399</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* SYS_ARCH_GET */</span><span class="preprocessor"></span></div>
<div class="line"><a name="l00400"></a><span class="lineno">  400</span>&#160; </div>
<div class="line"><a name="l00401"></a><span class="lineno">  401</span>&#160;<span class="preprocessor">#ifndef SYS_ARCH_SET</span></div>
<div class="line"><a name="l00402"></a><span class="lineno"><a class="line" href="sys_8h.html#a24ff55288a4d9fa28100c78b2f4612f6">  402</a></span>&#160;<span class="preprocessor">#define SYS_ARCH_SET(var, val) do { \</span></div>
<div class="line"><a name="l00403"></a><span class="lineno">  403</span>&#160;<span class="preprocessor">                                SYS_ARCH_DECL_PROTECT(old_level); \</span></div>
<div class="line"><a name="l00404"></a><span class="lineno">  404</span>&#160;<span class="preprocessor">                                SYS_ARCH_PROTECT(old_level); \</span></div>
<div class="line"><a name="l00405"></a><span class="lineno">  405</span>&#160;<span class="preprocessor">                                var = val; \</span></div>
<div class="line"><a name="l00406"></a><span class="lineno">  406</span>&#160;<span class="preprocessor">                                SYS_ARCH_UNPROTECT(old_level); \</span></div>
<div class="line"><a name="l00407"></a><span class="lineno">  407</span>&#160;<span class="preprocessor">                              } while(0)</span></div>
<div class="line"><a name="l00408"></a><span class="lineno">  408</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* SYS_ARCH_SET */</span><span class="preprocessor"></span></div>
<div class="line"><a name="l00409"></a><span class="lineno">  409</span>&#160; </div>
<div class="line"><a name="l00410"></a><span class="lineno">  410</span>&#160; </div>
<div class="line"><a name="l00411"></a><span class="lineno">  411</span>&#160;<span class="preprocessor">#ifdef __cplusplus</span></div>
<div class="line"><a name="l00412"></a><span class="lineno">  412</span>&#160;}</div>
<div class="line"><a name="l00413"></a><span class="lineno">  413</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00414"></a><span class="lineno">  414</span>&#160; </div>
<div class="line"><a name="l00415"></a><span class="lineno">  415</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* NET_HDR_SYS_H */</span><span class="preprocessor"></span></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<div class="ttc" id="aopt_8h_html"><div class="ttname"><a href="opt_8h.html">opt.h</a></div></div>
<div class="ttc" id="asys_8h_html_af411a8bc6b7ed4b0af9114e10c959448"><div class="ttname"><a href="sys_8h.html#af411a8bc6b7ed4b0af9114e10c959448">sys_init</a></div><div class="ttdeci">void sys_init(void)</div><div class="ttdef"><b>Definition:</b> <a href="sys__arch_8c_source.html#l00032">sys_arch.c:32</a></div></div>
<div class="ttc" id="agroup__sys__sem_html_ga6b618ddf0c8e73302f1dae7821661457"><div class="ttname"><a href="group__sys__sem.html#ga6b618ddf0c8e73302f1dae7821661457">sys_sem_set_invalid</a></div><div class="ttdeci">void sys_sem_set_invalid(struct sys_sem **s)</div><div class="ttdef"><b>Definition:</b> <a href="sys__arch_8c_source.html#l00140">sys_arch.c:140</a></div></div>
<div class="ttc" id="agroup__sys__mbox_html_gad4a51a28337f89d4b4806e6deb99798d"><div class="ttname"><a href="group__sys__mbox.html#gad4a51a28337f89d4b4806e6deb99798d">sys_mbox_free</a></div><div class="ttdeci">void sys_mbox_free(struct sys_mbox **mb)</div><div class="ttdef"><b>Definition:</b> <a href="sys__arch_8c_source.html#l00194">sys_arch.c:194</a></div></div>
<div class="ttc" id="agroup__sys__sem_html_gadb68acad14b34550b9891bc11bbf4e63"><div class="ttname"><a href="group__sys__sem.html#gadb68acad14b34550b9891bc11bbf4e63">sys_sem_new</a></div><div class="ttdeci">err_t sys_sem_new(sys_sem_t **sem, u8_t count)</div><div class="ttdef"><b>Definition:</b> <a href="sys__arch_8c_source.html#l00052">sys_arch.c:52</a></div></div>
<div class="ttc" id="agroup__sys__mbox_html_ga3e0e0f02be2f670ebfb093a21f7dcdb8"><div class="ttname"><a href="group__sys__mbox.html#ga3e0e0f02be2f670ebfb093a21f7dcdb8">sys_arch_mbox_tryfetch</a></div><div class="ttdeci">uint32_t sys_arch_mbox_tryfetch(struct sys_mbox **mb, void **msg)</div><div class="ttdef"><b>Definition:</b> <a href="sys__arch_8c_source.html#l00336">sys_arch.c:336</a></div></div>
<div class="ttc" id="agroup__sys__sem_html_ga4d02e29e5dfa092559efc04dee985822"><div class="ttname"><a href="group__sys__sem.html#ga4d02e29e5dfa092559efc04dee985822">sys_sem_free</a></div><div class="ttdeci">void sys_sem_free(sys_sem_t **sem)</div><div class="ttdef"><b>Definition:</b> <a href="sys__arch_8c_source.html#l00075">sys_arch.c:75</a></div></div>
<div class="ttc" id="agroup__sys__sem_html_gac7ff314270976b80559d043f6098817b"><div class="ttname"><a href="group__sys__sem.html#gac7ff314270976b80559d043f6098817b">sys_sem_valid</a></div><div class="ttdeci">int sys_sem_valid(struct sys_sem **s)</div><div class="ttdef"><b>Definition:</b> <a href="sys__arch_8c_source.html#l00132">sys_arch.c:132</a></div></div>
<div class="ttc" id="agroup__sys__sem_html_ga28aa725e8a36dd0cfde89875af4f3ec9"><div class="ttname"><a href="group__sys__sem.html#ga28aa725e8a36dd0cfde89875af4f3ec9">sys_arch_sem_wait</a></div><div class="ttdeci">uint32_t sys_arch_sem_wait(struct sys_sem **s, uint32_t timeout)</div><div class="ttdef"><b>Definition:</b> <a href="sys__arch_8c_source.html#l00105">sys_arch.c:105</a></div></div>
<div class="ttc" id="astructthread_html"><div class="ttname"><a href="structthread.html">thread</a></div><div class="ttdef"><b>Definition:</b> <a href="thread_8h_source.html#l00040">thread.h:40</a></div></div>
<div class="ttc" id="agroup__compiler__abstraction_html_ga4c14294869aceba3ef9d4c0c302d0f33"><div class="ttname"><a href="group__compiler__abstraction.html#ga4c14294869aceba3ef9d4c0c302d0f33">u32_t</a></div><div class="ttdeci">uint32_t u32_t</div><div class="ttdef"><b>Definition:</b> <a href="arch_8h_source.html#l00126">arch.h:126</a></div></div>
<div class="ttc" id="astructsys__thread_html"><div class="ttname"><a href="structsys__thread.html">sys_thread</a></div><div class="ttdef"><b>Definition:</b> <a href="sys__arch_8h_source.html#l00043">sys_arch.h:43</a></div></div>
<div class="ttc" id="asys_8h_html_ac89f307e8b360eaf821b461a4f26753a"><div class="ttname"><a href="sys_8h.html#ac89f307e8b360eaf821b461a4f26753a">sys_jiffies</a></div><div class="ttdeci">u32_t sys_jiffies(void)</div></div>
<div class="ttc" id="asys__arch_8h_html"><div class="ttname"><a href="sys__arch_8h.html">sys_arch.h</a></div></div>
<div class="ttc" id="agroup__sys__misc_html_ga0d596afdd8dbcfad320172d39b0f607a"><div class="ttname"><a href="group__sys__misc.html#ga0d596afdd8dbcfad320172d39b0f607a">sys_thread_new</a></div><div class="ttdeci">sys_thread_t sys_thread_new(const char *name, lwip_thread_fn thread, void *arg, int stacksize, int prio)</div><div class="ttdef"><b>Definition:</b> <a href="sys__arch_8c_source.html#l00379">sys_arch.c:379</a></div></div>
<div class="ttc" id="agroup__sys__mbox_html_ga8ff11ed9831af7ca486123f74d4064ac"><div class="ttname"><a href="group__sys__mbox.html#ga8ff11ed9831af7ca486123f74d4064ac">sys_mbox_post</a></div><div class="ttdeci">void sys_mbox_post(struct sys_mbox **mb, void *msg)</div><div class="ttdef"><b>Definition:</b> <a href="sys__arch_8c_source.html#l00215">sys_arch.c:215</a></div></div>
<div class="ttc" id="agroup__sys__mutex_html_ga16336ce68b741e98204102ca4bc84dd9"><div class="ttname"><a href="group__sys__mutex.html#ga16336ce68b741e98204102ca4bc84dd9">sys_mutex_free</a></div><div class="ttdeci">void sys_mutex_free(sys_mutex_t *mutex)</div><div class="ttdef"><b>Definition:</b> <a href="sys__arch_8c_source.html#l00149">sys_arch.c:149</a></div></div>
<div class="ttc" id="agroup__sys__mutex_html_ga4d4eb9afe5965fa2661dd54ff55d616a"><div class="ttname"><a href="group__sys__mutex.html#ga4d4eb9afe5965fa2661dd54ff55d616a">sys_mutex_lock</a></div><div class="ttdeci">void sys_mutex_lock(sys_mutex_t *mutex)</div><div class="ttdef"><b>Definition:</b> <a href="sys__arch_8c_source.html#l00153">sys_arch.c:153</a></div></div>
<div class="ttc" id="astructsys__sem_html"><div class="ttname"><a href="structsys__sem.html">sys_sem</a></div><div class="ttdef"><b>Definition:</b> <a href="sem_8h_source.html#l00036">sem.h:36</a></div></div>
<div class="ttc" id="agroup__sys__misc_html_ga6b8786f43e779953e8b74e983c88682e"><div class="ttname"><a href="group__sys__misc.html#ga6b8786f43e779953e8b74e983c88682e">sys_msleep</a></div><div class="ttdeci">void sys_msleep(u32_t ms)</div><div class="ttdef"><b>Definition:</b> <a href="sys_8c_source.html#l00093">sys.c:93</a></div></div>
<div class="ttc" id="asys_8h_html_ae30a77bf6bd69bfcc5f235eaad54f2b9"><div class="ttname"><a href="sys_8h.html#ae30a77bf6bd69bfcc5f235eaad54f2b9">lwip_thread_fn</a></div><div class="ttdeci">void(* lwip_thread_fn)(void *arg)</div><div class="ttdef"><b>Definition:</b> <a href="sys_8h_source.html#l00058">sys.h:58</a></div></div>
<div class="ttc" id="agroup__sys__time_html_ga11316ac1e77418c6fa4ab8869e3fa199"><div class="ttname"><a href="group__sys__time.html#ga11316ac1e77418c6fa4ab8869e3fa199">sys_now</a></div><div class="ttdeci">u32_t sys_now(void)</div><div class="ttdef"><b>Definition:</b> <a href="sys__arch_8c_source.html#l00497">sys_arch.c:497</a></div></div>
<div class="ttc" id="agroup__sys__sem_html_gaff1dd2af219b75ae812e0b1660bd7455"><div class="ttname"><a href="group__sys__sem.html#gaff1dd2af219b75ae812e0b1660bd7455">sys_sem_signal</a></div><div class="ttdeci">void sys_sem_signal(struct sys_sem **s)</div><div class="ttdef"><b>Definition:</b> <a href="sys__arch_8c_source.html#l00089">sys_arch.c:89</a></div></div>
<div class="ttc" id="agroup__compiler__abstraction_html_ga4caecabca98b43919dd11be1c0d4cd8e"><div class="ttname"><a href="group__compiler__abstraction.html#ga4caecabca98b43919dd11be1c0d4cd8e">u8_t</a></div><div class="ttdeci">uint8_t u8_t</div><div class="ttdef"><b>Definition:</b> <a href="arch_8h_source.html#l00122">arch.h:122</a></div></div>
<div class="ttc" id="aerr_8h_html"><div class="ttname"><a href="err_8h.html">err.h</a></div></div>
<div class="ttc" id="aubthread_8c_html_a18b6be9ca0cec4b0643171232d6f10de"><div class="ttname"><a href="ubthread_8c.html#a18b6be9ca0cec4b0643171232d6f10de">mutex</a></div><div class="ttdeci">struct ubthread_mutex_list * mutex</div><div class="ttdef"><b>Definition:</b> <a href="ubthread_8c_source.html#l00043">ubthread.c:43</a></div></div>
<div class="ttc" id="ainclude_2sys_2types_8h_html_a0238af00180b6d9278fa1c6aa790fdf4"><div class="ttname"><a href="include_2sys_2types_8h.html#a0238af00180b6d9278fa1c6aa790fdf4">uint32_t</a></div><div class="ttdeci">__uint32_t uint32_t</div><div class="ttdef"><b>Definition:</b> <a href="include_2sys_2types_8h_source.html#l00046">types.h:46</a></div></div>
<div class="ttc" id="agroup__sys__mbox_html_gadf4b8fccb41fe2d76e88bef546e8e8bb"><div class="ttname"><a href="group__sys__mbox.html#gadf4b8fccb41fe2d76e88bef546e8e8bb">sys_mbox_valid</a></div><div class="ttdeci">int sys_mbox_valid(struct sys_mbox **mb)</div><div class="ttdef"><b>Definition:</b> <a href="sys__arch_8c_source.html#l00367">sys_arch.c:367</a></div></div>
<div class="ttc" id="agroup__sys__mutex_html_ga38e7dae1fd88b338eb1cd97f110f3897"><div class="ttname"><a href="group__sys__mutex.html#ga38e7dae1fd88b338eb1cd97f110f3897">sys_mutex_new</a></div><div class="ttdeci">err_t sys_mutex_new(sys_mutex_t *mutex)</div><div class="ttdef"><b>Definition:</b> <a href="sys__arch_8c_source.html#l00144">sys_arch.c:144</a></div></div>
<div class="ttc" id="agroup__sys__mbox_html_gacc53b5c30f131abc40f0885d39d32f87"><div class="ttname"><a href="group__sys__mbox.html#gacc53b5c30f131abc40f0885d39d32f87">sys_arch_mbox_fetch</a></div><div class="ttdeci">uint32_t sys_arch_mbox_fetch(struct sys_mbox **mb, void **msg, uint32_t timeout)</div><div class="ttdef"><b>Definition:</b> <a href="sys__arch_8c_source.html#l00287">sys_arch.c:287</a></div></div>
<div class="ttc" id="agroup__sys__mbox_html_ga64ca1b1ef4c810f4d67595eca4fdfef0"><div class="ttname"><a href="group__sys__mbox.html#ga64ca1b1ef4c810f4d67595eca4fdfef0">sys_mbox_set_invalid</a></div><div class="ttdeci">void sys_mbox_set_invalid(struct sys_mbox **mb)</div><div class="ttdef"><b>Definition:</b> <a href="sys__arch_8c_source.html#l00375">sys_arch.c:375</a></div></div>
<div class="ttc" id="agroup__sys__mutex_html_ga5568f68898fe9d5735f9ce2f665624fb"><div class="ttname"><a href="group__sys__mutex.html#ga5568f68898fe9d5735f9ce2f665624fb">sys_mutex_unlock</a></div><div class="ttdeci">void sys_mutex_unlock(sys_mutex_t *mutex)</div><div class="ttdef"><b>Definition:</b> <a href="sys__arch_8c_source.html#l00157">sys_arch.c:157</a></div></div>
<div class="ttc" id="agroup__infrastructure__errors_html_gaf02d9da80fd66b4f986d2c53d7231ddb"><div class="ttname"><a href="group__infrastructure__errors.html#gaf02d9da80fd66b4f986d2c53d7231ddb">err_t</a></div><div class="ttdeci">s8_t err_t</div><div class="ttdef"><b>Definition:</b> <a href="err_8h_source.html#l00057">err.h:57</a></div></div>
<div class="ttc" id="agroup__sys__mutex_html_ga3f392725971dc837aa56dd7e45fa7ca8"><div class="ttname"><a href="group__sys__mutex.html#ga3f392725971dc837aa56dd7e45fa7ca8">sys_mutex_set_invalid</a></div><div class="ttdeci">void sys_mutex_set_invalid(sys_mutex_t *mutex)</div></div>
<div class="ttc" id="apci_8c_html_a8f8f80d37794cde9472343e4487ba3eb"><div class="ttname"><a href="pci_8c.html#a8f8f80d37794cde9472343e4487ba3eb">name</a></div><div class="ttdeci">const char * name</div><div class="ttdef"><b>Definition:</b> <a href="pci_8c_source.html#l00037">pci.c:37</a></div></div>
<div class="ttc" id="agroup__sys__mutex_html_gaebe83ba90a6d9c23cdb3eb5d49562c4a"><div class="ttname"><a href="group__sys__mutex.html#gaebe83ba90a6d9c23cdb3eb5d49562c4a">sys_mutex_valid</a></div><div class="ttdeci">int sys_mutex_valid(sys_mutex_t *mutex)</div></div>
<div class="ttc" id="agroup__sys__mbox_html_ga26c015e64c859c9361a6f75c4e6fa829"><div class="ttname"><a href="group__sys__mbox.html#ga26c015e64c859c9361a6f75c4e6fa829">sys_mbox_new</a></div><div class="ttdeci">err_t sys_mbox_new(struct sys_mbox **mb, int size)</div><div class="ttdef"><b>Definition:</b> <a href="sys__arch_8c_source.html#l00161">sys_arch.c:161</a></div></div>
<div class="ttc" id="agroup__sys__mbox_html_gacc06f47f34de04084e1d49788ce871b6"><div class="ttname"><a href="group__sys__mbox.html#gacc06f47f34de04084e1d49788ce871b6">sys_mbox_trypost</a></div><div class="ttdeci">err_t sys_mbox_trypost(struct sys_mbox **mb, void *msg)</div><div class="ttdef"><b>Definition:</b> <a href="sys__arch_8c_source.html#l00251">sys_arch.c:251</a></div></div>
<div class="ttc" id="astructsys__mutex_html"><div class="ttname"><a href="structsys__mutex.html">sys_mutex</a></div><div class="ttdef"><b>Definition:</b> <a href="sys__arch_8h_source.html#l00016">sys_arch.h:16</a></div></div>
<div class="ttc" id="astructsys__mbox_html"><div class="ttname"><a href="structsys__mbox.html">sys_mbox</a></div><div class="ttdef"><b>Definition:</b> <a href="sys__arch_8h_source.html#l00022">sys_arch.h:22</a></div></div>
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="navelem"><a class="el" href="dir_e6bb53534ac0e427887cf7a94c0c004e.html">C:</a></li><li class="navelem"><a class="el" href="dir_d99d5d4662bf24521eef49da6a8cd34d.html">Dev</a></li><li class="navelem"><a class="el" href="dir_474a4b306371cf7e7f6fa12cb0b77df6.html">git</a></li><li class="navelem"><a class="el" href="dir_849109bbd106d461b128d63e5babcedf.html">UbixOS</a></li><li class="navelem"><a class="el" href="dir_6ec99f6d7d5182ba8913209ab70c9f18.html">sys</a></li><li class="navelem"><a class="el" href="dir_d1be8160e739b6eed1f7843efdbae1b3.html">include</a></li><li class="navelem"><a class="el" href="dir_8a452844cab5a537277ef786999bc939.html">net</a></li><li class="navelem"><a class="el" href="sys_8h.html">sys.h</a></li>
    <li class="footer">Generated by
    <a href="http://www.doxygen.org/index.html">
    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li>
  </ul>
</div>
</body>
</html>