Files
moslab-code/doc/source/html/group__l4__icu__api.html
2025-09-12 15:55:45 +02:00

1130 lines
87 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: Interrupt controller</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript" src="cookie.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="doxygen-awesome.css" rel="stylesheet" type="text/css"/>
<link href="l4re-awesome.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="L4Re_rgb_logo_quer_hg_h55.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">L4Re Operating System Framework
</div>
<div id="projectbrief">Interface and Usage Documentation</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.15.0 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search/",'.html');
</script>
<script type="text/javascript">
$(function() { codefold.init(); });
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
initMenu('',true,false,'search.php','Search',true);
$(function() { init_search(); });
});
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
$(function(){initNavTree('group__l4__icu__api.html','',''); });
</script>
<div id="container">
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<div id="MSearchResults">
<div class="SRPage">
<div id="SRIndex">
<div id="SRResults"></div>
<div class="SRStatus" id="Loading">Loading...</div>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
</div>
</div>
</div>
</div>
<div class="header">
<div class="headertitle"><div class="title">Interrupt controller <div class="ingroups"><a class="el" href="group__l4__api.html">Base API</a> &raquo; <a class="el" href="group__l4__kernel__object__api.html">Kernel Objects</a></div></div></div>
</div><!--header-->
<div class="contents">
<p>The C Icu interface, see <a class="el" href="classL4_1_1Icu.html" title="C++ Icu interface, see Interrupt controller for the C interface.">L4::Icu</a> for the C++ interface.
<a href="#details">More...</a></p>
<div id="dynsection-0" onclick="return dynsection.toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;"><span class="dynarrow"><span class="arrowhead closed"></span></span>Collaboration diagram for Interrupt controller:</div>
<div id="dynsection-0-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-0-content" class="dyncontent" style="display:none;">
<div class="center"><iframe scrolling="no" loading="lazy" frameborder="0" src="group__l4__icu__api.svg" width="319" height="36"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div>
</div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 id="header-nested-classes" class="groupheader"><a id="nested-classes" name="nested-classes"></a>
Data Structures</h2></td></tr>
<tr class="memitem:l4_5Ficu_5Finfo_5Ft" id="r_l4_5Ficu_5Finfo_5Ft"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structl4__icu__info__t.html">l4_icu_info_t</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Info structure for an ICU. <a href="structl4__icu__info__t.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:ga054d1d824af9ba14cb7bda808ad5a4eb" id="r_ga054d1d824af9ba14cb7bda808ad5a4eb"><td class="memItemLeft" align="right" valign="top">typedef struct l4_icu_info_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga054d1d824af9ba14cb7bda808ad5a4eb">l4_icu_info_t</a></td></tr>
<tr class="memdesc:ga054d1d824af9ba14cb7bda808ad5a4eb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Info structure for an ICU. <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:gae0eed2f822f96b14e27506b723adbe03" id="r_gae0eed2f822f96b14e27506b723adbe03"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#gae0eed2f822f96b14e27506b723adbe03">L4_icu_flags</a> { <a class="el" href="#ggae0eed2f822f96b14e27506b723adbe03a1fd33de4bedf743cc5f94aaf718ed109">L4_ICU_FLAG_MSI</a>
}</td></tr>
<tr class="memdesc:gae0eed2f822f96b14e27506b723adbe03"><td class="mdescLeft">&#160;</td><td class="mdescRight">Flags for IRQ numbers used for the ICU. <a href="#gae0eed2f822f96b14e27506b723adbe03">More...</a><br /></td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 id="header-func-members" class="groupheader"><a id="func-members" name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:ga793c534597fd98ee93cbaf24ad08a615" id="r_ga793c534597fd98ee93cbaf24ad08a615"><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="#ga793c534597fd98ee93cbaf24ad08a615">l4_icu_bind</a> (<a class="el" href="group__l4__cap__api.html#ga1445e923ce73029130d569d6e69a4dd8">l4_cap_idx_t</a> icu, unsigned irqnum, <a class="el" href="group__l4__cap__api.html#ga1445e923ce73029130d569d6e69a4dd8">l4_cap_idx_t</a> irq) <a class="el" href="group__l4sys__defines.html#ga362dfa378e662dd04f710a23fc7ea931">L4_NOTHROW</a></td></tr>
<tr class="memdesc:ga793c534597fd98ee93cbaf24ad08a615"><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:ga29217a67f405c5d860002dd902bf71e4" id="r_ga29217a67f405c5d860002dd902bf71e4"><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="#ga29217a67f405c5d860002dd902bf71e4">l4_icu_bind_u</a> (<a class="el" href="group__l4__cap__api.html#ga1445e923ce73029130d569d6e69a4dd8">l4_cap_idx_t</a> icu, unsigned irqnum, <a class="el" href="group__l4__cap__api.html#ga1445e923ce73029130d569d6e69a4dd8">l4_cap_idx_t</a> irq, <a class="el" href="group__l4__utcb__api.html#ga89be8a86d11c1d532b636cc2df1330fb">l4_utcb_t</a> *utcb) <a class="el" href="group__l4sys__defines.html#ga362dfa378e662dd04f710a23fc7ea931">L4_NOTHROW</a></td></tr>
<tr class="memdesc:ga29217a67f405c5d860002dd902bf71e4"><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:ga77d613300601861b13605e7687146dc5" id="r_ga77d613300601861b13605e7687146dc5"><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="#ga77d613300601861b13605e7687146dc5">l4_icu_unbind</a> (<a class="el" href="group__l4__cap__api.html#ga1445e923ce73029130d569d6e69a4dd8">l4_cap_idx_t</a> icu, unsigned irqnum, <a class="el" href="group__l4__cap__api.html#ga1445e923ce73029130d569d6e69a4dd8">l4_cap_idx_t</a> irq) <a class="el" href="group__l4sys__defines.html#ga362dfa378e662dd04f710a23fc7ea931">L4_NOTHROW</a></td></tr>
<tr class="memdesc:ga77d613300601861b13605e7687146dc5"><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:gae74204b8f2101e176add646ec2958182" id="r_gae74204b8f2101e176add646ec2958182"><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="#gae74204b8f2101e176add646ec2958182">l4_icu_unbind_u</a> (<a class="el" href="group__l4__cap__api.html#ga1445e923ce73029130d569d6e69a4dd8">l4_cap_idx_t</a> icu, unsigned irqnum, <a class="el" href="group__l4__cap__api.html#ga1445e923ce73029130d569d6e69a4dd8">l4_cap_idx_t</a> irq, <a class="el" href="group__l4__utcb__api.html#ga89be8a86d11c1d532b636cc2df1330fb">l4_utcb_t</a> *utcb) <a class="el" href="group__l4sys__defines.html#ga362dfa378e662dd04f710a23fc7ea931">L4_NOTHROW</a></td></tr>
<tr class="memdesc:gae74204b8f2101e176add646ec2958182"><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:gad387684dcc6b4838f1d4f466e1aeef6f" id="r_gad387684dcc6b4838f1d4f466e1aeef6f"><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="#gad387684dcc6b4838f1d4f466e1aeef6f">l4_icu_set_mode</a> (<a class="el" href="group__l4__cap__api.html#ga1445e923ce73029130d569d6e69a4dd8">l4_cap_idx_t</a> icu, unsigned irqnum, <a class="el" href="group__l4__basic__types.html#ga1c2c4b333f75b1d05b59855910f2b9cb">l4_umword_t</a> mode) <a class="el" href="group__l4sys__defines.html#ga362dfa378e662dd04f710a23fc7ea931">L4_NOTHROW</a></td></tr>
<tr class="memdesc:gad387684dcc6b4838f1d4f466e1aeef6f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set interrupt mode. <br /></td></tr>
<tr class="memitem:gac43905e779ca41f20c9cd23fb28ac095" id="r_gac43905e779ca41f20c9cd23fb28ac095"><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="#gac43905e779ca41f20c9cd23fb28ac095">l4_icu_set_mode_u</a> (<a class="el" href="group__l4__cap__api.html#ga1445e923ce73029130d569d6e69a4dd8">l4_cap_idx_t</a> icu, 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__l4sys__defines.html#ga362dfa378e662dd04f710a23fc7ea931">L4_NOTHROW</a></td></tr>
<tr class="memdesc:gac43905e779ca41f20c9cd23fb28ac095"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set interrupt mode. <br /></td></tr>
<tr class="memitem:ga01c207fa8b166832b7eab0c60a8f2a7b" id="r_ga01c207fa8b166832b7eab0c60a8f2a7b"><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="#ga01c207fa8b166832b7eab0c60a8f2a7b">l4_icu_info</a> (<a class="el" href="group__l4__cap__api.html#ga1445e923ce73029130d569d6e69a4dd8">l4_cap_idx_t</a> icu, <a class="el" href="structl4__icu__info__t.html">l4_icu_info_t</a> *info) <a class="el" href="group__l4sys__defines.html#ga362dfa378e662dd04f710a23fc7ea931">L4_NOTHROW</a></td></tr>
<tr class="memdesc:ga01c207fa8b166832b7eab0c60a8f2a7b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get information about the ICU features. <br /></td></tr>
<tr class="memitem:ga7850caf0c29c87ba3477e1fe1139681f" id="r_ga7850caf0c29c87ba3477e1fe1139681f"><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="#ga7850caf0c29c87ba3477e1fe1139681f">l4_icu_info_u</a> (<a class="el" href="group__l4__cap__api.html#ga1445e923ce73029130d569d6e69a4dd8">l4_cap_idx_t</a> icu, <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__l4sys__defines.html#ga362dfa378e662dd04f710a23fc7ea931">L4_NOTHROW</a></td></tr>
<tr class="memdesc:ga7850caf0c29c87ba3477e1fe1139681f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get information about the ICU features. <br /></td></tr>
<tr class="memitem:ga626c5b32a678d274de89b2be944b6a3f" id="r_ga626c5b32a678d274de89b2be944b6a3f"><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="#ga626c5b32a678d274de89b2be944b6a3f">l4_icu_msi_info</a> (<a class="el" href="group__l4__cap__api.html#ga1445e923ce73029130d569d6e69a4dd8">l4_cap_idx_t</a> icu, unsigned 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) <a class="el" href="group__l4sys__defines.html#ga362dfa378e662dd04f710a23fc7ea931">L4_NOTHROW</a></td></tr>
<tr class="memdesc:ga626c5b32a678d274de89b2be944b6a3f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get MSI info about IRQ. <br /></td></tr>
<tr class="memitem:ga0c5c381566e2e9a8dbb41f14e33c4437" id="r_ga0c5c381566e2e9a8dbb41f14e33c4437"><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="#ga0c5c381566e2e9a8dbb41f14e33c4437">l4_icu_msi_info_u</a> (<a class="el" href="group__l4__cap__api.html#ga1445e923ce73029130d569d6e69a4dd8">l4_cap_idx_t</a> icu, unsigned 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, <a class="el" href="group__l4__utcb__api.html#ga89be8a86d11c1d532b636cc2df1330fb">l4_utcb_t</a> *utcb) <a class="el" href="group__l4sys__defines.html#ga362dfa378e662dd04f710a23fc7ea931">L4_NOTHROW</a></td></tr>
<tr class="memdesc:ga0c5c381566e2e9a8dbb41f14e33c4437"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get MSI info about IRQ. <br /></td></tr>
<tr class="memitem:gaab0c2827a3cf3eccf79a87f8069aa167" id="r_gaab0c2827a3cf3eccf79a87f8069aa167"><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="#gaab0c2827a3cf3eccf79a87f8069aa167">l4_icu_unmask</a> (<a class="el" href="group__l4__cap__api.html#ga1445e923ce73029130d569d6e69a4dd8">l4_cap_idx_t</a> icu, unsigned irqnum, <a class="el" href="group__l4__basic__types.html#ga1c2c4b333f75b1d05b59855910f2b9cb">l4_umword_t</a> *label, <a class="el" href="unionl4__timeout__t.html">l4_timeout_t</a> to) <a class="el" href="group__l4sys__defines.html#ga362dfa378e662dd04f710a23fc7ea931">L4_NOTHROW</a></td></tr>
<tr class="memdesc:gaab0c2827a3cf3eccf79a87f8069aa167"><td class="mdescLeft">&#160;</td><td class="mdescRight">Unmask an IRQ line. <br /></td></tr>
<tr class="memitem:ga9cd1fe6280e7cfb4c738ef27201e5919" id="r_ga9cd1fe6280e7cfb4c738ef27201e5919"><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="#ga9cd1fe6280e7cfb4c738ef27201e5919">l4_icu_unmask_u</a> (<a class="el" href="group__l4__cap__api.html#ga1445e923ce73029130d569d6e69a4dd8">l4_cap_idx_t</a> icu, unsigned irqnum, <a class="el" href="group__l4__basic__types.html#ga1c2c4b333f75b1d05b59855910f2b9cb">l4_umword_t</a> *label, <a class="el" href="unionl4__timeout__t.html">l4_timeout_t</a> to, <a class="el" href="group__l4__utcb__api.html#ga89be8a86d11c1d532b636cc2df1330fb">l4_utcb_t</a> *utcb) <a class="el" href="group__l4sys__defines.html#ga362dfa378e662dd04f710a23fc7ea931">L4_NOTHROW</a></td></tr>
<tr class="memdesc:ga9cd1fe6280e7cfb4c738ef27201e5919"><td class="mdescLeft">&#160;</td><td class="mdescRight">Unmask the given interrupt line. <br /></td></tr>
<tr class="memitem:ga69bc4ec5786b0356779e746f5828b530" id="r_ga69bc4ec5786b0356779e746f5828b530"><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="#ga69bc4ec5786b0356779e746f5828b530">l4_icu_mask</a> (<a class="el" href="group__l4__cap__api.html#ga1445e923ce73029130d569d6e69a4dd8">l4_cap_idx_t</a> icu, unsigned irqnum, <a class="el" href="group__l4__basic__types.html#ga1c2c4b333f75b1d05b59855910f2b9cb">l4_umword_t</a> *label, <a class="el" href="unionl4__timeout__t.html">l4_timeout_t</a> to) <a class="el" href="group__l4sys__defines.html#ga362dfa378e662dd04f710a23fc7ea931">L4_NOTHROW</a></td></tr>
<tr class="memdesc:ga69bc4ec5786b0356779e746f5828b530"><td class="mdescLeft">&#160;</td><td class="mdescRight">Mask an IRQ line. <br /></td></tr>
<tr class="memitem:gad1fc6f5aef910ca6b9b3a6c9d0f3b345" id="r_gad1fc6f5aef910ca6b9b3a6c9d0f3b345"><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="#gad1fc6f5aef910ca6b9b3a6c9d0f3b345">l4_icu_mask_u</a> (<a class="el" href="group__l4__cap__api.html#ga1445e923ce73029130d569d6e69a4dd8">l4_cap_idx_t</a> icu, unsigned irqnum, <a class="el" href="group__l4__basic__types.html#ga1c2c4b333f75b1d05b59855910f2b9cb">l4_umword_t</a> *label, <a class="el" href="unionl4__timeout__t.html">l4_timeout_t</a> to, <a class="el" href="group__l4__utcb__api.html#ga89be8a86d11c1d532b636cc2df1330fb">l4_utcb_t</a> *utcb) <a class="el" href="group__l4sys__defines.html#ga362dfa378e662dd04f710a23fc7ea931">L4_NOTHROW</a></td></tr>
<tr class="memdesc:gad1fc6f5aef910ca6b9b3a6c9d0f3b345"><td class="mdescLeft">&#160;</td><td class="mdescRight">Mask an IRQ line. <br /></td></tr>
</table>
<a name="details" id="details"></a><h2 id="header-details" class="groupheader">Detailed Description</h2>
<p>The C Icu interface, see <a class="el" href="classL4_1_1Icu.html" title="C++ Icu interface, see Interrupt controller for the C interface.">L4::Icu</a> for the C++ interface. </p>
<dl class="section note"><dt>Note</dt><dd>"ICU" is short for "interrupt control unit".</dd></dl>
<p>These functions define the interface for interrupt controllers, for binding IRQ objects to interrupt lines and other interrupt sources, as well as functions for masking and unmasking of interrupts.</p>
<p>To setup an IRQ line the following steps are required:</p><ol type="1">
<li><a class="el" href="#gad387684dcc6b4838f1d4f466e1aeef6f" title="Set interrupt mode.">l4_icu_set_mode()</a> (optional if IRQ has a default mode)</li>
<li><a class="el" href="group__l4__kernel__object__gate__api.html#gad3ab8fc6f519189a50d8b25b0c9ea3e6" title="Bind the IPC receive endpoint to a thread.">l4_rcv_ep_bind_thread()</a> or <a class="el" href="group__l4__kernel__object__gate__api.html#gadb03d49fcf42b9fc167338fa1cd72fb4" title="Bind the IPC receive endpoint to a send destination (a thread).">l4_rcv_ep_bind_snd_destination()</a> to attach the IRQ object to a thread object.</li>
<li><a class="el" href="#ga793c534597fd98ee93cbaf24ad08a615" title="Bind an interrupt line of an interrupt controller to an interrupt object.">l4_icu_bind()</a></li>
<li><a class="el" href="#gaab0c2827a3cf3eccf79a87f8069aa167" title="Unmask an IRQ line.">l4_icu_unmask()</a> to receive the first IRQ</li>
</ol>
<p>For certain interrupt sources only some of these steps are necessary and supported, see <a class="el" href="group__l4__scheduler__api.html">Scheduler</a> and <a class="el" href="group__l4__vcon__api.html">Virtual Console</a>.</p>
<p>At most one <a class="el" href="group__l4__irq__api.html">IRQs</a> object can be bound to a certain interrupt source and a certain <a class="el" href="group__l4__irq__api.html">IRQs</a> object can be bound to at most one interrupt source.</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="icu_8h.html">l4/sys/icu.h</a>&gt;</span> </div>
<div class="ttc" id="aicu_8h_html"><div class="ttname"><a href="icu_8h.html">icu.h</a></div><div class="ttdoc">Interrupt controller.</div></div>
</div><!-- fragment --> </dd></dl>
<a name="doc-typedef-members" id="doc-typedef-members"></a><h2 id="header-doc-typedef-members" class="groupheader">Typedef Documentation</h2>
<a id="ga054d1d824af9ba14cb7bda808ad5a4eb" name="ga054d1d824af9ba14cb7bda808ad5a4eb"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga054d1d824af9ba14cb7bda808ad5a4eb">&#9670;&#160;</a></span>l4_icu_info_t</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef struct l4_icu_info_t l4_icu_info_t</td>
</tr>
</table>
</div><div class="memdoc">
<p>Info structure for an ICU. </p>
<p>This structure contains information about the features of an ICU. </p><dl class="section see"><dt>See also</dt><dd><a class="el" href="#ga01c207fa8b166832b7eab0c60a8f2a7b" title="Get information about the ICU features.">l4_icu_info()</a>. </dd></dl>
</div>
</div>
<a name="doc-enum-members" id="doc-enum-members"></a><h2 id="header-doc-enum-members" class="groupheader">Enumeration Type Documentation</h2>
<a id="gae0eed2f822f96b14e27506b723adbe03" name="gae0eed2f822f96b14e27506b723adbe03"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gae0eed2f822f96b14e27506b723adbe03">&#9670;&#160;</a></span>L4_icu_flags</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="#gae0eed2f822f96b14e27506b723adbe03">L4_icu_flags</a></td>
</tr>
</table>
</div><div class="memdoc">
<p>Flags for IRQ numbers used for the ICU. </p>
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="ggae0eed2f822f96b14e27506b723adbe03a1fd33de4bedf743cc5f94aaf718ed109" name="ggae0eed2f822f96b14e27506b723adbe03a1fd33de4bedf743cc5f94aaf718ed109"></a>L4_ICU_FLAG_MSI&#160;</td><td class="fielddoc"><p>Flag to denote that the IRQ is actually an MSI. </p>
<p>This flag may be used for <a class="el" href="#ga793c534597fd98ee93cbaf24ad08a615" title="Bind an interrupt line of an interrupt controller to an interrupt object.">l4_icu_bind()</a> and <a class="el" href="#ga77d613300601861b13605e7687146dc5" title="Remove binding of an interrupt line from the interrupt controller object.">l4_icu_unbind()</a> functions to denote that the IRQ number is meant to be an MSI. </p>
</td></tr>
</table>
<p class="definition">Definition at line <a class="el" href="icu_8h_source.html#l00053">53</a> of file <a class="el" href="icu_8h_source.html">icu.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="ga793c534597fd98ee93cbaf24ad08a615" name="ga793c534597fd98ee93cbaf24ad08a615"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga793c534597fd98ee93cbaf24ad08a615">&#9670;&#160;</a></span>l4_icu_bind()</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_icu_bind </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__l4__cap__api.html#ga1445e923ce73029130d569d6e69a4dd8">l4_cap_idx_t</a></td> <td class="paramname"><span class="paramname"><em>icu</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">unsigned</td> <td class="paramname"><span class="paramname"><em>irqnum</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group__l4__cap__api.html#ga1445e923ce73029130d569d6e69a4dd8">l4_cap_idx_t</a></td> <td class="paramname"><span class="paramname"><em>irq</em></span>&#160;)</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel inline">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Bind an interrupt line of an interrupt controller to an interrupt object. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">icu</td><td>ICU object to bind <span class="tt">irq</span> to. </td></tr>
<tr><td class="paramname">irqnum</td><td>IRQ line at the ICU. </td></tr>
<tr><td class="paramname">irq</td><td>IRQ object to bind to this ICU.</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Syscall return tag. The caller should check the return value using <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> to check for errors and to identify the correct method for unmasking the interrupt. Return values <span class="tt">&lt; 0</span> indicate an error. A return value of <span class="tt">0</span> means a direct unmask via the IRQ object using <a class="el" href="group__l4__irq__api.html#ga213b7c4fe4d690ec2aec84fd226883c4" title="Unmask IRQ.">l4_irq_unmask()</a>. A return value of <span class="tt">1</span> means that the interrupt has to be unmasked via the ICU using <a class="el" href="#gaab0c2827a3cf3eccf79a87f8069aa167" title="Unmask an IRQ line.">l4_icu_unmask()</a>.</dd></dl>
<dl class="retval"><dt>Return values</dt><dd>
<table class="retval">
<tr><td class="paramname">-L4_EINVAL</td><td><span class="tt">irq</span> is bound to an interrupt source. </td></tr>
<tr><td class="paramname">-L4_EPERM</td><td>Insufficient permissions; see precondition.</td></tr>
</table>
</dd>
</dl>
<dl class="section pre"><dt>Precondition</dt><dd>The capability <span class="tt">irq</span> 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>In case the <span class="tt">irq</span> is already bound to an interrupt source, it is unbound first. In case the <span class="tt">irq</span> is bound and the interrupt source is bound to a different IRQ object, only the unbinding happens. An IRQ object that is bound to an interrupt source will get unbound if the IRQ object is deleted. </p>
<dl class="section examples"><dt>Examples</dt><dd><a class="el" href="examples_2sys_2isr_2main_8c-example.html#a8">examples/sys/isr/main.c</a>.</dd>
</dl>
<p class="definition">Definition at line <a class="el" href="icu_8h_source.html#l00496">496</a> of file <a class="el" href="icu_8h_source.html">icu.h</a>.</p>
<p class="reference">References <a class="el" href="icu_8h_source.html#l00396">l4_icu_bind_u()</a>, <a class="el" href="compiler_8h_source.html#l00161">L4_NOTHROW</a>, and <a class="el" href="l4_2sys_2utcb_8h_source.html#l00346">l4_utcb()</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="group__l4__icu__api_ga793c534597fd98ee93cbaf24ad08a615_cgraph.svg" width="632" 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>
<a id="ga29217a67f405c5d860002dd902bf71e4" name="ga29217a67f405c5d860002dd902bf71e4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga29217a67f405c5d860002dd902bf71e4">&#9670;&#160;</a></span>l4_icu_bind_u()</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_icu_bind_u </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__l4__cap__api.html#ga1445e923ce73029130d569d6e69a4dd8">l4_cap_idx_t</a></td> <td class="paramname"><span class="paramname"><em>icu</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">unsigned</td> <td class="paramname"><span class="paramname"><em>irqnum</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group__l4__cap__api.html#ga1445e923ce73029130d569d6e69a4dd8">l4_cap_idx_t</a></td> <td class="paramname"><span class="paramname"><em>irq</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>&#160;)</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel inline">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Bind an interrupt line of an interrupt controller to an interrupt object. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">icu</td><td>The ICU object to bind <span class="tt">irq</span> to. </td></tr>
<tr><td class="paramname">irqnum</td><td>IRQ line at the ICU. </td></tr>
<tr><td class="paramname">irq</td><td>IRQ object for the given IRQ line to bind to this ICU. </td></tr>
<tr><td class="paramname">utcb</td><td>UTCB to be used for this operation, shall be the UTCB of the calling thread. See <a class="el" href="group__l4__utcb__api.html#gadc099b4a59e1d99638c72c11a8c8b644" title="Get the UTCB address.">l4_utcb</a>.</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Syscall return tag. The caller should check the return value using <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> to check for errors and to identify the correct method for unmasking the interrupt. Return values <span class="tt">&lt; 0</span> indicate an error. A return value of <span class="tt">0</span> means a direct unmask via the IRQ object using <a class="el" href="classL4_1_1Irq.html#a9719b8fca30723b52981bed686764901" title="Unmask this IRQ.">L4::Irq::unmask</a>. A return value of <span class="tt">1</span> means that the interrupt has to be unmasked via the ICU using <a class="el" href="classL4_1_1Irq__eoi.html#a2143eb2495d0135bc432efc362845483" title="Unmask the given interrupt line.">L4::Icu::unmask</a>.</dd></dl>
<dl class="retval"><dt>Return values</dt><dd>
<table class="retval">
<tr><td class="paramname">-L4_EINVAL</td><td><span class="tt">irq</span> is bound to an interrupt source. </td></tr>
<tr><td class="paramname">-L4_EPERM</td><td>Insufficient permissions; see precondition.</td></tr>
</table>
</dd>
</dl>
<dl class="section pre"><dt>Precondition</dt><dd>The capability <span class="tt">irq</span> 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>In case the <span class="tt">irq</span> is already bound to an interrupt source, it is unbound first. In case the <span class="tt">irq</span> is bound and the interrupt source is bound to a different <a class="el" href="classL4_1_1Irq.html" title="C++ Irq interface, see IRQs for the C interface.">L4::Irq</a> object, only the unbinding happens. An <a class="el" href="classL4_1_1Irq.html" title="C++ Irq interface, see IRQs for the C interface.">L4::Irq</a> object that is bound to an interrupt source will get unbound if the <a class="el" href="classL4_1_1Irq.html" title="C++ Irq interface, see IRQs for the C interface.">L4::Irq</a> object is deleted. </p>
<p class="definition">Definition at line <a class="el" href="icu_8h_source.html#l00396">396</a> of file <a class="el" href="icu_8h_source.html">icu.h</a>.</p>
<p class="reference">References <a class="el" href="____l4__fpage_8h_source.html#l00206">L4_CAP_FPAGE_RWS</a>, <a class="el" href="icu_8h_source.html#l00104">L4_ICU_OP_BIND</a>, <a class="el" href="l4_2sys_2ipc_8h_source.html#l00565">l4_ipc_call()</a>, <a class="el" href="____timeout_8h_source.html#l00076">L4_IPC_NEVER</a>, <a class="el" href="____l4__fpage_8h_source.html#l00749">l4_map_obj_control()</a>, <a class="el" href="l4_2sys_2types_8h_source.html#l00405">l4_msgtag()</a>, <a class="el" href="compiler_8h_source.html#l00161">L4_NOTHROW</a>, <a class="el" href="____l4__fpage_8h_source.html#l00715">l4_obj_fpage()</a>, <a class="el" href="l4_2sys_2types_8h_source.html#l00044">L4_PROTO_IRQ</a>, <a class="el" href="l4_2sys_2utcb_8h_source.html#l00069">l4_msg_regs_t::mr</a>, and <a class="el" href="____l4__fpage_8h_source.html#l00078">l4_fpage_t::raw</a>.</p>
<p class="reference">Referenced by <a class="el" href="irq_source.html#l00310">L4::Icu::bind()</a>, and <a class="el" href="icu_8h_source.html#l00496">l4_icu_bind()</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="group__l4__icu__api_ga29217a67f405c5d860002dd902bf71e4_cgraph.svg" width="490" 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 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="group__l4__icu__api_ga29217a67f405c5d860002dd902bf71e4_icgraph.svg" width="270" 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="ga01c207fa8b166832b7eab0c60a8f2a7b" name="ga01c207fa8b166832b7eab0c60a8f2a7b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga01c207fa8b166832b7eab0c60a8f2a7b">&#9670;&#160;</a></span>l4_icu_info()</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_icu_info </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__l4__cap__api.html#ga1445e923ce73029130d569d6e69a4dd8">l4_cap_idx_t</a></td> <td class="paramname"><span class="paramname"><em>icu</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structl4__icu__info__t.html">l4_icu_info_t</a> *</td> <td class="paramname"><span class="paramname"><em>info</em></span>&#160;)</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel inline">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Get information about the ICU features. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir"></td><td class="paramname">icu</td><td>The ICU object from which information shall be retrieved. </td></tr>
<tr><td class="paramdir">[out]</td><td class="paramname">info</td><td>Info structure to be filled with information.</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="icu_8h_source.html#l00504">504</a> of file <a class="el" href="icu_8h_source.html">icu.h</a>.</p>
<p class="reference">References <a class="el" href="icu_8h_source.html#l00420">l4_icu_info_u()</a>, <a class="el" href="compiler_8h_source.html#l00161">L4_NOTHROW</a>, and <a class="el" href="l4_2sys_2utcb_8h_source.html#l00346">l4_utcb()</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="group__l4__icu__api_ga01c207fa8b166832b7eab0c60a8f2a7b_cgraph.svg" width="504" 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="ga7850caf0c29c87ba3477e1fe1139681f" name="ga7850caf0c29c87ba3477e1fe1139681f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga7850caf0c29c87ba3477e1fe1139681f">&#9670;&#160;</a></span>l4_icu_info_u()</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_icu_info_u </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__l4__cap__api.html#ga1445e923ce73029130d569d6e69a4dd8">l4_cap_idx_t</a></td> <td class="paramname"><span class="paramname"><em>icu</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structl4__icu__info__t.html">l4_icu_info_t</a> *</td> <td class="paramname"><span class="paramname"><em>info</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>&#160;)</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel inline">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Get information about the ICU features. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir"></td><td class="paramname">icu</td><td>The ICU object from which MSI information shall be retrieved. </td></tr>
<tr><td class="paramdir">[out]</td><td class="paramname">info</td><td>Info structure to be filled with information. </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. See <a class="el" href="group__l4__utcb__api.html#gadc099b4a59e1d99638c72c11a8c8b644" title="Get the UTCB address.">l4_utcb</a>.</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Syscall return tag </dd></dl>
<p class="definition">Definition at line <a class="el" href="icu_8h_source.html#l00420">420</a> of file <a class="el" href="icu_8h_source.html">icu.h</a>.</p>
<p class="reference">References <a class="el" href="icu_8h_source.html#l00118">L4_ICU_OP_INFO</a>, <a class="el" href="l4_2sys_2ipc_8h_source.html#l00565">l4_ipc_call()</a>, <a class="el" href="____timeout_8h_source.html#l00076">L4_IPC_NEVER</a>, <a class="el" href="l4_2sys_2types_8h_source.html#l00405">l4_msgtag()</a>, <a class="el" href="compiler_8h_source.html#l00161">L4_NOTHROW</a>, <a class="el" href="l4_2sys_2types_8h_source.html#l00044">L4_PROTO_IRQ</a>, and <a class="el" href="l4_2sys_2utcb_8h_source.html#l00069">l4_msg_regs_t::mr</a>.</p>
<p class="reference">Referenced by <a class="el" href="irq_source.html#l00345">L4::Icu::info()</a>, and <a class="el" href="icu_8h_source.html#l00504">l4_icu_info()</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="group__l4__icu__api_ga7850caf0c29c87ba3477e1fe1139681f_cgraph.svg" width="364" 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 id="dynsection-6" onclick="return dynsection.toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;"><span class="dynarrow"><span class="arrowhead closed"></span></span>Here is the caller graph for this function:</div>
<div id="dynsection-6-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-6-content" class="dyncontent" style="display:none;">
<div class="center"><iframe scrolling="no" loading="lazy" frameborder="0" src="group__l4__icu__api_ga7850caf0c29c87ba3477e1fe1139681f_icgraph.svg" width="754" height="168"><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="ga69bc4ec5786b0356779e746f5828b530" name="ga69bc4ec5786b0356779e746f5828b530"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga69bc4ec5786b0356779e746f5828b530">&#9670;&#160;</a></span>l4_icu_mask()</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_icu_mask </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__l4__cap__api.html#ga1445e923ce73029130d569d6e69a4dd8">l4_cap_idx_t</a></td> <td class="paramname"><span class="paramname"><em>icu</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">unsigned</td> <td class="paramname"><span class="paramname"><em>irqnum</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group__l4__basic__types.html#ga1c2c4b333f75b1d05b59855910f2b9cb">l4_umword_t</a> *</td> <td class="paramname"><span class="paramname"><em>label</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="unionl4__timeout__t.html">l4_timeout_t</a></td> <td class="paramname"><span class="paramname"><em>to</em></span>&#160;)</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel inline">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Mask an IRQ line. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">icu</td><td>The ICU object where the IRQ line shall be masked. </td></tr>
<tr><td class="paramname">irqnum</td><td>IRQ line at the ICU. </td></tr>
<tr><td class="paramname">label</td><td>If non-NULL, the function also performs an open wait IPC operation waiting for the next message, and the received label is returned here. </td></tr>
<tr><td class="paramname">to</td><td>IPC timeout, if unsure use L4_IPC_NEVER.</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Syscall return tag. If <span class="tt">label</span> is NULL, this function performs an IPC send-only operation and there is no return value except <a class="el" href="group__l4__msgtag__api.html#gga16589e963a73c13aefd2760ce418e053aad1669664171cc979970b1e2300bd463" title="Error indicator flag.">L4_MSGTAG_ERROR</a> indicating success or failure of the send operation. In this case 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 errors and <b>do not</b> 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>. </dd></dl>
<p class="definition">Definition at line <a class="el" href="icu_8h_source.html#l00518">518</a> of file <a class="el" href="icu_8h_source.html">icu.h</a>.</p>
<p class="reference">References <a class="el" href="compiler_8h_source.html#l00161">L4_NOTHROW</a>, and <a class="el" href="l4_2sys_2utcb_8h_source.html#l00346">l4_utcb()</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="group__l4__icu__api_ga69bc4ec5786b0356779e746f5828b530_cgraph.svg" width="231" 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="gad1fc6f5aef910ca6b9b3a6c9d0f3b345" name="gad1fc6f5aef910ca6b9b3a6c9d0f3b345"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gad1fc6f5aef910ca6b9b3a6c9d0f3b345">&#9670;&#160;</a></span>l4_icu_mask_u()</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_icu_mask_u </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__l4__cap__api.html#ga1445e923ce73029130d569d6e69a4dd8">l4_cap_idx_t</a></td> <td class="paramname"><span class="paramname"><em>icu</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">unsigned</td> <td class="paramname"><span class="paramname"><em>irqnum</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group__l4__basic__types.html#ga1c2c4b333f75b1d05b59855910f2b9cb">l4_umword_t</a> *</td> <td class="paramname"><span class="paramname"><em>label</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="unionl4__timeout__t.html">l4_timeout_t</a></td> <td class="paramname"><span class="paramname"><em>to</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>&#160;)</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel inline">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Mask an IRQ line. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">icu</td><td>The ICU object where the IRQ line shall be masked. </td></tr>
<tr><td class="paramname">irqnum</td><td>IRQ line at the ICU. </td></tr>
<tr><td class="paramname">label</td><td>If NULL, this function is a send-only message to the ICU. If not NULL, this function will enter an open wait after sending the mask message and the received label is returned here. </td></tr>
<tr><td class="paramname">to</td><td>The timeout-pair (send and receive) that shall be used for this operation. The receive timeout is used with a non-NULL <span class="tt">label</span> only. </td></tr>
<tr><td class="paramname">utcb</td><td>UTCB to be used for this operation, shall be the UTCB of the calling thread. See <a class="el" href="group__l4__utcb__api.html#gadc099b4a59e1d99638c72c11a8c8b644" title="Get the UTCB address.">l4_utcb</a>.</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Syscall return tag. If <span class="tt">label</span> is NULL, this function performs an IPC send-only operation and there is no return value except <a class="el" href="group__l4__msgtag__api.html#gga16589e963a73c13aefd2760ce418e053aad1669664171cc979970b1e2300bd463" title="Error indicator flag.">L4_MSGTAG_ERROR</a> indicating success or failure of the send operation. In this case 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 errors and <b>do not</b> 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>. </dd></dl>
<p class="definition">Definition at line <a class="el" href="icu_8h_source.html#l00483">483</a> of file <a class="el" href="icu_8h_source.html">icu.h</a>.</p>
<p class="reference">References <a class="el" href="compiler_8h_source.html#l00161">L4_NOTHROW</a>.</p>
<p class="reference">Referenced by <a class="el" href="irq_source.html#l00393">L4::Icu::mask()</a>.</p>
<div id="dynsection-8" onclick="return dynsection.toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;"><span class="dynarrow"><span class="arrowhead closed"></span></span>Here is the caller graph for this function:</div>
<div id="dynsection-8-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-8-content" class="dyncontent" style="display:none;">
<div class="center"><iframe scrolling="no" loading="lazy" frameborder="0" src="group__l4__icu__api_gad1fc6f5aef910ca6b9b3a6c9d0f3b345_icgraph.svg" width="286" 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="ga626c5b32a678d274de89b2be944b6a3f" name="ga626c5b32a678d274de89b2be944b6a3f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga626c5b32a678d274de89b2be944b6a3f">&#9670;&#160;</a></span>l4_icu_msi_info()</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_icu_msi_info </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__l4__cap__api.html#ga1445e923ce73029130d569d6e69a4dd8">l4_cap_idx_t</a></td> <td class="paramname"><span class="paramname"><em>icu</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">unsigned</td> <td class="paramname"><span class="paramname"><em>irqnum</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group__l4__basic__types.html#gaf3331c485014bd12a9e4f9d27a55e689">l4_uint64_t</a></td> <td class="paramname"><span class="paramname"><em>source</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structl4__icu__msi__info__t.html">l4_icu_msi_info_t</a> *</td> <td class="paramname"><span class="paramname"><em>msi_info</em></span>&#160;)</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel inline">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Get MSI info about IRQ. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir"></td><td class="paramname">icu</td><td>The ICU object from which MSI information shall be retrieved. </td></tr>
<tr><td class="paramdir"></td><td class="paramname">irqnum</td><td>IRQ line at the ICU. </td></tr>
<tr><td class="paramdir"></td><td class="paramname">source</td><td>Platform dependent requester ID for MSIs. On IA32 we use a 20bit source filter value as described in the Intel IRQ remapping specification. </td></tr>
<tr><td class="paramdir">[out]</td><td class="paramname">msi_info</td><td>A <a class="el" href="structl4__icu__msi__info__t.html" title="Info to use for a specific MSI.">l4_icu_msi_info_t</a> structure receiving the address and the data value to trigger this MSI.</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="icu_8h_source.html#l00508">508</a> of file <a class="el" href="icu_8h_source.html">icu.h</a>.</p>
<p class="reference">References <a class="el" href="icu_8h_source.html#l00434">l4_icu_msi_info_u()</a>, <a class="el" href="compiler_8h_source.html#l00161">L4_NOTHROW</a>, and <a class="el" href="l4_2sys_2utcb_8h_source.html#l00346">l4_utcb()</a>.</p>
<div id="dynsection-9" onclick="return dynsection.toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;"><span class="dynarrow"><span class="arrowhead closed"></span></span>Here is the call graph for this function:</div>
<div id="dynsection-9-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-9-content" class="dyncontent" style="display:none;">
<div class="center"><iframe scrolling="no" loading="lazy" frameborder="0" src="group__l4__icu__api_ga626c5b32a678d274de89b2be944b6a3f_cgraph.svg" width="635" height="234"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div>
</div>
</div>
</div>
<a id="ga0c5c381566e2e9a8dbb41f14e33c4437" name="ga0c5c381566e2e9a8dbb41f14e33c4437"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga0c5c381566e2e9a8dbb41f14e33c4437">&#9670;&#160;</a></span>l4_icu_msi_info_u()</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_icu_msi_info_u </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__l4__cap__api.html#ga1445e923ce73029130d569d6e69a4dd8">l4_cap_idx_t</a></td> <td class="paramname"><span class="paramname"><em>icu</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">unsigned</td> <td class="paramname"><span class="paramname"><em>irqnum</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group__l4__basic__types.html#gaf3331c485014bd12a9e4f9d27a55e689">l4_uint64_t</a></td> <td class="paramname"><span class="paramname"><em>source</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structl4__icu__msi__info__t.html">l4_icu_msi_info_t</a> *</td> <td class="paramname"><span class="paramname"><em>msi_info</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>&#160;)</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel inline">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Get MSI info about IRQ. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<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. See <a class="el" href="group__l4__utcb__api.html#gadc099b4a59e1d99638c72c11a8c8b644" title="Get the UTCB address.">l4_utcb</a>. </td></tr>
<tr><td class="paramdir"></td><td class="paramname">icu</td><td>The ICU object from which MSI information shall be retrieved. </td></tr>
<tr><td class="paramdir"></td><td class="paramname">irqnum</td><td>IRQ line at the ICU. </td></tr>
<tr><td class="paramdir"></td><td class="paramname">source</td><td>Platform dependent requester ID for MSIs. On IA32 we use a 20bit source filter value as described in the Intel IRQ remapping specification. </td></tr>
<tr><td class="paramdir">[out]</td><td class="paramname">msi_info</td><td>A <a class="el" href="structl4__icu__msi__info__t.html" title="Info to use for a specific MSI.">l4_icu_msi_info_t</a> structure receiving the address and the data value to trigger this MSI.</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="icu_8h_source.html#l00434">434</a> of file <a class="el" href="icu_8h_source.html">icu.h</a>.</p>
<p class="reference">References <a class="el" href="icu_8h_source.html#l00125">L4_ICU_OP_MSI_INFO</a>, <a class="el" href="l4_2sys_2ipc_8h_source.html#l00565">l4_ipc_call()</a>, <a class="el" href="____timeout_8h_source.html#l00076">L4_IPC_NEVER</a>, <a class="el" href="l4_2sys_2types_8h_source.html#l00405">l4_msgtag()</a>, <a class="el" href="l4_2sys_2types_8h_source.html#l00440">l4_msgtag_has_error()</a>, <a class="el" href="l4_2sys_2types_8h_source.html#l00427">l4_msgtag_words()</a>, <a class="el" href="compiler_8h_source.html#l00161">L4_NOTHROW</a>, <a class="el" href="l4_2sys_2types_8h_source.html#l00044">L4_PROTO_IRQ</a>, <a class="el" href="compiler_8h_source.html#l00284">L4_UNLIKELY</a>, <a class="el" href="l4_2sys_2utcb_8h_source.html#l00392">l4_utcb_mr64_idx()</a>, <a class="el" href="l4_2sys_2utcb_8h_source.html#l00069">l4_msg_regs_t::mr</a>, and <a class="el" href="l4_2sys_2utcb_8h_source.html#l00070">l4_msg_regs_t::mr64</a>.</p>
<p class="reference">Referenced by <a class="el" href="icu_8h_source.html#l00508">l4_icu_msi_info()</a>.</p>
<div id="dynsection-10" onclick="return dynsection.toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;"><span class="dynarrow"><span class="arrowhead closed"></span></span>Here is the call graph for this function:</div>
<div id="dynsection-10-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-10-content" class="dyncontent" style="display:none;">
<div class="center"><iframe scrolling="no" loading="lazy" frameborder="0" src="group__l4__icu__api_ga0c5c381566e2e9a8dbb41f14e33c4437_cgraph.svg" width="464" height="234"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div>
</div>
<div id="dynsection-11" onclick="return dynsection.toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;"><span class="dynarrow"><span class="arrowhead closed"></span></span>Here is the caller graph for this function:</div>
<div id="dynsection-11-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-11-content" class="dyncontent" style="display:none;">
<div class="center"><iframe scrolling="no" loading="lazy" frameborder="0" src="group__l4__icu__api_ga0c5c381566e2e9a8dbb41f14e33c4437_icgraph.svg" width="320" 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="gad387684dcc6b4838f1d4f466e1aeef6f" name="gad387684dcc6b4838f1d4f466e1aeef6f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gad387684dcc6b4838f1d4f466e1aeef6f">&#9670;&#160;</a></span>l4_icu_set_mode()</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_icu_set_mode </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__l4__cap__api.html#ga1445e923ce73029130d569d6e69a4dd8">l4_cap_idx_t</a></td> <td class="paramname"><span class="paramname"><em>icu</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">unsigned</td> <td class="paramname"><span class="paramname"><em>irqnum</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group__l4__basic__types.html#ga1c2c4b333f75b1d05b59855910f2b9cb">l4_umword_t</a></td> <td class="paramname"><span class="paramname"><em>mode</em></span>&#160;)</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel inline">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Set interrupt mode. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">icu</td><td>The ICU object. </td></tr>
<tr><td class="paramname">irqnum</td><td>IRQ line at the ICU. </td></tr>
<tr><td class="paramname">mode</td><td>Mode, see <a class="el" href="group__l4__irq__api.html#gac862068761c98665b621f946aecef120" title="Interrupt attributes.">L4_irq_mode</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="icu_8h_source.html#l00523">523</a> of file <a class="el" href="icu_8h_source.html">icu.h</a>.</p>
<p class="reference">References <a class="el" href="icu_8h_source.html#l00457">l4_icu_set_mode_u()</a>, <a class="el" href="compiler_8h_source.html#l00161">L4_NOTHROW</a>, and <a class="el" href="l4_2sys_2utcb_8h_source.html#l00346">l4_utcb()</a>.</p>
<div id="dynsection-12" onclick="return dynsection.toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;"><span class="dynarrow"><span class="arrowhead closed"></span></span>Here is the call graph for this function:</div>
<div id="dynsection-12-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-12-content" class="dyncontent" style="display:none;">
<div class="center"><iframe scrolling="no" loading="lazy" frameborder="0" src="group__l4__icu__api_gad387684dcc6b4838f1d4f466e1aeef6f_cgraph.svg" width="583" 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="gac43905e779ca41f20c9cd23fb28ac095" name="gac43905e779ca41f20c9cd23fb28ac095"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gac43905e779ca41f20c9cd23fb28ac095">&#9670;&#160;</a></span>l4_icu_set_mode_u()</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_icu_set_mode_u </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__l4__cap__api.html#ga1445e923ce73029130d569d6e69a4dd8">l4_cap_idx_t</a></td> <td class="paramname"><span class="paramname"><em>icu</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">unsigned</td> <td class="paramname"><span class="paramname"><em>irqnum</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group__l4__basic__types.html#ga1c2c4b333f75b1d05b59855910f2b9cb">l4_umword_t</a></td> <td class="paramname"><span class="paramname"><em>mode</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>&#160;)</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel inline">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Set interrupt mode. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">icu</td><td>The ICU object. </td></tr>
<tr><td class="paramname">irqnum</td><td>IRQ line at the ICU. </td></tr>
<tr><td class="paramname">mode</td><td>Mode, see <a class="el" href="group__l4__irq__api.html#gac862068761c98665b621f946aecef120" title="Interrupt attributes.">L4_irq_mode</a>. </td></tr>
<tr><td class="paramname">utcb</td><td>UTCB to be used for this operation, shall be the UTCB of the calling thread. See <a class="el" href="group__l4__utcb__api.html#gadc099b4a59e1d99638c72c11a8c8b644" title="Get the UTCB address.">l4_utcb</a>.</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Syscall return tag </dd></dl>
<p class="definition">Definition at line <a class="el" href="icu_8h_source.html#l00457">457</a> of file <a class="el" href="icu_8h_source.html">icu.h</a>.</p>
<p class="reference">References <a class="el" href="icu_8h_source.html#l00146">L4_ICU_OP_SET_MODE</a>, <a class="el" href="l4_2sys_2ipc_8h_source.html#l00565">l4_ipc_call()</a>, <a class="el" href="____timeout_8h_source.html#l00076">L4_IPC_NEVER</a>, <a class="el" href="l4_2sys_2types_8h_source.html#l00405">l4_msgtag()</a>, <a class="el" href="compiler_8h_source.html#l00161">L4_NOTHROW</a>, <a class="el" href="l4_2sys_2types_8h_source.html#l00044">L4_PROTO_IRQ</a>, and <a class="el" href="l4_2sys_2utcb_8h_source.html#l00069">l4_msg_regs_t::mr</a>.</p>
<p class="reference">Referenced by <a class="el" href="icu_8h_source.html#l00523">l4_icu_set_mode()</a>, and <a class="el" href="irq_source.html#l00421">L4::Icu::set_mode()</a>.</p>
<div id="dynsection-13" onclick="return dynsection.toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;"><span class="dynarrow"><span class="arrowhead closed"></span></span>Here is the call graph for this function:</div>
<div id="dynsection-13-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-13-content" class="dyncontent" style="display:none;">
<div class="center"><iframe scrolling="no" loading="lazy" frameborder="0" src="group__l4__icu__api_gac43905e779ca41f20c9cd23fb28ac095_cgraph.svg" width="404" 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 id="dynsection-14" onclick="return dynsection.toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;"><span class="dynarrow"><span class="arrowhead closed"></span></span>Here is the caller graph for this function:</div>
<div id="dynsection-14-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-14-content" class="dyncontent" style="display:none;">
<div class="center"><iframe scrolling="no" loading="lazy" frameborder="0" src="group__l4__icu__api_gac43905e779ca41f20c9cd23fb28ac095_icgraph.svg" width="342" 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="ga77d613300601861b13605e7687146dc5" name="ga77d613300601861b13605e7687146dc5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga77d613300601861b13605e7687146dc5">&#9670;&#160;</a></span>l4_icu_unbind()</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_icu_unbind </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__l4__cap__api.html#ga1445e923ce73029130d569d6e69a4dd8">l4_cap_idx_t</a></td> <td class="paramname"><span class="paramname"><em>icu</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">unsigned</td> <td class="paramname"><span class="paramname"><em>irqnum</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group__l4__cap__api.html#ga1445e923ce73029130d569d6e69a4dd8">l4_cap_idx_t</a></td> <td class="paramname"><span class="paramname"><em>irq</em></span>&#160;)</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel inline">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Remove binding of an interrupt line from the interrupt controller object. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">icu</td><td>The ICU object from where the binding shall be removed. </td></tr>
<tr><td class="paramname">irqnum</td><td>IRQ line at the ICU. </td></tr>
<tr><td class="paramname">irq</td><td>IRQ object to remove from the ICU.</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="icu_8h_source.html#l00500">500</a> of file <a class="el" href="icu_8h_source.html">icu.h</a>.</p>
<p class="reference">References <a class="el" href="icu_8h_source.html#l00408">l4_icu_unbind_u()</a>, <a class="el" href="compiler_8h_source.html#l00161">L4_NOTHROW</a>, and <a class="el" href="l4_2sys_2utcb_8h_source.html#l00346">l4_utcb()</a>.</p>
<div id="dynsection-15" onclick="return dynsection.toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;"><span class="dynarrow"><span class="arrowhead closed"></span></span>Here is the call graph for this function:</div>
<div id="dynsection-15-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-15-content" class="dyncontent" style="display:none;">
<div class="center"><iframe scrolling="no" loading="lazy" frameborder="0" src="group__l4__icu__api_ga77d613300601861b13605e7687146dc5_cgraph.svg" width="664" 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>
<a id="gae74204b8f2101e176add646ec2958182" name="gae74204b8f2101e176add646ec2958182"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gae74204b8f2101e176add646ec2958182">&#9670;&#160;</a></span>l4_icu_unbind_u()</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_icu_unbind_u </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__l4__cap__api.html#ga1445e923ce73029130d569d6e69a4dd8">l4_cap_idx_t</a></td> <td class="paramname"><span class="paramname"><em>icu</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">unsigned</td> <td class="paramname"><span class="paramname"><em>irqnum</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group__l4__cap__api.html#ga1445e923ce73029130d569d6e69a4dd8">l4_cap_idx_t</a></td> <td class="paramname"><span class="paramname"><em>irq</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>&#160;)</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel inline">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Remove binding of an interrupt line from the interrupt controller object. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">icu</td><td>The ICU object from where the binding shall be removed. </td></tr>
<tr><td class="paramname">irqnum</td><td>IRQ line at the ICU. </td></tr>
<tr><td class="paramname">irq</td><td>IRQ object to remove from the ICU. </td></tr>
<tr><td class="paramname">utcb</td><td>UTCB to be used for this operation, shall be the UTCB of the calling thread. See <a class="el" href="group__l4__utcb__api.html#gadc099b4a59e1d99638c72c11a8c8b644" title="Get the UTCB address.">l4_utcb</a>.</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Syscall return tag </dd></dl>
<p class="definition">Definition at line <a class="el" href="icu_8h_source.html#l00408">408</a> of file <a class="el" href="icu_8h_source.html">icu.h</a>.</p>
<p class="reference">References <a class="el" href="____l4__fpage_8h_source.html#l00206">L4_CAP_FPAGE_RWS</a>, <a class="el" href="icu_8h_source.html#l00111">L4_ICU_OP_UNBIND</a>, <a class="el" href="l4_2sys_2ipc_8h_source.html#l00565">l4_ipc_call()</a>, <a class="el" href="____timeout_8h_source.html#l00076">L4_IPC_NEVER</a>, <a class="el" href="____l4__fpage_8h_source.html#l00749">l4_map_obj_control()</a>, <a class="el" href="l4_2sys_2types_8h_source.html#l00405">l4_msgtag()</a>, <a class="el" href="compiler_8h_source.html#l00161">L4_NOTHROW</a>, <a class="el" href="____l4__fpage_8h_source.html#l00715">l4_obj_fpage()</a>, <a class="el" href="l4_2sys_2types_8h_source.html#l00044">L4_PROTO_IRQ</a>, <a class="el" href="l4_2sys_2utcb_8h_source.html#l00069">l4_msg_regs_t::mr</a>, and <a class="el" href="____l4__fpage_8h_source.html#l00078">l4_fpage_t::raw</a>.</p>
<p class="reference">Referenced by <a class="el" href="icu_8h_source.html#l00500">l4_icu_unbind()</a>, and <a class="el" href="irq_source.html#l00328">L4::Icu::unbind()</a>.</p>
<div id="dynsection-16" 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-16-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-16-content" class="dyncontent" style="display:none;">
<div class="center"><iframe scrolling="no" loading="lazy" frameborder="0" src="group__l4__icu__api_gae74204b8f2101e176add646ec2958182_cgraph.svg" width="506" 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 id="dynsection-17" 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-17-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-17-content" class="dyncontent" style="display:none;">
<div class="center"><iframe scrolling="no" loading="lazy" frameborder="0" src="group__l4__icu__api_gae74204b8f2101e176add646ec2958182_icgraph.svg" width="302" 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="gaab0c2827a3cf3eccf79a87f8069aa167" name="gaab0c2827a3cf3eccf79a87f8069aa167"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaab0c2827a3cf3eccf79a87f8069aa167">&#9670;&#160;</a></span>l4_icu_unmask()</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_icu_unmask </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__l4__cap__api.html#ga1445e923ce73029130d569d6e69a4dd8">l4_cap_idx_t</a></td> <td class="paramname"><span class="paramname"><em>icu</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">unsigned</td> <td class="paramname"><span class="paramname"><em>irqnum</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group__l4__basic__types.html#ga1c2c4b333f75b1d05b59855910f2b9cb">l4_umword_t</a> *</td> <td class="paramname"><span class="paramname"><em>label</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="unionl4__timeout__t.html">l4_timeout_t</a></td> <td class="paramname"><span class="paramname"><em>to</em></span>&#160;)</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel inline">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Unmask an IRQ line. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">icu</td><td>The ICU object where the IRQ line shall be unmasked. </td></tr>
<tr><td class="paramname">irqnum</td><td>IRQ line at the ICU. </td></tr>
<tr><td class="paramname">label</td><td>If non-NULL, the function also performs an open wait IPC operation waiting for the next message, and the received label is returned here. </td></tr>
<tr><td class="paramname">to</td><td>IPC timeout, if unsure use L4_IPC_NEVER.</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Syscall return tag. If <span class="tt">label</span> is NULL, this function performs an IPC send-only operation and there is no return value except <a class="el" href="group__l4__msgtag__api.html#gga16589e963a73c13aefd2760ce418e053aad1669664171cc979970b1e2300bd463" title="Error indicator flag.">L4_MSGTAG_ERROR</a> indicating success or failure of the send operation. In this case 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 errors and <b>do not</b> 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>. </dd></dl>
<p class="definition">Definition at line <a class="el" href="icu_8h_source.html#l00513">513</a> of file <a class="el" href="icu_8h_source.html">icu.h</a>.</p>
<p class="reference">References <a class="el" href="compiler_8h_source.html#l00161">L4_NOTHROW</a>, and <a class="el" href="l4_2sys_2utcb_8h_source.html#l00346">l4_utcb()</a>.</p>
<div id="dynsection-18" 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-18-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-18-content" class="dyncontent" style="display:none;">
<div class="center"><iframe scrolling="no" loading="lazy" frameborder="0" src="group__l4__icu__api_gaab0c2827a3cf3eccf79a87f8069aa167_cgraph.svg" width="247" 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="ga9cd1fe6280e7cfb4c738ef27201e5919" name="ga9cd1fe6280e7cfb4c738ef27201e5919"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga9cd1fe6280e7cfb4c738ef27201e5919">&#9670;&#160;</a></span>l4_icu_unmask_u()</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_icu_unmask_u </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__l4__cap__api.html#ga1445e923ce73029130d569d6e69a4dd8">l4_cap_idx_t</a></td> <td class="paramname"><span class="paramname"><em>icu</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">unsigned</td> <td class="paramname"><span class="paramname"><em>irqnum</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group__l4__basic__types.html#ga1c2c4b333f75b1d05b59855910f2b9cb">l4_umword_t</a> *</td> <td class="paramname"><span class="paramname"><em>label</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="unionl4__timeout__t.html">l4_timeout_t</a></td> <td class="paramname"><span class="paramname"><em>to</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>&#160;)</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel inline">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Unmask the given interrupt line. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">icu</td><td>The ICU object where the IRQ line shall be unmasked. When the object is an IRQ, the given interrupt line is ignored and instead the line which the IRQ is bound to (if any) is unmasked.</td></tr>
</table>
</dd>
</dl>
<p>Its counterpart for explicitly masking an interrupt line is <a class="el" href="classL4_1_1Icu.html#ab58aa015a5216a0dece5d85089b42aaa" title="Mask an IRQ line.">L4::Icu::mask()</a>.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir"></td><td class="paramname">irqnum</td><td>The interrupt line that shall be unmasked. Ignored if the object is an IRQ. </td></tr>
<tr><td class="paramdir">[out]</td><td class="paramname">label</td><td>If NULL, this is a send-only unmask. If not NULL, this operation enters an open wait and the <em>protected label</em> shall be received here. </td></tr>
<tr><td class="paramdir"></td><td class="paramname">to</td><td>The timeout-pair (send and receive) that shall be used for this operation. The receive timeout is used with a non-NULL <span class="tt">label</span> only. </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. See <a class="el" href="group__l4__utcb__api.html#gadc099b4a59e1d99638c72c11a8c8b644" title="Get the UTCB address.">l4_utcb</a>.</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Syscall return tag. If <span class="tt">label</span> is NULL, this function performs an IPC send-only operation and there is no return value except <a class="el" href="group__l4__msgtag__api.html#gga16589e963a73c13aefd2760ce418e053aad1669664171cc979970b1e2300bd463" title="Error indicator flag.">L4_MSGTAG_ERROR</a> indicating success or failure of the send operation. In this case 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 errors and <b>do not</b> 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>. </dd></dl>
<p class="definition">Definition at line <a class="el" href="icu_8h_source.html#l00488">488</a> of file <a class="el" href="icu_8h_source.html">icu.h</a>.</p>
<p class="reference">References <a class="el" href="compiler_8h_source.html#l00161">L4_NOTHROW</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="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>