l4re-base-25.08.0

This commit is contained in:
2025-09-12 15:55:45 +02:00
commit d959eaab98
37938 changed files with 9382688 additions and 0 deletions

View File

@@ -0,0 +1,742 @@
<!-- 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::Cap_base Class Reference</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('classL4_1_1Cap__base.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">L4::Cap_base Class Reference</div></div>
</div><!--header-->
<div class="contents">
<p>Base class for all kinds of capabilities.
<a href="#details">More...</a></p>
<p><code>#include &lt;<a class="el" href="capability_source.html">l4/sys/capability</a>&gt;</code></p>
<div id="dynsection-0" onclick="return dynsection.toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;"><span class="dynarrow"><span class="arrowhead closed"></span></span>Inheritance diagram for L4::Cap_base:</div>
<div id="dynsection-0-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-0-content" class="dyncontent" style="display:none;">
<div class="center"><iframe scrolling="no" loading="lazy" frameborder="0" src="classL4_1_1Cap__base__inherit__graph.svg" width="3088" height="1007"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div>
</div>
<div id="dynsection-1" onclick="return dynsection.toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;"><span class="dynarrow"><span class="arrowhead closed"></span></span>Collaboration diagram for L4::Cap_base:</div>
<div id="dynsection-1-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-1-content" class="dyncontent" style="display:none;">
<div class="center"><iframe scrolling="no" loading="lazy" frameborder="0" src="classL4_1_1Cap__base__coll__graph.svg" width="162" height="376"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div>
</div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 id="header-pub-types" class="groupheader"><a id="pub-types" name="pub-types"></a>
Public Types</h2></td></tr>
<tr class="memitem:ad37dbcac6ae8bb071b62abc38327065d" id="r_ad37dbcac6ae8bb071b62abc38327065d"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ad37dbcac6ae8bb071b62abc38327065d">No_init_type</a> { <a class="el" href="#ad37dbcac6ae8bb071b62abc38327065da2bb30abe3785b586e7458771a248c889">No_init</a>
}</td></tr>
<tr class="memdesc:ad37dbcac6ae8bb071b62abc38327065d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Special value for uninitialized capability objects. <a href="#ad37dbcac6ae8bb071b62abc38327065d">More...</a><br /></td></tr>
<tr class="memitem:ac74dbedb04347341ba30ece923c12fe7" id="r_ac74dbedb04347341ba30ece923c12fe7"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ac74dbedb04347341ba30ece923c12fe7">Cap_type</a> { <a class="el" href="#ac74dbedb04347341ba30ece923c12fe7af425c8e16afcd760ecb1f30bd6c1437a">Invalid</a> = L4_INVALID_CAP
}</td></tr>
<tr class="memdesc:ac74dbedb04347341ba30ece923c12fe7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Invalid capability type. <a href="#ac74dbedb04347341ba30ece923c12fe7">More...</a><br /></td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 id="header-pub-methods" class="groupheader"><a id="pub-methods" name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a90ff089ca2442b128c2b2b0e1c22c6d7" id="r_a90ff089ca2442b128c2b2b0e1c22c6d7"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__l4__cap__api.html#ga1445e923ce73029130d569d6e69a4dd8">l4_cap_idx_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a90ff089ca2442b128c2b2b0e1c22c6d7">cap</a> () const noexcept</td></tr>
<tr class="memdesc:a90ff089ca2442b128c2b2b0e1c22c6d7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return capability selector. <br /></td></tr>
<tr class="memitem:ab4937bb12579c752564f7250760d0bda" id="r_ab4937bb12579c752564f7250760d0bda"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ab4937bb12579c752564f7250760d0bda">is_valid</a> () const noexcept</td></tr>
<tr class="memdesc:ab4937bb12579c752564f7250760d0bda"><td class="mdescLeft">&#160;</td><td class="mdescRight">Test whether the capability is a valid capability index (i.e., not L4_INVALID_CAP). <br /></td></tr>
<tr class="memitem:ad26ec2034582191b74ac1b819e1948da" id="r_ad26ec2034582191b74ac1b819e1948da"><td class="memItemLeft" align="right" valign="top"><a id="ad26ec2034582191b74ac1b819e1948da" name="ad26ec2034582191b74ac1b819e1948da"></a>
int&#160;</td><td class="memItemRight" valign="bottom"><b>invalid_cap_error</b> () const noexcept</td></tr>
<tr class="memdesc:ad26ec2034582191b74ac1b819e1948da"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the transported error code in an invalid capability index. <br /></td></tr>
<tr class="memitem:a60a4c249059576429246b5b74bd3174e" id="r_a60a4c249059576429246b5b74bd3174e"><td class="memItemLeft" align="right" valign="top"><a class="el" href="unionl4__fpage__t.html">l4_fpage_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a60a4c249059576429246b5b74bd3174e">fpage</a> (unsigned rights=<a class="el" href="group__l4__fpage__api.html#ggaee60789a48cab2782f5a368237591b39abf42b05aa006bc62a22f1be1aa760020">L4_CAP_FPAGE_RWS</a>) const noexcept</td></tr>
<tr class="memdesc:a60a4c249059576429246b5b74bd3174e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return flexpage for the capability. <br /></td></tr>
<tr class="memitem:af270c8a40ac7f715776c155fa91c7342" id="r_af270c8a40ac7f715776c155fa91c7342"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__l4__basic__types.html#ga1c2c4b333f75b1d05b59855910f2b9cb">l4_umword_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#af270c8a40ac7f715776c155fa91c7342">snd_base</a> (unsigned grant=<a class="el" href="group__l4__msgitem__api.html#gga94ecfe2908867c4ed0c13a7a97337f6aaca6431510837e32c27f628147ba3c12a">L4_MAP_ITEM_MAP</a>, <a class="el" href="group__l4__cap__api.html#ga1445e923ce73029130d569d6e69a4dd8">l4_cap_idx_t</a> base=<a class="el" href="group__l4__cap__api.html#ggafee0421c2fe0e5cfc59f17f16ea10879aff9320ed307e76cebfca6c2871136102">L4_INVALID_CAP</a>) const noexcept</td></tr>
<tr class="memdesc:af270c8a40ac7f715776c155fa91c7342"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return send base. <br /></td></tr>
<tr class="memitem:aaacc5520eb3de110f1365d849af3c1a2" id="r_aaacc5520eb3de110f1365d849af3c1a2"><td class="memItemLeft" align="right" valign="top"><a id="aaacc5520eb3de110f1365d849af3c1a2" name="aaacc5520eb3de110f1365d849af3c1a2"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><b>operator==</b> (<a class="el" href="classL4_1_1Cap__base.html">Cap_base</a> const &amp;o) const noexcept</td></tr>
<tr class="memdesc:aaacc5520eb3de110f1365d849af3c1a2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Test if two capabilities are equal. <br /></td></tr>
<tr class="memitem:a67660c0a25460daa0cdde8352f367e49" id="r_a67660c0a25460daa0cdde8352f367e49"><td class="memItemLeft" align="right" valign="top"><a id="a67660c0a25460daa0cdde8352f367e49" name="a67660c0a25460daa0cdde8352f367e49"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><b>operator!=</b> (<a class="el" href="classL4_1_1Cap__base.html">Cap_base</a> const &amp;o) const noexcept</td></tr>
<tr class="memdesc:a67660c0a25460daa0cdde8352f367e49"><td class="mdescLeft">&#160;</td><td class="mdescRight">Test if two capabilities are not equal. <br /></td></tr>
<tr class="memitem:ad664436a61346e2c0c473b3f94212523" id="r_ad664436a61346e2c0c473b3f94212523"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structl4__msgtag__t.html">l4_msgtag_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ad664436a61346e2c0c473b3f94212523">validate</a> (<a class="el" href="group__l4__utcb__api.html#ga89be8a86d11c1d532b636cc2df1330fb">l4_utcb_t</a> *u=<a class="el" href="group__l4__utcb__api.html#gadc099b4a59e1d99638c72c11a8c8b644">l4_utcb</a>()) const noexcept</td></tr>
<tr class="memdesc:ad664436a61346e2c0c473b3f94212523"><td class="mdescLeft">&#160;</td><td class="mdescRight">Check whether a capability is present (refers to an object). <br /></td></tr>
<tr class="memitem:a71cf0212f0ee9671914a04347736d4de" id="r_a71cf0212f0ee9671914a04347736d4de"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structl4__msgtag__t.html">l4_msgtag_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a71cf0212f0ee9671914a04347736d4de">validate</a> (<a class="el" href="classL4_1_1Cap.html">Cap</a>&lt; <a class="el" href="classL4_1_1Task.html">Task</a> &gt; task, <a class="el" href="group__l4__utcb__api.html#ga89be8a86d11c1d532b636cc2df1330fb">l4_utcb_t</a> *u=<a class="el" href="group__l4__utcb__api.html#gadc099b4a59e1d99638c72c11a8c8b644">l4_utcb</a>()) const noexcept</td></tr>
<tr class="memdesc:a71cf0212f0ee9671914a04347736d4de"><td class="mdescLeft">&#160;</td><td class="mdescRight">Check whether a capability is present (refers to an object). <br /></td></tr>
<tr class="memitem:a44d8ff917b4024af596a5c2e9497faae" id="r_a44d8ff917b4024af596a5c2e9497faae"><td class="memItemLeft" align="right" valign="top"><a id="a44d8ff917b4024af596a5c2e9497faae" name="a44d8ff917b4024af596a5c2e9497faae"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>invalidate</b> () noexcept</td></tr>
<tr class="memdesc:a44d8ff917b4024af596a5c2e9497faae"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set this capability to invalid (L4_INVALID_CAP). <br /></td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 id="header-pro-methods" class="groupheader"><a id="pro-methods" name="pro-methods"></a>
Protected Member Functions</h2></td></tr>
<tr class="memitem:ad51e36743fd47c161ffb23f4e8c4f706" id="r_ad51e36743fd47c161ffb23f4e8c4f706"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ad51e36743fd47c161ffb23f4e8c4f706">Cap_base</a> (<a class="el" href="group__l4__cap__api.html#ga1445e923ce73029130d569d6e69a4dd8">l4_cap_idx_t</a> c) noexcept</td></tr>
<tr class="memdesc:ad51e36743fd47c161ffb23f4e8c4f706"><td class="mdescLeft">&#160;</td><td class="mdescRight">Generate a capability from its C representation. <br /></td></tr>
<tr class="memitem:a59e200d5c069848675fbf47bb048833c" id="r_a59e200d5c069848675fbf47bb048833c"><td class="memItemLeft" align="right" valign="top"><a id="a59e200d5c069848675fbf47bb048833c" name="a59e200d5c069848675fbf47bb048833c"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>Cap_base</b> (<a class="el" href="#ac74dbedb04347341ba30ece923c12fe7">Cap_type</a> <a class="el" href="#a90ff089ca2442b128c2b2b0e1c22c6d7">cap</a>) noexcept</td></tr>
<tr class="memdesc:a59e200d5c069848675fbf47bb048833c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor to create an invalid capability. <br /></td></tr>
<tr class="memitem:a2b95e5fade07d490b90a91e86ceb89f0" id="r_a2b95e5fade07d490b90a91e86ceb89f0"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a2b95e5fade07d490b90a91e86ceb89f0">Cap_base</a> (<a class="el" href="group__l4__cap__api.html#gaa7801b63edba351bad9ea8026432b5c4">l4_default_caps_t</a> <a class="el" href="#a90ff089ca2442b128c2b2b0e1c22c6d7">cap</a>) noexcept</td></tr>
<tr class="memdesc:a2b95e5fade07d490b90a91e86ceb89f0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize capability with one of the default capabilities. <br /></td></tr>
<tr class="memitem:aea13cf4ec224211dc780a56d6ffa1c53" id="r_aea13cf4ec224211dc780a56d6ffa1c53"><td class="memItemLeft" align="right" valign="top"><a id="aea13cf4ec224211dc780a56d6ffa1c53" name="aea13cf4ec224211dc780a56d6ffa1c53"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>Cap_base</b> () noexcept</td></tr>
<tr class="memdesc:aea13cf4ec224211dc780a56d6ffa1c53"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create an uninitialized instance. <br /></td></tr>
<tr class="memitem:ab6cd8e73ebbdb5dfa45355b7c1fde1c2" id="r_ab6cd8e73ebbdb5dfa45355b7c1fde1c2"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ab6cd8e73ebbdb5dfa45355b7c1fde1c2">move</a> (<a class="el" href="classL4_1_1Cap__base.html">Cap_base</a> const &amp;src) const</td></tr>
<tr class="memdesc:ab6cd8e73ebbdb5dfa45355b7c1fde1c2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Replace this capability with the contents of <span class="tt">src</span>. <br /></td></tr>
<tr class="memitem:a1501f9852fda4c01a1591a7c53585d5f" id="r_a1501f9852fda4c01a1591a7c53585d5f"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a1501f9852fda4c01a1591a7c53585d5f">copy</a> (<a class="el" href="classL4_1_1Cap__base.html">Cap_base</a> const &amp;src) const</td></tr>
<tr class="memdesc:a1501f9852fda4c01a1591a7c53585d5f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Copy a capability. <br /></td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 id="header-pro-attribs" class="groupheader"><a id="pro-attribs" name="pro-attribs"></a>
Protected Attributes</h2></td></tr>
<tr class="memitem:a78113f1ec15a18c099e8f010667c0437" id="r_a78113f1ec15a18c099e8f010667c0437"><td class="memItemLeft" align="right" valign="top"><a id="a78113f1ec15a18c099e8f010667c0437" name="a78113f1ec15a18c099e8f010667c0437"></a>
<a class="el" href="group__l4__cap__api.html#ga1445e923ce73029130d569d6e69a4dd8">l4_cap_idx_t</a>&#160;</td><td class="memItemRight" valign="bottom"><b>_c</b></td></tr>
<tr class="memdesc:a78113f1ec15a18c099e8f010667c0437"><td class="mdescLeft">&#160;</td><td class="mdescRight">The C representation of a capability selector. <br /></td></tr>
</table>
<a name="details" id="details"></a><h2 id="header-details" class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Base class for all kinds of capabilities. </p>
<dl class="section attention"><dt>Attention</dt><dd>This class is not for direct use, use <a class="el" href="classL4_1_1Cap.html" title="C++ interface for capabilities.">L4::Cap</a> instead.</dd></dl>
<p>This class contains all the things that are independent of the type of the object referred by the capability.</p>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="classL4_1_1Cap.html" title="C++ interface for capabilities.">L4::Cap</a> for typed capabilities. </dd></dl>
<p class="definition">Definition at line <a class="el" href="capability_8h_source.html#l00025">25</a> of file <a class="el" href="capability_8h_source.html">capability.h</a>.</p>
</div><a name="doc-enum-members" id="doc-enum-members"></a><h2 id="header-doc-enum-members" class="groupheader">Member Enumeration Documentation</h2>
<a id="ac74dbedb04347341ba30ece923c12fe7" name="ac74dbedb04347341ba30ece923c12fe7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac74dbedb04347341ba30ece923c12fe7">&#9670;&#160;</a></span>Cap_type</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="#ac74dbedb04347341ba30ece923c12fe7">L4::Cap_base::Cap_type</a></td>
</tr>
</table>
</div><div class="memdoc">
<p>Invalid capability type. </p>
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="ac74dbedb04347341ba30ece923c12fe7af425c8e16afcd760ecb1f30bd6c1437a" name="ac74dbedb04347341ba30ece923c12fe7af425c8e16afcd760ecb1f30bd6c1437a"></a>Invalid&#160;</td><td class="fielddoc"><p>Invalid capability selector. </p>
</td></tr>
</table>
<p class="definition">Definition at line <a class="el" href="capability_8h_source.html#l00040">40</a> of file <a class="el" href="capability_8h_source.html">capability.h</a>.</p>
</div>
</div>
<a id="ad37dbcac6ae8bb071b62abc38327065d" name="ad37dbcac6ae8bb071b62abc38327065d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad37dbcac6ae8bb071b62abc38327065d">&#9670;&#160;</a></span>No_init_type</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="#ad37dbcac6ae8bb071b62abc38327065d">L4::Cap_base::No_init_type</a></td>
</tr>
</table>
</div><div class="memdoc">
<p>Special value for uninitialized capability objects. </p>
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="ad37dbcac6ae8bb071b62abc38327065da2bb30abe3785b586e7458771a248c889" name="ad37dbcac6ae8bb071b62abc38327065da2bb30abe3785b586e7458771a248c889"></a>No_init&#160;</td><td class="fielddoc"><p>Special value for constructing uninitialized <a class="el" href="classL4_1_1Cap.html" title="C++ interface for capabilities.">Cap</a> objects. </p>
</td></tr>
</table>
<p class="definition">Definition at line <a class="el" href="capability_8h_source.html#l00029">29</a> of file <a class="el" href="capability_8h_source.html">capability.h</a>.</p>
</div>
</div>
<a name="doc-constructors" id="doc-constructors"></a><h2 id="header-doc-constructors" class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="ad51e36743fd47c161ffb23f4e8c4f706" name="ad51e36743fd47c161ffb23f4e8c4f706"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad51e36743fd47c161ffb23f4e8c4f706">&#9670;&#160;</a></span>Cap_base() <span class="overload">[1/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">L4::Cap_base::Cap_base </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__l4__cap__api.html#ga1445e923ce73029130d569d6e69a4dd8">l4_cap_idx_t</a></td> <td class="paramname"><span class="paramname"><em>c</em></span></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel inline">inline</span><span class="mlabel explicit">explicit</span><span class="mlabel protected">protected</span><span class="mlabel noexcept">noexcept</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Generate a capability from its C representation. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">c</td><td>The C capability </td></tr>
</table>
</dd>
</dl>
<p class="definition">Definition at line <a class="el" href="capability_8h_source.html#l00149">149</a> of file <a class="el" href="capability_8h_source.html">capability.h</a>.</p>
<p class="reference">References <a class="el" href="capability_8h_source.html#l00203">_c</a>.</p>
<p class="reference">Referenced by <a class="el" href="capability_8h_source.html#l00275">L4::Cap&lt; A &gt;::Cap()</a>, <a class="el" href="capability_8h_source.html#l00282">L4::Cap&lt; A &gt;::Cap()</a>, <a class="el" href="capability_8h_source.html#l00294">L4::Cap&lt; A &gt;::Cap()</a>, <a class="el" href="capability_8h_source.html#l00288">L4::Cap&lt; A &gt;::Cap()</a>, <a class="el" href="capability_8h_source.html#l00192">copy()</a>, <a class="el" href="capability_8h_source.html#l00176">move()</a>, <a class="el" href="capability_8h_source.html#l00104">operator!=()</a>, and <a class="el" href="capability_8h_source.html#l00098">operator==()</a>.</p>
<div id="dynsection-2" onclick="return dynsection.toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;"><span class="dynarrow"><span class="arrowhead closed"></span></span>Here is the caller graph for this function:</div>
<div id="dynsection-2-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-2-content" class="dyncontent" style="display:none;">
<div class="center"><iframe scrolling="no" loading="lazy" frameborder="0" src="classL4_1_1Cap__base_ad51e36743fd47c161ffb23f4e8c4f706_icgraph.svg" width="634" height="382"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div>
</div>
</div>
</div>
<a id="a2b95e5fade07d490b90a91e86ceb89f0" name="a2b95e5fade07d490b90a91e86ceb89f0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2b95e5fade07d490b90a91e86ceb89f0">&#9670;&#160;</a></span>Cap_base() <span class="overload">[2/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">L4::Cap_base::Cap_base </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__l4__cap__api.html#gaa7801b63edba351bad9ea8026432b5c4">l4_default_caps_t</a></td> <td class="paramname"><span class="paramname"><em>cap</em></span></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel inline">inline</span><span class="mlabel explicit">explicit</span><span class="mlabel protected">protected</span><span class="mlabel noexcept">noexcept</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Initialize capability with one of the default capabilities. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">cap</td><td>Capability. </td></tr>
</table>
</dd>
</dl>
<p class="definition">Definition at line <a class="el" href="capability_8h_source.html#l00160">160</a> of file <a class="el" href="capability_8h_source.html">capability.h</a>.</p>
<p class="reference">References <a class="el" href="capability_8h_source.html#l00203">_c</a>, and <a class="el" href="capability_8h_source.html#l00049">cap()</a>.</p>
<div id="dynsection-3" onclick="return dynsection.toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;"><span class="dynarrow"><span class="arrowhead closed"></span></span>Here is the call graph for this function:</div>
<div id="dynsection-3-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-3-content" class="dyncontent" style="display:none;">
<div class="center"><iframe scrolling="no" loading="lazy" frameborder="0" src="classL4_1_1Cap__base_a2b95e5fade07d490b90a91e86ceb89f0_cgraph.svg" width="376" height="36"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div>
</div>
</div>
</div>
<a name="doc-func-members" id="doc-func-members"></a><h2 id="header-doc-func-members" class="groupheader">Member Function Documentation</h2>
<a id="a90ff089ca2442b128c2b2b0e1c22c6d7" name="a90ff089ca2442b128c2b2b0e1c22c6d7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a90ff089ca2442b128c2b2b0e1c22c6d7">&#9670;&#160;</a></span>cap()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__l4__cap__api.html#ga1445e923ce73029130d569d6e69a4dd8">l4_cap_idx_t</a> L4::Cap_base::cap </td>
<td>(</td>
<td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel inline">inline</span><span class="mlabel noexcept">noexcept</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Return capability selector. </p>
<dl class="section return"><dt>Returns</dt><dd>Capability selector. </dd></dl>
<p class="definition">Definition at line <a class="el" href="capability_8h_source.html#l00049">49</a> of file <a class="el" href="capability_8h_source.html">capability.h</a>.</p>
<p class="reference">References <a class="el" href="capability_8h_source.html#l00203">_c</a>.</p>
<p class="reference">Referenced by <a class="el" href="thread__group_source.html#l00053">L4::Thread_group::add()</a>, <a class="el" href="br__manager_source.html#l00054">L4Re::Util::Br_manager::alloc_buffer_demand()</a>, <a class="el" href="vbus_source.html#l00382">L4vbus::Vbus::assign_dma_domain()</a>, <a class="el" href="vbus_source.html#l00357">L4vbus::Vbus::assign_dma_domain()</a>, <a class="el" href="irq_source.html#l00310">L4::Icu::bind()</a>, <a class="el" href="rcv__endpoint_source.html#l00101">L4::Rcv_endpoint::bind_snd_destination()</a>, <a class="el" href="irq_source.html#l00158">L4::Irq::bind_vcpu()</a>, <a class="el" href="capability_8h_source.html#l00282">L4::Cap&lt; A &gt;::Cap()</a>, <a class="el" href="capability_8h_source.html#l00288">L4::Cap&lt; A &gt;::Cap()</a>, <a class="el" href="capability_8h_source.html#l00153">Cap_base()</a>, <a class="el" href="capability_8h_source.html#l00160">Cap_base()</a>, <a class="el" href="task_source.html#l00251">L4::Task::cap_equal()</a>, <a class="el" href="task_source.html#l00222">L4::Task::cap_valid()</a>, <a class="el" href="cap__alloc_source.html#l00172">L4Re::Smart_count_cap&lt; Unmap_flags &gt;::copy()</a>, <a class="el" href="util_2cap__alloc_source.html#l00104">L4Re::Util::Smart_count_cap&lt; Unmap_flags &gt;::copy()</a>, <a class="el" href="factory_source.html#l00404">L4::Factory::create_factory()</a>, <a class="el" href="factory_source.html#l00440">L4::Factory::create_gate()</a>, <a class="el" href="factory_source.html#l00370">L4::Factory::create_task()</a>, <a class="el" href="factory_source.html#l00475">L4::Factory::create_thread_group()</a>, <a class="el" href="task_source.html#l00180">L4::Task::delete_obj()</a>, <a class="el" href="util_2cap__alloc_source.html#l00051">L4Re::Util::Smart_cap_auto&lt; Unmap_flags &gt;::free()</a>, <a class="el" href="task_source.html#l00085">L4::Task::map()</a>, <a class="el" href="event__buffer_source.html#l00115">L4Re::Util::Event_buffer_consumer_t&lt; Default_event_payload &gt;::process()</a>, <a class="el" href="br__manager_source.html#l00094">L4Re::Util::Br_manager::realloc_rcv_cap()</a>, <a class="el" href="sys_2thread_source.html#l00427">L4::Thread::register_del_irq()</a>, <a class="el" href="sys_2thread_source.html#l00553">L4::Thread::register_doorbell_irq()</a>, <a class="el" href="task_source.html#l00201">L4::Task::release_cap()</a>, <a class="el" href="thread__group_source.html#l00067">L4::Thread_group::remove()</a>, <a class="el" href="irq_source.html#l00328">L4::Icu::unbind()</a>, and <a class="el" href="vbus_source.html#l00285">L4vbus::Icu::vicu()</a>.</p>
<div id="dynsection-4" onclick="return dynsection.toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;"><span class="dynarrow"><span class="arrowhead closed"></span></span>Here is the caller graph for this function:</div>
<div id="dynsection-4-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-4-content" class="dyncontent" style="display:none;">
<div class="center"><iframe scrolling="no" loading="lazy" frameborder="0" src="classL4_1_1Cap__base_a90ff089ca2442b128c2b2b0e1c22c6d7_icgraph.svg" width="410" height="1680"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div>
</div>
</div>
</div>
<a id="a1501f9852fda4c01a1591a7c53585d5f" name="a1501f9852fda4c01a1591a7c53585d5f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1501f9852fda4c01a1591a7c53585d5f">&#9670;&#160;</a></span>copy()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void L4::Cap_base::copy </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classL4_1_1Cap__base.html">Cap_base</a> const &amp;</td> <td class="paramname"><span class="paramname"><em>src</em></span></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel inline">inline</span><span class="mlabel protected">protected</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Copy a capability. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">src</td><td>the source capability.</td></tr>
</table>
</dd>
</dl>
<p>After this operation this capability refers to the same object as <span class="tt">src</span>. </p>
<p class="definition">Definition at line <a class="el" href="capability_8h_source.html#l00192">192</a> of file <a class="el" href="capability_8h_source.html">capability.h</a>.</p>
<p class="reference">References <a class="el" href="capability_8h_source.html#l00149">Cap_base()</a>, <a class="el" href="capability_8h_source.html#l00074">fpage()</a>, <a class="el" href="capability_8h_source.html#l00057">is_valid()</a>, <a class="el" href="l4_2sys_2consts_8h_source.html#l00327">L4_BASE_TASK_CAP</a>, <a class="el" href="____l4__fpage_8h_source.html#l00212">L4_CAP_FPAGE_RWSD</a>, <a class="el" href="____l4__fpage_8h_source.html#l00270">L4_FPAGE_C_OBJ_RIGHTS</a>, <a class="el" href="l4_2sys_2task_8h_source.html#l00433">l4_task_map()</a>, and <a class="el" href="capability_8h_source.html#l00086">snd_base()</a>.</p>
<p class="reference">Referenced by <a class="el" href="capability_8h_source.html#l00317">L4::Cap&lt; A &gt;::copy()</a>.</p>
<div id="dynsection-5" onclick="return dynsection.toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;"><span class="dynarrow"><span class="arrowhead closed"></span></span>Here is the call graph for this function:</div>
<div id="dynsection-5-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-5-content" class="dyncontent" style="display:none;">
<div class="center"><iframe scrolling="no" loading="lazy" frameborder="0" src="classL4_1_1Cap__base_a1501f9852fda4c01a1591a7c53585d5f_cgraph.svg" width="752" height="234"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div>
</div>
<div id="dynsection-6" onclick="return dynsection.toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;"><span class="dynarrow"><span class="arrowhead closed"></span></span>Here is the caller graph for this function:</div>
<div id="dynsection-6-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-6-content" class="dyncontent" style="display:none;">
<div class="center"><iframe scrolling="no" loading="lazy" frameborder="0" src="classL4_1_1Cap__base_a1501f9852fda4c01a1591a7c53585d5f_icgraph.svg" width="354" height="36"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div>
</div>
</div>
</div>
<a id="a60a4c249059576429246b5b74bd3174e" name="a60a4c249059576429246b5b74bd3174e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a60a4c249059576429246b5b74bd3174e">&#9670;&#160;</a></span>fpage()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="unionl4__fpage__t.html">l4_fpage_t</a> L4::Cap_base::fpage </td>
<td>(</td>
<td class="paramtype">unsigned</td> <td class="paramname"><span class="paramname"><em>rights</em></span><span class="paramdefsep"> = </span><span class="paramdefval"><a class="el" href="group__l4__fpage__api.html#ggaee60789a48cab2782f5a368237591b39abf42b05aa006bc62a22f1be1aa760020">L4_CAP_FPAGE_RWS</a></span></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel inline">inline</span><span class="mlabel noexcept">noexcept</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Return flexpage for the capability. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">rights</td><td>Rights, defaults to 'rws'</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>flexpage </dd></dl>
<p class="definition">Definition at line <a class="el" href="capability_8h_source.html#l00074">74</a> of file <a class="el" href="capability_8h_source.html">capability.h</a>.</p>
<p class="reference">References <a class="el" href="capability_8h_source.html#l00203">_c</a>, <a class="el" href="____l4__fpage_8h_source.html#l00206">L4_CAP_FPAGE_RWS</a>, and <a class="el" href="____l4__fpage_8h_source.html#l00715">l4_obj_fpage()</a>.</p>
<p class="reference">Referenced by <a class="el" href="capability_8h_source.html#l00192">copy()</a>, <a class="el" href="capability_8h_source.html#l00176">move()</a>, and <a class="el" href="object__registry_source.html#l00262">L4Re::Util::Object_registry::unregister_obj()</a>.</p>
<div id="dynsection-7" onclick="return dynsection.toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;"><span class="dynarrow"><span class="arrowhead closed"></span></span>Here is the call graph for this function:</div>
<div id="dynsection-7-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-7-content" class="dyncontent" style="display:none;">
<div class="center"><iframe scrolling="no" loading="lazy" frameborder="0" src="classL4_1_1Cap__base_a60a4c249059576429246b5b74bd3174e_cgraph.svg" width="318" height="36"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div>
</div>
<div id="dynsection-8" onclick="return dynsection.toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;"><span class="dynarrow"><span class="arrowhead closed"></span></span>Here is the caller graph for this function:</div>
<div id="dynsection-8-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-8-content" class="dyncontent" style="display:none;">
<div class="center"><iframe scrolling="no" loading="lazy" frameborder="0" src="classL4_1_1Cap__base_a60a4c249059576429246b5b74bd3174e_icgraph.svg" width="594" height="151"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div>
</div>
</div>
</div>
<a id="ab4937bb12579c752564f7250760d0bda" name="ab4937bb12579c752564f7250760d0bda"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab4937bb12579c752564f7250760d0bda">&#9670;&#160;</a></span>is_valid()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool L4::Cap_base::is_valid </td>
<td>(</td>
<td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel inline">inline</span><span class="mlabel noexcept">noexcept</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Test whether the capability is a valid capability index (i.e., not L4_INVALID_CAP). </p>
<dl class="section return"><dt>Returns</dt><dd>True if capability is not invalid, false if invalid </dd></dl>
<dl class="section examples"><dt>Examples</dt><dd><a class="el" href="examples_2libs_2l4re_2c_09_09_2mem_alloc_2ma_09rm_8cc-example.html#a3">examples/libs/l4re/c++/mem_alloc/ma+rm.cc</a>, and <a class="el" href="examples_2libs_2l4re_2c_09_09_2shared_ds_2ds_clnt_8cc-example.html#a3">examples/libs/l4re/c++/shared_ds/ds_clnt.cc</a>.</dd>
</dl>
<p class="definition">Definition at line <a class="el" href="capability_8h_source.html#l00057">57</a> of file <a class="el" href="capability_8h_source.html">capability.h</a>.</p>
<p class="reference">References <a class="el" href="capability_8h_source.html#l00203">_c</a>.</p>
<p class="reference">Referenced by <a class="el" href="capability_8h_source.html#l00192">copy()</a>, <a class="el" href="cap__alloc_source.html#l00172">L4Re::Smart_count_cap&lt; Unmap_flags &gt;::copy()</a>, <a class="el" href="util_2cap__alloc_source.html#l00051">L4Re::Util::Smart_cap_auto&lt; Unmap_flags &gt;::free()</a>, <a class="el" href="util_2event_source.html#l00059">L4Re::Util::Event_t&lt; Default_event_payload &gt;::init()</a>, <a class="el" href="util_2event_source.html#l00112">L4Re::Util::Event_t&lt; Default_event_payload &gt;::init_poll()</a>, <a class="el" href="util_2cap__alloc_source.html#l00063">L4Re::Util::Smart_cap_auto&lt; Unmap_flags &gt;::invalidate()</a>, <a class="el" href="capability_8h_source.html#l00176">move()</a>, <a class="el" href="object__registry_source.html#l00262">L4Re::Util::Object_registry::unregister_obj()</a>, <a class="el" href="capability_source.html#l00074">validate()</a>, and <a class="el" href="capability_source.html#l00081">validate()</a>.</p>
<div id="dynsection-9" onclick="return dynsection.toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;"><span class="dynarrow"><span class="arrowhead closed"></span></span>Here is the caller graph for this function:</div>
<div id="dynsection-9-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-9-content" class="dyncontent" style="display:none;">
<div class="center"><iframe scrolling="no" loading="lazy" frameborder="0" src="classL4_1_1Cap__base_ab4937bb12579c752564f7250760d0bda_icgraph.svg" width="616" height="602"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div>
</div>
</div>
</div>
<a id="ab6cd8e73ebbdb5dfa45355b7c1fde1c2" name="ab6cd8e73ebbdb5dfa45355b7c1fde1c2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab6cd8e73ebbdb5dfa45355b7c1fde1c2">&#9670;&#160;</a></span>move()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void L4::Cap_base::move </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classL4_1_1Cap__base.html">Cap_base</a> const &amp;</td> <td class="paramname"><span class="paramname"><em>src</em></span></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel inline">inline</span><span class="mlabel protected">protected</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Replace this capability with the contents of <span class="tt">src</span>. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">src</td><td>the source capability.</td></tr>
</table>
</dd>
</dl>
<p>After the operation this capability refers to the object formerly referred to by the source capability <span class="tt">src</span>, and the source capability no longer refers to an object. </p>
<p class="definition">Definition at line <a class="el" href="capability_8h_source.html#l00176">176</a> of file <a class="el" href="capability_8h_source.html">capability.h</a>.</p>
<p class="reference">References <a class="el" href="capability_8h_source.html#l00149">Cap_base()</a>, <a class="el" href="capability_8h_source.html#l00074">fpage()</a>, <a class="el" href="capability_8h_source.html#l00057">is_valid()</a>, <a class="el" href="l4_2sys_2consts_8h_source.html#l00327">L4_BASE_TASK_CAP</a>, <a class="el" href="____l4__fpage_8h_source.html#l00212">L4_CAP_FPAGE_RWSD</a>, <a class="el" href="____l4__fpage_8h_source.html#l00270">L4_FPAGE_C_OBJ_RIGHTS</a>, <a class="el" href="l4_2sys_2consts_8h_source.html#l00245">L4_MAP_ITEM_GRANT</a>, <a class="el" href="l4_2sys_2task_8h_source.html#l00433">l4_task_map()</a>, and <a class="el" href="capability_8h_source.html#l00086">snd_base()</a>.</p>
<p class="reference">Referenced by <a class="el" href="capability_8h_source.html#l00307">L4::Cap&lt; A &gt;::move()</a>.</p>
<div id="dynsection-10" onclick="return dynsection.toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;"><span class="dynarrow"><span class="arrowhead closed"></span></span>Here is the call graph for this function:</div>
<div id="dynsection-10-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-10-content" class="dyncontent" style="display:none;">
<div class="center"><iframe scrolling="no" loading="lazy" frameborder="0" src="classL4_1_1Cap__base_ab6cd8e73ebbdb5dfa45355b7c1fde1c2_cgraph.svg" width="759" height="234"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div>
</div>
<div id="dynsection-11" onclick="return dynsection.toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;"><span class="dynarrow"><span class="arrowhead closed"></span></span>Here is the caller graph for this function:</div>
<div id="dynsection-11-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-11-content" class="dyncontent" style="display:none;">
<div class="center"><iframe scrolling="no" loading="lazy" frameborder="0" src="classL4_1_1Cap__base_ab6cd8e73ebbdb5dfa45355b7c1fde1c2_icgraph.svg" width="367" height="36"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div>
</div>
</div>
</div>
<a id="af270c8a40ac7f715776c155fa91c7342" name="af270c8a40ac7f715776c155fa91c7342"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af270c8a40ac7f715776c155fa91c7342">&#9670;&#160;</a></span>snd_base()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__l4__basic__types.html#ga1c2c4b333f75b1d05b59855910f2b9cb">l4_umword_t</a> L4::Cap_base::snd_base </td>
<td>(</td>
<td class="paramtype">unsigned</td> <td class="paramname"><span class="paramname"><em>grant</em></span><span class="paramdefsep"> = </span><span class="paramdefval"><a class="el" href="group__l4__msgitem__api.html#gga94ecfe2908867c4ed0c13a7a97337f6aaca6431510837e32c27f628147ba3c12a">L4_MAP_ITEM_MAP</a></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group__l4__cap__api.html#ga1445e923ce73029130d569d6e69a4dd8">l4_cap_idx_t</a></td> <td class="paramname"><span class="paramname"><em>base</em></span><span class="paramdefsep"> = </span><span class="paramdefval"><a class="el" href="group__l4__cap__api.html#ggafee0421c2fe0e5cfc59f17f16ea10879aff9320ed307e76cebfca6c2871136102">L4_INVALID_CAP</a></span>&#160;) const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel inline">inline</span><span class="mlabel noexcept">noexcept</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Return send base. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">grant</td><td>Indicates if object shall be granted. Allowed values: <a class="el" href="group__l4__msgitem__api.html#gga94ecfe2908867c4ed0c13a7a97337f6aaca6431510837e32c27f628147ba3c12a" title="Flag as usual map operation.">L4_MAP_ITEM_MAP</a>, <a class="el" href="group__l4__msgitem__api.html#gga94ecfe2908867c4ed0c13a7a97337f6aa390d5fd9efeb212bfbed501498387c9e" title="Flag as grant instead of map operation.">L4_MAP_ITEM_GRANT</a>. </td></tr>
<tr><td class="paramname">base</td><td>Base capability (first in a bundle of aligned capabilities)</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Map object. </dd></dl>
<p class="definition">Definition at line <a class="el" href="capability_8h_source.html#l00086">86</a> of file <a class="el" href="capability_8h_source.html">capability.h</a>.</p>
<p class="reference">References <a class="el" href="capability_8h_source.html#l00203">_c</a>, <a class="el" href="l4_2sys_2consts_8h_source.html#l00153">L4_INVALID_CAP</a>, <a class="el" href="l4_2sys_2consts_8h_source.html#l00247">L4_MAP_ITEM_MAP</a>, and <a class="el" href="____l4__fpage_8h_source.html#l00749">l4_map_obj_control()</a>.</p>
<p class="reference">Referenced by <a class="el" href="capability_8h_source.html#l00192">copy()</a>, and <a class="el" href="capability_8h_source.html#l00176">move()</a>.</p>
<div id="dynsection-12" onclick="return dynsection.toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;"><span class="dynarrow"><span class="arrowhead closed"></span></span>Here is the call graph for this function:</div>
<div id="dynsection-12-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-12-content" class="dyncontent" style="display:none;">
<div class="center"><iframe scrolling="no" loading="lazy" frameborder="0" src="classL4_1_1Cap__base_af270c8a40ac7f715776c155fa91c7342_cgraph.svg" width="556" height="36"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div>
</div>
<div id="dynsection-13" onclick="return dynsection.toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;"><span class="dynarrow"><span class="arrowhead closed"></span></span>Here is the caller graph for this function:</div>
<div id="dynsection-13-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-13-content" class="dyncontent" style="display:none;">
<div class="center"><iframe scrolling="no" loading="lazy" frameborder="0" src="classL4_1_1Cap__base_af270c8a40ac7f715776c155fa91c7342_icgraph.svg" width="592" height="86"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div>
</div>
</div>
</div>
<a id="a71cf0212f0ee9671914a04347736d4de" name="a71cf0212f0ee9671914a04347736d4de"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a71cf0212f0ee9671914a04347736d4de">&#9670;&#160;</a></span>validate() <span class="overload">[1/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="structl4__msgtag__t.html">l4_msgtag_t</a> L4::Cap_base::validate </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classL4_1_1Cap.html">Cap</a>&lt; <a class="el" href="classL4_1_1Task.html">Task</a> &gt;</td> <td class="paramname"><span class="paramname"><em>task</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group__l4__utcb__api.html#ga89be8a86d11c1d532b636cc2df1330fb">l4_utcb_t</a> *</td> <td class="paramname"><span class="paramname"><em>u</em></span><span class="paramdefsep"> = </span><span class="paramdefval"><a class="el" href="group__l4__utcb__api.html#gadc099b4a59e1d99638c72c11a8c8b644">l4_utcb</a>()</span>&#160;) const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel inline">inline</span><span class="mlabel noexcept">noexcept</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Check whether a capability is present (refers to an object). </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">task</td><td><a class="el" href="classL4_1_1Task.html" title="C++ interface of the Task kernel object, see Task for the C interface.">Task</a> to check the capability in. </td></tr>
<tr><td class="paramname">u</td><td>UTCB to be used for this operation, shall be the UTCB of the calling thread. See <a class="el" href="group__l4__utcb__api.html#gadc099b4a59e1d99638c72c11a8c8b644" title="Get the UTCB address.">l4_utcb</a>.</td></tr>
</table>
</dd>
</dl>
<dl class="retval"><dt>Return values</dt><dd>
<table class="retval">
<tr><td class="paramname">l4_msgtag_t::label() &gt; 0</td><td>Capability is present (refers to an object). </td></tr>
<tr><td class="paramname">l4_msgtag_t::label() == 0</td><td>No capability present (void object or invalid capability slot).</td></tr>
</table>
</dd>
</dl>
<p>A capability is considered present when it refers to an existing kernel object. </p>
<p class="definition">Definition at line <a class="el" href="capability_source.html#l00074">74</a> of file <a class="el" href="capability_source.html">capability</a>.</p>
<p class="reference">References <a class="el" href="capability_8h_source.html#l00203">_c</a>, <a class="el" href="capability_8h_source.html#l00057">is_valid()</a>, and <a class="el" href="l4_2sys_2types_8h_source.html#l00405">l4_msgtag()</a>.</p>
<div id="dynsection-14" onclick="return dynsection.toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;"><span class="dynarrow"><span class="arrowhead closed"></span></span>Here is the call graph for this function:</div>
<div id="dynsection-14-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-14-content" class="dyncontent" style="display:none;">
<div class="center"><iframe scrolling="no" loading="lazy" frameborder="0" src="classL4_1_1Cap__base_a71cf0212f0ee9671914a04347736d4de_cgraph.svg" width="395" height="86"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div>
</div>
</div>
</div>
<a id="ad664436a61346e2c0c473b3f94212523" name="ad664436a61346e2c0c473b3f94212523"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad664436a61346e2c0c473b3f94212523">&#9670;&#160;</a></span>validate() <span class="overload">[2/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="structl4__msgtag__t.html">l4_msgtag_t</a> L4::Cap_base::validate </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__l4__utcb__api.html#ga89be8a86d11c1d532b636cc2df1330fb">l4_utcb_t</a> *</td> <td class="paramname"><span class="paramname"><em>u</em></span><span class="paramdefsep"> = </span><span class="paramdefval"><a class="el" href="group__l4__utcb__api.html#gadc099b4a59e1d99638c72c11a8c8b644">l4_utcb</a>()</span></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel inline">inline</span><span class="mlabel noexcept">noexcept</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Check whether a capability is present (refers to an object). </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">u</td><td>UTCB to be used for this operation, shall be the UTCB of the calling thread. See <a class="el" href="group__l4__utcb__api.html#gadc099b4a59e1d99638c72c11a8c8b644" title="Get the UTCB address.">l4_utcb</a>.</td></tr>
</table>
</dd>
</dl>
<dl class="retval"><dt>Return values</dt><dd>
<table class="retval">
<tr><td class="paramname">l4_msgtag_t::label() &gt; 0</td><td>Capability is present (refers to an object). </td></tr>
<tr><td class="paramname">l4_msgtag_t::label() == 0</td><td>No capability present (void object or invalid capability slot).</td></tr>
</table>
</dd>
</dl>
<p>A capability is considered present when it refers to an existing kernel object. </p>
<p class="definition">Definition at line <a class="el" href="capability_source.html#l00081">81</a> of file <a class="el" href="capability_source.html">capability</a>.</p>
<p class="reference">References <a class="el" href="capability_8h_source.html#l00203">_c</a>, <a class="el" href="capability_8h_source.html#l00057">is_valid()</a>, <a class="el" href="l4_2sys_2consts_8h_source.html#l00327">L4_BASE_TASK_CAP</a>, and <a class="el" href="l4_2sys_2types_8h_source.html#l00405">l4_msgtag()</a>.</p>
<div id="dynsection-15" onclick="return dynsection.toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;"><span class="dynarrow"><span class="arrowhead closed"></span></span>Here is the call graph for this function:</div>
<div id="dynsection-15-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-15-content" class="dyncontent" style="display:none;">
<div class="center"><iframe scrolling="no" loading="lazy" frameborder="0" src="classL4_1_1Cap__base_ad664436a61346e2c0c473b3f94212523_cgraph.svg" width="395" height="86"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div>
</div>
</div>
</div>
<hr/>The documentation for this class was generated from the following files:<ul>
<li>l4/sys/cxx/<a class="el" href="capability_8h_source.html">capability.h</a></li>
<li>l4/sys/<a class="el" href="capability_source.html">capability</a></li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
<div id="page-nav" class="page-nav-panel">
<div id="page-nav-resize-handle"></div>
<div id="page-nav-tree">
<div id="page-nav-contents">
</div><!-- page-nav-contents -->
</div><!-- page-nav-tree -->
</div><!-- page-nav -->
</div><!-- container -->
<!-- HTML footer for doxygen 1.9.1-->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a href="namespaceL4.html">L4</a></li><li class="navelem"><a href="classL4_1_1Cap__base.html">Cap_base</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>