465 lines
23 KiB
HTML
465 lines
23 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.9.1"/>
|
|
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
|
<title>libctru: include/3ds/ipc.h File Reference</title>
|
|
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
|
<script type="text/javascript" src="jquery.js"></script>
|
|
<script type="text/javascript" src="dynsections.js"></script>
|
|
<link href="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">libctru
|
|
 <span id="projectnumber">v2.4.1</span>
|
|
</div>
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
<!-- end header part -->
|
|
<!-- Generated by Doxygen 1.9.1 -->
|
|
<script type="text/javascript">
|
|
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
|
var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
|
|
/* @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&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>
|
|
<!-- 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 id="nav-path" class="navpath">
|
|
<ul>
|
|
<li class="navelem"><a class="el" href="dir_d44c64559bbebec7f509842c48db8b23.html">include</a></li><li class="navelem"><a class="el" href="dir_d475325f6a9fe3bfc3a495c72a9e475e.html">3ds</a></li> </ul>
|
|
</div>
|
|
</div><!-- top -->
|
|
<div class="header">
|
|
<div class="summary">
|
|
<a href="#enum-members">Enumerations</a> |
|
|
<a href="#func-members">Functions</a> </div>
|
|
<div class="headertitle">
|
|
<div class="title">ipc.h File Reference</div> </div>
|
|
</div><!--header-->
|
|
<div class="contents">
|
|
|
|
<p>Inter Process Communication helpers.
|
|
<a href="#details">More...</a></p>
|
|
<div class="textblock"><code>#include <<a class="el" href="types_8h_source.html">3ds/types.h</a>></code><br />
|
|
</div>
|
|
<p><a href="ipc_8h_source.html">Go to the source code of this file.</a></p>
|
|
<table class="memberdecls">
|
|
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
|
|
Enumerations</h2></td></tr>
|
|
<tr class="memitem:ae0ccf9e363a4bd3b070762b57ffc8783"><td class="memItemLeft" align="right" valign="top">enum  </td><td class="memItemRight" valign="bottom"><a class="el" href="ipc_8h.html#ae0ccf9e363a4bd3b070762b57ffc8783">IPC_BufferRights</a> { <br />
|
|
  <a class="el" href="ipc_8h.html#ae0ccf9e363a4bd3b070762b57ffc8783aa8137b3b700afc9926ead9fcffaff34f">IPC_BUFFER_R</a> = BIT(1)
|
|
, <br />
|
|
  <a class="el" href="ipc_8h.html#ae0ccf9e363a4bd3b070762b57ffc8783a121e561528ed18b70a5fd5a927d82e43">IPC_BUFFER_W</a> = BIT(2)
|
|
, <br />
|
|
  <a class="el" href="ipc_8h.html#ae0ccf9e363a4bd3b070762b57ffc8783a9052ab0f3610999bf1b79e277ba9b4a0">IPC_BUFFER_RW</a> = IPC_BUFFER_R | IPC_BUFFER_W
|
|
<br />
|
|
}</td></tr>
|
|
<tr class="memdesc:ae0ccf9e363a4bd3b070762b57ffc8783"><td class="mdescLeft"> </td><td class="mdescRight">IPC buffer access rights. <a href="ipc_8h.html#ae0ccf9e363a4bd3b070762b57ffc8783">More...</a><br /></td></tr>
|
|
<tr class="separator:ae0ccf9e363a4bd3b070762b57ffc8783"><td class="memSeparator" colspan="2"> </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:a5fab7f34fb1ec8651bc8645930eeb432"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="types_8h.html#afaa62991928fb9fb18ff0db62a040aba">u32</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="ipc_8h.html#a5fab7f34fb1ec8651bc8645930eeb432">IPC_MakeHeader</a> (<a class="el" href="types_8h.html#ace9d960e74685e2cd84b36132dbbf8aa">u16</a> command_id, unsigned normal_params, unsigned translate_params)</td></tr>
|
|
<tr class="memdesc:a5fab7f34fb1ec8651bc8645930eeb432"><td class="mdescLeft"> </td><td class="mdescRight">Creates a command header to be used for IPC. <a href="ipc_8h.html#a5fab7f34fb1ec8651bc8645930eeb432">More...</a><br /></td></tr>
|
|
<tr class="separator:a5fab7f34fb1ec8651bc8645930eeb432"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a0b7ef8528054a032da9d91b79ab5dd2f"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="types_8h.html#afaa62991928fb9fb18ff0db62a040aba">u32</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="ipc_8h.html#a0b7ef8528054a032da9d91b79ab5dd2f">IPC_Desc_SharedHandles</a> (unsigned number)</td></tr>
|
|
<tr class="memdesc:a0b7ef8528054a032da9d91b79ab5dd2f"><td class="mdescLeft"> </td><td class="mdescRight">Creates a header to share handles. <a href="ipc_8h.html#a0b7ef8528054a032da9d91b79ab5dd2f">More...</a><br /></td></tr>
|
|
<tr class="separator:a0b7ef8528054a032da9d91b79ab5dd2f"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a17bec8eebca6a31b5561637b63bfcc51"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="types_8h.html#afaa62991928fb9fb18ff0db62a040aba">u32</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="ipc_8h.html#a17bec8eebca6a31b5561637b63bfcc51">IPC_Desc_MoveHandles</a> (unsigned number)</td></tr>
|
|
<tr class="memdesc:a17bec8eebca6a31b5561637b63bfcc51"><td class="mdescLeft"> </td><td class="mdescRight">Creates the header to transfer handle ownership. <a href="ipc_8h.html#a17bec8eebca6a31b5561637b63bfcc51">More...</a><br /></td></tr>
|
|
<tr class="separator:a17bec8eebca6a31b5561637b63bfcc51"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a41e3037b6f035d4bc441dae38517366c"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="types_8h.html#afaa62991928fb9fb18ff0db62a040aba">u32</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="ipc_8h.html#a41e3037b6f035d4bc441dae38517366c">IPC_Desc_CurProcessId</a> (void)</td></tr>
|
|
<tr class="memdesc:a41e3037b6f035d4bc441dae38517366c"><td class="mdescLeft"> </td><td class="mdescRight">Returns the code to ask the kernel to fill the handle with the current process ID. <a href="ipc_8h.html#a41e3037b6f035d4bc441dae38517366c">More...</a><br /></td></tr>
|
|
<tr class="separator:a41e3037b6f035d4bc441dae38517366c"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a30451900dfdb55ae46c2b5adabfb40bd"><td class="memItemLeft" align="right" valign="top"><a id="a30451900dfdb55ae46c2b5adabfb40bd"></a>
|
|
static <a class="el" href="types_8h.html#a22a95c6b9c6cb449bd02bf919f01896f">CTR_DEPRECATED</a> <a class="el" href="types_8h.html#afaa62991928fb9fb18ff0db62a040aba">u32</a> </td><td class="memItemRight" valign="bottom"><b>IPC_Desc_CurProcessHandle</b> (void)</td></tr>
|
|
<tr class="separator:a30451900dfdb55ae46c2b5adabfb40bd"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a173742ba4cc19c4bb4f588e2afdd8d46"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="types_8h.html#afaa62991928fb9fb18ff0db62a040aba">u32</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="ipc_8h.html#a173742ba4cc19c4bb4f588e2afdd8d46">IPC_Desc_StaticBuffer</a> (size_t size, unsigned buffer_id)</td></tr>
|
|
<tr class="memdesc:a173742ba4cc19c4bb4f588e2afdd8d46"><td class="mdescLeft"> </td><td class="mdescRight">Creates a header describing a static buffer. <a href="ipc_8h.html#a173742ba4cc19c4bb4f588e2afdd8d46">More...</a><br /></td></tr>
|
|
<tr class="separator:a173742ba4cc19c4bb4f588e2afdd8d46"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:ae1337c1e25042c4e50f1491747354a41"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="types_8h.html#afaa62991928fb9fb18ff0db62a040aba">u32</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="ipc_8h.html#ae1337c1e25042c4e50f1491747354a41">IPC_Desc_PXIBuffer</a> (size_t size, unsigned buffer_id, bool is_read_only)</td></tr>
|
|
<tr class="memdesc:ae1337c1e25042c4e50f1491747354a41"><td class="mdescLeft"> </td><td class="mdescRight">Creates a header describing a buffer to be sent over PXI. <a href="ipc_8h.html#ae1337c1e25042c4e50f1491747354a41">More...</a><br /></td></tr>
|
|
<tr class="separator:ae1337c1e25042c4e50f1491747354a41"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a950aa9372b06df242eac7f4225ef6f94"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="types_8h.html#afaa62991928fb9fb18ff0db62a040aba">u32</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="ipc_8h.html#a950aa9372b06df242eac7f4225ef6f94">IPC_Desc_Buffer</a> (size_t size, <a class="el" href="ipc_8h.html#ae0ccf9e363a4bd3b070762b57ffc8783">IPC_BufferRights</a> rights)</td></tr>
|
|
<tr class="memdesc:a950aa9372b06df242eac7f4225ef6f94"><td class="mdescLeft"> </td><td class="mdescRight">Creates a header describing a buffer from the main memory. <a href="ipc_8h.html#a950aa9372b06df242eac7f4225ef6f94">More...</a><br /></td></tr>
|
|
<tr class="separator:a950aa9372b06df242eac7f4225ef6f94"><td class="memSeparator" colspan="2"> </td></tr>
|
|
</table>
|
|
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
|
|
<div class="textblock"><p>Inter Process Communication helpers. </p>
|
|
</div><h2 class="groupheader">Enumeration Type Documentation</h2>
|
|
<a id="ae0ccf9e363a4bd3b070762b57ffc8783"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#ae0ccf9e363a4bd3b070762b57ffc8783">◆ </a></span>IPC_BufferRights</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">enum <a class="el" href="ipc_8h.html#ae0ccf9e363a4bd3b070762b57ffc8783">IPC_BufferRights</a></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>IPC buffer access rights. </p>
|
|
<table class="fieldtable">
|
|
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="ae0ccf9e363a4bd3b070762b57ffc8783aa8137b3b700afc9926ead9fcffaff34f"></a>IPC_BUFFER_R </td><td class="fielddoc"><p>Readable. </p>
|
|
</td></tr>
|
|
<tr><td class="fieldname"><a id="ae0ccf9e363a4bd3b070762b57ffc8783a121e561528ed18b70a5fd5a927d82e43"></a>IPC_BUFFER_W </td><td class="fielddoc"><p>Writable. </p>
|
|
</td></tr>
|
|
<tr><td class="fieldname"><a id="ae0ccf9e363a4bd3b070762b57ffc8783a9052ab0f3610999bf1b79e277ba9b4a0"></a>IPC_BUFFER_RW </td><td class="fielddoc"><p>Readable and Writable. </p>
|
|
</td></tr>
|
|
</table>
|
|
|
|
</div>
|
|
</div>
|
|
<h2 class="groupheader">Function Documentation</h2>
|
|
<a id="a950aa9372b06df242eac7f4225ef6f94"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a950aa9372b06df242eac7f4225ef6f94">◆ </a></span>IPC_Desc_Buffer()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">static <a class="el" href="types_8h.html#afaa62991928fb9fb18ff0db62a040aba">u32</a> IPC_Desc_Buffer </td>
|
|
<td>(</td>
|
|
<td class="paramtype">size_t </td>
|
|
<td class="paramname"><em>size</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype"><a class="el" href="ipc_8h.html#ae0ccf9e363a4bd3b070762b57ffc8783">IPC_BufferRights</a> </td>
|
|
<td class="paramname"><em>rights</em> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td></td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Creates a header describing a buffer from the main memory. </p>
|
|
<dl class="params"><dt>Parameters</dt><dd>
|
|
<table class="params">
|
|
<tr><td class="paramname">size</td><td>Size of the buffer. Max 0x0FFFFFFF. </td></tr>
|
|
<tr><td class="paramname">rights</td><td>The rights of the buffer for the destination process. </td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<dl class="section return"><dt>Returns</dt><dd>The created buffer header.</dd></dl>
|
|
<p>The next value is a pointer to the buffer. </p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a41e3037b6f035d4bc441dae38517366c"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a41e3037b6f035d4bc441dae38517366c">◆ </a></span>IPC_Desc_CurProcessId()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">static <a class="el" href="types_8h.html#afaa62991928fb9fb18ff0db62a040aba">u32</a> IPC_Desc_CurProcessId </td>
|
|
<td>(</td>
|
|
<td class="paramtype">void </td>
|
|
<td class="paramname"></td><td>)</td>
|
|
<td></td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Returns the code to ask the kernel to fill the handle with the current process ID. </p>
|
|
<dl class="section return"><dt>Returns</dt><dd>The code to request the current process ID.</dd></dl>
|
|
<p>The next value is a placeholder that will be replaced by the current process ID by the kernel. </p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a17bec8eebca6a31b5561637b63bfcc51"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a17bec8eebca6a31b5561637b63bfcc51">◆ </a></span>IPC_Desc_MoveHandles()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">static <a class="el" href="types_8h.html#afaa62991928fb9fb18ff0db62a040aba">u32</a> IPC_Desc_MoveHandles </td>
|
|
<td>(</td>
|
|
<td class="paramtype">unsigned </td>
|
|
<td class="paramname"><em>number</em></td><td>)</td>
|
|
<td></td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Creates the header to transfer handle ownership. </p>
|
|
<dl class="params"><dt>Parameters</dt><dd>
|
|
<table class="params">
|
|
<tr><td class="paramname">number</td><td>The number of handles following this header. Max 64. </td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<dl class="section return"><dt>Returns</dt><dd>The created handle transfer header.</dd></dl>
|
|
<p>The #number next values are handles that will be duplicated and closed by the other process.</p>
|
|
<dl class="section note"><dt>Note</dt><dd>Zero values will have no effect. </dd></dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="ae1337c1e25042c4e50f1491747354a41"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#ae1337c1e25042c4e50f1491747354a41">◆ </a></span>IPC_Desc_PXIBuffer()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">static <a class="el" href="types_8h.html#afaa62991928fb9fb18ff0db62a040aba">u32</a> IPC_Desc_PXIBuffer </td>
|
|
<td>(</td>
|
|
<td class="paramtype">size_t </td>
|
|
<td class="paramname"><em>size</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">unsigned </td>
|
|
<td class="paramname"><em>buffer_id</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">bool </td>
|
|
<td class="paramname"><em>is_read_only</em> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td></td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Creates a header describing a buffer to be sent over PXI. </p>
|
|
<dl class="params"><dt>Parameters</dt><dd>
|
|
<table class="params">
|
|
<tr><td class="paramname">size</td><td>Size of the buffer. Max 0x00FFFFFF. </td></tr>
|
|
<tr><td class="paramname">buffer_id</td><td>The Id of the buffer. Max 0xF. </td></tr>
|
|
<tr><td class="paramname">is_read_only</td><td>true if the buffer is read-only. If false, the buffer is considered to have read-write access. </td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<dl class="section return"><dt>Returns</dt><dd>The created PXI buffer header.</dd></dl>
|
|
<p>The next value is a phys-address of a table located in the BASE memregion. </p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a0b7ef8528054a032da9d91b79ab5dd2f"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a0b7ef8528054a032da9d91b79ab5dd2f">◆ </a></span>IPC_Desc_SharedHandles()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">static <a class="el" href="types_8h.html#afaa62991928fb9fb18ff0db62a040aba">u32</a> IPC_Desc_SharedHandles </td>
|
|
<td>(</td>
|
|
<td class="paramtype">unsigned </td>
|
|
<td class="paramname"><em>number</em></td><td>)</td>
|
|
<td></td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Creates a header to share handles. </p>
|
|
<dl class="params"><dt>Parameters</dt><dd>
|
|
<table class="params">
|
|
<tr><td class="paramname">number</td><td>The number of handles following this header. Max 64. </td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<dl class="section return"><dt>Returns</dt><dd>The created shared handles header.</dd></dl>
|
|
<p>The #number next values are handles that will be shared between the two processes.</p>
|
|
<dl class="section note"><dt>Note</dt><dd>Zero values will have no effect. </dd></dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a173742ba4cc19c4bb4f588e2afdd8d46"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a173742ba4cc19c4bb4f588e2afdd8d46">◆ </a></span>IPC_Desc_StaticBuffer()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">static <a class="el" href="types_8h.html#afaa62991928fb9fb18ff0db62a040aba">u32</a> IPC_Desc_StaticBuffer </td>
|
|
<td>(</td>
|
|
<td class="paramtype">size_t </td>
|
|
<td class="paramname"><em>size</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">unsigned </td>
|
|
<td class="paramname"><em>buffer_id</em> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td></td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Creates a header describing a static buffer. </p>
|
|
<dl class="params"><dt>Parameters</dt><dd>
|
|
<table class="params">
|
|
<tr><td class="paramname">size</td><td>Size of the buffer. Max ?0x03FFFF?. </td></tr>
|
|
<tr><td class="paramname">buffer_id</td><td>The Id of the buffer. Max 0xF. </td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<dl class="section return"><dt>Returns</dt><dd>The created static buffer header.</dd></dl>
|
|
<p>The next value is a pointer to the buffer. It will be copied to TLS offset 0x180 + static_buffer_id*8. </p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a5fab7f34fb1ec8651bc8645930eeb432"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a5fab7f34fb1ec8651bc8645930eeb432">◆ </a></span>IPC_MakeHeader()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">static <a class="el" href="types_8h.html#afaa62991928fb9fb18ff0db62a040aba">u32</a> IPC_MakeHeader </td>
|
|
<td>(</td>
|
|
<td class="paramtype"><a class="el" href="types_8h.html#ace9d960e74685e2cd84b36132dbbf8aa">u16</a> </td>
|
|
<td class="paramname"><em>command_id</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">unsigned </td>
|
|
<td class="paramname"><em>normal_params</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">unsigned </td>
|
|
<td class="paramname"><em>translate_params</em> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td></td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Creates a command header to be used for IPC. </p>
|
|
<dl class="params"><dt>Parameters</dt><dd>
|
|
<table class="params">
|
|
<tr><td class="paramname">command_id</td><td>ID of the command to create a header for. </td></tr>
|
|
<tr><td class="paramname">normal_params</td><td>Size of the normal parameters in words. Up to 63. </td></tr>
|
|
<tr><td class="paramname">translate_params</td><td>Size of the translate parameters in words. Up to 63. </td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<dl class="section return"><dt>Returns</dt><dd>The created IPC header.</dd></dl>
|
|
<p>Normal parameters are sent directly to the process while the translate parameters might go through modifications and checks by the kernel. The translate parameters are described by headers generated with the IPC_Desc_* functions.</p>
|
|
<dl class="section note"><dt>Note</dt><dd>While #normal_params is equivalent to the number of normal parameters, #translate_params includes the size occupied by the translate parameters headers. </dd></dl>
|
|
|
|
</div>
|
|
</div>
|
|
</div><!-- contents -->
|
|
<!-- start footer part -->
|
|
<hr class="footer"/><address class="footer"><small>
|
|
Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1
|
|
</small></address>
|
|
</body>
|
|
</html>
|