Module: xenomai-forge
Branch: next
Commit: 32baabc2b16d0637c630a48396ef3e2082117878
URL:    
http://git.xenomai.org/?p=xenomai-forge.git;a=commit;h=32baabc2b16d0637c630a48396ef3e2082117878

Author: Philippe Gerum <r...@xenomai.org>
Date:   Sun Sep 28 19:14:16 2014 +0200

doc: prebuild

---

 doc/asciidoc/MIGRATION.adoc                        |   31 ++-
 doc/prebuilt/html/MIGRATION/index.html             |   45 +++-
 doc/prebuilt/html/README.APPLICATIONS/index.html   |    2 +-
 doc/prebuilt/html/README.INSTALL/index.html        |    2 +-
 .../html/TROUBLESHOOTING.COBALT/index.html         |    2 +-
 .../html/TROUBLESHOOTING.MERCURY/index.html        |    2 +-
 doc/prebuilt/html/man1/autotune/index.html         |    9 +-
 doc/prebuilt/html/xeno3prm/clockobj_8h_source.html |  282 +++++++++-----------
 doc/prebuilt/html/xeno3prm/functions_t.html        |    3 -
 doc/prebuilt/html/xeno3prm/functions_vars_t.html   |    3 -
 .../html/xeno3prm/group__alchemy__cond.html        |    3 +-
 .../html/xeno3prm/group__alchemy__timer.html       |   12 +-
 .../html/xeno3prm/group__alchemy__timer.js         |    3 +-
 .../xeno3prm/include_2alchemy_2cond_8h_source.html |   16 +-
 .../include_2alchemy_2timer_8h_source.html         |  133 ++++-----
 ...6_2include_2asm_2xenomai_2thread_8h_source.html |   71 ++---
 doc/prebuilt/html/xeno3prm/navtree.js              |    2 +-
 doc/prebuilt/html/xeno3prm/navtreeindex1.js        |    2 +-
 doc/prebuilt/html/xeno3prm/navtreeindex7.js        |    4 +-
 doc/prebuilt/html/xeno3prm/navtreeindex8.js        |    1 -
 doc/prebuilt/html/xeno3prm/search/search.idx       |  Bin 1039124 -> 1038612 
bytes
 .../html/xeno3prm/structrt__timer__info.html       |   28 +-
 .../html/xeno3prm/structrt__timer__info.js         |    3 +-
 .../html/xeno3prm/sys_2cobalt_8h_source.html       |  122 ++++-----
 doc/prebuilt/html/xeno3prm/trank_8h_source.html    |    8 +-
 doc/prebuilt/html/xeno3prm/version_8h_source.html  |    4 +-
 doc/prebuilt/man/man1/autotune.1                   |    6 +-
 doc/prebuilt/man/man1/dohell.1                     |    4 +-
 doc/prebuilt/man/man1/xeno-test.1                  |    4 +-
 doc/prebuilt/pdf/MIGRATION.pdf                     |  Bin 211207 -> 212761 
bytes
 doc/prebuilt/pdf/README.APPLICATIONS.pdf           |  Bin 86761 -> 86761 bytes
 doc/prebuilt/pdf/README.INSTALL.pdf                |  Bin 175123 -> 175123 
bytes
 doc/prebuilt/pdf/TROUBLESHOOTING.COBALT.pdf        |  Bin 139089 -> 139089 
bytes
 doc/prebuilt/pdf/TROUBLESHOOTING.MERCURY.pdf       |  Bin 37723 -> 37723 bytes
 doc/prebuilt/pdf/xeno3prm.pdf                      |  Bin 2094629 -> 2091367 
bytes
 35 files changed, 401 insertions(+), 406 deletions(-)

diff --git a/doc/asciidoc/MIGRATION.adoc b/doc/asciidoc/MIGRATION.adoc
index ce1c416..8155bdc 100644
--- a/doc/asciidoc/MIGRATION.adoc
+++ b/doc/asciidoc/MIGRATION.adoc
@@ -1390,8 +1390,37 @@ receipts, as explained <<userirqtip,here>>.
 
 === Timing services ===
 
+- +rt_timer_tsc()+, +rt_timer_ns2tsc()+ and +rt_timer_tsc2ns()+ have
+  been removed from the API.
+
+.Rationale
+**********************************************************************
+Due to the accumulation of rounding errors, using raw timestamp values
+from the underlying clock source hardware for measuring long
+timespans may yield (increasingly) wrong results.
+    
+Either we guarantee stable computations with counts of nanoseconds
+from within the application, or with raw timestamps instead,
+regardless of the clock source frequency, but we can't provide such
+guarantee for both. From an API standpoint, the nanosecond unit is
+definitely the best option as the meaning won't vary between clock
+sources.
+    
+Avoiding the overhead of the tsc->ns conversion as a justification to
+use raw TSC counts does not fly anymore, as all architectures
+implement fast arithmetics for this operation over Cobalt, and
+Mercury's (virtual) timestamp counter is actually mapped over
+CLOCK_MONOTONIC.
+**********************************************************************
+
+[TIP]
+Alchemy users should measure timespans (or get timestamps) as counts
+of nanoseconds as returned by rt_timer_read() instead.
+
 - +rt_timer_inquire()+ has a void return type, instead of always
-  returning zero as previously.
+  returning zero as previously. As a consequence of the previously
+  documented change regarding TSC values, the current TSC count is no
+  more returned into the RT_TIMER_INFO structure.
 
 - +rt_timer_set_mode()+ is obsolete. The clock resolution has become a
 per-process setting, which should be set using the
diff --git a/doc/prebuilt/html/MIGRATION/index.html 
b/doc/prebuilt/html/MIGRATION/index.html
index 7596cfb..5719a63 100644
--- a/doc/prebuilt/html/MIGRATION/index.html
+++ b/doc/prebuilt/html/MIGRATION/index.html
@@ -2559,6 +2559,49 @@ The RT_IOREGION API is gone. I/O memory resources should
 <div class="ulist"><ul>
 <li>
 <p>
+<code>rt_timer_tsc()</code>, <code>rt_timer_ns2tsc()</code> and 
<code>rt_timer_tsc2ns()</code> have
+  been removed from the API.
+</p>
+</li>
+</ul></div>
+<div class="sidebarblock">
+<div class="content">
+<div class="title">Rationale</div>
+<div class="paragraph"><p>Due to the accumulation of rounding errors, using 
raw timestamp values
+from the underlying clock source hardware for measuring long
+timespans may yield (increasingly) wrong results.</p></div>
+<div class="paragraph"><p>Either we guarantee stable computations with counts 
of nanoseconds
+from within the application, or with raw timestamps instead,
+regardless of the clock source frequency, but we can&#8217;t provide such
+guarantee for both. From an API standpoint, the nanosecond unit is
+definitely the best option as the meaning won&#8217;t vary between clock
+sources.</p></div>
+<div class="paragraph"><p>Avoiding the overhead of the tsc&#8594;ns conversion 
as a justification to
+use raw TSC counts does not fly anymore, as all architectures
+implement fast arithmetics for this operation over Cobalt, and
+Mercury&#8217;s (virtual) timestamp counter is actually mapped over
+CLOCK_MONOTONIC.</p></div>
+</div></div>
+<div class="admonitionblock">
+<table><tr>
+<td class="icon">
+<img src="../asciidoc-icons/tip.png" alt="Tip" />
+</td>
+<td class="content">Alchemy users should measure timespans (or get timestamps) 
as counts
+of nanoseconds as returned by rt_timer_read() instead.</td>
+</tr></table>
+</div>
+<div class="ulist"><ul>
+<li>
+<p>
+<code>rt_timer_inquire()</code> has a void return type, instead of always
+  returning zero as previously. As a consequence of the previously
+  documented change regarding TSC values, the current TSC count is no
+  more returned into the RT_TIMER_INFO structure.
+</p>
+</li>
+<li>
+<p>
 <code>rt_timer_set_mode()</code> is obsolete. The clock resolution has become a
 per-process setting, which should be set using the
 <code>--alchemy-clock-resolution</code> switch on the command line.
@@ -3178,7 +3221,7 @@ CC = $(shell $(CONFIG_CMD) --cc)</code></pre>
 <div id="footnotes"><hr /></div>
 <div id="footer">
 <div id="footer-text">
-Last updated 2014-09-24 15:25:02 CEST
+Last updated 2014-09-28 19:07:22 CEST
 </div>
 </div>
 </body>
diff --git a/doc/prebuilt/html/README.APPLICATIONS/index.html 
b/doc/prebuilt/html/README.APPLICATIONS/index.html
index f357fc3..6641c36 100644
--- a/doc/prebuilt/html/README.APPLICATIONS/index.html
+++ b/doc/prebuilt/html/README.APPLICATIONS/index.html
@@ -997,7 +997,7 @@ package is called <em>valgrind-devel</em> on Fedora.</td>
 <div id="footnotes"><hr /></div>
 <div id="footer">
 <div id="footer-text">
-Last updated 2014-09-24 15:25:02 CEST
+Last updated 2014-09-28 19:07:22 CEST
 </div>
 </div>
 </body>
diff --git a/doc/prebuilt/html/README.INSTALL/index.html 
b/doc/prebuilt/html/README.INSTALL/index.html
index 48bf8ee..af780fa 100644
--- a/doc/prebuilt/html/README.INSTALL/index.html
+++ b/doc/prebuilt/html/README.INSTALL/index.html
@@ -1870,7 +1870,7 @@ Xenomai 3.x, you should have a look at
 <div id="footnotes"><hr /></div>
 <div id="footer">
 <div id="footer-text">
-Last updated 2014-09-24 15:25:02 CEST
+Last updated 2014-09-28 19:07:22 CEST
 </div>
 </div>
 </body>
diff --git a/doc/prebuilt/html/TROUBLESHOOTING.COBALT/index.html 
b/doc/prebuilt/html/TROUBLESHOOTING.COBALT/index.html
index 5e43814..0a52e66 100644
--- a/doc/prebuilt/html/TROUBLESHOOTING.COBALT/index.html
+++ b/doc/prebuilt/html/TROUBLESHOOTING.COBALT/index.html
@@ -1452,7 +1452,7 @@ rebuilding the kernel.</p></div>
 <div id="footnotes"><hr /></div>
 <div id="footer">
 <div id="footer-text">
-Last updated 2014-09-24 15:25:02 CEST
+Last updated 2014-09-28 19:07:22 CEST
 </div>
 </div>
 </body>
diff --git a/doc/prebuilt/html/TROUBLESHOOTING.MERCURY/index.html 
b/doc/prebuilt/html/TROUBLESHOOTING.MERCURY/index.html
index cc00197..9b129e6 100644
--- a/doc/prebuilt/html/TROUBLESHOOTING.MERCURY/index.html
+++ b/doc/prebuilt/html/TROUBLESHOOTING.MERCURY/index.html
@@ -763,7 +763,7 @@ specific
 <div id="footnotes"><hr /></div>
 <div id="footer">
 <div id="footer-text">
-Last updated 2014-09-24 15:25:02 CEST
+Last updated 2014-09-28 19:07:22 CEST
 </div>
 </div>
 </body>
diff --git a/doc/prebuilt/html/man1/autotune/index.html 
b/doc/prebuilt/html/man1/autotune/index.html
index dfd312e..f84129c 100644
--- a/doc/prebuilt/html/man1/autotune/index.html
+++ b/doc/prebuilt/html/man1/autotune/index.html
@@ -847,7 +847,7 @@ switching time.
 </p>
 </dd>
 <dt class="hdlist1">
-<strong>*--period &lt;ns&gt;</strong>
+<strong>--period &lt;ns&gt;</strong>
 </dt>
 <dd>
 <p>
@@ -856,7 +856,7 @@ estimation is performed by measuring the jitter between the 
ideal time
 at which a timer tick should be received, and the actual time it is
 eventually received, for a series of ticks. This value expresses the
 delay between two of these ticks. If too short, a lockup might
-occur. A commonly observed result is: the larger the delay, the higher
+occur. A commonly observed result is that the larger the delay, the higher
 the latency, due to CPU cache effects (i.e. the real-time code/data is
 more likely to get evicted from the cachelines as the non real-time
 activity can slip in, treading over a larger address space).
@@ -918,7 +918,8 @@ estimation. Although this delay may vary across hardware 
platforms,
 running for 30 seconds is common.</p></div>
 <div class="paragraph"><p>Once the gravity values are known for a particular 
hardware, one may
 write them to <code>/proc/xenomai/clock/coreclck</code> from some system init
-script to set up the Xenomai core clock accordingly, e.g:</p></div>
+script to set up the Xenomai core clock accordingly, instead of
+running the auto-tuner after each boot e.g:</p></div>
 <div class="listingblock">
 <div class="content">
 <pre><code>    /* change the user gravity to 1728 ns (default) */
@@ -940,7 +941,7 @@ script to set up the Xenomai core clock accordingly, 
e.g:</p></div>
 <div id="footnotes"><hr /></div>
 <div id="footer">
 <div id="footer-text">
-Last updated 2014-08-18 12:31:34 CEST
+Last updated 2014-09-26 11:38:16 CEST
 </div>
 </div>
 </body>
diff --git a/doc/prebuilt/html/xeno3prm/clockobj_8h_source.html 
b/doc/prebuilt/html/xeno3prm/clockobj_8h_source.html
index 0a61049..e67a84d 100644
--- a/doc/prebuilt/html/xeno3prm/clockobj_8h_source.html
+++ b/doc/prebuilt/html/xeno3prm/clockobj_8h_source.html
@@ -125,7 +125,7 @@ 
$(document).ready(function(){initNavTree('clockobj_8h_source.html','');});
 <div class="line"><a name="l00030"></a><span class="lineno">   
30</span>&#160;<span class="comment">/*</span></div>
 <div class="line"><a name="l00031"></a><span class="lineno">   
31</span>&#160;<span class="comment"> * We normally define the Copperplate 
clock as a monotonic,</span></div>
 <div class="line"><a name="l00032"></a><span class="lineno">   
32</span>&#160;<span class="comment"> * non-adjustable one, unless the 
threading library has restrictions</span></div>
-<div class="line"><a name="l00033"></a><span class="lineno">   
33</span>&#160;<span class="comment"> * to support this.</span></div>
+<div class="line"><a name="l00033"></a><span class="lineno">   
33</span>&#160;<span class="comment"> * to support this over 
Mercury.</span></div>
 <div class="line"><a name="l00034"></a><span class="lineno">   
34</span>&#160;<span class="comment"> *</span></div>
 <div class="line"><a name="l00035"></a><span class="lineno">   
35</span>&#160;<span class="comment"> * In the normal case, this means that 
ongoing delays and timeouts</span></div>
 <div class="line"><a name="l00036"></a><span class="lineno">   
36</span>&#160;<span class="comment"> * won&#39;t be affected when the host 
system date is changed. In the</span></div>
@@ -214,160 +214,144 @@ 
$(document).ready(function(){initNavTree('clockobj_8h_source.html','');});
 <div class="line"><a name="l00119"></a><span class="lineno">  
119</span>&#160;<span class="comment"> * equivalent to Copperplate TSC units, 
and Copperplate ticks are</span></div>
 <div class="line"><a name="l00120"></a><span class="lineno">  
120</span>&#160;<span class="comment"> * periods of the reference clockobj 
which Cobalt does not know about.</span></div>
 <div class="line"><a name="l00121"></a><span class="lineno">  
121</span>&#160;<span class="comment"> */</span></div>
-<div class="line"><a name="l00122"></a><span class="lineno">  
122</span>&#160;<span class="preprocessor">#ifdef 
CONFIG_XENO_COPPERPLATE_CLOCK_RESTRICTED</span></div>
-<div class="line"><a name="l00123"></a><span class="lineno">  
123</span>&#160;<span class="preprocessor"></span></div>
-<div class="line"><a name="l00124"></a><span class="lineno">  
124</span>&#160;<span class="keyword">static</span> <span 
class="keyword">inline</span> sticks_t clockobj_ns_to_tsc(sticks_t ns)</div>
-<div class="line"><a name="l00125"></a><span class="lineno">  
125</span>&#160;{</div>
-<div class="line"><a name="l00126"></a><span class="lineno">  126</span>&#160; 
       <span class="keywordflow">return</span> ns;</div>
-<div class="line"><a name="l00127"></a><span class="lineno">  
127</span>&#160;}</div>
-<div class="line"><a name="l00128"></a><span class="lineno">  
128</span>&#160;</div>
-<div class="line"><a name="l00129"></a><span class="lineno">  
129</span>&#160;<span class="keyword">static</span> <span 
class="keyword">inline</span> sticks_t clockobj_tsc_to_ns(sticks_t tsc)</div>
-<div class="line"><a name="l00130"></a><span class="lineno">  
130</span>&#160;{</div>
-<div class="line"><a name="l00131"></a><span class="lineno">  131</span>&#160; 
       <span class="keywordflow">return</span> tsc;</div>
-<div class="line"><a name="l00132"></a><span class="lineno">  
132</span>&#160;}</div>
-<div class="line"><a name="l00133"></a><span class="lineno">  
133</span>&#160;</div>
-<div class="line"><a name="l00134"></a><span class="lineno">  
134</span>&#160;<span class="preprocessor">#else </span><span 
class="comment">/* !CONFIG_XENO_COPPERPLATE_CLOCK_RESTRICTED */</span><span 
class="preprocessor"></span></div>
-<div class="line"><a name="l00135"></a><span class="lineno">  
135</span>&#160;<span class="preprocessor"></span></div>
-<div class="line"><a name="l00136"></a><span class="lineno">  
136</span>&#160;<span class="keyword">static</span> <span 
class="keyword">inline</span> sticks_t clockobj_ns_to_tsc(sticks_t ns)</div>
-<div class="line"><a name="l00137"></a><span class="lineno">  
137</span>&#160;{</div>
-<div class="line"><a name="l00138"></a><span class="lineno">  138</span>&#160; 
       <span class="keywordflow">return</span> cobalt_ns_to_ticks(ns);</div>
+<div class="line"><a name="l00122"></a><span class="lineno">  
122</span>&#160;<span class="keyword">static</span> <span 
class="keyword">inline</span> sticks_t clockobj_ns_to_tsc(sticks_t ns)</div>
+<div class="line"><a name="l00123"></a><span class="lineno">  
123</span>&#160;{</div>
+<div class="line"><a name="l00124"></a><span class="lineno">  124</span>&#160; 
       <span class="keywordflow">return</span> cobalt_ns_to_ticks(ns);</div>
+<div class="line"><a name="l00125"></a><span class="lineno">  
125</span>&#160;}</div>
+<div class="line"><a name="l00126"></a><span class="lineno">  
126</span>&#160;</div>
+<div class="line"><a name="l00127"></a><span class="lineno">  
127</span>&#160;<span class="keyword">static</span> <span 
class="keyword">inline</span> sticks_t clockobj_tsc_to_ns(sticks_t tsc)</div>
+<div class="line"><a name="l00128"></a><span class="lineno">  
128</span>&#160;{</div>
+<div class="line"><a name="l00129"></a><span class="lineno">  129</span>&#160; 
       <span class="keywordflow">return</span> cobalt_ticks_to_ns(tsc);</div>
+<div class="line"><a name="l00130"></a><span class="lineno">  
130</span>&#160;}</div>
+<div class="line"><a name="l00131"></a><span class="lineno">  
131</span>&#160;</div>
+<div class="line"><a name="l00132"></a><span class="lineno">  
132</span>&#160;<span class="keyword">static</span> <span 
class="keyword">inline</span></div>
+<div class="line"><a name="l00133"></a><span class="lineno">  
133</span>&#160;<span class="keywordtype">void</span> 
clockobj_ns_to_timespec(ticks_t ns, <span class="keyword">struct</span> 
timespec *ts)</div>
+<div class="line"><a name="l00134"></a><span class="lineno">  
134</span>&#160;{</div>
+<div class="line"><a name="l00135"></a><span class="lineno">  135</span>&#160; 
       <span class="keywordtype">unsigned</span> <span 
class="keywordtype">long</span> rem;</div>
+<div class="line"><a name="l00136"></a><span class="lineno">  
136</span>&#160;</div>
+<div class="line"><a name="l00137"></a><span class="lineno">  137</span>&#160; 
       ts-&gt;tv_sec = cobalt_divrem_billion(ns, &amp;rem);</div>
+<div class="line"><a name="l00138"></a><span class="lineno">  138</span>&#160; 
       ts-&gt;tv_nsec = rem;</div>
 <div class="line"><a name="l00139"></a><span class="lineno">  
139</span>&#160;}</div>
 <div class="line"><a name="l00140"></a><span class="lineno">  
140</span>&#160;</div>
-<div class="line"><a name="l00141"></a><span class="lineno">  
141</span>&#160;<span class="keyword">static</span> <span 
class="keyword">inline</span> sticks_t clockobj_tsc_to_ns(sticks_t tsc)</div>
-<div class="line"><a name="l00142"></a><span class="lineno">  
142</span>&#160;{</div>
-<div class="line"><a name="l00143"></a><span class="lineno">  143</span>&#160; 
       <span class="keywordflow">return</span> cobalt_ticks_to_ns(tsc);</div>
