]> Gitweb @ Texas Instruments - Open Source Git Repositories - git.TI.com/gitweb - processor-sdk/performance-audio-sr.git/blob - processor_audio_sdk_1_00_00_00/psdk_cust/ipc_3_43_00_00_eng/docs/doxygen/html/_mm_rpc_8h.html
Update test_arm and test_dsp projects for new locations of IPC and PDK eng
[processor-sdk/performance-audio-sr.git] / processor_audio_sdk_1_00_00_00 / psdk_cust / ipc_3_43_00_00_eng / docs / doxygen / html / _mm_rpc_8h.html
1 <!-- HTML header for doxygen 1.8.9.1-->
2 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3 <html xmlns="http://www.w3.org/1999/xhtml">
4 <head>
5 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
6 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
7 <meta name="generator" content="Doxygen 1.8.9.1"/>
8 <title>IPC API: ti/ipc/mm/MmRpc.h File Reference</title>
9 <link href="tabs.css" rel="stylesheet" type="text/css"/>
10 <script type="text/javascript" src="jquery.js"></script>
11 <script type="text/javascript" src="dynsections.js"></script>
12 <link href="search/search.css" rel="stylesheet" type="text/css"/>
13 <script type="text/javascript" src="search/searchdata.js"></script>
14 <script type="text/javascript" src="search/search.js"></script>
15 <script type="text/javascript">
16   $(document).ready(function() { init_search(); });
17 </script>
18 <link href="doxygen.css" rel="stylesheet" type="text/css" />
19 </head>
20 <body>
21 <table width="100%">
22 <tr>
23   <td bgcolor="black" width="1"><a href="http://www.ti.com"><img border="0" src="tilogo.gif" /></a></td>
24   <td bgcolor="red"><img src="titagline.gif" /></td>
25 </tr>
26 </table>
27 <div id="top"><!-- do not remove this div, it is closed by doxygen! -->
28 <div id="titlearea">
29 <table cellspacing="0" cellpadding="0">
30  <tbody>
31  <tr style="height: 56px;">
32   <td style="padding-left: 0.5em;">
33    <div id="projectname">IPC API
34    &#160;<span id="projectnumber">3.43.00.00_eng</span>
35    </div>
36   </td>
37  </tr>
38  </tbody>
39 </table>
40 </div>
41 <!-- end header part -->
42 <!-- Generated by Doxygen 1.8.9.1 -->
43 <script type="text/javascript">
44 var searchBox = new SearchBox("searchBox", "search",false,'Search');
45 </script>
46   <div id="navrow1" class="tabs">
47     <ul class="tablist">
48       <li><a href="index.html"><span>Main&#160;Page</span></a></li>
49       <li><a href="modules.html"><span>Modules</span></a></li>
50       <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
51       <li class="current"><a href="files.html"><span>Files</span></a></li>
52       <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
53       <li>
54         <div id="MSearchBox" class="MSearchBoxInactive">
55         <span class="left">
56           <img id="MSearchSelect" src="search/mag_sel.png"
57                onmouseover="return searchBox.OnSearchSelectShow()"
58                onmouseout="return searchBox.OnSearchSelectHide()"
59                alt=""/>
60           <input type="text" id="MSearchField" value="Search" accesskey="S"
61                onfocus="searchBox.OnSearchFieldFocus(true)" 
62                onblur="searchBox.OnSearchFieldFocus(false)" 
63                onkeyup="searchBox.OnSearchFieldChange(event)"/>
64           </span><span class="right">
65             <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
66           </span>
67         </div>
68       </li>
69     </ul>
70   </div>
71   <div id="navrow2" class="tabs2">
72     <ul class="tablist">
73       <li><a href="files.html"><span>File&#160;List</span></a></li>
74       <li><a href="globals.html"><span>Globals</span></a></li>
75     </ul>
76   </div>
77 <!-- window showing the filter options -->
78 <div id="MSearchSelectWindow"
79      onmouseover="return searchBox.OnSearchSelectShow()"
80      onmouseout="return searchBox.OnSearchSelectHide()"
81      onkeydown="return searchBox.OnSearchSelectKey(event)">
82 </div>
84 <!-- iframe showing the search results (closed by default) -->
85 <div id="MSearchResultsWindow">
86 <iframe src="javascript:void(0)" frameborder="0" 
87         name="MSearchResults" id="MSearchResults">
88 </iframe>
89 </div>
91 <div id="nav-path" class="navpath">
92   <ul>
93 <li class="navelem"><a class="el" href="dir_46079174fecd82ead33d8fa28082a6fc.html">ti</a></li><li class="navelem"><a class="el" href="dir_d15d182bf14778c656928067305f92ce.html">ipc</a></li><li class="navelem"><a class="el" href="dir_56fd8ac1e7e4a8b4fba40e09a040211b.html">mm</a></li>  </ul>
94 </div>
95 </div><!-- top -->
96 <div class="header">
97   <div class="summary">
98 <a href="#nested-classes">Data Structures</a> &#124;
99 <a href="#define-members">Macros</a> &#124;
100 <a href="#typedef-members">Typedefs</a> &#124;
101 <a href="#enum-members">Enumerations</a> &#124;
102 <a href="#func-members">Functions</a>  </div>
103   <div class="headertitle">
104 <div class="title">MmRpc.h File Reference</div>  </div>
105 </div><!--header-->
106 <div class="contents">
107 <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
108 <div class="textblock"><p>Multi-Media derived Remote Procedure Call. </p>
109 <dl class="section note"><dt>Note</dt><dd>MmRpc is currently only available for HLOS (Linux, QNX, Android). </dd></dl>
110 </div><div class="textblock"><code>#include &lt;stddef.h&gt;</code><br />
111 <code>#include &lt;stdint.h&gt;</code><br />
112 </div><div class="textblock"><div class="dynheader">
113 Include dependency graph for MmRpc.h:</div>
114 <div class="dyncontent">
115 <div class="center"><img src="_mm_rpc_8h__incl.png" border="0" usemap="#ti_2ipc_2mm_2_mm_rpc_8h" alt=""/></div>
116 <map name="ti_2ipc_2mm_2_mm_rpc_8h" id="ti_2ipc_2mm_2_mm_rpc_8h">
117 </map>
118 </div>
119 </div>
120 <p><a href="_mm_rpc_8h_source.html">Go to the source code of this file.</a></p>
121 <table class="memberdecls">
122 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
123 Data Structures</h2></td></tr>
124 <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_mm_rpc___param.html">MmRpc_Param</a></td></tr>
125 <tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="struct_mm_rpc___param.html" title="MmRpc_Param type. ">MmRpc_Param</a> type.  <a href="struct_mm_rpc___param.html#details">More...</a><br /></td></tr>
126 <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
127 <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_mm_rpc___xlt.html">MmRpc_Xlt</a></td></tr>
128 <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
129 <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_mm_rpc___fxn_ctx.html">MmRpc_FxnCtx</a></td></tr>
130 <tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Function call context structure.  <a href="struct_mm_rpc___fxn_ctx.html#details">More...</a><br /></td></tr>
131 <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
132 <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">union &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="union_mm_rpc___buf_desc.html">MmRpc_BufDesc</a></td></tr>
133 <tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Memory buffer descriptor.  <a href="union_mm_rpc___buf_desc.html#details">More...</a><br /></td></tr>
134 <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
135 <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_mm_rpc___params.html">MmRpc_Params</a></td></tr>
136 <tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Instance create parameters.  <a href="struct_mm_rpc___params.html#details">More...</a><br /></td></tr>
137 <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
138 </table><table class="memberdecls">
139 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
140 Macros</h2></td></tr>
141 <tr class="memitem:ad7c8a1a7f721245c8a67f69a2285da00"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_mm_rpc_8h.html#ad7c8a1a7f721245c8a67f69a2285da00">MmRpc_S_SUCCESS</a>&#160;&#160;&#160;(0)</td></tr>
142 <tr class="memdesc:ad7c8a1a7f721245c8a67f69a2285da00"><td class="mdescLeft">&#160;</td><td class="mdescRight">Operation is successful.  <a href="#ad7c8a1a7f721245c8a67f69a2285da00">More...</a><br /></td></tr>
143 <tr class="separator:ad7c8a1a7f721245c8a67f69a2285da00"><td class="memSeparator" colspan="2">&#160;</td></tr>
144 <tr class="memitem:ab2aa8df99a181b0bcc1c9c1a8a71c4db"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_mm_rpc_8h.html#ab2aa8df99a181b0bcc1c9c1a8a71c4db">MmRpc_E_FAIL</a>&#160;&#160;&#160;(-1)</td></tr>
145 <tr class="memdesc:ab2aa8df99a181b0bcc1c9c1a8a71c4db"><td class="mdescLeft">&#160;</td><td class="mdescRight">Operation failed.  <a href="#ab2aa8df99a181b0bcc1c9c1a8a71c4db">More...</a><br /></td></tr>
146 <tr class="separator:ab2aa8df99a181b0bcc1c9c1a8a71c4db"><td class="memSeparator" colspan="2">&#160;</td></tr>
147 <tr class="memitem:a6b93c8a906ca69b8d6ac739a15ecb072"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_mm_rpc_8h.html#a6b93c8a906ca69b8d6ac739a15ecb072">MmRpc_E_INVALIDPARAM</a>&#160;&#160;&#160;(-2)</td></tr>
148 <tr class="memdesc:a6b93c8a906ca69b8d6ac739a15ecb072"><td class="mdescLeft">&#160;</td><td class="mdescRight">Invalid parameter type.  <a href="#a6b93c8a906ca69b8d6ac739a15ecb072">More...</a><br /></td></tr>
149 <tr class="separator:a6b93c8a906ca69b8d6ac739a15ecb072"><td class="memSeparator" colspan="2">&#160;</td></tr>
150 <tr class="memitem:a2be3fa71e1b0c623520187c0025a0217"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_mm_rpc_8h.html#a2be3fa71e1b0c623520187c0025a0217">MmRpc_E_NOMEM</a>&#160;&#160;&#160;(-3)</td></tr>
151 <tr class="memdesc:a2be3fa71e1b0c623520187c0025a0217"><td class="mdescLeft">&#160;</td><td class="mdescRight">Memory allocation failed.  <a href="#a2be3fa71e1b0c623520187c0025a0217">More...</a><br /></td></tr>
152 <tr class="separator:a2be3fa71e1b0c623520187c0025a0217"><td class="memSeparator" colspan="2">&#160;</td></tr>
153 <tr class="memitem:a3149b7e8f6882f9145cc9e61d2332275"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_mm_rpc_8h.html#a3149b7e8f6882f9145cc9e61d2332275">MmRpc_E_SYS</a>&#160;&#160;&#160;(-4)</td></tr>
154 <tr class="memdesc:a3149b7e8f6882f9145cc9e61d2332275"><td class="mdescLeft">&#160;</td><td class="mdescRight">A system call failed.  <a href="#a3149b7e8f6882f9145cc9e61d2332275">More...</a><br /></td></tr>
155 <tr class="separator:a3149b7e8f6882f9145cc9e61d2332275"><td class="memSeparator" colspan="2">&#160;</td></tr>
156 <tr class="memitem:a5a83e3adb6b1cadb977e366a4eb26419"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_mm_rpc_8h.html#a5a83e3adb6b1cadb977e366a4eb26419">MmRpc_MAX_PARAMS</a>&#160;&#160;&#160;(10)</td></tr>
157 <tr class="memdesc:a5a83e3adb6b1cadb977e366a4eb26419"><td class="mdescLeft">&#160;</td><td class="mdescRight">Size of parameter array in function context structure.  <a href="#a5a83e3adb6b1cadb977e366a4eb26419">More...</a><br /></td></tr>
158 <tr class="separator:a5a83e3adb6b1cadb977e366a4eb26419"><td class="memSeparator" colspan="2">&#160;</td></tr>
159 <tr class="memitem:a5b9920d8b45817582efc8b632acade46"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_mm_rpc_8h.html#a5b9920d8b45817582efc8b632acade46">MmRpc_MAX_TRANSLATIONS</a>&#160;&#160;&#160;(1024)</td></tr>
160 <tr class="memdesc:a5b9920d8b45817582efc8b632acade46"><td class="mdescLeft">&#160;</td><td class="mdescRight">Maximum size of translation array in function context structure.  <a href="#a5b9920d8b45817582efc8b632acade46">More...</a><br /></td></tr>
161 <tr class="separator:a5b9920d8b45817582efc8b632acade46"><td class="memSeparator" colspan="2">&#160;</td></tr>
162 <tr class="memitem:a3db5e4bc470716cce193eb95074a77c7"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_mm_rpc_8h.html#a3db5e4bc470716cce193eb95074a77c7">MmRpc_OFFSET</a>(base,  field)&#160;&#160;&#160;((unsigned int)(field)-(unsigned int)(base))</td></tr>
163 <tr class="memdesc:a3db5e4bc470716cce193eb95074a77c7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Macro for computing offset to a field of a structure.  <a href="#a3db5e4bc470716cce193eb95074a77c7">More...</a><br /></td></tr>
164 <tr class="separator:a3db5e4bc470716cce193eb95074a77c7"><td class="memSeparator" colspan="2">&#160;</td></tr>
165 </table><table class="memberdecls">
166 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
167 Typedefs</h2></td></tr>
168 <tr class="memitem:a3c8c5e1aaa4b69ee72e5ca63dcf42b70"><td class="memItemLeft" align="right" valign="top">typedef struct MmRpc_Object *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_mm_rpc_8h.html#a3c8c5e1aaa4b69ee72e5ca63dcf42b70">MmRpc_Handle</a></td></tr>
169 <tr class="memdesc:a3c8c5e1aaa4b69ee72e5ca63dcf42b70"><td class="mdescLeft">&#160;</td><td class="mdescRight">MmRpc_Handle type.  <a href="#a3c8c5e1aaa4b69ee72e5ca63dcf42b70">More...</a><br /></td></tr>
170 <tr class="separator:a3c8c5e1aaa4b69ee72e5ca63dcf42b70"><td class="memSeparator" colspan="2">&#160;</td></tr>
171 </table><table class="memberdecls">
172 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
173 Enumerations</h2></td></tr>
174 <tr class="memitem:aa14265af324f99fc15feadba391e6bfa"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_mm_rpc_8h.html#aa14265af324f99fc15feadba391e6bfa">MmRpc_ParamType</a> { <br />
175 &#160;&#160;<a class="el" href="_mm_rpc_8h.html#aa14265af324f99fc15feadba391e6bfaa692612dc6e22b9b5165c162e4c0e4209">MmRpc_ParamType_Scalar</a> = 1, 
176 <br />
177 &#160;&#160;<a class="el" href="_mm_rpc_8h.html#aa14265af324f99fc15feadba391e6bfaa6bcbf1e9e6366e3a854dce4b2ba2f6f9">MmRpc_ParamType_Ptr</a>, 
178 <br />
179 &#160;&#160;<a class="el" href="_mm_rpc_8h.html#aa14265af324f99fc15feadba391e6bfaa12f27d7cd0802715d618114a8f3b2a48">MmRpc_ParamType_OffPtr</a>, 
180 <br />
181 &#160;&#160;<a class="el" href="_mm_rpc_8h.html#aa14265af324f99fc15feadba391e6bfaa2ec19499d0df41fbae3d5c89762d510f">MmRpc_ParamType_Elem</a>
182 <br />
183  }</td></tr>
184 <tr class="memdesc:aa14265af324f99fc15feadba391e6bfa"><td class="mdescLeft">&#160;</td><td class="mdescRight">MmRpc_ParamType enum.  <a href="_mm_rpc_8h.html#aa14265af324f99fc15feadba391e6bfa">More...</a><br /></td></tr>
185 <tr class="separator:aa14265af324f99fc15feadba391e6bfa"><td class="memSeparator" colspan="2">&#160;</td></tr>
186 <tr class="memitem:ae9768b7d001102ef8eac026f3be6a788"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_mm_rpc_8h.html#ae9768b7d001102ef8eac026f3be6a788">MmRpc_BufType</a> { <br />
187 &#160;&#160;<a class="el" href="_mm_rpc_8h.html#ae9768b7d001102ef8eac026f3be6a788a2527bb614bb9780e6ee60ce103815180">MmRpc_BufType_Handle</a>, 
188 <br />
189 &#160;&#160;<a class="el" href="_mm_rpc_8h.html#ae9768b7d001102ef8eac026f3be6a788a32015f574b31c9cc5ffab12b2a2dcb34">MmRpc_BufType_Ptr</a>
190 <br />
191  }</td></tr>
192 <tr class="memdesc:ae9768b7d001102ef8eac026f3be6a788"><td class="mdescLeft">&#160;</td><td class="mdescRight">Memory buffer types.  <a href="_mm_rpc_8h.html#ae9768b7d001102ef8eac026f3be6a788">More...</a><br /></td></tr>
193 <tr class="separator:ae9768b7d001102ef8eac026f3be6a788"><td class="memSeparator" colspan="2">&#160;</td></tr>
194 </table><table class="memberdecls">
195 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
196 Functions</h2></td></tr>
197 <tr class="memitem:ac25d7a196577a980b6bf27fbc9691a7e"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_mm_rpc_8h.html#ac25d7a196577a980b6bf27fbc9691a7e">MmRpc_call</a> (<a class="el" href="_mm_rpc_8h.html#a3c8c5e1aaa4b69ee72e5ca63dcf42b70">MmRpc_Handle</a> handle, <a class="el" href="struct_mm_rpc___fxn_ctx.html">MmRpc_FxnCtx</a> *ctx, int32_t *ret)</td></tr>
198 <tr class="memdesc:ac25d7a196577a980b6bf27fbc9691a7e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Invoke a remote procedure call.  <a href="#ac25d7a196577a980b6bf27fbc9691a7e">More...</a><br /></td></tr>
199 <tr class="separator:ac25d7a196577a980b6bf27fbc9691a7e"><td class="memSeparator" colspan="2">&#160;</td></tr>
200 <tr class="memitem:a3ce22548ab0e843f9005e7612ef24a30"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_mm_rpc_8h.html#a3ce22548ab0e843f9005e7612ef24a30">MmRpc_create</a> (const char *service, const <a class="el" href="struct_mm_rpc___params.html">MmRpc_Params</a> *params, <a class="el" href="_mm_rpc_8h.html#a3c8c5e1aaa4b69ee72e5ca63dcf42b70">MmRpc_Handle</a> *handlePtr)</td></tr>
201 <tr class="memdesc:a3ce22548ab0e843f9005e7612ef24a30"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create an MmRpc instance.  <a href="#a3ce22548ab0e843f9005e7612ef24a30">More...</a><br /></td></tr>
202 <tr class="separator:a3ce22548ab0e843f9005e7612ef24a30"><td class="memSeparator" colspan="2">&#160;</td></tr>
203 <tr class="memitem:a8ca5b47243f01846abbd0b11c2d9a19b"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_mm_rpc_8h.html#a8ca5b47243f01846abbd0b11c2d9a19b">MmRpc_delete</a> (<a class="el" href="_mm_rpc_8h.html#a3c8c5e1aaa4b69ee72e5ca63dcf42b70">MmRpc_Handle</a> *handlePtr)</td></tr>
204 <tr class="memdesc:a8ca5b47243f01846abbd0b11c2d9a19b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Delete an MmRpc instance.  <a href="#a8ca5b47243f01846abbd0b11c2d9a19b">More...</a><br /></td></tr>
205 <tr class="separator:a8ca5b47243f01846abbd0b11c2d9a19b"><td class="memSeparator" colspan="2">&#160;</td></tr>
206 <tr class="memitem:a8d360d8954b543b6e7368beb08b35060"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_mm_rpc_8h.html#a8d360d8954b543b6e7368beb08b35060">MmRpc_release</a> (<a class="el" href="_mm_rpc_8h.html#a3c8c5e1aaa4b69ee72e5ca63dcf42b70">MmRpc_Handle</a> handle, <a class="el" href="_mm_rpc_8h.html#ae9768b7d001102ef8eac026f3be6a788">MmRpc_BufType</a> type, int num, <a class="el" href="union_mm_rpc___buf_desc.html">MmRpc_BufDesc</a> *desc)</td></tr>
207 <tr class="memdesc:a8d360d8954b543b6e7368beb08b35060"><td class="mdescLeft">&#160;</td><td class="mdescRight">Release buffers which were declared in use.  <a href="#a8d360d8954b543b6e7368beb08b35060">More...</a><br /></td></tr>
208 <tr class="separator:a8d360d8954b543b6e7368beb08b35060"><td class="memSeparator" colspan="2">&#160;</td></tr>
209 <tr class="memitem:af16b51a269a7c2c9d048e0995b8169cf"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_mm_rpc_8h.html#af16b51a269a7c2c9d048e0995b8169cf">MmRpc_use</a> (<a class="el" href="_mm_rpc_8h.html#a3c8c5e1aaa4b69ee72e5ca63dcf42b70">MmRpc_Handle</a> handle, <a class="el" href="_mm_rpc_8h.html#ae9768b7d001102ef8eac026f3be6a788">MmRpc_BufType</a> type, int num, <a class="el" href="union_mm_rpc___buf_desc.html">MmRpc_BufDesc</a> *desc)</td></tr>
210 <tr class="memdesc:af16b51a269a7c2c9d048e0995b8169cf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Declare the use of the given buffers.  <a href="#af16b51a269a7c2c9d048e0995b8169cf">More...</a><br /></td></tr>
211 <tr class="separator:af16b51a269a7c2c9d048e0995b8169cf"><td class="memSeparator" colspan="2">&#160;</td></tr>
212 <tr class="memitem:a1f267e3558b8124373801fc0f0ce2851"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_mm_rpc_8h.html#a1f267e3558b8124373801fc0f0ce2851">MmRpc_Params_init</a> (<a class="el" href="struct_mm_rpc___params.html">MmRpc_Params</a> *params)</td></tr>
213 <tr class="memdesc:a1f267e3558b8124373801fc0f0ce2851"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize the instance create parameter structure.  <a href="#a1f267e3558b8124373801fc0f0ce2851">More...</a><br /></td></tr>
214 <tr class="separator:a1f267e3558b8124373801fc0f0ce2851"><td class="memSeparator" colspan="2">&#160;</td></tr>
215 </table>
216 <h2 class="groupheader">Macro Definition Documentation</h2>
217 <a class="anchor" id="ad7c8a1a7f721245c8a67f69a2285da00"></a>
218 <div class="memitem">
219 <div class="memproto">
220       <table class="memname">
221         <tr>
222           <td class="memname">#define MmRpc_S_SUCCESS&#160;&#160;&#160;(0)</td>
223         </tr>
224       </table>
225 </div><div class="memdoc">
227 <p>Operation is successful. </p>
229 </div>
230 </div>
231 <a class="anchor" id="ab2aa8df99a181b0bcc1c9c1a8a71c4db"></a>
232 <div class="memitem">
233 <div class="memproto">
234       <table class="memname">
235         <tr>
236           <td class="memname">#define MmRpc_E_FAIL&#160;&#160;&#160;(-1)</td>
237         </tr>
238       </table>
239 </div><div class="memdoc">
241 <p>Operation failed. </p>
243 </div>
244 </div>
245 <a class="anchor" id="a6b93c8a906ca69b8d6ac739a15ecb072"></a>
246 <div class="memitem">
247 <div class="memproto">
248       <table class="memname">
249         <tr>
250           <td class="memname">#define MmRpc_E_INVALIDPARAM&#160;&#160;&#160;(-2)</td>
251         </tr>
252       </table>
253 </div><div class="memdoc">
255 <p>Invalid parameter type. </p>
257 </div>
258 </div>
259 <a class="anchor" id="a2be3fa71e1b0c623520187c0025a0217"></a>
260 <div class="memitem">
261 <div class="memproto">
262       <table class="memname">
263         <tr>
264           <td class="memname">#define MmRpc_E_NOMEM&#160;&#160;&#160;(-3)</td>
265         </tr>
266       </table>
267 </div><div class="memdoc">
269 <p>Memory allocation failed. </p>
271 </div>
272 </div>
273 <a class="anchor" id="a3149b7e8f6882f9145cc9e61d2332275"></a>
274 <div class="memitem">
275 <div class="memproto">
276       <table class="memname">
277         <tr>
278           <td class="memname">#define MmRpc_E_SYS&#160;&#160;&#160;(-4)</td>
279         </tr>
280       </table>
281 </div><div class="memdoc">
283 <p>A system call failed. </p>
285 </div>
286 </div>
287 <a class="anchor" id="a5a83e3adb6b1cadb977e366a4eb26419"></a>
288 <div class="memitem">
289 <div class="memproto">
290       <table class="memname">
291         <tr>
292           <td class="memname">#define MmRpc_MAX_PARAMS&#160;&#160;&#160;(10)</td>
293         </tr>
294       </table>
295 </div><div class="memdoc">
297 <p>Size of parameter array in function context structure. </p>
299 </div>
300 </div>
301 <a class="anchor" id="a5b9920d8b45817582efc8b632acade46"></a>
302 <div class="memitem">
303 <div class="memproto">
304       <table class="memname">
305         <tr>
306           <td class="memname">#define MmRpc_MAX_TRANSLATIONS&#160;&#160;&#160;(1024)</td>
307         </tr>
308       </table>
309 </div><div class="memdoc">
311 <p>Maximum size of translation array in function context structure. </p>
313 </div>
314 </div>
315 <a class="anchor" id="a3db5e4bc470716cce193eb95074a77c7"></a>
316 <div class="memitem">
317 <div class="memproto">
318       <table class="memname">
319         <tr>
320           <td class="memname">#define MmRpc_OFFSET</td>
321           <td>(</td>
322           <td class="paramtype">&#160;</td>
323           <td class="paramname">base, </td>
324         </tr>
325         <tr>
326           <td class="paramkey"></td>
327           <td></td>
328           <td class="paramtype">&#160;</td>
329           <td class="paramname">field&#160;</td>
330         </tr>
331         <tr>
332           <td></td>
333           <td>)</td>
334           <td></td><td>&#160;&#160;&#160;((unsigned int)(field)-(unsigned int)(base))</td>
335         </tr>
336       </table>
337 </div><div class="memdoc">
339 <p>Macro for computing offset to a field of a structure. </p>
340 <div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;struct foobar {</div>
341 <div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;    int a;</div>
342 <div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;    int *p;</div>
343 <div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;};</div>
344 <div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;</div>
345 <div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;struct foobar *sp = ...;</div>
346 <div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;offset = MmRpc_OFFSET(sp, &amp;sp-&gt;p);</div>
347 <div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;struct foobar st = ...;</div>
348 <div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;offset = MmRpc_OFFSET(&amp;st, &amp;st.p);</div>
349 </div><!-- fragment --> 
350 </div>
351 </div>
352 <h2 class="groupheader">Typedef Documentation</h2>
353 <a class="anchor" id="a3c8c5e1aaa4b69ee72e5ca63dcf42b70"></a>
354 <div class="memitem">
355 <div class="memproto">
356       <table class="memname">
357         <tr>
358           <td class="memname">typedef struct MmRpc_Object* <a class="el" href="_mm_rpc_8h.html#a3c8c5e1aaa4b69ee72e5ca63dcf42b70">MmRpc_Handle</a></td>
359         </tr>
360       </table>
361 </div><div class="memdoc">
363 <p>MmRpc_Handle type. </p>
365 </div>
366 </div>
367 <h2 class="groupheader">Enumeration Type Documentation</h2>
368 <a class="anchor" id="aa14265af324f99fc15feadba391e6bfa"></a>
369 <div class="memitem">
370 <div class="memproto">
371       <table class="memname">
372         <tr>
373           <td class="memname">enum <a class="el" href="_mm_rpc_8h.html#aa14265af324f99fc15feadba391e6bfa">MmRpc_ParamType</a></td>
374         </tr>
375       </table>
376 </div><div class="memdoc">
378 <p>MmRpc_ParamType enum. </p>
379 <table class="fieldtable">
380 <tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a class="anchor" id="aa14265af324f99fc15feadba391e6bfaa692612dc6e22b9b5165c162e4c0e4209"></a>MmRpc_ParamType_Scalar&#160;</td><td class="fielddoc">
381 <p>pass by value </p>
382 </td></tr>
383 <tr><td class="fieldname"><a class="anchor" id="aa14265af324f99fc15feadba391e6bfaa6bcbf1e9e6366e3a854dce4b2ba2f6f9"></a>MmRpc_ParamType_Ptr&#160;</td><td class="fielddoc">
384 <p>data pointer </p>
385 </td></tr>
386 <tr><td class="fieldname"><a class="anchor" id="aa14265af324f99fc15feadba391e6bfaa12f27d7cd0802715d618114a8f3b2a48"></a>MmRpc_ParamType_OffPtr&#160;</td><td class="fielddoc">
387 <p>buffer at offset in memory block </p>
388 </td></tr>
389 <tr><td class="fieldname"><a class="anchor" id="aa14265af324f99fc15feadba391e6bfaa2ec19499d0df41fbae3d5c89762d510f"></a>MmRpc_ParamType_Elem&#160;</td><td class="fielddoc">
390 <p>array element </p>
391 </td></tr>
392 </table>
394 </div>
395 </div>
396 <a class="anchor" id="ae9768b7d001102ef8eac026f3be6a788"></a>
397 <div class="memitem">
398 <div class="memproto">
399       <table class="memname">
400         <tr>
401           <td class="memname">enum <a class="el" href="_mm_rpc_8h.html#ae9768b7d001102ef8eac026f3be6a788">MmRpc_BufType</a></td>
402         </tr>
403       </table>
404 </div><div class="memdoc">
406 <p>Memory buffer types. </p>
407 <dl class="section remark"><dt>Remarks</dt><dd>Not all operating systems support all buffer types. </dd></dl>
408 <table class="fieldtable">
409 <tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a class="anchor" id="ae9768b7d001102ef8eac026f3be6a788a2527bb614bb9780e6ee60ce103815180"></a>MmRpc_BufType_Handle&#160;</td><td class="fielddoc">
410 <p>memory allocator handle </p>
411 </td></tr>
412 <tr><td class="fieldname"><a class="anchor" id="ae9768b7d001102ef8eac026f3be6a788a32015f574b31c9cc5ffab12b2a2dcb34"></a>MmRpc_BufType_Ptr&#160;</td><td class="fielddoc">
413 <p>buffer address </p>
414 </td></tr>
415 </table>
417 </div>
418 </div>
419 <h2 class="groupheader">Function Documentation</h2>
420 <a class="anchor" id="ac25d7a196577a980b6bf27fbc9691a7e"></a>
421 <div class="memitem">
422 <div class="memproto">
423       <table class="memname">
424         <tr>
425           <td class="memname">int MmRpc_call </td>
426           <td>(</td>
427           <td class="paramtype"><a class="el" href="_mm_rpc_8h.html#a3c8c5e1aaa4b69ee72e5ca63dcf42b70">MmRpc_Handle</a>&#160;</td>
428           <td class="paramname"><em>handle</em>, </td>
429         </tr>
430         <tr>
431           <td class="paramkey"></td>
432           <td></td>
433           <td class="paramtype"><a class="el" href="struct_mm_rpc___fxn_ctx.html">MmRpc_FxnCtx</a> *&#160;</td>
434           <td class="paramname"><em>ctx</em>, </td>
435         </tr>
436         <tr>
437           <td class="paramkey"></td>
438           <td></td>
439           <td class="paramtype">int32_t *&#160;</td>
440           <td class="paramname"><em>ret</em>&#160;</td>
441         </tr>
442         <tr>
443           <td></td>
444           <td>)</td>
445           <td></td><td></td>
446         </tr>
447       </table>
448 </div><div class="memdoc">
450 <p>Invoke a remote procedure call. </p>
451 <dl class="params"><dt>Parameters</dt><dd>
452   <table class="params">
453     <tr><td class="paramdir">[in]</td><td class="paramname">handle</td><td>MmRpc handle, obtained from <a class="el" href="_mm_rpc_8h.html#a3ce22548ab0e843f9005e7612ef24a30" title="Create an MmRpc instance. ">MmRpc_create()</a> </td></tr>
454     <tr><td class="paramdir">[in]</td><td class="paramname">ctx</td><td>Context with which to invoke the remote service </td></tr>
455     <tr><td class="paramdir">[in,out]</td><td class="paramname">ret</td><td>Return value from the remotely invoked service</td></tr>
456   </table>
457   </dd>
458 </dl>
459 <dl class="section pre"><dt>Precondition</dt><dd><code>handle</code> must be a valid handle for the service instance returned by an earlier call to <a class="el" href="_mm_rpc_8h.html#a3ce22548ab0e843f9005e7612ef24a30" title="Create an MmRpc instance. ">MmRpc_create()</a>.</dd></dl>
460 <dl class="section see"><dt>See also</dt><dd><a class="el" href="_mm_rpc_8h.html#a3ce22548ab0e843f9005e7612ef24a30" title="Create an MmRpc instance. ">MmRpc_create()</a> </dd>
461 <dd>
462 <a class="el" href="_mm_rpc_8h.html#a8ca5b47243f01846abbd0b11c2d9a19b" title="Delete an MmRpc instance. ">MmRpc_delete()</a> </dd></dl>
464 </div>
465 </div>
466 <a class="anchor" id="a3ce22548ab0e843f9005e7612ef24a30"></a>
467 <div class="memitem">
468 <div class="memproto">
469       <table class="memname">
470         <tr>
471           <td class="memname">int MmRpc_create </td>
472           <td>(</td>
473           <td class="paramtype">const char *&#160;</td>
474           <td class="paramname"><em>service</em>, </td>
475         </tr>
476         <tr>
477           <td class="paramkey"></td>
478           <td></td>
479           <td class="paramtype">const <a class="el" href="struct_mm_rpc___params.html">MmRpc_Params</a> *&#160;</td>
480           <td class="paramname"><em>params</em>, </td>
481         </tr>
482         <tr>
483           <td class="paramkey"></td>
484           <td></td>
485           <td class="paramtype"><a class="el" href="_mm_rpc_8h.html#a3c8c5e1aaa4b69ee72e5ca63dcf42b70">MmRpc_Handle</a> *&#160;</td>
486           <td class="paramname"><em>handlePtr</em>&#160;</td>
487         </tr>
488         <tr>
489           <td></td>
490           <td>)</td>
491           <td></td><td></td>
492         </tr>
493       </table>
494 </div><div class="memdoc">
496 <p>Create an MmRpc instance. </p>
497 <dl class="params"><dt>Parameters</dt><dd>
498   <table class="params">
499     <tr><td class="paramdir">[in]</td><td class="paramname">service</td><td>Name of the service to create </td></tr>
500     <tr><td class="paramdir">[in]</td><td class="paramname">params</td><td>Initialized MmRpc parameters </td></tr>
501     <tr><td class="paramdir">[in,out]</td><td class="paramname">handlePtr</td><td>Space to hold the MmRpc handle</td></tr>
502   </table>
503   </dd>
504 </dl>
505 <dl class="retval"><dt>Return values</dt><dd>
506   <table class="retval">
507     <tr><td class="paramname">MmRpc_S_SUCCESS</td><td>Operation is successful.</td></tr>
508     <tr><td class="paramname">MmRpc_E_FAIL</td><td>Operation failed.</td></tr>
509   </table>
510   </dd>
511 </dl>
512 <dl class="section remark"><dt>Remarks</dt><dd>This instantiates an instance of the service on a remote core. Each remote instance consists of a unique thread listening for requests made via a call to <a class="el" href="_mm_rpc_8h.html#ac25d7a196577a980b6bf27fbc9691a7e" title="Invoke a remote procedure call. ">MmRpc_call()</a>. </dd></dl>
514 </div>
515 </div>
516 <a class="anchor" id="a8ca5b47243f01846abbd0b11c2d9a19b"></a>
517 <div class="memitem">
518 <div class="memproto">
519       <table class="memname">
520         <tr>
521           <td class="memname">int MmRpc_delete </td>
522           <td>(</td>
523           <td class="paramtype"><a class="el" href="_mm_rpc_8h.html#a3c8c5e1aaa4b69ee72e5ca63dcf42b70">MmRpc_Handle</a> *&#160;</td>
524           <td class="paramname"><em>handlePtr</em></td><td>)</td>
525           <td></td>
526         </tr>
527       </table>
528 </div><div class="memdoc">
530 <p>Delete an MmRpc instance. </p>
531 <dl class="params"><dt>Parameters</dt><dd>
532   <table class="params">
533     <tr><td class="paramdir">[in]</td><td class="paramname">handlePtr</td><td>MmRpc handle, obtained from <a class="el" href="_mm_rpc_8h.html#a3ce22548ab0e843f9005e7612ef24a30" title="Create an MmRpc instance. ">MmRpc_create()</a></td></tr>
534   </table>
535   </dd>
536 </dl>
537 <dl class="section pre"><dt>Precondition</dt><dd><code>handlePtr</code> must be a valid handle for the service instance returned by an earlier call to <a class="el" href="_mm_rpc_8h.html#a3ce22548ab0e843f9005e7612ef24a30" title="Create an MmRpc instance. ">MmRpc_create()</a></dd></dl>
538 <dl class="section see"><dt>See also</dt><dd><a class="el" href="_mm_rpc_8h.html#a3ce22548ab0e843f9005e7612ef24a30" title="Create an MmRpc instance. ">MmRpc_create()</a> </dd></dl>
540 </div>
541 </div>
542 <a class="anchor" id="a8d360d8954b543b6e7368beb08b35060"></a>
543 <div class="memitem">
544 <div class="memproto">
545       <table class="memname">
546         <tr>
547           <td class="memname">int MmRpc_release </td>
548           <td>(</td>
549           <td class="paramtype"><a class="el" href="_mm_rpc_8h.html#a3c8c5e1aaa4b69ee72e5ca63dcf42b70">MmRpc_Handle</a>&#160;</td>
550           <td class="paramname"><em>handle</em>, </td>
551         </tr>
552         <tr>
553           <td class="paramkey"></td>
554           <td></td>
555           <td class="paramtype"><a class="el" href="_mm_rpc_8h.html#ae9768b7d001102ef8eac026f3be6a788">MmRpc_BufType</a>&#160;</td>
556           <td class="paramname"><em>type</em>, </td>
557         </tr>
558         <tr>
559           <td class="paramkey"></td>
560           <td></td>
561           <td class="paramtype">int&#160;</td>
562           <td class="paramname"><em>num</em>, </td>
563         </tr>
564         <tr>
565           <td class="paramkey"></td>
566           <td></td>
567           <td class="paramtype"><a class="el" href="union_mm_rpc___buf_desc.html">MmRpc_BufDesc</a> *&#160;</td>
568           <td class="paramname"><em>desc</em>&#160;</td>
569         </tr>
570         <tr>
571           <td></td>
572           <td>)</td>
573           <td></td><td></td>
574         </tr>
575       </table>
576 </div><div class="memdoc">
578 <p>Release buffers which were declared in use. </p>
579 <dl class="params"><dt>Parameters</dt><dd>
580   <table class="params">
581     <tr><td class="paramdir">[in]</td><td class="paramname">handle</td><td>Service handle returned by <a class="el" href="_mm_rpc_8h.html#a3ce22548ab0e843f9005e7612ef24a30" title="Create an MmRpc instance. ">MmRpc_create()</a> </td></tr>
582     <tr><td class="paramdir">[in]</td><td class="paramname">type</td><td>Buffer descriptor type </td></tr>
583     <tr><td class="paramdir">[in]</td><td class="paramname">num</td><td>Number of elements in <code>desc</code> array </td></tr>
584     <tr><td class="paramdir">[in]</td><td class="paramname">desc</td><td>Pointer to array of buffer descriptors</td></tr>
585   </table>
586   </dd>
587 </dl>
588 <dl class="section pre"><dt>Precondition</dt><dd><code>handle</code> must be a valid handle for the service instance returned by an earlier call to <a class="el" href="_mm_rpc_8h.html#a3ce22548ab0e843f9005e7612ef24a30" title="Create an MmRpc instance. ">MmRpc_create()</a>.</dd></dl>
589 <dl class="section remark"><dt>Remarks</dt><dd>When the remote processor no longer needs a reference to a buffer, calling <a class="el" href="_mm_rpc_8h.html#a8d360d8954b543b6e7368beb08b35060" title="Release buffers which were declared in use. ">MmRpc_release()</a> will release the buffer and any associated resources.</dd></dl>
590 <dl class="retval"><dt>Return values</dt><dd>
591   <table class="retval">
592     <tr><td class="paramname">MmRpc_S_SUCCESS</td><td>Operation is successful.</td></tr>
593     <tr><td class="paramname">MmRpc_E_INVALIDPARAM</td><td>Invalid parameter type.</td></tr>
594     <tr><td class="paramname">MmRpc_E_NOMEM</td><td>Memory allocation failed.</td></tr>
595     <tr><td class="paramname">MmRpc_E_SYS</td><td>A system call failed.</td></tr>
596   </table>
597   </dd>
598 </dl>
599 <dl class="section see"><dt>See also</dt><dd><a class="el" href="_mm_rpc_8h.html#af16b51a269a7c2c9d048e0995b8169cf" title="Declare the use of the given buffers. ">MmRpc_use()</a> </dd></dl>
601 </div>
602 </div>
603 <a class="anchor" id="af16b51a269a7c2c9d048e0995b8169cf"></a>
604 <div class="memitem">
605 <div class="memproto">
606       <table class="memname">
607         <tr>
608           <td class="memname">int MmRpc_use </td>
609           <td>(</td>
610           <td class="paramtype"><a class="el" href="_mm_rpc_8h.html#a3c8c5e1aaa4b69ee72e5ca63dcf42b70">MmRpc_Handle</a>&#160;</td>
611           <td class="paramname"><em>handle</em>, </td>
612         </tr>
613         <tr>
614           <td class="paramkey"></td>
615           <td></td>
616           <td class="paramtype"><a class="el" href="_mm_rpc_8h.html#ae9768b7d001102ef8eac026f3be6a788">MmRpc_BufType</a>&#160;</td>
617           <td class="paramname"><em>type</em>, </td>
618         </tr>
619         <tr>
620           <td class="paramkey"></td>
621           <td></td>
622           <td class="paramtype">int&#160;</td>
623           <td class="paramname"><em>num</em>, </td>
624         </tr>
625         <tr>
626           <td class="paramkey"></td>
627           <td></td>
628           <td class="paramtype"><a class="el" href="union_mm_rpc___buf_desc.html">MmRpc_BufDesc</a> *&#160;</td>
629           <td class="paramname"><em>desc</em>&#160;</td>
630         </tr>
631         <tr>
632           <td></td>
633           <td>)</td>
634           <td></td><td></td>
635         </tr>
636       </table>
637 </div><div class="memdoc">
639 <p>Declare the use of the given buffers. </p>
640 <dl class="params"><dt>Parameters</dt><dd>
641   <table class="params">
642     <tr><td class="paramdir">[in]</td><td class="paramname">handle</td><td>Service handle returned by <a class="el" href="_mm_rpc_8h.html#a3ce22548ab0e843f9005e7612ef24a30" title="Create an MmRpc instance. ">MmRpc_create()</a> </td></tr>
643     <tr><td class="paramdir">[in]</td><td class="paramname">type</td><td>Buffer descriptor type </td></tr>
644     <tr><td class="paramdir">[in]</td><td class="paramname">num</td><td>Number of elements in <code>desc</code> array </td></tr>
645     <tr><td class="paramdir">[in]</td><td class="paramname">desc</td><td>Pointer to array of buffer descriptors</td></tr>
646   </table>
647   </dd>
648 </dl>
649 <dl class="section pre"><dt>Precondition</dt><dd><code>handle</code> must be a valid handle for the service instance returned by an earlier call to <a class="el" href="_mm_rpc_8h.html#a3ce22548ab0e843f9005e7612ef24a30" title="Create an MmRpc instance. ">MmRpc_create()</a>.</dd></dl>
650 <dl class="section remark"><dt>Remarks</dt><dd>When using <a class="el" href="_mm_rpc_8h.html#ac25d7a196577a980b6bf27fbc9691a7e" title="Invoke a remote procedure call. ">MmRpc_call()</a> to invoke remote function calls, any referenced buffers will be made available to the remote processor only for the duration of the remote function call. If the remote processor maintains a reference to the buffer across multiple invocations of <a class="el" href="_mm_rpc_8h.html#ac25d7a196577a980b6bf27fbc9691a7e" title="Invoke a remote procedure call. ">MmRpc_call()</a>, then the application must declare the buffer "in use". This will make the buffer persistent.</dd>
651 <dd>
652 The application must release the buffer when it is no longer needed.</dd></dl>
653 <div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;#include &lt;ti/ipc/mm/MmRpc.h&gt;</div>
654 <div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;</div>
655 <div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;MmRpc_BufDesc desc[2];</div>
656 <div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;</div>
657 <div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;desc[0].handle = fd1;</div>
658 <div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;desc[1].handle = fd2;</div>
659 <div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;</div>
660 <div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;MmRpc_use(h, MmRpc_BufType_Handle, 2, desc);</div>
661 </div><!-- fragment --><dl class="retval"><dt>Return values</dt><dd>
662   <table class="retval">
663     <tr><td class="paramname">MmRpc_S_SUCCESS</td><td>Operation is successful.</td></tr>
664     <tr><td class="paramname">MmRpc_E_INVALIDPARAM</td><td>Invalid parameter type.</td></tr>
665     <tr><td class="paramname">MmRpc_E_NOMEM</td><td>Memory allocation failed.</td></tr>
666     <tr><td class="paramname">MmRpc_E_SYS</td><td>A system call failed.</td></tr>
667   </table>
668   </dd>
669 </dl>
670 <dl class="section see"><dt>See also</dt><dd><a class="el" href="_mm_rpc_8h.html#a8d360d8954b543b6e7368beb08b35060" title="Release buffers which were declared in use. ">MmRpc_release()</a> </dd></dl>
672 </div>
673 </div>
674 <a class="anchor" id="a1f267e3558b8124373801fc0f0ce2851"></a>
675 <div class="memitem">
676 <div class="memproto">
677       <table class="memname">
678         <tr>
679           <td class="memname">void MmRpc_Params_init </td>
680           <td>(</td>
681           <td class="paramtype"><a class="el" href="struct_mm_rpc___params.html">MmRpc_Params</a> *&#160;</td>
682           <td class="paramname"><em>params</em></td><td>)</td>
683           <td></td>
684         </tr>
685       </table>
686 </div><div class="memdoc">
688 <p>Initialize the instance create parameter structure. </p>
690 </div>
691 </div>
692 </div><!-- contents -->
693 <!-- HTML footer for doxygen 1.8.9.1-->
694 <!-- start footer part -->
695 <hr class="footer"/><small>
696 Copyright  2016, Texas Instruments Incorporated
697 </small>
698 </body>
699 </html>