<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1"> <title>Ubixos: ubthread.h File Reference</title> <link href="doxygen.css" rel="stylesheet" type="text/css"> </head><body> <!-- Generated by Doxygen 1.3.3 --> <h1>ubthread.h File Reference</h1><code>#include <<a class="el" href="types_8h-source.html">ubixos/types.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> <p> <a href="ubthread_8h-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 </td><td class="memItemRight" valign=bottom><a class="el" href="structubthread.html">ubthread</a></td></tr> <tr><td class="memItemLeft" nowrap align=right valign=top>struct </td><td class="memItemRight" valign=bottom><a class="el" href="structubthread__cond.html">ubthread_cond</a></td></tr> <tr><td class="memItemLeft" nowrap align=right valign=top>struct </td><td class="memItemRight" valign=bottom><a class="el" href="structubthread__cond__list.html">ubthread_cond_list</a></td></tr> <tr><td class="memItemLeft" nowrap align=right valign=top>struct </td><td class="memItemRight" valign=bottom><a class="el" href="structubthread__list.html">ubthread_list</a></td></tr> <tr><td class="memItemLeft" nowrap align=right valign=top>struct </td><td class="memItemRight" valign=bottom><a class="el" href="structubthread__mutex.html">ubthread_mutex</a></td></tr> <tr><td class="memItemLeft" nowrap align=right valign=top>struct </td><td class="memItemRight" valign=bottom><a class="el" href="structubthread__mutex__list.html">ubthread_mutex_list</a></td></tr> <tr><td colspan=2><br><h2>Defines</h2></td></tr> <tr><td class="memItemLeft" nowrap align=right valign=top>#define </td><td class="memItemRight" valign=bottom><a class="el" href="ubthread_8h.html#a0">ETIMEDOUT</a> -1</td></tr> <tr><td class="memItemLeft" nowrap align=right valign=top>#define </td><td class="memItemRight" valign=bottom><a class="el" href="ubthread_8h.html#a1">LOCKED</a> 1</td></tr> <tr><td class="memItemLeft" nowrap align=right valign=top>#define </td><td class="memItemRight" valign=bottom><a class="el" href="ubthread_8h.html#a2">UNLOCKED</a> 0</td></tr> <tr><td colspan=2><br><h2>Typedefs</h2></td></tr> <tr><td class="memItemLeft" nowrap align=right valign=top>typedef <a class="el" href="structubthread.html">ubthread</a> * </td><td class="memItemRight" valign=bottom><a class="el" href="ubthread_8h.html#a3">ubthread_t</a></td></tr> <tr><td class="memItemLeft" nowrap align=right valign=top>typedef <a class="el" href="structubthread__cond.html">ubthread_cond</a> * </td><td class="memItemRight" valign=bottom><a class="el" href="ubthread_8h.html#a4">ubthread_cond_t</a></td></tr> <tr><td class="memItemLeft" nowrap align=right valign=top>typedef <a class="el" href="structubthread__mutex.html">ubthread_mutex</a> * </td><td class="memItemRight" valign=bottom><a class="el" href="ubthread_8h.html#a5">ubthread_mutex_t</a></td></tr> <tr><td colspan=2><br><h2>Functions</h2></td></tr> <tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="structtask_struct.html">kTask_t</a> * </td><td class="memItemRight" valign=bottom><a class="el" href="ubthread_8h.html#a6">ubthread_self</a> ()</td></tr> <tr><td class="memItemLeft" nowrap align=right valign=top>int </td><td class="memItemRight" valign=bottom><a class="el" href="ubthread_8h.html#a7">ubthread_cond_init</a> (<a class="el" href="structubthread__cond.html">ubthread_cond_t</a> *cond, const <a class="el" href="types_8h.html#a3">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_8h.html#a8">ubthread_mutex_init</a> (<a class="el" href="structubthread__mutex.html">ubthread_mutex_t</a> *mutex, const <a class="el" href="types_8h.html#a3">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_8h.html#a9">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_8h.html#a10">ubthread_mutex_destroy</a> (<a class="el" href="structubthread__mutex.html">ubthread_mutex_t</a> *mutex)</td></tr> <tr><td class="memItemLeft" nowrap align=right valign=top>int </td><td class="memItemRight" valign=bottom><a class="el" href="ubthread_8h.html#a11">ubthread_create</a> (<a class="el" href="structtask_struct.html">kTask_t</a> **thread, const <a class="el" href="types_8h.html#a3">uInt32</a> *attr, void *start_routine, 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_8h.html#a12">ubthread_mutex_lock</a> (<a class="el" href="structubthread__mutex.html">ubthread_mutex_t</a> *mutex)</td></tr> <tr><td class="memItemLeft" nowrap align=right valign=top>int </td><td class="memItemRight" valign=bottom><a class="el" href="ubthread_8h.html#a13">ubthread_mutex_unlock</a> (<a class="el" href="structubthread__mutex.html">ubthread_mutex_t</a> *mutex)</td></tr> <tr><td class="memItemLeft" nowrap align=right valign=top>int </td><td class="memItemRight" valign=bottom><a class="el" href="ubthread_8h.html#a14">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> *mutex, 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_8h.html#a15">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> *mutex)</td></tr> <tr><td class="memItemLeft" nowrap align=right valign=top>int </td><td class="memItemRight" valign=bottom><a class="el" href="ubthread_8h.html#a16">ubthread_cond_signal</a> (<a class="el" href="structubthread__cond.html">ubthread_cond_t</a> *cond)</td></tr> </table> <hr><h2>Define Documentation</h2> <a name="a0" doxytag="ubthread.h::ETIMEDOUT"></a><p> <table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> <tr> <td class="mdRow"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> #define ETIMEDOUT -1 </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> </td> </tr> </table> <a name="a1" doxytag="ubthread.h::LOCKED"></a><p> <table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> <tr> <td class="mdRow"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> #define LOCKED 1 </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> </td> </tr> </table> <a name="a2" doxytag="ubthread.h::UNLOCKED"></a><p> <table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> <tr> <td class="mdRow"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> #define UNLOCKED 0 </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> </td> </tr> </table> <hr><h2>Typedef Documentation</h2> <a name="a4" doxytag="ubthread.h::ubthread_cond_t"></a><p> <table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> <tr> <td class="mdRow"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> typedef struct <a class="el" href="structubthread__cond.html">ubthread_cond</a>* <a class="el" href="structubthread__cond.html">ubthread_cond_t</a> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> </td> </tr> </table> <a name="a5" doxytag="ubthread.h::ubthread_mutex_t"></a><p> <table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> <tr> <td class="mdRow"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> typedef struct <a class="el" href="structubthread__mutex.html">ubthread_mutex</a>* <a class="el" href="structubthread__mutex.html">ubthread_mutex_t</a> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> </td> </tr> </table> <a name="a3" doxytag="ubthread.h::ubthread_t"></a><p> <table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> <tr> <td class="mdRow"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> typedef struct <a class="el" href="structubthread.html">ubthread</a>* <a class="el" href="structubthread.html">ubthread_t</a> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> </td> </tr> </table> <hr><h2>Function Documentation</h2> <a name="a9" doxytag="ubthread.h::ubthread_cond_destroy"></a><p> <table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> <tr> <td class="mdRow"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> int ubthread_cond_destroy </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top"><a class="el" href="structubthread__cond.html">ubthread_cond_t</a> * </td> <td class="mdname1" valign="top" nowrap> <em>cond</em> </td> <td class="md" valign="top"> ) </td> <td class="md" nowrap></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> </td> </tr> </table> <a name="a7" doxytag="ubthread.h::ubthread_cond_init"></a><p> <table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> <tr> <td class="mdRow"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> int ubthread_cond_init </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top"><a class="el" href="structubthread__cond.html">ubthread_cond_t</a> * </td> <td class="mdname" nowrap> <em>cond</em>, </td> </tr> <tr> <td></td> <td></td> <td class="md" nowrap>const <a class="el" href="types_8h.html#a3">uInt32</a> </td> <td class="mdname" nowrap> <em>attr</em></td> </tr> <tr> <td></td> <td class="md">) </td> <td class="md" colspan="2"></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> </td> </tr> </table> <a name="a16" doxytag="ubthread.h::ubthread_cond_signal"></a><p> <table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> <tr> <td class="mdRow"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> int ubthread_cond_signal </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top"><a class="el" href="structubthread__cond.html">ubthread_cond_t</a> * </td> <td class="mdname1" valign="top" nowrap> <em>cond</em> </td> <td class="md" valign="top"> ) </td> <td class="md" nowrap></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> </td> </tr> </table> <a name="a14" doxytag="ubthread.h::ubthread_cond_timedwait"></a><p> <table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> <tr> <td class="mdRow"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> int ubthread_cond_timedwait </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top"><a class="el" href="structubthread__cond.html">ubthread_cond_t</a> * </td> <td class="mdname" nowrap> <em>cond</em>, </td> </tr> <tr> <td></td> <td></td> <td class="md" nowrap><a class="el" href="structubthread__mutex.html">ubthread_mutex_t</a> * </td> <td class="mdname" nowrap> <em>mutex</em>, </td> </tr> <tr> <td></td> <td></td> <td class="md" nowrap>const struct <a class="el" href="structtimespec.html">timespec</a> * </td> <td class="mdname" nowrap> <em>abstime</em></td> </tr> <tr> <td></td> <td class="md">) </td> <td class="md" colspan="2"></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> </td> </tr> </table> <a name="a15" doxytag="ubthread.h::ubthread_cond_wait"></a><p> <table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> <tr> <td class="mdRow"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> int ubthread_cond_wait </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top"><a class="el" href="structubthread__cond.html">ubthread_cond_t</a> * </td> <td class="mdname" nowrap> <em>cond</em>, </td> </tr> <tr> <td></td> <td></td> <td class="md" nowrap><a class="el" href="structubthread__mutex.html">ubthread_mutex_t</a> * </td> <td class="mdname" nowrap> <em>mutex</em></td> </tr> <tr> <td></td> <td class="md">) </td> <td class="md" colspan="2"></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> </td> </tr> </table> <a name="a11" doxytag="ubthread.h::ubthread_create"></a><p> <table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> <tr> <td class="mdRow"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> int ubthread_create </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top"><a class="el" href="structtask_struct.html">kTask_t</a> ** </td> <td class="mdname" nowrap> <em>thread</em>, </td> </tr> <tr> <td></td> <td></td> <td class="md" nowrap>const <a class="el" href="types_8h.html#a3">uInt32</a> * </td> <td class="mdname" nowrap> <em>attr</em>, </td> </tr> <tr> <td></td> <td></td> <td class="md" nowrap>void * </td> <td class="mdname" nowrap> <em>start_routine</em>, </td> </tr> <tr> <td></td> <td></td> <td class="md" nowrap>void * </td> <td class="mdname" nowrap> <em>arg</em></td> </tr> <tr> <td></td> <td class="md">) </td> <td class="md" colspan="2"></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> </td> </tr> </table> <a name="a10" doxytag="ubthread.h::ubthread_mutex_destroy"></a><p> <table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> <tr> <td class="mdRow"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> int ubthread_mutex_destroy </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top"><a class="el" href="structubthread__mutex.html">ubthread_mutex_t</a> * </td> <td class="mdname1" valign="top" nowrap> <em>mutex</em> </td> <td class="md" valign="top"> ) </td> <td class="md" nowrap></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> </td> </tr> </table> <a name="a8" doxytag="ubthread.h::ubthread_mutex_init"></a><p> <table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> <tr> <td class="mdRow"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> int ubthread_mutex_init </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top"><a class="el" href="structubthread__mutex.html">ubthread_mutex_t</a> * </td> <td class="mdname" nowrap> <em>mutex</em>, </td> </tr> <tr> <td></td> <td></td> <td class="md" nowrap>const <a class="el" href="types_8h.html#a3">uInt32</a> </td> <td class="mdname" nowrap> <em>attr</em></td> </tr> <tr> <td></td> <td class="md">) </td> <td class="md" colspan="2"></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> </td> </tr> </table> <a name="a12" doxytag="ubthread.h::ubthread_mutex_lock"></a><p> <table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> <tr> <td class="mdRow"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> int ubthread_mutex_lock </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top"><a class="el" href="structubthread__mutex.html">ubthread_mutex_t</a> * </td> <td class="mdname1" valign="top" nowrap> <em>mutex</em> </td> <td class="md" valign="top"> ) </td> <td class="md" nowrap></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> </td> </tr> </table> <a name="a13" doxytag="ubthread.h::ubthread_mutex_unlock"></a><p> <table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> <tr> <td class="mdRow"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> int ubthread_mutex_unlock </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top"><a class="el" href="structubthread__mutex.html">ubthread_mutex_t</a> * </td> <td class="mdname1" valign="top" nowrap> <em>mutex</em> </td> <td class="md" valign="top"> ) </td> <td class="md" nowrap></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> </td> </tr> </table> <a name="a6" doxytag="ubthread.h::ubthread_self"></a><p> <table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> <tr> <td class="mdRow"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> <a class="el" href="structtask_struct.html">kTask_t</a>* ubthread_self </td> <td class="md" valign="top">( </td> <td class="mdname1" valign="top" nowrap> </td> <td class="md" valign="top"> ) </td> <td class="md" nowrap></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> </td> </tr> </table> <hr size="1"><address style="align: right;"><small>Generated on Sat May 8 09:28:23 2004 for Ubixos by <a href="http://www.doxygen.org/index.html"> <img src="doxygen.png" alt="doxygen" align="middle" border=0 > </a>1.3.3 </small></address> </body> </html>