679 lines
42 KiB
HTML
679 lines
42 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: IO interface</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__api__l4io.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">IO interface </div></div>
|
|
</div><!--header-->
|
|
<div class="contents">
|
|
<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:ga670971c40db8bf19d59ec27554c16846" id="r_ga670971c40db8bf19d59ec27554c16846"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="structl4vbus__resource__t.html">l4vbus_resource_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="#ga670971c40db8bf19d59ec27554c16846">l4io_resource_t</a></td></tr>
|
|
<tr class="memdesc:ga670971c40db8bf19d59ec27554c16846"><td class="mdescLeft"> </td><td class="mdescRight">Resource descriptor. <br /></td></tr>
|
|
<tr class="memitem:gad0f2866fa8c00afd55565cc4495093f7" id="r_gad0f2866fa8c00afd55565cc4495093f7"><td class="memItemLeft" align="right" valign="top"><a id="gad0f2866fa8c00afd55565cc4495093f7" name="gad0f2866fa8c00afd55565cc4495093f7"></a>
|
|
typedef <a class="el" href="structl4vbus__device__t.html">l4vbus_device_t</a> </td><td class="memItemRight" valign="bottom"><b>l4io_device_t</b></td></tr>
|
|
<tr class="memdesc:gad0f2866fa8c00afd55565cc4495093f7"><td class="mdescLeft"> </td><td class="mdescRight">Device descriptor. <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:ga29b4734c723308bfd444e9c12dd84068" id="r_ga29b4734c723308bfd444e9c12dd84068"><td class="memItemLeft" align="right" valign="top">enum  </td><td class="memItemRight" valign="bottom"><a class="el" href="#ga29b4734c723308bfd444e9c12dd84068">l4io_iomem_flags_t</a> { <br />
|
|
  <a class="el" href="#gga29b4734c723308bfd444e9c12dd84068a711f4d3089eeeade5723d103b165265d">L4IO_MEM_NONCACHED</a> = 0
|
|
, <a class="el" href="#gga29b4734c723308bfd444e9c12dd84068a585f0e7f2e8dde132749255399a47506">L4IO_MEM_CACHED</a> = 1
|
|
, <a class="el" href="#gga29b4734c723308bfd444e9c12dd84068a8fc345abd419804849a1088befb423d4">L4IO_MEM_USE_MTRR</a> = 2
|
|
, <b>L4IO_MEM_ATTR_MASK</b> = 0xf
|
|
, <br />
|
|
  <b>L4IO_MEM_WRITE_COMBINED</b> = L4IO_MEM_USE_MTRR | L4IO_MEM_CACHED