-<div class="line"><a name="l00144"></a><span class="lineno">  
144</span>&#160;}</div>
-<div class="line"><a name="l00145"></a><span class="lineno">  
145</span>&#160;</div>
-<div class="line"><a name="l00146"></a><span class="lineno">  
146</span>&#160;<span class="preprocessor">#endif </span><span 
class="comment">/* !CONFIG_XENO_COPPERPLATE_CLOCK_RESTRICTED */</span><span 
class="preprocessor"></span></div>
-<div class="line"><a name="l00147"></a><span class="lineno">  
147</span>&#160;<span class="preprocessor"></span></div>
-<div class="line"><a name="l00148"></a><span class="lineno">  
148</span>&#160;<span class="keyword">static</span> <span 
class="keyword">inline</span></div>
-<div class="line"><a name="l00149"></a><span class="lineno">  
149</span>&#160;<span class="keywordtype">void</span> 
clockobj_ns_to_timespec(ticks_t ns, <span class="keyword">struct</span> 
timespec *ts)</div>
-<div class="line"><a name="l00150"></a><span class="lineno">  
150</span>&#160;{</div>
-<div class="line"><a name="l00151"></a><span class="lineno">  151</span>&#160; 
       <span class="keywordtype">unsigned</span> <span 
class="keywordtype">long</span> rem;</div>
+<div class="line"><a name="l00141"></a><span class="lineno">  
141</span>&#160;<span class="preprocessor">#else </span><span 
class="comment">/* CONFIG_XENO_MERCURY */</span><span 
class="preprocessor"></span></div>
+<div class="line"><a name="l00142"></a><span class="lineno">  
142</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l00143"></a><span class="lineno">  
143</span>&#160;<span class="keyword">static</span> <span 
class="keyword">inline</span> sticks_t clockobj_ns_to_tsc(sticks_t ns)</div>
+<div class="line"><a name="l00144"></a><span class="lineno">  
144</span>&#160;{</div>
+<div class="line"><a name="l00145"></a><span class="lineno">  145</span>&#160; 
       <span class="keywordflow">return</span> ns;</div>
+<div class="line"><a name="l00146"></a><span class="lineno">  
146</span>&#160;}</div>
+<div class="line"><a name="l00147"></a><span class="lineno">  
147</span>&#160;</div>
+<div class="line"><a name="l00148"></a><span class="lineno">  
148</span>&#160;<span class="keyword">static</span> <span 
class="keyword">inline</span> sticks_t clockobj_tsc_to_ns(sticks_t tsc)</div>
+<div class="line"><a name="l00149"></a><span class="lineno">  
149</span>&#160;{</div>
+<div class="line"><a name="l00150"></a><span class="lineno">  150</span>&#160; 
       <span class="keywordflow">return</span> tsc;</div>
+<div class="line"><a name="l00151"></a><span class="lineno">  
151</span>&#160;}</div>
 <div class="line"><a name="l00152"></a><span class="lineno">  
152</span>&#160;</div>
-<div class="line"><a name="l00153"></a><span class="lineno">  153</span>&#160; 
       ts-&gt;tv_sec = cobalt_divrem_billion(ns, &amp;rem);</div>
-<div class="line"><a name="l00154"></a><span class="lineno">  154</span>&#160; 
       ts-&gt;tv_nsec = rem;</div>
-<div class="line"><a name="l00155"></a><span class="lineno">  
155</span>&#160;}</div>
-<div class="line"><a name="l00156"></a><span class="lineno">  
156</span>&#160;</div>
-<div class="line"><a name="l00157"></a><span class="lineno">  
157</span>&#160;<span class="preprocessor">#else </span><span 
class="comment">/* CONFIG_XENO_MERCURY */</span><span 
class="preprocessor"></span></div>
-<div class="line"><a name="l00158"></a><span class="lineno">  
158</span>&#160;<span class="preprocessor"></span></div>
-<div class="line"><a name="l00159"></a><span class="lineno">  
159</span>&#160;<span class="keyword">static</span> <span 
class="keyword">inline</span> sticks_t clockobj_ns_to_tsc(sticks_t ns)</div>
-<div class="line"><a name="l00160"></a><span class="lineno">  
160</span>&#160;{</div>
-<div class="line"><a name="l00161"></a><span class="lineno">  161</span>&#160; 
       <span class="keywordflow">return</span> ns;</div>
-<div class="line"><a name="l00162"></a><span class="lineno">  
162</span>&#160;}</div>
-<div class="line"><a name="l00163"></a><span class="lineno">  
163</span>&#160;</div>
-<div class="line"><a name="l00164"></a><span class="lineno">  
164</span>&#160;<span class="keyword">static</span> <span 
class="keyword">inline</span> sticks_t clockobj_tsc_to_ns(sticks_t tsc)</div>
-<div class="line"><a name="l00165"></a><span class="lineno">  
165</span>&#160;{</div>
-<div class="line"><a name="l00166"></a><span class="lineno">  166</span>&#160; 
       <span class="keywordflow">return</span> tsc;</div>
-<div class="line"><a name="l00167"></a><span class="lineno">  
167</span>&#160;}</div>
-<div class="line"><a name="l00168"></a><span class="lineno">  
168</span>&#160;</div>
-<div class="line"><a name="l00169"></a><span class="lineno">  
169</span>&#160;<span class="keyword">static</span> <span 
class="keyword">inline</span></div>
-<div class="line"><a name="l00170"></a><span class="lineno">  
170</span>&#160;<span class="keywordtype">void</span> 
clockobj_ns_to_timespec(ticks_t ns, <span class="keyword">struct</span> 
timespec *ts)</div>
-<div class="line"><a name="l00171"></a><span class="lineno">  
171</span>&#160;{</div>
-<div class="line"><a name="l00172"></a><span class="lineno">  172</span>&#160; 
       ts-&gt;tv_sec = ns / 1000000000ULL;</div>
-<div class="line"><a name="l00173"></a><span class="lineno">  173</span>&#160; 
       ts-&gt;tv_nsec = ns - (ts-&gt;tv_sec * 1000000000ULL);</div>
+<div class="line"><a name="l00153"></a><span class="lineno">  
153</span>&#160;<span class="keyword">static</span> <span 
class="keyword">inline</span></div>
+<div class="line"><a name="l00154"></a><span class="lineno">  
154</span>&#160;<span class="keywordtype">void</span> 
clockobj_ns_to_timespec(ticks_t ns, <span class="keyword">struct</span> 
timespec *ts)</div>
+<div class="line"><a name="l00155"></a><span class="lineno">  
155</span>&#160;{</div>
+<div class="line"><a name="l00156"></a><span class="lineno">  156</span>&#160; 
       ts-&gt;tv_sec = ns / 1000000000ULL;</div>
+<div class="line"><a name="l00157"></a><span class="lineno">  157</span>&#160; 
       ts-&gt;tv_nsec = ns - (ts-&gt;tv_sec * 1000000000ULL);</div>
+<div class="line"><a name="l00158"></a><span class="lineno">  
158</span>&#160;}</div>
+<div class="line"><a name="l00159"></a><span class="lineno">  
159</span>&#160;</div>
+<div class="line"><a name="l00160"></a><span class="lineno">  
160</span>&#160;<span class="preprocessor">#endif </span><span 
class="comment">/* CONFIG_XENO_MERCURY */</span><span 
class="preprocessor"></span></div>
+<div class="line"><a name="l00161"></a><span class="lineno">  
161</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l00162"></a><span class="lineno">  
162</span>&#160;<span class="preprocessor">#ifdef 
CONFIG_XENO_LORES_CLOCK_DISABLED</span></div>
+<div class="line"><a name="l00163"></a><span class="lineno">  
163</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l00164"></a><span class="lineno">  
164</span>&#160;<span class="keyword">static</span> <span 
class="keyword">inline</span></div>
+<div class="line"><a name="l00165"></a><span class="lineno">  
165</span>&#160;<span class="keywordtype">void</span> 
__clockobj_ticks_to_timeout(<span class="keyword">struct</span> clockobj 
*clkobj,</div>
+<div class="line"><a name="l00166"></a><span class="lineno">  166</span>&#160; 
                                clockid_t clk_id,</div>
+<div class="line"><a name="l00167"></a><span class="lineno">  167</span>&#160; 
                                ticks_t ticks, <span 
class="keyword">struct</span> timespec *ts)</div>
+<div class="line"><a name="l00168"></a><span class="lineno">  
168</span>&#160;{</div>
+<div class="line"><a name="l00169"></a><span class="lineno">  169</span>&#160; 
       <span class="keyword">struct </span>timespec now, delta;</div>
+<div class="line"><a name="l00170"></a><span class="lineno">  
170</span>&#160;</div>
+<div class="line"><a name="l00171"></a><span class="lineno">  171</span>&#160; 
       __RT(<a class="code" 
href="group__cobalt__api__time.html#ga10b73e75d375e5c244e32ea46be775bf">clock_gettime</a>(clk_id,
 &amp;now));</div>
+<div class="line"><a name="l00172"></a><span class="lineno">  172</span>&#160; 
       clockobj_ns_to_timespec(ticks, &amp;delta);</div>
+<div class="line"><a name="l00173"></a><span class="lineno">  173</span>&#160; 
       timespec_add(ts, &amp;now, &amp;delta);</div>
 <div class="line"><a name="l00174"></a><span class="lineno">  
174</span>&#160;}</div>
 <div class="line"><a name="l00175"></a><span class="lineno">  
175</span>&#160;</div>
-<div class="line"><a name="l00176"></a><span class="lineno">  
176</span>&#160;<span class="preprocessor">#endif </span><span 
class="comment">/* CONFIG_XENO_MERCURY */</span><span 
class="preprocessor"></span></div>
-<div class="line"><a name="l00177"></a><span class="lineno">  
177</span>&#160;<span class="preprocessor"></span></div>
-<div class="line"><a name="l00178"></a><span class="lineno">  
178</span>&#160;<span class="preprocessor">#ifdef 
CONFIG_XENO_LORES_CLOCK_DISABLED</span></div>
-<div class="line"><a name="l00179"></a><span class="lineno">  
179</span>&#160;<span class="preprocessor"></span></div>
-<div class="line"><a name="l00180"></a><span class="lineno">  
180</span>&#160;<span class="keyword">static</span> <span 
class="keyword">inline</span></div>
-<div class="line"><a name="l00181"></a><span class="lineno">  
181</span>&#160;<span class="keywordtype">void</span> 
__clockobj_ticks_to_timeout(<span class="keyword">struct</span> clockobj 
*clkobj,</div>
-<div class="line"><a name="l00182"></a><span class="lineno">  182</span>&#160; 
                                clockid_t clk_id,</div>
-<div class="line"><a name="l00183"></a><span class="lineno">  183</span>&#160; 
                                ticks_t ticks, <span 
class="keyword">struct</span> timespec *ts)</div>
-<div class="line"><a name="l00184"></a><span class="lineno">  
184</span>&#160;{</div>
-<div class="line"><a name="l00185"></a><span class="lineno">  185</span>&#160; 
       <span class="keyword">struct </span>timespec now, delta;</div>
-<div class="line"><a name="l00186"></a><span class="lineno">  
186</span>&#160;</div>
-<div class="line"><a name="l00187"></a><span class="lineno">  187</span>&#160; 
       __RT(<a class="code" 
href="group__cobalt__api__time.html#ga10b73e75d375e5c244e32ea46be775bf">clock_gettime</a>(clk_id,
 &amp;now));</div>
-<div class="line"><a name="l00188"></a><span class="lineno">  188</span>&#160; 
       clockobj_ns_to_timespec(ticks, &amp;delta);</div>
-<div class="line"><a name="l00189"></a><span class="lineno">  189</span>&#160; 
       timespec_add(ts, &amp;now, &amp;delta);</div>
-<div class="line"><a name="l00190"></a><span class="lineno">  
190</span>&#160;}</div>
-<div class="line"><a name="l00191"></a><span class="lineno">  
191</span>&#160;</div>
-<div class="line"><a name="l00192"></a><span class="lineno">  
192</span>&#160;<span class="keyword">static</span> <span 
class="keyword">inline</span></div>
-<div class="line"><a name="l00193"></a><span class="lineno">  
193</span>&#160;<span class="keywordtype">void</span> 
__clockobj_ticks_to_timespec(<span class="keyword">struct</span> clockobj 
*clkobj,</div>
-<div class="line"><a name="l00194"></a><span class="lineno">  194</span>&#160; 
                                 ticks_t ticks, <span 
class="keyword">struct</span> timespec *ts)</div>
-<div class="line"><a name="l00195"></a><span class="lineno">  
195</span>&#160;{</div>
-<div class="line"><a name="l00196"></a><span class="lineno">  196</span>&#160; 
       clockobj_ns_to_timespec(ticks, ts);</div>
-<div class="line"><a name="l00197"></a><span class="lineno">  
197</span>&#160;}</div>
-<div class="line"><a name="l00198"></a><span class="lineno">  
198</span>&#160;</div>
-<div class="line"><a name="l00199"></a><span class="lineno">  
199</span>&#160;<span class="keyword">static</span> <span 
class="keyword">inline</span></div>
-<div class="line"><a name="l00200"></a><span class="lineno">  
200</span>&#160;<span class="keywordtype">void</span> 
clockobj_ticks_to_timespec(<span class="keyword">struct</span> clockobj 
*clkobj,</div>
-<div class="line"><a name="l00201"></a><span class="lineno">  201</span>&#160; 
                               ticks_t ticks, <span 
class="keyword">struct</span> timespec *ts)</div>
-<div class="line"><a name="l00202"></a><span class="lineno">  
202</span>&#160;{</div>
-<div class="line"><a name="l00203"></a><span class="lineno">  203</span>&#160; 
       __clockobj_ticks_to_timespec(clkobj, ticks, ts);</div>
-<div class="line"><a name="l00204"></a><span class="lineno">  
204</span>&#160;}</div>
-<div class="line"><a name="l00205"></a><span class="lineno">  
205</span>&#160;</div>
-<div class="line"><a name="l00206"></a><span class="lineno">  
206</span>&#160;<span class="keyword">static</span> <span 
class="keyword">inline</span></div>
-<div class="line"><a name="l00207"></a><span class="lineno">  
207</span>&#160;<span class="keywordtype">unsigned</span> <span 
class="keywordtype">int</span> clockobj_get_resolution(<span 
class="keyword">struct</span> clockobj *clkobj)</div>
-<div class="line"><a name="l00208"></a><span class="lineno">  
208</span>&#160;{</div>
-<div class="line"><a name="l00209"></a><span class="lineno">  209</span>&#160; 
       <span class="keywordflow">return</span> 1;</div>
-<div class="line"><a name="l00210"></a><span class="lineno">  
210</span>&#160;}</div>
-<div class="line"><a name="l00211"></a><span class="lineno">  
211</span>&#160;</div>
-<div class="line"><a name="l00212"></a><span class="lineno">  
212</span>&#160;<span class="keyword">static</span> <span 
class="keyword">inline</span></div>
-<div class="line"><a name="l00213"></a><span class="lineno">  
213</span>&#160;<span class="keywordtype">unsigned</span> <span 
class="keywordtype">int</span> clockobj_get_frequency(<span 
class="keyword">struct</span> clockobj *clkobj)</div>
-<div class="line"><a name="l00214"></a><span class="lineno">  
214</span>&#160;{</div>
-<div class="line"><a name="l00215"></a><span class="lineno">  215</span>&#160; 
       <span class="keywordflow">return</span> 1000000000;</div>
-<div class="line"><a name="l00216"></a><span class="lineno">  
216</span>&#160;}</div>
-<div class="line"><a name="l00217"></a><span class="lineno">  
217</span>&#160;</div>
-<div class="line"><a name="l00218"></a><span class="lineno">  
218</span>&#160;<span class="keyword">static</span> <span 
class="keyword">inline</span> sticks_t clockobj_ns_to_ticks(<span 
class="keyword">struct</span> clockobj *clkobj,</div>
-<div class="line"><a name="l00219"></a><span class="lineno">  219</span>&#160; 
                                           sticks_t ns)</div>
-<div class="line"><a name="l00220"></a><span class="lineno">  
220</span>&#160;{</div>
-<div class="line"><a name="l00221"></a><span class="lineno">  221</span>&#160; 
       <span class="keywordflow">return</span> ns;</div>
-<div class="line"><a name="l00222"></a><span class="lineno">  
222</span>&#160;}</div>
-<div class="line"><a name="l00223"></a><span class="lineno">  
223</span>&#160;</div>
-<div class="line"><a name="l00224"></a><span class="lineno">  
224</span>&#160;<span class="keyword">static</span> <span 
class="keyword">inline</span> sticks_t clockobj_ticks_to_ns(<span 
class="keyword">struct</span> clockobj *clkobj,</div>
-<div class="line"><a name="l00225"></a><span class="lineno">  225</span>&#160; 
                                           sticks_t ticks)</div>
-<div class="line"><a name="l00226"></a><span class="lineno">  
226</span>&#160;{</div>
-<div class="line"><a name="l00227"></a><span class="lineno">  227</span>&#160; 
       <span class="keywordflow">return</span> ticks;</div>
-<div class="line"><a name="l00228"></a><span class="lineno">  
228</span>&#160;}</div>
-<div class="line"><a name="l00229"></a><span class="lineno">  
229</span>&#160;</div>
-<div class="line"><a name="l00230"></a><span class="lineno">  
230</span>&#160;<span class="preprocessor">#else </span><span 
class="comment">/* !CONFIG_XENO_LORES_CLOCK_DISABLED */</span><span 
class="preprocessor"></span></div>
-<div class="line"><a name="l00231"></a><span class="lineno">  
231</span>&#160;<span class="preprocessor"></span></div>
-<div class="line"><a name="l00232"></a><span class="lineno">  
232</span>&#160;<span class="keywordtype">void</span> 
__clockobj_ticks_to_timeout(<span class="keyword">struct</span> clockobj 
*clkobj, clockid_t clk_id,</div>
-<div class="line"><a name="l00233"></a><span class="lineno">  233</span>&#160; 
                                ticks_t ticks, <span 
class="keyword">struct</span> timespec *ts);</div>
+<div class="line"><a name="l00176"></a><span class="lineno">  
176</span>&#160;<span class="keyword">static</span> <span 
class="keyword">inline</span></div>
+<div class="line"><a name="l00177"></a><span class="lineno">  
177</span>&#160;<span class="keywordtype">void</span> 
__clockobj_ticks_to_timespec(<span class="keyword">struct</span> clockobj 
*clkobj,</div>
+<div class="line"><a name="l00178"></a><span class="lineno">  178</span>&#160; 
                                 ticks_t ticks, <span 
class="keyword">struct</span> timespec *ts)</div>
+<div class="line"><a name="l00179"></a><span class="lineno">  
179</span>&#160;{</div>
+<div class="line"><a name="l00180"></a><span class="lineno">  180</span>&#160; 
       clockobj_ns_to_timespec(ticks, ts);</div>
+<div class="line"><a name="l00181"></a><span class="lineno">  
181</span>&#160;}</div>
+<div class="line"><a name="l00182"></a><span class="lineno">  
182</span>&#160;</div>
+<div class="line"><a name="l00183"></a><span class="lineno">  
183</span>&#160;<span class="keyword">static</span> <span 
class="keyword">inline</span></div>
+<div class="line"><a name="l00184"></a><span class="lineno">  
184</span>&#160;<span class="keywordtype">void</span> 
clockobj_ticks_to_timespec(<span class="keyword">struct</span> clockobj 
*clkobj,</div>
+<div class="line"><a name="l00185"></a><span class="lineno">  185</span>&#160; 
                               ticks_t ticks, <span 
class="keyword">struct</span> timespec *ts)</div>
+<div class="line"><a name="l00186"></a><span class="lineno">  
186</span>&#160;{</div>
+<div class="line"><a name="l00187"></a><span class="lineno">  187</span>&#160; 
       __clockobj_ticks_to_timespec(clkobj, ticks, ts);</div>
+<div class="line"><a name="l00188"></a><span class="lineno">  
188</span>&#160;}</div>
+<div class="line"><a name="l00189"></a><span class="lineno">  
189</span>&#160;</div>
+<div class="line"><a name="l00190"></a><span class="lineno">  
190</span>&#160;<span class="keyword">static</span> <span 
class="keyword">inline</span></div>
+<div class="line"><a name="l00191"></a><span class="lineno">  
191</span>&#160;<span class="keywordtype">unsigned</span> <span 
class="keywordtype">int</span> clockobj_get_resolution(<span 
class="keyword">struct</span> clockobj *clkobj)</div>
+<div class="line"><a name="l00192"></a><span class="lineno">  
192</span>&#160;{</div>
+<div class="line"><a name="l00193"></a><span class="lineno">  193</span>&#160; 
       <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a name="l00194"></a><span class="lineno">  
194</span>&#160;}</div>
+<div class="line"><a name="l00195"></a><span class="lineno">  
195</span>&#160;</div>
+<div class="line"><a name="l00196"></a><span class="lineno">  
196</span>&#160;<span class="keyword">static</span> <span 
class="keyword">inline</span></div>
+<div class="line"><a name="l00197"></a><span class="lineno">  
197</span>&#160;<span class="keywordtype">unsigned</span> <span 
class="keywordtype">int</span> clockobj_get_frequency(<span 
class="keyword">struct</span> clockobj *clkobj)</div>
+<div class="line"><a name="l00198"></a><span class="lineno">  
198</span>&#160;{</div>
+<div class="line"><a name="l00199"></a><span class="lineno">  199</span>&#160; 
       <span class="keywordflow">return</span> 1000000000;</div>
