333 lines
56 KiB
HTML
333 lines
56 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: l4/sys/thread Source File</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('sys_2thread_source.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">thread</div></div>
|
|
</div><!--header-->
|
|
<div class="contents">
|
|
<a href="sys_2thread.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno"> 1</span><span class="comment">// vi:set ft=cpp: -*- Mode: C++ -*-</span></div>
|
|
<div class="line"><a id="l00006" name="l00006"></a><span class="lineno"> 6</span><span class="comment">/*</span></div>
|
|
<div class="line"><a id="l00007" name="l00007"></a><span class="lineno"> 7</span><span class="comment"> * (c) 2008-2009 Adam Lackorzynski <adam@os.inf.tu-dresden.de>,</span></div>
|
|
<div class="line"><a id="l00008" name="l00008"></a><span class="lineno"> 8</span><span class="comment"> * Alexander Warg <warg@os.inf.tu-dresden.de></span></div>
|
|
<div class="line"><a id="l00009" name="l00009"></a><span class="lineno"> 9</span><span class="comment"> * economic rights: Technische Universität Dresden (Germany)</span></div>
|
|
<div class="line"><a id="l00010" name="l00010"></a><span class="lineno"> 10</span><span class="comment"> *</span></div>
|
|
<div class="line"><a id="l00011" name="l00011"></a><span class="lineno"> 11</span><span class="comment"> * License: see LICENSE.spdx (in this directory or the directories above)</span></div>
|
|
<div class="line"><a id="l00012" name="l00012"></a><span class="lineno"> 12</span><span class="comment"> */</span></div>
|
|
<div class="line"><a id="l00013" name="l00013"></a><span class="lineno"> 13</span> </div>
|
|
<div class="line"><a id="l00014" name="l00014"></a><span class="lineno"> 14</span><span class="preprocessor">#pragma once</span></div>
|
|
<div class="line"><a id="l00015" name="l00015"></a><span class="lineno"> 15</span> </div>
|
|
<div class="line"><a id="l00016" name="l00016"></a><span class="lineno"> 16</span><span class="preprocessor">#include <<a class="code" href="capability.html">l4/sys/capability</a>></span></div>
|
|
<div class="line"><a id="l00017" name="l00017"></a><span class="lineno"> 17</span><span class="preprocessor">#include <<a class="code" href="snd__destination.html">l4/sys/snd_destination</a>></span></div>
|
|
<div class="line"><a id="l00018" name="l00018"></a><span class="lineno"> 18</span><span class="preprocessor">#include <<a class="code" href="l4_2sys_2thread_8h.html">l4/sys/thread.h</a>></span></div>
|
|
<div class="line"><a id="l00019" name="l00019"></a><span class="lineno"> 19</span> </div>
|
|
<div class="line"><a id="l00020" name="l00020"></a><span class="lineno"> 20</span><span class="keyword">namespace </span><a class="code hl_namespace" href="namespaceL4.html">L4</a> {</div>
|
|
<div class="line"><a id="l00021" name="l00021"></a><span class="lineno"> 21</span></div>
|
|
<div class="foldopen" id="foldopen00052" data-start="{" data-end="};">
|
|
<div class="line"><a id="l00052" name="l00052"></a><span class="lineno"><a class="line" href="classL4_1_1Thread.html"> 52</a></span><span class="keyword">class </span><a class="code hl_class" href="classL4_1_1Thread.html">Thread</a> :</div>
|
|
<div class="line"><a id="l00053" name="l00053"></a><span class="lineno"> 53</span> <span class="keyword">public</span> <a class="code hl_class" href="classL4_1_1Kobject__t.html">Kobject_t</a><Thread, Snd_destination, L4_PROTO_THREAD,</div>
|
|
<div class="line"><a id="l00054" name="l00054"></a><span class="lineno"> 54</span> Type_info::Demand_t<1> ></div>
|
|
<div class="line"><a id="l00055" name="l00055"></a><span class="lineno"> 55</span>{</div>
|
|
<div class="line"><a id="l00056" name="l00056"></a><span class="lineno"> 56</span><span class="keyword">public</span>:</div>
|
|
<div class="foldopen" id="foldopen00084" data-start="{" data-end="}">
|
|
<div class="line"><a id="l00084" name="l00084"></a><span class="lineno"><a class="line" href="classL4_1_1Thread.html#aacd56bbf983577cfc591f21fd511d3b6"> 84</a></span> <a class="code hl_struct" href="structl4__msgtag__t.html">l4_msgtag_t</a> <a class="code hl_function" href="classL4_1_1Thread.html#aacd56bbf983577cfc591f21fd511d3b6">ex_regs</a>(<a class="code hl_typedef" href="group__l4__basic__types.html#ga4087b991c40c0d2fcde9ca331049a4d4">l4_addr_t</a> ip, <a class="code hl_typedef" href="group__l4__basic__types.html#ga4087b991c40c0d2fcde9ca331049a4d4">l4_addr_t</a> sp,</div>
|
|
<div class="line"><a id="l00085" name="l00085"></a><span class="lineno"> 85</span> <a class="code hl_typedef" href="group__l4__basic__types.html#ga1c2c4b333f75b1d05b59855910f2b9cb">l4_umword_t</a> flags,</div>
|
|
<div class="line"><a id="l00086" name="l00086"></a><span class="lineno"> 86</span> <a class="code hl_typedef" href="group__l4__utcb__api.html#ga89be8a86d11c1d532b636cc2df1330fb">l4_utcb_t</a> *utcb = <a class="code hl_function" href="group__l4__utcb__api.html#gadc099b4a59e1d99638c72c11a8c8b644">l4_utcb</a>()) noexcept</div>
|
|
<div class="line"><a id="l00087" name="l00087"></a><span class="lineno"> 87</span> { <span class="keywordflow">return</span> <a class="code hl_function" href="group__l4__thread__api.html#ga9387fbfe618c3ede0eae63261ce1662e">l4_thread_ex_regs_u</a>(<a class="code hl_function" href="classL4_1_1Kobject.html#a4f2117ae76762f4084e6a1adb915863c">cap</a>(), ip, sp, flags, utcb); }</div>
|
|
</div>
|
|
<div class="line"><a id="l00088" name="l00088"></a><span class="lineno"> 88</span></div>
|
|
<div class="foldopen" id="foldopen00119" data-start="{" data-end="}">
|
|
<div class="line"><a id="l00119" name="l00119"></a><span class="lineno"><a class="line" href="classL4_1_1Thread.html#af50335e91a9efefa66b440aefefd9c61"> 119</a></span> <a class="code hl_struct" href="structl4__msgtag__t.html">l4_msgtag_t</a> <a class="code hl_function" href="classL4_1_1Thread.html#af50335e91a9efefa66b440aefefd9c61">ex_regs</a>(<a class="code hl_typedef" href="group__l4__basic__types.html#ga4087b991c40c0d2fcde9ca331049a4d4">l4_addr_t</a> *ip, <a class="code hl_typedef" href="group__l4__basic__types.html#ga4087b991c40c0d2fcde9ca331049a4d4">l4_addr_t</a> *sp,</div>
|
|
<div class="line"><a id="l00120" name="l00120"></a><span class="lineno"> 120</span> <a class="code hl_typedef" href="group__l4__basic__types.html#ga1c2c4b333f75b1d05b59855910f2b9cb">l4_umword_t</a> *flags,</div>
|
|
<div class="line"><a id="l00121" name="l00121"></a><span class="lineno"> 121</span> <a class="code hl_typedef" href="group__l4__utcb__api.html#ga89be8a86d11c1d532b636cc2df1330fb">l4_utcb_t</a> *utcb = <a class="code hl_function" href="group__l4__utcb__api.html#gadc099b4a59e1d99638c72c11a8c8b644">l4_utcb</a>()) noexcept</div>
|
|
<div class="line"><a id="l00122" name="l00122"></a><span class="lineno"> 122</span> { <span class="keywordflow">return</span> <a class="code hl_function" href="group__l4__thread__api.html#ga5e191cd9b1cbc5d0ac9166fb2bdd5a18">l4_thread_ex_regs_ret_u</a>(<a class="code hl_function" href="classL4_1_1Kobject.html#a4f2117ae76762f4084e6a1adb915863c">cap</a>(), ip, sp, flags, utcb); }</div>
|
|
</div>
|
|
<div class="line"><a id="l00123" name="l00123"></a><span class="lineno"> 123</span> </div>
|
|
<div class="line"><a id="l00124" name="l00124"></a><span class="lineno"> 124</span></div>
|
|
<div class="foldopen" id="foldopen00137" data-start="{" data-end="};">
|
|
<div class="line"><a id="l00137" name="l00137"></a><span class="lineno"><a class="line" href="classL4_1_1Thread_1_1Attr.html"> 137</a></span> <span class="keyword">class </span><a class="code hl_function" href="classL4_1_1Thread_1_1Attr.html#a36c7c950064465e541f655c077fa16d2">Attr</a></div>
|
|
<div class="line"><a id="l00138" name="l00138"></a><span class="lineno"> 138</span> {</div>
|
|
<div class="line"><a id="l00139" name="l00139"></a><span class="lineno"> 139</span> <span class="keyword">private</span>:</div>
|
|
<div class="line"><a id="l00140" name="l00140"></a><span class="lineno"> 140</span> <span class="keyword">friend</span> <span class="keyword">class </span><a class="code hl_class" href="classL4_1_1Thread.html">L4::Thread</a>;</div>
|
|
<div class="line"><a id="l00141" name="l00141"></a><span class="lineno"> 141</span> <a class="code hl_typedef" href="group__l4__utcb__api.html#ga89be8a86d11c1d532b636cc2df1330fb">l4_utcb_t</a> *_u;</div>
|
|
<div class="line"><a id="l00142" name="l00142"></a><span class="lineno"> 142</span> </div>
|
|
<div class="line"><a id="l00143" name="l00143"></a><span class="lineno"> 143</span> <span class="keyword">public</span>:</div>
|
|
<div class="foldopen" id="foldopen00151" data-start="{" data-end="}">
|
|
<div class="line"><a id="l00151" name="l00151"></a><span class="lineno"><a class="line" href="classL4_1_1Thread_1_1Attr.html#a36c7c950064465e541f655c077fa16d2"> 151</a></span> <span class="keyword">explicit</span> <a class="code hl_function" href="classL4_1_1Thread_1_1Attr.html#a36c7c950064465e541f655c077fa16d2">Attr</a>(<a class="code hl_typedef" href="group__l4__utcb__api.html#ga89be8a86d11c1d532b636cc2df1330fb">l4_utcb_t</a> *utcb = <a class="code hl_function" href="group__l4__utcb__api.html#gadc099b4a59e1d99638c72c11a8c8b644">l4_utcb</a>()) noexcept : _u(utcb)</div>
|
|
<div class="line"><a id="l00152" name="l00152"></a><span class="lineno"> 152</span> { l4_thread_control_start_u(utcb); }</div>
|
|
</div>
|
|
<div class="line"><a id="l00153" name="l00153"></a><span class="lineno"> 153</span></div>
|
|
<div class="foldopen" id="foldopen00161" data-start="{" data-end="}">
|
|
<div class="line"><a id="l00161" name="l00161"></a><span class="lineno"><a class="line" href="classL4_1_1Thread_1_1Attr.html#a1ded272370666669b579983487b5d280"> 161</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classL4_1_1Thread_1_1Attr.html#a1ded272370666669b579983487b5d280">pager</a>(<a class="code hl_class" href="classL4_1_1Cap.html">Cap<void></a> <span class="keyword">const</span> &<a class="code hl_function" href="classL4_1_1Thread_1_1Attr.html#a1ded272370666669b579983487b5d280">pager</a>) <span class="keyword">noexcept</span></div>
|
|
<div class="line"><a id="l00162" name="l00162"></a><span class="lineno"> 162</span> { l4_thread_control_pager_u(<a class="code hl_function" href="classL4_1_1Thread_1_1Attr.html#a1ded272370666669b579983487b5d280">pager</a>.cap(), _u); }</div>
|
|
</div>
|
|
<div class="line"><a id="l00163" name="l00163"></a><span class="lineno"> 163</span></div>
|
|
<div class="foldopen" id="foldopen00170" data-start="{" data-end="}">
|
|
<div class="line"><a id="l00170" name="l00170"></a><span class="lineno"><a class="line" href="classL4_1_1Thread_1_1Attr.html#ad217d29a3b499b470e1aac462922a130"> 170</a></span> <a class="code hl_class" href="classL4_1_1Cap.html">Cap<void></a> <a class="code hl_function" href="classL4_1_1Thread_1_1Attr.html#ad217d29a3b499b470e1aac462922a130">pager</a>() noexcept</div>
|
|
<div class="line"><a id="l00171" name="l00171"></a><span class="lineno"> 171</span> { <span class="keywordflow">return</span> <a class="code hl_class" href="classL4_1_1Cap.html">Cap<void></a>(l4_utcb_mr_u(_u)->mr[1]); }</div>
|
|
</div>
|
|
<div class="line"><a id="l00172" name="l00172"></a><span class="lineno"> 172</span></div>
|
|
<div class="foldopen" id="foldopen00180" data-start="{" data-end="}">
|
|
<div class="line"><a id="l00180" name="l00180"></a><span class="lineno"><a class="line" href="classL4_1_1Thread_1_1Attr.html#a295af91a69ed626d687e8252816eba0d"> 180</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classL4_1_1Thread_1_1Attr.html#a295af91a69ed626d687e8252816eba0d">exc_handler</a>(<a class="code hl_class" href="classL4_1_1Cap.html">Cap<void></a> <span class="keyword">const</span> &<a class="code hl_function" href="classL4_1_1Thread_1_1Attr.html#a295af91a69ed626d687e8252816eba0d">exc_handler</a>) <span class="keyword">noexcept</span></div>
|
|
<div class="line"><a id="l00181" name="l00181"></a><span class="lineno"> 181</span> { l4_thread_control_exc_handler_u(<a class="code hl_function" href="classL4_1_1Thread_1_1Attr.html#a295af91a69ed626d687e8252816eba0d">exc_handler</a>.cap(), _u); }</div>
|
|
</div>
|
|
<div class="line"><a id="l00182" name="l00182"></a><span class="lineno"> 182</span></div>
|
|
<div class="foldopen" id="foldopen00189" data-start="{" data-end="}">
|
|
<div class="line"><a id="l00189" name="l00189"></a><span class="lineno"><a class="line" href="classL4_1_1Thread_1_1Attr.html#a6837b98088e389e3f9da3a0b4878f000"> 189</a></span> <a class="code hl_class" href="classL4_1_1Cap.html">Cap<void></a> <a class="code hl_function" href="classL4_1_1Thread_1_1Attr.html#a6837b98088e389e3f9da3a0b4878f000">exc_handler</a>() noexcept</div>
|
|
<div class="line"><a id="l00190" name="l00190"></a><span class="lineno"> 190</span> { <span class="keywordflow">return</span> <a class="code hl_class" href="classL4_1_1Cap.html">Cap<void></a>(l4_utcb_mr_u(_u)->mr[2]); }</div>
|
|
</div>
|
|
<div class="line"><a id="l00191" name="l00191"></a><span class="lineno"> 191</span></div>
|
|
<div class="foldopen" id="foldopen00218" data-start="{" data-end="}">
|
|
<div class="line"><a id="l00218" name="l00218"></a><span class="lineno"><a class="line" href="classL4_1_1Thread_1_1Attr.html#a858c0a51f7b147c4b2ba21d4a97afdbb"> 218</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classL4_1_1Thread_1_1Attr.html#a858c0a51f7b147c4b2ba21d4a97afdbb">bind</a>(<a class="code hl_typedef" href="group__l4__utcb__api.html#ga89be8a86d11c1d532b636cc2df1330fb">l4_utcb_t</a> *thread_utcb, <a class="code hl_class" href="classL4_1_1Cap.html">Cap<Task></a> <span class="keyword">const</span> &task) <span class="keyword">noexcept</span></div>
|
|
<div class="line"><a id="l00219" name="l00219"></a><span class="lineno"> 219</span> { l4_thread_control_bind_u(thread_utcb, task.cap(), _u); }</div>
|
|
</div>
|
|
<div class="line"><a id="l00220" name="l00220"></a><span class="lineno"> 220</span></div>
|
|
<div class="foldopen" id="foldopen00224" data-start="{" data-end="}">
|
|
<div class="line"><a id="l00224" name="l00224"></a><span class="lineno"><a class="line" href="classL4_1_1Thread_1_1Attr.html#ad7267e9110f24fa097dd14b7ab2e546b"> 224</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classL4_1_1Thread_1_1Attr.html#ad7267e9110f24fa097dd14b7ab2e546b">alien</a>(<span class="keywordtype">int</span> on) <span class="keyword">noexcept</span></div>
|
|
<div class="line"><a id="l00225" name="l00225"></a><span class="lineno"> 225</span> { l4_thread_control_alien_u(_u, on); }</div>
|
|
</div>
|
|
<div class="line"><a id="l00226" name="l00226"></a><span class="lineno"> 226</span> };</div>
|
|
</div>
|
|
<div class="line"><a id="l00227" name="l00227"></a><span class="lineno"> 227</span></div>
|
|
<div class="foldopen" id="foldopen00243" data-start="{" data-end="}">
|
|
<div class="line"><a id="l00243" name="l00243"></a><span class="lineno"><a class="line" href="classL4_1_1Thread.html#a4252cd0ad4bdfa00cdc61b5fd2317aef"> 243</a></span> <a class="code hl_struct" href="structl4__msgtag__t.html">l4_msgtag_t</a> <a class="code hl_function" href="classL4_1_1Thread.html#a4252cd0ad4bdfa00cdc61b5fd2317aef">control</a>(<a class="code hl_class" href="classL4_1_1Thread_1_1Attr.html">Attr</a> <span class="keyword">const</span> &attr) <span class="keyword">noexcept</span></div>
|
|
<div class="line"><a id="l00244" name="l00244"></a><span class="lineno"> 244</span> { <span class="keywordflow">return</span> l4_thread_control_commit_u(<a class="code hl_function" href="classL4_1_1Kobject.html#a4f2117ae76762f4084e6a1adb915863c">cap</a>(), attr._u); }</div>
|
|
</div>
|
|
<div class="line"><a id="l00245" name="l00245"></a><span class="lineno"> 245</span></div>
|
|
<div class="foldopen" id="foldopen00253" data-start="{" data-end="}">
|
|
<div class="line"><a id="l00253" name="l00253"></a><span class="lineno"><a class="line" href="classL4_1_1Thread.html#a7bb604d3fe94545ad9e44b46600aef46"> 253</a></span> <a class="code hl_struct" href="structl4__msgtag__t.html">l4_msgtag_t</a> <a class="code hl_function" href="classL4_1_1Thread.html#a7bb604d3fe94545ad9e44b46600aef46">switch_to</a>(<a class="code hl_typedef" href="group__l4__utcb__api.html#ga89be8a86d11c1d532b636cc2df1330fb">l4_utcb_t</a> *utcb = <a class="code hl_function" href="group__l4__utcb__api.html#gadc099b4a59e1d99638c72c11a8c8b644">l4_utcb</a>()) noexcept</div>
|
|
<div class="line"><a id="l00254" name="l00254"></a><span class="lineno"> 254</span> { <span class="keywordflow">return</span> l4_thread_switch_u(<a class="code hl_function" href="classL4_1_1Kobject.html#a4f2117ae76762f4084e6a1adb915863c">cap</a>(), utcb); }</div>
|
|
</div>
|
|
<div class="line"><a id="l00255" name="l00255"></a><span class="lineno"> 255</span></div>
|
|
<div class="foldopen" id="foldopen00264" data-start="{" data-end="}">
|
|
<div class="line"><a id="l00264" name="l00264"></a><span class="lineno"><a class="line" href="classL4_1_1Thread.html#a7c75cd39ef9fbe963d357d9909da7c10"> 264</a></span> <a class="code hl_struct" href="structl4__msgtag__t.html">l4_msgtag_t</a> <a class="code hl_function" href="classL4_1_1Thread.html#a7c75cd39ef9fbe963d357d9909da7c10">stats_time</a>(<a class="code hl_typedef" href="group__l4__basic__types.html#gab71da24eb7cda2c035f18b862309b101">l4_kernel_clock_t</a> *us,</div>
|
|
<div class="line"><a id="l00265" name="l00265"></a><span class="lineno"> 265</span> <a class="code hl_typedef" href="group__l4__utcb__api.html#ga89be8a86d11c1d532b636cc2df1330fb">l4_utcb_t</a> *utcb = <a class="code hl_function" href="group__l4__utcb__api.html#gadc099b4a59e1d99638c72c11a8c8b644">l4_utcb</a>()) noexcept</div>
|
|
<div class="line"><a id="l00266" name="l00266"></a><span class="lineno"> 266</span> { <span class="keywordflow">return</span> l4_thread_stats_time_u(<a class="code hl_function" href="classL4_1_1Kobject.html#a4f2117ae76762f4084e6a1adb915863c">cap</a>(), us, utcb); }</div>
|
|
</div>
|
|
<div class="line"><a id="l00267" name="l00267"></a><span class="lineno"> 267</span></div>
|
|
<div class="foldopen" id="foldopen00283" data-start="{" data-end="}">
|
|
<div class="line"><a id="l00283" name="l00283"></a><span class="lineno"><a class="line" href="classL4_1_1Thread.html#acced76970ec38a15b2ec5a8c756545b4"> 283</a></span> <a class="code hl_struct" href="structl4__msgtag__t.html">l4_msgtag_t</a> <a class="code hl_function" href="classL4_1_1Thread.html#acced76970ec38a15b2ec5a8c756545b4">vcpu_resume_start</a>(<a class="code hl_typedef" href="group__l4__utcb__api.html#ga89be8a86d11c1d532b636cc2df1330fb">l4_utcb_t</a> *utcb = <a class="code hl_function" href="group__l4__utcb__api.html#gadc099b4a59e1d99638c72c11a8c8b644">l4_utcb</a>()) noexcept</div>
|
|
<div class="line"><a id="l00284" name="l00284"></a><span class="lineno"> 284</span> { <span class="keywordflow">return</span> l4_thread_vcpu_resume_start_u(utcb); }</div>
|
|
</div>
|
|
<div class="line"><a id="l00285" name="l00285"></a><span class="lineno"> 285</span></div>
|
|
<div class="foldopen" id="foldopen00334" data-start="{" data-end="}">
|
|
<div class="line"><a id="l00334" name="l00334"></a><span class="lineno"><a class="line" href="classL4_1_1Thread.html#a72ce9179f1b083a65f0d4caa5b6aee67"> 334</a></span> <a class="code hl_struct" href="structl4__msgtag__t.html">l4_msgtag_t</a> <a class="code hl_function" href="classL4_1_1Thread.html#a72ce9179f1b083a65f0d4caa5b6aee67">vcpu_resume_commit</a>(<a class="code hl_struct" href="structl4__msgtag__t.html">l4_msgtag_t</a> tag,</div>
|
|
<div class="line"><a id="l00335" name="l00335"></a><span class="lineno"> 335</span> <a class="code hl_typedef" href="group__l4__utcb__api.html#ga89be8a86d11c1d532b636cc2df1330fb">l4_utcb_t</a> *utcb = <a class="code hl_function" href="group__l4__utcb__api.html#gadc099b4a59e1d99638c72c11a8c8b644">l4_utcb</a>()) noexcept</div>
|
|
<div class="line"><a id="l00336" name="l00336"></a><span class="lineno"> 336</span> { <span class="keywordflow">return</span> l4_thread_vcpu_resume_commit_u(<a class="code hl_function" href="classL4_1_1Kobject.html#a4f2117ae76762f4084e6a1adb915863c">cap</a>(), tag, utcb); }</div>
|
|
</div>
|
|
<div class="line"><a id="l00337" name="l00337"></a><span class="lineno"> 337</span></div>
|
|
<div class="foldopen" id="foldopen00358" data-start="{" data-end="}">
|
|
<div class="line"><a id="l00358" name="l00358"></a><span class="lineno"><a class="line" href="classL4_1_1Thread.html#a94a6d8a5a7a78fa99ef3c6358e0a0459"> 358</a></span> <a class="code hl_struct" href="structl4__msgtag__t.html">l4_msgtag_t</a> <a class="code hl_function" href="classL4_1_1Thread.html#a94a6d8a5a7a78fa99ef3c6358e0a0459">vcpu_control</a>(<a class="code hl_typedef" href="group__l4__basic__types.html#ga4087b991c40c0d2fcde9ca331049a4d4">l4_addr_t</a> vcpu_state, <a class="code hl_typedef" href="group__l4__utcb__api.html#ga89be8a86d11c1d532b636cc2df1330fb">l4_utcb_t</a> *utcb = <a class="code hl_function" href="group__l4__utcb__api.html#gadc099b4a59e1d99638c72c11a8c8b644">l4_utcb</a>())</div>
|
|
<div class="line"><a id="l00359" name="l00359"></a><span class="lineno"> 359</span> noexcept</div>
|
|
<div class="line"><a id="l00360" name="l00360"></a><span class="lineno"> 360</span> { <span class="keywordflow">return</span> <a class="code hl_function" href="group__l4__thread__api.html#ga8ebc0dd643266610d76860cf0fb77f53">l4_thread_vcpu_control_u</a>(<a class="code hl_function" href="classL4_1_1Kobject.html#a4f2117ae76762f4084e6a1adb915863c">cap</a>(), vcpu_state, utcb); }</div>
|
|
</div>
|
|
<div class="line"><a id="l00361" name="l00361"></a><span class="lineno"> 361</span></div>
|
|
<div class="foldopen" id="foldopen00398" data-start="{" data-end="}">
|
|
<div class="line"><a id="l00398" name="l00398"></a><span class="lineno"><a class="line" href="classL4_1_1Thread.html#ac341b827b00c21bc3753c30163e0f173"> 398</a></span> <a class="code hl_struct" href="structl4__msgtag__t.html">l4_msgtag_t</a> <a class="code hl_function" href="classL4_1_1Thread.html#ac341b827b00c21bc3753c30163e0f173">vcpu_control_ext</a>(<a class="code hl_typedef" href="group__l4__basic__types.html#ga4087b991c40c0d2fcde9ca331049a4d4">l4_addr_t</a> ext_vcpu_state,</div>
|
|
<div class="line"><a id="l00399" name="l00399"></a><span class="lineno"> 399</span> <a class="code hl_typedef" href="group__l4__utcb__api.html#ga89be8a86d11c1d532b636cc2df1330fb">l4_utcb_t</a> *utcb = <a class="code hl_function" href="group__l4__utcb__api.html#gadc099b4a59e1d99638c72c11a8c8b644">l4_utcb</a>()) noexcept</div>
|
|
<div class="line"><a id="l00400" name="l00400"></a><span class="lineno"> 400</span> { <span class="keywordflow">return</span> <a class="code hl_function" href="group__l4__thread__api.html#ga1015c5500bcfeaa01d209ee116cf57ec">l4_thread_vcpu_control_ext_u</a>(<a class="code hl_function" href="classL4_1_1Kobject.html#a4f2117ae76762f4084e6a1adb915863c">cap</a>(), ext_vcpu_state, utcb); }</div>
|
|
</div>
|
|
<div class="line"><a id="l00401" name="l00401"></a><span class="lineno"> 401</span></div>
|
|
<div class="foldopen" id="foldopen00427" data-start="{" data-end="}">
|
|
<div class="line"><a id="l00427" name="l00427"></a><span class="lineno"><a class="line" href="classL4_1_1Thread.html#a5506636d5612bbc65a07edebcb885b8c"> 427</a></span> <a class="code hl_struct" href="structl4__msgtag__t.html">l4_msgtag_t</a> <a class="code hl_function" href="classL4_1_1Thread.html#a5506636d5612bbc65a07edebcb885b8c">register_del_irq</a>(<a class="code hl_class" href="classL4_1_1Cap.html">Cap<Irq></a> irq, <a class="code hl_typedef" href="group__l4__utcb__api.html#ga89be8a86d11c1d532b636cc2df1330fb">l4_utcb_t</a> *u = <a class="code hl_function" href="group__l4__utcb__api.html#gadc099b4a59e1d99638c72c11a8c8b644">l4_utcb</a>()) noexcept</div>
|
|
<div class="line"><a id="l00428" name="l00428"></a><span class="lineno"> 428</span> { <span class="keywordflow">return</span> l4_thread_register_del_irq_u(<a class="code hl_function" href="classL4_1_1Kobject.html#a4f2117ae76762f4084e6a1adb915863c">cap</a>(), irq.<a class="code hl_function" href="classL4_1_1Cap__base.html#a90ff089ca2442b128c2b2b0e1c22c6d7">cap</a>(), u); }</div>
|
|
</div>
|
|
<div class="line"><a id="l00429" name="l00429"></a><span class="lineno"> 429</span></div>
|
|
<div class="foldopen" id="foldopen00448" data-start="{" data-end="};">
|
|
<div class="line"><a id="l00448" name="l00448"></a><span class="lineno"><a class="line" href="classL4_1_1Thread_1_1Modify__senders.html"> 448</a></span> <span class="keyword">class </span>Modify_senders</div>
|
|
<div class="line"><a id="l00449" name="l00449"></a><span class="lineno"> 449</span> {</div>
|
|
<div class="line"><a id="l00450" name="l00450"></a><span class="lineno"> 450</span> <span class="keyword">private</span>:</div>
|
|
<div class="line"><a id="l00451" name="l00451"></a><span class="lineno"> 451</span> <span class="keyword">friend</span> <span class="keyword">class </span>Thread;</div>
|
|
<div class="line"><a id="l00452" name="l00452"></a><span class="lineno"> 452</span> <a class="code hl_typedef" href="group__l4__utcb__api.html#ga89be8a86d11c1d532b636cc2df1330fb">l4_utcb_t</a> *utcb;</div>
|
|
<div class="line"><a id="l00453" name="l00453"></a><span class="lineno"> 453</span> <span class="keywordtype">unsigned</span> cnt;</div>
|
|
<div class="line"><a id="l00454" name="l00454"></a><span class="lineno"> 454</span> </div>
|
|
<div class="line"><a id="l00455" name="l00455"></a><span class="lineno"> 455</span> <span class="keyword">public</span>:</div>
|
|
<div class="line"><a id="l00456" name="l00456"></a><span class="lineno"> 456</span> <span class="keyword">explicit</span> Modify_senders(<a class="code hl_typedef" href="group__l4__utcb__api.html#ga89be8a86d11c1d532b636cc2df1330fb">l4_utcb_t</a> *u = <a class="code hl_function" href="group__l4__utcb__api.html#gadc099b4a59e1d99638c72c11a8c8b644">l4_utcb</a>()) noexcept</div>
|
|
<div class="line"><a id="l00457" name="l00457"></a><span class="lineno"> 457</span> : utcb(u), cnt(1)</div>
|
|
<div class="line"><a id="l00458" name="l00458"></a><span class="lineno"> 458</span> {</div>
|
|
<div class="line"><a id="l00459" name="l00459"></a><span class="lineno"> 459</span> l4_utcb_mr_u(utcb)->mr[0] = <a class="code hl_enumvalue" href="group__l4__protocol__ops.html#gga2f876d49c3d78a1c0d62722c0546aa81aa84fb0f7dadf7aa5c77dcfdd45289047">L4_THREAD_MODIFY_SENDER_OP</a>;</div>
|
|
<div class="line"><a id="l00460" name="l00460"></a><span class="lineno"> 460</span> }</div>
|
|
<div class="line"><a id="l00461" name="l00461"></a><span class="lineno"> 461</span></div>
|
|
<div class="foldopen" id="foldopen00481" data-start="{" data-end="}">
|
|
<div class="line"><a id="l00481" name="l00481"></a><span class="lineno"><a class="line" href="classL4_1_1Thread_1_1Modify__senders.html#ae36dad061d7d4ef1469780b4c74ce7de"> 481</a></span> <span class="keywordtype">int</span> <a class="code hl_function" href="classL4_1_1Thread_1_1Modify__senders.html#ae36dad061d7d4ef1469780b4c74ce7de">add</a>(<a class="code hl_typedef" href="group__l4__basic__types.html#ga1c2c4b333f75b1d05b59855910f2b9cb">l4_umword_t</a> match_mask, <a class="code hl_typedef" href="group__l4__basic__types.html#ga1c2c4b333f75b1d05b59855910f2b9cb">l4_umword_t</a> match,</div>
|
|
<div class="line"><a id="l00482" name="l00482"></a><span class="lineno"> 482</span> <a class="code hl_typedef" href="group__l4__basic__types.html#ga1c2c4b333f75b1d05b59855910f2b9cb">l4_umword_t</a> del_bits, <a class="code hl_typedef" href="group__l4__basic__types.html#ga1c2c4b333f75b1d05b59855910f2b9cb">l4_umword_t</a> add_bits) <span class="keyword">noexcept</span></div>
|
|
<div class="line"><a id="l00483" name="l00483"></a><span class="lineno"> 483</span> {</div>
|
|
<div class="line"><a id="l00484" name="l00484"></a><span class="lineno"> 484</span> <a class="code hl_union" href="unionl4__msg__regs__t.html">l4_msg_regs_t</a> *m = l4_utcb_mr_u(utcb);</div>
|
|
<div class="line"><a id="l00485" name="l00485"></a><span class="lineno"> 485</span> <span class="keywordflow">if</span> (cnt >= L4_UTCB_GENERIC_DATA_SIZE - 4)</div>
|
|
<div class="line"><a id="l00486" name="l00486"></a><span class="lineno"> 486</span> <span class="keywordflow">return</span> -<a class="code hl_enumvalue" href="group__l4__error__api.html#ggab4c8abc71ffa221a25c1ca5840a354f9af7f5d38973fbf298613b03a088541e27">L4_ENOMEM</a>;</div>
|
|
<div class="line"><a id="l00487" name="l00487"></a><span class="lineno"> 487</span> m-><a class="code hl_variable" href="unionl4__msg__regs__t.html#ad7d601b3b3808afaefe4c09d42de8b99">mr</a>[cnt++] = match_mask;</div>
|
|
<div class="line"><a id="l00488" name="l00488"></a><span class="lineno"> 488</span> m-><a class="code hl_variable" href="unionl4__msg__regs__t.html#ad7d601b3b3808afaefe4c09d42de8b99">mr</a>[cnt++] = match;</div>
|
|
<div class="line"><a id="l00489" name="l00489"></a><span class="lineno"> 489</span> m-><a class="code hl_variable" href="unionl4__msg__regs__t.html#ad7d601b3b3808afaefe4c09d42de8b99">mr</a>[cnt++] = del_bits;</div>
|
|
<div class="line"><a id="l00490" name="l00490"></a><span class="lineno"> 490</span> m-><a class="code hl_variable" href="unionl4__msg__regs__t.html#ad7d601b3b3808afaefe4c09d42de8b99">mr</a>[cnt++] = add_bits;</div>
|
|
<div class="line"><a id="l00491" name="l00491"></a><span class="lineno"> 491</span> <span class="keywordflow">return</span> 0;</div>
|
|
<div class="line"><a id="l00492" name="l00492"></a><span class="lineno"> 492</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l00493" name="l00493"></a><span class="lineno"> 493</span> };</div>
|
|
</div>
|
|
<div class="line"><a id="l00494" name="l00494"></a><span class="lineno"> 494</span></div>
|
|
<div class="foldopen" id="foldopen00525" data-start="{" data-end="}">
|
|
<div class="line"><a id="l00525" name="l00525"></a><span class="lineno"><a class="line" href="classL4_1_1Thread.html#a9bcade7e8db8d775cc1f2a2a6225c845"> 525</a></span> <a class="code hl_struct" href="structl4__msgtag__t.html">l4_msgtag_t</a> <a class="code hl_function" href="classL4_1_1Thread.html#a9bcade7e8db8d775cc1f2a2a6225c845">modify_senders</a>(<a class="code hl_class" href="classL4_1_1Thread_1_1Modify__senders.html">Modify_senders</a> <span class="keyword">const</span> &todo) <span class="keyword">noexcept</span></div>
|
|
<div class="line"><a id="l00526" name="l00526"></a><span class="lineno"> 526</span> {</div>
|
|
<div class="line"><a id="l00527" name="l00527"></a><span class="lineno"> 527</span> <span class="keywordflow">return</span> <a class="code hl_function" href="group__l4__ipc__api.html#gab96d1669dcd54657237ee27b7f6862c6">l4_ipc_call</a>(<a class="code hl_function" href="classL4_1_1Kobject.html#a4f2117ae76762f4084e6a1adb915863c">cap</a>(), todo.utcb, <a class="code hl_function" href="group__l4__msgtag__api.html#ga661d71acad9d096fa990f7c94943bc78">l4_msgtag</a>(<a class="code hl_enumvalue" href="group__l4__msgtag__api.html#gga9ac8443c5696208bb0539dd659ea1c92a924bae5fb10fe4a7ad46e959a7fa87d3">L4_PROTO_THREAD</a>, todo.cnt, 0, 0), <a class="code hl_define" href="group__l4__timeout__api.html#gaf01c5e1475efc4f33bc7d1985f7320d3">L4_IPC_NEVER</a>);</div>
|
|
<div class="line"><a id="l00528" name="l00528"></a><span class="lineno"> 528</span> }</div>
|
|
</div>
|
|
<div class="line"><a id="l00529" name="l00529"></a><span class="lineno"> 529</span></div>
|
|
<div class="foldopen" id="foldopen00553" data-start="{" data-end="}">
|
|
<div class="line"><a id="l00553" name="l00553"></a><span class="lineno"><a class="line" href="classL4_1_1Thread.html#a3c0a77905e677454dcbb4a05d2d2d86b"> 553</a></span> <a class="code hl_struct" href="structl4__msgtag__t.html">l4_msgtag_t</a> <a class="code hl_function" href="classL4_1_1Thread.html#a3c0a77905e677454dcbb4a05d2d2d86b">register_doorbell_irq</a>(<a class="code hl_class" href="classL4_1_1Cap.html">Cap<Irq></a> irq, <a class="code hl_typedef" href="group__l4__utcb__api.html#ga89be8a86d11c1d532b636cc2df1330fb">l4_utcb_t</a> *u = <a class="code hl_function" href="group__l4__utcb__api.html#gadc099b4a59e1d99638c72c11a8c8b644">l4_utcb</a>()) noexcept</div>
|
|
<div class="line"><a id="l00554" name="l00554"></a><span class="lineno"> 554</span> { <span class="keywordflow">return</span> l4_thread_register_doorbell_irq_u(<a class="code hl_function" href="classL4_1_1Kobject.html#a4f2117ae76762f4084e6a1adb915863c">cap</a>(), irq.<a class="code hl_function" href="classL4_1_1Cap__base.html#a90ff089ca2442b128c2b2b0e1c22c6d7">cap</a>(), u); }</div>
|
|
</div>
|
|
<div class="line"><a id="l00555" name="l00555"></a><span class="lineno"> 555</span>};</div>
|
|
</div>
|
|
<div class="line"><a id="l00556" name="l00556"></a><span class="lineno"> 556</span>}</div>
|
|
<div class="ttc" id="acapability_html"><div class="ttname"><a href="capability.html">capability</a></div><div class="ttdoc">L4::Cap related definitions.</div></div>
|
|
<div class="ttc" id="aclassL4_1_1Cap__base_html_a90ff089ca2442b128c2b2b0e1c22c6d7"><div class="ttname"><a href="classL4_1_1Cap__base.html#a90ff089ca2442b128c2b2b0e1c22c6d7">L4::Cap_base::cap</a></div><div class="ttdeci">l4_cap_idx_t cap() const noexcept</div><div class="ttdoc">Return capability selector.</div><div class="ttdef"><b>Definition</b> <a href="capability_8h_source.html#l00049">capability.h:49</a></div></div>
|
|
<div class="ttc" id="aclassL4_1_1Cap_html"><div class="ttname"><a href="classL4_1_1Cap.html">L4::Cap</a></div><div class="ttdoc">C++ interface for capabilities.</div><div class="ttdef"><b>Definition</b> <a href="capability_8h_source.html#l00223">capability.h:224</a></div></div>
|
|
<div class="ttc" id="aclassL4_1_1Kobject__t_html"><div class="ttname"><a href="classL4_1_1Kobject__t.html">L4::Kobject_t</a></div><div class="ttdoc">Helper class to create an L4Re interface class that is derived from a single base class.</div><div class="ttdef"><b>Definition</b> <a href="____typeinfo_8h_source.html#l00749">__typeinfo.h:750</a></div></div>
|
|
<div class="ttc" id="aclassL4_1_1Kobject_html_a4f2117ae76762f4084e6a1adb915863c"><div class="ttname"><a href="classL4_1_1Kobject.html#a4f2117ae76762f4084e6a1adb915863c">L4::Kobject::cap</a></div><div class="ttdeci">l4_cap_idx_t cap() const noexcept</div><div class="ttdoc">Return capability selector.</div><div class="ttdef"><b>Definition</b> <a href="kobject_source.html#l00069">kobject:69</a></div></div>
|
|
<div class="ttc" id="aclassL4_1_1Thread_1_1Attr_html"><div class="ttname"><a href="classL4_1_1Thread_1_1Attr.html">L4::Thread::Attr</a></div><div class="ttdoc">Thread attributes used for control().</div><div class="ttdef"><b>Definition</b> <a href="#l00137">thread:138</a></div></div>
|
|
<div class="ttc" id="aclassL4_1_1Thread_1_1Attr_html_a1ded272370666669b579983487b5d280"><div class="ttname"><a href="classL4_1_1Thread_1_1Attr.html#a1ded272370666669b579983487b5d280">L4::Thread::Attr::pager</a></div><div class="ttdeci">void pager(Cap< void > const &pager) noexcept</div><div class="ttdoc">Set the pager capability selector.</div><div class="ttdef"><b>Definition</b> <a href="#l00161">thread:161</a></div></div>
|
|
<div class="ttc" id="aclassL4_1_1Thread_1_1Attr_html_a295af91a69ed626d687e8252816eba0d"><div class="ttname"><a href="classL4_1_1Thread_1_1Attr.html#a295af91a69ed626d687e8252816eba0d">L4::Thread::Attr::exc_handler</a></div><div class="ttdeci">void exc_handler(Cap< void > const &exc_handler) noexcept</div><div class="ttdoc">Set the exception-handler capability selector.</div><div class="ttdef"><b>Definition</b> <a href="#l00180">thread:180</a></div></div>
|
|
<div class="ttc" id="aclassL4_1_1Thread_1_1Attr_html_a36c7c950064465e541f655c077fa16d2"><div class="ttname"><a href="classL4_1_1Thread_1_1Attr.html#a36c7c950064465e541f655c077fa16d2">L4::Thread::Attr::Attr</a></div><div class="ttdeci">Attr(l4_utcb_t *utcb=l4_utcb()) noexcept</div><div class="ttdoc">Create a thread-attribute object with the given UTCB.</div><div class="ttdef"><b>Definition</b> <a href="#l00151">thread:151</a></div></div>
|
|
<div class="ttc" id="aclassL4_1_1Thread_1_1Attr_html_a6837b98088e389e3f9da3a0b4878f000"><div class="ttname"><a href="classL4_1_1Thread_1_1Attr.html#a6837b98088e389e3f9da3a0b4878f000">L4::Thread::Attr::exc_handler</a></div><div class="ttdeci">Cap< void > exc_handler() noexcept</div><div class="ttdoc">Get the capability selector used for exception messages.</div><div class="ttdef"><b>Definition</b> <a href="#l00189">thread:189</a></div></div>
|
|
<div class="ttc" id="aclassL4_1_1Thread_1_1Attr_html_a858c0a51f7b147c4b2ba21d4a97afdbb"><div class="ttname"><a href="classL4_1_1Thread_1_1Attr.html#a858c0a51f7b147c4b2ba21d4a97afdbb">L4::Thread::Attr::bind</a></div><div class="ttdeci">void bind(l4_utcb_t *thread_utcb, Cap< Task > const &task) noexcept</div><div class="ttdoc">Bind the thread to a task.</div><div class="ttdef"><b>Definition</b> <a href="#l00218">thread:218</a></div></div>
|
|
<div class="ttc" id="aclassL4_1_1Thread_1_1Attr_html_ad217d29a3b499b470e1aac462922a130"><div class="ttname"><a href="classL4_1_1Thread_1_1Attr.html#ad217d29a3b499b470e1aac462922a130">L4::Thread::Attr::pager</a></div><div class="ttdeci">Cap< void > pager() noexcept</div><div class="ttdoc">Get the capability selector used for page-fault messages.</div><div class="ttdef"><b>Definition</b> <a href="#l00170">thread:170</a></div></div>
|
|
<div class="ttc" id="aclassL4_1_1Thread_1_1Attr_html_ad7267e9110f24fa097dd14b7ab2e546b"><div class="ttname"><a href="classL4_1_1Thread_1_1Attr.html#ad7267e9110f24fa097dd14b7ab2e546b">L4::Thread::Attr::alien</a></div><div class="ttdeci">void alien(int on) noexcept</div><div class="ttdoc">Enable alien mode.</div><div class="ttdef"><b>Definition</b> <a href="#l00224">thread:224</a></div></div>
|
|
<div class="ttc" id="aclassL4_1_1Thread_1_1Modify__senders_html"><div class="ttname"><a href="classL4_1_1Thread_1_1Modify__senders.html">L4::Thread::Modify_senders</a></div><div class="ttdoc">Class wrapping a list of rules which modify the sender label of IPC messages inbound to this thread.</div><div class="ttdef"><b>Definition</b> <a href="#l00448">thread:449</a></div></div>
|
|
<div class="ttc" id="aclassL4_1_1Thread_1_1Modify__senders_html_ae36dad061d7d4ef1469780b4c74ce7de"><div class="ttname"><a href="classL4_1_1Thread_1_1Modify__senders.html#ae36dad061d7d4ef1469780b4c74ce7de">L4::Thread::Modify_senders::add</a></div><div class="ttdeci">int add(l4_umword_t match_mask, l4_umword_t match, l4_umword_t del_bits, l4_umword_t add_bits) noexcept</div><div class="ttdoc">Add a rule.</div><div class="ttdef"><b>Definition</b> <a href="#l00481">thread:481</a></div></div>
|
|
<div class="ttc" id="aclassL4_1_1Thread_html"><div class="ttname"><a href="classL4_1_1Thread.html">L4::Thread</a></div><div class="ttdoc">C++ L4 kernel thread interface, see Thread for the C interface.</div><div class="ttdef"><b>Definition</b> <a href="#l00052">thread:55</a></div></div>
|
|
<div class="ttc" id="aclassL4_1_1Thread_html_a3c0a77905e677454dcbb4a05d2d2d86b"><div class="ttname"><a href="classL4_1_1Thread.html#a3c0a77905e677454dcbb4a05d2d2d86b">L4::Thread::register_doorbell_irq</a></div><div class="ttdeci">l4_msgtag_t register_doorbell_irq(Cap< Irq > irq, l4_utcb_t *u=l4_utcb()) noexcept</div><div class="ttdoc">Register an IRQ that will trigger when a forwarded virtual interrupt is pending.</div><div class="ttdef"><b>Definition</b> <a href="#l00553">thread:553</a></div></div>
|
|
<div class="ttc" id="aclassL4_1_1Thread_html_a4252cd0ad4bdfa00cdc61b5fd2317aef"><div class="ttname"><a href="classL4_1_1Thread.html#a4252cd0ad4bdfa00cdc61b5fd2317aef">L4::Thread::control</a></div><div class="ttdeci">l4_msgtag_t control(Attr const &attr) noexcept</div><div class="ttdoc">Commit the given thread-attributes object.</div><div class="ttdef"><b>Definition</b> <a href="#l00243">thread:243</a></div></div>
|
|
<div class="ttc" id="aclassL4_1_1Thread_html_a5506636d5612bbc65a07edebcb885b8c"><div class="ttname"><a href="classL4_1_1Thread.html#a5506636d5612bbc65a07edebcb885b8c">L4::Thread::register_del_irq</a></div><div class="ttdeci">l4_msgtag_t register_del_irq(Cap< Irq > irq, l4_utcb_t *u=l4_utcb()) noexcept</div><div class="ttdoc">Register an IRQ that will trigger upon deletion events.</div><div class="ttdef"><b>Definition</b> <a href="#l00427">thread:427</a></div></div>
|
|
<div class="ttc" id="aclassL4_1_1Thread_html_a72ce9179f1b083a65f0d4caa5b6aee67"><div class="ttname"><a href="classL4_1_1Thread.html#a72ce9179f1b083a65f0d4caa5b6aee67">L4::Thread::vcpu_resume_commit</a></div><div class="ttdeci">l4_msgtag_t vcpu_resume_commit(l4_msgtag_t tag, l4_utcb_t *utcb=l4_utcb()) noexcept</div><div class="ttdoc">Resume from vCPU asynchronous IPC handler, commit.</div><div class="ttdef"><b>Definition</b> <a href="#l00334">thread:334</a></div></div>
|
|
<div class="ttc" id="aclassL4_1_1Thread_html_a7bb604d3fe94545ad9e44b46600aef46"><div class="ttname"><a href="classL4_1_1Thread.html#a7bb604d3fe94545ad9e44b46600aef46">L4::Thread::switch_to</a></div><div class="ttdeci">l4_msgtag_t switch_to(l4_utcb_t *utcb=l4_utcb()) noexcept</div><div class="ttdoc">Switch execution to this thread.</div><div class="ttdef"><b>Definition</b> <a href="#l00253">thread:253</a></div></div>
|
|
<div class="ttc" id="aclassL4_1_1Thread_html_a7c75cd39ef9fbe963d357d9909da7c10"><div class="ttname"><a href="classL4_1_1Thread.html#a7c75cd39ef9fbe963d357d9909da7c10">L4::Thread::stats_time</a></div><div class="ttdeci">l4_msgtag_t stats_time(l4_kernel_clock_t *us, l4_utcb_t *utcb=l4_utcb()) noexcept</div><div class="ttdoc">Get consumed time of thread in us.</div><div class="ttdef"><b>Definition</b> <a href="#l00264">thread:264</a></div></div>
|
|
<div class="ttc" id="aclassL4_1_1Thread_html_a94a6d8a5a7a78fa99ef3c6358e0a0459"><div class="ttname"><a href="classL4_1_1Thread.html#a94a6d8a5a7a78fa99ef3c6358e0a0459">L4::Thread::vcpu_control</a></div><div class="ttdeci">l4_msgtag_t vcpu_control(l4_addr_t vcpu_state, l4_utcb_t *utcb=l4_utcb()) noexcept</div><div class="ttdoc">Enable the vCPU feature for the thread.</div><div class="ttdef"><b>Definition</b> <a href="#l00358">thread:358</a></div></div>
|
|
<div class="ttc" id="aclassL4_1_1Thread_html_a9bcade7e8db8d775cc1f2a2a6225c845"><div class="ttname"><a href="classL4_1_1Thread.html#a9bcade7e8db8d775cc1f2a2a6225c845">L4::Thread::modify_senders</a></div><div class="ttdeci">l4_msgtag_t modify_senders(Modify_senders const &todo) noexcept</div><div class="ttdoc">Apply sender modification rules.</div><div class="ttdef"><b>Definition</b> <a href="#l00525">thread:525</a></div></div>
|
|
<div class="ttc" id="aclassL4_1_1Thread_html_aacd56bbf983577cfc591f21fd511d3b6"><div class="ttname"><a href="classL4_1_1Thread.html#aacd56bbf983577cfc591f21fd511d3b6">L4::Thread::ex_regs</a></div><div class="ttdeci">l4_msgtag_t ex_regs(l4_addr_t ip, l4_addr_t sp, l4_umword_t flags, l4_utcb_t *utcb=l4_utcb()) noexcept</div><div class="ttdoc">Exchange basic thread registers.</div><div class="ttdef"><b>Definition</b> <a href="#l00084">thread:84</a></div></div>
|
|
<div class="ttc" id="aclassL4_1_1Thread_html_ac341b827b00c21bc3753c30163e0f173"><div class="ttname"><a href="classL4_1_1Thread.html#ac341b827b00c21bc3753c30163e0f173">L4::Thread::vcpu_control_ext</a></div><div class="ttdeci">l4_msgtag_t vcpu_control_ext(l4_addr_t ext_vcpu_state, l4_utcb_t *utcb=l4_utcb()) noexcept</div><div class="ttdoc">Enable the extended vCPU feature for the thread.</div><div class="ttdef"><b>Definition</b> <a href="#l00398">thread:398</a></div></div>
|
|
<div class="ttc" id="aclassL4_1_1Thread_html_acced76970ec38a15b2ec5a8c756545b4"><div class="ttname"><a href="classL4_1_1Thread.html#acced76970ec38a15b2ec5a8c756545b4">L4::Thread::vcpu_resume_start</a></div><div class="ttdeci">l4_msgtag_t vcpu_resume_start(l4_utcb_t *utcb=l4_utcb()) noexcept</div><div class="ttdoc">Resume from vCPU asynchronous IPC handler, start.</div><div class="ttdef"><b>Definition</b> <a href="#l00283">thread:283</a></div></div>
|
|
<div class="ttc" id="aclassL4_1_1Thread_html_af50335e91a9efefa66b440aefefd9c61"><div class="ttname"><a href="classL4_1_1Thread.html#af50335e91a9efefa66b440aefefd9c61">L4::Thread::ex_regs</a></div><div class="ttdeci">l4_msgtag_t ex_regs(l4_addr_t *ip, l4_addr_t *sp, l4_umword_t *flags, l4_utcb_t *utcb=l4_utcb()) noexcept</div><div class="ttdoc">Exchange basic thread registers and return previous values.</div><div class="ttdef"><b>Definition</b> <a href="#l00119">thread:119</a></div></div>
|
|
<div class="ttc" id="agroup__l4__basic__types_html_ga1c2c4b333f75b1d05b59855910f2b9cb"><div class="ttname"><a href="group__l4__basic__types.html#ga1c2c4b333f75b1d05b59855910f2b9cb">l4_umword_t</a></div><div class="ttdeci">unsigned long l4_umword_t</div><div class="ttdoc">Unsigned machine word.</div><div class="ttdef"><b>Definition</b> <a href="l4_2sys_2l4int_8h_source.html#l00040">l4int.h:40</a></div></div>
|
|
<div class="ttc" id="agroup__l4__basic__types_html_ga4087b991c40c0d2fcde9ca331049a4d4"><div class="ttname"><a href="group__l4__basic__types.html#ga4087b991c40c0d2fcde9ca331049a4d4">l4_addr_t</a></div><div class="ttdeci">unsigned long l4_addr_t</div><div class="ttdoc">Address type.</div><div class="ttdef"><b>Definition</b> <a href="l4_2sys_2l4int_8h_source.html#l00034">l4int.h:34</a></div></div>
|
|
<div class="ttc" id="agroup__l4__basic__types_html_gab71da24eb7cda2c035f18b862309b101"><div class="ttname"><a href="group__l4__basic__types.html#gab71da24eb7cda2c035f18b862309b101">l4_kernel_clock_t</a></div><div class="ttdeci">l4_uint64_t l4_kernel_clock_t</div><div class="ttdoc">Kernel clock type.</div><div class="ttdef"><b>Definition</b> <a href="l4_2sys_2l4int_8h_source.html#l00053">l4int.h:53</a></div></div>
|
|
<div class="ttc" id="agroup__l4__error__api_html_ggab4c8abc71ffa221a25c1ca5840a354f9af7f5d38973fbf298613b03a088541e27"><div class="ttname"><a href="group__l4__error__api.html#ggab4c8abc71ffa221a25c1ca5840a354f9af7f5d38973fbf298613b03a088541e27">L4_ENOMEM</a></div><div class="ttdeci">@ L4_ENOMEM</div><div class="ttdoc">No memory.</div><div class="ttdef"><b>Definition</b> <a href="err_8h_source.html#l00039">err.h:39</a></div></div>
|
|
<div class="ttc" id="agroup__l4__ipc__api_html_gab96d1669dcd54657237ee27b7f6862c6"><div class="ttname"><a href="group__l4__ipc__api.html#gab96d1669dcd54657237ee27b7f6862c6">l4_ipc_call</a></div><div class="ttdeci">l4_msgtag_t l4_ipc_call(l4_cap_idx_t object, l4_utcb_t *utcb, l4_msgtag_t tag, l4_timeout_t timeout) L4_NOTHROW</div><div class="ttdoc">Object call (usual invocation).</div><div class="ttdef"><b>Definition</b> <a href="l4_2sys_2ipc_8h_source.html#l00565">ipc.h:565</a></div></div>
|
|
<div class="ttc" id="agroup__l4__msgtag__api_html_ga661d71acad9d096fa990f7c94943bc78"><div class="ttname"><a href="group__l4__msgtag__api.html#ga661d71acad9d096fa990f7c94943bc78">l4_msgtag</a></div><div class="ttdeci">l4_msgtag_t l4_msgtag(long label, unsigned words, unsigned items, unsigned flags) L4_NOTHROW</div><div class="ttdoc">Create a message tag from the specified values.</div><div class="ttdef"><b>Definition</b> <a href="l4_2sys_2types_8h_source.html#l00405">types.h:405</a></div></div>
|
|
<div class="ttc" id="agroup__l4__msgtag__api_html_gga9ac8443c5696208bb0539dd659ea1c92a924bae5fb10fe4a7ad46e959a7fa87d3"><div class="ttname"><a href="group__l4__msgtag__api.html#gga9ac8443c5696208bb0539dd659ea1c92a924bae5fb10fe4a7ad46e959a7fa87d3">L4_PROTO_THREAD</a></div><div class="ttdeci">@ L4_PROTO_THREAD</div><div class="ttdoc">Protocol for messages to a thread object.</div><div class="ttdef"><b>Definition</b> <a href="l4_2sys_2types_8h_source.html#l00054">types.h:54</a></div></div>
|
|
<div class="ttc" id="agroup__l4__protocol__ops_html_gga2f876d49c3d78a1c0d62722c0546aa81aa84fb0f7dadf7aa5c77dcfdd45289047"><div class="ttname"><a href="group__l4__protocol__ops.html#gga2f876d49c3d78a1c0d62722c0546aa81aa84fb0f7dadf7aa5c77dcfdd45289047">L4_THREAD_MODIFY_SENDER_OP</a></div><div class="ttdeci">@ L4_THREAD_MODIFY_SENDER_OP</div><div class="ttdoc">Modify all senders IDs that match the given pattern.</div><div class="ttdef"><b>Definition</b> <a href="l4_2sys_2thread_8h_source.html#l00740">thread.h:740</a></div></div>
|
|
<div class="ttc" id="agroup__l4__thread__api_html_ga1015c5500bcfeaa01d209ee116cf57ec"><div class="ttname"><a href="group__l4__thread__api.html#ga1015c5500bcfeaa01d209ee116cf57ec">l4_thread_vcpu_control_ext_u</a></div><div class="ttdeci">l4_msgtag_t l4_thread_vcpu_control_ext_u(l4_cap_idx_t thread, l4_addr_t ext_vcpu_state, l4_utcb_t *utcb) L4_NOTHROW</div><div class="ttdoc">Enable the extended vCPU feature for the thread.</div><div class="ttdef"><b>Definition</b> <a href="l4_2sys_2thread_8h_source.html#l01059">thread.h:1059</a></div></div>
|
|
<div class="ttc" id="agroup__l4__thread__api_html_ga5e191cd9b1cbc5d0ac9166fb2bdd5a18"><div class="ttname"><a href="group__l4__thread__api.html#ga5e191cd9b1cbc5d0ac9166fb2bdd5a18">l4_thread_ex_regs_ret_u</a></div><div class="ttdeci">l4_msgtag_t l4_thread_ex_regs_ret_u(l4_cap_idx_t thread, l4_addr_t *ip, l4_addr_t *sp, l4_umword_t *flags, l4_utcb_t *utcb) L4_NOTHROW</div><div class="ttdoc">Exchange basic thread registers and return previous values.</div><div class="ttdef"><b>Definition</b> <a href="l4_2sys_2thread_8h_source.html#l00823">thread.h:823</a></div></div>
|
|
<div class="ttc" id="agroup__l4__thread__api_html_ga8ebc0dd643266610d76860cf0fb77f53"><div class="ttname"><a href="group__l4__thread__api.html#ga8ebc0dd643266610d76860cf0fb77f53">l4_thread_vcpu_control_u</a></div><div class="ttdeci">l4_msgtag_t l4_thread_vcpu_control_u(l4_cap_idx_t thread, l4_addr_t vcpu_state, l4_utcb_t *utcb) L4_NOTHROW</div><div class="ttdoc">Enable the vCPU feature for the thread.</div><div class="ttdef"><b>Definition</b> <a href="l4_2sys_2thread_8h_source.html#l01044">thread.h:1044</a></div></div>
|
|
<div class="ttc" id="agroup__l4__thread__api_html_ga9387fbfe618c3ede0eae63261ce1662e"><div class="ttname"><a href="group__l4__thread__api.html#ga9387fbfe618c3ede0eae63261ce1662e">l4_thread_ex_regs_u</a></div><div class="ttdeci">l4_msgtag_t l4_thread_ex_regs_u(l4_cap_idx_t thread, l4_addr_t ip, l4_addr_t sp, l4_umword_t flags, l4_utcb_t *utcb) L4_NOTHROW</div><div class="ttdoc">Exchange basic thread registers.</div><div class="ttdef"><b>Definition</b> <a href="l4_2sys_2thread_8h_source.html#l00812">thread.h:812</a></div></div>
|
|
<div class="ttc" id="agroup__l4__timeout__api_html_gaf01c5e1475efc4f33bc7d1985f7320d3"><div class="ttname"><a href="group__l4__timeout__api.html#gaf01c5e1475efc4f33bc7d1985f7320d3">L4_IPC_NEVER</a></div><div class="ttdeci">#define L4_IPC_NEVER</div><div class="ttdoc">never timeout</div><div class="ttdef"><b>Definition</b> <a href="____timeout_8h_source.html#l00076">__timeout.h:76</a></div></div>
|
|
<div class="ttc" id="agroup__l4__utcb__api_html_ga89be8a86d11c1d532b636cc2df1330fb"><div class="ttname"><a href="group__l4__utcb__api.html#ga89be8a86d11c1d532b636cc2df1330fb">l4_utcb_t</a></div><div class="ttdeci">struct l4_utcb_t l4_utcb_t</div><div class="ttdoc">Opaque type for the UTCB.</div><div class="ttdef"><b>Definition</b> <a href="l4_2sys_2utcb_8h_source.html#l00056">utcb.h:56</a></div></div>
|
|
<div class="ttc" id="agroup__l4__utcb__api_html_gadc099b4a59e1d99638c72c11a8c8b644"><div class="ttname"><a href="group__l4__utcb__api.html#gadc099b4a59e1d99638c72c11a8c8b644">l4_utcb</a></div><div class="ttdeci">l4_utcb_t * l4_utcb(void) L4_NOTHROW L4_PURE</div><div class="ttdoc">Get the UTCB address.</div><div class="ttdef"><b>Definition</b> <a href="l4_2sys_2utcb_8h_source.html#l00346">utcb.h:346</a></div></div>
|
|
<div class="ttc" id="al4_2sys_2thread_8h_html"><div class="ttname"><a href="l4_2sys_2thread_8h.html">thread.h</a></div><div class="ttdoc">Common thread related definitions.</div></div>
|
|
<div class="ttc" id="anamespaceL4_html"><div class="ttname"><a href="namespaceL4.html">L4</a></div><div class="ttdoc">L4 low-level kernel interface.</div><div class="ttdef"><b>Definition</b> <a href="l4sys-l4f-groups_8dox_source.html#l00050">l4sys-l4f-groups.dox:50</a></div></div>
|
|
<div class="ttc" id="asnd__destination_html"><div class="ttname"><a href="snd__destination.html">snd_destination</a></div><div class="ttdoc">The C++ Sender destination interface.</div></div>
|
|
<div class="ttc" id="astructl4__msgtag__t_html"><div class="ttname"><a href="structl4__msgtag__t.html">l4_msgtag_t</a></div><div class="ttdoc">Message tag data structure.</div><div class="ttdef"><b>Definition</b> <a href="l4_2sys_2types_8h_source.html#l00153">types.h:154</a></div></div>
|
|
<div class="ttc" id="aunionl4__msg__regs__t_html"><div class="ttname"><a href="unionl4__msg__regs__t.html">l4_msg_regs_t</a></div><div class="ttdoc">Encapsulation of the message-register block in the UTCB.</div><div class="ttdef"><b>Definition</b> <a href="l4_2sys_2utcb_8h_source.html#l00067">utcb.h:68</a></div></div>
|
|
<div class="ttc" id="aunionl4__msg__regs__t_html_ad7d601b3b3808afaefe4c09d42de8b99"><div class="ttname"><a href="unionl4__msg__regs__t.html#ad7d601b3b3808afaefe4c09d42de8b99">l4_msg_regs_t::mr</a></div><div class="ttdeci">l4_umword_t mr[L4_UTCB_GENERIC_DATA_SIZE]</div><div class="ttdoc">Message registers.</div><div class="ttdef"><b>Definition</b> <a href="l4_2sys_2utcb_8h_source.html#l00069">utcb.h:69</a></div></div>
|
|
</div><!-- fragment --></div><!-- contents -->
|
|
</div><!-- doc-content -->
|
|
</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="navelem"><b>l4</b></li><li class="navelem"><b>sys</b></li><li class="navelem"><a href="sys_2thread.html">thread</a></li>
|
|
<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>
|