Newer
Older
UbixOS / doc / html / sys__arch_8c.html
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>UbixOS V2: src/sys/net/net/sys_arch.c File Reference</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.4.7 -->
<div class="tabs">
  <ul>
    <li><a href="main.html"><span>Main&nbsp;Page</span></a></li>
    <li><a href="classes.html"><span>Data&nbsp;Structures</span></a></li>
    <li id="current"><a href="files.html"><span>Files</span></a></li>
    <li><a href="dirs.html"><span>Directories</span></a></li>
    <li>
      <form action="search.php" method="get">
        <table cellspacing="0" cellpadding="0" border="0">
          <tr>
            <td><label>&nbsp;<u>S</u>earch&nbsp;for&nbsp;</label></td>
            <td><input type="text" name="query" value="" size="20" accesskey="s"/></td>
          </tr>
        </table>
      </form>
    </li>
  </ul></div>
<div class="tabs">
  <ul>
    <li><a href="files.html"><span>File&nbsp;List</span></a></li>
    <li><a href="globals.html"><span>Globals</span></a></li>
  </ul></div>
<div class="nav">
<a class="el" href="dir_897b6a2d7bab147dd1db58381aad3984.html">src</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_832905b1f7f5feaf61a306b40c0ac817.html">sys</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_da977d215fccd664f66e7711fda26f76.html">net</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_b2e9f53f507f0bb44cd3f7446945d199.html">net</a></div>
<h1>sys_arch.c File Reference</h1><code>#include &lt;<a class="el" href="types_8h-source.html">ubixos/types.h</a>&gt;</code><br>
<code>#include &lt;<a class="el" href="sched_8h-source.html">ubixos/sched.h</a>&gt;</code><br>
<code>#include &lt;<a class="el" href="ubthread_8h-source.html">ubixos/ubthread.h</a>&gt;</code><br>
<code>#include &lt;<a class="el" href="kpanic_8h-source.html">ubixos/kpanic.h</a>&gt;</code><br>
<code>#include &lt;<a class="el" href="kprintf_8h-source.html">lib/kprintf.h</a>&gt;</code><br>
<code>#include &lt;<a class="el" href="kmalloc_8h-source.html">lib/kmalloc.h</a>&gt;</code><br>
<code>#include &quot;<a class="el" href="debug_8h-source.html">net/debug.h</a>&quot;</code><br>
<code>#include &quot;<a class="el" href="sys_8h-source.html">net/sys.h</a>&quot;</code><br>
<code>#include &quot;<a class="el" href="opt_8h-source.html">net/opt.h</a>&quot;</code><br>
<code>#include &quot;<a class="el" href="stats_8h-source.html">net/stats.h</a>&quot;</code><br>
<code>#include &lt;<a class="el" href="spinlock_8h-source.html">ubixos/spinlock.h</a>&gt;</code><br>

<p>
<a href="sys__arch_8c-source.html">Go to the source code of this file.</a><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Data Structures</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structsys__mbox.html">sys_mbox</a></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structsys__mbox__msg.html">sys_mbox_msg</a></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structsys__sem.html">sys_sem</a></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structsys__thread.html">sys_thread</a></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structthread__start__param.html">thread_start_param</a></td></tr>

<tr><td colspan="2"><br><h2>Defines</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="sys__arch_8c.html#b6084e542da137ecb93bb42ce1087518">SYS_MBOX_SIZE</a>&nbsp;&nbsp;&nbsp;100</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="sys__arch_8c.html#55b0bf94baa06c302a48157cd42cd676">UMAX</a>(a, b)&nbsp;&nbsp;&nbsp;((a) &gt; (b) ? (a) : (b))</td></tr>

