Skip to content
Snippets Groups Projects
NuttxUserGuide.html 201 KiB
Newer Older
patacongo's avatar
patacongo committed
<p>
</p>
<p>
  <b>Input Parameters:</b>
</p>
<ul>
  <li><code>sockfd</code>: Socket descriptor of socket
  <li><code>buf</code>: Data to send
  <li><code>len</code>: Length of data to send
  <li><code>flags</code>: Send flags
  <li><code>to</code>: Address of recipient
  <li><code>tolen</code>: The length of the address structure
</ul>
<p>
  <b>Returned Values:</b>
  On success, returns the number of characters sent.  On  error, -1 is returned, and<code>errno</code>is set appropriately:
</p>
<ul>
  <li><code>EAGAIN</code> or <code>EWOULDBLOCK</code>.
    The socket is marked non-blocking and the requested operation would block.
  <li><code>EBADF</code>.
    An invalid descriptor was specified.
  <li><code>ECONNRESET</code>.
    Connection reset by peer.
  <li><code>EDESTADDRREQ</code>.
    The socket is not connection-mode, and no peer address is set.
  <li><code>EFAULT</code>.
    An invalid user space address was specified for a parameter.
  <li><code>EINTR</code>.
    A signal occurred before any data was transmitted.
  <li><code>EINVAL</code>.
    Invalid argument passed.
  <li><code>EISCONN</code>.
    The connection-mode socket was connected already but a recipient
    was specified. (Now either this error is returned, or the recipient
    specification is ignored.)
  <li><code>EMSGSIZE</code>.
    The socket type requires that message be sent atomically, and the
    size of the message to be sent made this impossible.
  <li><code>ENOBUFS</code>.
    The output queue for a network interface was full. This generally
    indicates that the interface has stopped sending, but may be
    caused by transient congestion.
  <li><code>ENOMEM</code>.
    No memory available.
  <li><code>ENOTCONN</code>.
    The socket is not connected, and no target has been given.
  <li><code>ENOTSOCK</code>.
    The argument s is not a socket.
  <li><code>EOPNOTSUPP</code>.
    Some bit in the flags argument is inappropriate for the socket type.
  <li><code>EPIPE</code>.
    The local end has been shut down on a connection oriented socket.
    In this case the process will also receive a SIGPIPE unless
    MSG_NOSIGNAL is set.
</ul>

<h3><a name="recv">2.12.6 <code>recv</code></a></h3>
<p>
  <b>Function Prototype:</b>
</p>
<pre>
  #include <sys/socket.h>
  ssize_t recv(int sockfd, void *buf, size_t len, int flags);
</pre>
<p>
  <b>Description:</b>
  The <code>recv()</code> call is identical to
  <a href="#recvfrom"><code>recvfrom()</code></a> with a NULL
  <code>from</code> parameter.
<p>
</p>
<p>
  <b>Input Parameters:</b>
</p>
<ul>
  </li>
  <li>sockfd</code>: Socket descriptor of socket </li>
  <li>buf</code>: Buffer to receive data </li>
  <li>len</code>: Length of buffer </li>
  <li>flags</code>: Receive flags </li>
</ul>
<p>
  <b>Returned Values:</b>
  see <a href="#recvfrom"><code>recvfrom()</code></a>.
  Zero on success.
</p>

<h3><a name="recvfrom">2.12.7 <code>recvfrom</code></a></h3>
<p>
  <b>Function Prototype:</b>
</p>
<pre>
  #include <sys/socket.h>
  ssize_t recvfrom(int sockfd, void *buf, size_t len, int flags,
                   struct sockaddr *from, socklen_t *fromlen);
</pre>
<p>
  <b>Description:</b>
  <code>recvfrom()</code> receives messages from a socket, and may be used to receive
  data on a socket whether or not it is connection-oriented.
</p>
<p>
  If <code>from</code> is not NULL, and the underlying protocol provides the source
  address, this source address is filled in. The argument <code>fromlen</code>
  initialized to the size of the buffer associated with <code>from</code>, and modified
  on return to indicate the actual size of the address stored there.
</p>
<p>
  <b>Input Parameters:</b>
