<!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/kernel/ubthread.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 Page</span></a></li>
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
<li><a href="classes.html"><span>Data 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> <u>S</u>earch for </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 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> » <a class="el" href="dir_832905b1f7f5feaf61a306b40c0ac817.html">sys</a> » <a class="el" href="dir_7efffd2b1fae7bb6f2aa85845c863494.html">kernel</a></div>
<h1>ubthread.c File Reference</h1>
<p>
<code>#include <<a class="el" href="ubthread_8h-source.html">ubixos/ubthread.h</a>></code><br>
<code>#include <ubixos/vitals.h></code><br>
<code>#include <<a class="el" href="exec_8h-source.html">ubixos/exec.h</a>></code><br>
<code>#include <<a class="el" href="sched_8h-source.html">ubixos/sched.h</a>></code><br>
<code>#include <<a class="el" href="time_8h-source.html">ubixos/time.h</a>></code><br>
<code>#include <<a class="el" href="spinlock_8h-source.html">ubixos/spinlock.h</a>></code><br>
<code>#include <<a class="el" href="kmalloc_8h-source.html">lib/kmalloc.h</a>></code><br>
<code>#include <<a class="el" href="kprintf_8h-source.html">lib/kprintf.h</a>></code><br>
<p>
<a href="ubthread_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>Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="ubthread_8c.html#e914fae69538736dc5e494c15ce93a17">ubthread_cond_destroy</a> (<a class="el" href="structubthread__cond.html">ubthread_cond_t</a> *cond)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="ubthread_8c.html#cbb7170a68758468ab5b02512a320112">ubthread_cond_init</a> (<a class="el" href="structubthread__cond.html">ubthread_cond_t</a> *cond, const <a class="el" href="ubixfsv2_2types_8h.html#5847ea0262a5aa61eee48cbe95544a78">uInt32</a> attr)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="ubthread_8c.html#64fb8f5f2da2564a6cae8c9f2c3bde10">ubthread_cond_signal</a> (<a class="el" href="structubthread__cond.html">ubthread_cond_t</a> *cond)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="ubthread_8c.html#996be9a927447a62f7168a082a046c54">ubthread_cond_timedwait</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>, const struct <a class="el" href="structtimespec.html">timespec</a> *abstime)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="ubthread_8c.html#30eb7c156c2422801ddb86326dbc3d81">ubthread_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>)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="ubthread_8c.html#a0af177ef44888f3c93883294207328e">ubthread_create</a> (<a class="el" href="structtaskStruct.html">kTask_t</a> **<a class="el" href="structthread.html">thread</a>, const <a class="el" href="ubixfsv2_2types_8h.html#5847ea0262a5aa61eee48cbe95544a78">uInt32</a> *attr, void(*tproc)(void), void *arg)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="ubthread_8c.html#278f5d5b1e11b6668b75da6a285442e4">ubthread_mutex_destroy</a> (<a class="el" href="structubthread__mutex.html">ubthread_mutex_t</a> *<a class="el" href="ubthread_8c.html#18b6be9ca0cec4b0643171232d6f10de">mutex</a>)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="ubthread_8c.html#b6bfc2169b55532821582f24b68dc855">ubthread_mutex_init</a> (<a class="el" href="structubthread__mutex.html">ubthread_mutex_t</a> *<a class="el" href="ubthread_8c.html#18b6be9ca0cec4b0643171232d6f10de">mutex</a>, const <a class="el" href="ubixfsv2_2types_8h.html#5847ea0262a5aa61eee48cbe95544a78">uInt32</a> attr)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="ubthread_8c.html#a13bf141cd3e9bf0921fbf61ffc637d8">ubthread_mutex_lock</a> (<a class="el" href="structubthread__mutex.html">ubthread_mutex_t</a> *<a class="el" href="ubthread_8c.html#18b6be9ca0cec4b0643171232d6f10de">mutex</a>)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="ubthread_8c.html#fea3530bab360f59c09a49f490d079dd">ubthread_mutex_unlock</a> (<a class="el" href="structubthread__mutex.html">ubthread_mutex_t</a> *<a class="el" href="ubthread_8c.html#18b6be9ca0cec4b0643171232d6f10de">mutex</a>)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="structtaskStruct.html">kTask_t</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="ubthread_8c.html#72a362bc8127b8d63e1107062638664d">ubthread_self</a> ()</td></tr>
<tr><td colspan="2"><br><h2>Variables</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="structubthread__cond__list.html">ubthread_cond_list</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="ubthread_8c.html#c90cec8b766ba40fe62cf0d6328da970">conds</a> = 0x0</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="structubthread__mutex__list.html">ubthread_mutex_list</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="ubthread_8c.html#18b6be9ca0cec4b0643171232d6f10de">mutex</a> = 0x0</td></tr>
</table>
<hr><h2>Function Documentation</h2>
<a class="anchor" name="e914fae69538736dc5e494c15ce93a17"></a><!-- doxytag: member="ubthread.c::ubthread_cond_destroy" ref="e914fae69538736dc5e494c15ce93a17" args="(ubthread_cond_t *cond)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int ubthread_cond_destroy </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structubthread__cond.html">ubthread_cond_t</a> * </td>
<td class="paramname"> <em>cond</em> </td>
<td> ) </td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
<p>
Definition at line <a class="el" href="ubthread_8c-source.html#l00065">65</a> of file <a class="el" href="ubthread_8c-source.html">ubthread.c</a>.
<p>
References <a class="el" href="kmalloc_8c-source.html#l00350">kfree()</a>.
<p>
Referenced by <a class="el" href="sys__arch_8c-source.html#l00385">sys_sem_free_()</a>.
</div>
</div><p>
<a class="anchor" name="cbb7170a68758468ab5b02512a320112"></a><!-- doxytag: member="ubthread.c::ubthread_cond_init" ref="cbb7170a68758468ab5b02512a320112" args="(ubthread_cond_t *cond, const uInt32 attr)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int ubthread_cond_init </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structubthread__cond.html">ubthread_cond_t</a> * </td>
<td class="paramname"> <em>cond</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="ubixfsv2_2types_8h.html#5847ea0262a5aa61eee48cbe95544a78">uInt32</a> </td>
<td class="paramname"> <em>attr</em></td><td> </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="ubthread_8c-source.html#l00049">49</a> of file <a class="el" href="ubthread_8c-source.html">ubthread.c</a>.
<p>
References <a class="el" href="ubthread_8h-source.html#l00051">ubthread_cond::id</a>, <a class="el" href="kmalloc_8c-source.html#l00248">kmalloc()</a>, <a class="el" href="ubthread_8h-source.html#l00052">ubthread_cond::locked</a>, and <a class="el" href="ubthread_8h-source.html#l00040">UNLOCKED</a>.
<p>
Referenced by <a class="el" href="sys__arch_8c-source.html#l00299">sys_sem_new_()</a>.
</div>
</div><p>
<a class="anchor" name="64fb8f5f2da2564a6cae8c9f2c3bde10"></a><!-- doxytag: member="ubthread.c::ubthread_cond_signal" ref="64fb8f5f2da2564a6cae8c9f2c3bde10" args="(ubthread_cond_t *cond)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int ubthread_cond_signal </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structubthread__cond.html">ubthread_cond_t</a> * </td>
<td class="paramname"> <em>cond</em> </td>
<td> ) </td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
<p>
Definition at line <a class="el" href="ubthread_8c-source.html#l00126">126</a> of file <a class="el" href="ubthread_8c-source.html">ubthread.c</a>.
<p>
References <a class="el" href="ubthread_8h-source.html#l00052">ubthread_cond::locked</a>, and <a class="el" href="ubthread_8h-source.html#l00040">UNLOCKED</a>.
<p>
Referenced by <a class="el" href="sys__arch_8c-source.html#l00370">sys_sem_signal()</a>.
</div>
</div><p>
<a class="anchor" name="996be9a927447a62f7168a082a046c54"></a><!-- doxytag: member="ubthread.c::ubthread_cond_timedwait" ref="996be9a927447a62f7168a082a046c54" args="(ubthread_cond_t *cond, ubthread_mutex_t *mutex, const struct timespec *abstime)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int ubthread_cond_timedwait </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structubthread__cond.html">ubthread_cond_t</a> * </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> * </td>
<td class="paramname"> <em>mutex</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const struct <a class="el" href="structtimespec.html">timespec</a> * </td>
<td class="paramname"> <em>abstime</em></td><td> </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="ubthread_8c-source.html#l00106">106</a> of file <a class="el" href="ubthread_8c-source.html">ubthread.c</a>.
<p>
References <a class="el" href="ubthread_8h-source.html#l00057">ubthread_mutex::locked</a>, <a class="el" href="ubthread_8h-source.html#l00052">ubthread_cond::locked</a>, <a class="el" href="ubthread_8c-source.html#l00043">mutex</a>, <a class="el" href="sched_8c-source.html#l00260">sched_yield()</a>, <a class="el" href="timer_8S-source.html#l00035">systemVitals</a>, and <a class="el" href="ubthread_8h-source.html#l00040">UNLOCKED</a>.
<p>
Referenced by <a class="el" href="sys__arch_8c-source.html#l00311">cond_wait()</a>.
</div>
</div><p>
<a class="anchor" name="30eb7c156c2422801ddb86326dbc3d81"></a><!-- doxytag: member="ubthread.c::ubthread_cond_wait" ref="30eb7c156c2422801ddb86326dbc3d81" args="(ubthread_cond_t *cond, ubthread_mutex_t *mutex)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int ubthread_cond_wait </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structubthread__cond.html">ubthread_cond_t</a> * </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> * </td>
<td class="paramname"> <em>mutex</em></td><td> </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="ubthread_8c-source.html#l00118">118</a> of file <a class="el" href="ubthread_8c-source.html">ubthread.c</a>.
<p>
References <a class="el" href="ubthread_8h-source.html#l00057">ubthread_mutex::locked</a>, <a class="el" href="ubthread_8h-source.html#l00039">LOCKED</a>, <a class="el" href="ubthread_8h-source.html#l00052">ubthread_cond::locked</a>, <a class="el" href="ubthread_8c-source.html#l00043">mutex</a>, <a class="el" href="sched_8c-source.html#l00260">sched_yield()</a>, and <a class="el" href="ubthread_8h-source.html#l00040">UNLOCKED</a>.
<p>
Referenced by <a class="el" href="sys__arch_8c-source.html#l00311">cond_wait()</a>.
</div>
</div><p>
<a class="anchor" name="a0af177ef44888f3c93883294207328e"></a><!-- doxytag: member="ubthread.c::ubthread_create" ref="a0af177ef44888f3c93883294207328e" args="(kTask_t **thread, const uInt32 *attr, void(*tproc)(void), void *arg)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int ubthread_create </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structtaskStruct.html">kTask_t</a> ** </td>
<td class="paramname"> <em>thread</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="ubixfsv2_2types_8h.html#5847ea0262a5aa61eee48cbe95544a78">uInt32</a> * </td>
<td class="paramname"> <em>attr</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">void(*)(void) </td>
<td class="paramname"> <em>tproc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">void * </td>
<td class="paramname"> <em>arg</em></td><td> </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="ubthread_8c-source.html#l00077">77</a> of file <a class="el" href="ubthread_8c-source.html">ubthread.c</a>.
<p>
References <a class="el" href="exec_8c-source.html#l00054">execThread()</a>, <a class="el" href="kmalloc_8c-source.html#l00248">kmalloc()</a>, and <a class="el" href="start_8S-source.html#l00051">x2000</a>.
<p>
Referenced by <a class="el" href="sys__arch_8c-source.html#l00172">sys_thread_new()</a>.
</div>
</div><p>
<a class="anchor" name="278f5d5b1e11b6668b75da6a285442e4"></a><!-- doxytag: member="ubthread.c::ubthread_mutex_destroy" ref="278f5d5b1e11b6668b75da6a285442e4" args="(ubthread_mutex_t *mutex)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int ubthread_mutex_destroy </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structubthread__mutex.html">ubthread_mutex_t</a> * </td>
<td class="paramname"> <em>mutex</em> </td>
<td> ) </td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
<p>
Definition at line <a class="el" href="ubthread_8c-source.html#l00071">71</a> of file <a class="el" href="ubthread_8c-source.html">ubthread.c</a>.
<p>
References <a class="el" href="kmalloc_8c-source.html#l00350">kfree()</a>, and <a class="el" href="ubthread_8c-source.html#l00043">mutex</a>.
<p>
Referenced by <a class="el" href="sys__arch_8c-source.html#l00385">sys_sem_free_()</a>.
</div>
</div><p>
<a class="anchor" name="b6bfc2169b55532821582f24b68dc855"></a><!-- doxytag: member="ubthread.c::ubthread_mutex_init" ref="b6bfc2169b55532821582f24b68dc855" args="(ubthread_mutex_t *mutex, const uInt32 attr)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int ubthread_mutex_init </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structubthread__mutex.html">ubthread_mutex_t</a> * </td>
<td class="paramname"> <em>mutex</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="ubixfsv2_2types_8h.html#5847ea0262a5aa61eee48cbe95544a78">uInt32</a> </td>
<td class="paramname"> <em>attr</em></td><td> </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="ubthread_8c-source.html#l00057">57</a> of file <a class="el" href="ubthread_8c-source.html">ubthread.c</a>.
<p>
References <a class="el" href="ubthread_8h-source.html#l00056">ubthread_mutex::id</a>, <a class="el" href="kmalloc_8c-source.html#l00248">kmalloc()</a>, <a class="el" href="ubthread_8h-source.html#l00057">ubthread_mutex::locked</a>, <a class="el" href="ubthread_8c-source.html#l00043">mutex</a>, and <a class="el" href="ubthread_8h-source.html#l00040">UNLOCKED</a>.
<p>
Referenced by <a class="el" href="sys__arch_8c-source.html#l00299">sys_sem_new_()</a>.
</div>
</div><p>
<a class="anchor" name="a13bf141cd3e9bf0921fbf61ffc637d8"></a><!-- doxytag: member="ubthread.c::ubthread_mutex_lock" ref="a13bf141cd3e9bf0921fbf61ffc637d8" args="(ubthread_mutex_t *mutex)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int ubthread_mutex_lock </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structubthread__mutex.html">ubthread_mutex_t</a> * </td>
<td class="paramname"> <em>mutex</em> </td>
<td> ) </td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
<p>
Definition at line <a class="el" href="ubthread_8c-source.html#l00082">82</a> of file <a class="el" href="ubthread_8c-source.html">ubthread.c</a>.
<p>
References <a class="el" href="sched_8c-source.html#l00052">_current</a>, <a class="el" href="sched_8h-source.html#l00055">taskStruct::id</a>, <a class="el" href="kprintf_8c-source.html#l00038">kprintf()</a>, <a class="el" href="ubthread_8h-source.html#l00039">LOCKED</a>, <a class="el" href="ubthread_8h-source.html#l00057">ubthread_mutex::locked</a>, <a class="el" href="ubthread_8c-source.html#l00043">mutex</a>, and <a class="el" href="ubthread_8h-source.html#l00058">ubthread_mutex::pid</a>.
<p>
Referenced by <a class="el" href="sys__arch_8c-source.html#l00351">sys_arch_sem_wait()</a>, and <a class="el" href="sys__arch_8c-source.html#l00370">sys_sem_signal()</a>.
</div>
</div><p>
<a class="anchor" name="fea3530bab360f59c09a49f490d079dd"></a><!-- doxytag: member="ubthread.c::ubthread_mutex_unlock" ref="fea3530bab360f59c09a49f490d079dd" args="(ubthread_mutex_t *mutex)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int ubthread_mutex_unlock </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structubthread__mutex.html">ubthread_mutex_t</a> * </td>
<td class="paramname"> <em>mutex</em> </td>
<td> ) </td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
<p>
Definition at line <a class="el" href="ubthread_8c-source.html#l00093">93</a> of file <a class="el" href="ubthread_8c-source.html">ubthread.c</a>.
<p>
References <a class="el" href="sched_8c-source.html#l00052">_current</a>, <a class="el" href="sched_8h-source.html#l00055">taskStruct::id</a>, <a class="el" href="ubthread_8h-source.html#l00057">ubthread_mutex::locked</a>, <a class="el" href="ubthread_8c-source.html#l00043">mutex</a>, <a class="el" href="ubthread_8h-source.html#l00058">ubthread_mutex::pid</a>, and <a class="el" href="ubthread_8h-source.html#l00040">UNLOCKED</a>.
<p>
Referenced by <a class="el" href="sys__arch_8c-source.html#l00351">sys_arch_sem_wait()</a>, and <a class="el" href="sys__arch_8c-source.html#l00370">sys_sem_signal()</a>.
</div>
</div><p>
<a class="anchor" name="72a362bc8127b8d63e1107062638664d"></a><!-- doxytag: member="ubthread.c::ubthread_self" ref="72a362bc8127b8d63e1107062638664d" args="()" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="structtaskStruct.html">kTask_t</a>* ubthread_self </td>
<td>(</td>
<td class="paramname"> </td>
<td> ) </td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
<p>
Definition at line <a class="el" href="ubthread_8c-source.html#l00045">45</a> of file <a class="el" href="ubthread_8c-source.html">ubthread.c</a>.
<p>
References <a class="el" href="sched_8c-source.html#l00052">_current</a>.
<p>
Referenced by <a class="el" href="sys__arch_8c-source.html#l00135">current_thread()</a>.
</div>
</div><p>
<hr><h2>Variable Documentation</h2>
<a class="anchor" name="c90cec8b766ba40fe62cf0d6328da970"></a><!-- doxytag: member="ubthread.c::conds" ref="c90cec8b766ba40fe62cf0d6328da970" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">struct <a class="el" href="structubthread__cond__list.html">ubthread_cond_list</a>* <a class="el" href="ubthread_8c.html#c90cec8b766ba40fe62cf0d6328da970">conds</a> = 0x0 </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
<p>
Definition at line <a class="el" href="ubthread_8c-source.html#l00042">42</a> of file <a class="el" href="ubthread_8c-source.html">ubthread.c</a>.
</div>
</div><p>
<a class="anchor" name="18b6be9ca0cec4b0643171232d6f10de"></a><!-- doxytag: member="ubthread.c::mutex" ref="18b6be9ca0cec4b0643171232d6f10de" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">struct <a class="el" href="structubthread__mutex__list.html">ubthread_mutex_list</a>* <a class="el" href="ubthread_8c.html#18b6be9ca0cec4b0643171232d6f10de">mutex</a> = 0x0 </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
<p>
Definition at line <a class="el" href="ubthread_8c-source.html#l00043">43</a> of file <a class="el" href="ubthread_8c-source.html">ubthread.c</a>.
<p>
Referenced by <a class="el" href="sys__arch_8c-source.html#l00311">cond_wait()</a>, <a class="el" href="ubthread_8c-source.html#l00106">ubthread_cond_timedwait()</a>, <a class="el" href="ubthread_8c-source.html#l00118">ubthread_cond_wait()</a>, <a class="el" href="ubthread_8c-source.html#l00071">ubthread_mutex_destroy()</a>, <a class="el" href="ubthread_8c-source.html#l00057">ubthread_mutex_init()</a>, <a class="el" href="ubthread_8c-source.html#l00082">ubthread_mutex_lock()</a>, and <a class="el" href="ubthread_8c-source.html#l00093">ubthread_mutex_unlock()</a>.
</div>
</div><p>
<hr size="1"><address style="align: right;"><small>Generated on Sun Dec 3 02:38:09 2006 for UbixOS V2 by
<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>