<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">static <a class="el" href="types_8h.html#3b65128d2644e9b80cec9a69bfa7e094">uInt16</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="sys__arch_8c.html#acaa002113dc0d59d767efbb1382e1ca">cond_wait</a> (<a class="el" href="structubthread__cond.html">ubthread_cond_t</a> *cond, <a class="el" href="structubthread__mutex.html">ubthread_mutex_t</a> *<a class="el" href="ubthread_8c.html#18b6be9ca0cec4b0643171232d6f10de">mutex</a>, <a class="el" href="types_8h.html#3b65128d2644e9b80cec9a69bfa7e094">uInt16</a> timeout)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">static struct <a class="el" href="structsys__thread.html">sys_thread</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="sys__arch_8c.html#c216bafdd6453f68ef27dc764b134e94">current_thread</a> (void)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="types_8h.html#3b65128d2644e9b80cec9a69bfa7e094">uInt16</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="sys__arch_8c.html#d3bc5455ca12b164bfc78974ff0c1e3c">sys_arch_mbox_fetch</a> (struct <a class="el" href="structsys__mbox.html">sys_mbox</a> *<a class="el" href="tcpip_8c.html#189da3fa172ad9c1b0491dcb4857fee6">mbox</a>, void **msg, <a class="el" href="types_8h.html#3b65128d2644e9b80cec9a69bfa7e094">uInt16</a> timeout)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="types_8h.html#3b65128d2644e9b80cec9a69bfa7e094">uInt16</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="sys__arch_8c.html#af7b79a80d625789c95cb20b565424fd">sys_arch_sem_wait</a> (struct <a class="el" href="structsys__sem.html">sys_sem</a> *sem, <a class="el" href="types_8h.html#3b65128d2644e9b80cec9a69bfa7e094">uInt16</a> timeout)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="structsys__timeouts.html">sys_timeouts</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="sys__arch_8c.html#2ffdebd63f7a80c0233aa7460a816dff">sys_arch_timeouts</a> (void)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="sys__arch_8c.html#29a81985c051357162ad079023a076cd">sys_init</a> ()</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="sys__arch_8c.html#5f93e13777922e6745f5aeb6bb27ee0b">sys_mbox_free</a> (struct <a class="el" href="structsys__mbox.html">sys_mbox</a> *<a class="el" href="tcpip_8c.html#189da3fa172ad9c1b0491dcb4857fee6">mbox</a>)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="structsys__mbox.html">sys_mbox</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="sys__arch_8c.html#fd77d183bb0693a21119223e72af96c2">sys_mbox_new</a> ()</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="sys__arch_8c.html#1e7a0edf077b67162d80fefffc8805fb">sys_mbox_post</a> (struct <a class="el" href="structsys__mbox.html">sys_mbox</a> *<a class="el" href="tcpip_8c.html#189da3fa172ad9c1b0491dcb4857fee6">mbox</a>, void *msg)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="sys__arch_8c.html#99ef8b5ed640213c1d06d2622889131a">sys_sem_free</a> (struct <a class="el" href="structsys__sem.html">sys_sem</a> *sem)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">static void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="sys__arch_8c.html#2c773782116a4e712bd8d4c591ab50d4">sys_sem_free_</a> (struct <a class="el" href="structsys__sem.html">sys_sem</a> *sem)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="structsys__sem.html">sys_sem</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="sys__arch_8c.html#cf9c4261c404aabc9b7a836f54207a57">sys_sem_new</a> (<a class="el" href="types_8h.html#a4e0f27a9aca905e340c06d2dcae843c">uInt8</a> count)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">static struct <a class="el" href="structsys__sem.html">sys_sem</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="sys__arch_8c.html#7e7a76cc67fb974dbc234d15f9b885fe">sys_sem_new_</a> (<a class="el" href="types_8h.html#a4e0f27a9aca905e340c06d2dcae843c">uInt8</a> count)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="sys__arch_8c.html#5dba9c7e95633e472717c75a21d96283">sys_sem_signal</a> (struct <a class="el" href="structsys__sem.html">sys_sem</a> *sem)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="sys__arch_8c.html#eb9b7d7cea295be85b0b0ddb7c9fe566">sys_thread_new</a> (void(*function)(void), void *arg)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">unsigned long&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="sys__arch_8c.html#a40706a5e306545035127c0cf198cf49">sys_unix_now</a> ()</td></tr>

<tr><td colspan="2"><br><h2>Variables</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">static <a class="el" href="spinlock_8h.html#a240e9404b4ede1e0d714610080d1176">spinLock_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="sys__arch_8c.html#ca0303cc326b3efc7d32b4a794ddeb61">netThreadSpinlock</a> = SPIN_LOCK_INITIALIZER</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">static struct <a class="el" href="structtimeval.html">timeval</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="sys__arch_8c.html#726d4f4e11d7b38233574938939e0db9">starttime</a></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">static struct <a class="el" href="structsys__thread.html">sys_thread</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="sys__arch_8c.html#15905349139e42ffd3f853e8daae250f">threads</a> = 0x0</td></tr>

</table>
<hr><h2>Define Documentation</h2>
<a class="anchor" name="b6084e542da137ecb93bb42ce1087518"></a><!-- doxytag: member="sys_arch.c::SYS_MBOX_SIZE" ref="b6084e542da137ecb93bb42ce1087518" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define SYS_MBOX_SIZE&nbsp;&nbsp;&nbsp;100          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