</p>
<ul>
    <li><code>sockfd</code>: Socket descriptor of socket.</li>
    <li><code>buf</code>:  Buffer to receive data.</li>
    <li><code>len</code>: Length of buffer.</li>
    <li><code>flags</code>: Receive flags.</li>
    <li><code>from</code>: Address of source.</li>
    <li><code>fromlen</code>: The length of the address structure.</li>
</ul>
<p>
  <b>Returned Values:</b>
  On success, returns the number of characters sent.
  On error, -1 is returned, and errno is set appropriately:
</p>
<ul>
    <li><code>EAGAIN</code>.
      The socket is marked non-blocking and the receive operation would block,
      or a receive timeout had been set and the timeout expired before data
      was received.
    <li><code>EBADF</code>.
      The argument <code>sockfd</code> is an invalid descriptor.
    <li><code>ECONNREFUSED</code>.
      A remote host refused to allow the network connection (typically because
      it is not running the requested service).
    <li><code>EFAULT</code>.
      The receive buffer pointer(s) point outside the process's address space.
    <li><code>EINTR</code>.
      The receive was interrupted by delivery of a signal before any data were
      available.
    <li><code>EINVAL</code>.
      Invalid argument passed.
    <li><code>ENOMEM</code>.
      Could not allocate memory.
    <li><code>ENOTCONN</code>.
      The socket is associated with a connection-oriented protocol and has
      not been connected.
    <li><code>ENOTSOCK</code>.
      The argument <code>sockfd</code> does not refer to a socket.
</ul>

<h3><a name="setsockopt">2.12.8 <code>setsockopt</code></a></h3>
<p>
  <b>Function Prototype:</b>
</p>
<pre>
  #include <sys/socket.h>
  int setsockopt(int sockfd, int level, int option,
                 const void *value, socklen_t value_len);
</pre>
<p>
  <b>Description:</b>
  <code>setsockopt()</code> sets the option specified by the <code>option</code> argument,
  at the protocol level specified by the <code>level</code> argument, to the value
  pointed to by the <code>value</code> argument for the socket associated with the
  file descriptor specified by the <code>sockfd</code> argument.
</p>
<p>
  The <code>level</code> argument specifies the protocol level of the option. To set
  options at the socket level, specify the level argument as SOL_SOCKET.
</p>
<p>
  See <sys/socket.h> a complete list of values for the <code>option</code> argument.
</p>
<p>
  <b>Input Parameters:</b>
</p>
<ul>
  <li><code>sockfd</code>: Socket descriptor of socket
  <li><code>level</code>: Protocol level to set the option
  <li><code>option</code>: identifies the option to set
  <li><code>value</code>: Points to the argument value
  <li><code>value_len</code>: The length of the argument value
</ul>
<p>
  <b>Returned Values:</b>
  On success, returns the number of characters sent.
  On error, -1 is returned, and errno is set appropriately:
</p>
<ul>
  <li><code>BADF</code>.
     The <code>sockfd</code> argument is not a valid socket descriptor.
  <li><code>DOM</code>.
     The send and receive timeout values are too big to fit into the
     timeout fields in the socket structure.
  <li><code>INVAL</code>.
     The specified option is invalid at the specified socket <code>level</code> or the
     socket has been shut down.
  <li><code>ISCONN</code>.
     The socket is already connected, and a specified option cannot be set
     while the socket is connected.
  <li><code>NOPROTOOPT</code>.
     The <code>option</code> is not supported by the protocol.
  <li><code>NOTSOCK</code>.
     The <code>sockfd</code> argument does not refer to a socket.
  <li><code>NOMEM</code>.
     There was insufficient memory available for the operation to complete.
  <li><code>NOBUFS</code>.
     Insufficient resources are available in the system to complete the call.
</ul>

<h3><a name="getsockopt">2.12.9 <code>getsockopt</code></a></h3>
<p>
  <b>Function Prototype:</b>
</p>
<pre>
  #include <sys/socket.h>
  int getsockopt(int sockfd, int level, int option,
                 void *value, socklen_t *value_len);