+<div class="line"><a name="l00200"></a><span class="lineno">  
200</span>&#160;}</div>
+<div class="line"><a name="l00201"></a><span class="lineno">  
201</span>&#160;</div>
+<div class="line"><a name="l00202"></a><span class="lineno">  
202</span>&#160;<span class="keyword">static</span> <span 
class="keyword">inline</span> sticks_t clockobj_ns_to_ticks(<span 
class="keyword">struct</span> clockobj *clkobj,</div>
+<div class="line"><a name="l00203"></a><span class="lineno">  203</span>&#160; 
                                           sticks_t ns)</div>
+<div class="line"><a name="l00204"></a><span class="lineno">  
204</span>&#160;{</div>
+<div class="line"><a name="l00205"></a><span class="lineno">  205</span>&#160; 
       <span class="keywordflow">return</span> ns;</div>
+<div class="line"><a name="l00206"></a><span class="lineno">  
206</span>&#160;}</div>
+<div class="line"><a name="l00207"></a><span class="lineno">  
207</span>&#160;</div>
+<div class="line"><a name="l00208"></a><span class="lineno">  
208</span>&#160;<span class="keyword">static</span> <span 
class="keyword">inline</span> sticks_t clockobj_ticks_to_ns(<span 
class="keyword">struct</span> clockobj *clkobj,</div>
+<div class="line"><a name="l00209"></a><span class="lineno">  209</span>&#160; 
                                           sticks_t ticks)</div>
+<div class="line"><a name="l00210"></a><span class="lineno">  
210</span>&#160;{</div>
+<div class="line"><a name="l00211"></a><span class="lineno">  211</span>&#160; 
       <span class="keywordflow">return</span> ticks;</div>
+<div class="line"><a name="l00212"></a><span class="lineno">  
212</span>&#160;}</div>
+<div class="line"><a name="l00213"></a><span class="lineno">  
213</span>&#160;</div>
+<div class="line"><a name="l00214"></a><span class="lineno">  
214</span>&#160;<span class="preprocessor">#else </span><span 
class="comment">/* !CONFIG_XENO_LORES_CLOCK_DISABLED */</span><span 
class="preprocessor"></span></div>
+<div class="line"><a name="l00215"></a><span class="lineno">  
215</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l00216"></a><span class="lineno">  
216</span>&#160;<span class="keywordtype">void</span> 
__clockobj_ticks_to_timeout(<span class="keyword">struct</span> clockobj 
*clkobj, clockid_t clk_id,</div>
+<div class="line"><a name="l00217"></a><span class="lineno">  217</span>&#160; 
                                ticks_t ticks, <span 
class="keyword">struct</span> timespec *ts);</div>
+<div class="line"><a name="l00218"></a><span class="lineno">  
218</span>&#160;</div>
+<div class="line"><a name="l00219"></a><span class="lineno">  
219</span>&#160;<span class="keywordtype">void</span> 
__clockobj_ticks_to_timespec(<span class="keyword">struct</span> clockobj 
*clkobj,</div>
+<div class="line"><a name="l00220"></a><span class="lineno">  220</span>&#160; 
                                 ticks_t ticks, <span 
class="keyword">struct</span> timespec *ts);</div>
+<div class="line"><a name="l00221"></a><span class="lineno">  
221</span>&#160;</div>
+<div class="line"><a name="l00222"></a><span class="lineno">  
222</span>&#160;<span class="keyword">static</span> <span 
class="keyword">inline</span></div>
+<div class="line"><a name="l00223"></a><span class="lineno">  
223</span>&#160;<span class="keywordtype">void</span> 
clockobj_ticks_to_timespec(<span class="keyword">struct</span> clockobj 
*clkobj,</div>
+<div class="line"><a name="l00224"></a><span class="lineno">  224</span>&#160; 
                               ticks_t ticks, <span 
class="keyword">struct</span> timespec *ts)</div>
+<div class="line"><a name="l00225"></a><span class="lineno">  
225</span>&#160;{</div>
+<div class="line"><a name="l00226"></a><span class="lineno">  226</span>&#160; 
       __clockobj_ticks_to_timespec(clkobj, ticks, ts);</div>
+<div class="line"><a name="l00227"></a><span class="lineno">  
227</span>&#160;}</div>
+<div class="line"><a name="l00228"></a><span class="lineno">  
228</span>&#160;</div>
+<div class="line"><a name="l00229"></a><span class="lineno">  
229</span>&#160;<span class="keyword">static</span> <span 
class="keyword">inline</span></div>
+<div class="line"><a name="l00230"></a><span class="lineno">  
230</span>&#160;<span class="keywordtype">unsigned</span> <span 
class="keywordtype">int</span> clockobj_get_resolution(<span 
class="keyword">struct</span> clockobj *clkobj)</div>
+<div class="line"><a name="l00231"></a><span class="lineno">  
231</span>&#160;{</div>
+<div class="line"><a name="l00232"></a><span class="lineno">  232</span>&#160; 
       <span class="keywordflow">return</span> clkobj-&gt;resolution;</div>
+<div class="line"><a name="l00233"></a><span class="lineno">  
233</span>&#160;}</div>
 <div class="line"><a name="l00234"></a><span class="lineno">  
234</span>&#160;</div>
-<div class="line"><a name="l00235"></a><span class="lineno">  
235</span>&#160;<span class="keywordtype">void</span> 
__clockobj_ticks_to_timespec(<span class="keyword">struct</span> clockobj 
*clkobj,</div>
-<div class="line"><a name="l00236"></a><span class="lineno">  236</span>&#160; 
                                 ticks_t ticks, <span 
class="keyword">struct</span> timespec *ts);</div>
-<div class="line"><a name="l00237"></a><span class="lineno">  
237</span>&#160;</div>
-<div class="line"><a name="l00238"></a><span class="lineno">  
238</span>&#160;<span class="keyword">static</span> <span 
class="keyword">inline</span></div>
-<div class="line"><a name="l00239"></a><span class="lineno">  
239</span>&#160;<span class="keywordtype">void</span> 
clockobj_ticks_to_timespec(<span class="keyword">struct</span> clockobj 
*clkobj,</div>
-<div class="line"><a name="l00240"></a><span class="lineno">  240</span>&#160; 
                               ticks_t ticks, <span 
class="keyword">struct</span> timespec *ts)</div>
-<div class="line"><a name="l00241"></a><span class="lineno">  
241</span>&#160;{</div>
-<div class="line"><a name="l00242"></a><span class="lineno">  242</span>&#160; 
       __clockobj_ticks_to_timespec(clkobj, ticks, ts);</div>
-<div class="line"><a name="l00243"></a><span class="lineno">  
243</span>&#160;}</div>
-<div class="line"><a name="l00244"></a><span class="lineno">  
244</span>&#160;</div>
-<div class="line"><a name="l00245"></a><span class="lineno">  
245</span>&#160;<span class="keyword">static</span> <span 
class="keyword">inline</span></div>
-<div class="line"><a name="l00246"></a><span class="lineno">  
246</span>&#160;<span class="keywordtype">unsigned</span> <span 
class="keywordtype">int</span> clockobj_get_resolution(<span 
class="keyword">struct</span> clockobj *clkobj)</div>
-<div class="line"><a name="l00247"></a><span class="lineno">  
247</span>&#160;{</div>
-<div class="line"><a name="l00248"></a><span class="lineno">  248</span>&#160; 
       <span class="keywordflow">return</span> clkobj-&gt;resolution;</div>
-<div class="line"><a name="l00249"></a><span class="lineno">  
249</span>&#160;}</div>
-<div class="line"><a name="l00250"></a><span class="lineno">  
250</span>&#160;</div>
-<div class="line"><a name="l00251"></a><span class="lineno">  
251</span>&#160;<span class="keyword">static</span> <span 
class="keyword">inline</span></div>
-<div class="line"><a name="l00252"></a><span class="lineno">  
252</span>&#160;<span class="keywordtype">unsigned</span> <span 
class="keywordtype">int</span> clockobj_get_frequency(<span 
class="keyword">struct</span> clockobj *clkobj)</div>
-<div class="line"><a name="l00253"></a><span class="lineno">  
253</span>&#160;{</div>
-<div class="line"><a name="l00254"></a><span class="lineno">  254</span>&#160; 
       <span class="keywordflow">return</span> clkobj-&gt;frequency;</div>
-<div class="line"><a name="l00255"></a><span class="lineno">  
255</span>&#160;}</div>
-<div class="line"><a name="l00256"></a><span class="lineno">  
256</span>&#160;</div>
-<div class="line"><a name="l00257"></a><span class="lineno">  
257</span>&#160;sticks_t clockobj_ns_to_ticks(<span 
class="keyword">struct</span> clockobj *clkobj,</div>
-<div class="line"><a name="l00258"></a><span class="lineno">  258</span>&#160; 
                             sticks_t ns);</div>
-<div class="line"><a name="l00259"></a><span class="lineno">  
259</span>&#160;</div>
-<div class="line"><a name="l00260"></a><span class="lineno">  
260</span>&#160;<span class="keyword">static</span> <span 
class="keyword">inline</span> sticks_t clockobj_ticks_to_ns(<span 
class="keyword">struct</span> clockobj *clkobj,</div>
-<div class="line"><a name="l00261"></a><span class="lineno">  261</span>&#160; 
                                           sticks_t ticks)</div>
-<div class="line"><a name="l00262"></a><span class="lineno">  
262</span>&#160;{</div>
-<div class="line"><a name="l00263"></a><span class="lineno">  263</span>&#160; 
       <span class="keywordflow">return</span> ticks * 
clkobj-&gt;resolution;</div>
-<div class="line"><a name="l00264"></a><span class="lineno">  
264</span>&#160;}</div>
-<div class="line"><a name="l00265"></a><span class="lineno">  
265</span>&#160;</div>
-<div class="line"><a name="l00266"></a><span class="lineno">  
266</span>&#160;<span class="preprocessor">#endif </span><span 
class="comment">/* !CONFIG_XENO_LORES_CLOCK_DISABLED */</span><span 
class="preprocessor"></span></div>
-<div class="line"><a name="l00267"></a><span class="lineno">  
267</span>&#160;<span class="preprocessor"></span></div>
-<div class="line"><a name="l00268"></a><span class="lineno">  
268</span>&#160;<span class="keyword">static</span> <span 
class="keyword">inline</span></div>
-<div class="line"><a name="l00269"></a><span class="lineno">  
269</span>&#160;<span class="keywordtype">void</span> 
clockobj_ticks_to_timeout(<span class="keyword">struct</span> clockobj 
*clkobj,</div>
-<div class="line"><a name="l00270"></a><span class="lineno">  270</span>&#160; 
                              ticks_t ticks, <span 
class="keyword">struct</span> timespec *ts)</div>
-<div class="line"><a name="l00271"></a><span class="lineno">  
271</span>&#160;{</div>
-<div class="line"><a name="l00272"></a><span class="lineno">  272</span>&#160; 
       __clockobj_ticks_to_timeout(clkobj, CLOCK_COPPERPLATE, ticks, ts);</div>
-<div class="line"><a name="l00273"></a><span class="lineno">  
273</span>&#160;}</div>
-<div class="line"><a name="l00274"></a><span class="lineno">  
274</span>&#160;</div>
-<div class="line"><a name="l00275"></a><span class="lineno">  
275</span>&#160;<span class="preprocessor">#endif </span><span 
class="comment">/* _COPPERPLATE_CLOCKOBJ_H */</span><span 
class="preprocessor"></span></div>
+<div class="line"><a name="l00235"></a><span class="lineno">  
235</span>&#160;<span class="keyword">static</span> <span 
class="keyword">inline</span></div>
+<div class="line"><a name="l00236"></a><span class="lineno">  
236</span>&#160;<span class="keywordtype">unsigned</span> <span 
class="keywordtype">int</span> clockobj_get_frequency(<span 
class="keyword">struct</span> clockobj *clkobj)</div>
+<div class="line"><a name="l00237"></a><span class="lineno">  
237</span>&#160;{</div>
+<div class="line"><a name="l00238"></a><span class="lineno">  238</span>&#160; 
       <span class="keywordflow">return</span> clkobj-&gt;frequency;</div>
+<div class="line"><a name="l00239"></a><span class="lineno">  
239</span>&#160;}</div>
+<div class="line"><a name="l00240"></a><span class="lineno">  
240</span>&#160;</div>
+<div class="line"><a name="l00241"></a><span class="lineno">  
241</span>&#160;sticks_t clockobj_ns_to_ticks(<span 
class="keyword">struct</span> clockobj *clkobj,</div>
+<div class="line"><a name="l00242"></a><span class="lineno">  242</span>&#160; 
                             sticks_t ns);</div>
+<div class="line"><a name="l00243"></a><span class="lineno">  
243</span>&#160;</div>
+<div class="line"><a name="l00244"></a><span class="lineno">  
244</span>&#160;<span class="keyword">static</span> <span 
class="keyword">inline</span> sticks_t clockobj_ticks_to_ns(<span 
class="keyword">struct</span> clockobj *clkobj,</div>
+<div class="line"><a name="l00245"></a><span class="lineno">  245</span>&#160; 
                                           sticks_t ticks)</div>
+<div class="line"><a name="l00246"></a><span class="lineno">  
246</span>&#160;{</div>
+<div class="line"><a name="l00247"></a><span class="lineno">  247</span>&#160; 
       <span class="keywordflow">return</span> ticks * 
clkobj-&gt;resolution;</div>
+<div class="line"><a name="l00248"></a><span class="lineno">  
248</span>&#160;}</div>
+<div class="line"><a name="l00249"></a><span class="lineno">  
249</span>&#160;</div>
+<div class="line"><a name="l00250"></a><span class="lineno">  
250</span>&#160;<span class="preprocessor">#endif </span><span 
class="comment">/* !CONFIG_XENO_LORES_CLOCK_DISABLED */</span><span 
class="preprocessor"></span></div>
+<div class="line"><a name="l00251"></a><span class="lineno">  
251</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l00252"></a><span class="lineno">  
252</span>&#160;<span class="keyword">static</span> <span 
class="keyword">inline</span></div>
+<div class="line"><a name="l00253"></a><span class="lineno">  
253</span>&#160;<span class="keywordtype">void</span> 
clockobj_ticks_to_timeout(<span class="keyword">struct</span> clockobj 
*clkobj,</div>
+<div class="line"><a name="l00254"></a><span class="lineno">  254</span>&#160; 
                              ticks_t ticks, <span 
class="keyword">struct</span> timespec *ts)</div>
+<div class="line"><a name="l00255"></a><span class="lineno">  
255</span>&#160;{</div>
+<div class="line"><a name="l00256"></a><span class="lineno">  256</span>&#160; 
       __clockobj_ticks_to_timeout(clkobj, CLOCK_COPPERPLATE, ticks, ts);</div>
+<div class="line"><a name="l00257"></a><span class="lineno">  
257</span>&#160;}</div>
+<div class="line"><a name="l00258"></a><span class="lineno">  
258</span>&#160;</div>
+<div class="line"><a name="l00259"></a><span class="lineno">  
259</span>&#160;<span class="preprocessor">#endif </span><span 
class="comment">/* _COPPERPLATE_CLOCKOBJ_H */</span><span 
class="preprocessor"></span></div>
 <div class="ttc" 
id="group__cobalt__api__time_html_ga10b73e75d375e5c244e32ea46be775bf"><div 
class="ttname"><a 
href="group__cobalt__api__time.html#ga10b73e75d375e5c244e32ea46be775bf">clock_gettime</a></div><div
 class="ttdeci">int clock_gettime(clockid_t clock_id, struct timespec 
*tp)</div><div class="ttdoc">Read the specified clock. </div><div 
class="ttdef"><b>Definition:</b> clock.c:178</div></div>
 </div><!-- fragment --></div><!-- contents -->
 </div><!-- doc-content -->
diff --git a/doc/prebuilt/html/xeno3prm/functions_t.html 
b/doc/prebuilt/html/xeno3prm/functions_t.html
index 508f937..1c50c32 100644
--- a/doc/prebuilt/html/xeno3prm/functions_t.html
+++ b/doc/prebuilt/html/xeno3prm/functions_t.html
@@ -134,9 +134,6 @@ 
$(document).ready(function(){initNavTree('functions_t.html','');});
 <li>trigger
 : <a class="el" 
href="structa4l__subdevice.html#a82cde111d28d6629e10884611dcf122c">a4l_subdevice</a>
 </li>
-<li>tsc
-: <a class="el" 
href="structrt__timer__info.html#a1a7d07f1d0ece5618812826d1f28c9d2">rt_timer_info</a>
-</li>
 <li>tx_timeout
 : <a class="el" 
href="structrtser__config.html#aed6d0fa7c04609143f86add774c400e5">rtser_config</a>
 </li>
diff --git a/doc/prebuilt/html/xeno3prm/functions_vars_t.html 
b/doc/prebuilt/html/xeno3prm/functions_vars_t.html
index 477171a..b8bce17 100644
--- a/doc/prebuilt/html/xeno3prm/functions_vars_t.html
+++ b/doc/prebuilt/html/xeno3prm/functions_vars_t.html
@@ -133,9 +133,6 @@ 
$(document).ready(function(){initNavTree('functions_vars_t.html','');});
 <li>trigger
 : <a class="el" 
href="structa4l__subdevice.html#a82cde111d28d6629e10884611dcf122c">a4l_subdevice</a>
 </li>
-<li>tsc
-: <a class="el" 
href="structrt__timer__info.html#a1a7d07f1d0ece5618812826d1f28c9d2">rt_timer_info</a>
-</li>
 <li>tx_timeout
 : <a class="el" 
href="structrtser__config.html#aed6d0fa7c04609143f86add774c400e5">rtser_config</a>
 </li>
diff --git a/doc/prebuilt/html/xeno3prm/group__alchemy__cond.html 
b/doc/prebuilt/html/xeno3prm/group__alchemy__cond.html
index ba3b10c..eea5cbb 100644
--- a/doc/prebuilt/html/xeno3prm/group__alchemy__cond.html
+++ b/doc/prebuilt/html/xeno3prm/group__alchemy__cond.html
@@ -270,7 +270,8 @@ Functions</h2></td></tr>
 <li>-EPERM is returned if this service was called from an asynchronous 
context.</li>
 </ul>
 <dl class="section user"><dt>Tags</dt><dd><a class="el" 
href="api-tags.html">thread-unrestricted, switch-secondary</a></dd></dl>
-<dl class="section note"><dt>Note</dt><dd>Condition variables can be shared by 
multiple processes which belong to the same Xenomai session. </dd></dl>
+<dl class="section note"><dt>Note</dt><dd>Condition variables can be shared by 
multiple processes which belong to the same Xenomai session.</dd></dl>
+<dl class="section attention"><dt>Attention</dt><dd>If the underlying 
threading library does not support <a class="el" 
href="group__cobalt__api__cond.html#ga68d1e544c6bbf3cedeee5455b14c642d" 
title="Set the clock selection attribute of a condition variable attributes 
object. ">pthread_condattr_setclock()</a>, timings with Alchemy condition 
variables will be based on CLOCK_REALTIME, and may therefore be affected by 
updates to the system date (e.g. NTP). This typically concerns legacy setups 
based on the linuxthreads library. In the normal case, timings are based on 
CLOCK_MONOTONIC. </dd></dl>
 
 <p>References <a class="el" 
href="group__cobalt__api__cond.html#gaa1587e01856a579b78effd0a1a284a47">pthread_cond_destroy()</a>,
 <a class="el" 
href="group__cobalt__api__cond.html#gad5b6c558bcd5260289981207b9ca9687">pthread_cond_init()</a>,
 <a class="el" 
href="group__cobalt__api__cond.html#ga066f082e4a085641043714e3bc4d70d7">pthread_condattr_destroy()</a>,
 <a class="el" 
href="group__cobalt__api__cond.html#ga34083fe1cd54d5d67599b4cca593ffa4">pthread_condattr_init()</a>,
 <a class="el" 
href="group__cobalt__api__cond.html#ga68d1e544c6bbf3cedeee5455b14c642d">pthread_condattr_setclock()</a>,
 and <a class="el" 
href="group__cobalt__api__cond.html#ga1a026d48926e804fed515bb01b0cbb45">pthread_condattr_setpshared()</a>.</p>
 
diff --git a/doc/prebuilt/html/xeno3prm/group__alchemy__timer.html 
b/doc/prebuilt/html/xeno3prm/group__alchemy__timer.html
index 40f8fcb..8902d26 100644
--- a/doc/prebuilt/html/xeno3prm/group__alchemy__timer.html
+++ b/doc/prebuilt/html/xeno3prm/group__alchemy__timer.html
@@ -127,7 +127,7 @@ Functions</h2></td></tr>
 <tr class="memdesc:gaa41e1976c4df9929c1a1238cc1195f48"><td 
class="mdescLeft">&#160;</td><td class="mdescRight">Convert Alchemy clock ticks 
to nanoseconds.  <a 
href="#gaa41e1976c4df9929c1a1238cc1195f48">More...</a><br/></td></tr>
 <tr class="separator:gaa41e1976c4df9929c1a1238cc1195f48"><td 
class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:ga4909da5d803e8c98fef89cfc0e921465"><td class="memItemLeft" 
align="right" valign="top">void&#160;</td><td class="memItemRight" 
valign="bottom"><a class="el" 
href="group__alchemy__timer.html#ga4909da5d803e8c98fef89cfc0e921465">rt_timer_inquire</a>
 (<a class="el" 
href="group__alchemy__timer.html#ga36af8698cba5da05f9dca2d644c1a6df">RT_TIMER_INFO</a>
 *info)</td></tr>
