wut/group__coreinit__memorymap.html
2020-03-26 16:49:18 +11:00

597 lines
31 KiB
HTML

<!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.8.17"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>wut: Memory Map</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="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" />
</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="projectalign" style="padding-left: 0.5em;">
<div id="projectname">wut
&#160;<span id="projectnumber">1.0.0-beta9</span>
</div>
<div id="projectbrief">Wii U Toolchain</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.17 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
</div><!-- top -->
<!-- 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">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="header">
<div class="summary">
<a href="#define-members">Macros</a> &#124;
<a href="#typedef-members">Typedefs</a> &#124;
<a href="#enum-members">Enumerations</a> &#124;
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
<div class="title">Memory Map<div class="ingroups"><a class="el" href="group__coreinit.html">coreinit</a></div></div> </div>
</div><!--header-->
<div class="contents">
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
Macros</h2></td></tr>
<tr class="memitem:ga93b338792824e9803dea3a24ddf7afab"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__coreinit__memorymap.html#ga93b338792824e9803dea3a24ddf7afab">OS_PAGE_SIZE</a>&#160;&#160;&#160;(128 * 1024)</td></tr>
<tr class="separator:ga93b338792824e9803dea3a24ddf7afab"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
Typedefs</h2></td></tr>
<tr class="memitem:ga347949535b7942396ec11fc57a0cb51c"><td class="memItemLeft" align="right" valign="top">typedef enum <a class="el" href="group__coreinit__memorymap.html#gaec8c3a45030e5489b84183ad8b50f4be">OSMemoryMapMode</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__coreinit__memorymap.html#ga347949535b7942396ec11fc57a0cb51c">OSMemoryMapMode</a></td></tr>
<tr class="separator:ga347949535b7942396ec11fc57a0cb51c"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
Enumerations</h2></td></tr>
<tr class="memitem:gaec8c3a45030e5489b84183ad8b50f4be"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__coreinit__memorymap.html#gaec8c3a45030e5489b84183ad8b50f4be">OSMemoryMapMode</a> { <br />
&#160;&#160;<a class="el" href="group__coreinit__memorymap.html#ggaec8c3a45030e5489b84183ad8b50f4beafef3e905c898e0efa6f54842219031b0">OS_MAP_MEMORY_INVALID</a> = 0,
<br />
&#160;&#160;<a class="el" href="group__coreinit__memorymap.html#ggaec8c3a45030e5489b84183ad8b50f4bea13e1f29de202bdefcfe541d503031deb">OS_MAP_MEMORY_READ_ONLY</a> = 1,
<br />
&#160;&#160;<a class="el" href="group__coreinit__memorymap.html#ggaec8c3a45030e5489b84183ad8b50f4bea8632fb7090c908832e2a8deb9e49cd5c">OS_MAP_MEMORY_READ_WRITE</a> = 2,
<br />
&#160;&#160;<a class="el" href="group__coreinit__memorymap.html#ggaec8c3a45030e5489b84183ad8b50f4beacba765e89dabbd816314a279ce098261">OS_MAP_MEMORY_FREE</a> = 3,
<br />
&#160;&#160;<a class="el" href="group__coreinit__memorymap.html#ggaec8c3a45030e5489b84183ad8b50f4bea3922558ab63460f63390ec53199cba03">OS_MAP_MEMORY_ALLOCATED</a> = 4
<br />
}</td></tr>
<tr class="separator:gaec8c3a45030e5489b84183ad8b50f4be"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:ga5de23bca9392d8b438861f2ceac173ed"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__coreinit__memorymap.html#ga5de23bca9392d8b438861f2ceac173ed">OSEffectiveToPhysical</a> (uint32_t virtualAddress)</td></tr>
<tr class="separator:ga5de23bca9392d8b438861f2ceac173ed"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga7f240467599ec067b5a4751a9bb9bdb3"><td class="memItemLeft" align="right" valign="top"><a class="el" href="wut__types_8h.html#a975dbe9e4396bf9e0064ce01827fa372">BOOL</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__coreinit__memorymap.html#ga7f240467599ec067b5a4751a9bb9bdb3">OSIsAddressValid</a> (uint32_t virtualAddress)</td></tr>
<tr class="separator:ga7f240467599ec067b5a4751a9bb9bdb3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga6f7eb359b87d8ec38faeff70efd68020"><td class="memItemLeft" align="right" valign="top"><a class="el" href="wut__types_8h.html#a975dbe9e4396bf9e0064ce01827fa372">BOOL</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__coreinit__memorymap.html#ga6f7eb359b87d8ec38faeff70efd68020">__OSValidateAddressSpaceRange</a> (int, uint32_t virtualAddress, uint32_t size)</td></tr>
<tr class="separator:ga6f7eb359b87d8ec38faeff70efd68020"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac9bcf8f9245f0f1e7446f1cafa49698d"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__coreinit__memorymap.html#gac9bcf8f9245f0f1e7446f1cafa49698d">OSAllocVirtAddr</a> (uint32_t virtualAddress, uint32_t size, uint32_t align)</td></tr>
<tr class="memdesc:gac9bcf8f9245f0f1e7446f1cafa49698d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Allocates virtual address range for later mapping. <a href="group__coreinit__memorymap.html#gac9bcf8f9245f0f1e7446f1cafa49698d">More...</a><br /></td></tr>
<tr class="separator:gac9bcf8f9245f0f1e7446f1cafa49698d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gad2f52f8705e306378d875acad0ad0b4d"><td class="memItemLeft" align="right" valign="top"><a class="el" href="wut__types_8h.html#a975dbe9e4396bf9e0064ce01827fa372">BOOL</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__coreinit__memorymap.html#gad2f52f8705e306378d875acad0ad0b4d">OSFreeVirtAddr</a> (uint32_t virtualAddress, uint32_t size)</td></tr>
<tr class="memdesc:gad2f52f8705e306378d875acad0ad0b4d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Frees a previously allocated virtual address range back to the system. <a href="group__coreinit__memorymap.html#gad2f52f8705e306378d875acad0ad0b4d">More...</a><br /></td></tr>
<tr class="separator:gad2f52f8705e306378d875acad0ad0b4d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga38fa261e773bd708f2f02e6e6a6454fb"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__coreinit__memorymap.html#gaec8c3a45030e5489b84183ad8b50f4be">OSMemoryMapMode</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__coreinit__memorymap.html#ga38fa261e773bd708f2f02e6e6a6454fb">OSQueryVirtAddr</a> (uint32_t virtualAddress)</td></tr>
<tr class="memdesc:ga38fa261e773bd708f2f02e6e6a6454fb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Determines the status of the given virtual memory address - mapped read-write or read-only, free, allocated or invalid. <a href="group__coreinit__memorymap.html#ga38fa261e773bd708f2f02e6e6a6454fb">More...</a><br /></td></tr>
<tr class="separator:ga38fa261e773bd708f2f02e6e6a6454fb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga7fb12e8bad1c58fe5e19448abde8c979"><td class="memItemLeft" align="right" valign="top"><a class="el" href="wut__types_8h.html#a975dbe9e4396bf9e0064ce01827fa372">BOOL</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__coreinit__memorymap.html#ga7fb12e8bad1c58fe5e19448abde8c979">OSMapMemory</a> (uint32_t virtualAddress, uint32_t physicalAddress, uint32_t size, <a class="el" href="group__coreinit__memorymap.html#gaec8c3a45030e5489b84183ad8b50f4be">OSMemoryMapMode</a> mode)</td></tr>
<tr class="memdesc:ga7fb12e8bad1c58fe5e19448abde8c979"><td class="mdescLeft">&#160;</td><td class="mdescRight">Maps a physical address to a virtual address, with a given size and set of permissions. <a href="group__coreinit__memorymap.html#ga7fb12e8bad1c58fe5e19448abde8c979">More...</a><br /></td></tr>
<tr class="separator:ga7fb12e8bad1c58fe5e19448abde8c979"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga4fcc6ab7f6031feb27b52ff88ad42fe9"><td class="memItemLeft" align="right" valign="top"><a class="el" href="wut__types_8h.html#a975dbe9e4396bf9e0064ce01827fa372">BOOL</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__coreinit__memorymap.html#ga4fcc6ab7f6031feb27b52ff88ad42fe9">OSUnmapMemory</a> (uint32_t virtualAddress, uint32_t size)</td></tr>
<tr class="memdesc:ga4fcc6ab7f6031feb27b52ff88ad42fe9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Unmaps previously mapped memory. <a href="group__coreinit__memorymap.html#ga4fcc6ab7f6031feb27b52ff88ad42fe9">More...</a><br /></td></tr>
<tr class="separator:ga4fcc6ab7f6031feb27b52ff88ad42fe9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga22e71a472f3db380efda352a2c84c826"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__coreinit__memorymap.html#ga22e71a472f3db380efda352a2c84c826">OSGetMapVirtAddrRange</a> (uint32_t *outVirtualAddress, uint32_t *outSize)</td></tr>
<tr class="memdesc:ga22e71a472f3db380efda352a2c84c826"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the range of virtual addresses available for mapping. <a href="group__coreinit__memorymap.html#ga22e71a472f3db380efda352a2c84c826">More...</a><br /></td></tr>
<tr class="separator:ga22e71a472f3db380efda352a2c84c826"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga1bfa089c8d2c869aa2dc824b688f14f4"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__coreinit__memorymap.html#ga1bfa089c8d2c869aa2dc824b688f14f4">OSGetAvailPhysAddrRange</a> (uint32_t *outPhysicalAddress, uint32_t *outSize)</td></tr>
<tr class="memdesc:ga1bfa089c8d2c869aa2dc824b688f14f4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the range of available physical memory (not reserved for app code or data). <a href="group__coreinit__memorymap.html#ga1bfa089c8d2c869aa2dc824b688f14f4">More...</a><br /></td></tr>
<tr class="separator:ga1bfa089c8d2c869aa2dc824b688f14f4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga27856f3b01004398f43f111eceef6c83"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__coreinit__memorymap.html#ga27856f3b01004398f43f111eceef6c83">OSGetDataPhysAddrRange</a> (uint32_t *outPhysicalAddress, uint32_t *outSize)</td></tr>
<tr class="memdesc:ga27856f3b01004398f43f111eceef6c83"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the range of physical memory used for the application's data. <a href="group__coreinit__memorymap.html#ga27856f3b01004398f43f111eceef6c83">More...</a><br /></td></tr>
<tr class="separator:ga27856f3b01004398f43f111eceef6c83"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<h2 class="groupheader">Macro Definition Documentation</h2>
<a id="ga93b338792824e9803dea3a24ddf7afab"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga93b338792824e9803dea3a24ddf7afab">&#9670;&nbsp;</a></span>OS_PAGE_SIZE</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define OS_PAGE_SIZE&#160;&#160;&#160;(128 * 1024)</td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="memorymap_8h_source.html#l00024">24</a> of file <a class="el" href="memorymap_8h_source.html">memorymap.h</a>.</p>
</div>
</div>
<h2 class="groupheader">Typedef Documentation</h2>
<a id="ga347949535b7942396ec11fc57a0cb51c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga347949535b7942396ec11fc57a0cb51c">&#9670;&nbsp;</a></span>OSMemoryMapMode</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef enum <a class="el" href="group__coreinit__memorymap.html#gaec8c3a45030e5489b84183ad8b50f4be">OSMemoryMapMode</a> <a class="el" href="group__coreinit__memorymap.html#gaec8c3a45030e5489b84183ad8b50f4be">OSMemoryMapMode</a></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<h2 class="groupheader">Enumeration Type Documentation</h2>
<a id="gaec8c3a45030e5489b84183ad8b50f4be"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaec8c3a45030e5489b84183ad8b50f4be">&#9670;&nbsp;</a></span>OSMemoryMapMode</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="group__coreinit__memorymap.html#gaec8c3a45030e5489b84183ad8b50f4be">OSMemoryMapMode</a></td>
</tr>
</table>
</div><div class="memdoc">
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="ggaec8c3a45030e5489b84183ad8b50f4beafef3e905c898e0efa6f54842219031b0"></a>OS_MAP_MEMORY_INVALID&#160;</td><td class="fielddoc"></td></tr>
<tr><td class="fieldname"><a id="ggaec8c3a45030e5489b84183ad8b50f4bea13e1f29de202bdefcfe541d503031deb"></a>OS_MAP_MEMORY_READ_ONLY&#160;</td><td class="fielddoc"></td></tr>
<tr><td class="fieldname"><a id="ggaec8c3a45030e5489b84183ad8b50f4bea8632fb7090c908832e2a8deb9e49cd5c"></a>OS_MAP_MEMORY_READ_WRITE&#160;</td><td class="fielddoc"></td></tr>
<tr><td class="fieldname"><a id="ggaec8c3a45030e5489b84183ad8b50f4beacba765e89dabbd816314a279ce098261"></a>OS_MAP_MEMORY_FREE&#160;</td><td class="fielddoc"></td></tr>
<tr><td class="fieldname"><a id="ggaec8c3a45030e5489b84183ad8b50f4bea3922558ab63460f63390ec53199cba03"></a>OS_MAP_MEMORY_ALLOCATED&#160;</td><td class="fielddoc"></td></tr>
</table>
<p class="definition">Definition at line <a class="el" href="memorymap_8h_source.html#l00015">15</a> of file <a class="el" href="memorymap_8h_source.html">memorymap.h</a>.</p>
</div>
</div>
<h2 class="groupheader">Function Documentation</h2>
<a id="ga5de23bca9392d8b438861f2ceac173ed"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga5de23bca9392d8b438861f2ceac173ed">&#9670;&nbsp;</a></span>OSEffectiveToPhysical()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint32_t OSEffectiveToPhysical </td>
<td>(</td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>virtualAddress</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="ga7f240467599ec067b5a4751a9bb9bdb3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga7f240467599ec067b5a4751a9bb9bdb3">&#9670;&nbsp;</a></span>OSIsAddressValid()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="wut__types_8h.html#a975dbe9e4396bf9e0064ce01827fa372">BOOL</a> OSIsAddressValid </td>
<td>(</td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>virtualAddress</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="ga6f7eb359b87d8ec38faeff70efd68020"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga6f7eb359b87d8ec38faeff70efd68020">&#9670;&nbsp;</a></span>__OSValidateAddressSpaceRange()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="wut__types_8h.html#a975dbe9e4396bf9e0064ce01827fa372">BOOL</a> __OSValidateAddressSpaceRange </td>
<td>(</td>
<td class="paramtype">int&#160;</td>
<td class="paramname">, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>virtualAddress</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>size</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="gac9bcf8f9245f0f1e7446f1cafa49698d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gac9bcf8f9245f0f1e7446f1cafa49698d">&#9670;&nbsp;</a></span>OSAllocVirtAddr()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint32_t OSAllocVirtAddr </td>
<td>(</td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>virtualAddress</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>size</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>align</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Allocates virtual address range for later mapping. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">virtualAddress</td><td>Requested start address for the range. If there is no preference, NULL can be used.</td></tr>
<tr><td class="paramname">size</td><td>Size of address range to allocate.</td></tr>
<tr><td class="paramname">align</td><td>Alignment of address range to allocate.</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The starting address of the newly allocated range, or NULL on failure.</dd></dl>
<dl class="section see"><dt>See also</dt><dd><ul>
<li><a class="el" href="group__coreinit__memorymap.html#gad2f52f8705e306378d875acad0ad0b4d" title="Frees a previously allocated virtual address range back to the system.">OSFreeVirtAddr()</a></li>
<li><a class="el" href="group__coreinit__memorymap.html#ga7fb12e8bad1c58fe5e19448abde8c979" title="Maps a physical address to a virtual address, with a given size and set of permissions.">OSMapMemory()</a> </li>
</ul>
</dd></dl>
</div>
</div>
<a id="gad2f52f8705e306378d875acad0ad0b4d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gad2f52f8705e306378d875acad0ad0b4d">&#9670;&nbsp;</a></span>OSFreeVirtAddr()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="wut__types_8h.html#a975dbe9e4396bf9e0064ce01827fa372">BOOL</a> OSFreeVirtAddr </td>
<td>(</td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>virtualAddress</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>size</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Frees a previously allocated virtual address range back to the system. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">virtualAddress</td><td>The start of the virtual address range to free.</td></tr>
<tr><td class="paramname">size</td><td>The size of the virtual address range to free.</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><code>true</code> on success. </dd></dl>
</div>
</div>
<a id="ga38fa261e773bd708f2f02e6e6a6454fb"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga38fa261e773bd708f2f02e6e6a6454fb">&#9670;&nbsp;</a></span>OSQueryVirtAddr()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__coreinit__memorymap.html#gaec8c3a45030e5489b84183ad8b50f4be">OSMemoryMapMode</a> OSQueryVirtAddr </td>
<td>(</td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>virtualAddress</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Determines the status of the given virtual memory address - mapped read-write or read-only, free, allocated or invalid. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">virtualAddress</td><td>The virtual address to query.</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The status of the memory address - see <a class="el" href="group__coreinit__memorymap.html#gaec8c3a45030e5489b84183ad8b50f4be">OSMemoryMapMode</a>. </dd></dl>
</div>
</div>
<a id="ga7fb12e8bad1c58fe5e19448abde8c979"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga7fb12e8bad1c58fe5e19448abde8c979">&#9670;&nbsp;</a></span>OSMapMemory()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="wut__types_8h.html#a975dbe9e4396bf9e0064ce01827fa372">BOOL</a> OSMapMemory </td>
<td>(</td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>virtualAddress</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>physicalAddress</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>size</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group__coreinit__memorymap.html#gaec8c3a45030e5489b84183ad8b50f4be">OSMemoryMapMode</a>&#160;</td>
<td class="paramname"><em>mode</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Maps a physical address to a virtual address, with a given size and set of permissions. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">virtualAddress</td><td>The target virtual address for the mapping.</td></tr>
<tr><td class="paramname">physicalAddress</td><td>Physical address of the memory to back the mapping.</td></tr>
<tr><td class="paramname">size</td><td>Size, in bytes, of the desired mapping. Likely has an alignment requirement.</td></tr>
<tr><td class="paramname">mode</td><td>Permissions to map the memory with - see <a class="el" href="group__coreinit__memorymap.html#gaec8c3a45030e5489b84183ad8b50f4be">OSMemoryMapMode</a>.</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><code>true</code> on success.</dd></dl>
<dl class="section see"><dt>See also</dt><dd><ul>
<li><a class="el" href="group__coreinit__memorymap.html#gac9bcf8f9245f0f1e7446f1cafa49698d" title="Allocates virtual address range for later mapping.">OSAllocVirtAddr()</a></li>
<li><a class="el" href="group__coreinit__memorymap.html#ga4fcc6ab7f6031feb27b52ff88ad42fe9" title="Unmaps previously mapped memory.">OSUnmapMemory()</a> </li>
</ul>
</dd></dl>
</div>
</div>
<a id="ga4fcc6ab7f6031feb27b52ff88ad42fe9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga4fcc6ab7f6031feb27b52ff88ad42fe9">&#9670;&nbsp;</a></span>OSUnmapMemory()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="wut__types_8h.html#a975dbe9e4396bf9e0064ce01827fa372">BOOL</a> OSUnmapMemory </td>
<td>(</td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>virtualAddress</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>size</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Unmaps previously mapped memory. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">virtualAddress</td><td>Starting address of the area to unmap.</td></tr>
<tr><td class="paramname">size</td><td>Size of the memory area to unmap.</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><code>true</code> on success. </dd></dl>
</div>
</div>
<a id="ga22e71a472f3db380efda352a2c84c826"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga22e71a472f3db380efda352a2c84c826">&#9670;&nbsp;</a></span>OSGetMapVirtAddrRange()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void OSGetMapVirtAddrRange </td>
<td>(</td>
<td class="paramtype">uint32_t *&#160;</td>
<td class="paramname"><em>outVirtualAddress</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t *&#160;</td>
<td class="paramname"><em>outSize</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Gets the range of virtual addresses available for mapping. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">outVirtualAddress</td><td>Pointer to write the starting address of the memory area to.</td></tr>
<tr><td class="paramname">outSize</td><td>Pointer to write the size of the memory area to.</td></tr>
</table>
</dd>
</dl>
<dl class="section see"><dt>See also</dt><dd><ul>
<li><a class="el" href="group__coreinit__memorymap.html#ga7fb12e8bad1c58fe5e19448abde8c979" title="Maps a physical address to a virtual address, with a given size and set of permissions.">OSMapMemory()</a> </li>
</ul>
</dd></dl>
</div>
</div>
<a id="ga1bfa089c8d2c869aa2dc824b688f14f4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga1bfa089c8d2c869aa2dc824b688f14f4">&#9670;&nbsp;</a></span>OSGetAvailPhysAddrRange()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void OSGetAvailPhysAddrRange </td>
<td>(</td>
<td class="paramtype">uint32_t *&#160;</td>
<td class="paramname"><em>outPhysicalAddress</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t *&#160;</td>
<td class="paramname"><em>outSize</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Gets the range of available physical memory (not reserved for app code or data). </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">outPhysicalAddress</td><td>Pointer to write the starting physical address of the memory area to.</td></tr>
<tr><td class="paramname">outSize</td><td>Pointer to write the size of the memory area to. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="ga27856f3b01004398f43f111eceef6c83"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga27856f3b01004398f43f111eceef6c83">&#9670;&nbsp;</a></span>OSGetDataPhysAddrRange()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void OSGetDataPhysAddrRange </td>
<td>(</td>
<td class="paramtype">uint32_t *&#160;</td>
<td class="paramname"><em>outPhysicalAddress</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t *&#160;</td>
<td class="paramname"><em>outSize</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Gets the range of physical memory used for the application's data. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">outPhysicalAddress</td><td>Pointer to write the starting physical address of the memory area to.</td></tr>
<tr><td class="paramname">outSize</td><td>Pointer to write the size of the memory area to. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>
</body>
</html>