</pre>
<p>
  <b>Description:</b>
  <code>getsockopt()</code> retrieve thse value for the option specified by the
  <code>option</code> argument for the socket specified by the <code>sockfd</code> argument. If
  the size of the option value is greater than <code>value_len</code>, the value
  stored in the object pointed to by the <code>value</code> argument will be silently
  truncated. Otherwise, the length pointed to by the <code>value_len</code> argument
  will be modified to indicate the actual length of the<code>value</code>.
</p>
<p>
  The <code>level</code> argument specifies the protocol level of the option. To
  retrieve options at the socket level, specify the level argument as
  SOL_SOCKET.
</p>
<p>
  See <sys/socket.h> a complete list of values for the <code>option</code> argument.
</p>
<p>
  <b>Input Parameters:</b>
</p>
<ul>
  <li><code>sockfd    Socket descriptor of socket
  <li><code>level     Protocol level to set the option
  <li><code>option    identifies the option to get
  <li><code>value     Points to the argument value
  <li><code>value_len The length of the argument value
</ul>
<p>
  <b>Returned Values:</b>
  On success, returns the number of characters sent.
  On error, -1 is returned, and errno is set appropriately:
</p>
<ul>
  <li><code>BADF</code>.
    The <code>sockfd</code> argument is not a valid socket descriptor.</li>
  <li><code>INVAL</code>.
    The specified option is invalid at the specified socket <code>level</code> or the
    socket has been shutdown.</li>
  <li><code>NOPROTOOPT</code>.
    The <code>option</code> is not supported by the protocol.</li>
  <li><code>NOTSOCK</code>.
    The <code>sockfd</code> argument does not refer to a socket.</li>
  <li><code>NOBUFS
    Insufficient resources are available in the system to complete the call.</li>
</ul>

patacongo's avatar
patacongo committed
<hr>
<h1>3.0 <A NAME="Data_Structures">OS Data Structures</a></h1>
patacongo's avatar
patacongo committed
<H2>3.1 Scalar types</H2>
patacongo's avatar
patacongo committed
<p>
Many of the types used to communicate with NuttX are simple
patacongo's avatar
patacongo committed
scalar types. These types are used to provide architecture independence
of the OS from the application. The scalar types used at the NuttX
patacongo's avatar
patacongo committed
interface include:
patacongo's avatar
patacongo committed
<ul>
<li>pid_t
<li>size_t
<li>sigset_t
<li>STATUS
<li>time_t
</ul>
patacongo's avatar
patacongo committed

<H2>3.2 Hidden Interface Structures</H2>
patacongo's avatar
patacongo committed
<p>
Several of the types used to interface with NuttX are
patacongo's avatar
patacongo committed
structures that are intended to be hidden from the application.
From the standpoint of the application, these structures (and
structure pointers) should be treated as simple handles to reference
OS resources. These hidden structures include:
patacongo's avatar
patacongo committed
<ul>
<li>_TCB
<li>mqd_t
<li>sem_t
<li>WDOG_ID
<li>pthread_key_t
</ul>
<p>
patacongo's avatar
patacongo committed
In order to maintain portability, applications should not reference
specific elements within these hidden structures. These hidden
structures will not be described further in this user's manual.
patacongo's avatar
patacongo committed
<p>
patacongo's avatar
patacongo committed

<H2>3.3. Access to the <I>errno</I> Variable</H2>
patacongo's avatar
patacongo committed
<p>
patacongo's avatar
patacongo committed
A pointer to the thread-specific <I>errno</I>. value is available through a
function call:
patacongo's avatar
patacongo committed
<p>
<b>Function Prototype:</b>
<p>
<pre>    int *get_errno_ptr( void )</pre>
patacongo's avatar
patacongo committed
<p>
<b>Description</b>:  <I>osGetErrnorPtr()</I> returns a pointer to
patacongo's avatar
patacongo committed
the thread-specific <I>errno</I> value.
patacongo's avatar
patacongo committed
<p>
patacongo's avatar
patacongo committed
This differs somewhat from the use for<code>errno</code>in a multi-threaded process environment:
Each pthread will have its own private copy of<code>errno</code>and the<code>errno</code>will not be shared
patacongo's avatar
patacongo committed
between pthreads.
patacongo's avatar
patacongo committed
<p>
<b>Input Parameters</b>:  None
<p>
<b>Returned Values</b>:
<p>
<ul>
<li>A pointer to the thread-specific <I>errno</I> value.
</ul>
<p>
patacongo's avatar
patacongo committed