-<tr class="memdesc:ga4909da5d803e8c98fef89cfc0e921465"><td 
class="mdescLeft">&#160;</td><td class="mdescRight">Inquire about the Xenomai 
core timer.  <a 
href="#ga4909da5d803e8c98fef89cfc0e921465">More...</a><br/></td></tr>
+<tr class="memdesc:ga4909da5d803e8c98fef89cfc0e921465"><td 
class="mdescLeft">&#160;</td><td class="mdescRight">Inquire about the Alchemy 
clock.  <a href="#ga4909da5d803e8c98fef89cfc0e921465">More...</a><br/></td></tr>
 <tr class="separator:ga4909da5d803e8c98fef89cfc0e921465"><td 
class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:ga7d3f782ce7b642a2759c62649777d2c7"><td class="memItemLeft" 
align="right" valign="top">void&#160;</td><td class="memItemRight" 
valign="bottom"><a class="el" 
href="group__alchemy__timer.html#ga7d3f782ce7b642a2759c62649777d2c7">rt_timer_spin</a>
 (RTIME ns)</td></tr>
 <tr class="memdesc:ga7d3f782ce7b642a2759c62649777d2c7"><td 
class="mdescLeft">&#160;</td><td class="mdescRight">Busy wait burning CPU 
cycles.  <a 
href="#ga7d3f782ce7b642a2759c62649777d2c7">More...</a><br/></td></tr>
@@ -147,7 +147,7 @@ Functions</h2></td></tr>
 </div><div class="memdoc">
 
 <p>Timer status descriptor. </p>
-<p><a class="anchor" id="RT_TIMER_INFO"></a> This structure reports various 
static and runtime information about the timer, returned by a call to <a 
class="el" href="group__alchemy__timer.html#ga4909da5d803e8c98fef89cfc0e921465" 
title="Inquire about the Xenomai core timer. ">rt_timer_inquire()</a>. </p>
+<p><a class="anchor" id="RT_TIMER_INFO"></a> This structure reports 
information about the Alchemy clock, returned by a call to <a class="el" 
href="group__alchemy__timer.html#ga4909da5d803e8c98fef89cfc0e921465" 
title="Inquire about the Alchemy clock. ">rt_timer_inquire()</a>. </p>
 
 </div>
 </div>
@@ -166,17 +166,17 @@ Functions</h2></td></tr>
       </table>
 </div><div class="memdoc">
 
-<p>Inquire about the Xenomai core timer. </p>
-<p>Return status information of the Xenomai core timer.</p>
+<p>Inquire about the Alchemy clock. </p>
+<p>Return status information about the Alchemy clock.</p>
 <dl class="params"><dt>Parameters</dt><dd>
   <table class="params">
-    <tr><td class="paramname">info</td><td>The address of a structure the 
status data will be written to.</td></tr>
+    <tr><td class="paramname">info</td><td>The address of a <a class="el" 
href="group__alchemy__timer.html#RT_TIMER_INFO">structure</a> to fill with the 
clock information.</td></tr>
   </table>
   </dd>
 </dl>
 <dl class="section user"><dt>Tags</dt><dd><a class="el" 
href="api-tags.html">unrestricted</a> </dd></dl>
 
-<p>References <a class="el" 
href="structrt__timer__info.html#ae0b40e3f54176cb6eaff19a0a42ecd3e">rt_timer_info::date</a>,
 <a class="el" 
href="structrt__timer__info.html#a02f413497af5105ef5df396c378dbbf2">rt_timer_info::period</a>,
 and <a class="el" 
href="structrt__timer__info.html#a1a7d07f1d0ece5618812826d1f28c9d2">rt_timer_info::tsc</a>.</p>
+<p>References <a class="el" 
href="structrt__timer__info.html#ae0b40e3f54176cb6eaff19a0a42ecd3e">rt_timer_info::date</a>,
 and <a class="el" 
href="structrt__timer__info.html#a02f413497af5105ef5df396c378dbbf2">rt_timer_info::period</a>.</p>
 
 </div>
 </div>
diff --git a/doc/prebuilt/html/xeno3prm/group__alchemy__timer.js 
b/doc/prebuilt/html/xeno3prm/group__alchemy__timer.js
index 5e86d6b..7e1a2a1 100644
--- a/doc/prebuilt/html/xeno3prm/group__alchemy__timer.js
+++ b/doc/prebuilt/html/xeno3prm/group__alchemy__timer.js
@@ -2,8 +2,7 @@ var group__alchemy__timer =
 [
     [ "rt_timer_info", "structrt__timer__info.html", [
       [ "date", 
"structrt__timer__info.html#ae0b40e3f54176cb6eaff19a0a42ecd3e", null ],
-      [ "period", 
"structrt__timer__info.html#a02f413497af5105ef5df396c378dbbf2", null ],
-      [ "tsc", "structrt__timer__info.html#a1a7d07f1d0ece5618812826d1f28c9d2", 
null ]
+      [ "period", 
"structrt__timer__info.html#a02f413497af5105ef5df396c378dbbf2", null ]
     ] ],
     [ "RT_TIMER_INFO", 
"group__alchemy__timer.html#ga36af8698cba5da05f9dca2d644c1a6df", null ],
     [ "rt_timer_inquire", 
"group__alchemy__timer.html#ga4909da5d803e8c98fef89cfc0e921465", null ],
diff --git a/doc/prebuilt/html/xeno3prm/include_2alchemy_2cond_8h_source.html 
b/doc/prebuilt/html/xeno3prm/include_2alchemy_2cond_8h_source.html
index a24d08d..9a4ca56 100644
--- a/doc/prebuilt/html/xeno3prm/include_2alchemy_2cond_8h_source.html
+++ b/doc/prebuilt/html/xeno3prm/include_2alchemy_2cond_8h_source.html
@@ -174,18 +174,18 @@ 
$(document).ready(function(){initNavTree('include_2alchemy_2cond_8h_source.html'
 <div class="line"><a name="l00094"></a><span class="lineno">   
94</span>&#160;<span class="preprocessor">#endif</span></div>
 <div class="line"><a name="l00095"></a><span class="lineno">   
95</span>&#160;<span class="preprocessor"></span></div>
 <div class="line"><a name="l00098"></a><span class="lineno">   
98</span>&#160;<span class="preprocessor">#endif </span><span 
class="comment">/* _XENOMAI_ALCHEMY_COND_H */</span><span 
class="preprocessor"></span></div>
-<div class="ttc" 
id="group__alchemy__cond_html_ga04646a121e57765848eb2a51ed6be855"><div 
class="ttname"><a 
href="group__alchemy__cond.html#ga04646a121e57765848eb2a51ed6be855">rt_cond_create</a></div><div
 class="ttdeci">int rt_cond_create(RT_COND *cond, const char *name)</div><div 
class="ttdoc">Create a condition variable. </div><div 
class="ttdef"><b>Definition:</b> cond.c:106</div></div>
-<div class="ttc" 
id="group__alchemy__cond_html_gacc9f69ed63fbc3578408cecb2bad9d2a"><div 
class="ttname"><a 
href="group__alchemy__cond.html#gacc9f69ed63fbc3578408cecb2bad9d2a">rt_cond_inquire</a></div><div
 class="ttdeci">int rt_cond_inquire(RT_COND *cond, RT_COND_INFO 
*info)</div><div class="ttdoc">Query condition variable status. </div><div 
class="ttdef"><b>Definition:</b> cond.c:395</div></div>
+<div class="ttc" 
id="group__alchemy__cond_html_ga04646a121e57765848eb2a51ed6be855"><div 
class="ttname"><a 
href="group__alchemy__cond.html#ga04646a121e57765848eb2a51ed6be855">rt_cond_create</a></div><div
 class="ttdeci">int rt_cond_create(RT_COND *cond, const char *name)</div><div 
class="ttdoc">Create a condition variable. </div><div 
class="ttdef"><b>Definition:</b> cond.c:113</div></div>
+<div class="ttc" 
id="group__alchemy__cond_html_gacc9f69ed63fbc3578408cecb2bad9d2a"><div 
class="ttname"><a 
href="group__alchemy__cond.html#gacc9f69ed63fbc3578408cecb2bad9d2a">rt_cond_inquire</a></div><div
 class="ttdeci">int rt_cond_inquire(RT_COND *cond, RT_COND_INFO 
*info)</div><div class="ttdoc">Query condition variable status. </div><div 
class="ttdef"><b>Definition:</b> cond.c:409</div></div>
 <div class="ttc" 
id="group__alchemy__cond_html_ga3aa51073817be2ffb2a880a7393502e8"><div 
class="ttname"><a 
href="group__alchemy__cond.html#ga3aa51073817be2ffb2a880a7393502e8">rt_cond_wait</a></div><div
 class="ttdeci">static int rt_cond_wait(RT_COND *cond, RT_MUTEX *mutex, RTIME 
timeout)</div><div class="ttdoc">Wait on a condition variable (with relative 
scalar timeout). </div><div class="ttdef"><b>Definition:</b> 
cond.h:77</div></div>
 <div class="ttc" 
id="group__alchemy__cond_html_ga25e1741d8238ad7cc4206c7e4bb13d8c"><div 
class="ttname"><a 
href="group__alchemy__cond.html#ga25e1741d8238ad7cc4206c7e4bb13d8c">rt_cond_wait_until</a></div><div
 class="ttdeci">static int rt_cond_wait_until(RT_COND *cond, RT_MUTEX *mutex, 
RTIME timeout)</div><div class="ttdoc">Wait on a condition variable (with 
absolute scalar timeout). </div><div class="ttdef"><b>Definition:</b> 
cond.h:69</div></div>
-<div class="ttc" 
id="group__alchemy__cond_html_gab7a59ee47db48a78ca45e4655b569dc9"><div 
class="ttname"><a 
href="group__alchemy__cond.html#gab7a59ee47db48a78ca45e4655b569dc9">rt_cond_signal</a></div><div
 class="ttdeci">int rt_cond_signal(RT_COND *cond)</div><div 
class="ttdoc">Signal a condition variable. </div><div 
class="ttdef"><b>Definition:</b> cond.c:228</div></div>
+<div class="ttc" 
id="group__alchemy__cond_html_gab7a59ee47db48a78ca45e4655b569dc9"><div 
class="ttname"><a 
href="group__alchemy__cond.html#gab7a59ee47db48a78ca45e4655b569dc9">rt_cond_signal</a></div><div
 class="ttdeci">int rt_cond_signal(RT_COND *cond)</div><div 
class="ttdoc">Signal a condition variable. </div><div 
class="ttdef"><b>Definition:</b> cond.c:242</div></div>
 <div class="ttc" id="structRT__COND__INFO_html"><div class="ttname"><a 
href="structRT__COND__INFO.html">RT_COND_INFO</a></div><div 
class="ttdoc">Condition variable status descriptor. </div><div 
class="ttdef"><b>Definition:</b> cond.h:43</div></div>
-<div class="ttc" 
id="group__alchemy__cond_html_gaba59b188f10b142b4f2500dd719aa35f"><div 
class="ttname"><a 
href="group__alchemy__cond.html#gaba59b188f10b142b4f2500dd719aa35f">rt_cond_delete</a></div><div
 class="ttdeci">int rt_cond_delete(RT_COND *cond)</div><div 
class="ttdoc">Delete a condition variable. </div><div 
class="ttdef"><b>Definition:</b> cond.c:182</div></div>
-<div class="ttc" 
id="group__alchemy__cond_html_ga4d4999ec038366ee18ddac6550371388"><div 
class="ttname"><a 
href="group__alchemy__cond.html#ga4d4999ec038366ee18ddac6550371388">rt_cond_wait_timed</a></div><div
 class="ttdeci">int rt_cond_wait_timed(RT_COND *cond, RT_MUTEX *mutex, const 
struct timespec *abs_timeout)</div><div class="ttdoc">Wait on a condition 
variable. </div><div class="ttdef"><b>Definition:</b> cond.c:348</div></div>
+<div class="ttc" 
id="group__alchemy__cond_html_gaba59b188f10b142b4f2500dd719aa35f"><div 
class="ttname"><a 
href="group__alchemy__cond.html#gaba59b188f10b142b4f2500dd719aa35f">rt_cond_delete</a></div><div
 class="ttdeci">int rt_cond_delete(RT_COND *cond)</div><div 
class="ttdoc">Delete a condition variable. </div><div 
class="ttdef"><b>Definition:</b> cond.c:196</div></div>
+<div class="ttc" 
id="group__alchemy__cond_html_ga4d4999ec038366ee18ddac6550371388"><div 
class="ttname"><a 
href="group__alchemy__cond.html#ga4d4999ec038366ee18ddac6550371388">rt_cond_wait_timed</a></div><div
 class="ttdeci">int rt_cond_wait_timed(RT_COND *cond, RT_MUTEX *mutex, const 
struct timespec *abs_timeout)</div><div class="ttdoc">Wait on a condition 
variable. </div><div class="ttdef"><b>Definition:</b> cond.c:362</div></div>
 <div class="ttc" 
id="structRT__COND__INFO_html_aa7e2c2d2972771e651d6327c9192c425"><div 
class="ttname"><a 
href="structRT__COND__INFO.html#aa7e2c2d2972771e651d6327c9192c425">RT_COND_INFO::name</a></div><div
 class="ttdeci">char name[XNOBJECT_NAME_LEN]</div><div class="ttdoc">Name of 
condition variable. </div><div class="ttdef"><b>Definition:</b> 
cond.h:47</div></div>
-<div class="ttc" 
id="group__alchemy__cond_html_ga37c6424e266f5c1df3439116dd429878"><div 
class="ttname"><a 
href="group__alchemy__cond.html#ga37c6424e266f5c1df3439116dd429878">rt_cond_broadcast</a></div><div
 class="ttdeci">int rt_cond_broadcast(RT_COND *cond)</div><div 
class="ttdoc">Broadcast a condition variable. </div><div 
class="ttdef"><b>Definition:</b> cond.c:256</div></div>
-<div class="ttc" 
id="group__alchemy__cond_html_ga74f22144e9e407980ba89bf11f01c277"><div 
class="ttname"><a 
href="group__alchemy__cond.html#ga74f22144e9e407980ba89bf11f01c277">rt_cond_bind</a></div><div
 class="ttdeci">int rt_cond_bind(RT_COND *cond, const char *name, RTIME 
timeout)</div><div class="ttdoc">Bind to a condition variable. </div><div 
class="ttdef"><b>Definition:</b> cond.c:453</div></div>
-<div class="ttc" 
id="group__alchemy__cond_html_ga4d271775d228ae576d8174782931b09d"><div 
class="ttname"><a 
href="group__alchemy__cond.html#ga4d271775d228ae576d8174782931b09d">rt_cond_unbind</a></div><div
 class="ttdeci">int rt_cond_unbind(RT_COND *cond)</div><div 
class="ttdoc">Unbind from a condition variable. </div><div 
class="ttdef"><b>Definition:</b> cond.c:475</div></div>
+<div class="ttc" 
id="group__alchemy__cond_html_ga37c6424e266f5c1df3439116dd429878"><div 
class="ttname"><a 
href="group__alchemy__cond.html#ga37c6424e266f5c1df3439116dd429878">rt_cond_broadcast</a></div><div
 class="ttdeci">int rt_cond_broadcast(RT_COND *cond)</div><div 
class="ttdoc">Broadcast a condition variable. </div><div 
class="ttdef"><b>Definition:</b> cond.c:270</div></div>
+<div class="ttc" 
id="group__alchemy__cond_html_ga74f22144e9e407980ba89bf11f01c277"><div 
class="ttname"><a 
href="group__alchemy__cond.html#ga74f22144e9e407980ba89bf11f01c277">rt_cond_bind</a></div><div
 class="ttdeci">int rt_cond_bind(RT_COND *cond, const char *name, RTIME 
timeout)</div><div class="ttdoc">Bind to a condition variable. </div><div 
class="ttdef"><b>Definition:</b> cond.c:467</div></div>
+<div class="ttc" 
id="group__alchemy__cond_html_ga4d271775d228ae576d8174782931b09d"><div 
class="ttname"><a 
href="group__alchemy__cond.html#ga4d271775d228ae576d8174782931b09d">rt_cond_unbind</a></div><div
 class="ttdeci">int rt_cond_unbind(RT_COND *cond)</div><div 
class="ttdoc">Unbind from a condition variable. </div><div 
class="ttdef"><b>Definition:</b> cond.c:489</div></div>
 </div><!-- fragment --></div><!-- contents -->
 </div><!-- doc-content -->
 <!-- start footer part -->
diff --git a/doc/prebuilt/html/xeno3prm/include_2alchemy_2timer_8h_source.html 
b/doc/prebuilt/html/xeno3prm/include_2alchemy_2timer_8h_source.html
index 803962b..67d9bf4 100644
--- a/doc/prebuilt/html/xeno3prm/include_2alchemy_2timer_8h_source.html
+++ b/doc/prebuilt/html/xeno3prm/include_2alchemy_2timer_8h_source.html
@@ -126,86 +126,69 @@ 
$(document).ready(function(){initNavTree('include_2alchemy_2timer_8h_source.html
 <div class="line"><a name="l00036"></a><span class="lineno">   
36</span>&#160;<span class="preprocessor"></span></div>
 <div class="line"><a name="l00044"></a><span class="lineno"><a class="line" 
href="structrt__timer__info.html">   44</a></span>&#160;<span 
class="keyword">typedef</span> <span class="keyword">struct </span><a 
class="code" href="structrt__timer__info.html">rt_timer_info</a> {</div>
 <div class="line"><a name="l00048"></a><span class="lineno"><a class="line" 
href="structrt__timer__info.html#a02f413497af5105ef5df396c378dbbf2">   
48</a></span>&#160;        RTIME <a class="code" 
href="structrt__timer__info.html#a02f413497af5105ef5df396c378dbbf2">period</a>;</div>
-<div class="line"><a name="l00060"></a><span class="lineno"><a class="line" 
href="structrt__timer__info.html#a1a7d07f1d0ece5618812826d1f28c9d2">   
60</a></span>&#160;        RTIME <a class="code" 
href="structrt__timer__info.html#a1a7d07f1d0ece5618812826d1f28c9d2">tsc</a>;</div>
-<div class="line"><a name="l00067"></a><span class="lineno"><a class="line" 
href="structrt__timer__info.html#ae0b40e3f54176cb6eaff19a0a42ecd3e">   
67</a></span>&#160;        RTIME <a class="code" 
href="structrt__timer__info.html#ae0b40e3f54176cb6eaff19a0a42ecd3e">date</a>;</div>
-<div class="line"><a name="l00068"></a><span class="lineno">   
68</span>&#160;} <a class="code" 
href="group__alchemy__timer.html#ga36af8698cba5da05f9dca2d644c1a6df">RT_TIMER_INFO</a>;</div>
-<div class="line"><a name="l00069"></a><span class="lineno">   
69</span>&#160;</div>
-<div class="line"><a name="l00070"></a><span class="lineno">   
70</span>&#160;<span class="keyword">extern</span> <span class="keyword">struct 
</span>clockobj alchemy_clock;</div>
-<div class="line"><a name="l00071"></a><span class="lineno">   
71</span>&#160;</div>
-<div class="line"><a name="l00072"></a><span class="lineno">   
72</span>&#160;<span class="preprocessor">#define alchemy_abs_timeout(__t, 
__ts)                                  \</span></div>
-<div class="line"><a name="l00073"></a><span class="lineno">   
73</span>&#160;<span class="preprocessor">        ({                            
                                  \</span></div>
-<div class="line"><a name="l00074"></a><span class="lineno">   
74</span>&#160;<span class="preprocessor">                (__t) == TM_INFINITE 
? NULL :                           \</span></div>
-<div class="line"><a name="l00075"></a><span class="lineno">   
75</span>&#160;<span class="preprocessor">                (__t) == TM_NONBLOCK 
?                                  \</span></div>
-<div class="line"><a name="l00076"></a><span class="lineno">   
76</span>&#160;<span class="preprocessor">                ({ (__ts)-&gt;tv_sec 
= (__ts)-&gt;tv_nsec = 0; (__ts); }) :   \</span></div>
-<div class="line"><a name="l00077"></a><span class="lineno">   
77</span>&#160;<span class="preprocessor">                ({ 
clockobj_ticks_to_timespec(&amp;alchemy_clock, (__t), (__ts)); \</span></div>
-<div class="line"><a name="l00078"></a><span class="lineno">   
78</span>&#160;<span class="preprocessor">                        (__ts); });   
                                  \</span></div>
-<div class="line"><a name="l00079"></a><span class="lineno">   
79</span>&#160;<span class="preprocessor">        })</span></div>
-<div class="line"><a name="l00080"></a><span class="lineno">   
80</span>&#160;<span class="preprocessor"></span></div>
-<div class="line"><a name="l00081"></a><span class="lineno">   
81</span>&#160;<span class="preprocessor">#define alchemy_rel_timeout(__t, 
__ts)                                  \</span></div>
-<div class="line"><a name="l00082"></a><span class="lineno">   
82</span>&#160;<span class="preprocessor">        ({                            
                                  \</span></div>
-<div class="line"><a name="l00083"></a><span class="lineno">   
83</span>&#160;<span class="preprocessor">                (__t) == TM_INFINITE 
? NULL :                           \</span></div>
-<div class="line"><a name="l00084"></a><span class="lineno">   
84</span>&#160;<span class="preprocessor">                (__t) == TM_NONBLOCK 
?                                  \</span></div>
-<div class="line"><a name="l00085"></a><span class="lineno">   
85</span>&#160;<span class="preprocessor">                ({ (__ts)-&gt;tv_sec 
= (__ts)-&gt;tv_nsec = 0; (__ts); }) :   \</span></div>
-<div class="line"><a name="l00086"></a><span class="lineno">   
86</span>&#160;<span class="preprocessor">                ({ 
clockobj_ticks_to_timeout(&amp;alchemy_clock, (__t), (__ts)); \</span></div>
-<div class="line"><a name="l00087"></a><span class="lineno">   
87</span>&#160;<span class="preprocessor">                        (__ts); });   
                                  \</span></div>
-<div class="line"><a name="l00088"></a><span class="lineno">   
88</span>&#160;<span class="preprocessor">        })</span></div>
+<div class="line"><a name="l00055"></a><span class="lineno"><a class="line" 
href="structrt__timer__info.html#ae0b40e3f54176cb6eaff19a0a42ecd3e">   
55</a></span>&#160;        RTIME <a class="code" 
href="structrt__timer__info.html#ae0b40e3f54176cb6eaff19a0a42ecd3e">date</a>;</div>
+<div class="line"><a name="l00056"></a><span class="lineno">   
56</span>&#160;} <a class="code" 
href="group__alchemy__timer.html#ga36af8698cba5da05f9dca2d644c1a6df">RT_TIMER_INFO</a>;</div>
+<div class="line"><a name="l00057"></a><span class="lineno">   
57</span>&#160;</div>
+<div class="line"><a name="l00058"></a><span class="lineno">   
58</span>&#160;<span class="keyword">extern</span> <span class="keyword">struct 
</span>clockobj alchemy_clock;</div>
+<div class="line"><a name="l00059"></a><span class="lineno">   
59</span>&#160;</div>
+<div class="line"><a name="l00060"></a><span class="lineno">   
60</span>&#160;<span class="preprocessor">#define alchemy_abs_timeout(__t, 
__ts)                                  \</span></div>
+<div class="line"><a name="l00061"></a><span class="lineno">   
61</span>&#160;<span class="preprocessor">        ({                            
                                  \</span></div>
+<div class="line"><a name="l00062"></a><span class="lineno">   
62</span>&#160;<span class="preprocessor">                (__t) == TM_INFINITE 
? NULL :                           \</span></div>
+<div class="line"><a name="l00063"></a><span class="lineno">   
63</span>&#160;<span class="preprocessor">                (__t) == TM_NONBLOCK 
?                                  \</span></div>
+<div class="line"><a name="l00064"></a><span class="lineno">   
64</span>&#160;<span class="preprocessor">                ({ (__ts)-&gt;tv_sec 
= (__ts)-&gt;tv_nsec = 0; (__ts); }) :   \</span></div>
+<div class="line"><a name="l00065"></a><span class="lineno">   
65</span>&#160;<span class="preprocessor">                ({ 
clockobj_ticks_to_timespec(&amp;alchemy_clock, (__t), (__ts)); \</span></div>
+<div class="line"><a name="l00066"></a><span class="lineno">   
66</span>&#160;<span class="preprocessor">                        (__ts); });   
                                  \</span></div>
