Files
moslab-code/doc/source/html/factory_source.html
2025-09-12 15:55:45 +02:00

376 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/factory 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('factory_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">factory</div></div>
</div><!--header-->
<div class="contents">
<a href="factory.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 &lt;adam@os.inf.tu-dresden.de&gt;,</span></div>
<div class="line"><a id="l00008" name="l00008"></a><span class="lineno"> 8</span><span class="comment"> * Alexander Warg &lt;warg@os.inf.tu-dresden.de&gt;</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 &lt;<a class="code" href="factory_8h.html">l4/sys/factory.h</a>&gt;</span></div>
<div class="line"><a id="l00017" name="l00017"></a><span class="lineno"> 17</span><span class="preprocessor">#include &lt;<a class="code" href="capability.html">l4/sys/capability</a>&gt;</span></div>
<div class="line"><a id="l00018" name="l00018"></a><span class="lineno"> 18</span><span class="preprocessor">#include &lt;<a class="code" href="snd__destination.html">l4/sys/snd_destination</a>&gt;</span></div>
<div class="line"><a id="l00019" name="l00019"></a><span class="lineno"> 19</span><span class="preprocessor">#include &lt;<a class="code" href="ipc__iface.html">l4/sys/cxx/ipc_iface</a>&gt;</span></div>
<div class="line"><a id="l00020" name="l00020"></a><span class="lineno"> 20</span><span class="preprocessor">#include &lt;l4/sys/cxx/ipc_varg&gt;</span></div>
<div class="line"><a id="l00021" name="l00021"></a><span class="lineno"> 21</span> </div>
<div class="line"><a id="l00022" name="l00022"></a><span class="lineno"> 22</span><span class="keyword">namespace </span><a class="code hl_namespace" href="namespaceL4.html">L4</a> {</div>
<div class="line"><a id="l00023" name="l00023"></a><span class="lineno"> 23</span></div>
<div class="foldopen" id="foldopen00038" data-start="{" data-end="};">
<div class="line"><a id="l00038" name="l00038"></a><span class="lineno"><a class="line" href="classL4_1_1Factory.html"> 38</a></span><span class="keyword">class </span><a class="code hl_class" href="classL4_1_1Factory.html">Factory</a> : <span class="keyword">public</span> <a class="code hl_class" href="classL4_1_1Kobject__t.html">Kobject_t</a>&lt;Factory, Kobject, L4_PROTO_FACTORY&gt;</div>
<div class="line"><a id="l00039" name="l00039"></a><span class="lineno"> 39</span>{</div>
<div class="line"><a id="l00040" name="l00040"></a><span class="lineno"> 40</span><span class="keyword">public</span>:</div>
<div class="line"><a id="l00041" name="l00041"></a><span class="lineno"> 41</span> </div>
<div class="line"><a id="l00042" name="l00042"></a><span class="lineno"> 42</span> <span class="keyword">typedef</span> <a class="code hl_typedef" href="group__l4__basic__types.html#ga51d9492e7700d70ed35838154ca9b279">l4_mword_t</a> Proto;</div>
<div class="line"><a id="l00043" name="l00043"></a><span class="lineno"> 43</span></div>
<div class="line"><a id="l00047" name="l00047"></a><span class="lineno"><a class="line" href="structL4_1_1Factory_1_1Nil.html"> 47</a></span> <span class="keyword">struct </span><a class="code hl_struct" href="structL4_1_1Factory_1_1Nil.html">Nil</a> {};</div>
<div class="line"><a id="l00048" name="l00048"></a><span class="lineno"> 48</span></div>
<div class="foldopen" id="foldopen00054" data-start="{" data-end="};">
<div class="line"><a id="l00054" name="l00054"></a><span class="lineno"><a class="line" href="structL4_1_1Factory_1_1Lstr.html"> 54</a></span> <span class="keyword">struct </span><a class="code hl_function" href="structL4_1_1Factory_1_1Lstr.html#a23e8bbf1619273a9167a2e1ea992e5ab">Lstr</a></div>
<div class="line"><a id="l00055" name="l00055"></a><span class="lineno"> 55</span> {</div>
<div class="line"><a id="l00059" name="l00059"></a><span class="lineno"><a class="line" href="structL4_1_1Factory_1_1Lstr.html#a85b3623697057173132dc2ac2bf52e9f"> 59</a></span> <span class="keywordtype">char</span> <span class="keyword">const</span> *<a class="code hl_variable" href="structL4_1_1Factory_1_1Lstr.html#a85b3623697057173132dc2ac2bf52e9f">s</a>;</div>
<div class="line"><a id="l00060" name="l00060"></a><span class="lineno"> 60</span></div>
<div class="line"><a id="l00064" name="l00064"></a><span class="lineno"><a class="line" href="structL4_1_1Factory_1_1Lstr.html#a50ac138504b6d16d7d2c06b0ee5c5920"> 64</a></span> <span class="keywordtype">unsigned</span> <a class="code hl_variable" href="structL4_1_1Factory_1_1Lstr.html#a50ac138504b6d16d7d2c06b0ee5c5920">len</a>;</div>
<div class="line"><a id="l00065" name="l00065"></a><span class="lineno"> 65</span></div>
<div class="line"><a id="l00070" name="l00070"></a><span class="lineno"><a class="line" href="structL4_1_1Factory_1_1Lstr.html#a23e8bbf1619273a9167a2e1ea992e5ab"> 70</a></span> <a class="code hl_function" href="structL4_1_1Factory_1_1Lstr.html#a23e8bbf1619273a9167a2e1ea992e5ab">Lstr</a>(<span class="keywordtype">char</span> <span class="keyword">const</span> *<a class="code hl_variable" href="structL4_1_1Factory_1_1Lstr.html#a85b3623697057173132dc2ac2bf52e9f">s</a>, <span class="keywordtype">unsigned</span> <a class="code hl_variable" href="structL4_1_1Factory_1_1Lstr.html#a50ac138504b6d16d7d2c06b0ee5c5920">len</a>) noexcept : <a class="code hl_variable" href="structL4_1_1Factory_1_1Lstr.html#a85b3623697057173132dc2ac2bf52e9f">s</a>(<a class="code hl_variable" href="structL4_1_1Factory_1_1Lstr.html#a85b3623697057173132dc2ac2bf52e9f">s</a>), <a class="code hl_variable" href="structL4_1_1Factory_1_1Lstr.html#a50ac138504b6d16d7d2c06b0ee5c5920">len</a>(<a class="code hl_variable" href="structL4_1_1Factory_1_1Lstr.html#a50ac138504b6d16d7d2c06b0ee5c5920">len</a>) {}</div>
<div class="line"><a id="l00071" name="l00071"></a><span class="lineno"> 71</span> };</div>
</div>
<div class="line"><a id="l00072" name="l00072"></a><span class="lineno"> 72</span></div>
<div class="foldopen" id="foldopen00079" data-start="{" data-end="};">
<div class="line"><a id="l00079" name="l00079"></a><span class="lineno"><a class="line" href="classL4_1_1Factory_1_1S.html"> 79</a></span> <span class="keyword">class </span>S</div>
<div class="line"><a id="l00080" name="l00080"></a><span class="lineno"> 80</span> {</div>
<div class="line"><a id="l00081" name="l00081"></a><span class="lineno"> 81</span> <span class="keyword">private</span>:</div>
<div class="line"><a id="l00082" name="l00082"></a><span class="lineno"> 82</span> <a class="code hl_typedef" href="group__l4__utcb__api.html#ga89be8a86d11c1d532b636cc2df1330fb">l4_utcb_t</a> *u;</div>
<div class="line"><a id="l00083" name="l00083"></a><span class="lineno"> 83</span> <a class="code hl_struct" href="structl4__msgtag__t.html">l4_msgtag_t</a> t;</div>
<div class="line"><a id="l00084" name="l00084"></a><span class="lineno"> 84</span> <a class="code hl_typedef" href="group__l4__cap__api.html#ga1445e923ce73029130d569d6e69a4dd8">l4_cap_idx_t</a> f;</div>
<div class="line"><a id="l00085" name="l00085"></a><span class="lineno"> 85</span> </div>
<div class="line"><a id="l00086" name="l00086"></a><span class="lineno"> 86</span> <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;</div>
<div class="line"><a id="l00087" name="l00087"></a><span class="lineno"> 87</span> <span class="keyword">static</span> T &amp;&amp;_move(T &amp;<a class="code hl_function" href="classL4_1_1Kobject__t.html#a3d80fec7e057d575ec4b393437f05f8a">c</a>) { <span class="keywordflow">return</span> <span class="keyword">static_cast&lt;</span>T &amp;&amp;<span class="keyword">&gt;</span>(<a class="code hl_function" href="classL4_1_1Kobject__t.html#a3d80fec7e057d575ec4b393437f05f8a">c</a>); }</div>
<div class="line"><a id="l00088" name="l00088"></a><span class="lineno"> 88</span> </div>
<div class="line"><a id="l00089" name="l00089"></a><span class="lineno"> 89</span> <span class="keyword">public</span>:</div>
<div class="line"><a id="l00090" name="l00090"></a><span class="lineno"> 90</span> S(S <span class="keyword">const</span> &amp;) = <span class="keyword">delete</span>;</div>
<div class="line"><a id="l00091" name="l00091"></a><span class="lineno"> 91</span> S &amp;operator = (S <span class="keyword">const</span> &amp;) &amp; = <span class="keyword">delete</span>;</div>
<div class="line"><a id="l00092" name="l00092"></a><span class="lineno"> 92</span></div>
<div class="foldopen" id="foldopen00098" data-start="{" data-end="}">
<div class="line"><a id="l00098" name="l00098"></a><span class="lineno"><a class="line" href="classL4_1_1Factory_1_1S.html#a10872d6bfa3c5d56c758afa5f6990e33"> 98</a></span> <a class="code hl_function" href="classL4_1_1Factory_1_1S.html#a10872d6bfa3c5d56c758afa5f6990e33">S</a>(S &amp;&amp;o) noexcept</div>
<div class="line"><a id="l00099" name="l00099"></a><span class="lineno"> 99</span> : u(o.u), t(o.t), f(o.f)</div>
<div class="line"><a id="l00100" name="l00100"></a><span class="lineno"> 100</span> { o.t.raw = 0; }</div>
</div>
<div class="line"><a id="l00101" name="l00101"></a><span class="lineno"> 101</span> </div>
<div class="line"><a id="l00102" name="l00102"></a><span class="lineno"> 102</span> <a class="code hl_class" href="classL4_1_1Factory_1_1S.html">S</a> &amp;operator = (<a class="code hl_class" href="classL4_1_1Factory_1_1S.html">S</a> &amp;&amp;o) &amp; <span class="keyword">noexcept</span></div>
<div class="line"><a id="l00103" name="l00103"></a><span class="lineno"> 103</span> {</div>
<div class="line"><a id="l00104" name="l00104"></a><span class="lineno"> 104</span> u = o.u;</div>
<div class="line"><a id="l00105" name="l00105"></a><span class="lineno"> 105</span> t = o.t;</div>
<div class="line"><a id="l00106" name="l00106"></a><span class="lineno"> 106</span> f = o.f;</div>
<div class="line"><a id="l00107" name="l00107"></a><span class="lineno"> 107</span> o.t.<a class="code hl_variable" href="structl4__msgtag__t.html#adcc4bbec40c01f7418f800e071d9712f">raw</a> = 0;</div>
<div class="line"><a id="l00108" name="l00108"></a><span class="lineno"> 108</span> <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
<div class="line"><a id="l00109" name="l00109"></a><span class="lineno"> 109</span> }</div>
<div class="line"><a id="l00110" name="l00110"></a><span class="lineno"> 110</span></div>
<div class="foldopen" id="foldopen00125" data-start="{" data-end="}">
<div class="line"><a id="l00125" name="l00125"></a><span class="lineno"><a class="line" href="classL4_1_1Factory_1_1S.html#aaf046fad4fc7443de1ddc97fed502f0e"> 125</a></span> <a class="code hl_function" href="classL4_1_1Factory_1_1S.html#aaf046fad4fc7443de1ddc97fed502f0e">S</a>(<a class="code hl_typedef" href="group__l4__cap__api.html#ga1445e923ce73029130d569d6e69a4dd8">l4_cap_idx_t</a> f, <span class="keywordtype">long</span> obj, <a class="code hl_class" href="classL4_1_1Cap.html">L4::Cap&lt;void&gt;</a> target,</div>
<div class="line"><a id="l00126" name="l00126"></a><span class="lineno"> 126</span> <a class="code hl_typedef" href="group__l4__utcb__api.html#ga89be8a86d11c1d532b636cc2df1330fb">l4_utcb_t</a> *utcb) noexcept</div>
<div class="line"><a id="l00127" name="l00127"></a><span class="lineno"> 127</span> : u(utcb), t(l4_factory_create_start_u(obj, target.cap(), u)), f(f)</div>
<div class="line"><a id="l00128" name="l00128"></a><span class="lineno"> 128</span> {}</div>
</div>
<div class="line"><a id="l00129" name="l00129"></a><span class="lineno"> 129</span></div>
<div class="foldopen" id="foldopen00139" data-start="{" data-end="}">
<div class="line"><a id="l00139" name="l00139"></a><span class="lineno"><a class="line" href="classL4_1_1Factory_1_1S.html#aad7428db30766e804dae4978622bb2c0"> 139</a></span> <a class="code hl_function" href="classL4_1_1Factory_1_1S.html#aad7428db30766e804dae4978622bb2c0">~S</a>() noexcept</div>
<div class="line"><a id="l00140" name="l00140"></a><span class="lineno"> 140</span> {</div>
<div class="line"><a id="l00141" name="l00141"></a><span class="lineno"> 141</span> <span class="keywordflow">if</span> (t.raw)</div>
<div class="line"><a id="l00142" name="l00142"></a><span class="lineno"> 142</span> l4_factory_create_commit_u(f, t, u);</div>
<div class="line"><a id="l00143" name="l00143"></a><span class="lineno"> 143</span> }</div>
</div>
<div class="line"><a id="l00144" name="l00144"></a><span class="lineno"> 144</span></div>
<div class="foldopen" id="foldopen00157" data-start="{" data-end="}">
<div class="line"><a id="l00157" name="l00157"></a><span class="lineno"><a class="line" href="classL4_1_1Factory_1_1S.html#af01d7ba40ace8862c0b670e1fb705810"> 157</a></span> <span class="keyword">operator</span> <a class="code hl_typedef" href="group__l4__msgtag__api.html#gad2c28384485a82490cab17ac929f05e9">l4_msgtag_t</a> () noexcept</div>
<div class="line"><a id="l00158" name="l00158"></a><span class="lineno"> 158</span> {</div>
<div class="line"><a id="l00159" name="l00159"></a><span class="lineno"> 159</span> <a class="code hl_struct" href="structl4__msgtag__t.html">l4_msgtag_t</a> r = l4_factory_create_commit_u(f, t, u);</div>
<div class="line"><a id="l00160" name="l00160"></a><span class="lineno"> 160</span> t.raw = 0;</div>
<div class="line"><a id="l00161" name="l00161"></a><span class="lineno"> 161</span> <span class="keywordflow">return</span> r;</div>
<div class="line"><a id="l00162" name="l00162"></a><span class="lineno"> 162</span> }</div>
</div>
<div class="line"><a id="l00163" name="l00163"></a><span class="lineno"> 163</span></div>
<div class="foldopen" id="foldopen00169" data-start="{" data-end="}">
<div class="line"><a id="l00169" name="l00169"></a><span class="lineno"><a class="line" href="classL4_1_1Factory_1_1S.html#af30065dbee60359f6dc4fb10c233b714"> 169</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classL4_1_1Factory_1_1S.html#af30065dbee60359f6dc4fb10c233b714">put</a>(<a class="code hl_typedef" href="group__l4__basic__types.html#ga51d9492e7700d70ed35838154ca9b279">l4_mword_t</a> i) <span class="keyword">noexcept</span></div>
<div class="line"><a id="l00170" name="l00170"></a><span class="lineno"> 170</span> {</div>
<div class="line"><a id="l00171" name="l00171"></a><span class="lineno"> 171</span> l4_factory_create_add_int_u(i, &amp;t, u);</div>
<div class="line"><a id="l00172" name="l00172"></a><span class="lineno"> 172</span> }</div>
</div>
<div class="line"><a id="l00173" name="l00173"></a><span class="lineno"> 173</span></div>
<div class="foldopen" id="foldopen00179" data-start="{" data-end="}">
<div class="line"><a id="l00179" name="l00179"></a><span class="lineno"><a class="line" href="classL4_1_1Factory_1_1S.html#a82909c1e611d30137945efb733ed5e94"> 179</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classL4_1_1Factory_1_1S.html#a82909c1e611d30137945efb733ed5e94">put</a>(<a class="code hl_typedef" href="group__l4__basic__types.html#ga1c2c4b333f75b1d05b59855910f2b9cb">l4_umword_t</a> i) <span class="keyword">noexcept</span></div>
<div class="line"><a id="l00180" name="l00180"></a><span class="lineno"> 180</span> {</div>
<div class="line"><a id="l00181" name="l00181"></a><span class="lineno"> 181</span> l4_factory_create_add_uint_u(i, &amp;t, u);</div>
<div class="line"><a id="l00182" name="l00182"></a><span class="lineno"> 182</span> }</div>
</div>
<div class="line"><a id="l00183" name="l00183"></a><span class="lineno"> 183</span></div>
<div class="foldopen" id="foldopen00191" data-start="{" data-end="}">
<div class="line"><a id="l00191" name="l00191"></a><span class="lineno"><a class="line" href="classL4_1_1Factory_1_1S.html#ae3f4086746322f4671ed433b681d0e36"> 191</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classL4_1_1Factory_1_1S.html#ae3f4086746322f4671ed433b681d0e36">put</a>(<span class="keywordtype">char</span> <span class="keyword">const</span> *s) &amp; <span class="keyword">noexcept</span></div>
<div class="line"><a id="l00192" name="l00192"></a><span class="lineno"> 192</span> {</div>
<div class="line"><a id="l00193" name="l00193"></a><span class="lineno"> 193</span> l4_factory_create_add_str_u(s, &amp;t, u);</div>
<div class="line"><a id="l00194" name="l00194"></a><span class="lineno"> 194</span> }</div>
</div>
<div class="line"><a id="l00195" name="l00195"></a><span class="lineno"> 195</span></div>
<div class="foldopen" id="foldopen00205" data-start="{" data-end="}">
<div class="line"><a id="l00205" name="l00205"></a><span class="lineno"><a class="line" href="classL4_1_1Factory_1_1S.html#a24cd556b2694235b7c50d1098e69cdef"> 205</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classL4_1_1Factory_1_1S.html#a24cd556b2694235b7c50d1098e69cdef">put</a>(<a class="code hl_struct" href="structL4_1_1Factory_1_1Lstr.html">Lstr</a> <span class="keyword">const</span> &amp;s) &amp; <span class="keyword">noexcept</span></div>
<div class="line"><a id="l00206" name="l00206"></a><span class="lineno"> 206</span> {</div>
<div class="line"><a id="l00207" name="l00207"></a><span class="lineno"> 207</span> l4_factory_create_add_lstr_u(s.s, s.len, &amp;t, u);</div>
<div class="line"><a id="l00208" name="l00208"></a><span class="lineno"> 208</span> }</div>
</div>
<div class="line"><a id="l00209" name="l00209"></a><span class="lineno"> 209</span></div>
<div class="foldopen" id="foldopen00213" data-start="{" data-end="}">
<div class="line"><a id="l00213" name="l00213"></a><span class="lineno"><a class="line" href="classL4_1_1Factory_1_1S.html#ac9c927167cb7f7e10a3558a4d38fb3bc"> 213</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classL4_1_1Factory_1_1S.html#ac9c927167cb7f7e10a3558a4d38fb3bc">put</a>(<a class="code hl_struct" href="structL4_1_1Factory_1_1Nil.html">Nil</a>) &amp; <span class="keyword">noexcept</span></div>
<div class="line"><a id="l00214" name="l00214"></a><span class="lineno"> 214</span> {</div>
<div class="line"><a id="l00215" name="l00215"></a><span class="lineno"> 215</span> l4_factory_create_add_nil_u(&amp;t, u);</div>
<div class="line"><a id="l00216" name="l00216"></a><span class="lineno"> 216</span> }</div>
</div>
<div class="line"><a id="l00217" name="l00217"></a><span class="lineno"> 217</span></div>
<div class="foldopen" id="foldopen00223" data-start="{" data-end="}">
<div class="line"><a id="l00223" name="l00223"></a><span class="lineno"><a class="line" href="classL4_1_1Factory_1_1S.html#a4c826aba007f12cf42366409ed5d2f5a"> 223</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classL4_1_1Factory_1_1S.html#a4c826aba007f12cf42366409ed5d2f5a">put</a>(<a class="code hl_union" href="unionl4__fpage__t.html">l4_fpage_t</a> d) &amp; <span class="keyword">noexcept</span></div>
<div class="line"><a id="l00224" name="l00224"></a><span class="lineno"> 224</span> {</div>
<div class="line"><a id="l00225" name="l00225"></a><span class="lineno"> 225</span> l4_factory_create_add_fpage_u(d, &amp;t, u);</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="line"><a id="l00236" name="l00236"></a><span class="lineno"> 236</span> <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;</div>
<div class="foldopen" id="foldopen00237" data-start="{" data-end="}">
<div class="line"><a id="l00237" name="l00237"></a><span class="lineno"><a class="line" href="classL4_1_1Factory_1_1S.html#a867317b78ac79b473c6b8cdb5cac48ef"> 237</a></span> S &amp;<a class="code hl_function" href="classL4_1_1Factory_1_1S.html#a867317b78ac79b473c6b8cdb5cac48ef">operator &lt;&lt; </a>(T <span class="keyword">const</span> &amp;d) &amp; <span class="keyword">noexcept</span></div>
<div class="line"><a id="l00238" name="l00238"></a><span class="lineno"> 238</span> {</div>
<div class="line"><a id="l00239" name="l00239"></a><span class="lineno"> 239</span> <a class="code hl_function" href="classL4_1_1Factory_1_1S.html#af30065dbee60359f6dc4fb10c233b714">put</a>(d);</div>
<div class="line"><a id="l00240" name="l00240"></a><span class="lineno"> 240</span> <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
<div class="line"><a id="l00241" name="l00241"></a><span class="lineno"> 241</span> }</div>
</div>
<div class="line"><a id="l00242" name="l00242"></a><span class="lineno"> 242</span></div>
<div class="line"><a id="l00251" name="l00251"></a><span class="lineno"> 251</span> <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;</div>
<div class="foldopen" id="foldopen00252" data-start="{" data-end="}">
<div class="line"><a id="l00252" name="l00252"></a><span class="lineno"><a class="line" href="classL4_1_1Factory_1_1S.html#ac2a85644ae19157624fe9558631c6b43"> 252</a></span> S &amp;&amp;<a class="code hl_function" href="classL4_1_1Factory_1_1S.html#a867317b78ac79b473c6b8cdb5cac48ef">operator &lt;&lt; </a>(T <span class="keyword">const</span> &amp;d) &amp;&amp; <span class="keyword">noexcept</span></div>
<div class="line"><a id="l00253" name="l00253"></a><span class="lineno"> 253</span> {</div>
<div class="line"><a id="l00254" name="l00254"></a><span class="lineno"> 254</span> <a class="code hl_function" href="classL4_1_1Factory_1_1S.html#af30065dbee60359f6dc4fb10c233b714">put</a>(d);</div>
<div class="line"><a id="l00255" name="l00255"></a><span class="lineno"> 255</span> <span class="keywordflow">return</span> _move(*<span class="keyword">this</span>);</div>
<div class="line"><a id="l00256" name="l00256"></a><span class="lineno"> 256</span> }</div>
</div>
<div class="line"><a id="l00257" name="l00257"></a><span class="lineno"> 257</span> };</div>
</div>
<div class="line"><a id="l00258" name="l00258"></a><span class="lineno"> 258</span> </div>
<div class="line"><a id="l00259" name="l00259"></a><span class="lineno"> 259</span> </div>
<div class="line"><a id="l00260" name="l00260"></a><span class="lineno"> 260</span><span class="keyword">public</span>:</div>
<div class="line"><a id="l00261" name="l00261"></a><span class="lineno"> 261</span></div>
<div class="foldopen" id="foldopen00292" data-start="{" data-end="}">
<div class="line"><a id="l00292" name="l00292"></a><span class="lineno"><a class="line" href="classL4_1_1Factory.html#ab52604d4abed4d6009ce51a59492edd7"> 292</a></span> <a class="code hl_class" href="classL4_1_1Factory_1_1S.html">S</a> <a class="code hl_function" href="classL4_1_1Factory.html#ab52604d4abed4d6009ce51a59492edd7">create</a>(<a class="code hl_class" href="classL4_1_1Cap.html">Cap&lt;void&gt;</a> target, <span class="keywordtype">long</span> obj, <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="l00293" name="l00293"></a><span class="lineno"> 293</span> {</div>
<div class="line"><a id="l00294" name="l00294"></a><span class="lineno"> 294</span> <span class="keywordflow">return</span> <a class="code hl_class" href="classL4_1_1Factory_1_1S.html">S</a>(<a class="code hl_function" href="classL4_1_1Kobject.html#a4f2117ae76762f4084e6a1adb915863c">cap</a>(), obj, target, utcb);</div>
<div class="line"><a id="l00295" name="l00295"></a><span class="lineno"> 295</span> }</div>
</div>
<div class="line"><a id="l00296" name="l00296"></a><span class="lineno"> 296</span></div>
<div class="line"><a id="l00328" name="l00328"></a><span class="lineno"> 328</span> <span class="keyword">template</span>&lt;<span class="keyword">typename</span> OBJ&gt;</div>
<div class="foldopen" id="foldopen00329" data-start="{" data-end="}">
<div class="line"><a id="l00329" name="l00329"></a><span class="lineno"><a class="line" href="classL4_1_1Factory.html#add39d432a64a16aec33abeefcb3ba1cd"> 329</a></span> <a class="code hl_class" href="classL4_1_1Factory_1_1S.html">S</a> <a class="code hl_function" href="classL4_1_1Factory.html#add39d432a64a16aec33abeefcb3ba1cd">create</a>(<a class="code hl_class" href="classL4_1_1Cap.html">Cap&lt;OBJ&gt;</a> target, <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="l00330" name="l00330"></a><span class="lineno"> 330</span> {</div>
<div class="line"><a id="l00331" name="l00331"></a><span class="lineno"> 331</span> <span class="keywordflow">return</span> <a class="code hl_class" href="classL4_1_1Factory_1_1S.html">S</a>(<a class="code hl_function" href="classL4_1_1Kobject.html#a4f2117ae76762f4084e6a1adb915863c">cap</a>(), OBJ::Protocol, target, utcb);</div>
<div class="line"><a id="l00332" name="l00332"></a><span class="lineno"> 332</span> }</div>
</div>
<div class="line"><a id="l00333" name="l00333"></a><span class="lineno"> 333</span> </div>
<div class="line"><a id="l00334" name="l00334"></a><span class="lineno"> 334</span> <a class="code hl_define" href="ipc__iface.html#a7bc5bdbe269ef0598c166ed1dd923549">L4_INLINE_RPC_NF</a>(</div>
<div class="line"><a id="l00335" name="l00335"></a><span class="lineno"> 335</span> <a class="code hl_struct" href="structl4__msgtag__t.html">l4_msgtag_t</a>, <a class="code hl_function" href="classL4_1_1Factory.html#ab52604d4abed4d6009ce51a59492edd7">create</a>, (<a class="code hl_struct" href="structL4_1_1Ipc_1_1Out.html">L4::Ipc::Out</a>&lt;<a class="code hl_class" href="classL4_1_1Cap.html">L4::Cap&lt;void&gt;</a> &gt; target, <a class="code hl_typedef" href="group__l4__basic__types.html#ga51d9492e7700d70ed35838154ca9b279">l4_mword_t</a> obj,</div>
<div class="line"><a id="l00336" name="l00336"></a><span class="lineno"> 336</span> <a class="code hl_class" href="classL4_1_1Ipc_1_1Varg.html">L4::Ipc::Varg</a> <span class="keyword">const</span> *args),</div>
<div class="line"><a id="l00337" name="l00337"></a><span class="lineno"> 337</span> <a class="code hl_struct" href="structL4_1_1Ipc_1_1Call__t.html">L4::Ipc::Call_t&lt;L4_CAP_FPAGE_S&gt;</a>);</div>
<div class="line"><a id="l00338" name="l00338"></a><span class="lineno"> 338</span></div>
<div class="foldopen" id="foldopen00370" data-start="{" data-end="}">
<div class="line"><a id="l00370" name="l00370"></a><span class="lineno"><a class="line" href="classL4_1_1Factory.html#a491c8f5113bb68cd402db1eb59ac76ea"> 370</a></span> <a class="code hl_struct" href="structl4__msgtag__t.html">l4_msgtag_t</a> <a class="code hl_function" href="classL4_1_1Factory.html#a491c8f5113bb68cd402db1eb59ac76ea">create_task</a>(<a class="code hl_class" href="classL4_1_1Cap.html">Cap&lt;Task&gt;</a> <span class="keyword">const</span> &amp; target_cap,</div>
<div class="line"><a id="l00371" name="l00371"></a><span class="lineno"> 371</span> <a class="code hl_union" href="unionl4__fpage__t.html">l4_fpage_t</a> *utcb_area,</div>
<div class="line"><a id="l00372" name="l00372"></a><span class="lineno"> 372</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="l00373" name="l00373"></a><span class="lineno"> 373</span> { <span class="keywordflow">return</span> l4_factory_create_task_u(<a class="code hl_function" href="classL4_1_1Kobject.html#a4f2117ae76762f4084e6a1adb915863c">cap</a>(), target_cap.<a class="code hl_function" href="classL4_1_1Cap__base.html#a90ff089ca2442b128c2b2b0e1c22c6d7">cap</a>(), utcb_area, utcb); }</div>
</div>
<div class="line"><a id="l00374" name="l00374"></a><span class="lineno"> 374</span></div>
<div class="foldopen" id="foldopen00404" data-start="{" data-end="}">
<div class="line"><a id="l00404" name="l00404"></a><span class="lineno"><a class="line" href="classL4_1_1Factory.html#a014721aec27ad4877555d5f4b7204896"> 404</a></span> <a class="code hl_struct" href="structl4__msgtag__t.html">l4_msgtag_t</a> <a class="code hl_function" href="classL4_1_1Factory.html#a014721aec27ad4877555d5f4b7204896">create_factory</a>(<a class="code hl_class" href="classL4_1_1Cap.html">Cap&lt;Factory&gt;</a> <span class="keyword">const</span> &amp;target_cap,</div>
<div class="line"><a id="l00405" name="l00405"></a><span class="lineno"> 405</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> limit,</div>
<div class="line"><a id="l00406" name="l00406"></a><span class="lineno"> 406</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="l00407" name="l00407"></a><span class="lineno"> 407</span> { <span class="keywordflow">return</span> l4_factory_create_factory_u(<a class="code hl_function" href="classL4_1_1Kobject.html#a4f2117ae76762f4084e6a1adb915863c">cap</a>(), target_cap.<a class="code hl_function" href="classL4_1_1Cap__base.html#a90ff089ca2442b128c2b2b0e1c22c6d7">cap</a>(), limit, utcb); }</div>
</div>
<div class="line"><a id="l00408" name="l00408"></a><span class="lineno"> 408</span></div>
<div class="foldopen" id="foldopen00440" data-start="{" data-end="}">
<div class="line"><a id="l00440" name="l00440"></a><span class="lineno"><a class="line" href="classL4_1_1Factory.html#a79b67bcf639db7fd92b399d44ab272a8"> 440</a></span> <a class="code hl_struct" href="structl4__msgtag__t.html">l4_msgtag_t</a> <a class="code hl_function" href="classL4_1_1Factory.html#a79b67bcf639db7fd92b399d44ab272a8">create_gate</a>(<a class="code hl_class" href="classL4_1_1Cap.html">Cap&lt;void&gt;</a> <span class="keyword">const</span> &amp;target_cap,</div>
<div class="line"><a id="l00441" name="l00441"></a><span class="lineno"> 441</span> <a class="code hl_class" href="classL4_1_1Cap.html">Cap&lt;Snd_destination&gt;</a> <span class="keyword">const</span> &amp;snd_dst_cap,</div>
<div class="line"><a id="l00442" name="l00442"></a><span class="lineno"> 442</span> <a class="code hl_typedef" href="group__l4__basic__types.html#ga1c2c4b333f75b1d05b59855910f2b9cb">l4_umword_t</a> label,</div>
<div class="line"><a id="l00443" name="l00443"></a><span class="lineno"> 443</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="l00444" name="l00444"></a><span class="lineno"> 444</span> {</div>
<div class="line"><a id="l00445" name="l00445"></a><span class="lineno"> 445</span> <span class="keywordflow">return</span> l4_factory_create_gate_u(<a class="code hl_function" href="classL4_1_1Kobject.html#a4f2117ae76762f4084e6a1adb915863c">cap</a>(), target_cap.<a class="code hl_function" href="classL4_1_1Cap__base.html#a90ff089ca2442b128c2b2b0e1c22c6d7">cap</a>(), snd_dst_cap.<a class="code hl_function" href="classL4_1_1Cap__base.html#a90ff089ca2442b128c2b2b0e1c22c6d7">cap</a>(),</div>
<div class="line"><a id="l00446" name="l00446"></a><span class="lineno"> 446</span> label, utcb);</div>
<div class="line"><a id="l00447" name="l00447"></a><span class="lineno"> 447</span> }</div>
</div>
<div class="line"><a id="l00448" name="l00448"></a><span class="lineno"> 448</span></div>
<div class="foldopen" id="foldopen00475" data-start="{" data-end="}">
<div class="line"><a id="l00475" name="l00475"></a><span class="lineno"><a class="line" href="classL4_1_1Factory.html#a6b0504bc01000ccbeaf137b20e7284c5"> 475</a></span> <a class="code hl_struct" href="structl4__msgtag__t.html">l4_msgtag_t</a> <a class="code hl_function" href="classL4_1_1Factory.html#a6b0504bc01000ccbeaf137b20e7284c5">create_thread_group</a>(<a class="code hl_class" href="classL4_1_1Cap.html">Cap&lt;Thread_group&gt;</a> <span class="keyword">const</span> &amp;target_cap,</div>
<div class="line"><a id="l00476" name="l00476"></a><span class="lineno"> 476</span> <span class="keywordtype">unsigned</span> policy,</div>
<div class="line"><a id="l00477" name="l00477"></a><span class="lineno"> 477</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="l00478" name="l00478"></a><span class="lineno"> 478</span> {</div>
<div class="line"><a id="l00479" name="l00479"></a><span class="lineno"> 479</span> <span class="keywordflow">return</span> l4_factory_create_thread_group_u(<a class="code hl_function" href="classL4_1_1Kobject.html#a4f2117ae76762f4084e6a1adb915863c">cap</a>(), target_cap.<a class="code hl_function" href="classL4_1_1Cap__base.html#a90ff089ca2442b128c2b2b0e1c22c6d7">cap</a>(),</div>
<div class="line"><a id="l00480" name="l00480"></a><span class="lineno"> 480</span> policy, utcb);</div>
<div class="line"><a id="l00481" name="l00481"></a><span class="lineno"> 481</span> }</div>
</div>
<div class="line"><a id="l00482" name="l00482"></a><span class="lineno"> 482</span> </div>
<div class="line"><a id="l00483" name="l00483"></a><span class="lineno"> 483</span> <span class="keyword">typedef</span> <a class="code hl_struct" href="structL4_1_1Typeid_1_1Rpc__nocode.html">L4::Typeid::Rpc_nocode&lt;create_t&gt;</a> Rpcs;</div>
<div class="line"><a id="l00484" name="l00484"></a><span class="lineno"> 484</span>};</div>
</div>
<div class="line"><a id="l00485" name="l00485"></a><span class="lineno"> 485</span> </div>
<div class="line"><a id="l00486" name="l00486"></a><span class="lineno"> 486</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_1Factory_1_1S_html"><div class="ttname"><a href="classL4_1_1Factory_1_1S.html">L4::Factory::S</a></div><div class="ttdoc">Stream class for the create() argument stream.</div><div class="ttdef"><b>Definition</b> <a href="#l00079">factory:80</a></div></div>
<div class="ttc" id="aclassL4_1_1Factory_1_1S_html_a10872d6bfa3c5d56c758afa5f6990e33"><div class="ttname"><a href="classL4_1_1Factory_1_1S.html#a10872d6bfa3c5d56c758afa5f6990e33">L4::Factory::S::S</a></div><div class="ttdeci">S(S &amp;&amp;o) noexcept</div><div class="ttdoc">Move constructor.</div><div class="ttdef"><b>Definition</b> <a href="#l00098">factory:98</a></div></div>
<div class="ttc" id="aclassL4_1_1Factory_1_1S_html_a24cd556b2694235b7c50d1098e69cdef"><div class="ttname"><a href="classL4_1_1Factory_1_1S.html#a24cd556b2694235b7c50d1098e69cdef">L4::Factory::S::put</a></div><div class="ttdeci">void put(Lstr const &amp;s) &amp;noexcept</div><div class="ttdoc">Add a pascal string as next argument.</div><div class="ttdef"><b>Definition</b> <a href="#l00205">factory:205</a></div></div>
<div class="ttc" id="aclassL4_1_1Factory_1_1S_html_a4c826aba007f12cf42366409ed5d2f5a"><div class="ttname"><a href="classL4_1_1Factory_1_1S.html#a4c826aba007f12cf42366409ed5d2f5a">L4::Factory::S::put</a></div><div class="ttdeci">void put(l4_fpage_t d) &amp;noexcept</div><div class="ttdoc">Add a flexpage as next argument.</div><div class="ttdef"><b>Definition</b> <a href="#l00223">factory:223</a></div></div>
<div class="ttc" id="aclassL4_1_1Factory_1_1S_html_a82909c1e611d30137945efb733ed5e94"><div class="ttname"><a href="classL4_1_1Factory_1_1S.html#a82909c1e611d30137945efb733ed5e94">L4::Factory::S::put</a></div><div class="ttdeci">void put(l4_umword_t i) noexcept</div><div class="ttdoc">Put a single l4_umword_t as next argument.</div><div class="ttdef"><b>Definition</b> <a href="#l00179">factory:179</a></div></div>
<div class="ttc" id="aclassL4_1_1Factory_1_1S_html_a867317b78ac79b473c6b8cdb5cac48ef"><div class="ttname"><a href="classL4_1_1Factory_1_1S.html#a867317b78ac79b473c6b8cdb5cac48ef">L4::Factory::S::operator&lt;&lt;</a></div><div class="ttdeci">S &amp; operator&lt;&lt;(T const &amp;d) &amp;noexcept</div><div class="ttdoc">Add next argument.</div><div class="ttdef"><b>Definition</b> <a href="#l00237">factory:237</a></div></div>
<div class="ttc" id="aclassL4_1_1Factory_1_1S_html_aad7428db30766e804dae4978622bb2c0"><div class="ttname"><a href="classL4_1_1Factory_1_1S.html#aad7428db30766e804dae4978622bb2c0">L4::Factory::S::~S</a></div><div class="ttdeci">~S() noexcept</div><div class="ttdoc">Commit the create() operation if not already done explicitly via operator l4_msgtag_t().</div><div class="ttdef"><b>Definition</b> <a href="#l00139">factory:139</a></div></div>
<div class="ttc" id="aclassL4_1_1Factory_1_1S_html_aaf046fad4fc7443de1ddc97fed502f0e"><div class="ttname"><a href="classL4_1_1Factory_1_1S.html#aaf046fad4fc7443de1ddc97fed502f0e">L4::Factory::S::S</a></div><div class="ttdeci">S(l4_cap_idx_t f, long obj, L4::Cap&lt; void &gt; target, l4_utcb_t *utcb) noexcept</div><div class="ttdoc">Create a stream for a specific create() call.</div><div class="ttdef"><b>Definition</b> <a href="#l00125">factory:125</a></div></div>
<div class="ttc" id="aclassL4_1_1Factory_1_1S_html_ac9c927167cb7f7e10a3558a4d38fb3bc"><div class="ttname"><a href="classL4_1_1Factory_1_1S.html#ac9c927167cb7f7e10a3558a4d38fb3bc">L4::Factory::S::put</a></div><div class="ttdeci">void put(Nil) &amp;noexcept</div><div class="ttdoc">Add an empty argument.</div><div class="ttdef"><b>Definition</b> <a href="#l00213">factory:213</a></div></div>
<div class="ttc" id="aclassL4_1_1Factory_1_1S_html_ae3f4086746322f4671ed433b681d0e36"><div class="ttname"><a href="classL4_1_1Factory_1_1S.html#ae3f4086746322f4671ed433b681d0e36">L4::Factory::S::put</a></div><div class="ttdeci">void put(char const *s) &amp;noexcept</div><div class="ttdoc">Add a zero-terminated string as next argument.</div><div class="ttdef"><b>Definition</b> <a href="#l00191">factory:191</a></div></div>
<div class="ttc" id="aclassL4_1_1Factory_1_1S_html_af30065dbee60359f6dc4fb10c233b714"><div class="ttname"><a href="classL4_1_1Factory_1_1S.html#af30065dbee60359f6dc4fb10c233b714">L4::Factory::S::put</a></div><div class="ttdeci">void put(l4_mword_t i) noexcept</div><div class="ttdoc">Put a single l4_mword_t as next argument.</div><div class="ttdef"><b>Definition</b> <a href="#l00169">factory:169</a></div></div>
<div class="ttc" id="aclassL4_1_1Factory_html"><div class="ttname"><a href="classL4_1_1Factory.html">L4::Factory</a></div><div class="ttdoc">C++ Factory interface, see Factory for the C interface.</div><div class="ttdef"><b>Definition</b> <a href="#l00038">factory:39</a></div></div>
<div class="ttc" id="aclassL4_1_1Factory_html_a014721aec27ad4877555d5f4b7204896"><div class="ttname"><a href="classL4_1_1Factory.html#a014721aec27ad4877555d5f4b7204896">L4::Factory::create_factory</a></div><div class="ttdeci">l4_msgtag_t create_factory(Cap&lt; Factory &gt; const &amp;target_cap, unsigned long limit, l4_utcb_t *utcb=l4_utcb()) noexcept</div><div class="ttdoc">Create a new factory.</div><div class="ttdef"><b>Definition</b> <a href="#l00404">factory:404</a></div></div>
<div class="ttc" id="aclassL4_1_1Factory_html_a491c8f5113bb68cd402db1eb59ac76ea"><div class="ttname"><a href="classL4_1_1Factory.html#a491c8f5113bb68cd402db1eb59ac76ea">L4::Factory::create_task</a></div><div class="ttdeci">l4_msgtag_t create_task(Cap&lt; Task &gt; const &amp;target_cap, l4_fpage_t *utcb_area, l4_utcb_t *utcb=l4_utcb()) noexcept</div><div class="ttdoc">Create a new task.</div><div class="ttdef"><b>Definition</b> <a href="#l00370">factory:370</a></div></div>
<div class="ttc" id="aclassL4_1_1Factory_html_a6b0504bc01000ccbeaf137b20e7284c5"><div class="ttname"><a href="classL4_1_1Factory.html#a6b0504bc01000ccbeaf137b20e7284c5">L4::Factory::create_thread_group</a></div><div class="ttdeci">l4_msgtag_t create_thread_group(Cap&lt; Thread_group &gt; const &amp;target_cap, unsigned policy, l4_utcb_t *utcb=l4_utcb()) noexcept</div><div class="ttdoc">Create a new thread group.</div><div class="ttdef"><b>Definition</b> <a href="#l00475">factory:475</a></div></div>
<div class="ttc" id="aclassL4_1_1Factory_html_a79b67bcf639db7fd92b399d44ab272a8"><div class="ttname"><a href="classL4_1_1Factory.html#a79b67bcf639db7fd92b399d44ab272a8">L4::Factory::create_gate</a></div><div class="ttdeci">l4_msgtag_t create_gate(Cap&lt; void &gt; const &amp;target_cap, Cap&lt; Snd_destination &gt; const &amp;snd_dst_cap, l4_umword_t label, l4_utcb_t *utcb=l4_utcb()) noexcept</div><div class="ttdoc">Create a new IPC gate, optionally bound to a send destination (a thread or thread group).</div><div class="ttdef"><b>Definition</b> <a href="#l00440">factory:440</a></div></div>
<div class="ttc" id="aclassL4_1_1Factory_html_ab52604d4abed4d6009ce51a59492edd7"><div class="ttname"><a href="classL4_1_1Factory.html#ab52604d4abed4d6009ce51a59492edd7">L4::Factory::create</a></div><div class="ttdeci">S create(Cap&lt; void &gt; target, long obj, l4_utcb_t *utcb=l4_utcb()) noexcept</div><div class="ttdoc">Generic create call to the factory.</div><div class="ttdef"><b>Definition</b> <a href="#l00292">factory:292</a></div></div>
<div class="ttc" id="aclassL4_1_1Factory_html_add39d432a64a16aec33abeefcb3ba1cd"><div class="ttname"><a href="classL4_1_1Factory.html#add39d432a64a16aec33abeefcb3ba1cd">L4::Factory::create</a></div><div class="ttdeci">S create(Cap&lt; OBJ &gt; target, l4_utcb_t *utcb=l4_utcb()) noexcept</div><div class="ttdoc">Create call for typed capabilities.</div><div class="ttdef"><b>Definition</b> <a href="#l00329">factory:329</a></div></div>
<div class="ttc" id="aclassL4_1_1Ipc_1_1Varg_html"><div class="ttname"><a href="classL4_1_1Ipc_1_1Varg.html">L4::Ipc::Varg</a></div><div class="ttdoc">Variably sized RPC argument.</div><div class="ttdef"><b>Definition</b> <a href="ipc__varg_source.html#l00096">ipc_varg:97</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__t_html_a3d80fec7e057d575ec4b393437f05f8a"><div class="ttname"><a href="classL4_1_1Kobject__t.html#a3d80fec7e057d575ec4b393437f05f8a">L4::Kobject_t&lt; Factory, Kobject, L4_PROTO_FACTORY &gt;::c</a></div><div class="ttdeci">L4::Cap&lt; Class &gt; c() const noexcept</div><div class="ttdef"><b>Definition</b> <a href="____typeinfo_8h_source.html#l00769">__typeinfo.h:769</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="afactory_8h_html"><div class="ttname"><a href="factory_8h.html">factory.h</a></div><div class="ttdoc">Common factory related definitions.</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_ga51d9492e7700d70ed35838154ca9b279"><div class="ttname"><a href="group__l4__basic__types.html#ga51d9492e7700d70ed35838154ca9b279">l4_mword_t</a></div><div class="ttdeci">signed long l4_mword_t</div><div class="ttdoc">Signed machine word.</div><div class="ttdef"><b>Definition</b> <a href="l4_2sys_2l4int_8h_source.html#l00037">l4int.h:37</a></div></div>
<div class="ttc" id="agroup__l4__cap__api_html_ga1445e923ce73029130d569d6e69a4dd8"><div class="ttname"><a href="group__l4__cap__api.html#ga1445e923ce73029130d569d6e69a4dd8">l4_cap_idx_t</a></div><div class="ttdeci">unsigned long l4_cap_idx_t</div><div class="ttdoc">Capability selector type.</div><div class="ttdef"><b>Definition</b> <a href="l4_2sys_2types_8h_source.html#l00336">types.h:336</a></div></div>
<div class="ttc" id="agroup__l4__msgtag__api_html_gad2c28384485a82490cab17ac929f05e9"><div class="ttname"><a href="group__l4__msgtag__api.html#gad2c28384485a82490cab17ac929f05e9">l4_msgtag_t</a></div><div class="ttdeci">struct l4_msgtag_t l4_msgtag_t</div><div class="ttdoc">Message tag data structure.</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="aipc__iface_html"><div class="ttname"><a href="ipc__iface.html">ipc_iface</a></div><div class="ttdoc">Interface Definition Language.</div></div>
<div class="ttc" id="aipc__iface_html_a7bc5bdbe269ef0598c166ed1dd923549"><div class="ttname"><a href="ipc__iface.html#a7bc5bdbe269ef0598c166ed1dd923549">L4_INLINE_RPC_NF</a></div><div class="ttdeci">#define L4_INLINE_RPC_NF(res, name, args...)</div><div class="ttdoc">Define an inline RPC call type (the type only, no callable).</div><div class="ttdef"><b>Definition</b> <a href="ipc__iface_source.html#l00453">ipc_iface:453</a></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_1_1Factory_1_1Lstr_html"><div class="ttname"><a href="structL4_1_1Factory_1_1Lstr.html">L4::Factory::Lstr</a></div><div class="ttdoc">Special type to add a pascal string into the factory create stream.</div><div class="ttdef"><b>Definition</b> <a href="#l00054">factory:55</a></div></div>
<div class="ttc" id="astructL4_1_1Factory_1_1Lstr_html_a23e8bbf1619273a9167a2e1ea992e5ab"><div class="ttname"><a href="structL4_1_1Factory_1_1Lstr.html#a23e8bbf1619273a9167a2e1ea992e5ab">L4::Factory::Lstr::Lstr</a></div><div class="ttdeci">Lstr(char const *s, unsigned len) noexcept</div><div class="ttdef"><b>Definition</b> <a href="#l00070">factory:70</a></div></div>
<div class="ttc" id="astructL4_1_1Factory_1_1Lstr_html_a50ac138504b6d16d7d2c06b0ee5c5920"><div class="ttname"><a href="structL4_1_1Factory_1_1Lstr.html#a50ac138504b6d16d7d2c06b0ee5c5920">L4::Factory::Lstr::len</a></div><div class="ttdeci">unsigned len</div><div class="ttdoc">The number of characters in the buffer.</div><div class="ttdef"><b>Definition</b> <a href="#l00064">factory:64</a></div></div>
<div class="ttc" id="astructL4_1_1Factory_1_1Lstr_html_a85b3623697057173132dc2ac2bf52e9f"><div class="ttname"><a href="structL4_1_1Factory_1_1Lstr.html#a85b3623697057173132dc2ac2bf52e9f">L4::Factory::Lstr::s</a></div><div class="ttdeci">char const * s</div><div class="ttdoc">The character buffer.</div><div class="ttdef"><b>Definition</b> <a href="#l00059">factory:59</a></div></div>
<div class="ttc" id="astructL4_1_1Factory_1_1Nil_html"><div class="ttname"><a href="structL4_1_1Factory_1_1Nil.html">L4::Factory::Nil</a></div><div class="ttdoc">Special type to add a void argument into the factory create stream.</div><div class="ttdef"><b>Definition</b> <a href="#l00047">factory:47</a></div></div>
<div class="ttc" id="astructL4_1_1Ipc_1_1Call__t_html"><div class="ttname"><a href="structL4_1_1Ipc_1_1Call__t.html">L4::Ipc::Call_t</a></div><div class="ttdoc">RPC attribute for an RPC call with required rights.</div><div class="ttdef"><b>Definition</b> <a href="ipc__iface_source.html#l00270">ipc_iface:271</a></div></div>
<div class="ttc" id="astructL4_1_1Ipc_1_1Out_html"><div class="ttname"><a href="structL4_1_1Ipc_1_1Out.html">L4::Ipc::Out</a></div><div class="ttdoc">Mark an argument as a output value in an RPC signature.</div><div class="ttdef"><b>Definition</b> <a href="ipc__types_source.html#l00031">ipc_types:31</a></div></div>
<div class="ttc" id="astructL4_1_1Typeid_1_1Rpc__nocode_html"><div class="ttname"><a href="structL4_1_1Typeid_1_1Rpc__nocode.html">L4::Typeid::Rpc_nocode</a></div><div class="ttdoc">List of RPCs of an interface using a single operation without an opcode.</div><div class="ttdef"><b>Definition</b> <a href="____typeinfo_8h_source.html#l00454">__typeinfo.h:454</a></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="astructl4__msgtag__t_html_adcc4bbec40c01f7418f800e071d9712f"><div class="ttname"><a href="structl4__msgtag__t.html#adcc4bbec40c01f7418f800e071d9712f">l4_msgtag_t::raw</a></div><div class="ttdeci">l4_mword_t raw</div><div class="ttdoc">raw value</div><div class="ttdef"><b>Definition</b> <a href="l4_2sys_2types_8h_source.html#l00155">types.h:155</a></div></div>
<div class="ttc" id="aunionl4__fpage__t_html"><div class="ttname"><a href="unionl4__fpage__t.html">l4_fpage_t</a></div><div class="ttdoc">L4 flexpage type.</div><div class="ttdef"><b>Definition</b> <a href="____l4__fpage_8h_source.html#l00076">__l4_fpage.h:76</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="factory.html">factory</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>