<H2>3.4 User Interface Structures</H2>
patacongo's avatar
patacongo committed
<p>
patacongo's avatar
patacongo committed
<H3>3.4.1 main_t</H3>
patacongo's avatar
patacongo committed
<p>
patacongo's avatar
patacongo committed
main_t defines the type of a task entry point. main_t is declared
in sys/types.h as:
patacongo's avatar
patacongo committed
    typedef int (*main_t)(int argc, char *argv[]);
patacongo's avatar
patacongo committed

<H3>3.4.2 struct sched_param</H3>

patacongo's avatar
patacongo committed
<p>
patacongo's avatar
patacongo committed
This structure is used to pass scheduling priorities to and from
patacongo's avatar
patacongo committed
    struct sched_param
    {
      int sched_priority;
    };
patacongo's avatar
patacongo committed

<H3>3.4.3 struct timespec</H3>

patacongo's avatar
patacongo committed
<p>
patacongo's avatar
patacongo committed
This structure is used to pass timing information between the
patacongo's avatar
patacongo committed
    struct timespec
    {
      time_t tv_sec;  /* Seconds */
      long   tv_nsec; /* Nanoseconds */
    };
patacongo's avatar
patacongo committed

<H3>3.4.4 struct mq_attr</H3>

patacongo's avatar
patacongo committed
<p>
patacongo's avatar
patacongo committed
This structure is used to communicate message queue attributes
between NuttX and a MoBY application:
patacongo's avatar
patacongo committed
    struct mq_attr {
      size_t       mq_maxmsg;   /* Max number of messages in queue */
      size_t       mq_msgsize;  /* Max message size */
      unsigned     mq_flags;    /* Queue flags */
      size_t       mq_curmsgs;  /* Number of messages currently in queue */
    };
patacongo's avatar
patacongo committed

<H3>3.4.5 struct sigaction</H3>

patacongo's avatar
patacongo committed
<p>
patacongo's avatar
patacongo committed
The following structure defines the action to take for given signal:
    struct sigaction
    {
      union
      {
        void (*_sa_handler)(int);
        void (*_sa_sigaction)(int, siginfo_t *, void *);
patacongo's avatar
patacongo committed
      } sa_u;
      sigset_t           sa_mask;
      int                sa_flags;
    };
    #define sa_handler   sa_u._sa_handler
    #define sa_sigaction sa_u._sa_sigaction
patacongo's avatar
patacongo committed

<H3>3.4.6 struct siginfo/siginfo_t</H3>

patacongo's avatar
patacongo committed
<p>
patacongo's avatar
patacongo committed
The following types is used to pass parameters to/from signal
handlers:
patacongo's avatar
patacongo committed
    typedef struct siginfo
    {
      int          si_signo;
      int          si_code;
      union sigval si_value;
   } siginfo_t;
patacongo's avatar
patacongo committed

<H3>3.4.7 union sigval</H3>

patacongo's avatar
patacongo committed
<p>
patacongo's avatar
patacongo committed
This defines the type of the struct siginfo si_value field and
is used to pass parameters with signals.
patacongo's avatar
patacongo committed
    union sigval
    {
      int   sival_int;
      void *sival_ptr;
    };
patacongo's avatar
patacongo committed

<H3>3.4.8 struct sigevent</H3>

patacongo's avatar
patacongo committed
<p>
patacongo's avatar
patacongo committed
The following is used to attach a signal to a message queue to
notify a task when a message is available on a queue.
patacongo's avatar
patacongo committed
    struct sigevent
    {
      int          sigev_signo;
      union sigval sigev_value;
      int          sigev_notify;
    };

<H3>3.4.9 Watchdog Data Types</H3>

<p>
  When a watchdog expires, the callback function with this
  type is called:
</p>
<pre>
    typedef void (*wdentry_t)(int argc, ...);
</pre>
<p>
  Where argc is the number of uint32 type arguments that follow.
</p>
  The arguments are passed as uint32 values.
  For systems where the sizeof(pointer) &lt; sizeof(uint32), the
  following union defines the alignment of the pointer within the
  uint32.  For example, the SDCC MCS51 general pointer is
  24-bits, but uint32 is 32-bits (of course).