|
|
, <a class="el" href="#gga29b4734c723308bfd444e9c12dd84068a9d62ed1e5b9ec0feba603dd7d5372a7c">L4IO_MEM_USE_RESERVED_AREA</a> = 0x40 << 8
|
|
, <a class="el" href="#gga29b4734c723308bfd444e9c12dd84068aaa873a461bebbc2cc7e7eced1bf0c077">L4IO_MEM_EAGER_MAP</a> = 0x80 << 8
|
|
<br />
|
|
}</td></tr>
|
|
<tr class="memdesc:ga29b4734c723308bfd444e9c12dd84068"><td class="mdescLeft"> </td><td class="mdescRight">Flags for IO memory. <a href="#ga29b4734c723308bfd444e9c12dd84068">More...</a><br /></td></tr>
|
|
<tr class="memitem:gae7454fb525769c120ca3c3e7515f3919" id="r_gae7454fb525769c120ca3c3e7515f3919"><td class="memItemLeft" align="right" valign="top">enum  </td><td class="memItemRight" valign="bottom"><a class="el" href="#gae7454fb525769c120ca3c3e7515f3919">l4io_device_types_t</a> { <br />
|
|
  <a class="el" href="#ggae7454fb525769c120ca3c3e7515f3919a6cb826731a1e977aa671376f143478d8">L4IO_DEVICE_INVALID</a> = 0
|
|
, <a class="el" href="#ggae7454fb525769c120ca3c3e7515f3919a09f2aa4116779149f54ff3a997417318">L4IO_DEVICE_PCI</a>
|
|
, <a class="el" href="#ggae7454fb525769c120ca3c3e7515f3919ab5e5a4c4f1eeebeb1204a955b465f860">L4IO_DEVICE_USB</a>
|
|
, <a class="el" href="#ggae7454fb525769c120ca3c3e7515f3919a1b1ff278d25083a9cd234cae6d264ba9">L4IO_DEVICE_OTHER</a>
|
|
, <br />
|
|
  <a class="el" href="#ggae7454fb525769c120ca3c3e7515f3919a3e5f3f800fd1dcf331e03fbed495d725">L4IO_DEVICE_ANY</a> = ~0
|
|
<br />
|
|
}</td></tr>
|
|
<tr class="memdesc:gae7454fb525769c120ca3c3e7515f3919"><td class="mdescLeft"> </td><td class="mdescRight">Device types. <a href="#gae7454fb525769c120ca3c3e7515f3919">More...</a><br /></td></tr>
|
|
<tr class="memitem:gacf9118b0abd79afae218d87c3998706e" id="r_gacf9118b0abd79afae218d87c3998706e"><td class="memItemLeft" align="right" valign="top">enum  </td><td class="memItemRight" valign="bottom"><a class="el" href="#gacf9118b0abd79afae218d87c3998706e">l4io_resource_types_t</a> { <br />
|
|
  <a class="el" href="#ggacf9118b0abd79afae218d87c3998706ea4c43587af7adb25be6e8f7a0a8555ed3">L4IO_RESOURCE_INVALID</a> = L4VBUS_RESOURCE_INVALID
|
|
, <a class="el" href="#ggacf9118b0abd79afae218d87c3998706eabb96f43367c79b2cd95e7d13573f2570">L4IO_RESOURCE_IRQ</a> = L4VBUS_RESOURCE_IRQ
|
|
, <a class="el" href="#ggacf9118b0abd79afae218d87c3998706eae96007b4ba2a646ed580cd8cf7d9dadc">L4IO_RESOURCE_MEM</a> = L4VBUS_RESOURCE_MEM
|
|
, <a class="el" href="#ggacf9118b0abd79afae218d87c3998706ea9f133e814742f599d4baa597d5982579">L4IO_RESOURCE_PORT</a> = L4VBUS_RESOURCE_PORT
|
|
, <br />
|
|
  <a class="el" href="#ggacf9118b0abd79afae218d87c3998706ea4bf8311422a7cdc0fcd21bdae8f3fa0d">L4IO_RESOURCE_ANY</a> = ~0
|
|
<br />
|
|
}</td></tr>
|
|
<tr class="memdesc:gacf9118b0abd79afae218d87c3998706e"><td class="mdescLeft"> </td><td class="mdescRight">Resource types. <a href="#gacf9118b0abd79afae218d87c3998706e">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:ga5a5ac16d0a8a479a864027900e4f3374" id="r_ga5a5ac16d0a8a479a864027900e4f3374"><td class="memItemLeft" align="right" valign="top">long </td><td class="memItemRight" valign="bottom"><a class="el" href="#ga5a5ac16d0a8a479a864027900e4f3374">l4io_request_iomem</a> (<a class="el" href="group__l4__basic__types.html#ga4087b991c40c0d2fcde9ca331049a4d4">l4_addr_t</a> phys, unsigned long size, int flags, <a class="el" href="group__l4__basic__types.html#ga4087b991c40c0d2fcde9ca331049a4d4">l4_addr_t</a> *virt)</td></tr>
|
|
<tr class="memdesc:ga5a5ac16d0a8a479a864027900e4f3374"><td class="mdescLeft"> </td><td class="mdescRight">Request an IO memory region. <br /></td></tr>
|
|
<tr class="memitem:gaee2262febf0fdc1619cabb1091ed6936" id="r_gaee2262febf0fdc1619cabb1091ed6936"><td class="memItemLeft" align="right" valign="top">long </td><td class="memItemRight" valign="bottom"><a class="el" href="#gaee2262febf0fdc1619cabb1091ed6936">l4io_request_iomem_region</a> (<a class="el" href="group__l4__basic__types.html#ga4087b991c40c0d2fcde9ca331049a4d4">l4_addr_t</a> phys, <a class="el" href="group__l4__basic__types.html#ga4087b991c40c0d2fcde9ca331049a4d4">l4_addr_t</a> virt, unsigned long size, int flags)</td></tr>
|
|
<tr class="memdesc:gaee2262febf0fdc1619cabb1091ed6936"><td class="mdescLeft"> </td><td class="mdescRight">Request an IO memory region and map it to a specified region. <br /></td></tr>
|
|
<tr class="memitem:ga53ec000ff724338cf0caf5cc8eaf9847" id="r_ga53ec000ff724338cf0caf5cc8eaf9847"><td class="memItemLeft" align="right" valign="top">long </td><td class="memItemRight" valign="bottom"><a class="el" href="#ga53ec000ff724338cf0caf5cc8eaf9847">l4io_release_iomem</a> (<a class="el" href="group__l4__basic__types.html#ga4087b991c40c0d2fcde9ca331049a4d4">l4_addr_t</a> virt, unsigned long size)</td></tr>
|
|
<tr class="memdesc:ga53ec000ff724338cf0caf5cc8eaf9847"><td class="mdescLeft"> </td><td class="mdescRight">Release an IO memory region. <br /></td></tr>
|
|
<tr class="memitem:ga4157f860899b502fa9679797a0a513b6" id="r_ga4157f860899b502fa9679797a0a513b6"><td class="memItemLeft" align="right" valign="top">long </td><td class="memItemRight" valign="bottom"><a class="el" href="#ga4157f860899b502fa9679797a0a513b6">l4io_request_ioport</a> (unsigned portnum, unsigned len)</td></tr>
|
|
<tr class="memdesc:ga4157f860899b502fa9679797a0a513b6"><td class="mdescLeft"> </td><td class="mdescRight">Request an IO port region. <br /></td></tr>
|
|
<tr class="memitem:ga7b69f6794cd08221f1725db7660a6646" id="r_ga7b69f6794cd08221f1725db7660a6646"><td class="memItemLeft" align="right" valign="top">long </td><td class="memItemRight" valign="bottom"><a class="el" href="#ga7b69f6794cd08221f1725db7660a6646">l4io_release_ioport</a> (unsigned portnum, unsigned len)</td></tr>
|
|
<tr class="memdesc:ga7b69f6794cd08221f1725db7660a6646"><td class="mdescLeft"> </td><td class="mdescRight">Release an IO port region. <br /></td></tr>
|
|
<tr class="memitem:gaa127162dc0e8edd5e09c4ef1abfd12d2" id="r_gaa127162dc0e8edd5e09c4ef1abfd12d2"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="#gaa127162dc0e8edd5e09c4ef1abfd12d2">l4io_lookup_device</a> (const char *devname, l4io_device_handle_t *dev_handle, <a class="el" href="#gad0f2866fa8c00afd55565cc4495093f7">l4io_device_t</a> *dev, l4io_resource_handle_t *res_handle)</td></tr>
|
|
<tr class="memdesc:gaa127162dc0e8edd5e09c4ef1abfd12d2"><td class="mdescLeft"> </td><td class="mdescRight">Find a device by name. <br /></td></tr>
|
|
<tr class="memitem:ga74ad87dcf2e70388651b23c7d51d3ed1" id="r_ga74ad87dcf2e70388651b23c7d51d3ed1"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="#ga74ad87dcf2e70388651b23c7d51d3ed1">l4io_lookup_resource</a> (l4io_device_handle_t devhandle, enum <a class="el" href="#gacf9118b0abd79afae218d87c3998706e">l4io_resource_types_t</a> type, l4io_resource_handle_t *reshandle, <a class="el" href="#ga670971c40db8bf19d59ec27554c16846">l4io_resource_t</a> *res)</td></tr>
|
|
<tr class="memdesc:ga74ad87dcf2e70388651b23c7d51d3ed1"><td class="mdescLeft"> </td><td class="mdescRight">Request a specific resource from a device description. <br /></td></tr>
|
|
<tr class="memitem:gac2ec7fad588b7d3d64090651aff6fd50" id="r_gac2ec7fad588b7d3d64090651aff6fd50"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__l4__basic__types.html#ga4087b991c40c0d2fcde9ca331049a4d4">l4_addr_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="#gac2ec7fad588b7d3d64090651aff6fd50">l4io_request_resource_iomem</a> (l4io_device_handle_t devhandle, l4io_resource_handle_t *reshandle)</td></tr>
|
|
<tr class="memdesc:gac2ec7fad588b7d3d64090651aff6fd50"><td class="mdescLeft"> </td><td class="mdescRight">Request IO memory. <br /></td></tr>
|
|
<tr class="memitem:gaa1c8b03a2c57a4365f0cf366549e6ed9" id="r_gaa1c8b03a2c57a4365f0cf366549e6ed9"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="#gaa1c8b03a2c57a4365f0cf366549e6ed9">l4io_has_resource</a> (enum <a class="el" href="#gacf9118b0abd79afae218d87c3998706e">l4io_resource_types_t</a> type, <a class="el" href="vbus__types_8h.html#ad8368693052dd0e492223f4751c48ca1">l4vbus_paddr_t</a> start, <a class="el" href="vbus__types_8h.html#ad8368693052dd0e492223f4751c48ca1">l4vbus_paddr_t</a> end)</td></tr>
|
|
<tr class="memdesc:gaa1c8b03a2c57a4365f0cf366549e6ed9"><td class="mdescLeft"> </td><td class="mdescRight">Check if a resource is available. <br /></td></tr>
|
|
</table>
|
|
<a name="details" id="details"></a><h2 id="header-details" class="groupheader">Detailed Description</h2>
|
|
<a name="doc-typedef-members" id="doc-typedef-members"></a><h2 id="header-doc-typedef-members" class="groupheader">Typedef Documentation</h2>
|
|
<a id="ga670971c40db8bf19d59ec27554c16846" name="ga670971c40db8bf19d59ec27554c16846"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#ga670971c40db8bf19d59ec27554c16846">◆ </a></span>l4io_resource_t</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">typedef <a class="el" href="structl4vbus__resource__t.html">l4vbus_resource_t</a> <a class="el" href="#ga670971c40db8bf19d59ec27554c16846">l4io_resource_t</a></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Resource descriptor. </p>
|
|
<p>For IRQ types, the end field is not used, i.e. only a single interrupt can be described with a <a class="el" href="#ga670971c40db8bf19d59ec27554c16846" title="Resource descriptor.">l4io_resource_t</a> </p>
|
|
|
|
<p class="definition">Definition at line <a class="el" href="contrib_2libio-io_2l4_2io_2types_8h_source.html#l00067">67</a> of file <a class="el" href="contrib_2libio-io_2l4_2io_2types_8h_source.html">types.h</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a name="doc-enum-members" id="doc-enum-members"></a><h2 id="header-doc-enum-members" class="groupheader">Enumeration Type Documentation</h2>
|
|
<a id="gae7454fb525769c120ca3c3e7515f3919" name="gae7454fb525769c120ca3c3e7515f3919"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#gae7454fb525769c120ca3c3e7515f3919">◆ </a></span>l4io_device_types_t</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">enum <a class="el" href="#gae7454fb525769c120ca3c3e7515f3919">l4io_device_types_t</a></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Device types. </p>
|
|
<table class="fieldtable">
|
|
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="ggae7454fb525769c120ca3c3e7515f3919a6cb826731a1e977aa671376f143478d8" name="ggae7454fb525769c120ca3c3e7515f3919a6cb826731a1e977aa671376f143478d8"></a>L4IO_DEVICE_INVALID </td><td class="fielddoc"><p>Invalid type. </p>
|
|
</td></tr>
|
|
<tr><td class="fieldname"><a id="ggae7454fb525769c120ca3c3e7515f3919a09f2aa4116779149f54ff3a997417318" name="ggae7454fb525769c120ca3c3e7515f3919a09f2aa4116779149f54ff3a997417318"></a>L4IO_DEVICE_PCI </td><td class="fielddoc"><p>PCI device. </p>
|
|
</td></tr>
|
|
<tr><td class="fieldname"><a id="ggae7454fb525769c120ca3c3e7515f3919ab5e5a4c4f1eeebeb1204a955b465f860" name="ggae7454fb525769c120ca3c3e7515f3919ab5e5a4c4f1eeebeb1204a955b465f860"></a>L4IO_DEVICE_USB </td><td class="fielddoc"><p>USB device. </p>
|
|
</td></tr>
|
|
<tr><td class="fieldname"><a id="ggae7454fb525769c120ca3c3e7515f3919a1b1ff278d25083a9cd234cae6d264ba9" name="ggae7454fb525769c120ca3c3e7515f3919a1b1ff278d25083a9cd234cae6d264ba9"></a>L4IO_DEVICE_OTHER </td><td class="fielddoc"><p>Any other device without unique IDs. </p>
|
|
</td></tr>
|
|
<tr><td class="fieldname"><a id="ggae7454fb525769c120ca3c3e7515f3919a3e5f3f800fd1dcf331e03fbed495d725" name="ggae7454fb525769c120ca3c3e7515f3919a3e5f3f800fd1dcf331e03fbed495d725"></a>L4IO_DEVICE_ANY </td><td class="fielddoc"><p>any type </p>
|
|
</td></tr>
|
|
</table>
|
|
|
|
<p class="definition">Definition at line <a class="el" href="contrib_2libio-io_2l4_2io_2types_8h_source.html#l00036">36</a> of file <a class="el" href="contrib_2libio-io_2l4_2io_2types_8h_source.html">types.h</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="ga29b4734c723308bfd444e9c12dd84068" name="ga29b4734c723308bfd444e9c12dd84068"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#ga29b4734c723308bfd444e9c12dd84068">◆ </a></span>l4io_iomem_flags_t</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">enum <a class="el" href="#ga29b4734c723308bfd444e9c12dd84068">l4io_iomem_flags_t</a></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Flags for IO memory. </p>
|
|
<table class="fieldtable">
|
|
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="gga29b4734c723308bfd444e9c12dd84068a711f4d3089eeeade5723d103b165265d" name="gga29b4734c723308bfd444e9c12dd84068a711f4d3089eeeade5723d103b165265d"></a>L4IO_MEM_NONCACHED </td><td class="fielddoc"><p>Non-cache memory. </p>
|
|
</td></tr>
|
|
<tr><td class="fieldname"><a id="gga29b4734c723308bfd444e9c12dd84068a585f0e7f2e8dde132749255399a47506" name="gga29b4734c723308bfd444e9c12dd84068a585f0e7f2e8dde132749255399a47506"></a>L4IO_MEM_CACHED </td><td class="fielddoc"><p>Cache memory. </p>
|
|
</td></tr>
|
|
<tr><td class="fieldname"><a id="gga29b4734c723308bfd444e9c12dd84068a8fc345abd419804849a1088befb423d4" name="gga29b4734c723308bfd444e9c12dd84068a8fc345abd419804849a1088befb423d4"></a>L4IO_MEM_USE_MTRR </td><td class="fielddoc"><p>Use MTRR. </p>
|
|
</td></tr>
|
|
<tr><td class="fieldname"><a id="gga29b4734c723308bfd444e9c12dd84068a9d62ed1e5b9ec0feba603dd7d5372a7c" name="gga29b4734c723308bfd444e9c12dd84068a9d62ed1e5b9ec0feba603dd7d5372a7c"></a>L4IO_MEM_USE_RESERVED_AREA </td><td class="fielddoc"><p>Use reserved area for mapping I/O memory. </p>
|
|
<p>Flag only valid for <a class="el" href="#gaee2262febf0fdc1619cabb1091ed6936" title="Request an IO memory region and map it to a specified region.">l4io_request_iomem_region()</a> </p>
|
|
</td></tr>
|
|
<tr><td class="fieldname"><a id="gga29b4734c723308bfd444e9c12dd84068aaa873a461bebbc2cc7e7eced1bf0c077" name="gga29b4734c723308bfd444e9c12dd84068aaa873a461bebbc2cc7e7eced1bf0c077"></a>L4IO_MEM_EAGER_MAP </td><td class="fielddoc"><p>Eagerly map the I/O memory. </p>
|
|
<p>Passthrough to the l4re-rm. </p>
|
|
</td></tr>
|
|
</table>
|
|
|
|
<p class="definition">Definition at line <a class="el" href="contrib_2libio-io_2l4_2io_2types_8h_source.html#l00014">14</a> of file <a class="el" href="contrib_2libio-io_2l4_2io_2types_8h_source.html">types.h</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="gacf9118b0abd79afae218d87c3998706e" name="gacf9118b0abd79afae218d87c3998706e"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#gacf9118b0abd79afae218d87c3998706e">◆ </a></span>l4io_resource_types_t</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">enum <a class="el" href="#gacf9118b0abd79afae218d87c3998706e">l4io_resource_types_t</a></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Resource types. </p>
|
|
<table class="fieldtable">
|
|
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="ggacf9118b0abd79afae218d87c3998706ea4c43587af7adb25be6e8f7a0a8555ed3" name="ggacf9118b0abd79afae218d87c3998706ea4c43587af7adb25be6e8f7a0a8555ed3"></a>L4IO_RESOURCE_INVALID </td><td class="fielddoc"><p>Invalid type. </p>
|
|
</td></tr>
|
|
<tr><td class="fieldname"><a id="ggacf9118b0abd79afae218d87c3998706eabb96f43367c79b2cd95e7d13573f2570" name="ggacf9118b0abd79afae218d87c3998706eabb96f43367c79b2cd95e7d13573f2570"></a>L4IO_RESOURCE_IRQ </td><td class="fielddoc"><p>Interrupt resource. </p>
|
|
</td></tr>
|
|
<tr><td class="fieldname"><a id="ggacf9118b0abd79afae218d87c3998706eae96007b4ba2a646ed580cd8cf7d9dadc" name="ggacf9118b0abd79afae218d87c3998706eae96007b4ba2a646ed580cd8cf7d9dadc"></a>L4IO_RESOURCE_MEM </td><td class="fielddoc"><p>I/O memory resource. </p>
|
|
</td></tr>
|
|
<tr><td class="fieldname"><a id="ggacf9118b0abd79afae218d87c3998706ea9f133e814742f599d4baa597d5982579" name="ggacf9118b0abd79afae218d87c3998706ea9f133e814742f599d4baa597d5982579"></a>L4IO_RESOURCE_PORT </td><td class="fielddoc"><p>I/O port resource (x86 only). </p>
|
|
</td></tr>
|
|
<tr><td class="fieldname"><a id="ggacf9118b0abd79afae218d87c3998706ea4bf8311422a7cdc0fcd21bdae8f3fa0d" name="ggacf9118b0abd79afae218d87c3998706ea4bf8311422a7cdc0fcd21bdae8f3fa0d"></a>L4IO_RESOURCE_ANY </td><td class="fielddoc"><p>any type </p>
|
|
</td></tr>
|
|
</table>
|
|
|
|
<p class="definition">Definition at line <a class="el" href="contrib_2libio-io_2l4_2io_2types_8h_source.html#l00048">48</a> of file <a class="el" href="contrib_2libio-io_2l4_2io_2types_8h_source.html">types.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="gaa1c8b03a2c57a4365f0cf366549e6ed9" name="gaa1c8b03a2c57a4365f0cf366549e6ed9"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#gaa1c8b03a2c57a4365f0cf366549e6ed9">◆ </a></span>l4io_has_resource()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">int l4io_has_resource </td>
|
|
<td>(</td>
|
|
<td class="paramtype">enum <a class="el" href="#gacf9118b0abd79afae218d87c3998706e">l4io_resource_types_t</a></td> <td class="paramname"><span class="paramname"><em>type</em></span>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype"><a class="el" href="vbus__types_8h.html#ad8368693052dd0e492223f4751c48ca1">l4vbus_paddr_t</a></td> <td class="paramname"><span class="paramname"><em>start</em></span>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype"><a class="el" href="vbus__types_8h.html#ad8368693052dd0e492223f4751c48ca1">l4vbus_paddr_t</a></td> <td class="paramname"><span class="paramname"><em>end</em></span> )</td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Check if a resource is available. </p>
|
|
<dl class="params"><dt>Parameters</dt><dd>
|
|
<table class="params">
|
|
<tr><td class="paramname">type</td><td>Type of resource </td></tr>
|
|
<tr><td class="paramname">start</td><td>Minimal value. </td></tr>
|
|
<tr><td class="paramname">end</td><td>Maximum value. </td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
|
|
<p class="reference">References <a class="el" href="compiler_8h_source.html#l00051">L4_INLINE</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="gaa127162dc0e8edd5e09c4ef1abfd12d2" name="gaa127162dc0e8edd5e09c4ef1abfd12d2"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#gaa127162dc0e8edd5e09c4ef1abfd12d2">◆ </a></span>l4io_lookup_device()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">int l4io_lookup_device </td>
|
|
<td>(</td>
|
|
<td class="paramtype">const char *</td> <td class="paramname"><span class="paramname"><em>devname</em></span>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">l4io_device_handle_t *</td> <td class="paramname"><span class="paramname"><em>dev_handle</em></span>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype"><a class="el" href="#gad0f2866fa8c00afd55565cc4495093f7">l4io_device_t</a> *</td> <td class="paramname"><span class="paramname"><em>dev</em></span>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">l4io_resource_handle_t *</td> <td class="paramname"><span class="paramname"><em>res_handle</em></span> )</td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Find a device by name. </p>
|
|
<dl class="params"><dt>Parameters</dt><dd>
|
|
<table class="params">
|
|
<tr><td class="paramdir"></td><td class="paramname">devname</td><td>Name of device. </td></tr>
|
|
<tr><td class="paramdir">[out]</td><td class="paramname">dev_handle</td><td>Device handle for found device, can be NULL. </td></tr>
|
|
<tr><td class="paramdir">[out]</td><td class="paramname">dev</td><td>Device information, filled by the function, can be NULL. </td></tr>
|
|
<tr><td class="paramdir">[out]</td><td class="paramname">res_handle</td><td>Resource handle, can be NULL.</td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<dl class="section return"><dt>Returns</dt><dd>0 on success, error code otherwise </dd></dl>
|
|
|
|
<p class="reference">References <a class="el" href="arm_2l4_2sys_2linkage_8h_source.html#l00033">L4_CV</a>, and <a class="el" href="compiler_8h_source.html#l00214">L4_EXPORT</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="ga74ad87dcf2e70388651b23c7d51d3ed1" name="ga74ad87dcf2e70388651b23c7d51d3ed1"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#ga74ad87dcf2e70388651b23c7d51d3ed1">◆ </a></span>l4io_lookup_resource()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">int l4io_lookup_resource </td>
|
|
<td>(</td>
|
|
<td class="paramtype">l4io_device_handle_t</td> <td class="paramname"><span class="paramname"><em>devhandle</em></span>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">enum <a class="el" href="#gacf9118b0abd79afae218d87c3998706e">l4io_resource_types_t</a></td> <td class="paramname"><span class="paramname"><em>type</em></span>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">l4io_resource_handle_t *</td> <td class="paramname"><span class="paramname"><em>reshandle</em></span>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype"><a class="el" href="#ga670971c40db8bf19d59ec27554c16846">l4io_resource_t</a> *</td> <td class="paramname"><span class="paramname"><em>res</em></span> )</td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Request a specific resource from a device description. </p>
|
|
<dl class="params"><dt>Parameters</dt><dd>
|
|
<table class="params">
|
|
<tr><td class="paramdir"></td><td class="paramname">devhandle</td><td>Device handle. </td></tr>
|
|
<tr><td class="paramdir"></td><td class="paramname">type</td><td>Type of resource to request (see <a class="el" href="#gacf9118b0abd79afae218d87c3998706e" title="Resource types.">l4io_resource_types_t</a>). </td></tr>
|
|
<tr><td class="paramdir">[in,out]</td><td class="paramname">reshandle</td><td>Resource handle, start with handle returned by device functions. The next resource handle is returned here. </td></tr>
|
|
<tr><td class="paramdir">[out]</td><td class="paramname">res</td><td>Device descriptor.</td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<dl class="section return"><dt>Returns</dt><dd>0 on success, error code otherwise, esp. -L4_ENOENT if no more resources found </dd></dl>
|
|
|
|
<p class="reference">References <a class="el" href="arm_2l4_2sys_2linkage_8h_source.html#l00033">L4_CV</a>, and <a class="el" href="compiler_8h_source.html#l00214">L4_EXPORT</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="ga53ec000ff724338cf0caf5cc8eaf9847" name="ga53ec000ff724338cf0caf5cc8eaf9847"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#ga53ec000ff724338cf0caf5cc8eaf9847">◆ </a></span>l4io_release_iomem()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">long l4io_release_iomem </td>
|
|
<td>(</td>
|
|
<td class="paramtype"><a class="el" href="group__l4__basic__types.html#ga4087b991c40c0d2fcde9ca331049a4d4">l4_addr_t</a></td> <td class="paramname"><span class="paramname"><em>virt</em></span>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">unsigned long</td> <td class="paramname"><span class="paramname"><em>size</em></span> )</td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Release an IO memory region. </p>
|
|
<dl class="params"><dt>Parameters</dt><dd>
|
|
<table class="params">
|
|
<tr><td class="paramname">virt</td><td>Virtual address of region to free, see <a class="el" href="#ga5a5ac16d0a8a479a864027900e4f3374" title="Request an IO memory region.">l4io_request_iomem</a> </td></tr>
|
|
<tr><td class="paramname">size</td><td>Size of the region to release. </td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<dl class="section return"><dt>Returns</dt><dd>0 on success, <0 on error </dd></dl>
|
|
|
|
<p class="reference">References <a class="el" href="arm_2l4_2sys_2linkage_8h_source.html#l00033">L4_CV</a>, and <a class="el" href="compiler_8h_source.html#l00214">L4_EXPORT</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="ga7b69f6794cd08221f1725db7660a6646" name="ga7b69f6794cd08221f1725db7660a6646"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#ga7b69f6794cd08221f1725db7660a6646">◆ </a></span>l4io_release_ioport()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">long l4io_release_ioport </td>
|
|
<td>(</td>
|
|
<td class="paramtype">unsigned</td> <td class="paramname"><span class="paramname"><em>portnum</em></span>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">unsigned</td> <td class="paramname"><span class="paramname"><em>len</em></span> )</td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Release an IO port region. </p>
|
|
<dl class="params"><dt>Parameters</dt><dd>
|
|
<table class="params">
|
|
<tr><td class="paramname">portnum</td><td>Start of port range to release </td></tr>
|
|
<tr><td class="paramname">len</td><td>Length of range to request </td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<dl class="section return"><dt>Returns</dt><dd>0 on success, <0 on error</dd></dl>
|
|
<dl class="section note"><dt>Note</dt><dd>X86 architecture only </dd></dl>
|
|
|
|
<p class="reference">References <a class="el" href="arm_2l4_2sys_2linkage_8h_source.html#l00033">L4_CV</a>, <a class="el" href="compiler_8h_source.html#l00214">L4_EXPORT</a>, and <a class="el" href="compiler_8h_source.html#l00051">L4_INLINE</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="ga5a5ac16d0a8a479a864027900e4f3374" name="ga5a5ac16d0a8a479a864027900e4f3374"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#ga5a5ac16d0a8a479a864027900e4f3374">◆ </a></span>l4io_request_iomem()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">long l4io_request_iomem </td>
|
|
<td>(</td>
|
|
<td class="paramtype"><a class="el" href="group__l4__basic__types.html#ga4087b991c40c0d2fcde9ca331049a4d4">l4_addr_t</a></td> <td class="paramname"><span class="paramname"><em>phys</em></span>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">unsigned long</td> <td class="paramname"><span class="paramname"><em>size</em></span>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">int</td> <td class="paramname"><span class="paramname"><em>flags</em></span>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype"><a class="el" href="group__l4__basic__types.html#ga4087b991c40c0d2fcde9ca331049a4d4">l4_addr_t</a> *</td> <td class="paramname"><span class="paramname"><em>virt</em></span> )</td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Request an IO memory region. </p>
|
|
<dl class="params"><dt>Parameters</dt><dd>
|
|
<table class="params">
|
|
<tr><td class="paramdir"></td><td class="paramname">phys</td><td>Physical address of the I/O memory region </td></tr>
|
|
<tr><td class="paramdir"></td><td class="paramname">size</td><td>Size of the region in Bytes, granularity pages. </td></tr>
|
|
<tr><td class="paramdir"></td><td class="paramname">flags</td><td>See <a class="el" href="#ga29b4734c723308bfd444e9c12dd84068" title="Flags for IO memory.">l4io_iomem_flags_t</a> </td></tr>
|
|
<tr><td class="paramdir">[in,out]</td><td class="paramname">virt</td><td>Virtual address where the IO memory region should be mapped to. If the caller passes '0' a region in the caller's address space is searched and the virtual address is returned.</td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<dl class="retval"><dt>Return values</dt><dd>
|
|
<table class="retval">
|
|
<tr><td class="paramname">0</td><td>Success. </td></tr>
|
|
<tr><td class="paramname">-L4_ENOENT</td><td>No area in the caller's address space could be found to map the IO memory region. </td></tr>
|
|
<tr><td class="paramname">-L4_EPERM</td><td>Operation not allowed. </td></tr>
|
|
<tr><td class="paramname">-L4_EINVAL</td><td>Invalid value. </td></tr>
|
|
<tr><td class="paramname">-L4_EADDRNOTAVAIL</td><td>The requested virtual address is not available. </td></tr>
|
|
<tr><td class="paramname">-L4_ENOMEM</td><td>The requested IO memory region could not be allocated. </td></tr>
|
|
<tr><td class="paramname"><0</td><td>IPC errors.</td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<dl class="section note"><dt>Note</dt><dd>This function uses <a class="el" href="namespaceL4Re.html" title="L4Re C++ Interfaces.">L4Re</a> functionality to reserve a part of the virtual address space of the caller. </dd></dl>
|
|
|
|
<p class="reference">References <a class="el" href="arm_2l4_2sys_2linkage_8h_source.html#l00033">L4_CV</a>, and <a class="el" href="compiler_8h_source.html#l00214">L4_EXPORT</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="gaee2262febf0fdc1619cabb1091ed6936" name="gaee2262febf0fdc1619cabb1091ed6936"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#gaee2262febf0fdc1619cabb1091ed6936">◆ </a></span>l4io_request_iomem_region()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">long l4io_request_iomem_region </td>
|
|
<td>(</td>
|
|
<td class="paramtype"><a class="el" href="group__l4__basic__types.html#ga4087b991c40c0d2fcde9ca331049a4d4">l4_addr_t</a></td> <td class="paramname"><span class="paramname"><em>phys</em></span>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype"><a class="el" href="group__l4__basic__types.html#ga4087b991c40c0d2fcde9ca331049a4d4">l4_addr_t</a></td> <td class="paramname"><span class="paramname"><em>virt</em></span>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">unsigned long</td> <td class="paramname"><span class="paramname"><em>size</em></span>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">int</td> <td class="paramname"><span class="paramname"><em>flags</em></span> )</td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Request an IO memory region and map it to a specified region. </p>
|
|
<dl class="params"><dt>Parameters</dt><dd>
|
|
<table class="params">
|
|
<tr><td class="paramname">phys</td><td>Physical address of the I/O memory region </td></tr>
|
|
<tr><td class="paramname">virt</td><td>Virtual address. </td></tr>
|
|
<tr><td class="paramname">size</td><td>Size of the region in Bytes, granularity pages. </td></tr>
|
|
<tr><td class="paramname">flags</td><td>See <a class="el" href="#ga29b4734c723308bfd444e9c12dd84068" title="Flags for IO memory.">l4io_iomem_flags_t</a></td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<dl class="retval"><dt>Return values</dt><dd>
|
|
<table class="retval">
|
|
<tr><td class="paramname">0</td><td>Success. </td></tr>
|
|
<tr><td class="paramname">-L4_ENOENT</td><td>No area could be found to map the IO memory region. </td></tr>
|
|
<tr><td class="paramname">-L4_EPERM</td><td>Operation not allowed. </td></tr>
|
|
<tr><td class="paramname">-L4_EINVAL</td><td>Invalid value. </td></tr>
|
|
<tr><td class="paramname">-L4_EADDRNOTAVAIL</td><td>The requested virtual address is not available. </td></tr>
|
|
<tr><td class="paramname">-L4_ENOMEM</td><td>The requested IO memory region could not be allocated. </td></tr>
|
|
<tr><td class="paramname"><0</td><td>IPC errors.</td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<dl class="section note"><dt>Note</dt><dd>This function uses <a class="el" href="namespaceL4Re.html" title="L4Re C++ Interfaces.">L4Re</a> functionality to reserve a part of the virtual address space of the caller. </dd></dl>
|
|
|
|
<p class="reference">References <a class="el" href="arm_2l4_2sys_2linkage_8h_source.html#l00033">L4_CV</a>, and <a class="el" href="compiler_8h_source.html#l00214">L4_EXPORT</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="ga4157f860899b502fa9679797a0a513b6" name="ga4157f860899b502fa9679797a0a513b6"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#ga4157f860899b502fa9679797a0a513b6">◆ </a></span>l4io_request_ioport()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">long l4io_request_ioport </td>
|
|
<td>(</td>
|
|
<td class="paramtype">unsigned</td> <td class="paramname"><span class="paramname"><em>portnum</em></span>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">unsigned</td> <td class="paramname"><span class="paramname"><em>len</em></span> )</td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Request an IO port region. </p>
|
|
<dl class="params"><dt>Parameters</dt><dd>
|
|
<table class="params">
|
|
<tr><td class="paramname">portnum</td><td>Start of port range to request </td></tr>
|
|
<tr><td class="paramname">len</td><td>Length of range to request </td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<dl class="section return"><dt>Returns</dt><dd>0 on success, <0 on error</dd></dl>
|
|
<dl class="section note"><dt>Note</dt><dd>X86 architecture only </dd></dl>
|
|
|
|
<p class="reference">References <a class="el" href="arm_2l4_2sys_2linkage_8h_source.html#l00033">L4_CV</a>, and <a class="el" href="compiler_8h_source.html#l00214">L4_EXPORT</a>.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="gac2ec7fad588b7d3d64090651aff6fd50" name="gac2ec7fad588b7d3d64090651aff6fd50"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#gac2ec7fad588b7d3d64090651aff6fd50">◆ </a></span>l4io_request_resource_iomem()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname"><a class="el" href="group__l4__basic__types.html#ga4087b991c40c0d2fcde9ca331049a4d4">l4_addr_t</a> l4io_request_resource_iomem </td>
|
|
<td>(</td>
|
|
<td class="paramtype">l4io_device_handle_t</td> <td class="paramname"><span class="paramname"><em>devhandle</em></span>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">l4io_resource_handle_t *</td> <td class="paramname"><span class="paramname"><em>reshandle</em></span> )</td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Request IO memory. </p>
|
|
<dl class="params"><dt>Parameters</dt><dd>
|
|
<table class="params">
|
|
<tr><td class="paramdir"></td><td class="paramname">devhandle</td><td>Device handle. </td></tr>
|
|
<tr><td class="paramdir">[in,out]</td><td class="paramname">reshandle</td><td>Resource handle from which IO memory should be requested. Upon successfull completion 'reshandle' points to the device's next resource.</td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<dl class="retval"><dt>Return values</dt><dd>
|
|
<table class="retval">
|
|
<tr><td class="paramname">0</td><td>An error occured. The value of 'reshandle' is undefined. </td></tr>
|
|
<tr><td class="paramname">>0</td><td>The virtual address of the IO memory mapping. </td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
|
|
<p class="reference">References <a class="el" href="arm_2l4_2sys_2linkage_8h_source.html#l00033">L4_CV</a>, and <a class="el" href="compiler_8h_source.html#l00214">L4_EXPORT</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>
|