+<div class="line"><a name="l00067"></a><span class="lineno">   
67</span>&#160;<span class="preprocessor">        })</span></div>
+<div class="line"><a name="l00068"></a><span class="lineno">   
68</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l00069"></a><span class="lineno">   
69</span>&#160;<span class="preprocessor">#define alchemy_rel_timeout(__t, 
__ts)                                  \</span></div>
+<div class="line"><a name="l00070"></a><span class="lineno">   
70</span>&#160;<span class="preprocessor">        ({                            
                                  \</span></div>
+<div class="line"><a name="l00071"></a><span class="lineno">   
71</span>&#160;<span class="preprocessor">                (__t) == TM_INFINITE 
? NULL :                           \</span></div>
+<div class="line"><a name="l00072"></a><span class="lineno">   
72</span>&#160;<span class="preprocessor">                (__t) == TM_NONBLOCK 
?                                  \</span></div>
+<div class="line"><a name="l00073"></a><span class="lineno">   
73</span>&#160;<span class="preprocessor">                ({ (__ts)-&gt;tv_sec 
= (__ts)-&gt;tv_nsec = 0; (__ts); }) :   \</span></div>
+<div class="line"><a name="l00074"></a><span class="lineno">   
74</span>&#160;<span class="preprocessor">                ({ 
clockobj_ticks_to_timeout(&amp;alchemy_clock, (__t), (__ts)); \</span></div>
+<div class="line"><a name="l00075"></a><span class="lineno">   
75</span>&#160;<span class="preprocessor">                        (__ts); });   
                                  \</span></div>
+<div class="line"><a name="l00076"></a><span class="lineno">   
76</span>&#160;<span class="preprocessor">        })</span></div>
+<div class="line"><a name="l00077"></a><span class="lineno">   
77</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l00078"></a><span class="lineno">   
78</span>&#160;<span class="keyword">static</span> <span 
class="keyword">inline</span></div>
+<div class="line"><a name="l00079"></a><span class="lineno">   
79</span>&#160;<span class="keywordtype">int</span> alchemy_poll_mode(<span 
class="keyword">const</span> <span class="keyword">struct</span> timespec 
*abs_timeout)</div>
+<div class="line"><a name="l00080"></a><span class="lineno">   
80</span>&#160;{</div>
+<div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160; 
       <span class="keywordflow">return</span> abs_timeout &amp;&amp;</div>
+<div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160; 
               abs_timeout-&gt;tv_sec == 0 &amp;&amp;</div>
+<div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160; 
               abs_timeout-&gt;tv_nsec == 0;</div>
+<div class="line"><a name="l00084"></a><span class="lineno">   
84</span>&#160;}</div>
+<div class="line"><a name="l00085"></a><span class="lineno">   
85</span>&#160;</div>
+<div class="line"><a name="l00086"></a><span class="lineno">   
86</span>&#160;<span class="preprocessor">#ifdef __cplusplus</span></div>
+<div class="line"><a name="l00087"></a><span class="lineno">   
87</span>&#160;<span class="preprocessor"></span><span 
class="keyword">extern</span> <span class="stringliteral">&quot;C&quot;</span> 
{</div>
+<div class="line"><a name="l00088"></a><span class="lineno">   
88</span>&#160;<span class="preprocessor">#endif</span></div>
 <div class="line"><a name="l00089"></a><span class="lineno">   
89</span>&#160;<span class="preprocessor"></span></div>
-<div class="line"><a name="l00090"></a><span class="lineno">   
90</span>&#160;<span class="keyword">static</span> <span 
class="keyword">inline</span></div>
-<div class="line"><a name="l00091"></a><span class="lineno">   
91</span>&#160;<span class="keywordtype">int</span> alchemy_poll_mode(<span 
class="keyword">const</span> <span class="keyword">struct</span> timespec 
*abs_timeout)</div>
-<div class="line"><a name="l00092"></a><span class="lineno">   
92</span>&#160;{</div>
-<div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160; 
       <span class="keywordflow">return</span> abs_timeout &amp;&amp;</div>
-<div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160; 
               abs_timeout-&gt;tv_sec == 0 &amp;&amp;</div>
-<div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160; 
               abs_timeout-&gt;tv_nsec == 0;</div>
-<div class="line"><a name="l00096"></a><span class="lineno">   
96</span>&#160;}</div>
-<div class="line"><a name="l00097"></a><span class="lineno">   
97</span>&#160;</div>
-<div class="line"><a name="l00098"></a><span class="lineno">   
98</span>&#160;<span class="preprocessor">#ifdef __cplusplus</span></div>
-<div class="line"><a name="l00099"></a><span class="lineno">   
99</span>&#160;<span class="preprocessor"></span><span 
class="keyword">extern</span> <span class="stringliteral">&quot;C&quot;</span> 
{</div>
-<div class="line"><a name="l00100"></a><span class="lineno">  
100</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00101"></a><span class="lineno">  
101</span>&#160;<span class="preprocessor"></span></div>
-<div class="line"><a name="l00116"></a><span class="lineno"><a class="line" 
href="group__alchemy__timer.html#ga9665d6947e29d1a19dafb5401b0f6285">  
116</a></span>&#160;<span class="keyword">static</span> <span 
class="keyword">inline</span> RTIME <a class="code" 
href="group__alchemy__timer.html#ga9665d6947e29d1a19dafb5401b0f6285">rt_timer_read</a>(<span
 class="keywordtype">void</span>)</div>
-<div class="line"><a name="l00117"></a><span class="lineno">  
117</span>&#160;{</div>
-<div class="line"><a name="l00118"></a><span class="lineno">  118</span>&#160; 
       <span class="keywordflow">return</span> 
clockobj_get_time(&amp;alchemy_clock);</div>
-<div class="line"><a name="l00119"></a><span class="lineno">  
119</span>&#160;}</div>
-<div class="line"><a name="l00120"></a><span class="lineno">  
120</span>&#160;</div>
-<div class="line"><a name="l00121"></a><span class="lineno">  
121</span>&#160;<span class="keyword">static</span> <span 
class="keyword">inline</span> RTIME rt_timer_tsc(<span 
class="keywordtype">void</span>)</div>
-<div class="line"><a name="l00122"></a><span class="lineno">  
122</span>&#160;{</div>
-<div class="line"><a name="l00123"></a><span class="lineno">  123</span>&#160; 
       <span class="keywordflow">return</span> clockobj_get_tsc();</div>
-<div class="line"><a name="l00124"></a><span class="lineno">  
124</span>&#160;}</div>
-<div class="line"><a name="l00125"></a><span class="lineno">  
125</span>&#160;</div>
-<div class="line"><a name="l00126"></a><span class="lineno">  
126</span>&#160;<span class="keyword">static</span> <span 
class="keyword">inline</span> SRTIME rt_timer_ns2tsc(SRTIME ns)</div>
-<div class="line"><a name="l00127"></a><span class="lineno">  
127</span>&#160;{</div>
-<div class="line"><a name="l00128"></a><span class="lineno">  128</span>&#160; 
       <span class="keywordflow">return</span> clockobj_ns_to_tsc(ns);</div>
-<div class="line"><a name="l00129"></a><span class="lineno">  
129</span>&#160;}</div>
-<div class="line"><a name="l00130"></a><span class="lineno">  
130</span>&#160;</div>
-<div class="line"><a name="l00131"></a><span class="lineno">  
131</span>&#160;<span class="keyword">static</span> <span 
class="keyword">inline</span> SRTIME rt_timer_tsc2ns(SRTIME tsc)</div>
-<div class="line"><a name="l00132"></a><span class="lineno">  
132</span>&#160;{</div>
-<div class="line"><a name="l00133"></a><span class="lineno">  133</span>&#160; 
       <span class="keywordflow">return</span> clockobj_tsc_to_ns(tsc);</div>
-<div class="line"><a name="l00134"></a><span class="lineno">  
134</span>&#160;}</div>
-<div class="line"><a name="l00135"></a><span class="lineno">  
135</span>&#160;</div>
-<div class="line"><a name="l00136"></a><span class="lineno">  
136</span>&#160;SRTIME <a class="code" 
href="group__alchemy__timer.html#gaad812d18e51f398fbb0e5392b2acdf2f">rt_timer_ns2ticks</a>(SRTIME
 ns);</div>
-<div class="line"><a name="l00137"></a><span class="lineno">  
137</span>&#160;</div>
-<div class="line"><a name="l00138"></a><span class="lineno">  
138</span>&#160;SRTIME <a class="code" 
href="group__alchemy__timer.html#gaa41e1976c4df9929c1a1238cc1195f48">rt_timer_ticks2ns</a>(SRTIME
 ticks);</div>
-<div class="line"><a name="l00139"></a><span class="lineno">  
139</span>&#160;</div>
-<div class="line"><a name="l00140"></a><span class="lineno">  
140</span>&#160;RTIME <a class="code" 
href="group__alchemy__timer.html#ga9665d6947e29d1a19dafb5401b0f6285">rt_timer_read</a>(<span
 class="keywordtype">void</span>);</div>
-<div class="line"><a name="l00141"></a><span class="lineno">  
141</span>&#160;</div>
-<div class="line"><a name="l00142"></a><span class="lineno">  
142</span>&#160;<span class="keywordtype">void</span> <a class="code" 
href="group__alchemy__timer.html#ga4909da5d803e8c98fef89cfc0e921465">rt_timer_inquire</a>(<a
 class="code" href="structrt__timer__info.html">RT_TIMER_INFO</a> *info);</div>
-<div class="line"><a name="l00143"></a><span class="lineno">  
143</span>&#160;</div>
-<div class="line"><a name="l00144"></a><span class="lineno">  
144</span>&#160;<span class="keywordtype">void</span> <a class="code" 
href="group__alchemy__timer.html#ga7d3f782ce7b642a2759c62649777d2c7">rt_timer_spin</a>(RTIME
 ns);</div>
-<div class="line"><a name="l00145"></a><span class="lineno">  
145</span>&#160;</div>
-<div class="line"><a name="l00146"></a><span class="lineno">  
146</span>&#160;<span class="preprocessor">#ifdef __cplusplus</span></div>
-<div class="line"><a name="l00147"></a><span class="lineno">  
147</span>&#160;<span class="preprocessor"></span>}</div>
-<div class="line"><a name="l00148"></a><span class="lineno">  
148</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00149"></a><span class="lineno">  
149</span>&#160;<span class="preprocessor"></span></div>
-<div class="line"><a name="l00152"></a><span class="lineno">  
152</span>&#160;<span class="preprocessor">#endif </span><span 
class="comment">/* _ALCHEMY_TIMER_H */</span><span 
class="preprocessor"></span></div>
-<div class="ttc" 
id="group__alchemy__timer_html_ga7d3f782ce7b642a2759c62649777d2c7"><div 
class="ttname"><a 
href="group__alchemy__timer.html#ga7d3f782ce7b642a2759c62649777d2c7">rt_timer_spin</a></div><div
 class="ttdeci">void rt_timer_spin(RTIME ns)</div><div class="ttdoc">Busy wait 
burning CPU cycles. </div><div class="ttdef"><b>Definition:</b> 
timer.c:109</div></div>
-<div class="ttc" 
id="structrt__timer__info_html_ae0b40e3f54176cb6eaff19a0a42ecd3e"><div 
class="ttname"><a 
href="structrt__timer__info.html#ae0b40e3f54176cb6eaff19a0a42ecd3e">rt_timer_info::date</a></div><div
 class="ttdeci">RTIME date</div><div class="ttdoc">Current monotonic date, 
based on the time stamp counter value. </div><div 
class="ttdef"><b>Definition:</b> timer.h:67</div></div>
-<div class="ttc" 
id="group__alchemy__timer_html_ga9665d6947e29d1a19dafb5401b0f6285"><div 
class="ttname"><a 
href="group__alchemy__timer.html#ga9665d6947e29d1a19dafb5401b0f6285">rt_timer_read</a></div><div
 class="ttdeci">static RTIME rt_timer_read(void)</div><div class="ttdoc">Return 
the current system time. </div><div class="ttdef"><b>Definition:</b> 
timer.h:116</div></div>
+<div class="line"><a name="l00104"></a><span class="lineno"><a class="line" 
href="group__alchemy__timer.html#ga9665d6947e29d1a19dafb5401b0f6285">  
104</a></span>&#160;<span class="keyword">static</span> <span 
class="keyword">inline</span> RTIME <a class="code" 
href="group__alchemy__timer.html#ga9665d6947e29d1a19dafb5401b0f6285">rt_timer_read</a>(<span
 class="keywordtype">void</span>)</div>
+<div class="line"><a name="l00105"></a><span class="lineno">  
105</span>&#160;{</div>
+<div class="line"><a name="l00106"></a><span class="lineno">  106</span>&#160; 
       <span class="keywordflow">return</span> 
clockobj_get_time(&amp;alchemy_clock);</div>
+<div class="line"><a name="l00107"></a><span class="lineno">  
107</span>&#160;}</div>
+<div class="line"><a name="l00108"></a><span class="lineno">  
108</span>&#160;</div>
+<div class="line"><a name="l00109"></a><span class="lineno">  
109</span>&#160;SRTIME <a class="code" 
href="group__alchemy__timer.html#gaad812d18e51f398fbb0e5392b2acdf2f">rt_timer_ns2ticks</a>(SRTIME
 ns);</div>
+<div class="line"><a name="l00110"></a><span class="lineno">  
110</span>&#160;</div>
+<div class="line"><a name="l00111"></a><span class="lineno">  
111</span>&#160;SRTIME <a class="code" 
href="group__alchemy__timer.html#gaa41e1976c4df9929c1a1238cc1195f48">rt_timer_ticks2ns</a>(SRTIME
 ticks);</div>
+<div class="line"><a name="l00112"></a><span class="lineno">  
112</span>&#160;</div>
+<div class="line"><a name="l00113"></a><span class="lineno">  
113</span>&#160;RTIME <a class="code" 
href="group__alchemy__timer.html#ga9665d6947e29d1a19dafb5401b0f6285">rt_timer_read</a>(<span
 class="keywordtype">void</span>);</div>
+<div class="line"><a name="l00114"></a><span class="lineno">  
114</span>&#160;</div>
+<div class="line"><a name="l00115"></a><span class="lineno">  
115</span>&#160;<span class="keywordtype">void</span> <a class="code" 
href="group__alchemy__timer.html#ga4909da5d803e8c98fef89cfc0e921465">rt_timer_inquire</a>(<a
 class="code" href="structrt__timer__info.html">RT_TIMER_INFO</a> *info);</div>
+<div class="line"><a name="l00116"></a><span class="lineno">  
116</span>&#160;</div>
+<div class="line"><a name="l00117"></a><span class="lineno">  
117</span>&#160;<span class="keywordtype">void</span> <a class="code" 
href="group__alchemy__timer.html#ga7d3f782ce7b642a2759c62649777d2c7">rt_timer_spin</a>(RTIME
 ns);</div>
+<div class="line"><a name="l00118"></a><span class="lineno">  
118</span>&#160;</div>
+<div class="line"><a name="l00119"></a><span class="lineno">  
119</span>&#160;<span class="preprocessor">#ifdef __cplusplus</span></div>
+<div class="line"><a name="l00120"></a><span class="lineno">  
120</span>&#160;<span class="preprocessor"></span>}</div>
+<div class="line"><a name="l00121"></a><span class="lineno">  
121</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00122"></a><span class="lineno">  
122</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l00125"></a><span class="lineno">  
125</span>&#160;<span class="preprocessor">#endif </span><span 
class="comment">/* _ALCHEMY_TIMER_H */</span><span 
class="preprocessor"></span></div>
+<div class="ttc" 
id="group__alchemy__timer_html_ga7d3f782ce7b642a2759c62649777d2c7"><div 
class="ttname"><a 
href="group__alchemy__timer.html#ga7d3f782ce7b642a2759c62649777d2c7">rt_timer_spin</a></div><div
 class="ttdeci">void rt_timer_spin(RTIME ns)</div><div class="ttdoc">Busy wait 
burning CPU cycles. </div><div class="ttdef"><b>Definition:</b> 
timer.c:108</div></div>
+<div class="ttc" 
id="structrt__timer__info_html_ae0b40e3f54176cb6eaff19a0a42ecd3e"><div 
class="ttname"><a 
href="structrt__timer__info.html#ae0b40e3f54176cb6eaff19a0a42ecd3e">rt_timer_info::date</a></div><div
 class="ttdeci">RTIME date</div><div class="ttdoc">Current monotonic date 
expressed in clock ticks. </div><div class="ttdef"><b>Definition:</b> 
timer.h:55</div></div>
+<div class="ttc" 
id="group__alchemy__timer_html_ga9665d6947e29d1a19dafb5401b0f6285"><div 
class="ttname"><a 
href="group__alchemy__timer.html#ga9665d6947e29d1a19dafb5401b0f6285">rt_timer_read</a></div><div
 class="ttdeci">static RTIME rt_timer_read(void)</div><div class="ttdoc">Return 
the current system time. </div><div class="ttdef"><b>Definition:</b> 
timer.h:104</div></div>
 <div class="ttc" id="structrt__timer__info_html"><div class="ttname"><a 
href="structrt__timer__info.html">rt_timer_info</a></div><div 
class="ttdoc">Timer status descriptor. </div><div 
class="ttdef"><b>Definition:</b> timer.h:44</div></div>
 <div class="ttc" 
id="structrt__timer__info_html_a02f413497af5105ef5df396c378dbbf2"><div 
class="ttname"><a 
href="structrt__timer__info.html#a02f413497af5105ef5df396c378dbbf2">rt_timer_info::period</a></div><div
 class="ttdeci">RTIME period</div><div class="ttdoc">Clock resolution in 
nanoseconds. </div><div class="ttdef"><b>Definition:</b> timer.h:48</div></div>
 <div class="ttc" 
id="group__alchemy__timer_html_ga36af8698cba5da05f9dca2d644c1a6df"><div 
class="ttname"><a 
href="group__alchemy__timer.html#ga36af8698cba5da05f9dca2d644c1a6df">RT_TIMER_INFO</a></div><div
 class="ttdeci">struct rt_timer_info RT_TIMER_INFO</div><div 
class="ttdoc">Timer status descriptor. </div></div>
-<div class="ttc" 
id="group__alchemy__timer_html_ga4909da5d803e8c98fef89cfc0e921465"><div 
class="ttname"><a 
href="group__alchemy__timer.html#ga4909da5d803e8c98fef89cfc0e921465">rt_timer_inquire</a></div><div
 class="ttdeci">void rt_timer_inquire(RT_TIMER_INFO *info)</div><div 
class="ttdoc">Inquire about the Xenomai core timer. </div><div 
class="ttdef"><b>Definition:</b> timer.c:88</div></div>
+<div class="ttc" 
id="group__alchemy__timer_html_ga4909da5d803e8c98fef89cfc0e921465"><div 
class="ttname"><a 
href="group__alchemy__timer.html#ga4909da5d803e8c98fef89cfc0e921465">rt_timer_inquire</a></div><div
 class="ttdeci">void rt_timer_inquire(RT_TIMER_INFO *info)</div><div 
class="ttdoc">Inquire about the Alchemy clock. </div><div 
class="ttdef"><b>Definition:</b> timer.c:88</div></div>
 <div class="ttc" 
id="group__alchemy__timer_html_gaa41e1976c4df9929c1a1238cc1195f48"><div 
class="ttname"><a 
href="group__alchemy__timer.html#gaa41e1976c4df9929c1a1238cc1195f48">rt_timer_ticks2ns</a></div><div
 class="ttdeci">SRTIME rt_timer_ticks2ns(SRTIME ticks)</div><div 
class="ttdoc">Convert Alchemy clock ticks to nanoseconds. </div><div 
class="ttdef"><b>Definition:</b> timer.c:72</div></div>
-<div class="ttc" 
id="structrt__timer__info_html_a1a7d07f1d0ece5618812826d1f28c9d2"><div 
class="ttname"><a 
href="structrt__timer__info.html#a1a7d07f1d0ece5618812826d1f28c9d2">rt_timer_info::tsc</a></div><div
 class="ttdeci">RTIME tsc</div><div class="ttdoc">Current time stamp counter 
value. </div><div class="ttdef"><b>Definition:</b> timer.h:60</div></div>
 <div class="ttc" 
id="group__alchemy__timer_html_gaad812d18e51f398fbb0e5392b2acdf2f"><div 
class="ttname"><a 
href="group__alchemy__timer.html#gaad812d18e51f398fbb0e5392b2acdf2f">rt_timer_ns2ticks</a></div><div
 class="ttdeci">SRTIME rt_timer_ns2ticks(SRTIME ns)</div><div 
class="ttdoc">Convert nanoseconds to Alchemy clock ticks. </div><div 
class="ttdef"><b>Definition:</b> timer.c:50</div></div>
 </div><!-- fragment --></div><!-- contents -->
 </div><!-- doc-content -->
diff --git 
a/doc/prebuilt/html/xeno3prm/kernel_2cobalt_2arch_2x86_2include_2asm_2xenomai_2thread_8h_source.html
 
b/doc/prebuilt/html/xeno3prm/kernel_2cobalt_2arch_2x86_2include_2asm_2xenomai_2thread_8h_source.html
index 7536669..d412db3 100644
--- 
a/doc/prebuilt/html/xeno3prm/kernel_2cobalt_2arch_2x86_2include_2asm_2xenomai_2thread_8h_source.html
+++ 
b/doc/prebuilt/html/xeno3prm/kernel_2cobalt_2arch_2x86_2include_2asm_2xenomai_2thread_8h_source.html
@@ -149,53 +149,32 @@ 
$(document).ready(function(){initNavTree('kernel_2cobalt_2arch_2x86_2include_2as
 <div class="line"><a name="l00054"></a><span class="lineno">   
54</span>&#160;<span class="preprocessor"></span><span 
class="preprocessor">#define xnarch_fault_trap(d)    
((d)-&gt;exception)</span></div>
 <div class="line"><a name="l00055"></a><span class="lineno">   
55</span>&#160;<span class="preprocessor"></span><span 
class="preprocessor">#define xnarch_fault_code(d)    
((d)-&gt;regs-&gt;orig_ax)</span></div>
 <div class="line"><a name="l00056"></a><span class="lineno">   
56</span>&#160;<span class="preprocessor"></span><span 
class="preprocessor">#define xnarch_fault_pc(d)      
((d)-&gt;regs-&gt;ip)</span></div>
-<div class="line"><a name="l00057"></a><span class="lineno">   
57</span>&#160;<span class="preprocessor"></span><span class="comment">/* fault 
is caused by use FPU while FPU disabled. */</span></div>
-<div class="line"><a name="l00058"></a><span class="lineno">   
58</span>&#160;<span class="preprocessor">#define xnarch_fault_fpu_p(d)   
((d)-&gt;exception == 7)</span></div>
-<div class="line"><a name="l00059"></a><span class="lineno">   
59</span>&#160;<span class="preprocessor"></span><span class="comment">/* The 
following predicates are only usable over a regular Linux stack</span></div>
-<div class="line"><a name="l00060"></a><span class="lineno">   
60</span>&#160;<span class="comment">   context. */</span></div>
-<div class="line"><a name="l00061"></a><span class="lineno">   
61</span>&#160;<span class="preprocessor">#define xnarch_fault_pf_p(d)    
((d)-&gt;exception == 14)</span></div>
-<div class="line"><a name="l00062"></a><span class="lineno">   
62</span>&#160;<span class="preprocessor"></span><span 
class="preprocessor">#define xnarch_fault_bp_p(d)    ((current-&gt;ptrace &amp; 
PT_PTRACED) &amp;&amp;      \</span></div>
-<div class="line"><a name="l00063"></a><span class="lineno">   
63</span>&#160;<span class="preprocessor">                                 
((d)-&gt;exception == 1 || (d)-&gt;exception == 3))</span></div>
-<div class="line"><a name="l00064"></a><span class="lineno">   
64</span>&#160;<span class="preprocessor"></span><span 
class="preprocessor">#define xnarch_fault_notify(d)  
(!xnarch_fault_bp_p(d))</span></div>
-<div class="line"><a name="l00065"></a><span class="lineno">   
65</span>&#160;<span class="preprocessor"></span></div>
-<div class="line"><a name="l00066"></a><span class="lineno">   
66</span>&#160;<span class="preprocessor">#ifdef 
CONFIG_XENO_ARCH_FPU</span></div>
-<div class="line"><a name="l00067"></a><span class="lineno">   
67</span>&#160;<span class="preprocessor"></span></div>
-<div class="line"><a name="l00068"></a><span class="lineno">   
68</span>&#160;<span class="keywordtype">void</span> xnarch_save_fpu(<span 
class="keyword">struct</span> xnthread *thread);</div>
-<div class="line"><a name="l00069"></a><span class="lineno">   
69</span>&#160;<span class="keywordtype">void</span> xnarch_switch_fpu(<span 
class="keyword">struct</span> xnthread *from, <span 
class="keyword">struct</span> xnthread *to);</div>
-<div class="line"><a name="l00070"></a><span class="lineno">   
70</span>&#160;<span class="keywordtype">int</span> 
xnarch_handle_fpu_fault(<span class="keyword">struct</span> xnthread *from, 
</div>
-<div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160; 
                       <span class="keyword">struct</span> xnthread *to, <span 
class="keyword">struct</span> ipipe_trap_data *d);</div>
-<div class="line"><a name="l00072"></a><span class="lineno">   
72</span>&#160;</div>
-<div class="line"><a name="l00073"></a><span class="lineno">   
73</span>&#160;<span class="preprocessor">#else </span><span class="comment">/* 
!CONFIG_XENO_ARCH_FPU */</span><span class="preprocessor"></span></div>
-<div class="line"><a name="l00074"></a><span class="lineno">   
74</span>&#160;<span class="preprocessor"></span></div>
-<div class="line"><a name="l00075"></a><span class="lineno">   
75</span>&#160;<span class="keyword">static</span> <span 
class="keyword">inline</span> <span class="keywordtype">void</span> 
xnarch_save_fpu(<span class="keyword">struct</span> xnthread *thread) { }</div>
-<div class="line"><a name="l00076"></a><span class="lineno">   
76</span>&#160;<span class="keyword">static</span> <span 
class="keyword">inline</span> <span class="keywordtype">void</span></div>
-<div class="line"><a name="l00077"></a><span class="lineno">   
77</span>&#160;xnarch_switch_fpu(<span class="keyword">struct</span> xnthread 
*from, <span class="keyword">struct</span> xnthread *thread) </div>
-<div class="line"><a name="l00078"></a><span class="lineno">   
78</span>&#160;{ </div>
-<div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160; 
       <span class="keywordflow">return</span> 0;</div>