</p>
<pre>
    union wdparm_u
    {
      void   *pvarg;
      uint32 *dwarg;
    };
    typedef union wdparm_u wdparm_t;
</pre>
<p>
  For most 32-bit systems, pointers and uint32 are the same size
  For systems where sizeof(pointer) > sizeof(uint32), we will
  have to do some redesign.
</p>

patacongo's avatar
patacongo committed
<h1><a name="index">Index</a></h1>
patacongo's avatar
patacongo committed
<table width="100%">
<tr>
<td>
  <li><a href="#bind">bind</a></li>
  <li><a href="#clockgetres">clock_getres</a></li>
  <li><a href="#clockgettime">clock_gettime</a></li>
  <li><a href="#ClocksNTimers">Clocks</a></li>
  <li><a href="#clocksettime">clock_settime</a></li>
patacongo's avatar
patacongo committed
  <li><a href="#connect">connect</a></li>
  <li><a href="#Data_Structures">Data structures</a></li>
  <li><a href="#directoryoperations">Directory operations</a></li>
  <li><a href="#driveroperations">Driver operations</a></li>
patacongo's avatar
patacongo committed
  <li><a href="#exit">exit</a></li>
  <li><a href="#FileSystem">Filesystem interfaces</a></li>
patacongo's avatar
patacongo committed
  <li><a href="#getpid">getpid</a></li>
patacongo's avatar
patacongo committed
  <li><a href="#getsockopt">getsockopt</a></li>
  <li><a href="#gmtimer">gmtime_r</a></li>
patacongo's avatar
patacongo committed
  <li><a href="#Introduction">Introduction</a>
  <li><a href="#kill">kill</a></li>
  <li><a href="#localtimer">localtime_r</a></li>
patacongo's avatar
patacongo committed
  <li><a href="#Message_Queue">Named Message Queue Interfaces</a>
  <li><a href="#mktime">mktime</a></li>
patacongo's avatar
patacongo committed
  <li><a href="#mqclose">mq_close</a></li>
  <li><a href="#mqgetattr">mq_getattr</a></li>
  <li><a href="#mqnotify">mq_notify</a></li>
  <li><a href="#mqopen">mq_open</a></li>
  <li><a href="#mqreceive">mq_receive</a></li>
  <li><a href="#mqsend">mq_send</a></li>
  <li><a href="#mqsetattr">mq_setattr</a></li>
  <li><a href="#mqtimedreceive">mq_timedreceive</a></li>
  <li><a href="#mqtimedsend">mq_timedsend</a></li>
patacongo's avatar
patacongo committed
  <li><a href="#mqunlink">mq_unlink</a></li>
patacongo's avatar
patacongo committed
  <li><a href="#Network">Network Interfaces</a></li>
patacongo's avatar
patacongo committed
  <li><a href="#OS_Interfaces">OS Interfaces</a>
patacongo's avatar
patacongo committed
  <li><a href="#Pthread">Pthread Interfaces</a>
patacongo's avatar
patacongo committed
  <li><a href="#pthreadattrdestroy">pthread_attr_destroy</a></li>
  <li><a href="#pthreadattrgetinheritsched">pthread_attr_getinheritsched</a></li>
  <li><a href="#pthreadattrgetschedparam">pthread_attr_getschedparam</a></li>
  <li><a href="#pthreadattrgetschedpolicy">pthread_attr_getschedpolicy</a></li>
  <li><a href="#pthreadattrgetstacksize">0 pthread_attr_getstacksize</a></li>
  <li><a href="#pthreadattrinit">pthread_attr_init</a></li>
  <li><a href="#pthreadattrsetinheritsched">pthread_attr_setinheritsched</a></li>
  <li><a href="#pthreadattrsetschedparam">pthread_attr_setschedparam</a></li>
  <li><a href="#pthreadattrsetschedpolity">pthread_attr_setschedpolicy</a></li>
  <li><a href="#pthreadattrsetstacksize">pthread_attr_setstacksize</a></li>
