432 lines
29 KiB
HTML
432 lines
29 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: Capabilities</title>
|
|
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
|
<script type="text/javascript" src="jquery.js"></script>
|
|
<script type="text/javascript" src="dynsections.js"></script>
|
|
<link href="navtree.css" rel="stylesheet" type="text/css"/>
|
|
<script type="text/javascript" src="navtreedata.js"></script>
|
|
<script type="text/javascript" src="navtree.js"></script>
|
|
<script type="text/javascript" src="cookie.js"></script>
|
|
<link href="search/search.css" rel="stylesheet" type="text/css"/>
|
|
<script type="text/javascript" src="search/searchdata.js"></script>
|
|
<script type="text/javascript" src="search/search.js"></script>
|
|
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
|
<link href="doxygen-awesome.css" rel="stylesheet" type="text/css"/>
|
|
<link href="l4re-awesome.css" rel="stylesheet" type="text/css"/>
|
|
</head>
|
|
<body>
|
|
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
|
<div id="titlearea">
|
|
<table cellspacing="0" cellpadding="0">
|
|
<tbody>
|
|
<tr style="height: 56px;">
|
|
<td id="projectlogo"><img alt="Logo" src="L4Re_rgb_logo_quer_hg_h55.png"/></td>
|
|
<td id="projectalign" style="padding-left: 0.5em;">
|
|
<div id="projectname">L4Re Operating System Framework
|
|
</div>
|
|
<div id="projectbrief">Interface and Usage Documentation</div>
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
<!-- end header part -->
|
|
<!-- Generated by Doxygen 1.15.0 -->
|
|
<script type="text/javascript">
|
|
var searchBox = new SearchBox("searchBox", "search/",'.html');
|
|
</script>
|
|
<script type="text/javascript">
|
|
$(function() { codefold.init(); });
|
|
</script>
|
|
<script type="text/javascript" src="menudata.js"></script>
|
|
<script type="text/javascript" src="menu.js"></script>
|
|
<script type="text/javascript">
|
|
$(function() {
|
|
initMenu('',true,false,'search.php','Search',true);
|
|
$(function() { init_search(); });
|
|
});
|
|
</script>
|
|
<div id="main-nav"></div>
|
|
</div><!-- top -->
|
|
<div id="side-nav" class="ui-resizable side-nav-resizable">
|
|
<div id="nav-tree">
|
|
<div id="nav-tree-contents">
|
|
<div id="nav-sync" class="sync"></div>
|
|
</div>
|
|
</div>
|
|
<div id="splitbar" style="-moz-user-select:none;"
|
|
class="ui-resizable-handle">
|
|
</div>
|
|
</div>
|
|
<script type="text/javascript">
|
|
$(function(){initNavTree('group__l4__cap__api.html','',''); });
|
|
</script>
|
|
<div id="container">
|
|
<div id="doc-content">
|
|
<!-- window showing the filter options -->
|
|
<div id="MSearchSelectWindow"
|
|
onmouseover="return searchBox.OnSearchSelectShow()"
|
|
onmouseout="return searchBox.OnSearchSelectHide()"
|
|
onkeydown="return searchBox.OnSearchSelectKey(event)">
|
|
</div>
|
|
|
|
<!-- iframe showing the search results (closed by default) -->
|
|
<div id="MSearchResultsWindow">
|
|
<div id="MSearchResults">
|
|
<div class="SRPage">
|
|
<div id="SRIndex">
|
|
<div id="SRResults"></div>
|
|
<div class="SRStatus" id="Loading">Loading...</div>
|
|
<div class="SRStatus" id="Searching">Searching...</div>
|
|
<div class="SRStatus" id="NoMatches">No Matches</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="header">
|
|
<div class="headertitle"><div class="title">Capabilities <div class="ingroups"><a class="el" href="group__l4__api.html">Base API</a></div></div></div>
|
|
</div><!--header-->
|
|
<div class="contents">
|
|
|
|
<p>C interface for capabilities.
|
|
<a href="#details">More...</a></p>
|
|
<div id="dynsection-0" onclick="return dynsection.toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;"><span class="dynarrow"><span class="arrowhead closed"></span></span>Collaboration diagram for Capabilities:</div>
|
|
<div id="dynsection-0-summary" class="dynsummary" style="display:block;">
|
|
</div>
|
|
<div id="dynsection-0-content" class="dyncontent" style="display:none;">
|
|
<div class="center"><iframe scrolling="no" loading="lazy" frameborder="0" src="group__l4__cap__api.svg" width="236" height="36"><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-typedef-members" class="groupheader"><a id="typedef-members" name="typedef-members"></a>
|
|
Typedefs</h2></td></tr>
|
|
<tr class="memitem:ga1445e923ce73029130d569d6e69a4dd8" id="r_ga1445e923ce73029130d569d6e69a4dd8"><td class="memItemLeft" align="right" valign="top">typedef unsigned long </td><td class="memItemRight" valign="bottom"><a class="el" href="#ga1445e923ce73029130d569d6e69a4dd8">l4_cap_idx_t</a></td></tr>
|
|
<tr class="memdesc:ga1445e923ce73029130d569d6e69a4dd8"><td class="mdescLeft"> </td><td class="mdescRight">Capability selector type. <br /></td></tr>
|
|
</table><table class="memberdecls">
|
|
<tr class="heading"><td colspan="2"><h2 id="header-enum-members" class="groupheader"><a id="enum-members" name="enum-members"></a>
|
|
Enumerations</h2></td></tr>
|
|
<tr class="memitem:gafee0421c2fe0e5cfc59f17f16ea10879" id="r_gafee0421c2fe0e5cfc59f17f16ea10879"><td class="memItemLeft" align="right" valign="top">enum  </td><td class="memItemRight" valign="bottom"><a class="el" href="#gafee0421c2fe0e5cfc59f17f16ea10879">l4_cap_consts_t</a> { <br />
|
|
  <a class="el" href="#ggafee0421c2fe0e5cfc59f17f16ea10879ac13ad59620aeba353454514a42950a85">L4_CAP_SHIFT</a>
|
|
, <a class="el" href="#ggafee0421c2fe0e5cfc59f17f16ea10879a03b1f5ae67cab694adaeffbc3614bce4">L4_CAP_SIZE</a> = 1UL << L4_CAP_SHIFT
|
|
, <a class="el" href="#ggafee0421c2fe0e5cfc59f17f16ea10879a20eac883de37e78a2f31103b467f4651">L4_CAP_OFFSET</a>
|
|
, <a class="el" href="#ggafee0421c2fe0e5cfc59f17f16ea10879aba3e1dbcc462d842d56df9fc928e796b">L4_CAP_MASK</a>
|
|
, <br />
|
|
  <a class="el" href="#ggafee0421c2fe0e5cfc59f17f16ea10879aff9320ed307e76cebfca6c2871136102">L4_INVALID_CAP</a>
|
|
, <b>L4_INVALID_CAP_BIT</b> = 1UL << (L4_CAP_SHIFT - 1)
|
|
<br />
|
|
}</td></tr>
|
|
<tr class="memdesc:gafee0421c2fe0e5cfc59f17f16ea10879"><td class="mdescLeft"> </td><td class="mdescRight">Constants related to capability selectors. <a href="#gafee0421c2fe0e5cfc59f17f16ea10879">More...</a><br /></td></tr>
|
|
<tr class="memitem:gaa7801b63edba351bad9ea8026432b5c4" id="r_gaa7801b63edba351bad9ea8026432b5c4"><td class="memItemLeft" align="right" valign="top">enum  </td><td class="memItemRight" valign="bottom"><a class="el" href="#gaa7801b63edba351bad9ea8026432b5c4">l4_default_caps_t</a> { <br />
|
|
  <a class="el" href="#ggaa7801b63edba351bad9ea8026432b5c4ac5b1e4586c9063ba5680aa1f8149b83d">L4_BASE_TASK_CAP</a>
|
|
, <a class="el" href="#ggaa7801b63edba351bad9ea8026432b5c4a5958178a4b4bea0a0b4422eea342608d">L4_BASE_FACTORY_CAP</a>
|
|
, <a class="el" href="#ggaa7801b63edba351bad9ea8026432b5c4a2239f400be0238b0e6ce1905de240078">L4_BASE_THREAD_CAP</a>
|
|
, <a class="el" href="#ggaa7801b63edba351bad9ea8026432b5c4a488ad613d555ce2eaa8e3ab2f6c74532">L4_BASE_PAGER_CAP</a>
|
|
, <br />
|
|
  <a class="el" href="#ggaa7801b63edba351bad9ea8026432b5c4af57a9dce7f2435bea0e7f7a2298a0022">L4_BASE_LOG_CAP</a>
|
|
, <a class="el" href="#ggaa7801b63edba351bad9ea8026432b5c4afd3ecfb1f7953c43125bf6cbbcecd3c9">L4_BASE_ICU_CAP</a>
|
|
, <a class="el" href="#ggaa7801b63edba351bad9ea8026432b5c4ab64205360a4af2b208ba478a85826f8b">L4_BASE_SCHEDULER_CAP</a>
|
|
, <a class="el" href="#ggaa7801b63edba351bad9ea8026432b5c4a193606abf6233dbecc3ab445068dde15">L4_BASE_IOMMU_CAP</a>
|
|
, <br />
|
|
  <a class="el" href="#ggaa7801b63edba351bad9ea8026432b5c4a3b548600669ef80f419b7d7118768ecc">L4_BASE_DEBUGGER_CAP</a>
|
|
, <a class="el" href="#ggaa7801b63edba351bad9ea8026432b5c4aefcb3c078e5a5d3d7bed1eae5f22e4fa">L4_BASE_ARM_SMCCC_CAP</a>
|
|
, <b>L4_BASE_CAPS_LAST_P1</b>
|
|
, <a class="el" href="#ggaa7801b63edba351bad9ea8026432b5c4a8383f81861d75ee0a3e37bc00ed77135">L4_BASE_CAPS_LAST</a> = L4_BASE_CAPS_LAST_P1 - 1
|
|
<br />
|
|
}</td></tr>
|
|
<tr class="memdesc:gaa7801b63edba351bad9ea8026432b5c4"><td class="mdescLeft"> </td><td class="mdescRight">Default capabilities setup for the initial tasks. <a href="#gaa7801b63edba351bad9ea8026432b5c4">More...</a><br /></td></tr>
|
|
</table><table class="memberdecls">
|
|
<tr class="heading"><td colspan="2"><h2 id="header-func-members" class="groupheader"><a id="func-members" name="func-members"></a>
|
|
Functions</h2></td></tr>
|
|
<tr class="memitem:ga1aee507eabc91cc118429decc9e8cb45" id="r_ga1aee507eabc91cc118429decc9e8cb45"><td class="memItemLeft" align="right" valign="top">unsigned </td><td class="memItemRight" valign="bottom"><a class="el" href="#ga1aee507eabc91cc118429decc9e8cb45">l4_is_invalid_cap</a> (<a class="el" href="#ga1445e923ce73029130d569d6e69a4dd8">l4_cap_idx_t</a> c) <a class="el" href="group__l4sys__defines.html#ga362dfa378e662dd04f710a23fc7ea931">L4_NOTHROW</a></td></tr>
|
|
<tr class="memdesc:ga1aee507eabc91cc118429decc9e8cb45"><td class="mdescLeft"> </td><td class="mdescRight">Test if a capability selector is the invalid capability. <br /></td></tr>
|
|
<tr class="memitem:ga539da15c2a1be4803ed7a3f3a5742194" id="r_ga539da15c2a1be4803ed7a3f3a5742194"><td class="memItemLeft" align="right" valign="top">unsigned </td><td class="memItemRight" valign="bottom"><a class="el" href="#ga539da15c2a1be4803ed7a3f3a5742194">l4_is_valid_cap</a> (<a class="el" href="#ga1445e923ce73029130d569d6e69a4dd8">l4_cap_idx_t</a> c) <a class="el" href="group__l4sys__defines.html#ga362dfa378e662dd04f710a23fc7ea931">L4_NOTHROW</a></td></tr>
|
|
<tr class="memdesc:ga539da15c2a1be4803ed7a3f3a5742194"><td class="mdescLeft"> </td><td class="mdescRight">Test if a capability selector is a valid selector. <br /></td></tr>
|
|
<tr class="memitem:ga1c7adeae7771d1f6cad2501d94d1104b" id="r_ga1c7adeae7771d1f6cad2501d94d1104b"><td class="memItemLeft" align="right" valign="top">unsigned </td><td class="memItemRight" valign="bottom"><a class="el" href="#ga1c7adeae7771d1f6cad2501d94d1104b">l4_capability_equal</a> (<a class="el" href="#ga1445e923ce73029130d569d6e69a4dd8">l4_cap_idx_t</a> c1, <a class="el" href="#ga1445e923ce73029130d569d6e69a4dd8">l4_cap_idx_t</a> c2) <a class="el" href="group__l4sys__defines.html#ga362dfa378e662dd04f710a23fc7ea931">L4_NOTHROW</a></td></tr>
|
|
<tr class="memdesc:ga1c7adeae7771d1f6cad2501d94d1104b"><td class="mdescLeft"> </td><td class="mdescRight">Test if the capability indices of two capability selectors are equal. <br /></td></tr>
|
|
</table>
|
|
<a name="details" id="details"></a><h2 id="header-details" class="groupheader">Detailed Description</h2>
|
|
<p>C interface for capabilities. </p>
|
|
<p>Add </p><pre class="fragment">#include <l4/sys/types.h>
|
|
#include <l4/sys/consts.h>
|
|
</pre><p>to your code to use the functions and definitions explained here. </p>
|
|
<a name="doc-typedef-members" id="doc-typedef-members"></a><h2 id="header-doc-typedef-members" class="groupheader">Typedef Documentation</h2>
|
|
<a id="ga1445e923ce73029130d569d6e69a4dd8" name="ga1445e923ce73029130d569d6e69a4dd8"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#ga1445e923ce73029130d569d6e69a4dd8">◆ </a></span>l4_cap_idx_t</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">typedef unsigned long <a class="el" href="#ga1445e923ce73029130d569d6e69a4dd8">l4_cap_idx_t</a></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Capability selector type. </p>
|
|
<p>A capability selector is either a (shifted) capability index or the invalid capability selector <a class="el" href="#ggafee0421c2fe0e5cfc59f17f16ea10879aff9320ed307e76cebfca6c2871136102" title="Invalid capability selector.">L4_INVALID_CAP</a>.</p>
|
|
<p>Usage of the invalid capability selector is defined only for invoking IPC (see <a class="el" href="group__l4__ipc__api.html">Object Invocation</a>): When IPC is invoked on <a class="el" href="#ggafee0421c2fe0e5cfc59f17f16ea10879aff9320ed307e76cebfca6c2871136102" title="Invalid capability selector.">L4_INVALID_CAP</a>, then it is resolved to a capability for the current thread with full permissions.</p>
|
|
<p>Otherwise, the API assumes that each argument of type <a class="el" href="#ga1445e923ce73029130d569d6e69a4dd8" title="Capability selector type.">l4_cap_idx_t</a> is a capability index, i.e., <span class="tt">idx</span> <span class="tt"><<</span> <a class="el" href="#ggafee0421c2fe0e5cfc59f17f16ea10879ac13ad59620aeba353454514a42950a85" title="Capability index shift.">L4_CAP_SHIFT</a> for arbitrary <span class="tt">idx</span>. The behavior for other arguments is then undefined. </p>
|
|
<dl class="section examples"><dt>Examples</dt><dd><a class="el" href="examples_2libs_2shmc_2prodcons_8c-example.html#_a0">examples/libs/shmc/prodcons.c</a>, <a class="el" href="examples_2sys_2aliens_2main_8c-example.html#_a14">examples/sys/aliens/main.c</a>, <a class="el" href="examples_2sys_2isr_2main_8c-example.html#_a0">examples/sys/isr/main.c</a>, <a class="el" href="examples_2sys_2singlestep_2main_8c-example.html#_a1">examples/sys/singlestep/main.c</a>, <a class="el" href="examples_2sys_2start-with-exc_2main_8c-example.html#_a3">examples/sys/start-with-exc/main.c</a>, and <a class="el" href="examples_2sys_2utcb-ipc_2main_8c-example.html#_a0">examples/sys/utcb-ipc/main.c</a>.</dd>
|
|
</dl>
|
|
|
|
<p class="definition">Definition at line <a class="el" href="l4_2sys_2types_8h_source.html#l00336">336</a> of file <a class="el" href="l4_2sys_2types_8h_source.html">types.h</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a name="doc-enum-members" id="doc-enum-members"></a><h2 id="header-doc-enum-members" class="groupheader">Enumeration Type Documentation</h2>
|
|
<a id="gafee0421c2fe0e5cfc59f17f16ea10879" name="gafee0421c2fe0e5cfc59f17f16ea10879"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#gafee0421c2fe0e5cfc59f17f16ea10879">◆ </a></span>l4_cap_consts_t</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">enum <a class="el" href="#gafee0421c2fe0e5cfc59f17f16ea10879">l4_cap_consts_t</a></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Constants related to capability selectors. </p>
|
|
<table class="fieldtable">
|
|
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="ggafee0421c2fe0e5cfc59f17f16ea10879ac13ad59620aeba353454514a42950a85" name="ggafee0421c2fe0e5cfc59f17f16ea10879ac13ad59620aeba353454514a42950a85"></a>L4_CAP_SHIFT </td><td class="fielddoc"><p>Capability index shift. </p>
|
|
</td></tr>
|
|
<tr><td class="fieldname"><a id="ggafee0421c2fe0e5cfc59f17f16ea10879a03b1f5ae67cab694adaeffbc3614bce4" name="ggafee0421c2fe0e5cfc59f17f16ea10879a03b1f5ae67cab694adaeffbc3614bce4"></a>L4_CAP_SIZE </td><td class="fielddoc"><dl class="deprecated"><dt><b><a class="el" href="deprecated.html#_deprecated000004">Deprecated</a></b></dt><dd>Superseded by <a class="el" href="#ggafee0421c2fe0e5cfc59f17f16ea10879a20eac883de37e78a2f31103b467f4651" title="Offset of two consecutive capability selectors.">L4_CAP_OFFSET</a>. </dd></dl>
|
|
</td></tr>
|
|
<tr><td class="fieldname"><a id="ggafee0421c2fe0e5cfc59f17f16ea10879a20eac883de37e78a2f31103b467f4651" name="ggafee0421c2fe0e5cfc59f17f16ea10879a20eac883de37e78a2f31103b467f4651"></a>L4_CAP_OFFSET </td><td class="fielddoc"><p>Offset of two consecutive capability selectors. </p>
|
|
</td></tr>
|
|
<tr><td class="fieldname"><a id="ggafee0421c2fe0e5cfc59f17f16ea10879aba3e1dbcc462d842d56df9fc928e796b" name="ggafee0421c2fe0e5cfc59f17f16ea10879aba3e1dbcc462d842d56df9fc928e796b"></a>L4_CAP_MASK </td><td class="fielddoc"><p>Mask to get only the relevant bits of an <a class="el" href="#ga1445e923ce73029130d569d6e69a4dd8" title="Capability selector type.">l4_cap_idx_t</a>. </p>
|
|
</td></tr>
|
|
<tr><td class="fieldname"><a id="ggafee0421c2fe0e5cfc59f17f16ea10879aff9320ed307e76cebfca6c2871136102" name="ggafee0421c2fe0e5cfc59f17f16ea10879aff9320ed307e76cebfca6c2871136102"></a>L4_INVALID_CAP </td><td class="fielddoc"><p>Invalid capability selector. </p>
|
|
</td></tr>
|
|
</table>
|
|
|
|
<p class="definition">Definition at line <a class="el" href="l4_2sys_2consts_8h_source.html#l00139">139</a> of file <a class="el" href="l4_2sys_2consts_8h_source.html">consts.h</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="gaa7801b63edba351bad9ea8026432b5c4" name="gaa7801b63edba351bad9ea8026432b5c4"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#gaa7801b63edba351bad9ea8026432b5c4">◆ </a></span>l4_default_caps_t</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">enum <a class="el" href="#gaa7801b63edba351bad9ea8026432b5c4">l4_default_caps_t</a></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Default capabilities setup for the initial tasks. </p>
|
|
<p>These capability selectors are setup per default by the micro kernel for the two initial tasks, the Root-Pager (Sigma0) and the Root-Task (Moe).</p>
|
|
<dl class="section attention"><dt>Attention</dt><dd>These constants do not have any particular meaning for applications started by Moe, see <a class="el" href="group__api__l4re__env.html">Initial Environment</a> for this kind of information. </dd></dl>
|
|
<dl class="section see"><dt>See also</dt><dd><a class="el" href="group__api__l4re__env.html">Initial Environment</a> for information useful for normal user applications. </dd></dl>
|
|
<table class="fieldtable">
|
|
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="ggaa7801b63edba351bad9ea8026432b5c4ac5b1e4586c9063ba5680aa1f8149b83d" name="ggaa7801b63edba351bad9ea8026432b5c4ac5b1e4586c9063ba5680aa1f8149b83d"></a>L4_BASE_TASK_CAP </td><td class="fielddoc"><p>Capability selector for the current task. </p>
|
|
</td></tr>
|
|
<tr><td class="fieldname"><a id="ggaa7801b63edba351bad9ea8026432b5c4a5958178a4b4bea0a0b4422eea342608d" name="ggaa7801b63edba351bad9ea8026432b5c4a5958178a4b4bea0a0b4422eea342608d"></a>L4_BASE_FACTORY_CAP </td><td class="fielddoc"><p>Capability selector for the factory. </p>
|
|
</td></tr>
|
|
<tr><td class="fieldname"><a id="ggaa7801b63edba351bad9ea8026432b5c4a2239f400be0238b0e6ce1905de240078" name="ggaa7801b63edba351bad9ea8026432b5c4a2239f400be0238b0e6ce1905de240078"></a>L4_BASE_THREAD_CAP </td><td class="fielddoc"><p>Capability selector for the first thread. </p>
|
|
</td></tr>
|
|
<tr><td class="fieldname"><a id="ggaa7801b63edba351bad9ea8026432b5c4a488ad613d555ce2eaa8e3ab2f6c74532" name="ggaa7801b63edba351bad9ea8026432b5c4a488ad613d555ce2eaa8e3ab2f6c74532"></a>L4_BASE_PAGER_CAP </td><td class="fielddoc"><p>Capability selector for the pager gate. </p>
|
|
<p>For Sigma0, the pager is not present since it never raises page faults. For Moe, the pager is set to Sigma0. </p>
|
|
</td></tr>
|
|
<tr><td class="fieldname"><a id="ggaa7801b63edba351bad9ea8026432b5c4af57a9dce7f2435bea0e7f7a2298a0022" name="ggaa7801b63edba351bad9ea8026432b5c4af57a9dce7f2435bea0e7f7a2298a0022"></a>L4_BASE_LOG_CAP </td><td class="fielddoc"><p>Capability selector for the log object. </p>
|
|
<p>Present if the corresponding feature is turned on in the microkernel configuration. </p>
|
|
</td></tr>
|
|
<tr><td class="fieldname"><a id="ggaa7801b63edba351bad9ea8026432b5c4afd3ecfb1f7953c43125bf6cbbcecd3c9" name="ggaa7801b63edba351bad9ea8026432b5c4afd3ecfb1f7953c43125bf6cbbcecd3c9"></a>L4_BASE_ICU_CAP </td><td class="fielddoc"><p>Capability selector for the base icu object. </p>
|
|
</td></tr>
|
|
<tr><td class="fieldname"><a id="ggaa7801b63edba351bad9ea8026432b5c4ab64205360a4af2b208ba478a85826f8b" name="ggaa7801b63edba351bad9ea8026432b5c4ab64205360a4af2b208ba478a85826f8b"></a>L4_BASE_SCHEDULER_CAP </td><td class="fielddoc"><p>Capability selector for the scheduler cap. </p>
|
|
</td></tr>
|
|
<tr><td class="fieldname"><a id="ggaa7801b63edba351bad9ea8026432b5c4a193606abf6233dbecc3ab445068dde15" name="ggaa7801b63edba351bad9ea8026432b5c4a193606abf6233dbecc3ab445068dde15"></a>L4_BASE_IOMMU_CAP </td><td class="fielddoc"><p>Capability selector for the IO-MMU cap. </p>
|
|
<p>Present if the microkernel detected an IO-MMU. </p>
|
|
</td></tr>
|
|
<tr><td class="fieldname"><a id="ggaa7801b63edba351bad9ea8026432b5c4a3b548600669ef80f419b7d7118768ecc" name="ggaa7801b63edba351bad9ea8026432b5c4a3b548600669ef80f419b7d7118768ecc"></a>L4_BASE_DEBUGGER_CAP </td><td class="fielddoc"><p>Capability selector for the debugger cap. </p>
|
|
<p>Present if the corresponding feature is turned on in the microkernel configuration. </p>
|
|
</td></tr>
|
|
<tr><td class="fieldname"><a id="ggaa7801b63edba351bad9ea8026432b5c4aefcb3c078e5a5d3d7bed1eae5f22e4fa" name="ggaa7801b63edba351bad9ea8026432b5c4aefcb3c078e5a5d3d7bed1eae5f22e4fa"></a>L4_BASE_ARM_SMCCC_CAP </td><td class="fielddoc"><p>Capability selector for the ARM SMCCC cap. </p>
|
|
<p>Present if the microkernel detected an ARM SMC capable trusted execution environment. </p>
|
|
</td></tr>
|
|
<tr><td class="fieldname"><a id="ggaa7801b63edba351bad9ea8026432b5c4a8383f81861d75ee0a3e37bc00ed77135" name="ggaa7801b63edba351bad9ea8026432b5c4a8383f81861d75ee0a3e37bc00ed77135"></a>L4_BASE_CAPS_LAST </td><td class="fielddoc"><p>Last capability index used for base capabilities. </p>
|
|
</td></tr>
|
|
</table>
|
|
|
|
<p class="definition">Definition at line <a class="el" href="l4_2sys_2consts_8h_source.html#l00324">324</a> of file <a class="el" href="l4_2sys_2consts_8h_source.html">consts.h</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a name="doc-func-members" id="doc-func-members"></a><h2 id="header-doc-func-members" class="groupheader">Function Documentation</h2>
|
|
<a id="ga1c7adeae7771d1f6cad2501d94d1104b" name="ga1c7adeae7771d1f6cad2501d94d1104b"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#ga1c7adeae7771d1f6cad2501d94d1104b">◆ </a></span>l4_capability_equal()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">unsigned l4_capability_equal </td>
|
|
<td>(</td>
|
|
<td class="paramtype"><a class="el" href="#ga1445e923ce73029130d569d6e69a4dd8">l4_cap_idx_t</a></td> <td class="paramname"><span class="paramname"><em>c1</em></span>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype"><a class="el" href="#ga1445e923ce73029130d569d6e69a4dd8">l4_cap_idx_t</a></td> <td class="paramname"><span class="paramname"><em>c2</em></span> )</td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel inline">inline</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Test if the capability indices of two capability selectors are equal. </p>
|
|
<dl class="params"><dt>Parameters</dt><dd>
|
|
<table class="params">
|
|
<tr><td class="paramname">c1</td><td>Capability selector. </td></tr>
|
|
<tr><td class="paramname">c2</td><td>Capability selector.</td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<dl class="retval"><dt>Return values</dt><dd>
|
|
<table class="retval">
|
|
<tr><td class="paramname">0</td><td>The index parts of the capability selectors differ. </td></tr>
|
|
<tr><td class="paramname">1</td><td>The index parts of the capability selectors are equal.</td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<dl class="section pre"><dt>Precondition</dt><dd>Both capability selectors must be valid (cf. <a class="el" href="#ga539da15c2a1be4803ed7a3f3a5742194" title="Test if a capability selector is a valid selector.">l4_is_valid_cap()</a>) otherwise the return value is undefined. </dd></dl>
|
|
|
|
<p class="definition">Definition at line <a class="el" href="l4_2sys_2types_8h_source.html#l00397">397</a> of file <a class="el" href="l4_2sys_2types_8h_source.html">types.h</a>.</p>
|
|
|
|
<p class="reference">References <a class="el" href="l4_2sys_2consts_8h_source.html#l00142">L4_CAP_SHIFT</a>, and <a class="el" href="compiler_8h_source.html#l00161">L4_NOTHROW</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="ga1aee507eabc91cc118429decc9e8cb45" name="ga1aee507eabc91cc118429decc9e8cb45"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#ga1aee507eabc91cc118429decc9e8cb45">◆ </a></span>l4_is_invalid_cap()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">unsigned l4_is_invalid_cap </td>
|
|
<td>(</td>
|
|
<td class="paramtype"><a class="el" href="#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> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Test if a capability selector is the invalid capability. </p>
|
|
<dl class="params"><dt>Parameters</dt><dd>
|
|
<table class="params">
|
|
<tr><td class="paramname">c</td><td>Capability selector</td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<dl class="retval"><dt>Return values</dt><dd>
|
|
<table class="retval">
|
|
<tr><td class="paramname">0</td><td>The capability selector is not the invalid capability. </td></tr>
|
|
<tr><td class="paramname">>0</td><td>The capability selector is the invalid capability. </td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<dl class="section examples"><dt>Examples</dt><dd><a class="el" href="examples_2libs_2l4re_2c_2ma_09rm_8c-example.html#a2">examples/libs/l4re/c/ma+rm.c</a>, <a class="el" href="examples_2sys_2aliens_2main_8c-example.html#a25">examples/sys/aliens/main.c</a>, <a class="el" href="examples_2sys_2isr_2main_8c-example.html#a4">examples/sys/isr/main.c</a>, <a class="el" href="examples_2sys_2singlestep_2main_8c-example.html#a7">examples/sys/singlestep/main.c</a>, <a class="el" href="examples_2sys_2start-with-exc_2main_8c-example.html#a9">examples/sys/start-with-exc/main.c</a>, and <a class="el" href="examples_2sys_2utcb-ipc_2main_8c-example.html#a18">examples/sys/utcb-ipc/main.c</a>.</dd>
|
|
</dl>
|
|
|
|
<p class="definition">Definition at line <a class="el" href="l4_2sys_2types_8h_source.html#l00389">389</a> of file <a class="el" href="l4_2sys_2types_8h_source.html">types.h</a>.</p>
|
|
|
|
<p class="reference">References <a class="el" href="compiler_8h_source.html#l00161">L4_NOTHROW</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="ga539da15c2a1be4803ed7a3f3a5742194" name="ga539da15c2a1be4803ed7a3f3a5742194"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#ga539da15c2a1be4803ed7a3f3a5742194">◆ </a></span>l4_is_valid_cap()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">unsigned l4_is_valid_cap </td>
|
|
<td>(</td>
|
|
<td class="paramtype"><a class="el" href="#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> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Test if a capability selector is a valid selector. </p>
|
|
<dl class="params"><dt>Parameters</dt><dd>
|
|
<table class="params">
|
|
<tr><td class="paramname">c</td><td>Capability selector</td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<dl class="retval"><dt>Return values</dt><dd>
|
|
<table class="retval">
|
|
<tr><td class="paramname">0</td><td>The capability selector is not valid. </td></tr>
|
|
<tr><td class="paramname">>0</td><td>The capability selector is valid. </td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
|
|
<p class="definition">Definition at line <a class="el" href="l4_2sys_2types_8h_source.html#l00393">393</a> of file <a class="el" href="l4_2sys_2types_8h_source.html">types.h</a>.</p>
|
|
|
|
<p class="reference">References <a class="el" href="compiler_8h_source.html#l00161">L4_NOTHROW</a>.</p>
|
|
|
|
<p class="reference">Referenced by <a class="el" href="bitmap__cap__alloc_source.html#l00081">L4Re::Util::Cap_alloc_base::free()</a>, and <a class="el" href="counting__cap__alloc_source.html#l00321">L4Re::Util::Counting_cap_alloc< COUNTERTYPE, Dbg >::free()</a>.</p>
|
|
<div id="dynsection-1" onclick="return dynsection.toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;"><span class="dynarrow"><span class="arrowhead closed"></span></span>Here is the caller graph for this function:</div>
|
|
<div id="dynsection-1-summary" class="dynsummary" style="display:block;">
|
|
</div>
|
|
<div id="dynsection-1-content" class="dyncontent" style="display:none;">
|
|
<div class="center"><iframe scrolling="no" loading="lazy" frameborder="0" src="group__l4__cap__api_ga539da15c2a1be4803ed7a3f3a5742194_icgraph.svg" width="336" height="115"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div>
|
|
</div>
|
|
|
|
</div>
|
|
</div>
|
|
</div><!-- contents -->
|
|
</div><!-- doc-content -->
|
|
<div id="page-nav" class="page-nav-panel">
|
|
<div id="page-nav-resize-handle"></div>
|
|
<div id="page-nav-tree">
|
|
<div id="page-nav-contents">
|
|
</div><!-- page-nav-contents -->
|
|
</div><!-- page-nav-tree -->
|
|
</div><!-- page-nav -->
|
|
</div><!-- container -->
|
|
<!-- HTML footer for doxygen 1.9.1-->
|
|
<!-- start footer part -->
|
|
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
|
|
<ul>
|
|
<li class="footer">Generated on <span class="timestamp"></span> for L4Re Operating System Framework by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.15.0 </li>
|
|
</ul>
|
|
</div>
|
|
</body>
|
|
</html>
|