-<div class="line"><a name="l00080"></a><span class="lineno">   
80</span>&#160;}</div>
+<div class="line"><a name="l00057"></a><span class="lineno">   
57</span>&#160;<span class="preprocessor"></span><span 
class="preprocessor">#define xnarch_fault_fpu_p(d)   ((d)-&gt;exception == 
7)</span></div>
+<div class="line"><a name="l00058"></a><span class="lineno">   
58</span>&#160;<span class="preprocessor"></span><span 
class="preprocessor">#define xnarch_fault_pf_p(d)    ((d)-&gt;exception == 
14)</span></div>
+<div class="line"><a name="l00059"></a><span class="lineno">   
59</span>&#160;<span class="preprocessor"></span><span 
class="preprocessor">#define xnarch_fault_bp_p(d)    ((current-&gt;ptrace &amp; 
PT_PTRACED) &amp;&amp;      \</span></div>
+<div class="line"><a name="l00060"></a><span class="lineno">   
60</span>&#160;<span class="preprocessor">                                 
((d)-&gt;exception == 1 || (d)-&gt;exception == 3))</span></div>
+<div class="line"><a name="l00061"></a><span class="lineno">   
61</span>&#160;<span class="preprocessor"></span><span 
class="preprocessor">#define xnarch_fault_notify(d)  
(!xnarch_fault_bp_p(d))</span></div>
+<div class="line"><a name="l00062"></a><span class="lineno">   
62</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l00063"></a><span class="lineno">   
63</span>&#160;<span class="keywordtype">void</span> xnarch_save_fpu(<span 
class="keyword">struct</span> xnthread *thread);</div>
+<div class="line"><a name="l00064"></a><span class="lineno">   
64</span>&#160;</div>
+<div class="line"><a name="l00065"></a><span class="lineno">   
65</span>&#160;<span class="keywordtype">void</span> xnarch_switch_fpu(<span 
class="keyword">struct</span> xnthread *from, <span 
class="keyword">struct</span> xnthread *to);</div>
+<div class="line"><a name="l00066"></a><span class="lineno">   
66</span>&#160;</div>
+<div class="line"><a name="l00067"></a><span class="lineno">   
67</span>&#160;<span class="keywordtype">int</span> 
xnarch_handle_fpu_fault(<span class="keyword">struct</span> xnthread *from, 
</div>
+<div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160; 
                       <span class="keyword">struct</span> xnthread *to, <span 
class="keyword">struct</span> ipipe_trap_data *d);</div>
+<div class="line"><a name="l00069"></a><span class="lineno">   
69</span>&#160;</div>
+<div class="line"><a name="l00070"></a><span class="lineno">   
70</span>&#160;<span class="keywordtype">void</span> xnarch_leave_root(<span 
class="keyword">struct</span> xnthread *root);</div>
+<div class="line"><a name="l00071"></a><span class="lineno">   
71</span>&#160;</div>
+<div class="line"><a name="l00072"></a><span class="lineno">   
72</span>&#160;<span class="keywordtype">void</span> xnarch_init_root_tcb(<span 
class="keyword">struct</span> xnthread *thread);</div>
+<div class="line"><a name="l00073"></a><span class="lineno">   
73</span>&#160;</div>
+<div class="line"><a name="l00074"></a><span class="lineno">   
74</span>&#160;<span class="keywordtype">void</span> 
xnarch_init_shadow_tcb(<span class="keyword">struct</span> xnthread 
*thread);</div>
+<div class="line"><a name="l00075"></a><span class="lineno">   
75</span>&#160;</div>
+<div class="line"><a name="l00076"></a><span class="lineno">   
76</span>&#160;<span class="keywordtype">void</span> xnarch_switch_to(<span 
class="keyword">struct</span> xnthread *out, <span 
class="keyword">struct</span> xnthread *in);</div>
+<div class="line"><a name="l00077"></a><span class="lineno">   
77</span>&#160;</div>
+<div class="line"><a name="l00078"></a><span class="lineno">   
78</span>&#160;<span class="keyword">static</span> <span 
class="keyword">inline</span> <span class="keywordtype">void</span> 
xnarch_enter_root(<span class="keyword">struct</span> xnthread *root) { }</div>
+<div class="line"><a name="l00079"></a><span class="lineno">   
79</span>&#160;</div>
+<div class="line"><a name="l00080"></a><span class="lineno">   
80</span>&#160;<span class="keywordtype">int</span> xnarch_escalate(<span 
class="keywordtype">void</span>);</div>
 <div class="line"><a name="l00081"></a><span class="lineno">   
81</span>&#160;</div>
-<div class="line"><a name="l00082"></a><span class="lineno">   
82</span>&#160;<span class="keyword">static</span> <span 
class="keyword">inline</span> <span class="keywordtype">int</span></div>
-<div class="line"><a name="l00083"></a><span class="lineno">   
83</span>&#160;xnarch_handle_fpu_fault(<span class="keyword">struct</span> 
xnthread *from, </div>
-<div class="line"><a name="l00084"></a><span class="lineno">   84</span>&#160; 
                       <span class="keyword">struct</span> xnthread *to, <span 
class="keyword">struct</span> ipipe_trap_data *d)</div>
-<div class="line"><a name="l00085"></a><span class="lineno">   
85</span>&#160;{</div>
-<div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160; 
       <span class="keywordflow">return</span> 0;</div>
-<div class="line"><a name="l00087"></a><span class="lineno">   
87</span>&#160;}</div>
-<div class="line"><a name="l00088"></a><span class="lineno">   
88</span>&#160;</div>
-<div class="line"><a name="l00089"></a><span class="lineno">   
89</span>&#160;<span class="preprocessor">#endif </span><span 
class="comment">/* !CONFIG_XENO_ARCH_FPU */</span><span 
class="preprocessor"></span></div>
-<div class="line"><a name="l00090"></a><span class="lineno">   
90</span>&#160;<span class="preprocessor"></span></div>
-<div class="line"><a name="l00091"></a><span class="lineno">   
91</span>&#160;<span class="keywordtype">void</span> xnarch_init_root_tcb(<span 
class="keyword">struct</span> xnthread *thread);</div>
-<div class="line"><a name="l00092"></a><span class="lineno">   
92</span>&#160;</div>
-<div class="line"><a name="l00093"></a><span class="lineno">   
93</span>&#160;<span class="keywordtype">void</span> 
xnarch_init_shadow_tcb(<span class="keyword">struct</span> xnthread 
*thread);</div>
-<div class="line"><a name="l00094"></a><span class="lineno">   
94</span>&#160;</div>
-<div class="line"><a name="l00095"></a><span class="lineno">   
95</span>&#160;<span class="keywordtype">void</span> xnarch_switch_to(<span 
class="keyword">struct</span> xnthread *out, <span 
class="keyword">struct</span> xnthread *in);</div>
-<div class="line"><a name="l00096"></a><span class="lineno">   
96</span>&#160;</div>
-<div class="line"><a name="l00097"></a><span class="lineno">   
97</span>&#160;<span class="keyword">static</span> <span 
class="keyword">inline</span> <span class="keywordtype">void</span> 
xnarch_enter_root(<span class="keyword">struct</span> xnthread *root) { }</div>
-<div class="line"><a name="l00098"></a><span class="lineno">   
98</span>&#160;</div>
-<div class="line"><a name="l00099"></a><span class="lineno">   
99</span>&#160;<span class="keywordtype">void</span> xnarch_leave_root(<span 
class="keyword">struct</span> xnthread *root);</div>
-<div class="line"><a name="l00100"></a><span class="lineno">  
100</span>&#160;</div>
-<div class="line"><a name="l00101"></a><span class="lineno">  
101</span>&#160;<span class="keywordtype">int</span> xnarch_escalate(<span 
class="keywordtype">void</span>);</div>
-<div class="line"><a name="l00102"></a><span class="lineno">  
102</span>&#160;</div>
-<div class="line"><a name="l00103"></a><span class="lineno">  
103</span>&#160;<span class="preprocessor">#endif </span><span 
class="comment">/* !_COBALT_X86_ASM_THREAD_H */</span><span 
class="preprocessor"></span></div>
+<div class="line"><a name="l00082"></a><span class="lineno">   
82</span>&#160;<span class="preprocessor">#endif </span><span 
class="comment">/* !_COBALT_X86_ASM_THREAD_H */</span><span 
class="preprocessor"></span></div>
 </div><!-- fragment --></div><!-- contents -->
 </div><!-- doc-content -->
 <!-- start footer part -->
diff --git a/doc/prebuilt/html/xeno3prm/navtree.js 
b/doc/prebuilt/html/xeno3prm/navtree.js
index 5ec4520..6faa85d 100644
--- a/doc/prebuilt/html/xeno3prm/navtree.js
+++ b/doc/prebuilt/html/xeno3prm/navtree.js
@@ -37,7 +37,7 @@ var NAVTREEINDEX =
 "group__rtdm__testing.html",
 "lib_2alchemy_2task_8h_source.html",
 "rtdm_2uapi_2ipc_8h.html#gabfefbb6b077a725dab659af9efcf3967",
-"structrtdm__fd__ops.html#a262cb915d56eaf11d1aea0a57d1493ad"
+"structrtdm__fd__ops.html#a2b27945be840f51ad42201e60d91e9d7"
 ];
 
 var SYNCONMSG = 'click to disable panel synchronisation';
diff --git a/doc/prebuilt/html/xeno3prm/navtreeindex1.js 
b/doc/prebuilt/html/xeno3prm/navtreeindex1.js
index 56e7f8d..9f0e0a8 100644
--- a/doc/prebuilt/html/xeno3prm/navtreeindex1.js
+++ b/doc/prebuilt/html/xeno3prm/navtreeindex1.js
@@ -132,8 +132,8 @@ var NAVTREEINDEX1 =
 "functions_vars_v.html":[3,1,2,19],
 "functions_vars_w.html":[3,1,2,20],
 "functions_w.html":[3,1,0,21],
-"globals.html":[4,1,0],
 "globals.html":[4,1,0,0],
+"globals.html":[4,1,0],
 "globals_b.html":[4,1,0,1],
 "globals_c.html":[4,1,0,2],
 "globals_defs.html":[4,1,5],
diff --git a/doc/prebuilt/html/xeno3prm/navtreeindex7.js 
b/doc/prebuilt/html/xeno3prm/navtreeindex7.js
index 7af4d2f..37310aa 100644
--- a/doc/prebuilt/html/xeno3prm/navtreeindex7.js
+++ b/doc/prebuilt/html/xeno3prm/navtreeindex7.js
@@ -223,7 +223,6 @@ var NAVTREEINDEX7 =
 "structcan__frame.html#af58d971323fd8fdd65fb4b1140bc0ee5":[2,0,2,1,5,0],
 "structrt__timer__info.html":[2,3,10,0],
 "structrt__timer__info.html#a02f413497af5105ef5df396c378dbbf2":[2,3,10,0,1],
-"structrt__timer__info.html#a1a7d07f1d0ece5618812826d1f28c9d2":[2,3,10,0,2],
 "structrt__timer__info.html#ae0b40e3f54176cb6eaff19a0a42ecd3e":[2,3,10,0,0],
 "structrtdm__dev__context.html":[3,0,25],
 "structrtdm__dev__context.html#a720bc9395d80f0dea40c7ac3e449ea25":[3,0,25,0],
@@ -249,5 +248,6 @@ var NAVTREEINDEX7 =
 "structrtdm__fd__ops.html":[2,0,1,1,0],
 "structrtdm__fd__ops.html#a0b51a2a4bdb7e8a56370d4ea92817e23":[2,0,1,1,0,6],
 "structrtdm__fd__ops.html#a116e15405e46ba98c2720879f889f520":[2,0,1,1,0,13],
-"structrtdm__fd__ops.html#a219c3d753fb01060a59b3d8eeed24c6b":[2,0,1,1,0,7]
+"structrtdm__fd__ops.html#a219c3d753fb01060a59b3d8eeed24c6b":[2,0,1,1,0,7],
+"structrtdm__fd__ops.html#a262cb915d56eaf11d1aea0a57d1493ad":[2,0,1,1,0,11]
 };