<p>
Definition at line <a class="el" href="sys__arch_8c-source.html#l00106">106</a> of file <a class="el" href="sys__arch_8c-source.html">sys_arch.c</a>.
<p>
Referenced by <a class="el" href="sys__arch_8c-source.html#l00254">sys_arch_mbox_fetch()</a>, and <a class="el" href="sys__arch_8c-source.html#l00227">sys_mbox_post()</a>.
</div>
</div><p>
<a class="anchor" name="55b0bf94baa06c302a48157cd42cd676"></a><!-- doxytag: member="sys_arch.c::UMAX" ref="55b0bf94baa06c302a48157cd42cd676" args="(a, b)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define UMAX          </td>
          <td>(</td>
          <td class="paramtype">a,         <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">b&nbsp;</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%">&nbsp;&nbsp;&nbsp;((a) &gt; (b) ? (a) : (b))</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

<p>
Definition at line <a class="el" href="sys__arch_8c-source.html#l00096">96</a> of file <a class="el" href="sys__arch_8c-source.html">sys_arch.c</a>.
</div>
</div><p>
<hr><h2>Function Documentation</h2>
<a class="anchor" name="acaa002113dc0d59d767efbb1382e1ca"></a><!-- doxytag: member="sys_arch.c::cond_wait" ref="acaa002113dc0d59d767efbb1382e1ca" args="(ubthread_cond_t *cond, ubthread_mutex_t *mutex, uInt16 timeout)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static <a class="el" href="types_8h.html#3b65128d2644e9b80cec9a69bfa7e094">uInt16</a> cond_wait           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structubthread__cond.html">ubthread_cond_t</a> *&nbsp;</td>
          <td class="paramname"> <em>cond</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structubthread__mutex.html">ubthread_mutex_t</a> *&nbsp;</td>
          <td class="paramname"> <em>mutex</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="types_8h.html#3b65128d2644e9b80cec9a69bfa7e094">uInt16</a>&nbsp;</td>
          <td class="paramname"> <em>timeout</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"><code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

<p>
Definition at line <a class="el" href="sys__arch_8c-source.html#l00311">311</a> of file <a class="el" href="sys__arch_8c-source.html">sys_arch.c</a>.
<p>
References <a class="el" href="ubthread_8h-source.html#l00037">ETIMEDOUT</a>, <a class="el" href="time_8c-source.html#l00110">gettimeofday()</a>, <a class="el" href="ubthread_8c-source.html#l00042">mutex</a>, <a class="el" href="time_8h-source.html#l00052">timespec::tv_nsec</a>, <a class="el" href="time_8h-source.html#l00051">timespec::tv_sec</a>, <a class="el" href="time_8h-source.html#l00073">timeval::tv_sec</a>, <a class="el" href="time_8h-source.html#l00074">timeval::tv_usec</a>, <a class="el" href="ubthread_8c-source.html#l00105">ubthread_cond_timedwait()</a>, and <a class="el" href="ubthread_8c-source.html#l00117">ubthread_cond_wait()</a>.
<p>
Referenced by <a class="el" href="sys__arch_8c-source.html#l00351">sys_arch_sem_wait()</a>.
</div>
</div><p>
<a class="anchor" name="c216bafdd6453f68ef27dc764b134e94"></a><!-- doxytag: member="sys_arch.c::current_thread" ref="c216bafdd6453f68ef27dc764b134e94" args="(void)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static struct <a class="el" href="structsys__thread.html">sys_thread</a>* current_thread           </td>
          <td>(</td>
          <td class="paramtype">void&nbsp;</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"><code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

<p>
Definition at line <a class="el" href="sys__arch_8c-source.html#l00135">135</a> of file <a class="el" href="sys__arch_8c-source.html">sys_arch.c</a>.
<p>
References <a class="el" href="sys__arch_8c-source.html#l00099">netThreadSpinlock</a>, <a class="el" href="sys__arch_8c-source.html#l00122">sys_thread::next</a>, <a class="el" href="def_8h-source.html#l00041">NULL</a>, <a class="el" href="spinlock_8c-source.html#l00056">spinLock()</a>, <a class="el" href="spinlock_8c-source.html#l00037">spinUnlock()</a>, <a class="el" href="sys__arch_8c-source.html#l00098">threads</a>, <a class="el" href="sys__arch_8c-source.html#l00124">sys_thread::ubthread</a>, and <a class="el" href="ubthread_8c-source.html#l00044">ubthread_self()</a>.
<p>
Referenced by <a class="el" href="sys__arch_8c-source.html#l00409">sys_arch_timeouts()</a>.
</div>
</div><p>
<a class="anchor" name="d3bc5455ca12b164bfc78974ff0c1e3c"></a><!-- doxytag: member="sys_arch.c::sys_arch_mbox_fetch" ref="d3bc5455ca12b164bfc78974ff0c1e3c" args="(struct sys_mbox *mbox, void **msg, uInt16 timeout)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="types_8h.html#3b65128d2644e9b80cec9a69bfa7e094">uInt16</a> sys_arch_mbox_fetch           </td>
          <td>(</td>
          <td class="paramtype">struct <a class="el" href="structsys__mbox.html">sys_mbox</a> *&nbsp;</td>
          <td class="paramname"> <em>mbox</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void **&nbsp;</td>
          <td class="paramname"> <em>msg</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="types_8h.html#3b65128d2644e9b80cec9a69bfa7e094">uInt16</a>&nbsp;</td>
          <td class="paramname"> <em>timeout</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

<p>
Definition at line <a class="el" href="sys__arch_8c-source.html#l00254">254</a> of file <a class="el" href="sys__arch_8c-source.html">sys_arch.c</a>.
<p>
References <a class="el" href="sys__arch_8c-source.html#l00109">sys_mbox::first</a>, <a class="el" href="sys__arch_8c-source.html#l00109">sys_mbox::last</a>, <a class="el" href="sys__arch_8c-source.html#l00111">sys_mbox::mail</a>, <a class="el" href="tcpip_8c-source.html#l00056">mbox</a>, <a class="el" href="sys__arch_8c-source.html#l00110">sys_mbox::msgs</a>, <a class="el" href="sys__arch_8c-source.html#l00112">sys_mbox::mutex</a>, <a class="el" href="def_8h-source.html#l00041">NULL</a>, <a class="el" href="sys_8h.html#bf9681f6dcec783b38693e9d0b7af937">sys_arch_sem_wait()</a>, <a class="el" href="sys__arch_8c-source.html#l00106">SYS_MBOX_SIZE</a>, and <a class="el" href="sys_8h.html#dcdd78b22487e983e7636c636292fbfa">sys_sem_signal()</a>.
</div>
</div><p>
<a class="anchor" name="af7b79a80d625789c95cb20b565424fd"></a><!-- doxytag: member="sys_arch.c::sys_arch_sem_wait" ref="af7b79a80d625789c95cb20b565424fd" args="(struct sys_sem *sem, uInt16 timeout)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="types_8h.html#3b65128d2644e9b80cec9a69bfa7e094">uInt16</a> sys_arch_sem_wait           </td>
          <td>(</td>
          <td class="paramtype">struct <a class="el" href="structsys__sem.html">sys_sem</a> *&nbsp;</td>
          <td class="paramname"> <em>sem</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="types_8h.html#3b65128d2644e9b80cec9a69bfa7e094">uInt16</a>&nbsp;</td>
          <td class="paramname"> <em>timeout</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

<p>
Definition at line <a class="el" href="sys__arch_8c-source.html#l00351">351</a> of file <a class="el" href="sys__arch_8c-source.html">sys_arch.c</a>.
<p>
References <a class="el" href="sys__arch_8c-source.html#l00116">sys_sem::c</a>, <a class="el" href="sys__arch_8c-source.html#l00117">sys_sem::cond</a>, <a class="el" href="sys__arch_8c-source.html#l00311">cond_wait()</a>, <a class="el" href="sys__arch_8c-source.html#l00118">sys_sem::mutex</a>, <a class="el" href="ubthread_8c-source.html#l00081">ubthread_mutex_lock()</a>, and <a class="el" href="ubthread_8c-source.html#l00092">ubthread_mutex_unlock()</a>.
</div>
</div><p>
<a class="anchor" name="2ffdebd63f7a80c0233aa7460a816dff"></a><!-- doxytag: member="sys_arch.c::sys_arch_timeouts" ref="2ffdebd63f7a80c0233aa7460a816dff" args="(void)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">struct <a class="el" href="structsys__timeouts.html">sys_timeouts</a>* sys_arch_timeouts           </td>
          <td>(</td>
          <td class="paramtype">void&nbsp;</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

<p>
Definition at line <a class="el" href="sys__arch_8c-source.html#l00409">409</a> of file <a class="el" href="sys__arch_8c-source.html">sys_arch.c</a>.
<p>
References <a class="el" href="sys__arch_8c-source.html#l00135">current_thread()</a>, and <a class="el" href="sys__arch_8c-source.html#l00123">sys_thread::timeouts</a>.
</div>
</div><p>
<a class="anchor" name="29a81985c051357162ad079023a076cd"></a><!-- doxytag: member="sys_arch.c::sys_init" ref="29a81985c051357162ad079023a076cd" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void sys_init           </td>
          <td>(</td>
          <td class="paramtype">void&nbsp;</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

<p>
Definition at line <a class="el" href="sys__arch_8c-source.html#l00404">404</a> of file <a class="el" href="sys__arch_8c-source.html">sys_arch.c</a>.
<p>
References <a class="el" href="time_8c-source.html#l00110">gettimeofday()</a>, and <a class="el" href="sys__arch_8c-source.html#l00128">starttime</a>.
<p>
Referenced by <a class="el" href="init_8c-source.html#l00050">net_init()</a>.
</div>
</div><p>
<a class="anchor" name="5f93e13777922e6745f5aeb6bb27ee0b"></a><!-- doxytag: member="sys_arch.c::sys_mbox_free" ref="5f93e13777922e6745f5aeb6bb27ee0b" args="(struct sys_mbox *mbox)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void sys_mbox_free           </td>
          <td>(</td>
          <td class="paramtype">struct <a class="el" href="structsys__mbox.html">sys_mbox</a> *&nbsp;</td>
          <td class="paramname"> <em>mbox</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

<p>
Definition at line <a class="el" href="sys__arch_8c-source.html#l00215">215</a> of file <a class="el" href="sys__arch_8c-source.html">sys_arch.c</a>.
<p>
References <a class="el" href="kmalloc_8c-source.html#l00351">kfree()</a>, <a class="el" href="sys__arch_8c-source.html#l00111">sys_mbox::mail</a>, <a class="el" href="tcpip_8c-source.html#l00056">mbox</a>, <a class="el" href="sys__arch_8c-source.html#l00112">sys_mbox::mutex</a>, <a class="el" href="def_8h-source.html#l00041">NULL</a>, <a class="el" href="sys__arch_8h-source.html#l00038">SYS_MBOX_NULL</a>, <a class="el" href="sys__arch_8c-source.html#l00385">sys_sem_free_()</a>, and <a class="el" href="sys_8h.html#6c4530613bd616e719a295779b87ae5c">sys_sem_wait()</a>.
</div>
</div><p>
<a class="anchor" name="fd77d183bb0693a21119223e72af96c2"></a><!-- doxytag: member="sys_arch.c::sys_mbox_new" ref="fd77d183bb0693a21119223e72af96c2" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">struct <a class="el" href="structsys__mbox.html">sys_mbox</a>* sys_mbox_new           </td>
          <td>(</td>
          <td class="paramtype">void&nbsp;</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

<p>
Definition at line <a class="el" href="sys__arch_8c-source.html#l00204">204</a> of file <a class="el" href="sys__arch_8c-source.html">sys_arch.c</a>.
<p>
References <a class="el" href="sys__arch_8c-source.html#l00109">sys_mbox::first</a>, <a class="el" href="kmalloc_8c-source.html#l00247">kmalloc()</a>, <a class="el" href="sys__arch_8c-source.html#l00109">sys_mbox::last</a>, <a class="el" href="sys__arch_8c-source.html#l00111">sys_mbox::mail</a>, <a class="el" href="tcpip_8c-source.html#l00056">mbox</a>, <a class="el" href="sys__arch_8c-source.html#l00112">sys_mbox::mutex</a>, and <a class="el" href="sys__arch_8c-source.html#l00299">sys_sem_new_()</a>.
<p>
Referenced by <a class="el" href="api__msg_8c-source.html#l00160">accept_function()</a>, <a class="el" href="api__msg_8c-source.html#l00368">do_listen()</a>, <a class="el" href="api__lib_8c-source.html#l00325">netconn_bind()</a>, <a class="el" href="api__lib_8c-source.html#l00355">netconn_connect()</a>, <a class="el" href="api__lib_8c-source.html#l00389">netconn_listen()</a>, <a class="el" href="api__lib_8c-source.html#l00204">netconn_new()</a>, and <a class="el" href="tcpip_8c-source.html#l00135">tcpip_init()</a>.
</div>
</div><p>
<a class="anchor" name="1e7a0edf077b67162d80fefffc8805fb"></a><!-- doxytag: member="sys_arch.c::sys_mbox_post" ref="1e7a0edf077b67162d80fefffc8805fb" args="(struct sys_mbox *mbox, void *msg)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void sys_mbox_post           </td>
          <td>(</td>
          <td class="paramtype">struct <a class="el" href="structsys__mbox.html">sys_mbox</a> *&nbsp;</td>
          <td class="paramname"> <em>mbox</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&nbsp;</td>
          <td class="paramname"> <em>msg</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

<p>
Definition at line <a class="el" href="sys__arch_8c-source.html#l00227">227</a> of file <a class="el" href="sys__arch_8c-source.html">sys_arch.c</a>.
<p>
References <a class="el" href="sys__arch_8c-source.html#l00109">sys_mbox::first</a>, <a class="el" href="sys__arch_8c-source.html#l00109">sys_mbox::last</a>, <a class="el" href="sys__arch_8c-source.html#l00111">sys_mbox::mail</a>, <a class="el" href="tcpip_8c-source.html#l00056">mbox</a>, <a class="el" href="sys__arch_8c-source.html#l00110">sys_mbox::msgs</a>, <a class="el" href="sys__arch_8c-source.html#l00112">sys_mbox::mutex</a>, <a class="el" href="sys__arch_8c-source.html#l00106">SYS_MBOX_SIZE</a>, <a class="el" href="sys_8h.html#dcdd78b22487e983e7636c636292fbfa">sys_sem_signal()</a>, and <a class="el" href="sys_8h.html#6c4530613bd616e719a295779b87ae5c">sys_sem_wait()</a>.
</div>
</div><p>
<a class="anchor" name="99ef8b5ed640213c1d06d2622889131a"></a><!-- doxytag: member="sys_arch.c::sys_sem_free" ref="99ef8b5ed640213c1d06d2622889131a" args="(struct sys_sem *sem)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void sys_sem_free           </td>
          <td>(</td>
          <td class="paramtype">struct <a class="el" href="structsys__sem.html">sys_sem</a> *&nbsp;</td>
          <td class="paramname"> <em>sem</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

<p>
Definition at line <a class="el" href="sys__arch_8c-source.html#l00379">379</a> of file <a class="el" href="sys__arch_8c-source.html">sys_arch.c</a>.
<p>
References <a class="el" href="sys__arch_8c-source.html#l00385">sys_sem_free_()</a>, and <a class="el" href="sys__arch_8h-source.html#l00039">SYS_SEM_NULL</a>.
</div>
</div><p>
<a class="anchor" name="2c773782116a4e712bd8d4c591ab50d4"></a><!-- doxytag: member="sys_arch.c::sys_sem_free_" ref="2c773782116a4e712bd8d4c591ab50d4" args="(struct sys_sem *sem)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static void sys_sem_free_           </td>
          <td>(</td>
          <td class="paramtype">struct <a class="el" href="structsys__sem.html">sys_sem</a> *&nbsp;</td>
          <td class="paramname"> <em>sem</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"><code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

<p>
Definition at line <a class="el" href="sys__arch_8c-source.html#l00385">385</a> of file <a class="el" href="sys__arch_8c-source.html">sys_arch.c</a>.
<p>
References <a class="el" href="sys__arch_8c-source.html#l00117">sys_sem::cond</a>, <a class="el" href="kmalloc_8c-source.html#l00351">kfree()</a>, <a class="el" href="sys__arch_8c-source.html#l00118">sys_sem::mutex</a>, <a class="el" href="ubthread_8c-source.html#l00064">ubthread_cond_destroy()</a>, and <a class="el" href="ubthread_8c-source.html#l00070">ubthread_mutex_destroy()</a>.
<p>
Referenced by <a class="el" href="sys__arch_8c-source.html#l00215">sys_mbox_free()</a>, and <a class="el" href="sys__arch_8c-source.html#l00379">sys_sem_free()</a>.
</div>
</div><p>
<a class="anchor" name="cf9c4261c404aabc9b7a836f54207a57"></a><!-- doxytag: member="sys_arch.c::sys_sem_new" ref="cf9c4261c404aabc9b7a836f54207a57" args="(uInt8 count)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">struct <a class="el" href="structsys__sem.html">sys_sem</a>* sys_sem_new           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="types_8h.html#a4e0f27a9aca905e340c06d2dcae843c">uInt8</a>&nbsp;</td>
          <td class="paramname"> <em>count</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

<p>
Definition at line <a class="el" href="sys__arch_8c-source.html#l00295">295</a> of file <a class="el" href="sys__arch_8c-source.html">sys_arch.c</a>.
<p>
References <a class="el" href="sys__arch_8c-source.html#l00299">sys_sem_new_()</a>.
<p>
Referenced by <a class="el" href="api__msg_8c-source.html#l00160">accept_function()</a>, <a class="el" href="api__lib_8c-source.html#l00537">netconn_write()</a>, and <a class="el" href="init_8c-source.html#l00066">netMainThread()</a>.
</div>
</div><p>
<a class="anchor" name="7e7a76cc67fb974dbc234d15f9b885fe"></a><!-- doxytag: member="sys_arch.c::sys_sem_new_" ref="7e7a76cc67fb974dbc234d15f9b885fe" args="(uInt8 count)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static struct <a class="el" href="structsys__sem.html">sys_sem</a> * sys_sem_new_           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="types_8h.html#a4e0f27a9aca905e340c06d2dcae843c">uInt8</a>&nbsp;</td>
          <td class="paramname"> <em>count</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"><code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

<p>
Definition at line <a class="el" href="sys__arch_8c-source.html#l00299">299</a> of file <a class="el" href="sys__arch_8c-source.html">sys_arch.c</a>.
<p>
References <a class="el" href="sys__arch_8c-source.html#l00116">sys_sem::c</a>, <a class="el" href="sys__arch_8c-source.html#l00117">sys_sem::cond</a>, <a class="el" href="kmalloc_8c-source.html#l00247">kmalloc()</a>, <a class="el" href="sys__arch_8c-source.html#l00118">sys_sem::mutex</a>, <a class="el" href="def_8h-source.html#l00041">NULL</a>, <a class="el" href="ubthread_8c-source.html#l00048">ubthread_cond_init()</a>, and <a class="el" href="ubthread_8c-source.html#l00056">ubthread_mutex_init()</a>.
<p>
Referenced by <a class="el" href="sys__arch_8c-source.html#l00204">sys_mbox_new()</a>, and <a class="el" href="sys__arch_8c-source.html#l00295">sys_sem_new()</a>.
</div>
</div><p>
<a class="anchor" name="5dba9c7e95633e472717c75a21d96283"></a><!-- doxytag: member="sys_arch.c::sys_sem_signal" ref="5dba9c7e95633e472717c75a21d96283" args="(struct sys_sem *sem)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void sys_sem_signal           </td>
          <td>(</td>
          <td class="paramtype">struct <a class="el" href="structsys__sem.html">sys_sem</a> *&nbsp;</td>
          <td class="paramname"> <em>sem</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

<p>
Definition at line <a class="el" href="sys__arch_8c-source.html#l00370">370</a> of file <a class="el" href="sys__arch_8c-source.html">sys_arch.c</a>.
<p>
References <a class="el" href="sys__arch_8c-source.html#l00116">sys_sem::c</a>, <a class="el" href="sys__arch_8c-source.html#l00117">sys_sem::cond</a>, <a class="el" href="sys__arch_8c-source.html#l00118">sys_sem::mutex</a>, <a class="el" href="ubthread_8c-source.html#l00125">ubthread_cond_signal()</a>, <a class="el" href="ubthread_8c-source.html#l00081">ubthread_mutex_lock()</a>, and <a class="el" href="ubthread_8c-source.html#l00092">ubthread_mutex_unlock()</a>.
</div>
</div><p>
<a class="anchor" name="eb9b7d7cea295be85b0b0ddb7c9fe566"></a><!-- doxytag: member="sys_arch.c::sys_thread_new" ref="eb9b7d7cea295be85b0b0ddb7c9fe566" args="(void(*function)(void), void *arg)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void sys_thread_new           </td>
          <td>(</td>
          <td class="paramtype">void(*)(void)&nbsp;</td>
          <td class="paramname"> <em>function</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&nbsp;</td>
          <td class="paramname"> <em>arg</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

<p>
Definition at line <a class="el" href="sys__arch_8c-source.html#l00172">172</a> of file <a class="el" href="sys__arch_8c-source.html">sys_arch.c</a>.
<p>
References <a class="el" href="kmalloc_8c-source.html#l00247">kmalloc()</a>, <a class="el" href="kpanic_8c-source.html#l00044">kpanic()</a>, <a class="el" href="kprintf_8c-source.html#l00038">kprintf()</a>, <a class="el" href="sys__arch_8c-source.html#l00099">netThreadSpinlock</a>, <a class="el" href="sys_8h-source.html#l00051">sys_timeouts::next</a>, <a class="el" href="sys__arch_8c-source.html#l00122">sys_thread::next</a>, <a class="el" href="def_8h-source.html#l00041">NULL</a>, <a class="el" href="spinlock_8c-source.html#l00056">spinLock()</a>, <a class="el" href="spinlock_8c-source.html#l00037">spinUnlock()</a>, <a class="el" href="sys__arch_8c-source.html#l00098">threads</a>, <a class="el" href="sys__arch_8c-source.html#l00123">sys_thread::timeouts</a>, <a class="el" href="sys__arch_8c-source.html#l00124">sys_thread::ubthread</a>, and <a class="el" href="ubthread_8c-source.html#l00076">ubthread_create()</a>.
<p>
Referenced by <a class="el" href="bot_8c-source.html#l00083">bot_init()</a>, <a class="el" href="ethernetif_8c-source.html#l00081">low_level_init()</a>, <a class="el" href="init_8c-source.html#l00050">net_init()</a>, <a class="el" href="shell_8c-source.html#l00114">shell_init()</a>, <a class="el" href="tcpip_8c-source.html#l00135">tcpip_init()</a>, and <a class="el" href="udpecho_8c-source.html#l00078">udpecho_init()</a>.
</div>
</div><p>
<a class="anchor" name="a40706a5e306545035127c0cf198cf49"></a><!-- doxytag: member="sys_arch.c::sys_unix_now" ref="a40706a5e306545035127c0cf198cf49" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">unsigned long sys_unix_now           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

<p>
Definition at line <a class="el" href="sys__arch_8c-source.html#l00391">391</a> of file <a class="el" href="sys__arch_8c-source.html">sys_arch.c</a>.
<p>
References <a class="el" href="time_8c-source.html#l00110">gettimeofday()</a>, <a class="el" href="sys__arch_8c-source.html#l00128">starttime</a>, <a class="el" href="time_8h-source.html#l00073">timeval::tv_sec</a>, and <a class="el" href="time_8h-source.html#l00074">timeval::tv_usec</a>.
</div>
</div><p>
<hr><h2>Variable Documentation</h2>
<a class="anchor" name="ca0303cc326b3efc7d32b4a794ddeb61"></a><!-- doxytag: member="sys_arch.c::netThreadSpinlock" ref="ca0303cc326b3efc7d32b4a794ddeb61" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="spinlock_8h.html#a240e9404b4ede1e0d714610080d1176">spinLock_t</a> <a class="el" href="sys__arch_8c.html#ca0303cc326b3efc7d32b4a794ddeb61">netThreadSpinlock</a> = SPIN_LOCK_INITIALIZER<code> [static]</code>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

<p>
Definition at line <a class="el" href="sys__arch_8c-source.html#l00099">99</a> of file <a class="el" href="sys__arch_8c-source.html">sys_arch.c</a>.
<p>
Referenced by <a class="el" href="sys__arch_8c-source.html#l00135">current_thread()</a>, and <a class="el" href="sys__arch_8c-source.html#l00172">sys_thread_new()</a>.
</div>
</div><p>
<a class="anchor" name="726d4f4e11d7b38233574938939e0db9"></a><!-- doxytag: member="sys_arch.c::starttime" ref="726d4f4e11d7b38233574938939e0db9" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">struct <a class="el" href="structtimeval.html">timeval</a> <a class="el" href="sys__arch_8c.html#726d4f4e11d7b38233574938939e0db9">starttime</a><code> [static]</code>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

<p>
Definition at line <a class="el" href="sys__arch_8c-source.html#l00128">128</a> of file <a class="el" href="sys__arch_8c-source.html">sys_arch.c</a>.
<p>
Referenced by <a class="el" href="sys__arch_8c-source.html#l00404">sys_init()</a>, and <a class="el" href="sys__arch_8c-source.html#l00391">sys_unix_now()</a>.
</div>
</div><p>
<a class="anchor" name="15905349139e42ffd3f853e8daae250f"></a><!-- doxytag: member="sys_arch.c::threads" ref="15905349139e42ffd3f853e8daae250f" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">struct <a class="el" href="structsys__thread.html">sys_thread</a>* <a class="el" href="sys__arch_8c.html#15905349139e42ffd3f853e8daae250f">threads</a> = 0x0<code> [static]</code>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

<p>
Definition at line <a class="el" href="sys__arch_8c-source.html#l00098">98</a> of file <a class="el" href="sys__arch_8c-source.html">sys_arch.c</a>.
<p>
Referenced by <a class="el" href="sys__arch_8c-source.html#l00135">current_thread()</a>, and <a class="el" href="sys__arch_8c-source.html#l00172">sys_thread_new()</a>.
</div>
</div><p>
<hr size="1"><address style="align: right;"><small>Generated on Tue Dec 12 08:52:15 2006 for UbixOS V2 by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.7 </small></address>
</body>
</html>