475 lines
32 KiB
HTML
475 lines
32 KiB
HTML
<!-- HTML header for doxygen 1.9.1-->
|
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
|
<head>
|
|
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
|
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
|
|
<meta name="generator" content="Doxygen 1.15.0"/>
|
|
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
|
<title>L4Re Operating System Framework: Utility Functions</title>
|
|
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
|
<script type="text/javascript" src="jquery.js"></script>
|
|
<script type="text/javascript" src="dynsections.js"></script>
|
|
<link href="navtree.css" rel="stylesheet" type="text/css"/>
|
|
<script type="text/javascript" src="navtreedata.js"></script>
|
|
<script type="text/javascript" src="navtree.js"></script>
|
|
<script type="text/javascript" src="cookie.js"></script>
|
|
<link href="search/search.css" rel="stylesheet" type="text/css"/>
|
|
<script type="text/javascript" src="search/searchdata.js"></script>
|
|
<script type="text/javascript" src="search/search.js"></script>
|
|
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
|
<link href="doxygen-awesome.css" rel="stylesheet" type="text/css"/>
|
|
<link href="l4re-awesome.css" rel="stylesheet" type="text/css"/>
|
|
</head>
|
|
<body>
|
|
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
|
<div id="titlearea">
|
|
<table cellspacing="0" cellpadding="0">
|
|
<tbody>
|
|
<tr style="height: 56px;">
|
|
<td id="projectlogo"><img alt="Logo" src="L4Re_rgb_logo_quer_hg_h55.png"/></td>
|
|
<td id="projectalign" style="padding-left: 0.5em;">
|
|
<div id="projectname">L4Re Operating System Framework
|
|
</div>
|
|
<div id="projectbrief">Interface and Usage Documentation</div>
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
<!-- end header part -->
|
|
<!-- Generated by Doxygen 1.15.0 -->
|
|
<script type="text/javascript">
|
|
var searchBox = new SearchBox("searchBox", "search/",'.html');
|
|
</script>
|
|
<script type="text/javascript">
|
|
$(function() { codefold.init(); });
|
|
</script>
|
|
<script type="text/javascript" src="menudata.js"></script>
|
|
<script type="text/javascript" src="menu.js"></script>
|
|
<script type="text/javascript">
|
|
$(function() {
|
|
initMenu('',true,false,'search.php','Search',true);
|
|
$(function() { init_search(); });
|
|
});
|
|
</script>
|
|
<div id="main-nav"></div>
|
|
</div><!-- top -->
|
|
<div id="side-nav" class="ui-resizable side-nav-resizable">
|
|
<div id="nav-tree">
|
|
<div id="nav-tree-contents">
|
|
<div id="nav-sync" class="sync"></div>
|
|
</div>
|
|
</div>
|
|
<div id="splitbar" style="-moz-user-select:none;"
|
|
class="ui-resizable-handle">
|
|
</div>
|
|
</div>
|
|
<script type="text/javascript">
|
|
$(function(){initNavTree('group__l4util__api.html','',''); });
|
|
</script>
|
|
<div id="container">
|
|
<div id="doc-content">
|
|
<!-- window showing the filter options -->
|
|
<div id="MSearchSelectWindow"
|
|
onmouseover="return searchBox.OnSearchSelectShow()"
|
|
onmouseout="return searchBox.OnSearchSelectHide()"
|
|
onkeydown="return searchBox.OnSearchSelectKey(event)">
|
|
</div>
|
|
|
|
<!-- iframe showing the search results (closed by default) -->
|
|
<div id="MSearchResultsWindow">
|
|
<div id="MSearchResults">
|
|
<div class="SRPage">
|
|
<div id="SRIndex">
|
|
<div id="SRResults"></div>
|
|
<div class="SRStatus" id="Loading">Loading...</div>
|
|
<div class="SRStatus" id="Searching">Searching...</div>
|
|
<div class="SRStatus" id="NoMatches">No Matches</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="header">
|
|
<div class="headertitle"><div class="title">Utility Functions </div></div>
|
|
</div><!--header-->
|
|
<div class="contents">
|
|
|
|
<p>Utilities, generic file.
|
|
<a href="#details">More...</a></p>
|
|
<div id="dynsection-0" onclick="return dynsection.toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;"><span class="dynarrow"><span class="arrowhead closed"></span></span>Collaboration diagram for Utility Functions:</div>
|
|
<div id="dynsection-0-summary" class="dynsummary" style="display:block;">
|
|
</div>
|
|
<div id="dynsection-0-content" class="dyncontent" style="display:none;">
|
|
<div class="center"><iframe scrolling="no" loading="lazy" frameborder="0" src="group__l4util__api.svg" width="390" height="546"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div>
|
|
</div>
|
|
<table class="memberdecls">
|
|
<tr class="heading"><td colspan="2"><h2 id="header-groups" class="groupheader"><a id="groups" name="groups"></a>
|
|
Topics</h2></td></tr>
|
|
<tr class="memitem:l4util_5Fcpu" id="r_l4util_5Fcpu"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__l4util__cpu.html">CPU related functions </a></td></tr>
|
|
<tr class="memdesc:group__l4util__cpu"><td class="mdescLeft"> </td><td class="mdescRight"><br /></td></tr>
|
|
<tr class="memitem:l4util_5Ftsc" id="r_l4util_5Ftsc"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__l4util__tsc.html">Timestamp Counter </a></td></tr>
|
|
<tr class="memdesc:group__l4util__tsc"><td class="mdescLeft"> </td><td class="mdescRight"><br /></td></tr>
|
|
<tr class="memitem:l4util_5Fatomic" id="r_l4util_5Fatomic"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__l4util__atomic.html">Atomic Instructions </a></td></tr>
|
|
<tr class="memitem:l4util_5Finternal" id="r_l4util_5Finternal"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__l4util__internal.html">Internal functions </a></td></tr>
|
|
<tr class="memitem:l4util_5Fbitops" id="r_l4util_5Fbitops"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__l4util__bitops.html">Bit Manipulation </a></td></tr>
|
|
<tr class="memitem:l4util_5Felf" id="r_l4util_5Felf"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__l4util__elf.html">ELF binary format </a></td></tr>
|
|
<tr class="memdesc:group__l4util__elf"><td class="mdescLeft"> </td><td class="mdescRight">Functions and types related to ELF binaries. <br /></td></tr>
|
|
<tr class="memitem:l4util_5Fkip_5Fapi" id="r_l4util_5Fkip_5Fapi"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__l4util__kip__api.html">Kernel Interface Page API </a></td></tr>
|
|
<tr class="memitem:l4util_5Fparse_5Fcmd" id="r_l4util_5Fparse_5Fcmd"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__l4util__parse__cmd.html">Comfortable Command Line Parsing </a></td></tr>
|
|
<tr class="memitem:l4util_5Frandom" id="r_l4util_5Frandom"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__l4util__random.html">Random number support </a></td></tr>
|
|
<tr class="memitem:l4util_5Fthread" id="r_l4util_5Fthread"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__l4util__thread.html">Low-Level Thread Functions </a></td></tr>
|
|
<tr class="memitem:l4util_5Fport_5Fio" id="r_l4util_5Fport_5Fio"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__l4util__port__io.html">IA32 Port I/O API </a></td></tr>
|
|
<tr class="memdesc:group__l4util__port__io"><td class="mdescLeft"> </td><td class="mdescRight"><br /></td></tr>
|
|
</table><table class="memberdecls">
|
|
<tr class="heading"><td colspan="2"><h2 id="header-files" class="groupheader"><a id="files" name="files"></a>
|
|
Files</h2></td></tr>
|
|
<tr class="memitem:rand_2Eh" id="r_rand_2Eh"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><a class="el" href="rand_8h.html">rand.h</a></td></tr>
|
|
<tr class="memdesc:rand_8h"><td class="mdescLeft"> </td><td class="mdescRight">Simple Pseudo-Random Number Generator. <br /></td></tr>
|
|
</table><table class="memberdecls">
|
|
<tr class="heading"><td colspan="2"><h2 id="header-func-members" class="groupheader"><a id="func-members" name="func-members"></a>
|
|
Functions</h2></td></tr>
|
|
<tr class="memitem:ga930c5929d2ab29c3552b765e3c967b83" id="r_ga930c5929d2ab29c3552b765e3c967b83"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__l4sys__defines.html#ga5f022ce5422df9cc6ed415e2bfc90f59">L4_BEGIN_DECLS</a> long </td><td class="memItemRight" valign="bottom"><a class="el" href="#ga930c5929d2ab29c3552b765e3c967b83">l4util_splitlog2_hdl</a> (<a class="el" href="group__l4__basic__types.html#ga4087b991c40c0d2fcde9ca331049a4d4">l4_addr_t</a> start, <a class="el" href="group__l4__basic__types.html#ga4087b991c40c0d2fcde9ca331049a4d4">l4_addr_t</a> end, long(*handler)(<a class="el" href="group__l4__basic__types.html#ga4087b991c40c0d2fcde9ca331049a4d4">l4_addr_t</a> s, <a class="el" href="group__l4__basic__types.html#ga4087b991c40c0d2fcde9ca331049a4d4">l4_addr_t</a> e, int log2size))</td></tr>
|
|
<tr class="memdesc:ga930c5929d2ab29c3552b765e3c967b83"><td class="mdescLeft"> </td><td class="mdescRight">Split a range into log2 base and size aligned chunks. <br /></td></tr>
|
|
<tr class="memitem:ga4b64c17b6e4392997addc015b4ed53ab" id="r_ga4b64c17b6e4392997addc015b4ed53ab"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__l4__basic__types.html#ga4087b991c40c0d2fcde9ca331049a4d4">l4_addr_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="#ga4b64c17b6e4392997addc015b4ed53ab">l4util_splitlog2_size</a> (<a class="el" href="group__l4__basic__types.html#ga4087b991c40c0d2fcde9ca331049a4d4">l4_addr_t</a> start, <a class="el" href="group__l4__basic__types.html#ga4087b991c40c0d2fcde9ca331049a4d4">l4_addr_t</a> end)</td></tr>
|
|
<tr class="memdesc:ga4b64c17b6e4392997addc015b4ed53ab"><td class="mdescLeft"> </td><td class="mdescRight">Return log2 base and size aligned length of a range. <br /></td></tr>
|
|
<tr class="memitem:ga53665b088921e492a3754d58c93d7e31" id="r_ga53665b088921e492a3754d58c93d7e31"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__l4sys__defines.html#ga5f022ce5422df9cc6ed415e2bfc90f59">L4_BEGIN_DECLS</a> <a class="el" href="structl4__timeout__s.html">l4_timeout_s</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="#ga53665b088921e492a3754d58c93d7e31">l4util_micros2l4to</a> (<a class="el" href="group__l4__basic__types.html#gaf3331c485014bd12a9e4f9d27a55e689">l4_uint64_t</a> us) <a class="el" href="group__l4sys__defines.html#ga362dfa378e662dd04f710a23fc7ea931">L4_NOTHROW</a></td></tr>
|
|
<tr class="memdesc:ga53665b088921e492a3754d58c93d7e31"><td class="mdescLeft"> </td><td class="mdescRight">Calculate l4 timeouts. <br /></td></tr>
|
|
<tr class="memitem:gac06b9778d4fe83007f847e52b658eb80" id="r_gac06b9778d4fe83007f847e52b658eb80"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="#gac06b9778d4fe83007f847e52b658eb80">l4_sleep</a> (<a class="el" href="group__l4__basic__types.html#gac1d09f3e382e711b776931f10e6e1e5a">l4_uint32_t</a> ms) <a class="el" href="group__l4sys__defines.html#ga362dfa378e662dd04f710a23fc7ea931">L4_NOTHROW</a></td></tr>
|
|
<tr class="memdesc:gac06b9778d4fe83007f847e52b658eb80"><td class="mdescLeft"> </td><td class="mdescRight">Suspend thread for a period of <em class="arg">ms</em> milliseconds. <br /></td></tr>
|
|
<tr class="memitem:ga92f26b99960e78ff5bf3a4211ac63f9b" id="r_ga92f26b99960e78ff5bf3a4211ac63f9b"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="#ga92f26b99960e78ff5bf3a4211ac63f9b">l4_usleep</a> (<a class="el" href="group__l4__basic__types.html#gaf3331c485014bd12a9e4f9d27a55e689">l4_uint64_t</a> us) <a class="el" href="group__l4sys__defines.html#ga362dfa378e662dd04f710a23fc7ea931">L4_NOTHROW</a></td></tr>
|
|
<tr class="memdesc:ga92f26b99960e78ff5bf3a4211ac63f9b"><td class="mdescLeft"> </td><td class="mdescRight">Suspend thread for a period of <em class="arg">us</em> microseconds. <br /></td></tr>
|
|
<tr class="memitem:ga4842edcbe6e461bc083bb33ca870a762" id="r_ga4842edcbe6e461bc083bb33ca870a762"><td class="memItemLeft" align="right" valign="top"><a id="ga4842edcbe6e461bc083bb33ca870a762" name="ga4842edcbe6e461bc083bb33ca870a762"></a>
|
|
void </td><td class="memItemRight" valign="bottom"><b>l4_sleep_forever</b> (void) <a class="el" href="group__l4sys__defines.html#ga362dfa378e662dd04f710a23fc7ea931">L4_NOTHROW</a> <a class="el" href="group__l4sys__defines.html#gab2364b91355f435e015c5b85b7d93a73">L4_NORETURN</a></td></tr>
|
|
<tr class="memdesc:ga4842edcbe6e461bc083bb33ca870a762"><td class="mdescLeft"> </td><td class="mdescRight">Go sleep and never wake up. <br /></td></tr>
|
|
<tr class="memitem:gac1e88025beb28c8f090592bf2f046080" id="r_gac1e88025beb28c8f090592bf2f046080"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="#gac1e88025beb28c8f090592bf2f046080">l4_touch_ro</a> (const void *addr, unsigned size) <a class="el" href="group__l4sys__defines.html#ga362dfa378e662dd04f710a23fc7ea931">L4_NOTHROW</a></td></tr>
|
|
<tr class="memdesc:gac1e88025beb28c8f090592bf2f046080"><td class="mdescLeft"> </td><td class="mdescRight">Touch data area to force mapping (read-only). <br /></td></tr>
|
|
<tr class="memitem:ga8e840257faffbb57a49003cfb7d41594" id="r_ga8e840257faffbb57a49003cfb7d41594"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="#ga8e840257faffbb57a49003cfb7d41594">l4_touch_rw</a> (const void *addr, unsigned size) <a class="el" href="group__l4sys__defines.html#ga362dfa378e662dd04f710a23fc7ea931">L4_NOTHROW</a></td></tr>
|
|
<tr class="memdesc:ga8e840257faffbb57a49003cfb7d41594"><td class="mdescLeft"> </td><td class="mdescRight">Touch data areas to force mapping (read-write). <br /></td></tr>
|
|
</table>
|
|
<a name="details" id="details"></a><h2 id="header-details" class="groupheader">Detailed Description</h2>
|
|
<p>Utilities, generic file. </p>
|
|
<a name="doc-func-members" id="doc-func-members"></a><h2 id="header-doc-func-members" class="groupheader">Function Documentation</h2>
|
|
<a id="gac06b9778d4fe83007f847e52b658eb80" name="gac06b9778d4fe83007f847e52b658eb80"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#gac06b9778d4fe83007f847e52b658eb80">◆ </a></span>l4_sleep()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">void l4_sleep </td>
|
|
<td>(</td>
|
|
<td class="paramtype"><a class="el" href="group__l4__basic__types.html#gac1d09f3e382e711b776931f10e6e1e5a">l4_uint32_t</a></td> <td class="paramname"><span class="paramname"><em>ms</em></span></td><td>)</td>
|
|
<td></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Suspend thread for a period of <em class="arg">ms</em> milliseconds. </p>
|
|
<dl class="params"><dt>Parameters</dt><dd>
|
|
<table class="params">
|
|
<tr><td class="paramname">ms</td><td>Time in milliseconds </td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<dl class="section examples"><dt>Examples</dt><dd><a class="el" href="examples_2libs_2libirq_2async_isr_8c-example.html#a1">examples/libs/libirq/async_isr.c</a>, <a class="el" href="examples_2sys_2aliens_2main_8c-example.html#a13">examples/sys/aliens/main.c</a>, <a class="el" href="examples_2sys_2singlestep_2main_8c-example.html#a38">examples/sys/singlestep/main.c</a>, and <a class="el" href="examples_2sys_2start-with-exc_2main_8c-example.html#a2">examples/sys/start-with-exc/main.c</a>.</dd>
|
|
</dl>
|
|
|
|
<p class="reference">References <a class="el" href="arm_2l4_2sys_2linkage_8h_source.html#l00033">L4_CV</a>, and <a class="el" href="compiler_8h_source.html#l00161">L4_NOTHROW</a>.</p>
|
|
|
|
<p class="reference">Referenced by <a class="el" href="namespace__impl_8h_source.html#l00066">L4Re::Namespace::query()</a>.</p>
|
|
<div id="dynsection-1" onclick="return dynsection.toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;"><span class="dynarrow"><span class="arrowhead closed"></span></span>Here is the caller graph for this function:</div>
|
|
<div id="dynsection-1-summary" class="dynsummary" style="display:block;">
|
|
</div>
|
|
<div id="dynsection-1-content" class="dyncontent" style="display:none;">
|
|
<div class="center"><iframe scrolling="no" loading="lazy" frameborder="0" src="group__l4util__api_gac06b9778d4fe83007f847e52b658eb80_icgraph.svg" width="319" height="36"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div>
|
|
</div>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="gac1e88025beb28c8f090592bf2f046080" name="gac1e88025beb28c8f090592bf2f046080"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#gac1e88025beb28c8f090592bf2f046080">◆ </a></span>l4_touch_ro()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">void l4_touch_ro </td>
|
|
<td>(</td>
|
|
<td class="paramtype">const void *</td> <td class="paramname"><span class="paramname"><em>addr</em></span>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">unsigned</td> <td class="paramname"><span class="paramname"><em>size</em></span> )</td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel inline">inline</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Touch data area to force mapping (read-only). </p>
|
|
<dl class="params"><dt>Parameters</dt><dd>
|
|
<table class="params">
|
|
<tr><td class="paramname">addr</td><td>Start of memory area to touch. </td></tr>
|
|
<tr><td class="paramname">size</td><td>Size of area to touch. </td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<dl class="section examples"><dt>Examples</dt><dd><a class="el" href="examples_2sys_2singlestep_2main_8c-example.html#a9">examples/sys/singlestep/main.c</a>.</dd>
|
|
</dl>
|
|
|
|
<p class="definition">Definition at line <a class="el" href="util_8h_source.html#l00092">92</a> of file <a class="el" href="util_8h_source.html">util.h</a>.</p>
|
|
|
|
<p class="reference">References <a class="el" href="compiler_8h_source.html#l00161">L4_NOTHROW</a>, <a class="el" href="l4_2sys_2consts_8h_source.html#l00391">L4_PAGESIZE</a>, and <a class="el" href="l4_2sys_2consts_8h_source.html#l00448">l4_trunc_page()</a>.</p>
|
|
<div id="dynsection-2" onclick="return dynsection.toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;"><span class="dynarrow"><span class="arrowhead closed"></span></span>Here is the call graph for this function:</div>
|
|
<div id="dynsection-2-summary" class="dynsummary" style="display:block;">
|
|
</div>
|
|
<div id="dynsection-2-content" class="dyncontent" style="display:none;">
|
|
<div class="center"><iframe scrolling="no" loading="lazy" frameborder="0" src="group__l4util__api_gac1e88025beb28c8f090592bf2f046080_cgraph.svg" width="270" height="36"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div>
|
|
</div>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="ga8e840257faffbb57a49003cfb7d41594" name="ga8e840257faffbb57a49003cfb7d41594"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#ga8e840257faffbb57a49003cfb7d41594">◆ </a></span>l4_touch_rw()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">void l4_touch_rw </td>
|
|
<td>(</td>
|
|
<td class="paramtype">const void *</td> <td class="paramname"><span class="paramname"><em>addr</em></span>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">unsigned</td> <td class="paramname"><span class="paramname"><em>size</em></span> )</td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel inline">inline</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Touch data areas to force mapping (read-write). </p>
|
|
<dl class="params"><dt>Parameters</dt><dd>
|
|
<table class="params">
|
|
<tr><td class="paramname">addr</td><td>Start of memory area to touch. </td></tr>
|
|
<tr><td class="paramname">size</td><td>Size of area to touch. </td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<dl class="section examples"><dt>Examples</dt><dd><a class="el" href="examples_2sys_2aliens_2main_8c-example.html#a27">examples/sys/aliens/main.c</a>, and <a class="el" href="examples_2sys_2singlestep_2main_8c-example.html#a8">examples/sys/singlestep/main.c</a>.</dd>
|
|
</dl>
|
|
|
|
<p class="definition">Definition at line <a class="el" href="util_8h_source.html#l00105">105</a> of file <a class="el" href="util_8h_source.html">util.h</a>.</p>
|
|
|
|
<p class="reference">References <a class="el" href="compiler_8h_source.html#l00161">L4_NOTHROW</a>, <a class="el" href="l4_2sys_2consts_8h_source.html#l00391">L4_PAGESIZE</a>, and <a class="el" href="l4_2sys_2consts_8h_source.html#l00448">l4_trunc_page()</a>.</p>
|
|
<div id="dynsection-3" onclick="return dynsection.toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;"><span class="dynarrow"><span class="arrowhead closed"></span></span>Here is the call graph for this function:</div>
|
|
<div id="dynsection-3-summary" class="dynsummary" style="display:block;">
|
|
</div>
|
|
<div id="dynsection-3-content" class="dyncontent" style="display:none;">
|
|
<div class="center"><iframe scrolling="no" loading="lazy" frameborder="0" src="group__l4util__api_ga8e840257faffbb57a49003cfb7d41594_cgraph.svg" width="272" height="36"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div>
|
|
</div>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="ga92f26b99960e78ff5bf3a4211ac63f9b" name="ga92f26b99960e78ff5bf3a4211ac63f9b"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#ga92f26b99960e78ff5bf3a4211ac63f9b">◆ </a></span>l4_usleep()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">void l4_usleep </td>
|
|
<td>(</td>
|
|
<td class="paramtype"><a class="el" href="group__l4__basic__types.html#gaf3331c485014bd12a9e4f9d27a55e689">l4_uint64_t</a></td> <td class="paramname"><span class="paramname"><em>us</em></span></td><td>)</td>
|
|
<td></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Suspend thread for a period of <em class="arg">us</em> microseconds. </p>
|
|
<dl class="params"><dt>Parameters</dt><dd>
|
|
<table class="params">
|
|
<tr><td class="paramname">us</td><td>Time in microseconds</td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<dl class="section note"><dt>Note</dt><dd>The timer resolution of <a class="el" href="namespaceL4.html" title="L4 low-level kernel interface.">L4</a> kernels is usually 1ms. </dd></dl>
|
|
|
|
<p class="reference">References <a class="el" href="arm_2l4_2sys_2linkage_8h_source.html#l00033">L4_CV</a>, <a class="el" href="compiler_8h_source.html#l00051">L4_INLINE</a>, <a class="el" href="compiler_8h_source.html#l00201">L4_NORETURN</a>, and <a class="el" href="compiler_8h_source.html#l00161">L4_NOTHROW</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="ga53665b088921e492a3754d58c93d7e31" name="ga53665b088921e492a3754d58c93d7e31"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#ga53665b088921e492a3754d58c93d7e31">◆ </a></span>l4util_micros2l4to()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname"><a class="el" href="group__l4sys__defines.html#ga5f022ce5422df9cc6ed415e2bfc90f59">L4_BEGIN_DECLS</a> <a class="el" href="structl4__timeout__s.html">l4_timeout_s</a> l4util_micros2l4to </td>
|
|
<td>(</td>
|
|
<td class="paramtype"><a class="el" href="group__l4__basic__types.html#gaf3331c485014bd12a9e4f9d27a55e689">l4_uint64_t</a></td> <td class="paramname"><span class="paramname"><em>us</em></span></td><td>)</td>
|
|
<td></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Calculate l4 timeouts. </p>
|
|
<dl class="params"><dt>Parameters</dt><dd>
|
|
<table class="params">
|
|
<tr><td class="paramname">us</td><td>time in microseconds. Special cases:<ul>
|
|
<li>0 - > timeout 0</li>
|
|
<li>~0U -> timeout NEVER </li>
|
|
</ul>
|
|
</td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<dl class="section return"><dt>Returns</dt><dd>the corresponding l4_timeout value</dd></dl>
|
|
<dl class="deprecated"><dt><b><a class="el" href="deprecated.html#_deprecated000003">Deprecated</a></b></dt><dd>Use l4_timeout_from_us(). </dd></dl>
|
|
|
|
<p class="reference">References <a class="el" href="arm_2l4_2sys_2linkage_8h_source.html#l00033">L4_CV</a>, and <a class="el" href="compiler_8h_source.html#l00161">L4_NOTHROW</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="ga930c5929d2ab29c3552b765e3c967b83" name="ga930c5929d2ab29c3552b765e3c967b83"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#ga930c5929d2ab29c3552b765e3c967b83">◆ </a></span>l4util_splitlog2_hdl()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname"><a class="el" href="group__l4sys__defines.html#ga7b3d88f2118cbb7b8057a860dbdd0381">L4_END_DECLS</a> long l4util_splitlog2_hdl </td>
|
|
<td>(</td>
|
|
<td class="paramtype"><a class="el" href="group__l4__basic__types.html#ga4087b991c40c0d2fcde9ca331049a4d4">l4_addr_t</a></td> <td class="paramname"><span class="paramname"><em>start</em></span>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype"><a class="el" href="group__l4__basic__types.html#ga4087b991c40c0d2fcde9ca331049a4d4">l4_addr_t</a></td> <td class="paramname"><span class="paramname"><em>end</em></span>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">long(*</td> <td class="paramname"><span class="paramname"><em>handler </em></span>)(<a class="el" href="group__l4__basic__types.html#ga4087b991c40c0d2fcde9ca331049a4d4">l4_addr_t</a> s, <a class="el" href="group__l4__basic__types.html#ga4087b991c40c0d2fcde9ca331049a4d4">l4_addr_t</a> e, int log2size) )</td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel inline">inline</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Split a range into log2 base and size aligned chunks. </p>
|
|
<dl class="params"><dt>Parameters</dt><dd>
|
|
<table class="params">
|
|
<tr><td class="paramname">start</td><td>Start of range </td></tr>
|
|
<tr><td class="paramname">end</td><td>End of range (inclusive) (e.g. 2-4 is len 3) </td></tr>
|
|
<tr><td class="paramname">handler</td><td>Handler function that is called with start and end (both inclusive) of the chunk. On success, the handler must return 0, if it returns !=0 the function will immediately return with the return code of the handler. </td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<dl class="section return"><dt>Returns</dt><dd>0 on success, != 0 otherwise </dd></dl>
|
|
|
|
<p class="definition">Definition at line <a class="el" href="splitlog2_8h_source.html#l00051">51</a> of file <a class="el" href="splitlog2_8h_source.html">splitlog2.h</a>.</p>
|
|
|
|
<p class="reference">References <a class="el" href="err_8h_source.html#l00046">L4_EINVAL</a>, and <a class="el" href="splitlog2_8h_source.html#l00070">l4util_splitlog2_size()</a>.</p>
|
|
<div id="dynsection-4" onclick="return dynsection.toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;"><span class="dynarrow"><span class="arrowhead closed"></span></span>Here is the call graph for this function:</div>
|
|
<div id="dynsection-4-summary" class="dynsummary" style="display:block;">
|
|
</div>
|
|
<div id="dynsection-4-content" class="dyncontent" style="display:none;">
|
|
<div class="center"><iframe scrolling="no" loading="lazy" frameborder="0" src="group__l4util__api_ga930c5929d2ab29c3552b765e3c967b83_cgraph.svg" width="355" height="36"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div>
|
|
</div>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="ga4b64c17b6e4392997addc015b4ed53ab" name="ga4b64c17b6e4392997addc015b4ed53ab"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#ga4b64c17b6e4392997addc015b4ed53ab">◆ </a></span>l4util_splitlog2_size()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname"><a class="el" href="group__l4__basic__types.html#ga4087b991c40c0d2fcde9ca331049a4d4">l4_addr_t</a> l4util_splitlog2_size </td>
|
|
<td>(</td>
|
|
<td class="paramtype"><a class="el" href="group__l4__basic__types.html#ga4087b991c40c0d2fcde9ca331049a4d4">l4_addr_t</a></td> <td class="paramname"><span class="paramname"><em>start</em></span>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype"><a class="el" href="group__l4__basic__types.html#ga4087b991c40c0d2fcde9ca331049a4d4">l4_addr_t</a></td> <td class="paramname"><span class="paramname"><em>end</em></span> )</td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel inline">inline</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Return log2 base and size aligned length of a range. </p>
|
|
<dl class="params"><dt>Parameters</dt><dd>
|
|
<table class="params">
|
|
<tr><td class="paramname">start</td><td>Start of range </td></tr>
|
|
<tr><td class="paramname">end</td><td>End of range (inclusive) (e.g. 2-4 is len 3) </td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<dl class="section return"><dt>Returns</dt><dd>length of elements in log2size (length is 1 << log2size) </dd></dl>
|
|
|
|
<p class="definition">Definition at line <a class="el" href="splitlog2_8h_source.html#l00070">70</a> of file <a class="el" href="splitlog2_8h_source.html">splitlog2.h</a>.</p>
|
|
|
|
<p class="reference">Referenced by <a class="el" href="splitlog2_8h_source.html#l00051">l4util_splitlog2_hdl()</a>.</p>
|
|
<div id="dynsection-5" onclick="return dynsection.toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;"><span class="dynarrow"><span class="arrowhead closed"></span></span>Here is the caller graph for this function:</div>
|
|
<div id="dynsection-5-summary" class="dynsummary" style="display:block;">
|
|
</div>
|
|
<div id="dynsection-5-content" class="dyncontent" style="display:none;">
|
|
<div class="center"><iframe scrolling="no" loading="lazy" frameborder="0" src="group__l4util__api_ga4b64c17b6e4392997addc015b4ed53ab_icgraph.svg" width="355" height="36"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div>
|
|
</div>
|
|
|
|
</div>
|
|
</div>
|
|
</div><!-- contents -->
|
|
</div><!-- doc-content -->
|
|
<div id="page-nav" class="page-nav-panel">
|
|
<div id="page-nav-resize-handle"></div>
|
|
<div id="page-nav-tree">
|
|
<div id="page-nav-contents">
|
|
</div><!-- page-nav-contents -->
|
|
</div><!-- page-nav-tree -->
|
|
</div><!-- page-nav -->
|
|
</div><!-- container -->
|
|
<!-- HTML footer for doxygen 1.9.1-->
|
|
<!-- start footer part -->
|
|
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
|
|
<ul>
|
|
<li class="footer">Generated on <span class="timestamp"></span> for L4Re Operating System Framework by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.15.0 </li>
|
|
</ul>
|
|
</div>
|
|
</body>
|
|
</html>
|