patacongo's avatar
patacongo committed
  <li><a href="#pthreadbarrierattrinit">pthread_barrierattr_init</a></li>
  <li><a href="#pthreadbarrierattrdestroy">pthread_barrierattr_destroy</a></li>
  <li><a href="#pthreadbarrierattrgetpshared">pthread_barrierattr_getpshared</a></li>
  <li><a href="#pthreadbarrierattrsetpshared">pthread_barrierattr_setpshared</a></li>
  <li><a href="#pthreadbarrierdestroy">pthread_barrier_destroy</a></li>
  <li><a href="#pthreadbarrierinit">pthread_barrier_init</a></li>
  <li><a href="#pthreadbarrierwait">pthread_barrier_wait</a></li>
patacongo's avatar
patacongo committed
  <li><a href="#pthreadcancel">pthread_cancel</a></li>
  <li><a href="#pthreadconaddrinit">pthread_condattr_init</a></li>
  <li><a href="#pthreadcondbroadcast">pthread_cond_broadcast</a></li>
  <li><a href="#pthreadconddestroy">pthread_cond_destroy</a></li>
  <li><a href="#pthreadcondinit">pthread_cond_init</a></li>
  <li><a href="#pthreadcondsignal">pthread_cond_signal</a></li>
  <li><a href="#pthreadcondtimedwait">pthread_cond_timedwait</a></li>
  <li><a href="#pthreadcondwait">pthread_cond_wait</a></li>
  <li><a href="#pthreadcreate">pthread_create</a></li>
  <li><a href="#pthreaddetach">pthread_detach</a></li>
  <li><a href="#pthreadexit">pthread_exit</a></li>
  <li><a href="#pthreadgetschedparam">pthread_getschedparam</a></li>
  <li><a href="#pthreadgetspecific">pthread_getspecific</a></li>
  <li><a href="#Pthread"><i>pthreads</i></a> share some resources.
  <li><a href="#pthreadjoin">pthread_join</a></li>
  <li><a href="#pthreadkeycreate">pthread_key_create</a></li>
  <li><a href="#pthreadkeydelete">pthread_key_delete</a></li>
patacongo's avatar
patacongo committed
  <li><a href="#pthreadkill">pthread_kill</a></li>
patacongo's avatar
patacongo committed
  <li><a href="#pthreadmutexattrdestroy">pthread_mutexattr_destroy</a></li>
  <li><a href="#pthreadmutexattrgetpshared">pthread_mutexattr_getpshared</a></li>
  <li><a href="#pthreadmutexattrinit">pthread_mutexattr_init</a></li>
  <li><a href="#pthreadmutexattrsetpshared">pthread_mutexattr_setpshared</a></li>
  <li><a href="#pthreadmutexdestrory">pthread_mutex_destroy</a></li>
  <li><a href="#pthreadmutexinit">pthread_mutex_init</a></li>
patacongo's avatar
patacongo committed
</td>
<td>
patacongo's avatar
patacongo committed
  <li><a href="#pthreadmutexlock">pthread_mutex_lock</a></li>
  <li><a href="#pthreadmutextrylock">pthread_mutex_trylock</a></li>
  <li><a href="#pthreadmutexunlock">pthread_mutex_unlock</a></li>
  <li><a href="#pthreadocndattrdestroy">pthread_condattr_destroy</a></li>
patacongo's avatar
patacongo committed
  <li><a href="#pthreadonce">pthread_once</a></li>
patacongo's avatar
patacongo committed
  <li><a href="#pthreadself">pthread_self</a></li>
  <li><a href="#pthreadsetcancelstate">pthread_setcancelstate</a></li>
  <li><a href="#pthreadsetschedparam">pthread_setschedparam</a></li>
  <li><a href="#pthreadsetspecific">pthread_setspecific</a></li>
patacongo's avatar
patacongo committed
  <li><a href="#pthreadsigmask">pthread_sigmask</a></li>
patacongo's avatar
patacongo committed
  <li><a href="#pthreadtestcancelstate">pthread_testcancelstate</a></li>
  <li><a href="#pthreadyield">pthread_yield</a></li>
patacongo's avatar
patacongo committed
  <li><a href="#recv">recv</a></li>
  <li><a href="#recvfrom">recvfrom</a></li>
