573 lines
36 KiB
HTML
573 lines
36 KiB
HTML
<!-- HTML header for doxygen 1.9.1-->
|
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
|
<head>
|
|
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
|
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
|
|
<meta name="generator" content="Doxygen 1.15.0"/>
|
|
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
|
<title>L4Re Operating System Framework: l4/sys/cxx/ipc_iface File 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('ipc__iface.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">ipc_iface File Reference</div></div>
|
|
</div><!--header-->
|
|
<div class="contents">
|
|
|
|
<p>Interface Definition Language.
|
|
<a href="#details">More...</a></p>
|
|
<div class="textblock"><code>#include <l4/sys/cxx/ipc_basics></code><br />
|
|
<code>#include <<a class="el" href="ipc__types_source.html">l4/sys/cxx/ipc_types</a>></code><br />
|
|
<code>#include <<a class="el" href="____typeinfo_8h_source.html">l4/sys/__typeinfo.h</a>></code><br />
|
|
</div><div class="textblock"><div id="dynsection-0" onclick="return dynsection.toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;"><span class="dynarrow"><span class="arrowhead closed"></span></span>Include dependency graph for ipc_iface:</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="ipc__iface__incl.svg" width="648" height="696"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div>
|
|
</div>
|
|
</div><div class="textblock"><div id="dynsection-1" onclick="return dynsection.toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;"><span class="dynarrow"><span class="arrowhead closed"></span></span>This graph shows which files directly or indirectly include this file:</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="ipc__iface__dep__incl.svg" width="5686" height="1151"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div>
|
|
</div>
|
|
</div>
|
|
<p><a href="ipc__iface_source.html">Go to the source code of this file.</a></p>
|
|
<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:L4_3A_3AIpc_3A_3ACall" id="r_L4_3A_3AIpc_3A_3ACall"><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="structL4_1_1Ipc_1_1Call.html">L4::Ipc::Call</a></td></tr>
|
|
<tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">RPC attribute for a standard RPC call. <a href="structL4_1_1Ipc_1_1Call.html#details">More...</a><br /></td></tr>
|
|
<tr class="memitem:L4_3A_3AIpc_3A_3ACall_5Fzero_5Fsend_5Ftimeout" id="r_L4_3A_3AIpc_3A_3ACall_5Fzero_5Fsend_5Ftimeout"><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="structL4_1_1Ipc_1_1Call__zero__send__timeout.html">L4::Ipc::Call_zero_send_timeout</a></td></tr>
|
|
<tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">RPC attribute for an RPC call, with zero send timeout. <a href="structL4_1_1Ipc_1_1Call__zero__send__timeout.html#details">More...</a><br /></td></tr>
|
|
<tr class="memitem:L4_3A_3AIpc_3A_3ACall_5Ft_3C_20RIGHTS_20_3E" id="r_L4_3A_3AIpc_3A_3ACall_5Ft_3C_20RIGHTS_20_3E"><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="structL4_1_1Ipc_1_1Call__t.html">L4::Ipc::Call_t< RIGHTS ></a></td></tr>
|
|
<tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">RPC attribute for an RPC call with required rights. <a href="structL4_1_1Ipc_1_1Call__t.html#details">More...</a><br /></td></tr>
|
|
<tr class="memitem:L4_3A_3AIpc_3A_3ASend_5Fonly" id="r_L4_3A_3AIpc_3A_3ASend_5Fonly"><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="structL4_1_1Ipc_1_1Send__only.html">L4::Ipc::Send_only</a></td></tr>
|
|
<tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">RPC attribute for a send-only RPC. <a href="structL4_1_1Ipc_1_1Send__only.html#details">More...</a><br /></td></tr>
|
|
</table><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:L4" id="r_L4"><td class="memItemLeft" align="right" valign="top">namespace  </td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceL4.html">L4</a></td></tr>
|
|
<tr class="memdesc:namespaceL4"><td class="mdescLeft"> </td><td class="mdescRight"><a class="el" href="namespaceL4.html" title="L4 low-level kernel interface.">L4</a> low-level kernel interface. <br /></td></tr>
|
|
<tr class="memitem:L4_3A_3AIpc" id="r_L4_3A_3AIpc"><td class="memItemLeft" align="right" valign="top">namespace  </td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceL4_1_1Ipc.html">L4::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:L4_3A_3AIpc_3A_3AMsg" id="r_L4_3A_3AIpc_3A_3AMsg"><td class="memItemLeft" align="right" valign="top">namespace  </td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceL4_1_1Ipc_1_1Msg.html">L4::Ipc::Msg</a></td></tr>
|
|
<tr class="memdesc:namespaceL4_1_1Ipc_1_1Msg"><td class="mdescLeft"> </td><td class="mdescRight">IPC Message related functionality. <br /></td></tr>
|
|
</table><table class="memberdecls">
|
|
<tr class="heading"><td colspan="2"><h2 id="header-define-members" class="groupheader"><a id="define-members" name="define-members"></a>
|
|
Macros</h2></td></tr>
|
|
<tr class="memitem:a7bc5bdbe269ef0598c166ed1dd923549" id="r_a7bc5bdbe269ef0598c166ed1dd923549"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="#a7bc5bdbe269ef0598c166ed1dd923549">L4_INLINE_RPC_NF</a>(res, name, args...)</td></tr>
|
|
<tr class="memdesc:a7bc5bdbe269ef0598c166ed1dd923549"><td class="mdescLeft"> </td><td class="mdescRight">Define an inline RPC call type (the type only, no callable). <br /></td></tr>
|
|
<tr class="memitem:a9c231340e92b2868f1b85b302fb2b159" id="r_a9c231340e92b2868f1b85b302fb2b159"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="#a9c231340e92b2868f1b85b302fb2b159">L4_INLINE_RPC_NF_OP</a>(op, res, name, args...)</td></tr>
|
|
<tr class="memdesc:a9c231340e92b2868f1b85b302fb2b159"><td class="mdescLeft"> </td><td class="mdescRight">Define an inline RPC call type with specific opcode (the type only, no callable). <br /></td></tr>
|
|
<tr class="memitem:a5772eb61b611f8f17bbc89e02e534ca1" id="r_a5772eb61b611f8f17bbc89e02e534ca1"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="#a5772eb61b611f8f17bbc89e02e534ca1">L4_INLINE_RPC</a>(res, name, args, attr...)</td></tr>
|
|
<tr class="memdesc:a5772eb61b611f8f17bbc89e02e534ca1"><td class="mdescLeft"> </td><td class="mdescRight">Define an inline RPC call (type and callable). <br /></td></tr>
|
|
<tr class="memitem:afd77fe126e97c4d046e3842d948ec91d" id="r_afd77fe126e97c4d046e3842d948ec91d"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="#afd77fe126e97c4d046e3842d948ec91d">L4_INLINE_RPC_OP</a>(op, res, name, args, attr...)</td></tr>
|
|
<tr class="memdesc:afd77fe126e97c4d046e3842d948ec91d"><td class="mdescLeft"> </td><td class="mdescRight">Define an inline RPC call with specific opcode (type and callable). <br /></td></tr>
|
|
<tr class="memitem:ada755c1db9f58471fc483ccfbed1f518" id="r_ada755c1db9f58471fc483ccfbed1f518"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="#ada755c1db9f58471fc483ccfbed1f518">L4_RPC_NF</a>(res, name, args...)</td></tr>
|
|
<tr class="memdesc:ada755c1db9f58471fc483ccfbed1f518"><td class="mdescLeft"> </td><td class="mdescRight">Define an RPC call type (the type only, no callable). <br /></td></tr>
|
|
<tr class="memitem:aaf74b7e287f17aa9629ac694bbe6bc39" id="r_aaf74b7e287f17aa9629ac694bbe6bc39"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="#aaf74b7e287f17aa9629ac694bbe6bc39">L4_RPC_NF_OP</a>(op, res, name, args...)</td></tr>
|
|
<tr class="memdesc:aaf74b7e287f17aa9629ac694bbe6bc39"><td class="mdescLeft"> </td><td class="mdescRight">Define an RPC call type with specific opcode (the type only, no callable). <br /></td></tr>
|
|
<tr class="memitem:a5e5588cacb2659f18f48ae49c2beb800" id="r_a5e5588cacb2659f18f48ae49c2beb800"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="#a5e5588cacb2659f18f48ae49c2beb800">L4_RPC</a>(res, name, args, attr...)</td></tr>
|
|
<tr class="memdesc:a5e5588cacb2659f18f48ae49c2beb800"><td class="mdescLeft"> </td><td class="mdescRight">Define an RPC call (type and callable). <br /></td></tr>
|
|
<tr class="memitem:a0264d26151de8ed0903379a035c223bb" id="r_a0264d26151de8ed0903379a035c223bb"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="#a0264d26151de8ed0903379a035c223bb">L4_RPC_OP</a>(op, res, name, args, attr...)</td></tr>
|
|
<tr class="memdesc:a0264d26151de8ed0903379a035c223bb"><td class="mdescLeft"> </td><td class="mdescRight">Define an RPC call with specific opcode (type and callable). <br /></td></tr>
|
|
</table>
|
|
<a name="details" id="details"></a><h2 id="header-details" class="groupheader">Detailed Description</h2>
|
|
<div class="textblock"><p>Interface Definition Language. </p>
|
|
<dl class="section see"><dt>See also</dt><dd><a class="el" href="#a5e5588cacb2659f18f48ae49c2beb800" title="Define an RPC call (type and callable).">L4_RPC</a>, <a class="el" href="#a5772eb61b611f8f17bbc89e02e534ca1" title="Define an inline RPC call (type and callable).">L4_INLINE_RPC</a>, <a class="el" href="structL4_1_1Ipc_1_1Call.html" title="RPC attribute for a standard RPC call.">L4::Ipc::Call</a> <a class="el" href="structL4_1_1Ipc_1_1Send__only.html" title="RPC attribute for a send-only RPC.">L4::Ipc::Send_only</a>, L4::Ipc::Msg::Rpc_call, L4::Ipc::Msg::Rpc_inline_call </dd></dl>
|
|
|
|
<p class="definition">Definition in file <a class="el" href="ipc__iface_source.html">ipc_iface</a>.</p>
|
|
</div><a name="doc-define-members" id="doc-define-members"></a><h2 id="header-doc-define-members" class="groupheader">Macro Definition Documentation</h2>
|
|
<a id="a5772eb61b611f8f17bbc89e02e534ca1" name="a5772eb61b611f8f17bbc89e02e534ca1"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a5772eb61b611f8f17bbc89e02e534ca1">◆ </a></span>L4_INLINE_RPC</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">#define L4_INLINE_RPC</td>
|
|
<td>(</td>
|
|
<td class="paramtype"></td> <td class="paramname"><span class="paramname"><em>res</em></span>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype"></td> <td class="paramname"><span class="paramname"><em>name</em></span>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype"></td> <td class="paramname"><span class="paramname"><em>args</em></span>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype"></td> <td class="paramname"><span class="paramname"><em>attr...</em></span> )</td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
<b>Value:</b><div class="fragment"><div class="line">res name args</div>
|
|
</div><!-- fragment -->
|
|
<p>Define an inline RPC call (type and callable). </p>
|
|
<dl class="params"><dt>Parameters</dt><dd>
|
|
<table class="params">
|
|
<tr><td class="paramname">res</td><td>The result type of the RPC call </td></tr>
|
|
<tr><td class="paramname">name</td><td>The name of the function (<span class="tt">name</span>_t is used for the type.) </td></tr>
|
|
<tr><td class="paramname">args</td><td>The argument list of the RPC function. </td></tr>
|
|
<tr><td class="paramname">attr</td><td>Optional RPC attributes (<a class="el" href="structL4_1_1Ipc_1_1Call.html" title="RPC attribute for a standard RPC call.">L4::Ipc::Call</a>, <a class="el" href="structL4_1_1Ipc_1_1Call__t.html" title="RPC attribute for an RPC call with required rights.">L4::Ipc::Call_t</a> etc.). </td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<dl class="section examples"><dt>Examples</dt><dd><a class="el" href="examples_2clntsrv_2src_2shared_8h-example.html#a1">examples/clntsrv/src/shared.h</a>.</dd>
|
|
</dl>
|
|
|
|
<p class="definition">Definition at line <a class="el" href="ipc__iface_source.html#l00482">482</a> of file <a class="el" href="ipc__iface_source.html">ipc_iface</a>.</p>
|
|
|
|
<p class="reference">Referenced by <a class="el" href="classL4Re_1_1Mem__alloc.html#a691e583da7fbfd8d0aaa13db3b2919c3">L4Re::Mem_alloc::info()</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a7bc5bdbe269ef0598c166ed1dd923549" name="a7bc5bdbe269ef0598c166ed1dd923549"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a7bc5bdbe269ef0598c166ed1dd923549">◆ </a></span>L4_INLINE_RPC_NF</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">#define L4_INLINE_RPC_NF</td>
|
|
<td>(</td>
|
|
<td class="paramtype"></td> <td class="paramname"><span class="paramname"><em>res</em></span>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype"></td> <td class="paramname"><span class="paramname"><em>name</em></span>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype"></td> <td class="paramname"><span class="paramname"><em>args...</em></span> )</td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
<b>Value:</b><div class="fragment"><div class="line"> <span class="keyword">struct </span>name##_t : L4::Ipc::Msg::Rpc_inline_call<name##_t, Class, res args> \</div>
|
|
<div class="line"> { \</div>
|
|
<div class="line"> <span class="keyword">typedef</span> L4::Ipc::Msg::Rpc_inline_call<name##_t, Class, res args> type; \</div>
|
|
<div class="line"> L4_INLINE_RPC_SRV_FORWARD(name); \</div>
|
|
<div class="line"> }</div>
|
|
</div><!-- fragment -->
|
|
<p>Define an inline RPC call type (the type only, no callable). </p>
|
|
<dl class="params"><dt>Parameters</dt><dd>
|
|
<table class="params">
|
|
<tr><td class="paramname">res</td><td>The result type of the RPC call </td></tr>
|
|
<tr><td class="paramname">name</td><td>The name of the function (<span class="tt">name</span>_t is used for the type.) </td></tr>
|
|
<tr><td class="paramname">args</td><td>The argument list of the RPC function, and RPC attributes (<a class="el" href="structL4_1_1Ipc_1_1Call.html" title="RPC attribute for a standard RPC call.">L4::Ipc::Call</a>, <a class="el" href="structL4_1_1Ipc_1_1Call__t.html" title="RPC attribute for an RPC call with required rights.">L4::Ipc::Call_t</a> etc.).</td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<p>Stubs generated by this macro can be used explicitly in custom wrapper methods that need to use the underlying RPC code and provide some higher level abstraction, for example with default arguments or extra argument conversion. </p>
|
|
|
|
<p class="definition">Definition at line <a class="el" href="ipc__iface_source.html#l00453">453</a> of file <a class="el" href="ipc__iface_source.html">ipc_iface</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a9c231340e92b2868f1b85b302fb2b159" name="a9c231340e92b2868f1b85b302fb2b159"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a9c231340e92b2868f1b85b302fb2b159">◆ </a></span>L4_INLINE_RPC_NF_OP</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">#define L4_INLINE_RPC_NF_OP</td>
|
|
<td>(</td>
|
|
<td class="paramtype"></td> <td class="paramname"><span class="paramname"><em>op</em></span>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype"></td> <td class="paramname"><span class="paramname"><em>res</em></span>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype"></td> <td class="paramname"><span class="paramname"><em>name</em></span>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype"></td> <td class="paramname"><span class="paramname"><em>args...</em></span> )</td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
<b>Value:</b><div class="fragment"><div class="line"> <span class="keyword">struct </span>name##_t : L4::Ipc::Msg::Rpc_inline_call<name##_t, Class, res args> \</div>
|
|
<div class="line"> { \</div>
|
|
<div class="line"> <span class="keyword">typedef</span> L4::Ipc::Msg::Rpc_inline_call<name##_t, Class, res args> type; \</div>
|
|
<div class="line"> <span class="keyword">enum</span> { <a class="code hl_typedef" href="namespaceL4.html#a037b99ac2eb59d597e1e41c06619d487">Opcode</a> = (op) }; \</div>
|
|
<div class="line"> L4_INLINE_RPC_SRV_FORWARD(name); \</div>
|
|
<div class="line"> }</div>
|
|
<div class="ttc" id="anamespaceL4_html_a037b99ac2eb59d597e1e41c06619d487"><div class="ttname"><a href="namespaceL4.html#a037b99ac2eb59d597e1e41c06619d487">L4::Opcode</a></div><div class="ttdeci">int Opcode</div><div class="ttdoc">Data type for RPC opcodes.</div><div class="ttdef"><b>Definition</b> <a href="____typeinfo_8h_source.html#l00036">__typeinfo.h:36</a></div></div>
|
|
</div><!-- fragment -->
|
|
<p>Define an inline RPC call type with specific opcode (the type only, no callable). </p>
|
|
<dl class="params"><dt>Parameters</dt><dd>
|
|
<table class="params">
|
|
<tr><td class="paramname">op</td><td>The opcode number for this function </td></tr>
|
|
<tr><td class="paramname">res</td><td>The result type of the RPC call </td></tr>
|
|
<tr><td class="paramname">name</td><td>The name of the function (<span class="tt">name</span>_t is used for the type.) </td></tr>
|
|
<tr><td class="paramname">args</td><td>The argument list of the RPC function, and RPC attributes (<a class="el" href="structL4_1_1Ipc_1_1Call.html" title="RPC attribute for a standard RPC call.">L4::Ipc::Call</a>, <a class="el" href="structL4_1_1Ipc_1_1Call__t.html" title="RPC attribute for an RPC call with required rights.">L4::Ipc::Call_t</a> etc.).</td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<p>Stubs generated by this macro can be used explicitly in custom wrapper methods that need to use the underlying RPC code and provide some higher level abstraction, for example with default arguments or extra argument conversion. </p>
|
|
|
|
<p class="definition">Definition at line <a class="el" href="ipc__iface_source.html#l00466">466</a> of file <a class="el" href="ipc__iface_source.html">ipc_iface</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="afd77fe126e97c4d046e3842d948ec91d" name="afd77fe126e97c4d046e3842d948ec91d"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#afd77fe126e97c4d046e3842d948ec91d">◆ </a></span>L4_INLINE_RPC_OP</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">#define L4_INLINE_RPC_OP</td>
|
|
<td>(</td>
|
|
<td class="paramtype"></td> <td class="paramname"><span class="paramname"><em>op</em></span>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype"></td> <td class="paramname"><span class="paramname"><em>res</em></span>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype"></td> <td class="paramname"><span class="paramname"><em>name</em></span>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype"></td> <td class="paramname"><span class="paramname"><em>args</em></span>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype"></td> <td class="paramname"><span class="paramname"><em>attr...</em></span> )</td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
<b>Value:</b><div class="fragment"><div class="line">res name args</div>
|
|
</div><!-- fragment -->
|
|
<p>Define an inline RPC call with specific opcode (type and callable). </p>
|
|
<dl class="params"><dt>Parameters</dt><dd>
|
|
<table class="params">
|
|
<tr><td class="paramname">op</td><td>The opcode number for this function </td></tr>
|
|
<tr><td class="paramname">res</td><td>The result type of the RPC call </td></tr>
|
|
<tr><td class="paramname">name</td><td>The name of the function (<span class="tt">name</span>_t is used for the type.) </td></tr>
|
|
<tr><td class="paramname">args</td><td>The argument list of the RPC function. </td></tr>
|
|
<tr><td class="paramname">attr</td><td>Optional RPC attributes (<a class="el" href="structL4_1_1Ipc_1_1Call.html" title="RPC attribute for a standard RPC call.">L4::Ipc::Call</a>, <a class="el" href="structL4_1_1Ipc_1_1Call__t.html" title="RPC attribute for an RPC call with required rights.">L4::Ipc::Call_t</a> etc.). </td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
|
|
<p class="definition">Definition at line <a class="el" href="ipc__iface_source.html#l00497">497</a> of file <a class="el" href="ipc__iface_source.html">ipc_iface</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a5e5588cacb2659f18f48ae49c2beb800" name="a5e5588cacb2659f18f48ae49c2beb800"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a5e5588cacb2659f18f48ae49c2beb800">◆ </a></span>L4_RPC</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">#define L4_RPC</td>
|
|
<td>(</td>
|
|
<td class="paramtype"></td> <td class="paramname"><span class="paramname"><em>res</em></span>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype"></td> <td class="paramname"><span class="paramname"><em>name</em></span>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype"></td> <td class="paramname"><span class="paramname"><em>args</em></span>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype"></td> <td class="paramname"><span class="paramname"><em>attr...</em></span> )</td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
<b>Value:</b><div class="fragment"><div class="line">res name args</div>
|
|
</div><!-- fragment -->
|
|
<p>Define an RPC call (type and callable). </p>
|
|
<dl class="params"><dt>Parameters</dt><dd>
|
|
<table class="params">
|
|
<tr><td class="paramname">res</td><td>The result type of the RPC call </td></tr>
|
|
<tr><td class="paramname">name</td><td>The name of the function (<span class="tt">name</span>_t is used for the type.) </td></tr>
|
|
<tr><td class="paramname">args</td><td>The argument list of the RPC function. </td></tr>
|
|
<tr><td class="paramname">attr</td><td>Optional RPC attributes (<a class="el" href="structL4_1_1Ipc_1_1Call.html" title="RPC attribute for a standard RPC call.">L4::Ipc::Call</a>, <a class="el" href="structL4_1_1Ipc_1_1Call__t.html" title="RPC attribute for an RPC call with required rights.">L4::Ipc::Call_t</a> etc.). </td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
|
|
<p class="definition">Definition at line <a class="el" href="ipc__iface_source.html#l00541">541</a> of file <a class="el" href="ipc__iface_source.html">ipc_iface</a>.</p>
|
|
|
|
<p class="reference">Referenced by <a class="el" href="classL4Re_1_1Dataspace.html#aa67190f2465d092c35c62d432814a8b3">L4Re::Dataspace::info()</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="ada755c1db9f58471fc483ccfbed1f518" name="ada755c1db9f58471fc483ccfbed1f518"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#ada755c1db9f58471fc483ccfbed1f518">◆ </a></span>L4_RPC_NF</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">#define L4_RPC_NF</td>
|
|
<td>(</td>
|
|
<td class="paramtype"></td> <td class="paramname"><span class="paramname"><em>res</em></span>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype"></td> <td class="paramname"><span class="paramname"><em>name</em></span>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype"></td> <td class="paramname"><span class="paramname"><em>args...</em></span> )</td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
<b>Value:</b><div class="fragment"><div class="line"> <span class="keyword">struct </span>name##_t : L4::Ipc::Msg::Rpc_call<name##_t, Class, res args> \</div>
|
|
<div class="line"> { \</div>
|
|
<div class="line"> <span class="keyword">typedef</span> L4::Ipc::Msg::Rpc_call<name##_t, Class, res args> type; \</div>
|
|
<div class="line"> L4_INLINE_RPC_SRV_FORWARD(name); \</div>
|
|
<div class="line"> }</div>
|
|
</div><!-- fragment -->
|
|
<p>Define an RPC call type (the type only, no callable). </p>
|
|
<dl class="params"><dt>Parameters</dt><dd>
|
|
<table class="params">
|
|
<tr><td class="paramname">res</td><td>The result type of the RPC call </td></tr>
|
|
<tr><td class="paramname">name</td><td>The name of the function (<span class="tt">name</span>_t is used for the type.) </td></tr>
|
|
<tr><td class="paramname">args</td><td>The argument list of the RPC function, and RPC attributes (<a class="el" href="structL4_1_1Ipc_1_1Call.html" title="RPC attribute for a standard RPC call.">L4::Ipc::Call</a>, <a class="el" href="structL4_1_1Ipc_1_1Call__t.html" title="RPC attribute for an RPC call with required rights.">L4::Ipc::Call_t</a> etc.). </td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
|
|
<p class="definition">Definition at line <a class="el" href="ipc__iface_source.html#l00510">510</a> of file <a class="el" href="ipc__iface_source.html">ipc_iface</a>.</p>
|
|
|
|
<p class="reference">Referenced by <a class="el" href="classL4Re_1_1Dataspace.html#aa67190f2465d092c35c62d432814a8b3">L4Re::Dataspace::info()</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="aaf74b7e287f17aa9629ac694bbe6bc39" name="aaf74b7e287f17aa9629ac694bbe6bc39"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#aaf74b7e287f17aa9629ac694bbe6bc39">◆ </a></span>L4_RPC_NF_OP</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">#define L4_RPC_NF_OP</td>
|
|
<td>(</td>
|
|
<td class="paramtype"></td> <td class="paramname"><span class="paramname"><em>op</em></span>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype"></td> <td class="paramname"><span class="paramname"><em>res</em></span>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype"></td> <td class="paramname"><span class="paramname"><em>name</em></span>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype"></td> <td class="paramname"><span class="paramname"><em>args...</em></span> )</td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
<b>Value:</b><div class="fragment"><div class="line"> <span class="keyword">struct </span>name##_t : L4::Ipc::Msg::Rpc_call<name##_t, Class, res args> \</div>
|
|
<div class="line"> { \</div>
|
|
<div class="line"> <span class="keyword">typedef</span> L4::Ipc::Msg::Rpc_call<name##_t, Class, res args> type; \</div>
|
|
<div class="line"> <span class="keyword">enum</span> { <a class="code hl_typedef" href="namespaceL4.html#a037b99ac2eb59d597e1e41c06619d487">Opcode</a> = (op) }; \</div>
|
|
<div class="line"> L4_INLINE_RPC_SRV_FORWARD(name); \</div>
|
|
<div class="line"> }</div>
|
|
</div><!-- fragment -->
|
|
<p>Define an RPC call type with specific opcode (the type only, no callable). </p>
|
|
<dl class="params"><dt>Parameters</dt><dd>
|
|
<table class="params">
|
|
<tr><td class="paramname">op</td><td>The opcode number for this function </td></tr>
|
|
<tr><td class="paramname">res</td><td>The result type of the RPC call </td></tr>
|
|
<tr><td class="paramname">name</td><td>The name of the function (<span class="tt">name</span>_t is used for the type.) </td></tr>
|
|
<tr><td class="paramname">args</td><td>The argument list of the RPC function, and RPC attributes (<a class="el" href="structL4_1_1Ipc_1_1Call.html" title="RPC attribute for a standard RPC call.">L4::Ipc::Call</a>, <a class="el" href="structL4_1_1Ipc_1_1Call__t.html" title="RPC attribute for an RPC call with required rights.">L4::Ipc::Call_t</a> etc.). </td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
|
|
<p class="definition">Definition at line <a class="el" href="ipc__iface_source.html#l00525">525</a> of file <a class="el" href="ipc__iface_source.html">ipc_iface</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a0264d26151de8ed0903379a035c223bb" name="a0264d26151de8ed0903379a035c223bb"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a0264d26151de8ed0903379a035c223bb">◆ </a></span>L4_RPC_OP</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">#define L4_RPC_OP</td>
|
|
<td>(</td>
|
|
<td class="paramtype"></td> <td class="paramname"><span class="paramname"><em>op</em></span>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype"></td> <td class="paramname"><span class="paramname"><em>res</em></span>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype"></td> <td class="paramname"><span class="paramname"><em>name</em></span>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype"></td> <td class="paramname"><span class="paramname"><em>args</em></span>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype"></td> <td class="paramname"><span class="paramname"><em>attr...</em></span> )</td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
<b>Value:</b><div class="fragment"><div class="line">res name args</div>
|
|
</div><!-- fragment -->
|
|
<p>Define an RPC call with specific opcode (type and callable). </p>
|
|
<dl class="params"><dt>Parameters</dt><dd>
|
|
<table class="params">
|
|
<tr><td class="paramname">op</td><td>The opcode number for this function </td></tr>
|
|
<tr><td class="paramname">res</td><td>The result type of the RPC call </td></tr>
|
|
<tr><td class="paramname">name</td><td>The name of the function (<span class="tt">name</span>_t is used for the type.) </td></tr>
|
|
<tr><td class="paramname">args</td><td>The argument list of the RPC function. </td></tr>
|
|
<tr><td class="paramname">attr</td><td>Optional RPC attributes (<a class="el" href="structL4_1_1Ipc_1_1Call.html" title="RPC attribute for a standard RPC call.">L4::Ipc::Call</a>, <a class="el" href="structL4_1_1Ipc_1_1Call__t.html" title="RPC attribute for an RPC call with required rights.">L4::Ipc::Call_t</a> etc.). </td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
|
|
<p class="definition">Definition at line <a class="el" href="ipc__iface_source.html#l00556">556</a> of file <a class="el" href="ipc__iface_source.html">ipc_iface</a>.</p>
|
|
|
|
</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"><b>l4</b></li><li class="navelem"><b>sys</b></li><li class="navelem"><b>cxx</b></li><li class="navelem"><a href="ipc__iface.html">ipc_iface</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>
|