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’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.</p></div> +<div class="paragraph"><p>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.</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 <ns></strong> +<strong>--period <ns></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> <span class="comment">/*</span></div> <div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <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> <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> <span class="comment"> * to support this.</span></div> +<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="comment"> * to support this over Mercury.</span></div> <div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <span class="comment"> *</span></div> <div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <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> <span class="comment"> * won'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> <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> <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> <span class="comment"> */</span></div> -<div class="line"><a name="l00122"></a><span class="lineno"> 122</span> <span class="preprocessor">#ifdef CONFIG_XENO_COPPERPLATE_CLOCK_RESTRICTED</span></div> -<div class="line"><a name="l00123"></a><span class="lineno"> 123</span> <span class="preprocessor"></span></div> -<div class="line"><a name="l00124"></a><span class="lineno"> 124</span> <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> {</div> -<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>  <span class="keywordflow">return</span> ns;</div> -<div class="line"><a name="l00127"></a><span class="lineno"> 127</span> }</div> -<div class="line"><a name="l00128"></a><span class="lineno"> 128</span> </div> -<div class="line"><a name="l00129"></a><span class="lineno"> 129</span> <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> {</div> -<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>  <span class="keywordflow">return</span> tsc;</div> -<div class="line"><a name="l00132"></a><span class="lineno"> 132</span> }</div> -<div class="line"><a name="l00133"></a><span class="lineno"> 133</span> </div> -<div class="line"><a name="l00134"></a><span class="lineno"> 134</span> <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> <span class="preprocessor"></span></div> -<div class="line"><a name="l00136"></a><span class="lineno"> 136</span> <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> {</div> -<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>  <span class="keywordflow">return</span> cobalt_ns_to_ticks(ns);</div> +<div class="line"><a name="l00122"></a><span class="lineno"> 122</span> <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> {</div> +<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>  <span class="keywordflow">return</span> cobalt_ns_to_ticks(ns);</div> +<div class="line"><a name="l00125"></a><span class="lineno"> 125</span> }</div> +<div class="line"><a name="l00126"></a><span class="lineno"> 126</span> </div> +<div class="line"><a name="l00127"></a><span class="lineno"> 127</span> <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> {</div> +<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>  <span class="keywordflow">return</span> cobalt_ticks_to_ns(tsc);</div> +<div class="line"><a name="l00130"></a><span class="lineno"> 130</span> }</div> +<div class="line"><a name="l00131"></a><span class="lineno"> 131</span> </div> +<div class="line"><a name="l00132"></a><span class="lineno"> 132</span> <span class="keyword">static</span> <span class="keyword">inline</span></div> +<div class="line"><a name="l00133"></a><span class="lineno"> 133</span> <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> {</div> +<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> rem;</div> +<div class="line"><a name="l00136"></a><span class="lineno"> 136</span> </div> +<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>  ts->tv_sec = cobalt_divrem_billion(ns, &rem);</div> +<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>  ts->tv_nsec = rem;</div> <div class="line"><a name="l00139"></a><span class="lineno"> 139</span> }</div> <div class="line"><a name="l00140"></a><span class="lineno"> 140</span> </div> -<div class="line"><a name="l00141"></a><span class="lineno"> 141</span> <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> {</div> -<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>  <span class="keywordflow">return</span> cobalt_ticks_to_ns(tsc);</div> -<div class="line"><a name="l00144"></a><span class="lineno"> 144</span> }</div> -<div class="line"><a name="l00145"></a><span class="lineno"> 145</span> </div> -<div class="line"><a name="l00146"></a><span class="lineno"> 146</span> <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> <span class="preprocessor"></span></div> -<div class="line"><a name="l00148"></a><span class="lineno"> 148</span> <span class="keyword">static</span> <span class="keyword">inline</span></div> -<div class="line"><a name="l00149"></a><span class="lineno"> 149</span> <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> {</div> -<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> rem;</div> +<div class="line"><a name="l00141"></a><span class="lineno"> 141</span> <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> <span class="preprocessor"></span></div> +<div class="line"><a name="l00143"></a><span class="lineno"> 143</span> <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> {</div> +<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>  <span class="keywordflow">return</span> ns;</div> +<div class="line"><a name="l00146"></a><span class="lineno"> 146</span> }</div> +<div class="line"><a name="l00147"></a><span class="lineno"> 147</span> </div> +<div class="line"><a name="l00148"></a><span class="lineno"> 148</span> <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> {</div> +<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>  <span class="keywordflow">return</span> tsc;</div> +<div class="line"><a name="l00151"></a><span class="lineno"> 151</span> }</div> <div class="line"><a name="l00152"></a><span class="lineno"> 152</span> </div> -<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>  ts->tv_sec = cobalt_divrem_billion(ns, &rem);</div> -<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>  ts->tv_nsec = rem;</div> -<div class="line"><a name="l00155"></a><span class="lineno"> 155</span> }</div> -<div class="line"><a name="l00156"></a><span class="lineno"> 156</span> </div> -<div class="line"><a name="l00157"></a><span class="lineno"> 157</span> <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> <span class="preprocessor"></span></div> -<div class="line"><a name="l00159"></a><span class="lineno"> 159</span> <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> {</div> -<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>  <span class="keywordflow">return</span> ns;</div> -<div class="line"><a name="l00162"></a><span class="lineno"> 162</span> }</div> -<div class="line"><a name="l00163"></a><span class="lineno"> 163</span> </div> -<div class="line"><a name="l00164"></a><span class="lineno"> 164</span> <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> {</div> -<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>  <span class="keywordflow">return</span> tsc;</div> -<div class="line"><a name="l00167"></a><span class="lineno"> 167</span> }</div> -<div class="line"><a name="l00168"></a><span class="lineno"> 168</span> </div> -<div class="line"><a name="l00169"></a><span class="lineno"> 169</span> <span class="keyword">static</span> <span class="keyword">inline</span></div> -<div class="line"><a name="l00170"></a><span class="lineno"> 170</span> <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> {</div> -<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>  ts->tv_sec = ns / 1000000000ULL;</div> -<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>  ts->tv_nsec = ns - (ts->tv_sec * 1000000000ULL);</div> +<div class="line"><a name="l00153"></a><span class="lineno"> 153</span> <span class="keyword">static</span> <span class="keyword">inline</span></div> +<div class="line"><a name="l00154"></a><span class="lineno"> 154</span> <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> {</div> +<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>  ts->tv_sec = ns / 1000000000ULL;</div> +<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>  ts->tv_nsec = ns - (ts->tv_sec * 1000000000ULL);</div> +<div class="line"><a name="l00158"></a><span class="lineno"> 158</span> }</div> +<div class="line"><a name="l00159"></a><span class="lineno"> 159</span> </div> +<div class="line"><a name="l00160"></a><span class="lineno"> 160</span> <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> <span class="preprocessor"></span></div> +<div class="line"><a name="l00162"></a><span class="lineno"> 162</span> <span class="preprocessor">#ifdef CONFIG_XENO_LORES_CLOCK_DISABLED</span></div> +<div class="line"><a name="l00163"></a><span class="lineno"> 163</span> <span class="preprocessor"></span></div> +<div class="line"><a name="l00164"></a><span class="lineno"> 164</span> <span class="keyword">static</span> <span class="keyword">inline</span></div> +<div class="line"><a name="l00165"></a><span class="lineno"> 165</span> <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>  clockid_t clk_id,</div> +<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>  ticks_t ticks, <span class="keyword">struct</span> timespec *ts)</div> +<div class="line"><a name="l00168"></a><span class="lineno"> 168</span> {</div> +<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>  <span class="keyword">struct </span>timespec now, delta;</div> +<div class="line"><a name="l00170"></a><span class="lineno"> 170</span> </div> +<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>  __RT(<a class="code" href="group__cobalt__api__time.html#ga10b73e75d375e5c244e32ea46be775bf">clock_gettime</a>(clk_id, &now));</div> +<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>  clockobj_ns_to_timespec(ticks, &delta);</div> +<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>  timespec_add(ts, &now, &delta);</div> <div class="line"><a name="l00174"></a><span class="lineno"> 174</span> }</div> <div class="line"><a name="l00175"></a><span class="lineno"> 175</span> </div> -<div class="line"><a name="l00176"></a><span class="lineno"> 176</span> <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> <span class="preprocessor"></span></div> -<div class="line"><a name="l00178"></a><span class="lineno"> 178</span> <span class="preprocessor">#ifdef CONFIG_XENO_LORES_CLOCK_DISABLED</span></div> -<div class="line"><a name="l00179"></a><span class="lineno"> 179</span> <span class="preprocessor"></span></div> -<div class="line"><a name="l00180"></a><span class="lineno"> 180</span> <span class="keyword">static</span> <span class="keyword">inline</span></div> -<div class="line"><a name="l00181"></a><span class="lineno"> 181</span> <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>  clockid_t clk_id,</div> -<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>  ticks_t ticks, <span class="keyword">struct</span> timespec *ts)</div> -<div class="line"><a name="l00184"></a><span class="lineno"> 184</span> {</div> -<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>  <span class="keyword">struct </span>timespec now, delta;</div> -<div class="line"><a name="l00186"></a><span class="lineno"> 186</span> </div> -<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>  __RT(<a class="code" href="group__cobalt__api__time.html#ga10b73e75d375e5c244e32ea46be775bf">clock_gettime</a>(clk_id, &now));</div> -<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>  clockobj_ns_to_timespec(ticks, &delta);</div> -<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>  timespec_add(ts, &now, &delta);</div> -<div class="line"><a name="l00190"></a><span class="lineno"> 190</span> }</div> -<div class="line"><a name="l00191"></a><span class="lineno"> 191</span> </div> -<div class="line"><a name="l00192"></a><span class="lineno"> 192</span> <span class="keyword">static</span> <span class="keyword">inline</span></div> -<div class="line"><a name="l00193"></a><span class="lineno"> 193</span> <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>  ticks_t ticks, <span class="keyword">struct</span> timespec *ts)</div> -<div class="line"><a name="l00195"></a><span class="lineno"> 195</span> {</div> -<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>  clockobj_ns_to_timespec(ticks, ts);</div> -<div class="line"><a name="l00197"></a><span class="lineno"> 197</span> }</div> -<div class="line"><a name="l00198"></a><span class="lineno"> 198</span> </div> -<div class="line"><a name="l00199"></a><span class="lineno"> 199</span> <span class="keyword">static</span> <span class="keyword">inline</span></div> -<div class="line"><a name="l00200"></a><span class="lineno"> 200</span> <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>  ticks_t ticks, <span class="keyword">struct</span> timespec *ts)</div> -<div class="line"><a name="l00202"></a><span class="lineno"> 202</span> {</div> -<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>  __clockobj_ticks_to_timespec(clkobj, ticks, ts);</div> -<div class="line"><a name="l00204"></a><span class="lineno"> 204</span> }</div> -<div class="line"><a name="l00205"></a><span class="lineno"> 205</span> </div> -<div class="line"><a name="l00206"></a><span class="lineno"> 206</span> <span class="keyword">static</span> <span class="keyword">inline</span></div> -<div class="line"><a name="l00207"></a><span class="lineno"> 207</span> <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> {</div> -<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>  <span class="keywordflow">return</span> 1;</div> -<div class="line"><a name="l00210"></a><span class="lineno"> 210</span> }</div> -<div class="line"><a name="l00211"></a><span class="lineno"> 211</span> </div> -<div class="line"><a name="l00212"></a><span class="lineno"> 212</span> <span class="keyword">static</span> <span class="keyword">inline</span></div> -<div class="line"><a name="l00213"></a><span class="lineno"> 213</span> <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> {</div> -<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>  <span class="keywordflow">return</span> 1000000000;</div> -<div class="line"><a name="l00216"></a><span class="lineno"> 216</span> }</div> -<div class="line"><a name="l00217"></a><span class="lineno"> 217</span> </div> -<div class="line"><a name="l00218"></a><span class="lineno"> 218</span> <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>  sticks_t ns)</div> -<div class="line"><a name="l00220"></a><span class="lineno"> 220</span> {</div> -<div class="line"><a name="l00221"></a><span class="lineno"> 221</span>  <span class="keywordflow">return</span> ns;</div> -<div class="line"><a name="l00222"></a><span class="lineno"> 222</span> }</div> -<div class="line"><a name="l00223"></a><span class="lineno"> 223</span> </div> -<div class="line"><a name="l00224"></a><span class="lineno"> 224</span> <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>  sticks_t ticks)</div> -<div class="line"><a name="l00226"></a><span class="lineno"> 226</span> {</div> -<div class="line"><a name="l00227"></a><span class="lineno"> 227</span>  <span class="keywordflow">return</span> ticks;</div> -<div class="line"><a name="l00228"></a><span class="lineno"> 228</span> }</div> -<div class="line"><a name="l00229"></a><span class="lineno"> 229</span> </div> -<div class="line"><a name="l00230"></a><span class="lineno"> 230</span> <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> <span class="preprocessor"></span></div> -<div class="line"><a name="l00232"></a><span class="lineno"> 232</span> <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>  ticks_t ticks, <span class="keyword">struct</span> timespec *ts);</div> +<div class="line"><a name="l00176"></a><span class="lineno"> 176</span> <span class="keyword">static</span> <span class="keyword">inline</span></div> +<div class="line"><a name="l00177"></a><span class="lineno"> 177</span> <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>  ticks_t ticks, <span class="keyword">struct</span> timespec *ts)</div> +<div class="line"><a name="l00179"></a><span class="lineno"> 179</span> {</div> +<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>  clockobj_ns_to_timespec(ticks, ts);</div> +<div class="line"><a name="l00181"></a><span class="lineno"> 181</span> }</div> +<div class="line"><a name="l00182"></a><span class="lineno"> 182</span> </div> +<div class="line"><a name="l00183"></a><span class="lineno"> 183</span> <span class="keyword">static</span> <span class="keyword">inline</span></div> +<div class="line"><a name="l00184"></a><span class="lineno"> 184</span> <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>  ticks_t ticks, <span class="keyword">struct</span> timespec *ts)</div> +<div class="line"><a name="l00186"></a><span class="lineno"> 186</span> {</div> +<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>  __clockobj_ticks_to_timespec(clkobj, ticks, ts);</div> +<div class="line"><a name="l00188"></a><span class="lineno"> 188</span> }</div> +<div class="line"><a name="l00189"></a><span class="lineno"> 189</span> </div> +<div class="line"><a name="l00190"></a><span class="lineno"> 190</span> <span class="keyword">static</span> <span class="keyword">inline</span></div> +<div class="line"><a name="l00191"></a><span class="lineno"> 191</span> <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> {</div> +<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>  <span class="keywordflow">return</span> 1;</div> +<div class="line"><a name="l00194"></a><span class="lineno"> 194</span> }</div> +<div class="line"><a name="l00195"></a><span class="lineno"> 195</span> </div> +<div class="line"><a name="l00196"></a><span class="lineno"> 196</span> <span class="keyword">static</span> <span class="keyword">inline</span></div> +<div class="line"><a name="l00197"></a><span class="lineno"> 197</span> <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> {</div> +<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>  <span class="keywordflow">return</span> 1000000000;</div> +<div class="line"><a name="l00200"></a><span class="lineno"> 200</span> }</div> +<div class="line"><a name="l00201"></a><span class="lineno"> 201</span> </div> +<div class="line"><a name="l00202"></a><span class="lineno"> 202</span> <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>  sticks_t ns)</div> +<div class="line"><a name="l00204"></a><span class="lineno"> 204</span> {</div> +<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>  <span class="keywordflow">return</span> ns;</div> +<div class="line"><a name="l00206"></a><span class="lineno"> 206</span> }</div> +<div class="line"><a name="l00207"></a><span class="lineno"> 207</span> </div> +<div class="line"><a name="l00208"></a><span class="lineno"> 208</span> <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>  sticks_t ticks)</div> +<div class="line"><a name="l00210"></a><span class="lineno"> 210</span> {</div> +<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>  <span class="keywordflow">return</span> ticks;</div> +<div class="line"><a name="l00212"></a><span class="lineno"> 212</span> }</div> +<div class="line"><a name="l00213"></a><span class="lineno"> 213</span> </div> +<div class="line"><a name="l00214"></a><span class="lineno"> 214</span> <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> <span class="preprocessor"></span></div> +<div class="line"><a name="l00216"></a><span class="lineno"> 216</span> <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>  ticks_t ticks, <span class="keyword">struct</span> timespec *ts);</div> +<div class="line"><a name="l00218"></a><span class="lineno"> 218</span> </div> +<div class="line"><a name="l00219"></a><span class="lineno"> 219</span> <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>  ticks_t ticks, <span class="keyword">struct</span> timespec *ts);</div> +<div class="line"><a name="l00221"></a><span class="lineno"> 221</span> </div> +<div class="line"><a name="l00222"></a><span class="lineno"> 222</span> <span class="keyword">static</span> <span class="keyword">inline</span></div> +<div class="line"><a name="l00223"></a><span class="lineno"> 223</span> <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>  ticks_t ticks, <span class="keyword">struct</span> timespec *ts)</div> +<div class="line"><a name="l00225"></a><span class="lineno"> 225</span> {</div> +<div class="line"><a name="l00226"></a><span class="lineno"> 226</span>  __clockobj_ticks_to_timespec(clkobj, ticks, ts);</div> +<div class="line"><a name="l00227"></a><span class="lineno"> 227</span> }</div> +<div class="line"><a name="l00228"></a><span class="lineno"> 228</span> </div> +<div class="line"><a name="l00229"></a><span class="lineno"> 229</span> <span class="keyword">static</span> <span class="keyword">inline</span></div> +<div class="line"><a name="l00230"></a><span class="lineno"> 230</span> <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> {</div> +<div class="line"><a name="l00232"></a><span class="lineno"> 232</span>  <span class="keywordflow">return</span> clkobj->resolution;</div> +<div class="line"><a name="l00233"></a><span class="lineno"> 233</span> }</div> <div class="line"><a name="l00234"></a><span class="lineno"> 234</span> </div> -<div class="line"><a name="l00235"></a><span class="lineno"> 235</span> <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>  ticks_t ticks, <span class="keyword">struct</span> timespec *ts);</div> -<div class="line"><a name="l00237"></a><span class="lineno"> 237</span> </div> -<div class="line"><a name="l00238"></a><span class="lineno"> 238</span> <span class="keyword">static</span> <span class="keyword">inline</span></div> -<div class="line"><a name="l00239"></a><span class="lineno"> 239</span> <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>  ticks_t ticks, <span class="keyword">struct</span> timespec *ts)</div> -<div class="line"><a name="l00241"></a><span class="lineno"> 241</span> {</div> -<div class="line"><a name="l00242"></a><span class="lineno"> 242</span>  __clockobj_ticks_to_timespec(clkobj, ticks, ts);</div> -<div class="line"><a name="l00243"></a><span class="lineno"> 243</span> }</div> -<div class="line"><a name="l00244"></a><span class="lineno"> 244</span> </div> -<div class="line"><a name="l00245"></a><span class="lineno"> 245</span> <span class="keyword">static</span> <span class="keyword">inline</span></div> -<div class="line"><a name="l00246"></a><span class="lineno"> 246</span> <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> {</div> -<div class="line"><a name="l00248"></a><span class="lineno"> 248</span>  <span class="keywordflow">return</span> clkobj->resolution;</div> -<div class="line"><a name="l00249"></a><span class="lineno"> 249</span> }</div> -<div class="line"><a name="l00250"></a><span class="lineno"> 250</span> </div> -<div class="line"><a name="l00251"></a><span class="lineno"> 251</span> <span class="keyword">static</span> <span class="keyword">inline</span></div> -<div class="line"><a name="l00252"></a><span class="lineno"> 252</span> <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> {</div> -<div class="line"><a name="l00254"></a><span class="lineno"> 254</span>  <span class="keywordflow">return</span> clkobj->frequency;</div> -<div class="line"><a name="l00255"></a><span class="lineno"> 255</span> }</div> -<div class="line"><a name="l00256"></a><span class="lineno"> 256</span> </div> -<div class="line"><a name="l00257"></a><span class="lineno"> 257</span> 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>  sticks_t ns);</div> -<div class="line"><a name="l00259"></a><span class="lineno"> 259</span> </div> -<div class="line"><a name="l00260"></a><span class="lineno"> 260</span> <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>  sticks_t ticks)</div> -<div class="line"><a name="l00262"></a><span class="lineno"> 262</span> {</div> -<div class="line"><a name="l00263"></a><span class="lineno"> 263</span>  <span class="keywordflow">return</span> ticks * clkobj->resolution;</div> -<div class="line"><a name="l00264"></a><span class="lineno"> 264</span> }</div> -<div class="line"><a name="l00265"></a><span class="lineno"> 265</span> </div> -<div class="line"><a name="l00266"></a><span class="lineno"> 266</span> <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> <span class="preprocessor"></span></div> -<div class="line"><a name="l00268"></a><span class="lineno"> 268</span> <span class="keyword">static</span> <span class="keyword">inline</span></div> -<div class="line"><a name="l00269"></a><span class="lineno"> 269</span> <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>  ticks_t ticks, <span class="keyword">struct</span> timespec *ts)</div> -<div class="line"><a name="l00271"></a><span class="lineno"> 271</span> {</div> -<div class="line"><a name="l00272"></a><span class="lineno"> 272</span>  __clockobj_ticks_to_timeout(clkobj, CLOCK_COPPERPLATE, ticks, ts);</div> -<div class="line"><a name="l00273"></a><span class="lineno"> 273</span> }</div> -<div class="line"><a name="l00274"></a><span class="lineno"> 274</span> </div> -<div class="line"><a name="l00275"></a><span class="lineno"> 275</span> <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> <span class="keyword">static</span> <span class="keyword">inline</span></div> +<div class="line"><a name="l00236"></a><span class="lineno"> 236</span> <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> {</div> +<div class="line"><a name="l00238"></a><span class="lineno"> 238</span>  <span class="keywordflow">return</span> clkobj->frequency;</div> +<div class="line"><a name="l00239"></a><span class="lineno"> 239</span> }</div> +<div class="line"><a name="l00240"></a><span class="lineno"> 240</span> </div> +<div class="line"><a name="l00241"></a><span class="lineno"> 241</span> 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>  sticks_t ns);</div> +<div class="line"><a name="l00243"></a><span class="lineno"> 243</span> </div> +<div class="line"><a name="l00244"></a><span class="lineno"> 244</span> <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>  sticks_t ticks)</div> +<div class="line"><a name="l00246"></a><span class="lineno"> 246</span> {</div> +<div class="line"><a name="l00247"></a><span class="lineno"> 247</span>  <span class="keywordflow">return</span> ticks * clkobj->resolution;</div> +<div class="line"><a name="l00248"></a><span class="lineno"> 248</span> }</div> +<div class="line"><a name="l00249"></a><span class="lineno"> 249</span> </div> +<div class="line"><a name="l00250"></a><span class="lineno"> 250</span> <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> <span class="preprocessor"></span></div> +<div class="line"><a name="l00252"></a><span class="lineno"> 252</span> <span class="keyword">static</span> <span class="keyword">inline</span></div> +<div class="line"><a name="l00253"></a><span class="lineno"> 253</span> <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>  ticks_t ticks, <span class="keyword">struct</span> timespec *ts)</div> +<div class="line"><a name="l00255"></a><span class="lineno"> 255</span> {</div> +<div class="line"><a name="l00256"></a><span class="lineno"> 256</span>  __clockobj_ticks_to_timeout(clkobj, CLOCK_COPPERPLATE, ticks, ts);</div> +<div class="line"><a name="l00257"></a><span class="lineno"> 257</span> }</div> +<div class="line"><a name="l00258"></a><span class="lineno"> 258</span> </div> +<div class="line"><a name="l00259"></a><span class="lineno"> 259</span> <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"> </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"> </td></tr> <tr class="memitem:ga4909da5d803e8c98fef89cfc0e921465"><td class="memItemLeft" align="right" valign="top">void </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"> </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"> </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"> </td></tr> <tr class="memitem:ga7d3f782ce7b642a2759c62649777d2c7"><td class="memItemLeft" align="right" valign="top">void </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"> </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> <span class="preprocessor">#endif</span></div> <div class="line"><a name="l00095"></a><span class="lineno"> 95</span> <span class="preprocessor"></span></div> <div class="line"><a name="l00098"></a><span class="lineno"> 98</span> <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> <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> <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>  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>  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>  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> } <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> </div> -<div class="line"><a name="l00070"></a><span class="lineno"> 70</span> <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> </div> -<div class="line"><a name="l00072"></a><span class="lineno"> 72</span> <span class="preprocessor">#define alchemy_abs_timeout(__t, __ts) \</span></div> -<div class="line"><a name="l00073"></a><span class="lineno"> 73</span> <span class="preprocessor"> ({ \</span></div> -<div class="line"><a name="l00074"></a><span class="lineno"> 74</span> <span class="preprocessor"> (__t) == TM_INFINITE ? NULL : \</span></div> -<div class="line"><a name="l00075"></a><span class="lineno"> 75</span> <span class="preprocessor"> (__t) == TM_NONBLOCK ? \</span></div> -<div class="line"><a name="l00076"></a><span class="lineno"> 76</span> <span class="preprocessor"> ({ (__ts)->tv_sec = (__ts)->tv_nsec = 0; (__ts); }) : \</span></div> -<div class="line"><a name="l00077"></a><span class="lineno"> 77</span> <span class="preprocessor"> ({ clockobj_ticks_to_timespec(&alchemy_clock, (__t), (__ts)); \</span></div> -<div class="line"><a name="l00078"></a><span class="lineno"> 78</span> <span class="preprocessor"> (__ts); }); \</span></div> -<div class="line"><a name="l00079"></a><span class="lineno"> 79</span> <span class="preprocessor"> })</span></div> -<div class="line"><a name="l00080"></a><span class="lineno"> 80</span> <span class="preprocessor"></span></div> -<div class="line"><a name="l00081"></a><span class="lineno"> 81</span> <span class="preprocessor">#define alchemy_rel_timeout(__t, __ts) \</span></div> -<div class="line"><a name="l00082"></a><span class="lineno"> 82</span> <span class="preprocessor"> ({ \</span></div> -<div class="line"><a name="l00083"></a><span class="lineno"> 83</span> <span class="preprocessor"> (__t) == TM_INFINITE ? NULL : \</span></div> -<div class="line"><a name="l00084"></a><span class="lineno"> 84</span> <span class="preprocessor"> (__t) == TM_NONBLOCK ? \</span></div> -<div class="line"><a name="l00085"></a><span class="lineno"> 85</span> <span class="preprocessor"> ({ (__ts)->tv_sec = (__ts)->tv_nsec = 0; (__ts); }) : \</span></div> -<div class="line"><a name="l00086"></a><span class="lineno"> 86</span> <span class="preprocessor"> ({ clockobj_ticks_to_timeout(&alchemy_clock, (__t), (__ts)); \</span></div> -<div class="line"><a name="l00087"></a><span class="lineno"> 87</span> <span class="preprocessor"> (__ts); }); \</span></div> -<div class="line"><a name="l00088"></a><span class="lineno"> 88</span> <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>  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> } <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> </div> +<div class="line"><a name="l00058"></a><span class="lineno"> 58</span> <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> </div> +<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> <span class="preprocessor">#define alchemy_abs_timeout(__t, __ts) \</span></div> +<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> <span class="preprocessor"> ({ \</span></div> +<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> <span class="preprocessor"> (__t) == TM_INFINITE ? NULL : \</span></div> +<div class="line"><a name="l00063"></a><span class="lineno"> 63</span> <span class="preprocessor"> (__t) == TM_NONBLOCK ? \</span></div> +<div class="line"><a name="l00064"></a><span class="lineno"> 64</span> <span class="preprocessor"> ({ (__ts)->tv_sec = (__ts)->tv_nsec = 0; (__ts); }) : \</span></div> +<div class="line"><a name="l00065"></a><span class="lineno"> 65</span> <span class="preprocessor"> ({ clockobj_ticks_to_timespec(&alchemy_clock, (__t), (__ts)); \</span></div> +<div class="line"><a name="l00066"></a><span class="lineno"> 66</span> <span class="preprocessor"> (__ts); }); \</span></div> +<div class="line"><a name="l00067"></a><span class="lineno"> 67</span> <span class="preprocessor"> })</span></div> +<div class="line"><a name="l00068"></a><span class="lineno"> 68</span> <span class="preprocessor"></span></div> +<div class="line"><a name="l00069"></a><span class="lineno"> 69</span> <span class="preprocessor">#define alchemy_rel_timeout(__t, __ts) \</span></div> +<div class="line"><a name="l00070"></a><span class="lineno"> 70</span> <span class="preprocessor"> ({ \</span></div> +<div class="line"><a name="l00071"></a><span class="lineno"> 71</span> <span class="preprocessor"> (__t) == TM_INFINITE ? NULL : \</span></div> +<div class="line"><a name="l00072"></a><span class="lineno"> 72</span> <span class="preprocessor"> (__t) == TM_NONBLOCK ? \</span></div> +<div class="line"><a name="l00073"></a><span class="lineno"> 73</span> <span class="preprocessor"> ({ (__ts)->tv_sec = (__ts)->tv_nsec = 0; (__ts); }) : \</span></div> +<div class="line"><a name="l00074"></a><span class="lineno"> 74</span> <span class="preprocessor"> ({ clockobj_ticks_to_timeout(&alchemy_clock, (__t), (__ts)); \</span></div> +<div class="line"><a name="l00075"></a><span class="lineno"> 75</span> <span class="preprocessor"> (__ts); }); \</span></div> +<div class="line"><a name="l00076"></a><span class="lineno"> 76</span> <span class="preprocessor"> })</span></div> +<div class="line"><a name="l00077"></a><span class="lineno"> 77</span> <span class="preprocessor"></span></div> +<div class="line"><a name="l00078"></a><span class="lineno"> 78</span> <span class="keyword">static</span> <span class="keyword">inline</span></div> +<div class="line"><a name="l00079"></a><span class="lineno"> 79</span> <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> {</div> +<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  <span class="keywordflow">return</span> abs_timeout &&</div> +<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>  abs_timeout->tv_sec == 0 &&</div> +<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>  abs_timeout->tv_nsec == 0;</div> +<div class="line"><a name="l00084"></a><span class="lineno"> 84</span> }</div> +<div class="line"><a name="l00085"></a><span class="lineno"> 85</span> </div> +<div class="line"><a name="l00086"></a><span class="lineno"> 86</span> <span class="preprocessor">#ifdef __cplusplus</span></div> +<div class="line"><a name="l00087"></a><span class="lineno"> 87</span> <span class="preprocessor"></span><span class="keyword">extern</span> <span class="stringliteral">"C"</span> {</div> +<div class="line"><a name="l00088"></a><span class="lineno"> 88</span> <span class="preprocessor">#endif</span></div> <div class="line"><a name="l00089"></a><span class="lineno"> 89</span> <span class="preprocessor"></span></div> -<div class="line"><a name="l00090"></a><span class="lineno"> 90</span> <span class="keyword">static</span> <span class="keyword">inline</span></div> -<div class="line"><a name="l00091"></a><span class="lineno"> 91</span> <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> {</div> -<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>  <span class="keywordflow">return</span> abs_timeout &&</div> -<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>  abs_timeout->tv_sec == 0 &&</div> -<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>  abs_timeout->tv_nsec == 0;</div> -<div class="line"><a name="l00096"></a><span class="lineno"> 96</span> }</div> -<div class="line"><a name="l00097"></a><span class="lineno"> 97</span> </div> -<div class="line"><a name="l00098"></a><span class="lineno"> 98</span> <span class="preprocessor">#ifdef __cplusplus</span></div> -<div class="line"><a name="l00099"></a><span class="lineno"> 99</span> <span class="preprocessor"></span><span class="keyword">extern</span> <span class="stringliteral">"C"</span> {</div> -<div class="line"><a name="l00100"></a><span class="lineno"> 100</span> <span class="preprocessor">#endif</span></div> -<div class="line"><a name="l00101"></a><span class="lineno"> 101</span> <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> <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> {</div> -<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>  <span class="keywordflow">return</span> clockobj_get_time(&alchemy_clock);</div> -<div class="line"><a name="l00119"></a><span class="lineno"> 119</span> }</div> -<div class="line"><a name="l00120"></a><span class="lineno"> 120</span> </div> -<div class="line"><a name="l00121"></a><span class="lineno"> 121</span> <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> {</div> -<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>  <span class="keywordflow">return</span> clockobj_get_tsc();</div> -<div class="line"><a name="l00124"></a><span class="lineno"> 124</span> }</div> -<div class="line"><a name="l00125"></a><span class="lineno"> 125</span> </div> -<div class="line"><a name="l00126"></a><span class="lineno"> 126</span> <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> {</div> -<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>  <span class="keywordflow">return</span> clockobj_ns_to_tsc(ns);</div> -<div class="line"><a name="l00129"></a><span class="lineno"> 129</span> }</div> -<div class="line"><a name="l00130"></a><span class="lineno"> 130</span> </div> -<div class="line"><a name="l00131"></a><span class="lineno"> 131</span> <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> {</div> -<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>  <span class="keywordflow">return</span> clockobj_tsc_to_ns(tsc);</div> -<div class="line"><a name="l00134"></a><span class="lineno"> 134</span> }</div> -<div class="line"><a name="l00135"></a><span class="lineno"> 135</span> </div> -<div class="line"><a name="l00136"></a><span class="lineno"> 136</span> 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> </div> -<div class="line"><a name="l00138"></a><span class="lineno"> 138</span> 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> </div> -<div class="line"><a name="l00140"></a><span class="lineno"> 140</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="l00141"></a><span class="lineno"> 141</span> </div> -<div class="line"><a name="l00142"></a><span class="lineno"> 142</span> <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> </div> -<div class="line"><a name="l00144"></a><span class="lineno"> 144</span> <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> </div> -<div class="line"><a name="l00146"></a><span class="lineno"> 146</span> <span class="preprocessor">#ifdef __cplusplus</span></div> -<div class="line"><a name="l00147"></a><span class="lineno"> 147</span> <span class="preprocessor"></span>}</div> -<div class="line"><a name="l00148"></a><span class="lineno"> 148</span> <span class="preprocessor">#endif</span></div> -<div class="line"><a name="l00149"></a><span class="lineno"> 149</span> <span class="preprocessor"></span></div> -<div class="line"><a name="l00152"></a><span class="lineno"> 152</span> <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> <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> {</div> +<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>  <span class="keywordflow">return</span> clockobj_get_time(&alchemy_clock);</div> +<div class="line"><a name="l00107"></a><span class="lineno"> 107</span> }</div> +<div class="line"><a name="l00108"></a><span class="lineno"> 108</span> </div> +<div class="line"><a name="l00109"></a><span class="lineno"> 109</span> 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> </div> +<div class="line"><a name="l00111"></a><span class="lineno"> 111</span> 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> </div> +<div class="line"><a name="l00113"></a><span class="lineno"> 113</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="l00114"></a><span class="lineno"> 114</span> </div> +<div class="line"><a name="l00115"></a><span class="lineno"> 115</span> <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> </div> +<div class="line"><a name="l00117"></a><span class="lineno"> 117</span> <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> </div> +<div class="line"><a name="l00119"></a><span class="lineno"> 119</span> <span class="preprocessor">#ifdef __cplusplus</span></div> +<div class="line"><a name="l00120"></a><span class="lineno"> 120</span> <span class="preprocessor"></span>}</div> +<div class="line"><a name="l00121"></a><span class="lineno"> 121</span> <span class="preprocessor">#endif</span></div> +<div class="line"><a name="l00122"></a><span class="lineno"> 122</span> <span class="preprocessor"></span></div> +<div class="line"><a name="l00125"></a><span class="lineno"> 125</span> <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> <span class="preprocessor"></span><span class="preprocessor">#define xnarch_fault_trap(d) ((d)->exception)</span></div> <div class="line"><a name="l00055"></a><span class="lineno"> 55</span> <span class="preprocessor"></span><span class="preprocessor">#define xnarch_fault_code(d) ((d)->regs->orig_ax)</span></div> <div class="line"><a name="l00056"></a><span class="lineno"> 56</span> <span class="preprocessor"></span><span class="preprocessor">#define xnarch_fault_pc(d) ((d)->regs->ip)</span></div> -<div class="line"><a name="l00057"></a><span class="lineno"> 57</span> <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> <span class="preprocessor">#define xnarch_fault_fpu_p(d) ((d)->exception == 7)</span></div> -<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> <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> <span class="comment"> context. */</span></div> -<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> <span class="preprocessor">#define xnarch_fault_pf_p(d) ((d)->exception == 14)</span></div> -<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> <span class="preprocessor"></span><span class="preprocessor">#define xnarch_fault_bp_p(d) ((current->ptrace & PT_PTRACED) && \</span></div> -<div class="line"><a name="l00063"></a><span class="lineno"> 63</span> <span class="preprocessor"> ((d)->exception == 1 || (d)->exception == 3))</span></div> -<div class="line"><a name="l00064"></a><span class="lineno"> 64</span> <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> <span class="preprocessor"></span></div> -<div class="line"><a name="l00066"></a><span class="lineno"> 66</span> <span class="preprocessor">#ifdef CONFIG_XENO_ARCH_FPU</span></div> -<div class="line"><a name="l00067"></a><span class="lineno"> 67</span> <span class="preprocessor"></span></div> -<div class="line"><a name="l00068"></a><span class="lineno"> 68</span> <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> <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> <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>  <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> </div> -<div class="line"><a name="l00073"></a><span class="lineno"> 73</span> <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> <span class="preprocessor"></span></div> -<div class="line"><a name="l00075"></a><span class="lineno"> 75</span> <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> <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> 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> { </div> -<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>  <span class="keywordflow">return</span> 0;</div> -<div class="line"><a name="l00080"></a><span class="lineno"> 80</span> }</div> +<div class="line"><a name="l00057"></a><span class="lineno"> 57</span> <span class="preprocessor"></span><span class="preprocessor">#define xnarch_fault_fpu_p(d) ((d)->exception == 7)</span></div> +<div class="line"><a name="l00058"></a><span class="lineno"> 58</span> <span class="preprocessor"></span><span class="preprocessor">#define xnarch_fault_pf_p(d) ((d)->exception == 14)</span></div> +<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> <span class="preprocessor"></span><span class="preprocessor">#define xnarch_fault_bp_p(d) ((current->ptrace & PT_PTRACED) && \</span></div> +<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> <span class="preprocessor"> ((d)->exception == 1 || (d)->exception == 3))</span></div> +<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> <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> <span class="preprocessor"></span></div> +<div class="line"><a name="l00063"></a><span class="lineno"> 63</span> <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> </div> +<div class="line"><a name="l00065"></a><span class="lineno"> 65</span> <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> </div> +<div class="line"><a name="l00067"></a><span class="lineno"> 67</span> <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>  <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> </div> +<div class="line"><a name="l00070"></a><span class="lineno"> 70</span> <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> </div> +<div class="line"><a name="l00072"></a><span class="lineno"> 72</span> <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> </div> +<div class="line"><a name="l00074"></a><span class="lineno"> 74</span> <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> </div> +<div class="line"><a name="l00076"></a><span class="lineno"> 76</span> <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> </div> +<div class="line"><a name="l00078"></a><span class="lineno"> 78</span> <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> </div> +<div class="line"><a name="l00080"></a><span class="lineno"> 80</span> <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> </div> -<div class="line"><a name="l00082"></a><span class="lineno"> 82</span> <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> xnarch_handle_fpu_fault(<span class="keyword">struct</span> xnthread *from, </div> -<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>  <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> {</div> -<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>  <span class="keywordflow">return</span> 0;</div> -<div class="line"><a name="l00087"></a><span class="lineno"> 87</span> }</div> -<div class="line"><a name="l00088"></a><span class="lineno"> 88</span> </div> -<div class="line"><a name="l00089"></a><span class="lineno"> 89</span> <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> <span class="preprocessor"></span></div> -<div class="line"><a name="l00091"></a><span class="lineno"> 91</span> <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> </div> -<div class="line"><a name="l00093"></a><span class="lineno"> 93</span> <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> </div> -<div class="line"><a name="l00095"></a><span class="lineno"> 95</span> <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> </div> -<div class="line"><a name="l00097"></a><span class="lineno"> 97</span> <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> </div> -<div class="line"><a name="l00099"></a><span class="lineno"> 99</span> <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> </div> -<div class="line"><a name="l00101"></a><span class="lineno"> 101</span> <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> </div> -<div class="line"><a name="l00103"></a><span class="lineno"> 103</span> <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> <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 </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"> </td><td class="mdescRight">Clock resolution in nanoseconds. <br/></td></tr> <tr class="separator:a02f413497af5105ef5df396c378dbbf2"><td class="memSeparator" colspan="2"> </td></tr> -<tr class="memitem:a1a7d07f1d0ece5618812826d1f28c9d2"><td class="memItemLeft" align="right" valign="top">RTIME </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"> </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"> </td></tr> <tr class="memitem:ae0b40e3f54176cb6eaff19a0a42ecd3e"><td class="memItemLeft" align="right" valign="top">RTIME </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"> </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"> </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"> </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 </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 –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> </div> <div class="line"><a name="l00072"></a><span class="lineno"> 72</span> <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> </div> -<div class="line"><a name="l00074"></a><span class="lineno"> 74</span> <span class="keywordtype">int</span> cobalt_thread_join(pthread_t thread);</div> +<div class="line"><a name="l00074"></a><span class="lineno"> 74</span> <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> </div> -<div class="line"><a name="l00076"></a><span class="lineno"> 76</span> pid_t cobalt_thread_pid(pthread_t thread);</div> +<div class="line"><a name="l00076"></a><span class="lineno"> 76</span> <span class="keywordtype">int</span> cobalt_thread_join(pthread_t thread);</div> <div class="line"><a name="l00077"></a><span class="lineno"> 77</span> </div> -<div class="line"><a name="l00078"></a><span class="lineno"> 78</span> <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>  clockid_t clk_id, <span class="keywordtype">int</span> flags);</div> -<div class="line"><a name="l00080"></a><span class="lineno"> 80</span> </div> -<div class="line"><a name="l00081"></a><span class="lineno"> 81</span> <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> pid_t cobalt_thread_pid(pthread_t thread);</div> +<div class="line"><a name="l00079"></a><span class="lineno"> 79</span> </div> +<div class="line"><a name="l00080"></a><span class="lineno"> 80</span> <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>  clockid_t clk_id, <span class="keywordtype">int</span> flags);</div> <div class="line"><a name="l00082"></a><span class="lineno"> 82</span> </div> -<div class="line"><a name="l00083"></a><span class="lineno"> 83</span> <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> <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> </div> -<div class="line"><a name="l00085"></a><span class="lineno"> 85</span> <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> <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> </div> -<div class="line"><a name="l00087"></a><span class="lineno"> 87</span> <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>  <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> </div> -<div class="line"><a name="l00090"></a><span class="lineno"> 90</span> <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>  <span class="keyword">struct</span> xnthread_user_window *u_window);</div> -<div class="line"><a name="l00092"></a><span class="lineno"> 92</span> </div> -<div class="line"><a name="l00093"></a><span class="lineno"> 93</span> <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>  <span class="keyword">struct</span> xnthread_user_window *u_window);</div> -<div class="line"><a name="l00095"></a><span class="lineno"> 95</span> </div> -<div class="line"><a name="l00096"></a><span class="lineno"> 96</span> <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> <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> </div> +<div class="line"><a name="l00089"></a><span class="lineno"> 89</span> <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>  <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> </div> +<div class="line"><a name="l00092"></a><span class="lineno"> 92</span> <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>  <span class="keyword">struct</span> xnthread_user_window *u_window);</div> +<div class="line"><a name="l00094"></a><span class="lineno"> 94</span> </div> +<div class="line"><a name="l00095"></a><span class="lineno"> 95</span> <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>  <span class="keyword">struct</span> xnthread_user_window *u_window);</div> <div class="line"><a name="l00097"></a><span class="lineno"> 97</span> </div> -<div class="line"><a name="l00098"></a><span class="lineno"> 98</span> <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> <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> </div> -<div class="line"><a name="l00100"></a><span class="lineno"> 100</span> <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> <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> </div> -<div class="line"><a name="l00102"></a><span class="lineno"> 102</span> <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> <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> </div> -<div class="line"><a name="l00104"></a><span class="lineno"> 104</span> <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> <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> </div> -<div class="line"><a name="l00106"></a><span class="lineno"> 106</span> <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> <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> </div> -<div class="line"><a name="l00108"></a><span class="lineno"> 108</span> <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>  <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> value,</div> -<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>  <span class="keywordtype">int</span> flags);</div> -<div class="line"><a name="l00111"></a><span class="lineno"> 111</span> </div> -<div class="line"><a name="l00112"></a><span class="lineno"> 112</span> <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>  <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> bits);</div> -<div class="line"><a name="l00114"></a><span class="lineno"> 114</span> </div> -<div class="line"><a name="l00115"></a><span class="lineno"> 115</span> <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>  <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> bits,</div> -<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>  <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>  <span class="keywordtype">int</span> mode,</div> -<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>  <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> </div> -<div class="line"><a name="l00121"></a><span class="lineno"> 121</span> <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>  <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> bits);</div> -<div class="line"><a name="l00123"></a><span class="lineno"> 123</span> </div> -<div class="line"><a name="l00124"></a><span class="lineno"> 124</span> <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>  <span class="keyword">struct</span> cobalt_event_info *info,</div> -<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>  pid_t *waitlist, <span class="keywordtype">size_t</span> waitsz);</div> -<div class="line"><a name="l00127"></a><span class="lineno"> 127</span> </div> -<div class="line"><a name="l00128"></a><span class="lineno"> 128</span> <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> <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> </div> +<div class="line"><a name="l00110"></a><span class="lineno"> 110</span> <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>  <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> value,</div> +<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>  <span class="keywordtype">int</span> flags);</div> +<div class="line"><a name="l00113"></a><span class="lineno"> 113</span> </div> +<div class="line"><a name="l00114"></a><span class="lineno"> 114</span> <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>  <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> bits);</div> +<div class="line"><a name="l00116"></a><span class="lineno"> 116</span> </div> +<div class="line"><a name="l00117"></a><span class="lineno"> 117</span> <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>  <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> bits,</div> +<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>  <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>  <span class="keywordtype">int</span> mode,</div> +<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>  <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> </div> +<div class="line"><a name="l00123"></a><span class="lineno"> 123</span> <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>  <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> bits);</div> +<div class="line"><a name="l00125"></a><span class="lineno"> 125</span> </div> +<div class="line"><a name="l00126"></a><span class="lineno"> 126</span> <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>  <span class="keyword">struct</span> cobalt_event_info *info,</div> +<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>  pid_t *waitlist, <span class="keywordtype">size_t</span> waitsz);</div> <div class="line"><a name="l00129"></a><span class="lineno"> 129</span> </div> -<div class="line"><a name="l00130"></a><span class="lineno"> 130</span> <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>  pid_t *waitlist, <span class="keywordtype">size_t</span> waitsz);</div> -<div class="line"><a name="l00132"></a><span class="lineno"> 132</span> </div> -<div class="line"><a name="l00133"></a><span class="lineno"> 133</span> <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>  <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> </div> -<div class="line"><a name="l00136"></a><span class="lineno"> 136</span> <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> <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> </div> +<div class="line"><a name="l00132"></a><span class="lineno"> 132</span> <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>  pid_t *waitlist, <span class="keywordtype">size_t</span> waitsz);</div> +<div class="line"><a name="l00134"></a><span class="lineno"> 134</span> </div> +<div class="line"><a name="l00135"></a><span class="lineno"> 135</span> <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>  <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> </div> -<div class="line"><a name="l00138"></a><span class="lineno"> 138</span> <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> <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> </div> -<div class="line"><a name="l00140"></a><span class="lineno"> 140</span> <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> <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> </div> -<div class="line"><a name="l00142"></a><span class="lineno"> 142</span> <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> <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> </div> -<div class="line"><a name="l00144"></a><span class="lineno"> 144</span> <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> <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> </div> -<div class="line"><a name="l00146"></a><span class="lineno"> 146</span> <span class="preprocessor">#ifdef __cplusplus</span></div> -<div class="line"><a name="l00147"></a><span class="lineno"> 147</span> <span class="preprocessor"></span>}</div> -<div class="line"><a name="l00148"></a><span class="lineno"> 148</span> <span class="preprocessor">#endif</span></div> -<div class="line"><a name="l00149"></a><span class="lineno"> 149</span> <span class="preprocessor"></span></div> -<div class="line"><a name="l00150"></a><span class="lineno"> 150</span> <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> <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> </div> +<div class="line"><a name="l00148"></a><span class="lineno"> 148</span> <span class="preprocessor">#ifdef __cplusplus</span></div> +<div class="line"><a name="l00149"></a><span class="lineno"> 149</span> <span class="preprocessor"></span>}</div> +<div class="line"><a name="l00150"></a><span class="lineno"> 150</span> <span class="preprocessor">#endif</span></div> +<div class="line"><a name="l00151"></a><span class="lineno"> 151</span> <span class="preprocessor"></span></div> +<div class="line"><a name="l00152"></a><span class="lineno"> 152</span> <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> <span class="preprocessor">#define trank_warning(__fmt, __args...) \</span></div> <div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor"> warning("%s: " __fmt, __func__, ##__args)</span></div> <div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor"></span></div> -<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="preprocessor">#define __CURRENT(call) __hidden_ ## call</span></div> +<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="preprocessor">#define __CURRENT(call) __current_ ## call</span></div> <div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="preprocessor"></span></div> <div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <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> <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> <span class="preprocessor"></span></div> <div class="line"><a name="l00037"></a><span class="lineno"> 37</span> <span class="preprocessor">#define COMPAT_DECL(T, P)</span></div> <div class="line"><a name="l00038"></a><span class="lineno"> 38</span> <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> <span class="preprocessor"> __typeof__(T) __hidden_ ## P</span></div> +<div class="line"><a name="l00039"></a><span class="lineno"> 39</span> <span class="preprocessor"> __typeof__(T) __current_ ## P</span></div> <div class="line"><a name="l00040"></a><span class="lineno"> 40</span> <span class="preprocessor"></span></div> <div class="line"><a name="l00041"></a><span class="lineno"> 41</span> <span class="preprocessor">#define CURRENT_IMPL(T, I, A) \</span></div> -<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> <span class="preprocessor">__typeof__(T) I A __attribute__((alias("__hidden_" __stringify(I)), weak)); \</span></div> -<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> <span class="preprocessor">__typeof__(T) __hidden_ ## I A</span></div> +<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> <span class="preprocessor">__typeof__(T) I A __attribute__((alias("__current_" __stringify(I)), weak)); \</span></div> +<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> <span class="preprocessor">__typeof__(T) __current_ ## I A</span></div> <div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="preprocessor"></span></div> <div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <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> <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> <span class="preprocessor"></span></div> <div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <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> <span class="preprocessor"></span></div> -<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <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> <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> <span class="preprocessor"></span></div> +<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> <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