728 lines
72 KiB
HTML
728 lines
72 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 Namespace 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('namespaceL4.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 Namespace Reference</div></div>
|
|
</div><!--header-->
|
|
<div class="contents">
|
|
|
|
<p><a class="el" href="namespaceL4.html" title="L4 low-level kernel interface.">L4</a> low-level kernel interface.
|
|
<a href="#details">More...</a></p>
|
|
<table class="memberdecls">
|
|
<tr class="heading"><td colspan="2"><h2 id="header-namespaces" class="groupheader"><a id="namespaces" name="namespaces"></a>
|
|
Namespaces</h2></td></tr>
|
|
<tr class="memitem:Typeid" id="r_Typeid"><td class="memItemLeft" align="right" valign="top">namespace  </td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceL4_1_1Typeid.html">Typeid</a></td></tr>
|
|
<tr class="memdesc:namespaceL4_1_1Typeid"><td class="mdescLeft"> </td><td class="mdescRight">Definition of interface data-type helpers. <br /></td></tr>
|
|
<tr class="memitem:Ipc" id="r_Ipc"><td class="memItemLeft" align="right" valign="top">namespace  </td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceL4_1_1Ipc.html">Ipc</a></td></tr>
|
|
<tr class="memdesc:namespaceL4_1_1Ipc"><td class="mdescLeft"> </td><td class="mdescRight">IPC related functionality. <br /></td></tr>
|
|
<tr class="memitem:Ipc_5Fsvr" id="r_Ipc_5Fsvr"><td class="memItemLeft" align="right" valign="top">namespace  </td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceL4_1_1Ipc__svr.html">Ipc_svr</a></td></tr>
|
|
<tr class="memdesc:namespaceL4_1_1Ipc__svr"><td class="mdescLeft"> </td><td class="mdescRight">Helper classes for <a class="el" href="classL4_1_1Server.html" title="Basic server loop for handling client requests.">L4::Server</a> instantiation. <br /></td></tr>
|
|
<tr class="memitem:Types" id="r_Types"><td class="memItemLeft" align="right" valign="top">namespace  </td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceL4_1_1Types.html">Types</a></td></tr>
|
|
<tr class="memdesc:namespaceL4_1_1Types"><td class="mdescLeft"> </td><td class="mdescRight"><a class="el" href="namespaceL4.html" title="L4 low-level kernel interface.">L4</a> basic type helpers for C++. <br /></td></tr>
|
|
</table><table class="memberdecls">
|
|
<tr class="heading"><td colspan="2"><h2 id="header-nested-classes" class="groupheader"><a id="nested-classes" name="nested-classes"></a>
|
|
Data Structures</h2></td></tr>
|
|
<tr class="memitem:Type_5Finfo" id="r_Type_5Finfo"><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="structL4_1_1Type__info.html">Type_info</a></td></tr>
|
|
<tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">Dynamic Type Information for <a class="el" href="namespaceL4Re.html" title="L4Re C++ Interfaces.">L4Re</a> Interfaces. <a href="structL4_1_1Type__info.html#details">More...</a><br /></td></tr>
|
|
<tr class="memitem:Kobject_5Ftypeid" id="r_Kobject_5Ftypeid"><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="structL4_1_1Kobject__typeid.html">Kobject_typeid</a></td></tr>
|
|
<tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight"><a class="el" href="classL4_1_1Meta.html" title="Meta interface that shall be implemented by each L4Re object and gives access to the dynamic type inf...">Meta</a> object for handling access to type information of Kobjects. <a href="structL4_1_1Kobject__typeid.html#details">More...</a><br /></td></tr>
|
|
<tr class="memitem:Kobject_5Ftypeid_3C_20void_20_3E" id="r_Kobject_5Ftypeid_3C_20void_20_3E"><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="structL4_1_1Kobject__typeid_3_01void_01_4.html">Kobject_typeid< void ></a></td></tr>
|
|
<tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">Minimalistic ID for <span class="tt">void</span> interface. <a href="structL4_1_1Kobject__typeid_3_01void_01_4.html#details">More...</a><br /></td></tr>
|
|
<tr class="memitem:Kobject_5Ft" id="r_Kobject_5Ft"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="classL4_1_1Kobject__t.html">Kobject_t</a></td></tr>
|
|
<tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">Helper class to create an <a class="el" href="namespaceL4Re.html" title="L4Re C++ Interfaces.">L4Re</a> interface class that is derived from a single base class. <a href="classL4_1_1Kobject__t.html#details">More...</a><br /></td></tr>
|
|
<tr class="memitem:Kobject_5F2t" id="r_Kobject_5F2t"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="classL4_1_1Kobject__2t.html">Kobject_2t</a></td></tr>
|
|
<tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">Helper class to create an <a class="el" href="namespaceL4Re.html" title="L4Re C++ Interfaces.">L4Re</a> interface class that is derived from two base classes (see <span class="tt"><a class="el" href="classL4_1_1Kobject__t.html" title="Helper class to create an L4Re interface class that is derived from a single base class.">L4::Kobject_t</a></span>). <a href="classL4_1_1Kobject__2t.html#details">More...</a><br /></td></tr>
|
|
<tr class="memitem:Kobject_5F3t" id="r_Kobject_5F3t"><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="structL4_1_1Kobject__3t.html">Kobject_3t</a></td></tr>
|
|
<tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">Helper class to create an <a class="el" href="namespaceL4Re.html" title="L4Re C++ Interfaces.">L4Re</a> interface class that is derived from three base classes (see <span class="tt"><a class="el" href="classL4_1_1Kobject__t.html" title="Helper class to create an L4Re interface class that is derived from a single base class.">L4::Kobject_t</a></span>). <a href="structL4_1_1Kobject__3t.html#details">More...</a><br /></td></tr>
|
|
<tr class="memitem:Kobject_5Fdemand" id="r_Kobject_5Fdemand"><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="structL4_1_1Kobject__demand.html">Kobject_demand</a></td></tr>
|
|
<tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">Get the combined server-side resource requirements for all type T... <a href="structL4_1_1Kobject__demand.html#details">More...</a><br /></td></tr>
|
|
<tr class="memitem:Proto_5Ft" id="r_Proto_5Ft"><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="structL4_1_1Proto__t.html">Proto_t</a></td></tr>
|
|
<tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">Data type for defining protocol numbers. <a href="structL4_1_1Proto__t.html#details">More...</a><br /></td></tr>
|
|
<tr class="memitem:Kobject_5Fx" id="r_Kobject_5Fx"><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="structL4_1_1Kobject__x.html">Kobject_x</a></td></tr>
|
|
<tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">Generic <a class="el" href="classL4_1_1Kobject.html" title="Base class for all kinds of kernel objects and remote objects, referenced by capabilities.">Kobject</a> inheritance template. <a href="structL4_1_1Kobject__x.html#details">More...</a><br /></td></tr>
|
|
<tr class="memitem:Vm" id="r_Vm"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="classL4_1_1Vm.html">Vm</a></td></tr>
|
|
<tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">Virtual machine host address space. <a href="classL4_1_1Vm.html#details">More...</a><br /></td></tr>
|
|
<tr class="memitem:Arm_5Fsmccc" id="r_Arm_5Fsmccc"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="classL4_1_1Arm__smccc.html">Arm_smccc</a></td></tr>
|
|
<tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">Wrapper for function calls that follow the ARM SMC/HVC calling convention. <a href="classL4_1_1Arm__smccc.html#details">More...</a><br /></td></tr>
|
|
<tr class="memitem:Cap" id="r_Cap"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="classL4_1_1Cap.html">Cap</a></td></tr>
|
|
<tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">C++ interface for capabilities. <a href="classL4_1_1Cap.html#details">More...</a><br /></td></tr>
|
|
<tr class="memitem:Cap_5Fbase" id="r_Cap_5Fbase"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="classL4_1_1Cap__base.html">Cap_base</a></td></tr>
|
|
<tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">Base class for all kinds of capabilities. <a href="classL4_1_1Cap__base.html#details">More...</a><br /></td></tr>
|
|
<tr class="memitem:Epiface" id="r_Epiface"><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="structL4_1_1Epiface.html">Epiface</a></td></tr>
|
|
<tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">Base class for interface implementations. <a href="structL4_1_1Epiface.html#details">More...</a><br /></td></tr>
|
|
<tr class="memitem:Epiface_5Ft0" id="r_Epiface_5Ft0"><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="structL4_1_1Epiface__t0.html">Epiface_t0</a></td></tr>
|
|
<tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight"><a class="el" href="structL4_1_1Epiface.html" title="Base class for interface implementations.">Epiface</a> mixin for generic Kobject-based interfaces. <a href="structL4_1_1Epiface__t0.html#details">More...</a><br /></td></tr>
|
|
<tr class="memitem:Irqep_5Ft" id="r_Irqep_5Ft"><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="structL4_1_1Irqep__t.html">Irqep_t</a></td></tr>
|
|
<tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight"><a class="el" href="structL4_1_1Epiface.html" title="Base class for interface implementations.">Epiface</a> implementation for interrupt handlers. <a href="structL4_1_1Irqep__t.html#details">More...</a><br /></td></tr>
|
|
<tr class="memitem:Registry_5Fiface" id="r_Registry_5Fiface"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="classL4_1_1Registry__iface.html">Registry_iface</a></td></tr>
|
|
<tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">Abstract interface for object registries. <a href="classL4_1_1Registry__iface.html#details">More...</a><br /></td></tr>
|
|
<tr class="memitem:Epiface_5Ft" id="r_Epiface_5Ft"><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="structL4_1_1Epiface__t.html">Epiface_t</a></td></tr>
|
|
<tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight"><a class="el" href="structL4_1_1Epiface.html" title="Base class for interface implementations.">Epiface</a> implementation for Kobject-based interface implementations. <a href="structL4_1_1Epiface__t.html#details">More...</a><br /></td></tr>
|
|
<tr class="memitem:Basic_5Fregistry" id="r_Basic_5Fregistry"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="classL4_1_1Basic__registry.html">Basic_registry</a></td></tr>
|
|
<tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">This registry returns the corresponding server object based on the label of an <a class="el" href="classL4_1_1Ipc__gate.html" title="The C++ IPC gate interface, see IPC-Gate API for the C interface.">Ipc_gate</a>. <a href="classL4_1_1Basic__registry.html#details">More...</a><br /></td></tr>
|
|
<tr class="memitem:Server" id="r_Server"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="classL4_1_1Server.html">Server</a></td></tr>
|
|
<tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">Basic server loop for handling client requests. <a href="classL4_1_1Server.html#details">More...</a><br /></td></tr>
|
|
<tr class="memitem:Debugger" id="r_Debugger"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="classL4_1_1Debugger.html">Debugger</a></td></tr>
|
|
<tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">C++ kernel debugger API. <a href="classL4_1_1Debugger.html#details">More...</a><br /></td></tr>
|
|
<tr class="memitem:Exception" id="r_Exception"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="classL4_1_1Exception.html">Exception</a></td></tr>
|
|
<tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight"><a class="el" href="classL4_1_1Exception.html" title="Exception interface.">Exception</a> interface. <a href="classL4_1_1Exception.html#details">More...</a><br /></td></tr>
|
|
<tr class="memitem:Factory" id="r_Factory"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="classL4_1_1Factory.html">Factory</a></td></tr>
|
|
<tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">C++ Factory interface, see <a class="el" href="group__l4__factory__api.html">Factory</a> for the C interface. <a href="classL4_1_1Factory.html#details">More...</a><br /></td></tr>
|
|
<tr class="memitem:Iommu" id="r_Iommu"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="classL4_1_1Iommu.html">Iommu</a></td></tr>
|
|
<tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">Interface for IO-MMUs used for DMA remapping. <a href="classL4_1_1Iommu.html#details">More...</a><br /></td></tr>
|
|
<tr class="memitem:Ipc_5Fgate" id="r_Ipc_5Fgate"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="classL4_1_1Ipc__gate.html">Ipc_gate</a></td></tr>
|
|
<tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">The C++ IPC gate interface, see <a class="el" href="group__l4__kernel__object__gate__api.html">IPC-Gate API</a> for the C interface. <a href="classL4_1_1Ipc__gate.html#details">More...</a><br /></td></tr>
|
|
<tr class="memitem:Irq_5Feoi" id="r_Irq_5Feoi"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="classL4_1_1Irq__eoi.html">Irq_eoi</a></td></tr>
|
|
<tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">Interface for sending an unmask message to an object. <a href="classL4_1_1Irq__eoi.html#details">More...</a><br /></td></tr>
|
|
<tr class="memitem:Triggerable" id="r_Triggerable"><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="structL4_1_1Triggerable.html">Triggerable</a></td></tr>
|
|
<tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">Interface that allows an object to be triggered by some source. <a href="structL4_1_1Triggerable.html#details">More...</a><br /></td></tr>
|
|
<tr class="memitem:Irq" id="r_Irq"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="classL4_1_1Irq.html">Irq</a></td></tr>
|
|
<tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">C++ <a class="el" href="classL4_1_1Irq.html" title="C++ Irq interface, see IRQs for the C interface.">Irq</a> interface, see <a class="el" href="group__l4__irq__api.html">IRQs</a> for the C interface. <a href="classL4_1_1Irq.html#details">More...</a><br /></td></tr>
|
|
<tr class="memitem:Icu" id="r_Icu"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="classL4_1_1Icu.html">Icu</a></td></tr>
|
|
<tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">C++ <a class="el" href="classL4_1_1Icu.html" title="C++ Icu interface, see Interrupt controller for the C interface.">Icu</a> interface, see <a class="el" href="group__l4__icu__api.html">Interrupt controller</a> for the C interface. <a href="classL4_1_1Icu.html#details">More...</a><br /></td></tr>
|
|
<tr class="memitem:Kobject" id="r_Kobject"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="classL4_1_1Kobject.html">Kobject</a></td></tr>
|
|
<tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">Base class for all kinds of kernel objects and remote objects, referenced by capabilities. <a href="classL4_1_1Kobject.html#details">More...</a><br /></td></tr>
|
|
<tr class="memitem:Meta" id="r_Meta"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="classL4_1_1Meta.html">Meta</a></td></tr>
|
|
<tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight"><a class="el" href="classL4_1_1Meta.html" title="Meta interface that shall be implemented by each L4Re object and gives access to the dynamic type inf...">Meta</a> interface that shall be implemented by each <a class="el" href="namespaceL4Re.html" title="L4Re C++ Interfaces.">L4Re</a> object and gives access to the dynamic type information for <a class="el" href="namespaceL4Re.html" title="L4Re C++ Interfaces.">L4Re</a> objects. <a href="classL4_1_1Meta.html#details">More...</a><br /></td></tr>
|
|
<tr class="memitem:Io_5Fpager" id="r_Io_5Fpager"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="classL4_1_1Io__pager.html">Io_pager</a></td></tr>
|
|
<tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight"><a class="el" href="classL4_1_1Io__pager.html" title="Io_pager interface.">Io_pager</a> interface. <a href="classL4_1_1Io__pager.html#details">More...</a><br /></td></tr>
|
|
<tr class="memitem:Pager" id="r_Pager"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="classL4_1_1Pager.html">Pager</a></td></tr>
|
|
<tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight"><a class="el" href="classL4_1_1Pager.html" title="Pager interface including the Io_pager interface.">Pager</a> interface including the <a class="el" href="classL4_1_1Io__pager.html" title="Io_pager interface.">Io_pager</a> interface. <a href="classL4_1_1Pager.html#details">More...</a><br /></td></tr>
|
|
<tr class="memitem:Platform_5Fcontrol" id="r_Platform_5Fcontrol"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="classL4_1_1Platform__control.html">Platform_control</a></td></tr>
|
|
<tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight"><a class="el" href="namespaceL4.html" title="L4 low-level kernel interface.">L4</a> C++ interface for controlling platform-wide properties, see <a class="el" href="group__l4__platform__control__api.html">Platform Control C API</a> for the C interface. <a href="classL4_1_1Platform__control.html#details">More...</a><br /></td></tr>
|
|
<tr class="memitem:Rcv_5Fendpoint" id="r_Rcv_5Fendpoint"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="classL4_1_1Rcv__endpoint.html">Rcv_endpoint</a></td></tr>
|
|
<tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">Interface for kernel objects that allow to receive IPC from them. <a href="classL4_1_1Rcv__endpoint.html#details">More...</a><br /></td></tr>
|
|
<tr class="memitem:Scheduler" id="r_Scheduler"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="classL4_1_1Scheduler.html">Scheduler</a></td></tr>
|
|
<tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">C++ interface of the <a class="el" href="classL4_1_1Scheduler.html" title="C++ interface of the Scheduler kernel object, see Scheduler for the C interface.">Scheduler</a> kernel object, see <a class="el" href="group__l4__scheduler__api.html">Scheduler</a> for the C interface. <a href="classL4_1_1Scheduler.html#details">More...</a><br /></td></tr>
|
|
<tr class="memitem:Semaphore" id="r_Semaphore"><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="structL4_1_1Semaphore.html">Semaphore</a></td></tr>
|
|
<tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">C++ Kernel-provided semaphore interface, see <a class="el" href="group__l4__semaphore__api.html">Kernel-provided semaphore</a> for the C interface. <a href="structL4_1_1Semaphore.html#details">More...</a><br /></td></tr>
|
|
<tr class="memitem:Smart_5Fcap" id="r_Smart_5Fcap"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="classL4_1_1Smart__cap.html">Smart_cap</a></td></tr>
|
|
<tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">Smart capability class. <a href="classL4_1_1Smart__cap.html#details">More...</a><br /></td></tr>
|
|
<tr class="memitem:Task" id="r_Task"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="classL4_1_1Task.html">Task</a></td></tr>
|
|
<tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">C++ interface of the <a class="el" href="classL4_1_1Task.html" title="C++ interface of the Task kernel object, see Task for the C interface.">Task</a> kernel object, see <a class="el" href="group__l4__task__api.html">Task</a> for the C interface. <a href="classL4_1_1Task.html#details">More...</a><br /></td></tr>
|
|
<tr class="memitem:Thread" id="r_Thread"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="classL4_1_1Thread.html">Thread</a></td></tr>
|
|
<tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">C++ <a class="el" href="namespaceL4.html" title="L4 low-level kernel interface.">L4</a> kernel thread interface, see <a class="el" href="group__l4__thread__api.html">Thread</a> for the C interface. <a href="classL4_1_1Thread.html#details">More...</a><br /></td></tr>
|
|
<tr class="memitem:Thread_5Fgroup" id="r_Thread_5Fgroup"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="classL4_1_1Thread__group.html">Thread_group</a></td></tr>
|
|
<tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">C++ <a class="el" href="namespaceL4.html" title="L4 low-level kernel interface.">L4</a> kernel thread group interface, see <a class="el" href="group__l4__thread__group__api.html">Thread groups</a> for the C interface. <a href="classL4_1_1Thread__group.html#details">More...</a><br /></td></tr>
|
|
<tr class="memitem:Vcon" id="r_Vcon"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="classL4_1_1Vcon.html">Vcon</a></td></tr>
|
|
<tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">C++ <a class="el" href="namespaceL4.html" title="L4 low-level kernel interface.">L4</a> <a class="el" href="classL4_1_1Vcon.html" title="C++ L4 Vcon interface, see Virtual Console for the C interface.">Vcon</a> interface, see <a class="el" href="group__l4__vcon__api.html">Virtual Console</a> for the C interface. <a href="classL4_1_1Vcon.html#details">More...</a><br /></td></tr>
|
|
<tr class="memitem:Poll_5Ftimeout_5Fkipclock" id="r_Poll_5Ftimeout_5Fkipclock"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="classL4_1_1Poll__timeout__kipclock.html">Poll_timeout_kipclock</a></td></tr>
|
|
<tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">A polling timeout based on the <a class="el" href="namespaceL4Re.html" title="L4Re C++ Interfaces.">L4Re</a> clock. <a href="classL4_1_1Poll__timeout__kipclock.html#details">More...</a><br /></td></tr>
|
|
<tr class="memitem:Alloc_5Flist" id="r_Alloc_5Flist"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="classL4_1_1Alloc__list.html">Alloc_list</a></td></tr>
|
|
<tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">A simple list-based allocator. <a href="classL4_1_1Alloc__list.html#details">More...</a><br /></td></tr>
|
|
<tr class="memitem:IOModifier" id="r_IOModifier"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="classL4_1_1IOModifier.html">IOModifier</a></td></tr>
|
|
<tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">Modifier class for the IO stream. <a href="classL4_1_1IOModifier.html#details">More...</a><br /></td></tr>
|
|
<tr class="memitem:Exception_5Ftracer" id="r_Exception_5Ftracer"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="classL4_1_1Exception__tracer.html">Exception_tracer</a></td></tr>
|
|
<tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">Back-trace support for exceptions. <a href="classL4_1_1Exception__tracer.html#details">More...</a><br /></td></tr>
|
|
<tr class="memitem:Base_5Fexception" id="r_Base_5Fexception"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="classL4_1_1Base__exception.html">Base_exception</a></td></tr>
|
|
<tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">Base class for all exceptions, thrown by the <a class="el" href="namespaceL4Re.html" title="L4Re C++ Interfaces.">L4Re</a> framework. <a href="classL4_1_1Base__exception.html#details">More...</a><br /></td></tr>
|
|
<tr class="memitem:Runtime_5Ferror" id="r_Runtime_5Ferror"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="classL4_1_1Runtime__error.html">Runtime_error</a></td></tr>
|
|
<tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight"><a class="el" href="classL4_1_1Exception.html" title="Exception interface.">Exception</a> for an abstract runtime error. <a href="classL4_1_1Runtime__error.html#details">More...</a><br /></td></tr>
|
|
<tr class="memitem:Out_5Fof_5Fmemory" id="r_Out_5Fof_5Fmemory"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="classL4_1_1Out__of__memory.html">Out_of_memory</a></td></tr>
|
|
<tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight"><a class="el" href="classL4_1_1Exception.html" title="Exception interface.">Exception</a> signalling insufficient memory. <a href="classL4_1_1Out__of__memory.html#details">More...</a><br /></td></tr>
|
|
<tr class="memitem:Element_5Falready_5Fexists" id="r_Element_5Falready_5Fexists"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="classL4_1_1Element__already__exists.html">Element_already_exists</a></td></tr>
|
|
<tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight"><a class="el" href="classL4_1_1Exception.html" title="Exception interface.">Exception</a> for duplicate element insertions. <a href="classL4_1_1Element__already__exists.html#details">More...</a><br /></td></tr>
|
|
<tr class="memitem:Unknown_5Ferror" id="r_Unknown_5Ferror"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="classL4_1_1Unknown__error.html">Unknown_error</a></td></tr>
|
|
<tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight"><a class="el" href="classL4_1_1Exception.html" title="Exception interface.">Exception</a> for an unknown condition. <a href="classL4_1_1Unknown__error.html#details">More...</a><br /></td></tr>
|
|
<tr class="memitem:Element_5Fnot_5Ffound" id="r_Element_5Fnot_5Ffound"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="classL4_1_1Element__not__found.html">Element_not_found</a></td></tr>
|
|
<tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight"><a class="el" href="classL4_1_1Exception.html" title="Exception interface.">Exception</a> for a failed lookup (element not found). <a href="classL4_1_1Element__not__found.html#details">More...</a><br /></td></tr>
|
|
<tr class="memitem:Invalid_5Fcapability" id="r_Invalid_5Fcapability"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="classL4_1_1Invalid__capability.html">Invalid_capability</a></td></tr>
|
|
<tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">Indicates that an invalid object was invoked. <a href="classL4_1_1Invalid__capability.html#details">More...</a><br /></td></tr>
|
|
<tr class="memitem:Com_5Ferror" id="r_Com_5Ferror"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="classL4_1_1Com__error.html">Com_error</a></td></tr>
|
|
<tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">Error conditions during IPC. <a href="classL4_1_1Com__error.html#details">More...</a><br /></td></tr>
|
|
<tr class="memitem:Bounds_5Ferror" id="r_Bounds_5Ferror"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="classL4_1_1Bounds__error.html">Bounds_error</a></td></tr>
|
|
<tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">Access out of bounds. <a href="classL4_1_1Bounds__error.html#details">More...</a><br /></td></tr>
|
|
<tr class="memitem:Server_5Fobject" id="r_Server_5Fobject"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="classL4_1_1Server__object.html">Server_object</a></td></tr>
|
|
<tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">Abstract server object to be used with <a class="el" href="classL4_1_1Server.html" title="Basic server loop for handling client requests.">L4::Server</a> and <a class="el" href="classL4_1_1Basic__registry.html" title="This registry returns the corresponding server object based on the label of an Ipc_gate.">L4::Basic_registry</a>. <a href="classL4_1_1Server__object.html#details">More...</a><br /></td></tr>
|
|
<tr class="memitem:Server_5Fobject_5Ft" id="r_Server_5Fobject_5Ft"><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="structL4_1_1Server__object__t.html">Server_object_t</a></td></tr>
|
|
<tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">Base class (template) for server implementing server objects. <a href="structL4_1_1Server__object__t.html#details">More...</a><br /></td></tr>
|
|
<tr class="memitem:Server_5Fobject_5Fx" id="r_Server_5Fobject_5Fx"><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="structL4_1_1Server__object__x.html">Server_object_x</a></td></tr>
|
|
<tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">Helper class to implement p_dispatch based server objects. <a href="structL4_1_1Server__object__x.html#details">More...</a><br /></td></tr>
|
|
<tr class="memitem:Irq_5Fhandler_5Fobject" id="r_Irq_5Fhandler_5Fobject"><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="structL4_1_1Irq__handler__object.html">Irq_handler_object</a></td></tr>
|
|
<tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight"><a class="el" href="classL4_1_1Server.html" title="Basic server loop for handling client requests.">Server</a> object base class for handling IRQ messages. <a href="structL4_1_1Irq__handler__object.html#details">More...</a><br /></td></tr>
|
|
<tr class="memitem:Lock_5Fguard" id="r_Lock_5Fguard"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="classL4_1_1Lock__guard.html">Lock_guard</a></td></tr>
|
|
<tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">Basic lock guard implementation that prevents forgotten unlocks on exit paths from a method or a block of code. <a href="classL4_1_1Lock__guard.html#details">More...</a><br /></td></tr>
|
|
<tr class="memitem:String" id="r_String"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="classL4_1_1String.html">String</a></td></tr>
|
|
<tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">A null-terminated string container class. <a href="classL4_1_1String.html#details">More...</a><br /></td></tr>
|
|
<tr class="memitem:Poll_5Ftimeout_5Fcounter" id="r_Poll_5Ftimeout_5Fcounter"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="classL4_1_1Poll__timeout__counter.html">Poll_timeout_counter</a></td></tr>
|
|
<tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">Evaluate an expression for a maximum number of times. <a href="classL4_1_1Poll__timeout__counter.html#details">More...</a><br /></td></tr>
|
|
<tr class="memitem:Uart_5Fapb" id="r_Uart_5Fapb"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="classL4_1_1Uart__apb.html">Uart_apb</a></td></tr>
|
|
<tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">Driver for the Advanced Peripheral Bus (APB) UART from the Cortex-M System Design Kit (CMSDK). <a href="classL4_1_1Uart__apb.html#details">More...</a><br /></td></tr>
|
|
<tr class="memitem:Uart" id="r_Uart"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="classL4_1_1Uart.html">Uart</a></td></tr>
|
|
<tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight"><a class="el" href="classL4_1_1Uart.html" title="Uart driver abstraction.">Uart</a> driver abstraction. <a href="classL4_1_1Uart.html#details">More...</a><br /></td></tr>
|
|
</table><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:a037b99ac2eb59d597e1e41c06619d487" id="r_a037b99ac2eb59d597e1e41c06619d487"><td class="memItemLeft" align="right" valign="top"><a id="a037b99ac2eb59d597e1e41c06619d487" name="a037b99ac2eb59d597e1e41c06619d487"></a>
|
|
typedef int </td><td class="memItemRight" valign="bottom"><b>Opcode</b></td></tr>
|
|
<tr class="memdesc:a037b99ac2eb59d597e1e41c06619d487"><td class="mdescLeft"> </td><td class="mdescRight">Data type for RPC opcodes. <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:ae9cf58a7c791432c3132efdd12f4dfc7" id="r_ae9cf58a7c791432c3132efdd12f4dfc7"><td class="memItemLeft" align="right" valign="top">enum  </td><td class="memItemRight" valign="bottom">{ <a class="el" href="#ae9cf58a7c791432c3132efdd12f4dfc7aee065cbb7d28b97710ed4d87ab34367e">PROTO_ANY</a> = 0
|
|
, <a class="el" href="#ae9cf58a7c791432c3132efdd12f4dfc7a051f2204cdcb44d7d3ca9f6d5d424be2">PROTO_EMPTY</a> = -19
|
|
}</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:ga97e693dfd1d5e0539507686c133ba05d" id="r_ga97e693dfd1d5e0539507686c133ba05d"><td class="memTemplParams" colspan="2">template<typename T> </td></tr>
|
|
<tr class="memitem:ga97e693dfd1d5e0539507686c133ba05d template"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structL4_1_1Type__info.html">Type_info</a> const * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__l4__kobject__rtti.html#ga97e693dfd1d5e0539507686c133ba05d">kobject_typeid</a> () noexcept</td></tr>
|
|
<tr class="memdesc:ga97e693dfd1d5e0539507686c133ba05d"><td class="mdescLeft"> </td><td class="mdescRight">Get the <a class="el" href="structL4_1_1Type__info.html" title="Dynamic Type Information for L4Re Interfaces.">L4::Type_info</a> for the <a class="el" href="namespaceL4Re.html" title="L4Re C++ Interfaces.">L4Re</a> interface given in <span class="tt">T</span>. <br /></td></tr>
|
|
<tr class="memitem:ad28da99b08996a6fe5210be548ce0fb2" id="r_ad28da99b08996a6fe5210be548ce0fb2"><td class="memTemplParams" colspan="2">template<typename T, typename F> </td></tr>
|
|
<tr class="memitem:ad28da99b08996a6fe5210be548ce0fb2 template"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classL4_1_1Cap.html">Cap</a>< T > </td><td class="memItemRight" valign="bottom"><a class="el" href="#ad28da99b08996a6fe5210be548ce0fb2">cap_dynamic_cast</a> (<a class="el" href="classL4_1_1Cap.html">Cap</a>< F > const &c) noexcept</td></tr>
|
|
<tr class="memdesc:ad28da99b08996a6fe5210be548ce0fb2"><td class="mdescLeft"> </td><td class="mdescRight"><span class="tt">dynamic_cast</span> for capabilities. <br /></td></tr>
|
|
<tr class="memitem:ac674c8e32808f504f4fa0aa8e5276e84" id="r_ac674c8e32808f504f4fa0aa8e5276e84"><td class="memTemplParams" colspan="2">template<typename T, typename F> </td></tr>
|
|
<tr class="memitem:ac674c8e32808f504f4fa0aa8e5276e84 template"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classL4_1_1Cap.html">Cap</a>< T > </td><td class="memItemRight" valign="bottom"><a class="el" href="#ac674c8e32808f504f4fa0aa8e5276e84">cap_cast</a> (<a class="el" href="classL4_1_1Cap.html">Cap</a>< F > const &c) noexcept</td></tr>
|
|
<tr class="memdesc:ac674c8e32808f504f4fa0aa8e5276e84"><td class="mdescLeft"> </td><td class="mdescRight">static_cast for capabilities. <br /></td></tr>
|
|
<tr class="memitem:a8ee8c8ffde27b74b01d75a03e4f4808d" id="r_a8ee8c8ffde27b74b01d75a03e4f4808d"><td class="memTemplParams" colspan="2">template<typename T, typename F> </td></tr>
|
|
<tr class="memitem:a8ee8c8ffde27b74b01d75a03e4f4808d template"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classL4_1_1Cap.html">Cap</a>< T > </td><td class="memItemRight" valign="bottom"><a class="el" href="#a8ee8c8ffde27b74b01d75a03e4f4808d">cap_reinterpret_cast</a> (<a class="el" href="classL4_1_1Cap.html">Cap</a>< F > const &c) noexcept</td></tr>
|
|
<tr class="memdesc:a8ee8c8ffde27b74b01d75a03e4f4808d"><td class="mdescLeft"> </td><td class="mdescRight">reinterpret_cast for capabilities. <br /></td></tr>
|
|
<tr class="memitem:a9e6e01651b5cc9d14d8436c6d5d46536" id="r_a9e6e01651b5cc9d14d8436c6d5d46536"><td class="memTemplParams" colspan="2">template<typename T> </td></tr>
|
|
<tr class="memitem:a9e6e01651b5cc9d14d8436c6d5d46536 template"><td class="memItemLeft" align="right" valign="top">constexpr T </td><td class="memItemRight" valign="bottom"><a class="el" href="#a9e6e01651b5cc9d14d8436c6d5d46536">trunc_order</a> (T val, unsigned char order)</td></tr>
|
|
<tr class="memdesc:a9e6e01651b5cc9d14d8436c6d5d46536"><td class="mdescLeft"> </td><td class="mdescRight">Round a value down so the given number of lsb is zero. <br /></td></tr>
|
|
<tr class="memitem:a92c0d3febc3cd6b35aa072d1bf2d9d11" id="r_a92c0d3febc3cd6b35aa072d1bf2d9d11"><td class="memTemplParams" colspan="2">template<typename T> </td></tr>
|
|
<tr class="memitem:a92c0d3febc3cd6b35aa072d1bf2d9d11 template"><td class="memItemLeft" align="right" valign="top">constexpr T </td><td class="memItemRight" valign="bottom"><a class="el" href="#a92c0d3febc3cd6b35aa072d1bf2d9d11">round_order</a> (T val, unsigned char order)</td></tr>
|
|
<tr class="memdesc:a92c0d3febc3cd6b35aa072d1bf2d9d11"><td class="mdescLeft"> </td><td class="mdescRight">Round a value up so the given number of lsb is zero. <br /></td></tr>
|
|
<tr class="memitem:a91a908df07e90f694153c9acae2b3958" id="r_a91a908df07e90f694153c9acae2b3958"><td class="memTemplParams" colspan="2">template<typename T, typename F, typename SMART> </td></tr>
|
|
<tr class="memitem:a91a908df07e90f694153c9acae2b3958 template"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classL4_1_1Smart__cap.html">Smart_cap</a>< T, SMART > </td><td class="memItemRight" valign="bottom"><a class="el" href="#a91a908df07e90f694153c9acae2b3958">cap_cast</a> (<a class="el" href="classL4_1_1Smart__cap.html">Smart_cap</a>< F, SMART > const &c) noexcept</td></tr>
|
|
<tr class="memdesc:a91a908df07e90f694153c9acae2b3958"><td class="mdescLeft"> </td><td class="mdescRight"><span class="tt">static_cast</span> for (smart) capabilities. <br /></td></tr>
|
|
<tr class="memitem:ae0eb584f2c7907561ddd46023281a83f" id="r_ae0eb584f2c7907561ddd46023281a83f"><td class="memTemplParams" colspan="2">template<typename T, typename F, typename SMART> </td></tr>
|
|
<tr class="memitem:ae0eb584f2c7907561ddd46023281a83f template"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classL4_1_1Smart__cap.html">Smart_cap</a>< T, SMART > </td><td class="memItemRight" valign="bottom"><a class="el" href="#ae0eb584f2c7907561ddd46023281a83f">cap_reinterpret_cast</a> (<a class="el" href="classL4_1_1Smart__cap.html">Smart_cap</a>< F, SMART > const &c) noexcept</td></tr>
|
|
<tr class="memdesc:ae0eb584f2c7907561ddd46023281a83f"><td class="mdescLeft"> </td><td class="mdescRight"><span class="tt">reinterpret_cast</span> for (smart) capabilities. <br /></td></tr>
|
|
<tr class="memitem:gaba0849c4b92afdccbe110489e18dadbd" id="r_gaba0849c4b92afdccbe110489e18dadbd"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__helper.html#gaba0849c4b92afdccbe110489e18dadbd">throw_ipc_exception</a> (<a class="el" href="classL4_1_1Cap.html">L4::Cap</a>< void > const &o, <a class="el" href="structl4__msgtag__t.html">l4_msgtag_t</a> const &err, <a class="el" href="group__l4__utcb__api.html#ga89be8a86d11c1d532b636cc2df1330fb">l4_utcb_t</a> *utcb)</td></tr>
|
|
<tr class="memdesc:gaba0849c4b92afdccbe110489e18dadbd"><td class="mdescLeft"> </td><td class="mdescRight">Throw an <a class="el" href="namespaceL4.html" title="L4 low-level kernel interface.">L4</a> IPC error as exception. <br /></td></tr>
|
|
<tr class="memitem:ga54f8da0e02ff2496f1ad935e38ab17c4" id="r_ga54f8da0e02ff2496f1ad935e38ab17c4"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__helper.html#ga54f8da0e02ff2496f1ad935e38ab17c4">throw_ipc_exception</a> (void const *o, <a class="el" href="structl4__msgtag__t.html">l4_msgtag_t</a> const &err, <a class="el" href="group__l4__utcb__api.html#ga89be8a86d11c1d532b636cc2df1330fb">l4_utcb_t</a> *utcb)</td></tr>
|
|
<tr class="memdesc:ga54f8da0e02ff2496f1ad935e38ab17c4"><td class="mdescLeft"> </td><td class="mdescRight">Throw an <a class="el" href="namespaceL4.html" title="L4 low-level kernel interface.">L4</a> IPC error as exception. <br /></td></tr>
|
|
</table><table class="memberdecls">
|
|
<tr class="heading"><td colspan="2"><h2 id="header-var-members" class="groupheader"><a id="var-members" name="var-members"></a>
|
|
Variables</h2></td></tr>
|
|
<tr class="memitem:af7d3a67a067699ff9cb1c766c7055b08" id="r_af7d3a67a067699ff9cb1c766c7055b08"><td class="memItemLeft" align="right" valign="top"><a id="af7d3a67a067699ff9cb1c766c7055b08" name="af7d3a67a067699ff9cb1c766c7055b08"></a>
|
|
<a class="el" href="classL4_1_1IOModifier.html">IOModifier</a> const </td><td class="memItemRight" valign="bottom"><b>hex</b></td></tr>
|
|
<tr class="memdesc:af7d3a67a067699ff9cb1c766c7055b08"><td class="mdescLeft"> </td><td class="mdescRight">Modifies the stream to print numbers as hexadecimal values. <br /></td></tr>
|
|
<tr class="memitem:a4e96755ffe9daba2be73803fb239fa8e" id="r_a4e96755ffe9daba2be73803fb239fa8e"><td class="memItemLeft" align="right" valign="top"><a id="a4e96755ffe9daba2be73803fb239fa8e" name="a4e96755ffe9daba2be73803fb239fa8e"></a>
|
|
<a class="el" href="classL4_1_1IOModifier.html">IOModifier</a> const </td><td class="memItemRight" valign="bottom"><b>dec</b></td></tr>
|
|
<tr class="memdesc:a4e96755ffe9daba2be73803fb239fa8e"><td class="mdescLeft"> </td><td class="mdescRight">Modifies the stream to print numbers as decimal values. <br /></td></tr>
|
|
<tr class="memitem:a7bb8042cc1b1f3c2e190c979ff536c3a" id="r_a7bb8042cc1b1f3c2e190c979ff536c3a"><td class="memItemLeft" align="right" valign="top"><a id="a7bb8042cc1b1f3c2e190c979ff536c3a" name="a7bb8042cc1b1f3c2e190c979ff536c3a"></a>
|
|
BasicOStream </td><td class="memItemRight" valign="bottom"><b>cout</b></td></tr>
|
|
<tr class="memdesc:a7bb8042cc1b1f3c2e190c979ff536c3a"><td class="mdescLeft"> </td><td class="mdescRight">Standard output stream. <br /></td></tr>
|
|
<tr class="memitem:abb48344dd3500d28739ffe5c439f75e5" id="r_abb48344dd3500d28739ffe5c439f75e5"><td class="memItemLeft" align="right" valign="top"><a id="abb48344dd3500d28739ffe5c439f75e5" name="abb48344dd3500d28739ffe5c439f75e5"></a>
|
|
BasicOStream </td><td class="memItemRight" valign="bottom"><b>cerr</b></td></tr>
|
|
<tr class="memdesc:abb48344dd3500d28739ffe5c439f75e5"><td class="mdescLeft"> </td><td class="mdescRight">Standard error stream. <br /></td></tr>
|
|
</table>
|
|
<a name="details" id="details"></a><h2 id="header-details" class="groupheader">Detailed Description</h2>
|
|
<div class="textblock"><p><a class="el" href="namespaceL4.html" title="L4 low-level kernel interface.">L4</a> low-level kernel interface. </p>
|
|
</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="ae9cf58a7c791432c3132efdd12f4dfc7" name="ae9cf58a7c791432c3132efdd12f4dfc7"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#ae9cf58a7c791432c3132efdd12f4dfc7">◆ </a></span>anonymous enum</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">anonymous enum</td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
<table class="fieldtable">
|
|
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="ae9cf58a7c791432c3132efdd12f4dfc7aee065cbb7d28b97710ed4d87ab34367e" name="ae9cf58a7c791432c3132efdd12f4dfc7aee065cbb7d28b97710ed4d87ab34367e"></a>PROTO_ANY </td><td class="fielddoc"><p>Default protocol used by <a class="el" href="classL4_1_1Kobject__t.html" title="Helper class to create an L4Re interface class that is derived from a single base class.">Kobject_t</a> and <a class="el" href="structL4_1_1Kobject__x.html" title="Generic Kobject inheritance template.">Kobject_x</a>. </p>
|
|
</td></tr>
|
|
<tr><td class="fieldname"><a id="ae9cf58a7c791432c3132efdd12f4dfc7a051f2204cdcb44d7d3ca9f6d5d424be2" name="ae9cf58a7c791432c3132efdd12f4dfc7a051f2204cdcb44d7d3ca9f6d5d424be2"></a>PROTO_EMPTY </td><td class="fielddoc"><p>Empty protocol for empty APIs. </p>
|
|
</td></tr>
|
|
</table>
|
|
|
|
<p class="definition">Definition at line <a class="el" href="____typeinfo_8h_source.html#l00044">44</a> of file <a class="el" href="____typeinfo_8h_source.html">__typeinfo.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="ac674c8e32808f504f4fa0aa8e5276e84" name="ac674c8e32808f504f4fa0aa8e5276e84"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#ac674c8e32808f504f4fa0aa8e5276e84">◆ </a></span>cap_cast() <span class="overload">[1/2]</span></h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<div class="memtemplate">
|
|
template<typename T, typename F> </div>
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname"><a class="el" href="classL4_1_1Cap.html">Cap</a>< T > L4::cap_cast </td>
|
|
<td>(</td>
|
|
<td class="paramtype"><a class="el" href="classL4_1_1Cap.html">Cap</a>< F > const &</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 noexcept">noexcept</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>static_cast for capabilities. </p>
|
|
<dl class="tparams"><dt>Template Parameters</dt><dd>
|
|
<table class="tparams">
|
|
<tr><td class="paramname">T</td><td>The target type of the capability </td></tr>
|
|
<tr><td class="paramname">F</td><td>The source type (and is usually implicitly set) </td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<dl class="params"><dt>Parameters</dt><dd>
|
|
<table class="params">
|
|
<tr><td class="paramname">c</td><td>The source capability that shall be casted </td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<dl class="section return"><dt>Returns</dt><dd>A capability typed to the interface <span class="tt">T</span>.</dd></dl>
|
|
<p>The use of this cast operator is similar to the <span class="tt">static_cast<>()</span> for C++ pointers. It does the same type checking and adjustments like C++ does on pointers.</p>
|
|
<p>Example code: </p><pre class="fragment">L4::Cap<L4::Kobject> obj = ... ;
|
|
L4::Cap<L4::Icu> icu = L4::cap_cast<L4::Icu>(obj);
|
|
</pre>
|
|
<p class="definition">Definition at line <a class="el" href="capability_8h_source.html#l00416">416</a> of file <a class="el" href="capability_8h_source.html">capability.h</a>.</p>
|
|
|
|
<p class="reference">Referenced by <a class="el" href="cap__alloc_source.html#l00053">L4Re::Cap_alloc::alloc()</a>, <a class="el" href="cap__alloc__impl_8h_source.html#l00079">L4Re::Util::_Cap_alloc::alloc()</a>, <a class="el" href="counting__cap__alloc_source.html#l00282">L4Re::Util::Counting_cap_alloc< COUNTERTYPE, Dbg >::alloc()</a>, <a class="el" href="virtio-gpio-device_source.html#l00519">L4virtio::Svr::Virtio_gpio< Request_handler, Epiface >::device_notify_irq()</a>, <a class="el" href="virtio-i2c-device_source.html#l00358">L4virtio::Svr::Virtio_i2c< Request_handler, Epiface >::device_notify_irq()</a>, <a class="el" href="virtio-rng-device_source.html#l00205">L4virtio::Svr::Virtio_rng< Rnd_state, Epiface >::device_notify_irq()</a>, <a class="el" href="ipc__epiface_source.html#l00269">L4::Epiface_t0< RPC_IFACE, BASE >::obj_cap()</a>, <a class="el" href="ipc__epiface_source.html#l00294">L4::Irqep_t< Derived, BASE, bool >::obj_cap()</a>, and <a class="el" href="ipc__epiface_source.html#l00114">L4::Ipc_svr::Server_iface::rcv_cap()</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>Here is the caller graph for this function:</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="namespaceL4_ac674c8e32808f504f4fa0aa8e5276e84_icgraph.svg" width="338" height="522"><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="a91a908df07e90f694153c9acae2b3958" name="a91a908df07e90f694153c9acae2b3958"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a91a908df07e90f694153c9acae2b3958">◆ </a></span>cap_cast() <span class="overload">[2/2]</span></h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<div class="memtemplate">
|
|
template<typename T, typename F, typename SMART> </div>
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname"><a class="el" href="classL4_1_1Smart__cap.html">Smart_cap</a>< T, SMART > L4::cap_cast </td>
|
|
<td>(</td>
|
|
<td class="paramtype"><a class="el" href="classL4_1_1Smart__cap.html">Smart_cap</a>< F, SMART > const &</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 noexcept">noexcept</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p><span class="tt">static_cast</span> for (smart) capabilities. </p>
|
|
<dl class="tparams"><dt>Template Parameters</dt><dd>
|
|
<table class="tparams">
|
|
<tr><td class="paramname">T</td><td>Type to cast the capability to. </td></tr>
|
|
<tr><td class="paramname">F</td><td>(implicit) Type of the passed capability. </td></tr>
|
|
<tr><td class="paramname">SMART</td><td>(implicit) Class implementing the <a class="el" href="classL4_1_1Smart__cap.html" title="Smart capability class.">Smart_cap</a> interface. </td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<dl class="params"><dt>Parameters</dt><dd>
|
|
<table class="params">
|
|
<tr><td class="paramname">c</td><td>Capability to be casted.</td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<dl class="section return"><dt>Returns</dt><dd>A smart capability with new type <span class="tt">T</span>. </dd></dl>
|
|
|
|
<p class="definition">Definition at line <a class="el" href="smart__capability_source.html#l00192">192</a> of file <a class="el" href="smart__capability_source.html">smart_capability</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="ad28da99b08996a6fe5210be548ce0fb2" name="ad28da99b08996a6fe5210be548ce0fb2"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#ad28da99b08996a6fe5210be548ce0fb2">◆ </a></span>cap_dynamic_cast()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<div class="memtemplate">
|
|
template<typename T, typename F> </div>
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname"><a class="el" href="classL4_1_1Cap.html">Cap</a>< T > L4::cap_dynamic_cast </td>
|
|
<td>(</td>
|
|
<td class="paramtype"><a class="el" href="classL4_1_1Cap.html">Cap</a>< F > const &</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 noexcept">noexcept</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p><span class="tt">dynamic_cast</span> for capabilities. </p>
|
|
<dl class="tparams"><dt>Template Parameters</dt><dd>
|
|
<table class="tparams">
|
|
<tr><td class="paramname">T</td><td>The target type of the capability. </td></tr>
|
|
<tr><td class="paramname">F</td><td>The source type (is usually implicitly set). </td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<dl class="params"><dt>Parameters</dt><dd>
|
|
<table class="params">
|
|
<tr><td class="paramname">c</td><td>The source capability that shall be casted.</td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<dl class="retval"><dt>Return values</dt><dd>
|
|
<table class="retval">
|
|
<tr><td class="paramname"><a class="el" href="classL4_1_1Cap.html" title="C++ interface for capabilities.">Cap<T></a></td><td>Capability of target interface <span class="tt">T</span>. </td></tr>
|
|
<tr><td class="paramname">L4_INVALID_CAP</td><td><span class="tt">c</span> does not support the target interface <span class="tt">T</span> or the <a class="el" href="classL4_1_1Meta.html" title="Meta interface that shall be implemented by each L4Re object and gives access to the dynamic type inf...">L4::Meta</a> interface.</td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<p>The use of this cast operator is similar to the <span class="tt">dynamic_cast<>()</span> for C++ pointers. It also induces overhead, because it uses the meta interface (<a class="el" href="classL4_1_1Meta.html" title="Meta interface that shall be implemented by each L4Re object and gives access to the dynamic type inf...">L4::Meta</a>) to do runtime type checking.</p>
|
|
<p>Example code: </p><pre class="fragment">L4::Cap<L4::Kobject> obj = ... ;
|
|
L4::Cap<L4::Icu> icu = L4::cap_dynamic_cast<L4::Icu>(obj);
|
|
</pre>
|
|
<p class="definition">Definition at line <a class="el" href="capability_source.html#l00116">116</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#l00447">cap_reinterpret_cast()</a>, <a class="el" href="capability_8h_source.html#l00042">L4::Cap_base::Invalid</a>, <a class="el" href="____typeinfo_8h_source.html#l00682">kobject_typeid()</a>, and <a class="el" href="l4_2sys_2ipc_8h_source.html#l00646">l4_error()</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 call 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="namespaceL4_ad28da99b08996a6fe5210be548ce0fb2_cgraph.svg" width="612" height="135"><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="a8ee8c8ffde27b74b01d75a03e4f4808d" name="a8ee8c8ffde27b74b01d75a03e4f4808d"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a8ee8c8ffde27b74b01d75a03e4f4808d">◆ </a></span>cap_reinterpret_cast() <span class="overload">[1/2]</span></h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<div class="memtemplate">
|
|
template<typename T, typename F> </div>
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname"><a class="el" href="classL4_1_1Cap.html">Cap</a>< T > L4::cap_reinterpret_cast </td>
|
|
<td>(</td>
|
|
<td class="paramtype"><a class="el" href="classL4_1_1Cap.html">Cap</a>< F > const &</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 noexcept">noexcept</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>reinterpret_cast for capabilities. </p>
|
|
<dl class="tparams"><dt>Template Parameters</dt><dd>
|
|
<table class="tparams">
|
|
<tr><td class="paramname">T</td><td>The target type of the capability </td></tr>
|
|
<tr><td class="paramname">F</td><td>The source type (and is usually implicitly set) </td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<dl class="params"><dt>Parameters</dt><dd>
|
|
<table class="params">
|
|
<tr><td class="paramname">c</td><td>The source capability that shall be casted </td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<dl class="section return"><dt>Returns</dt><dd>A capability typed to the interface <span class="tt">T</span>.</dd></dl>
|
|
<p>The use of this cast operator is similar to the <span class="tt">reinterpret_cast<>()</span> for C++ pointers. It does not do any type checking or type adjustment.</p>
|
|
<p>Example code: </p><pre class="fragment">L4::Cap<L4::Kobject> obj = ... ;
|
|
L4::Cap<L4::Icu> icu = L4::cap_reinterpret_cast<L4::Icu>(obj);
|
|
</pre>
|
|
<p class="definition">Definition at line <a class="el" href="capability_8h_source.html#l00447">447</a> of file <a class="el" href="capability_8h_source.html">capability.h</a>.</p>
|
|
|
|
<p class="reference">Referenced by <a class="el" href="capability_source.html#l00116">cap_dynamic_cast()</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="namespaceL4_a8ee8c8ffde27b74b01d75a03e4f4808d_icgraph.svg" width="403" 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="ae0eb584f2c7907561ddd46023281a83f" name="ae0eb584f2c7907561ddd46023281a83f"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#ae0eb584f2c7907561ddd46023281a83f">◆ </a></span>cap_reinterpret_cast() <span class="overload">[2/2]</span></h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<div class="memtemplate">
|
|
template<typename T, typename F, typename SMART> </div>
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname"><a class="el" href="classL4_1_1Smart__cap.html">Smart_cap</a>< T, SMART > L4::cap_reinterpret_cast </td>
|
|
<td>(</td>
|
|
<td class="paramtype"><a class="el" href="classL4_1_1Smart__cap.html">Smart_cap</a>< F, SMART > const &</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 noexcept">noexcept</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p><span class="tt">reinterpret_cast</span> for (smart) capabilities. </p>
|
|
<dl class="tparams"><dt>Template Parameters</dt><dd>
|
|
<table class="tparams">
|
|
<tr><td class="paramname">T</td><td>Type to cast the capability to. </td></tr>
|
|
<tr><td class="paramname">F</td><td>(implicit) Type of the passed capability. </td></tr>
|
|
<tr><td class="paramname">SMART</td><td>(implicit) Class implementing the <a class="el" href="classL4_1_1Smart__cap.html" title="Smart capability class.">Smart_cap</a> interface. </td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<dl class="params"><dt>Parameters</dt><dd>
|
|
<table class="params">
|
|
<tr><td class="paramname">c</td><td>Capability to be casted.</td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<dl class="section return"><dt>Returns</dt><dd>A smart capability with new type <span class="tt">T</span>. </dd></dl>
|
|
|
|
<p class="definition">Definition at line <a class="el" href="smart__capability_source.html#l00211">211</a> of file <a class="el" href="smart__capability_source.html">smart_capability</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a92c0d3febc3cd6b35aa072d1bf2d9d11" name="a92c0d3febc3cd6b35aa072d1bf2d9d11"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a92c0d3febc3cd6b35aa072d1bf2d9d11">◆ </a></span>round_order()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<div class="memtemplate">
|
|
template<typename T> </div>
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">T L4::round_order </td>
|
|
<td>(</td>
|
|
<td class="paramtype">T</td> <td class="paramname"><span class="paramname"><em>val</em></span>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">unsigned char</td> <td class="paramname"><span class="paramname"><em>order</em></span> )</td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel constexpr">constexpr</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Round a value up so the given number of lsb is zero. </p>
|
|
<dl class="tparams"><dt>Template Parameters</dt><dd>
|
|
<table class="tparams">
|
|
<tr><td class="paramname">T</td><td>The type of the value (shall be some integral type. </td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<dl class="params"><dt>Parameters</dt><dd>
|
|
<table class="params">
|
|
<tr><td class="paramname">val</td><td>The value to rund up to the next multiple of 2^order. </td></tr>
|
|
<tr><td class="paramname">order</td><td>order (2^order) to round up to. </td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<dl class="section return"><dt>Returns</dt><dd>val rounded up to the next 2^order. </dd></dl>
|
|
|
|
<p class="definition">Definition at line <a class="el" href="sys_2cxx_2consts_source.html#l00032">32</a> of file <a class="el" href="sys_2cxx_2consts_source.html">consts</a>.</p>
|
|
|
|
<p class="reference">Referenced by <a class="el" href="dataspace__impl_8h_source.html#l00045">L4Re::Dataspace::map_region()</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 caller 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="namespaceL4_a92c0d3febc3cd6b35aa072d1bf2d9d11_icgraph.svg" width="350" height="51"><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="a9e6e01651b5cc9d14d8436c6d5d46536" name="a9e6e01651b5cc9d14d8436c6d5d46536"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a9e6e01651b5cc9d14d8436c6d5d46536">◆ </a></span>trunc_order()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<div class="memtemplate">
|
|
template<typename T> </div>
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">T L4::trunc_order </td>
|
|
<td>(</td>
|
|
<td class="paramtype">T</td> <td class="paramname"><span class="paramname"><em>val</em></span>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">unsigned char</td> <td class="paramname"><span class="paramname"><em>order</em></span> )</td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel constexpr">constexpr</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Round a value down so the given number of lsb is zero. </p>
|
|
<dl class="tparams"><dt>Template Parameters</dt><dd>
|
|
<table class="tparams">
|
|
<tr><td class="paramname">T</td><td>The type of the value (shall be some integral type. </td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<dl class="params"><dt>Parameters</dt><dd>
|
|
<table class="params">
|
|
<tr><td class="paramname">val</td><td>The value where the given lsb shall be masked. </td></tr>
|
|
<tr><td class="paramname">order</td><td>the number of least significant bits (lsb) to mask. </td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<dl class="section return"><dt>Returns</dt><dd>val with order lsb masked to zero. </dd></dl>
|
|
|
|
<p class="definition">Definition at line <a class="el" href="sys_2cxx_2consts_source.html#l00018">18</a> of file <a class="el" href="sys_2cxx_2consts_source.html">consts</a>.</p>
|
|
|
|
<p class="reference">Referenced by <a class="el" href="dataspace__impl_8h_source.html#l00045">L4Re::Dataspace::map_region()</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="namespaceL4_a9e6e01651b5cc9d14d8436c6d5d46536_icgraph.svg" width="346" height="51"><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="navelem"><a href="namespaceL4.html">L4</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>
|