diff --git a/doc/prebuilt/html/xeno3prm/navtreeindex8.js 
b/doc/prebuilt/html/xeno3prm/navtreeindex8.js
index 02fdf06..7e05b23 100644
--- a/doc/prebuilt/html/xeno3prm/navtreeindex8.js
+++ b/doc/prebuilt/html/xeno3prm/navtreeindex8.js
@@ -1,6 +1,5 @@
 var NAVTREEINDEX8 =
 {
-"structrtdm__fd__ops.html#a262cb915d56eaf11d1aea0a57d1493ad":[2,0,1,1,0,11],
 "structrtdm__fd__ops.html#a2b27945be840f51ad42201e60d91e9d7":[2,0,1,1,0,0],
 "structrtdm__fd__ops.html#a33fb855b949a026037d01401da6f79db":[2,0,1,1,0,14],
 "structrtdm__fd__ops.html#a45257084e12bfb4a86169b4b47f641e3":[2,0,1,1,0,4],
diff --git a/doc/prebuilt/html/xeno3prm/search/search.idx 
b/doc/prebuilt/html/xeno3prm/search/search.idx
index 0e25a6c..b3f6d07 100644
Binary files a/doc/prebuilt/html/xeno3prm/search/search.idx and 
b/doc/prebuilt/html/xeno3prm/search/search.idx differ
diff --git a/doc/prebuilt/html/xeno3prm/structrt__timer__info.html 
b/doc/prebuilt/html/xeno3prm/structrt__timer__info.html
index 4d8ad97..2abbc82 100644
--- a/doc/prebuilt/html/xeno3prm/structrt__timer__info.html
+++ b/doc/prebuilt/html/xeno3prm/structrt__timer__info.html
@@ -105,16 +105,13 @@ Data Fields</h2></td></tr>
 RTIME&#160;</td><td class="memItemRight" valign="bottom"><a class="el" 
href="structrt__timer__info.html#a02f413497af5105ef5df396c378dbbf2">period</a></td></tr>
 <tr class="memdesc:a02f413497af5105ef5df396c378dbbf2"><td 
class="mdescLeft">&#160;</td><td class="mdescRight">Clock resolution in 
nanoseconds. <br/></td></tr>
 <tr class="separator:a02f413497af5105ef5df396c378dbbf2"><td 
class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a1a7d07f1d0ece5618812826d1f28c9d2"><td class="memItemLeft" 
align="right" valign="top">RTIME&#160;</td><td class="memItemRight" 
valign="bottom"><a class="el" 
href="structrt__timer__info.html#a1a7d07f1d0ece5618812826d1f28c9d2">tsc</a></td></tr>
-<tr class="memdesc:a1a7d07f1d0ece5618812826d1f28c9d2"><td 
class="mdescLeft">&#160;</td><td class="mdescRight">Current time stamp counter 
value.  <a href="#a1a7d07f1d0ece5618812826d1f28c9d2">More...</a><br/></td></tr>
-<tr class="separator:a1a7d07f1d0ece5618812826d1f28c9d2"><td 
class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:ae0b40e3f54176cb6eaff19a0a42ecd3e"><td class="memItemLeft" 
align="right" valign="top">RTIME&#160;</td><td class="memItemRight" 
valign="bottom"><a class="el" 
href="structrt__timer__info.html#ae0b40e3f54176cb6eaff19a0a42ecd3e">date</a></td></tr>
-<tr class="memdesc:ae0b40e3f54176cb6eaff19a0a42ecd3e"><td 
class="mdescLeft">&#160;</td><td class="mdescRight">Current monotonic date, 
based on the time stamp counter value.  <a 
href="#ae0b40e3f54176cb6eaff19a0a42ecd3e">More...</a><br/></td></tr>
+<tr class="memdesc:ae0b40e3f54176cb6eaff19a0a42ecd3e"><td 
class="mdescLeft">&#160;</td><td class="mdescRight">Current monotonic date 
expressed in clock ticks.  <a 
href="#ae0b40e3f54176cb6eaff19a0a42ecd3e">More...</a><br/></td></tr>
 <tr class="separator:ae0b40e3f54176cb6eaff19a0a42ecd3e"><td 
class="memSeparator" colspan="2">&#160;</td></tr>
 </table>
 <a name="details" id="details"></a><h2 class="groupheader">Detailed 
Description</h2>
 <div class="textblock"><p>Timer status descriptor. </p>
-<p><a class="anchor" id="RT_TIMER_INFO"></a> This structure reports various 
static and runtime information about the timer, returned by a call to <a 
class="el" href="group__alchemy__timer.html#ga4909da5d803e8c98fef89cfc0e921465" 
title="Inquire about the Xenomai core timer. ">rt_timer_inquire()</a>. </p>
+<p><a class="anchor" id="RT_TIMER_INFO"></a> This structure reports 
information about the Alchemy clock, returned by a call to <a class="el" 
href="group__alchemy__timer.html#ga4909da5d803e8c98fef89cfc0e921465" 
title="Inquire about the Alchemy clock. ">rt_timer_inquire()</a>. </p>
 </div><h2 class="groupheader">Field Documentation</h2>
 <a class="anchor" id="ae0b40e3f54176cb6eaff19a0a42ecd3e"></a>
 <div class="memitem">
@@ -126,25 +123,8 @@ RTIME&#160;</td><td class="memItemRight" 
valign="bottom"><a class="el" href="str
       </table>
 </div><div class="memdoc">
 
-<p>Current monotonic date, based on the time stamp counter value. </p>
-<p>The date is expressed in clock ticks, therefore depends on the Alchemy 
clock resolution applicable to the current process. </p>
-
-<p>Referenced by <a class="el" 
href="group__alchemy__timer.html#ga4909da5d803e8c98fef89cfc0e921465">rt_timer_inquire()</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a1a7d07f1d0ece5618812826d1f28c9d2"></a>
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">RTIME rt_timer_info::tsc</td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-
-<p>Current time stamp counter value. </p>
-<p>The source of this information is hardware-dependent, and does not depend 
on the per-process clock settings. Consecutive readings from a single CPU are 
guaranteed to be monotonically incrementing, however readings may not be 
synchronized on multi-core hardware if the time stamp counter is local to each 
CPU. Therefore, whether consecutive readings from different CPUs are consistent 
and monotonically incrementing depends on the underlying TSC source. </p>
+<p>Current monotonic date expressed in clock ticks. </p>
+<p>The duration of a tick depends on the Alchemy clock resolution for the 
process (see &ndash;alchemy-clock-resolution option, defaults to 1 nanosecond). 
</p>
 
 <p>Referenced by <a class="el" 
href="group__alchemy__timer.html#ga4909da5d803e8c98fef89cfc0e921465">rt_timer_inquire()</a>.</p>
 
diff --git a/doc/prebuilt/html/xeno3prm/structrt__timer__info.js 
b/doc/prebuilt/html/xeno3prm/structrt__timer__info.js
index 4c40945..f7c30b9 100644
--- a/doc/prebuilt/html/xeno3prm/structrt__timer__info.js
+++ b/doc/prebuilt/html/xeno3prm/structrt__timer__info.js
@@ -1,6 +1,5 @@
 var structrt__timer__info =
 [
     [ "date", "structrt__timer__info.html#ae0b40e3f54176cb6eaff19a0a42ecd3e", 
null ],
-    [ "period", 
"structrt__timer__info.html#a02f413497af5105ef5df396c378dbbf2", null ],
-    [ "tsc", "structrt__timer__info.html#a1a7d07f1d0ece5618812826d1f28c9d2", 
null ]
+    [ "period", 
"structrt__timer__info.html#a02f413497af5105ef5df396c378dbbf2", null ]
 ];
\ No newline at end of file
diff --git a/doc/prebuilt/html/xeno3prm/sys_2cobalt_8h_source.html 
b/doc/prebuilt/html/xeno3prm/sys_2cobalt_8h_source.html
index f5308f3..52a6830 100644
--- a/doc/prebuilt/html/xeno3prm/sys_2cobalt_8h_source.html
+++ b/doc/prebuilt/html/xeno3prm/sys_2cobalt_8h_source.html
@@ -166,83 +166,85 @@ 
$(document).ready(function(){initNavTree('sys_2cobalt_8h_source.html','');});
 <div class="line"><a name="l00071"></a><span class="lineno">   
71</span>&#160;</div>
 <div class="line"><a name="l00072"></a><span class="lineno">   
72</span>&#160;<span class="keywordtype">void</span> cobalt_thread_harden(<span 
class="keywordtype">void</span>);</div>
 <div class="line"><a name="l00073"></a><span class="lineno">   
73</span>&#160;</div>
-<div class="line"><a name="l00074"></a><span class="lineno">   
74</span>&#160;<span class="keywordtype">int</span> 
cobalt_thread_join(pthread_t thread);</div>
+<div class="line"><a name="l00074"></a><span class="lineno">   
74</span>&#160;<span class="keywordtype">void</span> cobalt_thread_relax(<span 
class="keywordtype">void</span>);</div>
 <div class="line"><a name="l00075"></a><span class="lineno">   
75</span>&#160;</div>
-<div class="line"><a name="l00076"></a><span class="lineno">   
76</span>&#160;pid_t cobalt_thread_pid(pthread_t thread);</div>
+<div class="line"><a name="l00076"></a><span class="lineno">   
76</span>&#160;<span class="keywordtype">int</span> 
cobalt_thread_join(pthread_t thread);</div>
 <div class="line"><a name="l00077"></a><span class="lineno">   
77</span>&#160;</div>
-<div class="line"><a name="l00078"></a><span class="lineno">   
78</span>&#160;<span class="keywordtype">int</span> 
cobalt_monitor_init(cobalt_monitor_t *mon,</div>
-<div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160; 
                       clockid_t clk_id, <span class="keywordtype">int</span> 
flags);</div>
-<div class="line"><a name="l00080"></a><span class="lineno">   
80</span>&#160;</div>
-<div class="line"><a name="l00081"></a><span class="lineno">   
81</span>&#160;<span class="keywordtype">int</span> 
cobalt_monitor_destroy(cobalt_monitor_t *mon);</div>
+<div class="line"><a name="l00078"></a><span class="lineno">   
78</span>&#160;pid_t cobalt_thread_pid(pthread_t thread);</div>
+<div class="line"><a name="l00079"></a><span class="lineno">   
79</span>&#160;</div>
+<div class="line"><a name="l00080"></a><span class="lineno">   
80</span>&#160;<span class="keywordtype">int</span> 
cobalt_monitor_init(cobalt_monitor_t *mon,</div>
+<div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160; 
                       clockid_t clk_id, <span class="keywordtype">int</span> 
flags);</div>
 <div class="line"><a name="l00082"></a><span class="lineno">   
82</span>&#160;</div>
-<div class="line"><a name="l00083"></a><span class="lineno">   
83</span>&#160;<span class="keywordtype">int</span> 
cobalt_monitor_enter(cobalt_monitor_t *mon);</div>
+<div class="line"><a name="l00083"></a><span class="lineno">   
83</span>&#160;<span class="keywordtype">int</span> 
cobalt_monitor_destroy(cobalt_monitor_t *mon);</div>
 <div class="line"><a name="l00084"></a><span class="lineno">   
84</span>&#160;</div>
-<div class="line"><a name="l00085"></a><span class="lineno">   
85</span>&#160;<span class="keywordtype">int</span> 
cobalt_monitor_exit(cobalt_monitor_t *mon);</div>
+<div class="line"><a name="l00085"></a><span class="lineno">   
85</span>&#160;<span class="keywordtype">int</span> 
cobalt_monitor_enter(cobalt_monitor_t *mon);</div>
 <div class="line"><a name="l00086"></a><span class="lineno">   
86</span>&#160;</div>
-<div class="line"><a name="l00087"></a><span class="lineno">   
87</span>&#160;<span class="keywordtype">int</span> 
cobalt_monitor_wait(cobalt_monitor_t *mon, <span class="keywordtype">int</span> 
event,</div>
-<div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160; 
                       <span class="keyword">const</span> <span 
class="keyword">struct</span> timespec *ts);</div>
-<div class="line"><a name="l00089"></a><span class="lineno">   
89</span>&#160;</div>
-<div class="line"><a name="l00090"></a><span class="lineno">   
90</span>&#160;<span class="keywordtype">void</span> 
cobalt_monitor_grant(cobalt_monitor_t *mon,</div>
-<div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160; 
                         <span class="keyword">struct</span> 
xnthread_user_window *u_window);</div>
-<div class="line"><a name="l00092"></a><span class="lineno">   
92</span>&#160;</div>
-<div class="line"><a name="l00093"></a><span class="lineno">   
93</span>&#160;<span class="keywordtype">int</span> 
cobalt_monitor_grant_sync(cobalt_monitor_t *mon,</div>
-<div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160; 
                             <span class="keyword">struct</span> 
xnthread_user_window *u_window);</div>
-<div class="line"><a name="l00095"></a><span class="lineno">   
95</span>&#160;</div>
-<div class="line"><a name="l00096"></a><span class="lineno">   
96</span>&#160;<span class="keywordtype">void</span> 
cobalt_monitor_grant_all(cobalt_monitor_t *mon);</div>
+<div class="line"><a name="l00087"></a><span class="lineno">   
87</span>&#160;<span class="keywordtype">int</span> 
cobalt_monitor_exit(cobalt_monitor_t *mon);</div>
+<div class="line"><a name="l00088"></a><span class="lineno">   
88</span>&#160;</div>
+<div class="line"><a name="l00089"></a><span class="lineno">   
89</span>&#160;<span class="keywordtype">int</span> 
cobalt_monitor_wait(cobalt_monitor_t *mon, <span class="keywordtype">int</span> 
event,</div>
+<div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160; 
                       <span class="keyword">const</span> <span 
class="keyword">struct</span> timespec *ts);</div>
+<div class="line"><a name="l00091"></a><span class="lineno">   
91</span>&#160;</div>
+<div class="line"><a name="l00092"></a><span class="lineno">   
92</span>&#160;<span class="keywordtype">void</span> 
cobalt_monitor_grant(cobalt_monitor_t *mon,</div>
+<div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160; 
                         <span class="keyword">struct</span> 
xnthread_user_window *u_window);</div>
+<div class="line"><a name="l00094"></a><span class="lineno">   
94</span>&#160;</div>
+<div class="line"><a name="l00095"></a><span class="lineno">   
95</span>&#160;<span class="keywordtype">int</span> 
cobalt_monitor_grant_sync(cobalt_monitor_t *mon,</div>
+<div class="line"><a name="l00096"></a><span class="lineno">   96</span>&#160; 
                             <span class="keyword">struct</span> 
xnthread_user_window *u_window);</div>
 <div class="line"><a name="l00097"></a><span class="lineno">   
97</span>&#160;</div>
-<div class="line"><a name="l00098"></a><span class="lineno">   
98</span>&#160;<span class="keywordtype">int</span> 
cobalt_monitor_grant_all_sync(cobalt_monitor_t *mon);</div>
+<div class="line"><a name="l00098"></a><span class="lineno">   
98</span>&#160;<span class="keywordtype">void</span> 
cobalt_monitor_grant_all(cobalt_monitor_t *mon);</div>
 <div class="line"><a name="l00099"></a><span class="lineno">   
99</span>&#160;</div>
-<div class="line"><a name="l00100"></a><span class="lineno">  
100</span>&#160;<span class="keywordtype">void</span> 
cobalt_monitor_drain(cobalt_monitor_t *mon);</div>
+<div class="line"><a name="l00100"></a><span class="lineno">  
100</span>&#160;<span class="keywordtype">int</span> 
cobalt_monitor_grant_all_sync(cobalt_monitor_t *mon);</div>
 <div class="line"><a name="l00101"></a><span class="lineno">  
101</span>&#160;</div>
-<div class="line"><a name="l00102"></a><span class="lineno">  
102</span>&#160;<span class="keywordtype">int</span> 
cobalt_monitor_drain_sync(cobalt_monitor_t *mon);</div>
+<div class="line"><a name="l00102"></a><span class="lineno">  
102</span>&#160;<span class="keywordtype">void</span> 
cobalt_monitor_drain(cobalt_monitor_t *mon);</div>
 <div class="line"><a name="l00103"></a><span class="lineno">  
103</span>&#160;</div>
-<div class="line"><a name="l00104"></a><span class="lineno">  
104</span>&#160;<span class="keywordtype">void</span> 
cobalt_monitor_drain_all(cobalt_monitor_t *mon);</div>
+<div class="line"><a name="l00104"></a><span class="lineno">  
104</span>&#160;<span class="keywordtype">int</span> 
cobalt_monitor_drain_sync(cobalt_monitor_t *mon);</div>
 <div class="line"><a name="l00105"></a><span class="lineno">  
105</span>&#160;</div>
-<div class="line"><a name="l00106"></a><span class="lineno">  
106</span>&#160;<span class="keywordtype">int</span> 
cobalt_monitor_drain_all_sync(cobalt_monitor_t *mon);</div>
+<div class="line"><a name="l00106"></a><span class="lineno">  
106</span>&#160;<span class="keywordtype">void</span> 
cobalt_monitor_drain_all(cobalt_monitor_t *mon);</div>
 <div class="line"><a name="l00107"></a><span class="lineno">  
107</span>&#160;</div>
-<div class="line"><a name="l00108"></a><span class="lineno">  
108</span>&#160;<span class="keywordtype">int</span> 
cobalt_event_init(cobalt_event_t *event,</div>
-<div class="line"><a name="l00109"></a><span class="lineno">  109</span>&#160; 
                     <span class="keywordtype">unsigned</span> <span 
class="keywordtype">int</span> value,</div>
-<div class="line"><a name="l00110"></a><span class="lineno">  110</span>&#160; 
                     <span class="keywordtype">int</span> flags);</div>
-<div class="line"><a name="l00111"></a><span class="lineno">  
111</span>&#160;</div>
-<div class="line"><a name="l00112"></a><span class="lineno">  
112</span>&#160;<span class="keywordtype">int</span> 
cobalt_event_post(cobalt_event_t *event,</div>
-<div class="line"><a name="l00113"></a><span class="lineno">  113</span>&#160; 
                     <span class="keywordtype">unsigned</span> <span 
class="keywordtype">int</span> bits);</div>
-<div class="line"><a name="l00114"></a><span class="lineno">  
114</span>&#160;</div>
-<div class="line"><a name="l00115"></a><span class="lineno">  
115</span>&#160;<span class="keywordtype">int</span> 
cobalt_event_wait(cobalt_event_t *event,</div>
-<div class="line"><a name="l00116"></a><span class="lineno">  116</span>&#160; 
                     <span class="keywordtype">unsigned</span> <span 
class="keywordtype">int</span> bits,</div>
-<div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160; 
                     <span class="keywordtype">unsigned</span> <span 
class="keywordtype">int</span> *bits_r,</div>
-<div class="line"><a name="l00118"></a><span class="lineno">  118</span>&#160; 
                     <span class="keywordtype">int</span> mode,</div>
-<div class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160; 
                     <span class="keyword">const</span> <span 
class="keyword">struct</span> timespec *timeout);</div>
-<div class="line"><a name="l00120"></a><span class="lineno">  
120</span>&#160;</div>
-<div class="line"><a name="l00121"></a><span class="lineno">  
121</span>&#160;<span class="keywordtype">unsigned</span> <span 
class="keywordtype">long</span> cobalt_event_clear(cobalt_event_t *event,</div>
-<div class="line"><a name="l00122"></a><span class="lineno">  122</span>&#160; 
                                <span class="keywordtype">unsigned</span> <span 
class="keywordtype">int</span> bits);</div>
-<div class="line"><a name="l00123"></a><span class="lineno">  
123</span>&#160;</div>
-<div class="line"><a name="l00124"></a><span class="lineno">  
124</span>&#160;<span class="keywordtype">int</span> 
cobalt_event_inquire(cobalt_event_t *event,</div>
-<div class="line"><a name="l00125"></a><span class="lineno">  125</span>&#160; 
                        <span class="keyword">struct</span> cobalt_event_info 
*info,</div>
-<div class="line"><a name="l00126"></a><span class="lineno">  126</span>&#160; 
                        pid_t *waitlist, <span 
class="keywordtype">size_t</span> waitsz);</div>
-<div class="line"><a name="l00127"></a><span class="lineno">  
127</span>&#160;</div>
-<div class="line"><a name="l00128"></a><span class="lineno">  
128</span>&#160;<span class="keywordtype">int</span> 
cobalt_event_destroy(cobalt_event_t *event);</div>
+<div class="line"><a name="l00108"></a><span class="lineno">  
108</span>&#160;<span class="keywordtype">int</span> 
cobalt_monitor_drain_all_sync(cobalt_monitor_t *mon);</div>
+<div class="line"><a name="l00109"></a><span class="lineno">  
109</span>&#160;</div>
+<div class="line"><a name="l00110"></a><span class="lineno">  
110</span>&#160;<span class="keywordtype">int</span> 
cobalt_event_init(cobalt_event_t *event,</div>
+<div class="line"><a name="l00111"></a><span class="lineno">  111</span>&#160; 
                     <span class="keywordtype">unsigned</span> <span 
class="keywordtype">int</span> value,</div>
+<div class="line"><a name="l00112"></a><span class="lineno">  112</span>&#160; 
                     <span class="keywordtype">int</span> flags);</div>
