l4re-base-25.08.0

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

View File

@@ -0,0 +1,569 @@
<!-- 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::Vcon Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript" src="cookie.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="doxygen-awesome.css" rel="stylesheet" type="text/css"/>
<link href="l4re-awesome.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="L4Re_rgb_logo_quer_hg_h55.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">L4Re Operating System Framework
</div>
<div id="projectbrief">Interface and Usage Documentation</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.15.0 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search/",'.html');
</script>
<script type="text/javascript">
$(function() { codefold.init(); });
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
initMenu('',true,false,'search.php','Search',true);
$(function() { init_search(); });
});
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
$(function(){initNavTree('classL4_1_1Vcon.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::Vcon Class Reference</div></div>
</div><!--header-->
<div class="contents">
<p>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="#details">More...</a></p>
<p><code>#include &lt;<a class="el" href="vcon_source.html">vcon</a>&gt;</code></p>
<div id="dynsection-0" onclick="return dynsection.toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;"><span class="dynarrow"><span class="arrowhead closed"></span></span>Inheritance diagram for L4::Vcon:</div>
<div id="dynsection-0-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-0-content" class="dyncontent" style="display:none;">
<div class="center"><iframe scrolling="no" loading="lazy" frameborder="0" src="classL4_1_1Vcon__inherit__graph.svg" width="435" height="1255"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div>
</div>
<div id="dynsection-1" onclick="return dynsection.toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;"><span class="dynarrow"><span class="arrowhead closed"></span></span>Collaboration diagram for L4::Vcon:</div>
<div id="dynsection-1-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-1-content" class="dyncontent" style="display:none;">
<div class="center"><iframe scrolling="no" loading="lazy" frameborder="0" src="classL4_1_1Vcon__coll__graph.svg" width="435" height="956"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div>
</div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 id="header-pub-methods" class="groupheader"><a id="pub-methods" name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:af400882103c8601a4b0750985c57d7c4" id="r_af400882103c8601a4b0750985c57d7c4"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structl4__msgtag__t.html">l4_msgtag_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#af400882103c8601a4b0750985c57d7c4">send</a> (char const *buf, unsigned size, <a class="el" href="group__l4__utcb__api.html#ga89be8a86d11c1d532b636cc2df1330fb">l4_utcb_t</a> *utcb=<a class="el" href="group__l4__utcb__api.html#gadc099b4a59e1d99638c72c11a8c8b644">l4_utcb</a>()) const noexcept</td></tr>
<tr class="memdesc:af400882103c8601a4b0750985c57d7c4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Send data to <span class="tt">this</span> virtual console. <br /></td></tr>
<tr class="memitem:a83407df2f5b674126d33505d73f5d34b" id="r_a83407df2f5b674126d33505d73f5d34b"><td class="memItemLeft" align="right" valign="top">long&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a83407df2f5b674126d33505d73f5d34b">write</a> (char const *buf, unsigned size, <a class="el" href="group__l4__utcb__api.html#ga89be8a86d11c1d532b636cc2df1330fb">l4_utcb_t</a> *utcb=<a class="el" href="group__l4__utcb__api.html#gadc099b4a59e1d99638c72c11a8c8b644">l4_utcb</a>()) const noexcept</td></tr>
<tr class="memdesc:a83407df2f5b674126d33505d73f5d34b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Write data to <span class="tt">this</span> virtual console. <br /></td></tr>
<tr class="memitem:ac53da09bc3a23b5fd654def074175046" id="r_ac53da09bc3a23b5fd654def074175046"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ac53da09bc3a23b5fd654def074175046">read</a> (char *buf, unsigned size, <a class="el" href="group__l4__utcb__api.html#ga89be8a86d11c1d532b636cc2df1330fb">l4_utcb_t</a> *utcb=<a class="el" href="group__l4__utcb__api.html#gadc099b4a59e1d99638c72c11a8c8b644">l4_utcb</a>()) const noexcept</td></tr>
<tr class="memdesc:ac53da09bc3a23b5fd654def074175046"><td class="mdescLeft">&#160;</td><td class="mdescRight">Read data from <span class="tt">this</span> virtual console. <br /></td></tr>
<tr class="memitem:a750b4169e54d31be9ff634a05fecf2ae" id="r_a750b4169e54d31be9ff634a05fecf2ae"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a750b4169e54d31be9ff634a05fecf2ae">read_with_flags</a> (char *buf, unsigned size, <a class="el" href="group__l4__utcb__api.html#ga89be8a86d11c1d532b636cc2df1330fb">l4_utcb_t</a> *utcb=<a class="el" href="group__l4__utcb__api.html#gadc099b4a59e1d99638c72c11a8c8b644">l4_utcb</a>()) const noexcept</td></tr>
<tr class="memdesc:a750b4169e54d31be9ff634a05fecf2ae"><td class="mdescLeft">&#160;</td><td class="mdescRight">Read data from <span class="tt">this</span> virtual console which also returns flags. <br /></td></tr>
<tr class="memitem:a95422b151c12b5e20dda868972516f1a" id="r_a95422b151c12b5e20dda868972516f1a"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structl4__msgtag__t.html">l4_msgtag_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a95422b151c12b5e20dda868972516f1a">set_attr</a> (<a class="el" href="structl4__vcon__attr__t.html">l4_vcon_attr_t</a> const *attr, <a class="el" href="group__l4__utcb__api.html#ga89be8a86d11c1d532b636cc2df1330fb">l4_utcb_t</a> *utcb=<a class="el" href="group__l4__utcb__api.html#gadc099b4a59e1d99638c72c11a8c8b644">l4_utcb</a>()) const noexcept</td></tr>
<tr class="memdesc:a95422b151c12b5e20dda868972516f1a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the attributes of <span class="tt">this</span> virtual console. <br /></td></tr>
<tr class="memitem:a367997ce7608f9fd170828bba6d025ed" id="r_a367997ce7608f9fd170828bba6d025ed"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structl4__msgtag__t.html">l4_msgtag_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a367997ce7608f9fd170828bba6d025ed">get_attr</a> (<a class="el" href="structl4__vcon__attr__t.html">l4_vcon_attr_t</a> *attr, <a class="el" href="group__l4__utcb__api.html#ga89be8a86d11c1d532b636cc2df1330fb">l4_utcb_t</a> *utcb=<a class="el" href="group__l4__utcb__api.html#gadc099b4a59e1d99638c72c11a8c8b644">l4_utcb</a>()) const noexcept</td></tr>
<tr class="memdesc:a367997ce7608f9fd170828bba6d025ed"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get attributes of <span class="tt">this</span> virtual console. <br /></td></tr>
<tr class="inherit_header pub_methods_classL4_1_1Icu"><td colspan="2" onclick="javascript:dynsection.toggleInherit('pub_methods_classL4_1_1Icu')"><span class="dynarrow"><span class="arrowhead closed"></span></span>Public Member Functions inherited from <a class="el" href="classL4_1_1Icu.html">L4::Icu</a></td></tr>
<tr class="memitem:ada7541da586ea09b925b4d90d7dc357e inherit pub_methods_classL4_1_1Icu" id="r_ada7541da586ea09b925b4d90d7dc357e"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structl4__msgtag__t.html">l4_msgtag_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classL4_1_1Icu.html#ada7541da586ea09b925b4d90d7dc357e">bind</a> (unsigned irqnum, <a class="el" href="classL4_1_1Cap.html">L4::Cap</a>&lt; <a class="el" href="structL4_1_1Triggerable.html">Triggerable</a> &gt; irq, <a class="el" href="group__l4__utcb__api.html#ga89be8a86d11c1d532b636cc2df1330fb">l4_utcb_t</a> *utcb=<a class="el" href="group__l4__utcb__api.html#gadc099b4a59e1d99638c72c11a8c8b644">l4_utcb</a>()) noexcept</td></tr>
<tr class="memdesc:ada7541da586ea09b925b4d90d7dc357e inherit pub_methods_classL4_1_1Icu"><td class="mdescLeft">&#160;</td><td class="mdescRight">Bind an interrupt line of an interrupt controller to an interrupt object. <br /></td></tr>
<tr class="memitem:aa34e56cdac798b1949fcc00553386b8b inherit pub_methods_classL4_1_1Icu" id="r_aa34e56cdac798b1949fcc00553386b8b"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structl4__msgtag__t.html">l4_msgtag_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classL4_1_1Icu.html#aa34e56cdac798b1949fcc00553386b8b">unbind</a> (unsigned irqnum, <a class="el" href="classL4_1_1Cap.html">L4::Cap</a>&lt; <a class="el" href="structL4_1_1Triggerable.html">Triggerable</a> &gt; irq, <a class="el" href="group__l4__utcb__api.html#ga89be8a86d11c1d532b636cc2df1330fb">l4_utcb_t</a> *utcb=<a class="el" href="group__l4__utcb__api.html#gadc099b4a59e1d99638c72c11a8c8b644">l4_utcb</a>()) noexcept</td></tr>
<tr class="memdesc:aa34e56cdac798b1949fcc00553386b8b inherit pub_methods_classL4_1_1Icu"><td class="mdescLeft">&#160;</td><td class="mdescRight">Remove binding of an interrupt line from the interrupt controller object. <br /></td></tr>
<tr class="memitem:a356cfa88076c92e121ab7760d50d5f18 inherit pub_methods_classL4_1_1Icu" id="r_a356cfa88076c92e121ab7760d50d5f18"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structl4__msgtag__t.html">l4_msgtag_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classL4_1_1Icu.html#a356cfa88076c92e121ab7760d50d5f18">info</a> (<a class="el" href="structl4__icu__info__t.html">l4_icu_info_t</a> *info, <a class="el" href="group__l4__utcb__api.html#ga89be8a86d11c1d532b636cc2df1330fb">l4_utcb_t</a> *utcb=<a class="el" href="group__l4__utcb__api.html#gadc099b4a59e1d99638c72c11a8c8b644">l4_utcb</a>()) noexcept</td></tr>
<tr class="memdesc:a356cfa88076c92e121ab7760d50d5f18 inherit pub_methods_classL4_1_1Icu"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get information about the ICU features. <br /></td></tr>
<tr class="memitem:a16857d27edd9799b0f2da2f244968463 inherit pub_methods_classL4_1_1Icu" id="r_a16857d27edd9799b0f2da2f244968463"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structl4__msgtag__t.html">l4_msgtag_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classL4_1_1Icu.html#a16857d27edd9799b0f2da2f244968463">msi_info</a> (<a class="el" href="group__l4__basic__types.html#ga1c2c4b333f75b1d05b59855910f2b9cb">l4_umword_t</a> irqnum, <a class="el" href="group__l4__basic__types.html#gaf3331c485014bd12a9e4f9d27a55e689">l4_uint64_t</a> source, <a class="el" href="structl4__icu__msi__info__t.html">l4_icu_msi_info_t</a> *msi_info)</td></tr>
<tr class="memdesc:a16857d27edd9799b0f2da2f244968463 inherit pub_methods_classL4_1_1Icu"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get MSI info about IRQ. <br /></td></tr>
<tr class="memitem:ab58aa015a5216a0dece5d85089b42aaa inherit pub_methods_classL4_1_1Icu" id="r_ab58aa015a5216a0dece5d85089b42aaa"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structl4__msgtag__t.html">l4_msgtag_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classL4_1_1Icu.html#ab58aa015a5216a0dece5d85089b42aaa">mask</a> (unsigned irqnum, <a class="el" href="group__l4__basic__types.html#ga1c2c4b333f75b1d05b59855910f2b9cb">l4_umword_t</a> *label=0, <a class="el" href="unionl4__timeout__t.html">l4_timeout_t</a> to=<a class="el" href="group__l4__timeout__api.html#gaf01c5e1475efc4f33bc7d1985f7320d3">L4_IPC_NEVER</a>, <a class="el" href="group__l4__utcb__api.html#ga89be8a86d11c1d532b636cc2df1330fb">l4_utcb_t</a> *utcb=<a class="el" href="group__l4__utcb__api.html#gadc099b4a59e1d99638c72c11a8c8b644">l4_utcb</a>()) noexcept</td></tr>
<tr class="memdesc:ab58aa015a5216a0dece5d85089b42aaa inherit pub_methods_classL4_1_1Icu"><td class="mdescLeft">&#160;</td><td class="mdescRight">Mask an IRQ line. <br /></td></tr>
<tr class="memitem:a4258b1c32fc968b66a1ce15191f51b8b inherit pub_methods_classL4_1_1Icu" id="r_a4258b1c32fc968b66a1ce15191f51b8b"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structl4__msgtag__t.html">l4_msgtag_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classL4_1_1Icu.html#a4258b1c32fc968b66a1ce15191f51b8b">set_mode</a> (unsigned irqnum, <a class="el" href="group__l4__basic__types.html#ga1c2c4b333f75b1d05b59855910f2b9cb">l4_umword_t</a> mode, <a class="el" href="group__l4__utcb__api.html#ga89be8a86d11c1d532b636cc2df1330fb">l4_utcb_t</a> *utcb=<a class="el" href="group__l4__utcb__api.html#gadc099b4a59e1d99638c72c11a8c8b644">l4_utcb</a>()) noexcept</td></tr>
<tr class="memdesc:a4258b1c32fc968b66a1ce15191f51b8b inherit pub_methods_classL4_1_1Icu"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set interrupt mode. <br /></td></tr>
<tr class="inherit_header pub_methods_classL4_1_1Irq__eoi"><td colspan="2" onclick="javascript:dynsection.toggleInherit('pub_methods_classL4_1_1Irq__eoi')"><span class="dynarrow"><span class="arrowhead closed"></span></span>Public Member Functions inherited from <a class="el" href="classL4_1_1Irq__eoi.html">L4::Irq_eoi</a></td></tr>
<tr class="memitem:a2143eb2495d0135bc432efc362845483 inherit pub_methods_classL4_1_1Irq__eoi" id="r_a2143eb2495d0135bc432efc362845483"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structl4__msgtag__t.html">l4_msgtag_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classL4_1_1Irq__eoi.html#a2143eb2495d0135bc432efc362845483">unmask</a> (unsigned irqnum, <a class="el" href="group__l4__basic__types.html#ga1c2c4b333f75b1d05b59855910f2b9cb">l4_umword_t</a> *label=0, <a class="el" href="unionl4__timeout__t.html">l4_timeout_t</a> to=<a class="el" href="group__l4__timeout__api.html#gaf01c5e1475efc4f33bc7d1985f7320d3">L4_IPC_NEVER</a>, <a class="el" href="group__l4__utcb__api.html#ga89be8a86d11c1d532b636cc2df1330fb">l4_utcb_t</a> *utcb=<a class="el" href="group__l4__utcb__api.html#gadc099b4a59e1d99638c72c11a8c8b644">l4_utcb</a>()) noexcept</td></tr>
<tr class="memdesc:a2143eb2495d0135bc432efc362845483 inherit pub_methods_classL4_1_1Irq__eoi"><td class="mdescLeft">&#160;</td><td class="mdescRight">Unmask the given interrupt line. <br /></td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 id="header-inherited" class="groupheader"><a id="inherited" name="inherited"></a>
Additional Inherited Members</h2></td></tr>
<tr class="inherit_header pro_types_classL4_1_1Kobject__t"><td colspan="2" onclick="javascript:dynsection.toggleInherit('pro_types_classL4_1_1Kobject__t')"><span class="dynarrow"><span class="arrowhead closed"></span></span>Protected Types inherited from <a class="el" href="classL4_1_1Kobject__t.html">L4::Kobject_t&lt; Vcon, Icu, L4_PROTO_LOG &gt;</a></td></tr>
<tr class="memitem:af7df35ba5bf68ef5993e605a6b62328a inherit pro_types_classL4_1_1Kobject__t" id="r_af7df35ba5bf68ef5993e605a6b62328a"><td class="memItemLeft" align="right" valign="top">
typedef <a class="el" href="classL4_1_1Vcon.html">Vcon</a>&#160;</td><td class="memItemRight" valign="bottom"><b>Class</b></td></tr>
<tr class="memdesc:af7df35ba5bf68ef5993e605a6b62328a inherit pro_types_classL4_1_1Kobject__t"><td class="mdescLeft">&#160;</td><td class="mdescRight">The target interface type (inheriting from <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>). <br /></td></tr>
<tr class="memitem:a0d83157994565e9c01f10006bdda2efa inherit pro_types_classL4_1_1Kobject__t" id="r_a0d83157994565e9c01f10006bdda2efa"><td class="memItemLeft" align="right" valign="top">
typedef Typeid::Iface&lt; PROTO, <a class="el" href="classL4_1_1Vcon.html">Vcon</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>__Iface</b></td></tr>
<tr class="memdesc:a0d83157994565e9c01f10006bdda2efa inherit pro_types_classL4_1_1Kobject__t"><td class="mdescLeft">&#160;</td><td class="mdescRight">The interface description for the derived class. <br /></td></tr>
<tr class="memitem:afc2feec2f4a15e85286aabfa15c53e06 inherit pro_types_classL4_1_1Kobject__t" id="r_afc2feec2f4a15e85286aabfa15c53e06"><td class="memItemLeft" align="right" valign="top">
typedef Typeid::Merge_list&lt; Typeid::Iface_list&lt; <a class="el" href="classL4_1_1Kobject__t.html#a0d83157994565e9c01f10006bdda2efa">__Iface</a> &gt;, typename Icu::__Iface_list &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>__Iface_list</b></td></tr>
<tr class="memdesc:afc2feec2f4a15e85286aabfa15c53e06 inherit pro_types_classL4_1_1Kobject__t"><td class="mdescLeft">&#160;</td><td class="mdescRight">The list of all RPC interfaces provided directly or through inheritance. <br /></td></tr>
<tr class="inherit_header pro_types_classL4_1_1Kobject__t"><td colspan="2" onclick="javascript:dynsection.toggleInherit('pro_types_classL4_1_1Kobject__t')"><span class="dynarrow"><span class="arrowhead closed"></span></span>Protected Types inherited from <a class="el" href="classL4_1_1Kobject__t.html">L4::Kobject_t&lt; Icu, Irq_eoi, L4_PROTO_IRQ, Type_info::Demand_t&lt; 1 &gt; &gt;</a></td></tr>
<tr class="memitem:af7df35ba5bf68ef5993e605a6b62328a inherit pro_types_classL4_1_1Kobject__t" id="r_af7df35ba5bf68ef5993e605a6b62328a"><td class="memItemLeft" align="right" valign="top">
typedef <a class="el" href="classL4_1_1Icu.html">Icu</a>&#160;</td><td class="memItemRight" valign="bottom"><b>Class</b></td></tr>
<tr class="memdesc:af7df35ba5bf68ef5993e605a6b62328a inherit pro_types_classL4_1_1Kobject__t"><td class="mdescLeft">&#160;</td><td class="mdescRight">The target interface type (inheriting from <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>). <br /></td></tr>
<tr class="memitem:a0d83157994565e9c01f10006bdda2efa inherit pro_types_classL4_1_1Kobject__t" id="r_a0d83157994565e9c01f10006bdda2efa"><td class="memItemLeft" align="right" valign="top">
typedef Typeid::Iface&lt; PROTO, <a class="el" href="classL4_1_1Icu.html">Icu</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>__Iface</b></td></tr>
<tr class="memdesc:a0d83157994565e9c01f10006bdda2efa inherit pro_types_classL4_1_1Kobject__t"><td class="mdescLeft">&#160;</td><td class="mdescRight">The interface description for the derived class. <br /></td></tr>
<tr class="memitem:afc2feec2f4a15e85286aabfa15c53e06 inherit pro_types_classL4_1_1Kobject__t" id="r_afc2feec2f4a15e85286aabfa15c53e06"><td class="memItemLeft" align="right" valign="top">
typedef Typeid::Merge_list&lt; Typeid::Iface_list&lt; <a class="el" href="classL4_1_1Kobject__t.html#a0d83157994565e9c01f10006bdda2efa">__Iface</a> &gt;, typename Irq_eoi::__Iface_list &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>__Iface_list</b></td></tr>
<tr class="memdesc:afc2feec2f4a15e85286aabfa15c53e06 inherit pro_types_classL4_1_1Kobject__t"><td class="mdescLeft">&#160;</td><td class="mdescRight">The list of all RPC interfaces provided directly or through inheritance. <br /></td></tr>
<tr class="inherit_header pro_methods_classL4_1_1Kobject__t"><td colspan="2" onclick="javascript:dynsection.toggleInherit('pro_methods_classL4_1_1Kobject__t')"><span class="dynarrow"><span class="arrowhead closed"></span></span>Protected Member Functions inherited from <a class="el" href="classL4_1_1Kobject__t.html">L4::Kobject_t&lt; Vcon, Icu, L4_PROTO_LOG &gt;</a></td></tr>
<tr class="memitem:a3d80fec7e057d575ec4b393437f05f8a inherit pro_methods_classL4_1_1Kobject__t" id="r_a3d80fec7e057d575ec4b393437f05f8a"><td class="memItemLeft" align="right" valign="top">
<a class="el" href="classL4_1_1Cap.html">L4::Cap</a>&lt; <a class="el" href="classL4_1_1Kobject__t.html#af7df35ba5bf68ef5993e605a6b62328a">Class</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>c</b> () const noexcept</td></tr>
<tr class="memdesc:a3d80fec7e057d575ec4b393437f05f8a inherit pro_methods_classL4_1_1Kobject__t"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the capability to ourselves. <br /></td></tr>
<tr class="inherit_header pro_methods_classL4_1_1Kobject__t"><td colspan="2" onclick="javascript:dynsection.toggleInherit('pro_methods_classL4_1_1Kobject__t')"><span class="dynarrow"><span class="arrowhead closed"></span></span>Protected Member Functions inherited from <a class="el" href="classL4_1_1Kobject__t.html">L4::Kobject_t&lt; Icu, Irq_eoi, L4_PROTO_IRQ, Type_info::Demand_t&lt; 1 &gt; &gt;</a></td></tr>
<tr class="memitem:a3d80fec7e057d575ec4b393437f05f8a inherit pro_methods_classL4_1_1Kobject__t" id="r_a3d80fec7e057d575ec4b393437f05f8a"><td class="memItemLeft" align="right" valign="top">
<a class="el" href="classL4_1_1Cap.html">L4::Cap</a>&lt; <a class="el" href="classL4_1_1Kobject__t.html#af7df35ba5bf68ef5993e605a6b62328a">Class</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>c</b> () const noexcept</td></tr>
<tr class="memdesc:a3d80fec7e057d575ec4b393437f05f8a inherit pro_methods_classL4_1_1Kobject__t"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the capability to ourselves. <br /></td></tr>
<tr class="inherit_header pro_static_methods_classL4_1_1Kobject__t"><td colspan="2" onclick="javascript:dynsection.toggleInherit('pro_static_methods_classL4_1_1Kobject__t')"><span class="dynarrow"><span class="arrowhead closed"></span></span>Static Protected Member Functions inherited from <a class="el" href="classL4_1_1Kobject__t.html">L4::Kobject_t&lt; Vcon, Icu, L4_PROTO_LOG &gt;</a></td></tr>
<tr class="memitem:a7433b8eed587278821dd496864f75363 inherit pro_static_methods_classL4_1_1Kobject__t" id="r_a7433b8eed587278821dd496864f75363"><td class="memItemLeft" align="right" valign="top">
static void&#160;</td><td class="memItemRight" valign="bottom"><b>__check_protocols__</b> () noexcept</td></tr>
<tr class="memdesc:a7433b8eed587278821dd496864f75363 inherit pro_static_methods_classL4_1_1Kobject__t"><td class="mdescLeft">&#160;</td><td class="mdescRight">Helper to check for protocol conflicts. <br /></td></tr>
<tr class="inherit_header pro_static_methods_classL4_1_1Kobject__t"><td colspan="2" onclick="javascript:dynsection.toggleInherit('pro_static_methods_classL4_1_1Kobject__t')"><span class="dynarrow"><span class="arrowhead closed"></span></span>Static Protected Member Functions inherited from <a class="el" href="classL4_1_1Kobject__t.html">L4::Kobject_t&lt; Icu, Irq_eoi, L4_PROTO_IRQ, Type_info::Demand_t&lt; 1 &gt; &gt;</a></td></tr>
<tr class="memitem:a7433b8eed587278821dd496864f75363 inherit pro_static_methods_classL4_1_1Kobject__t" id="r_a7433b8eed587278821dd496864f75363"><td class="memItemLeft" align="right" valign="top">
static void&#160;</td><td class="memItemRight" valign="bottom"><b>__check_protocols__</b> () noexcept</td></tr>
<tr class="memdesc:a7433b8eed587278821dd496864f75363 inherit pro_static_methods_classL4_1_1Kobject__t"><td class="mdescLeft">&#160;</td><td class="mdescRight">Helper to check for protocol conflicts. <br /></td></tr>
</table>
<a name="details" id="details"></a><h2 id="header-details" class="groupheader">Detailed Description</h2>
<div class="textblock"><p>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. </p>
<p><a class="el" href="classL4_1_1Vcon.html" title="C++ L4 Vcon interface, see Virtual Console for the C interface.">L4::Vcon</a> is a virtual console for simple character-based input and output. The interrupt for read events is provided by the virtual key interrupt.</p>
<p>The <a class="el" href="classL4_1_1Vcon.html" title="C++ L4 Vcon interface, see Virtual Console for the C interface.">Vcon</a> interface inherits from <a class="el" href="classL4_1_1Icu.html" title="C++ Icu interface, see Interrupt controller for the C interface.">L4::Icu</a> and <a class="el" href="classL4_1_1Irq__eoi.html" title="Interface for sending an unmask message to an object.">L4::Irq_eoi</a> for managing the virtual key interrupt which, in contrast to hardware IRQs, implements a limited functionality:</p><ul>
<li>Only IRQ line 0 is supported, no MSI vectors.</li>
<li>The IRQ is edge-triggered and the IRQ mode cannot be changed.</li>
<li>As the IRQ is edge-triggered, it does not have to be explicitly unmasked.</li>
</ul>
<p>A server implementing the virtual console protocol has a queue for input events. When the first input event is added to the empty queue, the virtual key interrupt is triggered. Further events are added to the queue without generating further interrupts. The queue is emptied when a client reads all queued input events.</p>
<dl class="section user"><dt>Include File</dt><dd><div class="fragment"><div class="line"><span class="preprocessor">#include &lt;<a class="code" href="vcon.html">l4/sys/vcon</a>&gt;</span> </div>
<div class="ttc" id="avcon_html"><div class="ttname"><a href="vcon.html">vcon</a></div><div class="ttdoc">C++ Virtual console interface.</div></div>
</div><!-- fragment --></dd></dl>
<p>See the <a class="el" href="group__l4__vcon__api.html">Virtual Console</a> for the C interface. </p>
<p class="definition">Definition at line <a class="el" href="vcon_source.html#l00045">45</a> of file <a class="el" href="vcon_source.html">vcon</a>.</p>
</div><a name="doc-func-members" id="doc-func-members"></a><h2 id="header-doc-func-members" class="groupheader">Member Function Documentation</h2>
<a id="a367997ce7608f9fd170828bba6d025ed" name="a367997ce7608f9fd170828bba6d025ed"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a367997ce7608f9fd170828bba6d025ed">&#9670;&#160;</a></span>get_attr()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="structl4__msgtag__t.html">l4_msgtag_t</a> L4::Vcon::get_attr </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structl4__vcon__attr__t.html">l4_vcon_attr_t</a> *</td> <td class="paramname"><span class="paramname"><em>attr</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group__l4__utcb__api.html#ga89be8a86d11c1d532b636cc2df1330fb">l4_utcb_t</a> *</td> <td class="paramname"><span class="paramname"><em>utcb</em></span><span class="paramdefsep"> = </span><span class="paramdefval"><a class="el" href="group__l4__utcb__api.html#gadc099b4a59e1d99638c72c11a8c8b644">l4_utcb</a>()</span>&#160;) const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel inline">inline</span><span class="mlabel noexcept">noexcept</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Get attributes of <span class="tt">this</span> virtual console. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[out]</td><td class="paramname">attr</td><td>Attribute structure. Contains the attributes after a successful call of this function. </td></tr>
<tr><td class="paramdir"></td><td class="paramname">utcb</td><td>UTCB to be used for this operation, shall be the UTCB of the calling thread. Defaults to <a class="el" href="group__l4__utcb__api.html#gadc099b4a59e1d99638c72c11a8c8b644" title="Get the UTCB address.">l4_utcb</a>.</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Syscall return tag. </dd></dl>
<p class="definition">Definition at line <a class="el" href="vcon_source.html#l00151">151</a> of file <a class="el" href="vcon_source.html">vcon</a>.</p>
<p class="reference">References <a class="el" href="kobject_source.html#l00069">L4::Kobject::cap()</a>, and <a class="el" href="vcon_8h_source.html#l00417">l4_vcon_get_attr_u()</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 call graph for this function:</div>
<div id="dynsection-2-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-2-content" class="dyncontent" style="display:none;">
<div class="center"><iframe scrolling="no" loading="lazy" frameborder="0" src="classL4_1_1Vcon_a367997ce7608f9fd170828bba6d025ed_cgraph.svg" width="587" height="110"><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="ac53da09bc3a23b5fd654def074175046" name="ac53da09bc3a23b5fd654def074175046"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac53da09bc3a23b5fd654def074175046">&#9670;&#160;</a></span>read()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">int L4::Vcon::read </td>
<td>(</td>
<td class="paramtype">char *</td> <td class="paramname"><span class="paramname"><em>buf</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">unsigned</td> <td class="paramname"><span class="paramname"><em>size</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group__l4__utcb__api.html#ga89be8a86d11c1d532b636cc2df1330fb">l4_utcb_t</a> *</td> <td class="paramname"><span class="paramname"><em>utcb</em></span><span class="paramdefsep"> = </span><span class="paramdefval"><a class="el" href="group__l4__utcb__api.html#gadc099b4a59e1d99638c72c11a8c8b644">l4_utcb</a>()</span>&#160;) const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel inline">inline</span><span class="mlabel noexcept">noexcept</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Read data from <span class="tt">this</span> virtual console. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[out]</td><td class="paramname">buf</td><td>Pointer to data buffer. </td></tr>
<tr><td class="paramdir"></td><td class="paramname">size</td><td>Size of the data buffer in bytes. </td></tr>
<tr><td class="paramdir"></td><td class="paramname">utcb</td><td>UTCB to be used for this operation, shall be the UTCB of the calling thread. Defaults to <a class="el" href="group__l4__utcb__api.html#gadc099b4a59e1d99638c72c11a8c8b644" title="Get the UTCB address.">l4_utcb</a>.</td></tr>
</table>
</dd>
</dl>
<dl class="retval"><dt>Return values</dt><dd>
<table class="retval">
<tr><td class="paramname">-L4_EPERM</td><td>Insufficient permissions; see precondition. </td></tr>
<tr><td class="paramname">&gt;size</td><td>More bytes to read, <span class="tt">size</span> bytes are in the buffer <span class="tt">buf</span>. </td></tr>
<tr><td class="paramname">&lt;=size</td><td>Number of bytes read.</td></tr>
</table>
</dd>
</dl>
<dl class="section pre"><dt>Precondition</dt><dd>The invoked <a class="el" href="classL4_1_1Vcon.html" title="C++ L4 Vcon interface, see Virtual Console for the C interface.">Vcon</a> capability must have the permission <a class="el" href="group__l4__fpage__api.html#ggaee60789a48cab2782f5a368237591b39a561054fb4021ff4a22ab1881c7a7de5a" title="Interface specific &#39;W&#39; right for capability flexpages.">L4_CAP_FPAGE_W</a>.</dd></dl>
<dl class="section note"><dt>Note</dt><dd>Size must not exceed <a class="el" href="group__l4__vcon__api.html#ggabd2b33d43db88423dfb7d40ebce134a2a85b6eb2687db0571494a931b926692ae" title="Maximum size that can be read with one l4_vcon_read* call.">L4_VCON_READ_SIZE</a>. </dd></dl>
<p class="definition">Definition at line <a class="el" href="vcon_source.html#l00098">98</a> of file <a class="el" href="vcon_source.html">vcon</a>.</p>
<p class="reference">References <a class="el" href="kobject_source.html#l00069">L4::Kobject::cap()</a>, and <a class="el" href="vcon_8h_source.html#l00381">l4_vcon_read_u()</a>.</p>
<div id="dynsection-3" onclick="return dynsection.toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;"><span class="dynarrow"><span class="arrowhead closed"></span></span>Here is the call graph for this function:</div>
<div id="dynsection-3-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-3-content" class="dyncontent" style="display:none;">
<div class="center"><iframe scrolling="no" loading="lazy" frameborder="0" src="classL4_1_1Vcon_ac53da09bc3a23b5fd654def074175046_cgraph.svg" width="298" height="86"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div>
</div>
</div>
</div>
<a id="a750b4169e54d31be9ff634a05fecf2ae" name="a750b4169e54d31be9ff634a05fecf2ae"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a750b4169e54d31be9ff634a05fecf2ae">&#9670;&#160;</a></span>read_with_flags()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">int L4::Vcon::read_with_flags </td>
<td>(</td>
<td class="paramtype">char *</td> <td class="paramname"><span class="paramname"><em>buf</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">unsigned</td> <td class="paramname"><span class="paramname"><em>size</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group__l4__utcb__api.html#ga89be8a86d11c1d532b636cc2df1330fb">l4_utcb_t</a> *</td> <td class="paramname"><span class="paramname"><em>utcb</em></span><span class="paramdefsep"> = </span><span class="paramdefval"><a class="el" href="group__l4__utcb__api.html#gadc099b4a59e1d99638c72c11a8c8b644">l4_utcb</a>()</span>&#160;) const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel inline">inline</span><span class="mlabel noexcept">noexcept</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Read data from <span class="tt">this</span> virtual console which also returns flags. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[out]</td><td class="paramname">buf</td><td>Pointer to data buffer. </td></tr>
<tr><td class="paramdir"></td><td class="paramname">size</td><td>Size of the data buffer in bytes. </td></tr>
<tr><td class="paramdir"></td><td class="paramname">utcb</td><td>UTCB to be used for this operation, shall be the UTCB of the calling thread. Defaults to <a class="el" href="group__l4__utcb__api.html#gadc099b4a59e1d99638c72c11a8c8b644" title="Get the UTCB address.">l4_utcb</a>.</td></tr>
</table>
</dd>
</dl>
<dl class="retval"><dt>Return values</dt><dd>
<table class="retval">
<tr><td class="paramname">-L4_EPERM</td><td>Insufficient permissions; see precondition. </td></tr>
<tr><td class="paramname">&gt;size</td><td>More bytes to read, <span class="tt">size</span> bytes are in the buffer <span class="tt">buf</span>. </td></tr>
<tr><td class="paramname">&lt;=size</td><td>Number of bytes read.</td></tr>
</table>
</dd>
</dl>
<dl class="section pre"><dt>Precondition</dt><dd>The invoked <a class="el" href="classL4_1_1Vcon.html" title="C++ L4 Vcon interface, see Virtual Console for the C interface.">Vcon</a> capability must have the permission <a class="el" href="group__l4__fpage__api.html#ggaee60789a48cab2782f5a368237591b39a561054fb4021ff4a22ab1881c7a7de5a" title="Interface specific &#39;W&#39; right for capability flexpages.">L4_CAP_FPAGE_W</a>.</dd></dl>
<p>If this function returns a positive value the caller can check the <a class="el" href="vcon_8h.html#a82aebd5bdf764a394ca64418617c3a1cad1cf637b6b20de77d1fcb880696af78d" title="Break condition flag.">L4_VCON_READ_STAT_BREAK</a> flag bit for a break condition. The bytes read can be obtained by masking the return value with <a class="el" href="vcon_8h.html#a82aebd5bdf764a394ca64418617c3a1cad6ba192244df0ca35e2e68851d182f95" title="Size mask.">L4_VCON_READ_SIZE_MASK</a>.</p>
<p>If a break condition is signaled, it is always the first event in the transmitted content, i.e. all characters supplied by this read call follow the break condition.</p>
<dl class="section note"><dt>Note</dt><dd>Size must not exceed <a class="el" href="group__l4__vcon__api.html#ggabd2b33d43db88423dfb7d40ebce134a2a85b6eb2687db0571494a931b926692ae" title="Maximum size that can be read with one l4_vcon_read* call.">L4_VCON_READ_SIZE</a>. </dd></dl>
<p class="definition">Definition at line <a class="el" href="vcon_source.html#l00125">125</a> of file <a class="el" href="vcon_source.html">vcon</a>.</p>
<p class="reference">References <a class="el" href="kobject_source.html#l00069">L4::Kobject::cap()</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 call graph for this function:</div>
<div id="dynsection-4-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-4-content" class="dyncontent" style="display:none;">
<div class="center"><iframe scrolling="no" loading="lazy" frameborder="0" src="classL4_1_1Vcon_a750b4169e54d31be9ff634a05fecf2ae_cgraph.svg" width="332" 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="af400882103c8601a4b0750985c57d7c4" name="af400882103c8601a4b0750985c57d7c4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af400882103c8601a4b0750985c57d7c4">&#9670;&#160;</a></span>send()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="structl4__msgtag__t.html">l4_msgtag_t</a> L4::Vcon::send </td>
<td>(</td>
<td class="paramtype">char const *</td> <td class="paramname"><span class="paramname"><em>buf</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">unsigned</td> <td class="paramname"><span class="paramname"><em>size</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group__l4__utcb__api.html#ga89be8a86d11c1d532b636cc2df1330fb">l4_utcb_t</a> *</td> <td class="paramname"><span class="paramname"><em>utcb</em></span><span class="paramdefsep"> = </span><span class="paramdefval"><a class="el" href="group__l4__utcb__api.html#gadc099b4a59e1d99638c72c11a8c8b644">l4_utcb</a>()</span>&#160;) const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel inline">inline</span><span class="mlabel noexcept">noexcept</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Send data to <span class="tt">this</span> virtual console. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">buf</td><td>Pointer to the data buffer. </td></tr>
<tr><td class="paramname">size</td><td>Size of the data buffer in bytes. </td></tr>
<tr><td class="paramname">utcb</td><td>UTCB to be used for this operation, shall be the UTCB of the calling thread. Defaults to <a class="el" href="group__l4__utcb__api.html#gadc099b4a59e1d99638c72c11a8c8b644" title="Get the UTCB address.">l4_utcb</a>.</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Syscall return tag</dd></dl>
<dl class="section note"><dt>Note</dt><dd>Size must not exceed <a class="el" href="group__l4__vcon__api.html#ggabd2b33d43db88423dfb7d40ebce134a2ac70a0f703b45becb557ee2212e47a9fc" title="Maximum size that can be written with one l4_vcon_write call.">L4_VCON_WRITE_SIZE</a>, a proper value of the <span class="tt">size</span> parameter is NOT checked. Also, this function is a send only operation, this means there is no return value except for a failed send operation. Use <a class="el" href="group__l4__ipc__err__api.html#gad40f404217497793e95a10d77a47db39" title="Get the IPC error code for an IPC operation.">l4_ipc_error()</a> to check for send errors, do not use <a class="el" href="group__l4__ipc__err__api.html#ga05c11e3e10b6c2aa941396ac2018899f" title="Get IPC error code if any or message tag label otherwise for an IPC call.">l4_error()</a>, as <a class="el" href="group__l4__ipc__err__api.html#ga05c11e3e10b6c2aa941396ac2018899f" title="Get IPC error code if any or message tag label otherwise for an IPC call.">l4_error()</a> will always return an error. </dd></dl>
<p class="definition">Definition at line <a class="el" href="vcon_source.html#l00065">65</a> of file <a class="el" href="vcon_source.html">vcon</a>.</p>
<p class="reference">References <a class="el" href="kobject_source.html#l00069">L4::Kobject::cap()</a>, and <a class="el" href="vcon_8h_source.html#l00302">l4_vcon_send_u()</a>.</p>
<div id="dynsection-5" onclick="return dynsection.toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;"><span class="dynarrow"><span class="arrowhead closed"></span></span>Here is the call graph for this function:</div>
<div id="dynsection-5-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-5-content" class="dyncontent" style="display:none;">
<div class="center"><iframe scrolling="no" loading="lazy" frameborder="0" src="classL4_1_1Vcon_af400882103c8601a4b0750985c57d7c4_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="a95422b151c12b5e20dda868972516f1a" name="a95422b151c12b5e20dda868972516f1a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a95422b151c12b5e20dda868972516f1a">&#9670;&#160;</a></span>set_attr()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="structl4__msgtag__t.html">l4_msgtag_t</a> L4::Vcon::set_attr </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structl4__vcon__attr__t.html">l4_vcon_attr_t</a> const *</td> <td class="paramname"><span class="paramname"><em>attr</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group__l4__utcb__api.html#ga89be8a86d11c1d532b636cc2df1330fb">l4_utcb_t</a> *</td> <td class="paramname"><span class="paramname"><em>utcb</em></span><span class="paramdefsep"> = </span><span class="paramdefval"><a class="el" href="group__l4__utcb__api.html#gadc099b4a59e1d99638c72c11a8c8b644">l4_utcb</a>()</span>&#160;) const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel inline">inline</span><span class="mlabel noexcept">noexcept</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Set the attributes of <span class="tt">this</span> virtual console. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">attr</td><td>Attribute structure with the attributes for the virtual console. </td></tr>
<tr><td class="paramname">utcb</td><td>UTCB to be used for this operation, shall be the UTCB of the calling thread. Defaults to <a class="el" href="group__l4__utcb__api.html#gadc099b4a59e1d99638c72c11a8c8b644" title="Get the UTCB address.">l4_utcb</a>.</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Syscall return tag. </dd></dl>
<p class="definition">Definition at line <a class="el" href="vcon_source.html#l00138">138</a> of file <a class="el" href="vcon_source.html">vcon</a>.</p>
<p class="reference">References <a class="el" href="kobject_source.html#l00069">L4::Kobject::cap()</a>, and <a class="el" href="vcon_8h_source.html#l00397">l4_vcon_set_attr_u()</a>.</p>
<div id="dynsection-6" onclick="return dynsection.toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;"><span class="dynarrow"><span class="arrowhead closed"></span></span>Here is the call graph for this function:</div>
<div id="dynsection-6-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-6-content" class="dyncontent" style="display:none;">
<div class="center"><iframe scrolling="no" loading="lazy" frameborder="0" src="classL4_1_1Vcon_a95422b151c12b5e20dda868972516f1a_cgraph.svg" width="584" height="110"><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="a83407df2f5b674126d33505d73f5d34b" name="a83407df2f5b674126d33505d73f5d34b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a83407df2f5b674126d33505d73f5d34b">&#9670;&#160;</a></span>write()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">long L4::Vcon::write </td>
<td>(</td>
<td class="paramtype">char const *</td> <td class="paramname"><span class="paramname"><em>buf</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">unsigned</td> <td class="paramname"><span class="paramname"><em>size</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group__l4__utcb__api.html#ga89be8a86d11c1d532b636cc2df1330fb">l4_utcb_t</a> *</td> <td class="paramname"><span class="paramname"><em>utcb</em></span><span class="paramdefsep"> = </span><span class="paramdefval"><a class="el" href="group__l4__utcb__api.html#gadc099b4a59e1d99638c72c11a8c8b644">l4_utcb</a>()</span>&#160;) const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel inline">inline</span><span class="mlabel noexcept">noexcept</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Write data to <span class="tt">this</span> virtual console. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">buf</td><td>Pointer to the data buffer. </td></tr>
<tr><td class="paramname">size</td><td>Size of the data buffer in bytes. </td></tr>
<tr><td class="paramname">utcb</td><td>UTCB to be used for this operation, shall be the UTCB of the calling thread. Defaults to <a class="el" href="group__l4__utcb__api.html#gadc099b4a59e1d99638c72c11a8c8b644" title="Get the UTCB address.">l4_utcb</a>.</td></tr>
</table>
</dd>
</dl>
<dl class="retval"><dt>Return values</dt><dd>
<table class="retval">
<tr><td class="paramname">&lt;0</td><td>Error. </td></tr>
<tr><td class="paramname">&gt;=0</td><td>Number of bytes written to the virtual console. </td></tr>
</table>
</dd>
</dl>
<p class="definition">Definition at line <a class="el" href="vcon_source.html#l00079">79</a> of file <a class="el" href="vcon_source.html">vcon</a>.</p>
<p class="reference">References <a class="el" href="kobject_source.html#l00069">L4::Kobject::cap()</a>, and <a class="el" href="vcon_8h_source.html#l00321">l4_vcon_write_u()</a>.</p>
<div id="dynsection-7" onclick="return dynsection.toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;"><span class="dynarrow"><span class="arrowhead closed"></span></span>Here is the call graph for this function:</div>
<div id="dynsection-7-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-7-content" class="dyncontent" style="display:none;">
<div class="center"><iframe scrolling="no" loading="lazy" frameborder="0" src="classL4_1_1Vcon_a83407df2f5b674126d33505d73f5d34b_cgraph.svg" width="823" height="184"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div>
</div>
</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>l4/sys/<a class="el" href="vcon_source.html">vcon</a></li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
<div id="page-nav" class="page-nav-panel">
<div id="page-nav-resize-handle"></div>
<div id="page-nav-tree">
<div id="page-nav-contents">
</div><!-- page-nav-contents -->
</div><!-- page-nav-tree -->
</div><!-- page-nav -->
</div><!-- container -->
<!-- HTML footer for doxygen 1.9.1-->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a href="namespaceL4.html">L4</a></li><li class="navelem"><a href="classL4_1_1Vcon.html">Vcon</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>