Added support for POSIX timers

git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@111 42af7a65-404d-4744-a932-0658087f49c3
This commit is contained in:
patacongo 2007-03-21 17:21:26 +00:00
parent 28da5a6c19
commit 36f441cb11
2 changed files with 71 additions and 5 deletions

View File

@ -867,7 +867,7 @@ below and discussed in the following paragraphs:</p>
</ul>
<ul>
<code>CONFIG_DISABLE_CLOCK</code>, <code>CONFIG_DISABLE_PTHREAD</code>,
<code>CONFIG_DISABLE_CLOCK</code>, <code>CONFI_DISABLE_POSIX_TIMERS</code>, <code>CONFIG_DISABLE_PTHREAD</code>,
<code>CONFIG_DISABLE_SIGNALS</code>, <code>CONFIG_DISABLE_MQUEUE</code>,
</ul>

View File

@ -21,7 +21,7 @@ User's Manual
<P>
Gregory Nutt
<P>
<SMALL>Last Update: January 28, 2007</SMALL>
<SMALL>Last Update: March 21, 2007</SMALL>
</CENTER>
<H1>1.0 <A NAME="Introduction">Introduction</A></H1>
@ -37,7 +37,7 @@ perspective of the firmware developer. This section is divided
into several paragraphs that describe different groups of OS interfaces:
<UL>
<LI>Paragraph 2.1 <A HREF="#Task_Control">Task Control Interfaces</A>
8nnnnn<LI>Paragraph 2.2 <A HREF="#Task_Schedule">Task Scheduling Interfaces</A>
<LI>Paragraph 2.2 <A HREF="#Task_Schedule">Task Scheduling Interfaces</A>
<LI>Paragraph 2.3 <A HREF="#Task_Switch">Task Switching Interfaces</A>
<LI>Paragraph 2.4 <A HREF="#Message_Queue">Named Message Queue Interfaces</A>
<LI>Paragraph 2.5 <A HREF="#Semaphores">Counting Semaphore Interfaces</A>
@ -1840,6 +1840,7 @@ interface of the same name.
<li><a href="#wddelete">2.6.2 wd_delete</a></li>
<li><a href="#wdstart">2.6.3 wd_start</a></li>
<li><a href="#wdcancel">2.6.4 wd_cancel</a></li>
<li><a href="#wdgettime">2.6.5 wd_gettime</a></li>
</ul>
<H3><a name="wdcreate">2.6.1 wd_create</a></H3>
@ -2017,6 +2018,30 @@ VxWorks provides the following comparable interface:
STATUS wdCancel (WDOG_ID wdog);
</PRE>
<h3><a name="wdgettime">2.6.5 wd_gettime</a></h3>
<p>
<b>Function Prototype:</b>
</p>
<pre>
#include &lt;wdog.h&gt;
Sint wd_gettime(WDOG_ID wdog);
</pre>
<p>
<b>Description:</b>
This function returns the time remaining before the the specified watchdog expires.
</p>
<p>
<b>Input Parameters:</b>
<ul>
<li><code>wdog</code>. Identifies the watchdog that the request is for.</li>
</ul>
</p>
<p>
<b>Returned Value:</b>
The time in system ticks remaining until the watchdog time expires. Zero
means either that wdog is not valid or that the wdog has already expired.
</p>
<HR>
<H2><A NAME="ClocksNTimers">2.7 Clocks and Timers</A></H2>
@ -2217,7 +2242,8 @@ VxWorks provides the following comparable interface:
<b>Input Parameters:</b>
</p>
<ul>
<li><code>clockid</code>. Specifies the clock to use as the timing base.</li>
<li><code>clockid</code>. Specifies the clock to use as the timing base.
Must be <code>CLOCK_REALTIME</code>.</li>
<li><code>evp</code>. Refers to a user allocated sigevent structure that defines the
asynchronous notification. evp may be NULL (see above).</li>
<li><code>timerid</code>. The pre-thread timer created by the call to timer_create().</li>
@ -2241,6 +2267,13 @@ VxWorks provides the following comparable interface:
to the CPU-time clock that is specified by clock_id and associated with a
thread different thread invoking timer_create().</li>
</ul>
<p>
<b>POSIX Compatibility:</b>
Comparable to the POSIX interface of the same name. Differences from the full POSIX implementation include:
</p>
<ul>
<li>Only <code>CLOCK_REALTIME</code> is supported for the <code>clockid</code> argument.</li>
</ul>
<H3><a name="timerdelete">2.7.8 timer_delete</A></H3>
<p>
@ -2275,6 +2308,10 @@ VxWorks provides the following comparable interface:
<ul>
<li><code>EINVAL</code>. The timer specified timerid is not valid.</li>
</ul>
<p>
<b>POSIX Compatibility:</b>
Comparable to the POSIX interface of the same name.
</p>
<H3><a name="timersettime">2.7.9 timer_settime</A></H3>
<p>
@ -2326,6 +2363,8 @@ VxWorks provides the following comparable interface:
amount of time before the timer would have expired, or zero if the timer was
disarmed, together with the previous timer reload value. Timers will not
expire before their scheduled time.
</p>
<b>NOTE:</b>At present, the <code>ovalue</code> argument is ignored.
</p>
<p>
<b>Input Parameters:</b>
@ -2334,7 +2373,7 @@ VxWorks provides the following comparable interface:
<li><code>timerid</code>. The pre-thread timer, previously created by the call to timer_create(), to be be set.</li>
<li><code>flags</code>. Specifie characteristics of the timer (see above)</li>
<li><code>value</code>. Specifies the timer value to set</li>
<li><code>ovalue</code>. A location in which to return the time remaining from the previous timer setting.</li>
<li><code>ovalue</code>. A location in which to return the time remaining from the previous timer setting (ignored).</li>
</ul>
<p>
<b>Returned Values:</b>
@ -2348,6 +2387,13 @@ VxWorks provides the following comparable interface:
<li><code>EINVAL</code>. A value structure specified a nanosecond value less than zero or greater than or equal to 1000 million,
and the it_value member of that structure did not specify zero seconds and nanoseconds.</li>
</ul>
<p>
<b>POSIX Compatibility:</b>
Comparable to the POSIX interface of the same name. Differences from the full POSIX implementation include:
</p>
<ul>
<li>The <code>ovalue</code> argument is ignored.</li>
</ul>
<H3><a name="timergettime">2.7.10 timer_gettime</A></H3>
<p>
@ -2367,6 +2413,11 @@ VxWorks provides the following comparable interface:
even if the timer was armed with absolute time. The <code>it_interval</code> member of
<code>value</code> will contain the reload value last set by <code>timer_settime()</code>.
</p>
<p>
Due to the asynchronous operation of this function, the time reported
by this function could be significantly more than that actual time
remaining on the timer at any time.
</p>
<p>
<b>Input Parameters:</b>
</p>
@ -2386,6 +2437,10 @@ VxWorks provides the following comparable interface:
The <code>timerid</code> argument does not correspond to an ID returned by
<code>timer_create()</code> but not yet deleted by <code>timer_delete()</code>.</li>
</ul>
<p>
<b>POSIX Compatibility:</b>
Comparable to the POSIX interface of the same name.
</p>
<H3><a name="timergetoverrun">2.7.11 timer_getoverrun</A></H3>
<p>
@ -2414,6 +2469,9 @@ VxWorks provides the following comparable interface:
for the timer, or if the <i>Realtime Signals Extension</i> is not supported, the
return value of <code>timer_getoverrun()</code> is unspecified.
</p>
<p>
<b>NOTE:</b> This interface is not currently implemented in NuttX.
</p>
<p>
<b>Input Parameters:</b>
</p>
@ -2431,6 +2489,13 @@ VxWorks provides the following comparable interface:
The <code>timerid</code> argument does not correspond to an ID returned by
<code>timer_create()</code> but not yet deleted by <code>timer_delete()</code>.</li>
</ul>
<p>
<b>POSIX Compatibility:</b>
Comparable to the POSIX interface of the same name. Differences from the full POSIX implementation include:
</p>
<ul>
<li>This interface is not currently implemented by NuttX.</li>
</ul>
<B>Assumptions/Limitations:</B>
<P>
@ -4925,6 +4990,7 @@ notify a task when a message is available on a queue.
<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>
<li><a href="#wdstart">wd_start</a></li>
</ul>