+<div class="line"><a name="l00113"></a><span class="lineno">  
113</span>&#160;</div>
+<div class="line"><a name="l00114"></a><span class="lineno">  
114</span>&#160;<span class="keywordtype">int</span> 
cobalt_event_post(cobalt_event_t *event,</div>
+<div class="line"><a name="l00115"></a><span class="lineno">  115</span>&#160; 
                     <span class="keywordtype">unsigned</span> <span 
class="keywordtype">int</span> bits);</div>
+<div class="line"><a name="l00116"></a><span class="lineno">  
116</span>&#160;</div>
+<div class="line"><a name="l00117"></a><span class="lineno">  
117</span>&#160;<span class="keywordtype">int</span> 
cobalt_event_wait(cobalt_event_t *event,</div>
+<div class="line"><a name="l00118"></a><span class="lineno">  118</span>&#160; 
                     <span class="keywordtype">unsigned</span> <span 
class="keywordtype">int</span> bits,</div>
+<div class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160; 
                     <span class="keywordtype">unsigned</span> <span 
class="keywordtype">int</span> *bits_r,</div>
+<div class="line"><a name="l00120"></a><span class="lineno">  120</span>&#160; 
                     <span class="keywordtype">int</span> mode,</div>
+<div class="line"><a name="l00121"></a><span class="lineno">  121</span>&#160; 
                     <span class="keyword">const</span> <span 
class="keyword">struct</span> timespec *timeout);</div>
+<div class="line"><a name="l00122"></a><span class="lineno">  
122</span>&#160;</div>
+<div class="line"><a name="l00123"></a><span class="lineno">  
123</span>&#160;<span class="keywordtype">unsigned</span> <span 
class="keywordtype">long</span> cobalt_event_clear(cobalt_event_t *event,</div>
+<div class="line"><a name="l00124"></a><span class="lineno">  124</span>&#160; 
                                <span class="keywordtype">unsigned</span> <span 
class="keywordtype">int</span> bits);</div>
+<div class="line"><a name="l00125"></a><span class="lineno">  
125</span>&#160;</div>
+<div class="line"><a name="l00126"></a><span class="lineno">  
126</span>&#160;<span class="keywordtype">int</span> 
cobalt_event_inquire(cobalt_event_t *event,</div>
+<div class="line"><a name="l00127"></a><span class="lineno">  127</span>&#160; 
                        <span class="keyword">struct</span> cobalt_event_info 
*info,</div>
+<div class="line"><a name="l00128"></a><span class="lineno">  128</span>&#160; 
                        pid_t *waitlist, <span 
class="keywordtype">size_t</span> waitsz);</div>
 <div class="line"><a name="l00129"></a><span class="lineno">  
129</span>&#160;</div>
-<div class="line"><a name="l00130"></a><span class="lineno">  
130</span>&#160;<span class="keywordtype">int</span> cobalt_sem_inquire(sem_t 
*sem, <span class="keyword">struct</span> cobalt_sem_info *info,</div>
-<div class="line"><a name="l00131"></a><span class="lineno">  131</span>&#160; 
                      pid_t *waitlist, <span class="keywordtype">size_t</span> 
waitsz);</div>
-<div class="line"><a name="l00132"></a><span class="lineno">  
132</span>&#160;</div>
-<div class="line"><a name="l00133"></a><span class="lineno">  
133</span>&#160;<span class="keywordtype">int</span> 
cobalt_sched_weighted_prio(<span class="keywordtype">int</span> policy,</div>
-<div class="line"><a name="l00134"></a><span class="lineno">  134</span>&#160; 
                              <span class="keyword">const</span> <span 
class="keyword">struct</span> sched_param_ex *param_ex);</div>
-<div class="line"><a name="l00135"></a><span class="lineno">  
135</span>&#160;</div>
-<div class="line"><a name="l00136"></a><span class="lineno">  
136</span>&#160;<span class="keywordtype">void</span> 
cobalt_register_tsd_hook(<span class="keyword">struct</span> cobalt_tsd_hook 
*th);</div>
+<div class="line"><a name="l00130"></a><span class="lineno">  
130</span>&#160;<span class="keywordtype">int</span> 
cobalt_event_destroy(cobalt_event_t *event);</div>
+<div class="line"><a name="l00131"></a><span class="lineno">  
131</span>&#160;</div>
+<div class="line"><a name="l00132"></a><span class="lineno">  
132</span>&#160;<span class="keywordtype">int</span> cobalt_sem_inquire(sem_t 
*sem, <span class="keyword">struct</span> cobalt_sem_info *info,</div>
+<div class="line"><a name="l00133"></a><span class="lineno">  133</span>&#160; 
                      pid_t *waitlist, <span class="keywordtype">size_t</span> 
waitsz);</div>
+<div class="line"><a name="l00134"></a><span class="lineno">  
134</span>&#160;</div>
+<div class="line"><a name="l00135"></a><span class="lineno">  
135</span>&#160;<span class="keywordtype">int</span> 
cobalt_sched_weighted_prio(<span class="keywordtype">int</span> policy,</div>
+<div class="line"><a name="l00136"></a><span class="lineno">  136</span>&#160; 
                              <span class="keyword">const</span> <span 
class="keyword">struct</span> sched_param_ex *param_ex);</div>
 <div class="line"><a name="l00137"></a><span class="lineno">  
137</span>&#160;</div>
-<div class="line"><a name="l00138"></a><span class="lineno">  
138</span>&#160;<span class="keywordtype">void</span> __libcobalt_init(<span 
class="keywordtype">void</span>);</div>
+<div class="line"><a name="l00138"></a><span class="lineno">  
138</span>&#160;<span class="keywordtype">void</span> 
cobalt_register_tsd_hook(<span class="keyword">struct</span> cobalt_tsd_hook 
*th);</div>
 <div class="line"><a name="l00139"></a><span class="lineno">  
139</span>&#160;</div>
-<div class="line"><a name="l00140"></a><span class="lineno">  
140</span>&#160;<span class="keyword">extern</span> <span 
class="keywordtype">int</span> __cobalt_defer_init;</div>
+<div class="line"><a name="l00140"></a><span class="lineno">  
140</span>&#160;<span class="keywordtype">void</span> __libcobalt_init(<span 
class="keywordtype">void</span>);</div>
 <div class="line"><a name="l00141"></a><span class="lineno">  
141</span>&#160;</div>
-<div class="line"><a name="l00142"></a><span class="lineno">  
142</span>&#160;<span class="keyword">extern</span> <span 
class="keywordtype">int</span> __cobalt_main_prio;</div>
+<div class="line"><a name="l00142"></a><span class="lineno">  
142</span>&#160;<span class="keyword">extern</span> <span 
class="keywordtype">int</span> __cobalt_defer_init;</div>
 <div class="line"><a name="l00143"></a><span class="lineno">  
143</span>&#160;</div>
-<div class="line"><a name="l00144"></a><span class="lineno">  
144</span>&#160;<span class="keyword">extern</span> <span 
class="keywordtype">int</span> __cobalt_print_bufsz;</div>
+<div class="line"><a name="l00144"></a><span class="lineno">  
144</span>&#160;<span class="keyword">extern</span> <span 
class="keywordtype">int</span> __cobalt_main_prio;</div>
 <div class="line"><a name="l00145"></a><span class="lineno">  
145</span>&#160;</div>
-<div class="line"><a name="l00146"></a><span class="lineno">  
146</span>&#160;<span class="preprocessor">#ifdef __cplusplus</span></div>
-<div class="line"><a name="l00147"></a><span class="lineno">  
147</span>&#160;<span class="preprocessor"></span>}</div>
-<div class="line"><a name="l00148"></a><span class="lineno">  
148</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00149"></a><span class="lineno">  
149</span>&#160;<span class="preprocessor"></span></div>
-<div class="line"><a name="l00150"></a><span class="lineno">  
150</span>&#160;<span class="preprocessor">#endif </span><span 
class="comment">/* !_COBALT_SYS_COBALT_H */</span><span 
class="preprocessor"></span></div>
+<div class="line"><a name="l00146"></a><span class="lineno">  
146</span>&#160;<span class="keyword">extern</span> <span 
class="keywordtype">int</span> __cobalt_print_bufsz;</div>
+<div class="line"><a name="l00147"></a><span class="lineno">  
147</span>&#160;</div>
+<div class="line"><a name="l00148"></a><span class="lineno">  
148</span>&#160;<span class="preprocessor">#ifdef __cplusplus</span></div>
+<div class="line"><a name="l00149"></a><span class="lineno">  
149</span>&#160;<span class="preprocessor"></span>}</div>
+<div class="line"><a name="l00150"></a><span class="lineno">  
150</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00151"></a><span class="lineno">  
151</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l00152"></a><span class="lineno">  
152</span>&#160;<span class="preprocessor">#endif </span><span 
class="comment">/* !_COBALT_SYS_COBALT_H */</span><span 
class="preprocessor"></span></div>
 </div><!-- fragment --></div><!-- contents -->
 </div><!-- doc-content -->
 <!-- start footer part -->
diff --git a/doc/prebuilt/html/xeno3prm/trank_8h_source.html 
b/doc/prebuilt/html/xeno3prm/trank_8h_source.html
index 8bbb726..9fd728c 100644
--- a/doc/prebuilt/html/xeno3prm/trank_8h_source.html
+++ b/doc/prebuilt/html/xeno3prm/trank_8h_source.html
@@ -118,7 +118,7 @@ 
$(document).ready(function(){initNavTree('trank_8h_source.html','');});
 <div class="line"><a name="l00023"></a><span class="lineno">   
23</span>&#160;<span class="preprocessor">#define trank_warning(__fmt, 
__args...) \</span></div>
 <div class="line"><a name="l00024"></a><span class="lineno">   
24</span>&#160;<span class="preprocessor">        warning(&quot;%s: &quot; 
__fmt, __func__, ##__args)</span></div>
 <div class="line"><a name="l00025"></a><span class="lineno">   
25</span>&#160;<span class="preprocessor"></span></div>
-<div class="line"><a name="l00026"></a><span class="lineno">   
26</span>&#160;<span class="preprocessor">#define __CURRENT(call)         
__hidden_ ## call</span></div>
+<div class="line"><a name="l00026"></a><span class="lineno">   
26</span>&#160;<span class="preprocessor">#define __CURRENT(call)         
__current_ ## call</span></div>
 <div class="line"><a name="l00027"></a><span class="lineno">   
27</span>&#160;<span class="preprocessor"></span></div>
 <div class="line"><a name="l00028"></a><span class="lineno">   
28</span>&#160;<span class="preprocessor">#define COMPAT_DECL(T, P)       
__typeof__(T) P</span></div>
 <div class="line"><a name="l00029"></a><span class="lineno">   
29</span>&#160;<span class="preprocessor"></span><span 
class="preprocessor">#define CURRENT_DECL(T, P)      __typeof__(T) 
__CURRENT(P)</span></div>
@@ -131,11 +131,11 @@ 
$(document).ready(function(){initNavTree('trank_8h_source.html','');});
 <div class="line"><a name="l00036"></a><span class="lineno">   
36</span>&#160;<span class="preprocessor"></span></div>
 <div class="line"><a name="l00037"></a><span class="lineno">   
37</span>&#160;<span class="preprocessor">#define COMPAT_DECL(T, P)</span></div>
 <div class="line"><a name="l00038"></a><span class="lineno">   
38</span>&#160;<span class="preprocessor"></span><span 
class="preprocessor">#define CURRENT_DECL(T, P)      __typeof__(T) P;        
\</span></div>
-<div class="line"><a name="l00039"></a><span class="lineno">   
39</span>&#160;<span class="preprocessor">                                
__typeof__(T) __hidden_ ## P</span></div>
+<div class="line"><a name="l00039"></a><span class="lineno">   
39</span>&#160;<span class="preprocessor">                                
__typeof__(T) __current_ ## P</span></div>
 <div class="line"><a name="l00040"></a><span class="lineno">   
40</span>&#160;<span class="preprocessor"></span></div>
 <div class="line"><a name="l00041"></a><span class="lineno">   
41</span>&#160;<span class="preprocessor">#define CURRENT_IMPL(T, I, A)         
  \</span></div>
-<div class="line"><a name="l00042"></a><span class="lineno">   
42</span>&#160;<span class="preprocessor">__typeof__(T) I A 
__attribute__((alias(&quot;__hidden_&quot; __stringify(I)), weak)); 
\</span></div>
-<div class="line"><a name="l00043"></a><span class="lineno">   
43</span>&#160;<span class="preprocessor">__typeof__(T) __hidden_ ## I 
A</span></div>
+<div class="line"><a name="l00042"></a><span class="lineno">   
42</span>&#160;<span class="preprocessor">__typeof__(T) I A 
__attribute__((alias(&quot;__current_&quot; __stringify(I)), weak)); 
\</span></div>
+<div class="line"><a name="l00043"></a><span class="lineno">   
43</span>&#160;<span class="preprocessor">__typeof__(T) __current_ ## I 
A</span></div>
 <div class="line"><a name="l00044"></a><span class="lineno">   
44</span>&#160;<span class="preprocessor"></span></div>
 <div class="line"><a name="l00045"></a><span class="lineno">   
45</span>&#160;<span class="preprocessor">#endif </span><span 
class="comment">/* !__XENO_COMPAT__ */</span><span 
class="preprocessor"></span></div>
 <div class="line"><a name="l00046"></a><span class="lineno">   
46</span>&#160;<span class="preprocessor"></span></div>
diff --git a/doc/prebuilt/html/xeno3prm/version_8h_source.html 
b/doc/prebuilt/html/xeno3prm/version_8h_source.html
index be121c4..56b3814 100644
--- a/doc/prebuilt/html/xeno3prm/version_8h_source.html
+++ b/doc/prebuilt/html/xeno3prm/version_8h_source.html
@@ -126,7 +126,9 @@ 
$(document).ready(function(){initNavTree('version_8h_source.html','');});
 <div class="line"><a name="l00031"></a><span class="lineno">   
31</span>&#160;<span class="preprocessor"></span></div>
 <div class="line"><a name="l00032"></a><span class="lineno">   
32</span>&#160;<span class="preprocessor">#define XENO_VERSION_STRING     
CONFIG_XENO_VERSION_STRING</span></div>
 <div class="line"><a name="l00033"></a><span class="lineno">   
33</span>&#160;<span class="preprocessor"></span></div>
-<div class="line"><a name="l00034"></a><span class="lineno">   
34</span>&#160;<span class="preprocessor">#endif </span><span 
class="comment">/* _XENOMAI_VERSION_H */</span><span 
class="preprocessor"></span></div>
+<div class="line"><a name="l00034"></a><span class="lineno">   
34</span>&#160;<span class="preprocessor">#define XENO_VERSION_NAME       
CONFIG_XENO_VERSION_NAME</span></div>
+<div class="line"><a name="l00035"></a><span class="lineno">   
35</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l00036"></a><span class="lineno">   
36</span>&#160;<span class="preprocessor">#endif </span><span 
class="comment">/* _XENOMAI_VERSION_H */</span><span 
class="preprocessor"></span></div>
 </div><!-- fragment --></div><!-- contents -->
 </div><!-- doc-content -->
 <!-- start footer part -->
diff --git a/doc/prebuilt/man/man1/autotune.1 b/doc/prebuilt/man/man1/autotune.1
index 7b17f1b..9229061 100644
--- a/doc/prebuilt/man/man1/autotune.1
+++ b/doc/prebuilt/man/man1/autotune.1
@@ -122,9 +122,9 @@ Estimate the kernel gravity value, which is the shortest 
time the platform needs
 Estimate the user gravity value, which is the shortest time the platform needs 
to deliver an IRQ to a user\-space task/thread running in a Xenomai application 
process\&. This delay includes the context switching time\&.
 .RE
 .PP
-\fB*\-\-period <ns>\fR
+\fB\-\-period <ns>\fR
 .RS 4
-Set the sampling period to the given count of nanoseconds\&. The estimation is 
performed by measuring the jitter between the ideal time at which a timer tick 
should be received, and the actual time it is eventually received, for a series 
of ticks\&. This value expresses the delay between two of these ticks\&. If too 
short, a lockup might occur\&. A commonly observed result is: the larger the 
delay, the higher the latency, due to CPU cache effects (i\&.e\&. the 
real\-time code/data is more likely to get evicted from the cachelines as the 
non real\-time activity can slip in, treading over a larger address space)\&.
+Set the sampling period to the given count of nanoseconds\&. The estimation is 
performed by measuring the jitter between the ideal time at which a timer tick 
should be received, and the actual time it is eventually received, for a series 
of ticks\&. This value expresses the delay between two of these ticks\&. If too 
short, a lockup might occur\&. A commonly observed result is that the larger 
the delay, the higher the latency, due to CPU cache effects (i\&.e\&. the 
real\-time code/data is more likely to get evicted from the cachelines as the 
non real\-time activity can slip in, treading over a larger address space)\&.
 .RE
 .PP
 \fB\-\-reset\fR
@@ -157,7 +157,7 @@ If none of \-\-irq, \-\-kernel or \-\-user is given, an 
estimation is done for e
 .sp
 The auto\-tuning process may take some time for completing the estimation\&. 
Although this delay may vary across hardware platforms, running for 30 seconds 
is common\&.
 .sp
-Once the gravity values are known for a particular hardware, one may write 
them to /proc/xenomai/clock/coreclck from some system init script to set up the 
Xenomai core clock accordingly, e\&.g:
+Once the gravity values are known for a particular hardware, one may write 
them to /proc/xenomai/clock/coreclck from some system init script to set up the 
Xenomai core clock accordingly, instead of running the auto\-tuner after each 
boot e\&.g:
 .sp
 .if n \{\
 .RS 4
diff --git a/doc/prebuilt/man/man1/dohell.1 b/doc/prebuilt/man/man1/dohell.1
index 241b121..23081b4 100644
--- a/doc/prebuilt/man/man1/dohell.1
+++ b/doc/prebuilt/man/man1/dohell.1
@@ -2,12 +2,12 @@
 .\"     Title: dohell
 .\"    Author: [FIXME: author] [see http://docbook.sf.net/el/author]
 .\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
-.\"      Date: 09/24/2014
+.\"      Date: 09/28/2014
 .\"    Manual: Xenomai Manual
 .\"    Source: Xenomai 3.0-rc1
 .\"  Language: English
 .\"
-.TH "DOHELL" "1" "09/24/2014" "Xenomai 3\&.0\-rc1" "Xenomai Manual"
+.TH "DOHELL" "1" "09/28/2014" "Xenomai 3\&.0\-rc1" "Xenomai Manual"
 .\" -----------------------------------------------------------------
 .\" * Define some portability stuff
 .\" -----------------------------------------------------------------
diff --git a/doc/prebuilt/man/man1/xeno-test.1 
b/doc/prebuilt/man/man1/xeno-test.1
index b52de1c..c399474 100644
--- a/doc/prebuilt/man/man1/xeno-test.1
+++ b/doc/prebuilt/man/man1/xeno-test.1
@@ -2,12 +2,12 @@
 .\"     Title: xeno-test
 .\"    Author: [FIXME: author] [see http://docbook.sf.net/el/author]
 .\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
-.\"      Date: 09/24/2014
+.\"      Date: 09/28/2014
 .\"    Manual: Xenomai Manual
 .\"    Source: Xenomai 3.0-rc1
 .\"  Language: English
 .\"
-.TH "XENO\-TEST" "1" "09/24/2014" "Xenomai 3\&.0\-rc1" "Xenomai Manual"
+.TH "XENO\-TEST" "1" "09/28/2014" "Xenomai 3\&.0\-rc1" "Xenomai Manual"
 .\" -----------------------------------------------------------------
 .\" * Define some portability stuff
 .\" -----------------------------------------------------------------
diff --git a/doc/prebuilt/pdf/MIGRATION.pdf b/doc/prebuilt/pdf/MIGRATION.pdf
index 1517b55..2ae577f 100644
Binary files a/doc/prebuilt/pdf/MIGRATION.pdf and 
b/doc/prebuilt/pdf/MIGRATION.pdf differ
diff --git a/doc/prebuilt/pdf/README.APPLICATIONS.pdf 
b/doc/prebuilt/pdf/README.APPLICATIONS.pdf
index b5b3a3c..fc551c8 100644
Binary files a/doc/prebuilt/pdf/README.APPLICATIONS.pdf and 
b/doc/prebuilt/pdf/README.APPLICATIONS.pdf differ
diff --git a/doc/prebuilt/pdf/README.INSTALL.pdf 
b/doc/prebuilt/pdf/README.INSTALL.pdf
index 38c97eb..f46dac5 100644
Binary files a/doc/prebuilt/pdf/README.INSTALL.pdf and 
b/doc/prebuilt/pdf/README.INSTALL.pdf differ
diff --git a/doc/prebuilt/pdf/TROUBLESHOOTING.COBALT.pdf 
b/doc/prebuilt/pdf/TROUBLESHOOTING.COBALT.pdf
index 2c7b750..5771ac7 100644
Binary files a/doc/prebuilt/pdf/TROUBLESHOOTING.COBALT.pdf and 
b/doc/prebuilt/pdf/TROUBLESHOOTING.COBALT.pdf differ
diff --git a/doc/prebuilt/pdf/TROUBLESHOOTING.MERCURY.pdf 
b/doc/prebuilt/pdf/TROUBLESHOOTING.MERCURY.pdf
index 0b195c3..bc8a1e4 100644
Binary files a/doc/prebuilt/pdf/TROUBLESHOOTING.MERCURY.pdf and 
b/doc/prebuilt/pdf/TROUBLESHOOTING.MERCURY.pdf differ
diff --git a/doc/prebuilt/pdf/xeno3prm.pdf b/doc/prebuilt/pdf/xeno3prm.pdf
index fd4fbea..230f5f2 100644
Binary files a/doc/prebuilt/pdf/xeno3prm.pdf and 
b/doc/prebuilt/pdf/xeno3prm.pdf differ


_______________________________________________
Xenomai-git mailing list
Xenomai-git@xenomai.org
http://www.xenomai.org/mailman/listinfo/xenomai-git

Reply via email to