patacongo's avatar
patacongo committed
  <li><a href="#schedgetparam">sched_getparam</a></li>
  <li><a href="#schedgetprioritymax">sched_get_priority_max</a></li>
  <li><a href="#schedgetprioritymin">sched_get_priority_min</a></li>
  <li><a href="#schedgetrrinterval">sched_get_rr_interval</a></li>
  <li><a href="#schedlockcount">sched_lockcount</a></li>
  <li><a href="#schedlock">sched_lock</a></li>
  <li><a href="#schedsetparam">sched_setparam</a></li>
  <li><a href="#schedsetscheduler">sched_setscheduler</a></li>
  <li><a href="#schedunlock">sched_unlock</a></li>
  <li><a href="#sched_yield">sched_yield</a></li>
  <li><a href="#Semaphores">Counting Semaphore Interfaces</a>
  <li><a href="#semclose">sem_close</a></li>
  <li><a href="#semdestroy">sem_destroy</a></li>
  <li><a href="#semgetvalue">sem_getvalue</a></li>
  <li><a href="#seminit">sem_init</a></li>
  <li><a href="#semopen">sem_open</a></li>
  <li><a href="#sempost">sem_post</a></li>
  <li><a href="#semtrywait">sem_trywait</a></li>
  <li><a href="#semunlink">sem_unlink</a></li>
  <li><a href="#semwait">sem_wait</a></li>
  <li><a href="#setgetscheduler">sched_getscheduler</a></li>
patacongo's avatar
patacongo committed
  <li><a href="#send">send</a></li>
  <li><a href="#sendto">sendto</a></li>
  <li><a href="#setsockopt">setsockopt</a></li>
patacongo's avatar
patacongo committed
  <li><a href="#sigaction">sigaction</a></li>
  <li><a href="#sigaddset">sigaddset</a></li>
  <li><a href="#sigdelset">sigdelset</a></li>
  <li><a href="#sigemptyset">sigemptyset</a></li>
  <li><a href="#sigfillset">sigfillset</a></li>
  <li><a href="#sigismember">sigismember</a></li>
  <li><a href="#Signals">Signal Interfaces</a>
  <li><a href="#sigpending">sigpending</a></li>
  <li><a href="#sigprocmask">sigprocmask</a></li>
  <li><a href="#sigqueue">sigqueue</a></li>
  <li><a href="#sigsuspend">sigsuspend</a></li>
  <li><a href="#sigtimedwait">sigtimedwait</a></li>
  <li><a href="#sigwaitinfo">sigwaitinfo</a></li>
patacongo's avatar
patacongo committed
  <li><a href="#socket">socket</a></li>
  <li><a href="#standardio">Standard I/O</a></li>
patacongo's avatar
patacongo committed
  <li><a href="#taskactivate">task_activate</a></li>
  <li><a href="#Task_Control">Task Control Interfaces</a>
  <li><a href="#taskcreate">task_create</a></li>
  <li><a href="#taskdelete">task_delete</a></li>
  <li><a href="#taskinit">task_init</a></li>
  <li><a href="#taskrestart">task_restart</a></li>
  <li><a href="#Task_Schedule">Task Scheduling Interfaces</a>
  <li><a href="#Task_Switch">Task Switching Interfaces</a>
  <li><a href="#timercreate">timer_create</a></li>
  <li><a href="#timerdelete">timer_delete</a></li>
  <li><a href="#timergetoverrun">timer_getoverrun</a></li>
  <li><a href="#timergettime">timer_gettime</a></li>
  <li><a href="#ClocksNTimers">Timers</a></li>
  <li><a href="#timersettime">timer_settime</a></li>
patacongo's avatar
patacongo committed
  <li><a href="#Watchdogs">Watchdog Timer Interfaces</a>
  <li><a href="#wdcancel">wd_cancel</a></li>
  <li><a href="#wdcreate">wd_create</a></li>
  <li><a href="#wddelete">wd_delete</a></li>
  <li><a href="#wdgettime">wd_gettime</a></li>
patacongo's avatar
patacongo committed
  <li><a href="#wdstart">wd_start</a></li>
patacongo's avatar
patacongo committed
</td>
</tr>
</table>
patacongo's avatar
patacongo committed

patacongo's avatar
patacongo committed
</BODY>
</HTML>