]> 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/_heap_mem_m_p_8h.html
Change directory names in eclipse folder for RTSC plugin -- missing feature.xml
[processor-sdk/performance-audio-sr.git] / processor_audio_sdk_1_00_00_00 / psdk_cust / ipc_3_43_00_00_eng / docs / doxygen / html / _heap_mem_m_p_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/HeapMemMP.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>  </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="#func-members">Functions</a>  </div>
102   <div class="headertitle">
103 <div class="title">HeapMemMP.h File Reference</div>  </div>
104 </div><!--header-->
105 <div class="contents">
106 <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
107 <div class="textblock"><p>Multi-processor variable size buffer heap implementation. </p>
108 <dl class="section note"><dt>Note</dt><dd>HeapMemMP is currently only available for SYS/BIOS.</dd></dl>
109 <p>HeapMemMP is a heap implementation that manages variable size buffers that can be used in a multiprocessor system with shared memory. HeapMemMP manages a single buffer in shared memory from which blocks of user- specified length are allocated and freed.</p>
110 <p>The HeapMemMP module uses a NameServer instance to store instance information when an instance is created. The name supplied must be unique for all HeapMemMP instances.</p>
111 <p><a class="el" href="_heap_mem_m_p_8h.html#a3ee79b7e84e8eaef048c919be45e0a7c" title="Create a HeapMemMP instance. ">HeapMemMP_create()</a> initializes the shared memory as needed. Once an instance is created, <a class="el" href="_heap_mem_m_p_8h.html#a05598b30cd1a93e88e59cea962d1e976" title="Open a created HeapMemMP instance. ">HeapMemMP_open()</a> can be called. The open is used to gain access to the same HeapMemMP instance. Generally an instance is created on one processor and opened on the other processor(s).</p>
112 <p>The open returns a HeapMemMP instance handle like the create, however the open does not modify the shared memory.</p>
113 <p>Because HeapMemMP is a variable-size heap implementation, it is also used by the SharedRegion module to manage shared memory in each shared region. When any shared memory IPC instance is created in a particular shared region, the HeapMemMP that manages shared memory in the shared region allocates shared memory for the instance.</p>
114 <p>The HeapMemMP header should be included in an application as follows: </p><div class="fragment"><div class="line"><span class="preprocessor">#include &lt;<a class="code" href="_heap_mem_m_p_8h.html">ti/ipc/HeapMemMP.h</a>&gt;</span></div>
115 </div><!-- fragment --> </div><div class="textblock"><code>#include &lt;<a class="el" href="_gate_m_p_8h_source.html">ti/ipc/GateMP.h</a>&gt;</code><br />
116 </div><div class="textblock"><div class="dynheader">
117 Include dependency graph for HeapMemMP.h:</div>
118 <div class="dyncontent">
119 <div class="center"><img src="_heap_mem_m_p_8h__incl.png" border="0" usemap="#ti_2ipc_2_heap_mem_m_p_8h" alt=""/></div>
120 <map name="ti_2ipc_2_heap_mem_m_p_8h" id="ti_2ipc_2_heap_mem_m_p_8h">
121 <area shape="rect" id="node3" href="_gate_m_p_8h.html" title="Multiple processor gate that provides local and remote context protection. " alt="" coords="21,83,133,112"/></map>
122 </div>
123 </div>
124 <p><a href="_heap_mem_m_p_8h_source.html">Go to the source code of this file.</a></p>
125 <table class="memberdecls">
126 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
127 Data Structures</h2></td></tr>
128 <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_heap_mem_m_p___params.html">HeapMemMP_Params</a></td></tr>
129 <tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Structure defining parameters for the HeapMemMP module.  <a href="struct_heap_mem_m_p___params.html#details">More...</a><br /></td></tr>
130 <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
131 <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_heap_mem_m_p___extended_stats.html">HeapMemMP_ExtendedStats</a></td></tr>
132 <tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Stats structure for <a class="el" href="_heap_mem_m_p_8h.html#a1ee8a7319a0ed2344dea9d7b1bbbd3ee" title="Get extended memory statistics. ">HeapMemMP_getExtendedStats()</a>  <a href="struct_heap_mem_m_p___extended_stats.html#details">More...</a><br /></td></tr>
133 <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
134 </table><table class="memberdecls">
135 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
136 Macros</h2></td></tr>
137 <tr class="memitem:a992f6b5e02a835e5a5116fe2f968bdfe"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_heap_mem_m_p_8h.html#a992f6b5e02a835e5a5116fe2f968bdfe">HeapMemMP_S_BUSY</a>&#160;&#160;&#160;2</td></tr>
138 <tr class="memdesc:a992f6b5e02a835e5a5116fe2f968bdfe"><td class="mdescLeft">&#160;</td><td class="mdescRight">The resource is still in use.  <a href="#a992f6b5e02a835e5a5116fe2f968bdfe">More...</a><br /></td></tr>
139 <tr class="separator:a992f6b5e02a835e5a5116fe2f968bdfe"><td class="memSeparator" colspan="2">&#160;</td></tr>
140 <tr class="memitem:a62e81fa297f6eb3a9cbc154170fbd608"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_heap_mem_m_p_8h.html#a62e81fa297f6eb3a9cbc154170fbd608">HeapMemMP_S_ALREADYSETUP</a>&#160;&#160;&#160;1</td></tr>
141 <tr class="memdesc:a62e81fa297f6eb3a9cbc154170fbd608"><td class="mdescLeft">&#160;</td><td class="mdescRight">The module has been already setup.  <a href="#a62e81fa297f6eb3a9cbc154170fbd608">More...</a><br /></td></tr>
142 <tr class="separator:a62e81fa297f6eb3a9cbc154170fbd608"><td class="memSeparator" colspan="2">&#160;</td></tr>
143 <tr class="memitem:a220e8086edc8314cef6034e584b41c93"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_heap_mem_m_p_8h.html#a220e8086edc8314cef6034e584b41c93">HeapMemMP_S_SUCCESS</a>&#160;&#160;&#160;0</td></tr>
144 <tr class="memdesc:a220e8086edc8314cef6034e584b41c93"><td class="mdescLeft">&#160;</td><td class="mdescRight">Operation is successful.  <a href="#a220e8086edc8314cef6034e584b41c93">More...</a><br /></td></tr>
145 <tr class="separator:a220e8086edc8314cef6034e584b41c93"><td class="memSeparator" colspan="2">&#160;</td></tr>
146 <tr class="memitem:a080d0886b807af624599a98987a4470b"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_heap_mem_m_p_8h.html#a080d0886b807af624599a98987a4470b">HeapMemMP_E_FAIL</a>&#160;&#160;&#160;-1</td></tr>
147 <tr class="memdesc:a080d0886b807af624599a98987a4470b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Generic failure.  <a href="#a080d0886b807af624599a98987a4470b">More...</a><br /></td></tr>
148 <tr class="separator:a080d0886b807af624599a98987a4470b"><td class="memSeparator" colspan="2">&#160;</td></tr>
149 <tr class="memitem:ac9be05da1907e0e8d229ddba4d68af96"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_heap_mem_m_p_8h.html#ac9be05da1907e0e8d229ddba4d68af96">HeapMemMP_E_INVALIDARG</a>&#160;&#160;&#160;-2</td></tr>
150 <tr class="memdesc:ac9be05da1907e0e8d229ddba4d68af96"><td class="mdescLeft">&#160;</td><td class="mdescRight">Argument passed to function is invalid.  <a href="#ac9be05da1907e0e8d229ddba4d68af96">More...</a><br /></td></tr>
151 <tr class="separator:ac9be05da1907e0e8d229ddba4d68af96"><td class="memSeparator" colspan="2">&#160;</td></tr>
152 <tr class="memitem:ae16b106a9e2b1d56da7aa7310d6b4fc6"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_heap_mem_m_p_8h.html#ae16b106a9e2b1d56da7aa7310d6b4fc6">HeapMemMP_E_MEMORY</a>&#160;&#160;&#160;-3</td></tr>
153 <tr class="memdesc:ae16b106a9e2b1d56da7aa7310d6b4fc6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Operation resulted in memory failure.  <a href="#ae16b106a9e2b1d56da7aa7310d6b4fc6">More...</a><br /></td></tr>
154 <tr class="separator:ae16b106a9e2b1d56da7aa7310d6b4fc6"><td class="memSeparator" colspan="2">&#160;</td></tr>
155 <tr class="memitem:a5c0844490d41dbf13f3746f6ff3b0fbb"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_heap_mem_m_p_8h.html#a5c0844490d41dbf13f3746f6ff3b0fbb">HeapMemMP_E_ALREADYEXISTS</a>&#160;&#160;&#160;-4</td></tr>
156 <tr class="memdesc:a5c0844490d41dbf13f3746f6ff3b0fbb"><td class="mdescLeft">&#160;</td><td class="mdescRight">The specified entity already exists.  <a href="#a5c0844490d41dbf13f3746f6ff3b0fbb">More...</a><br /></td></tr>
157 <tr class="separator:a5c0844490d41dbf13f3746f6ff3b0fbb"><td class="memSeparator" colspan="2">&#160;</td></tr>
158 <tr class="memitem:aeee2167e40995fa214c8b26407937513"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_heap_mem_m_p_8h.html#aeee2167e40995fa214c8b26407937513">HeapMemMP_E_NOTFOUND</a>&#160;&#160;&#160;-5</td></tr>
159 <tr class="memdesc:aeee2167e40995fa214c8b26407937513"><td class="mdescLeft">&#160;</td><td class="mdescRight">Unable to find the specified entity.  <a href="#aeee2167e40995fa214c8b26407937513">More...</a><br /></td></tr>
160 <tr class="separator:aeee2167e40995fa214c8b26407937513"><td class="memSeparator" colspan="2">&#160;</td></tr>
161 <tr class="memitem:a59e36864ebc19f31f38801cd4f6b8927"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_heap_mem_m_p_8h.html#a59e36864ebc19f31f38801cd4f6b8927">HeapMemMP_E_TIMEOUT</a>&#160;&#160;&#160;-6</td></tr>
162 <tr class="memdesc:a59e36864ebc19f31f38801cd4f6b8927"><td class="mdescLeft">&#160;</td><td class="mdescRight">Operation timed out.  <a href="#a59e36864ebc19f31f38801cd4f6b8927">More...</a><br /></td></tr>
163 <tr class="separator:a59e36864ebc19f31f38801cd4f6b8927"><td class="memSeparator" colspan="2">&#160;</td></tr>
164 <tr class="memitem:ae59ad8c5c037aef22e16cf90beabc93c"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_heap_mem_m_p_8h.html#ae59ad8c5c037aef22e16cf90beabc93c">HeapMemMP_E_INVALIDSTATE</a>&#160;&#160;&#160;-7</td></tr>
165 <tr class="memdesc:ae59ad8c5c037aef22e16cf90beabc93c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Module is not initialized.  <a href="#ae59ad8c5c037aef22e16cf90beabc93c">More...</a><br /></td></tr>
166 <tr class="separator:ae59ad8c5c037aef22e16cf90beabc93c"><td class="memSeparator" colspan="2">&#160;</td></tr>
167 <tr class="memitem:a125464679440a2d5ec7f80e9a40035c1"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_heap_mem_m_p_8h.html#a125464679440a2d5ec7f80e9a40035c1">HeapMemMP_E_OSFAILURE</a>&#160;&#160;&#160;-8</td></tr>
168 <tr class="memdesc:a125464679440a2d5ec7f80e9a40035c1"><td class="mdescLeft">&#160;</td><td class="mdescRight">A failure occurred in an OS-specific call.  <a href="#a125464679440a2d5ec7f80e9a40035c1">More...</a><br /></td></tr>
169 <tr class="separator:a125464679440a2d5ec7f80e9a40035c1"><td class="memSeparator" colspan="2">&#160;</td></tr>
170 <tr class="memitem:a59a512963c177b9e026486d270c3556f"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_heap_mem_m_p_8h.html#a59a512963c177b9e026486d270c3556f">HeapMemMP_E_RESOURCE</a>&#160;&#160;&#160;-9</td></tr>
171 <tr class="memdesc:a59a512963c177b9e026486d270c3556f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Specified resource is not available.  <a href="#a59a512963c177b9e026486d270c3556f">More...</a><br /></td></tr>
172 <tr class="separator:a59a512963c177b9e026486d270c3556f"><td class="memSeparator" colspan="2">&#160;</td></tr>
173 <tr class="memitem:a50fc296659efef22fea5863af26930d5"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_heap_mem_m_p_8h.html#a50fc296659efef22fea5863af26930d5">HeapMemMP_E_RESTART</a>&#160;&#160;&#160;-10</td></tr>
174 <tr class="memdesc:a50fc296659efef22fea5863af26930d5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Operation was interrupted. Please restart the operation.  <a href="#a50fc296659efef22fea5863af26930d5">More...</a><br /></td></tr>
175 <tr class="separator:a50fc296659efef22fea5863af26930d5"><td class="memSeparator" colspan="2">&#160;</td></tr>
176 </table><table class="memberdecls">
177 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
178 Typedefs</h2></td></tr>
179 <tr class="memitem:a9aa6360e22c2f5f387c5aba52a1a8522"><td class="memItemLeft" align="right" valign="top">typedef struct HeapMemMP_Object *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_heap_mem_m_p_8h.html#a9aa6360e22c2f5f387c5aba52a1a8522">HeapMemMP_Handle</a></td></tr>
180 <tr class="memdesc:a9aa6360e22c2f5f387c5aba52a1a8522"><td class="mdescLeft">&#160;</td><td class="mdescRight">HeapMemMP_Handle type.  <a href="#a9aa6360e22c2f5f387c5aba52a1a8522">More...</a><br /></td></tr>
181 <tr class="separator:a9aa6360e22c2f5f387c5aba52a1a8522"><td class="memSeparator" colspan="2">&#160;</td></tr>
182 <tr class="memitem:a888191d73ac615e5335b1add34db69e8"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="struct_heap_mem_m_p___params.html">HeapMemMP_Params</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_heap_mem_m_p_8h.html#a888191d73ac615e5335b1add34db69e8">HeapMemMP_Params</a></td></tr>
183 <tr class="memdesc:a888191d73ac615e5335b1add34db69e8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Structure defining parameters for the HeapMemMP module.  <a href="#a888191d73ac615e5335b1add34db69e8">More...</a><br /></td></tr>
184 <tr class="separator:a888191d73ac615e5335b1add34db69e8"><td class="memSeparator" colspan="2">&#160;</td></tr>
185 <tr class="memitem:a366cf280eda1086a46528b999b035618"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="struct_heap_mem_m_p___extended_stats.html">HeapMemMP_ExtendedStats</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_heap_mem_m_p_8h.html#a366cf280eda1086a46528b999b035618">HeapMemMP_ExtendedStats</a></td></tr>
186 <tr class="memdesc:a366cf280eda1086a46528b999b035618"><td class="mdescLeft">&#160;</td><td class="mdescRight">Stats structure for <a class="el" href="_heap_mem_m_p_8h.html#a1ee8a7319a0ed2344dea9d7b1bbbd3ee" title="Get extended memory statistics. ">HeapMemMP_getExtendedStats()</a>  <a href="#a366cf280eda1086a46528b999b035618">More...</a><br /></td></tr>
187 <tr class="separator:a366cf280eda1086a46528b999b035618"><td class="memSeparator" colspan="2">&#160;</td></tr>
188 </table><table class="memberdecls">
189 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
190 Functions</h2></td></tr>
191 <tr class="memitem:ac3fcc6ef980577f060f738f3485013f1"><td class="memItemLeft" align="right" valign="top">Int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_heap_mem_m_p_8h.html#ac3fcc6ef980577f060f738f3485013f1">HeapMemMP_close</a> (<a class="el" href="_heap_mem_m_p_8h.html#a9aa6360e22c2f5f387c5aba52a1a8522">HeapMemMP_Handle</a> *handlePtr)</td></tr>
192 <tr class="memdesc:ac3fcc6ef980577f060f738f3485013f1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Close a HeapMemMP instance.  <a href="#ac3fcc6ef980577f060f738f3485013f1">More...</a><br /></td></tr>
193 <tr class="separator:ac3fcc6ef980577f060f738f3485013f1"><td class="memSeparator" colspan="2">&#160;</td></tr>
194 <tr class="memitem:a3ee79b7e84e8eaef048c919be45e0a7c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="_heap_mem_m_p_8h.html#a9aa6360e22c2f5f387c5aba52a1a8522">HeapMemMP_Handle</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_heap_mem_m_p_8h.html#a3ee79b7e84e8eaef048c919be45e0a7c">HeapMemMP_create</a> (const <a class="el" href="struct_heap_mem_m_p___params.html">HeapMemMP_Params</a> *params)</td></tr>
195 <tr class="memdesc:a3ee79b7e84e8eaef048c919be45e0a7c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a HeapMemMP instance.  <a href="#a3ee79b7e84e8eaef048c919be45e0a7c">More...</a><br /></td></tr>
196 <tr class="separator:a3ee79b7e84e8eaef048c919be45e0a7c"><td class="memSeparator" colspan="2">&#160;</td></tr>
197 <tr class="memitem:a0041a019dcc514bf6de66997a3383a02"><td class="memItemLeft" align="right" valign="top">Int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_heap_mem_m_p_8h.html#a0041a019dcc514bf6de66997a3383a02">HeapMemMP_delete</a> (<a class="el" href="_heap_mem_m_p_8h.html#a9aa6360e22c2f5f387c5aba52a1a8522">HeapMemMP_Handle</a> *handlePtr)</td></tr>
198 <tr class="memdesc:a0041a019dcc514bf6de66997a3383a02"><td class="mdescLeft">&#160;</td><td class="mdescRight">Delete a created HeapMemMP instance.  <a href="#a0041a019dcc514bf6de66997a3383a02">More...</a><br /></td></tr>
199 <tr class="separator:a0041a019dcc514bf6de66997a3383a02"><td class="memSeparator" colspan="2">&#160;</td></tr>
200 <tr class="memitem:a05598b30cd1a93e88e59cea962d1e976"><td class="memItemLeft" align="right" valign="top">Int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_heap_mem_m_p_8h.html#a05598b30cd1a93e88e59cea962d1e976">HeapMemMP_open</a> (String name, <a class="el" href="_heap_mem_m_p_8h.html#a9aa6360e22c2f5f387c5aba52a1a8522">HeapMemMP_Handle</a> *handlePtr)</td></tr>
201 <tr class="memdesc:a05598b30cd1a93e88e59cea962d1e976"><td class="mdescLeft">&#160;</td><td class="mdescRight">Open a created HeapMemMP instance.  <a href="#a05598b30cd1a93e88e59cea962d1e976">More...</a><br /></td></tr>
202 <tr class="separator:a05598b30cd1a93e88e59cea962d1e976"><td class="memSeparator" colspan="2">&#160;</td></tr>
203 <tr class="memitem:ade4b085199639e1184e221725e03a962"><td class="memItemLeft" align="right" valign="top">Void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_heap_mem_m_p_8h.html#ade4b085199639e1184e221725e03a962">HeapMemMP_Params_init</a> (<a class="el" href="struct_heap_mem_m_p___params.html">HeapMemMP_Params</a> *params)</td></tr>
204 <tr class="memdesc:ade4b085199639e1184e221725e03a962"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize a HeapMemMP parameters struct.  <a href="#ade4b085199639e1184e221725e03a962">More...</a><br /></td></tr>
205 <tr class="separator:ade4b085199639e1184e221725e03a962"><td class="memSeparator" colspan="2">&#160;</td></tr>
206 <tr class="memitem:a04ab3af78110251e5f22f9bc9a961a95"><td class="memItemLeft" align="right" valign="top">Void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_heap_mem_m_p_8h.html#a04ab3af78110251e5f22f9bc9a961a95">HeapMemMP_alloc</a> (<a class="el" href="_heap_mem_m_p_8h.html#a9aa6360e22c2f5f387c5aba52a1a8522">HeapMemMP_Handle</a> handle, SizeT size, SizeT align)</td></tr>
207 <tr class="memdesc:a04ab3af78110251e5f22f9bc9a961a95"><td class="mdescLeft">&#160;</td><td class="mdescRight">Allocate a block of memory of specified size and alignment.  <a href="#a04ab3af78110251e5f22f9bc9a961a95">More...</a><br /></td></tr>
208 <tr class="separator:a04ab3af78110251e5f22f9bc9a961a95"><td class="memSeparator" colspan="2">&#160;</td></tr>
209 <tr class="memitem:af424678d0776b662701672c9b737e0bc"><td class="memItemLeft" align="right" valign="top">Void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_heap_mem_m_p_8h.html#af424678d0776b662701672c9b737e0bc">HeapMemMP_free</a> (<a class="el" href="_heap_mem_m_p_8h.html#a9aa6360e22c2f5f387c5aba52a1a8522">HeapMemMP_Handle</a> handle, Ptr block, SizeT size)</td></tr>
210 <tr class="memdesc:af424678d0776b662701672c9b737e0bc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Frees a block of memory.  <a href="#af424678d0776b662701672c9b737e0bc">More...</a><br /></td></tr>
211 <tr class="separator:af424678d0776b662701672c9b737e0bc"><td class="memSeparator" colspan="2">&#160;</td></tr>
212 <tr class="memitem:a1ee8a7319a0ed2344dea9d7b1bbbd3ee"><td class="memItemLeft" align="right" valign="top">Void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_heap_mem_m_p_8h.html#a1ee8a7319a0ed2344dea9d7b1bbbd3ee">HeapMemMP_getExtendedStats</a> (<a class="el" href="_heap_mem_m_p_8h.html#a9aa6360e22c2f5f387c5aba52a1a8522">HeapMemMP_Handle</a> handle, <a class="el" href="struct_heap_mem_m_p___extended_stats.html">HeapMemMP_ExtendedStats</a> *stats)</td></tr>
213 <tr class="memdesc:a1ee8a7319a0ed2344dea9d7b1bbbd3ee"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get extended memory statistics.  <a href="#a1ee8a7319a0ed2344dea9d7b1bbbd3ee">More...</a><br /></td></tr>
214 <tr class="separator:a1ee8a7319a0ed2344dea9d7b1bbbd3ee"><td class="memSeparator" colspan="2">&#160;</td></tr>
215 <tr class="memitem:a5ce7746f4d08dd3fb94e692f6f544b67"><td class="memItemLeft" align="right" valign="top">Void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_heap_mem_m_p_8h.html#a5ce7746f4d08dd3fb94e692f6f544b67">HeapMemMP_getStats</a> (<a class="el" href="_heap_mem_m_p_8h.html#a9aa6360e22c2f5f387c5aba52a1a8522">HeapMemMP_Handle</a> handle, Ptr stats)</td></tr>
216 <tr class="memdesc:a5ce7746f4d08dd3fb94e692f6f544b67"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get memory statistics.  <a href="#a5ce7746f4d08dd3fb94e692f6f544b67">More...</a><br /></td></tr>
217 <tr class="separator:a5ce7746f4d08dd3fb94e692f6f544b67"><td class="memSeparator" colspan="2">&#160;</td></tr>
218 <tr class="memitem:a8a610d9bdd7650bf42d52841915a42a0"><td class="memItemLeft" align="right" valign="top">Void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_heap_mem_m_p_8h.html#a8a610d9bdd7650bf42d52841915a42a0">HeapMemMP_restore</a> (<a class="el" href="_heap_mem_m_p_8h.html#a9aa6360e22c2f5f387c5aba52a1a8522">HeapMemMP_Handle</a> handle)</td></tr>
219 <tr class="memdesc:a8a610d9bdd7650bf42d52841915a42a0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Restore an instance to it's original created state.  <a href="#a8a610d9bdd7650bf42d52841915a42a0">More...</a><br /></td></tr>
220 <tr class="separator:a8a610d9bdd7650bf42d52841915a42a0"><td class="memSeparator" colspan="2">&#160;</td></tr>
221 </table>
222 <h2 class="groupheader">Macro Definition Documentation</h2>
223 <a class="anchor" id="a992f6b5e02a835e5a5116fe2f968bdfe"></a>
224 <div class="memitem">
225 <div class="memproto">
226       <table class="memname">
227         <tr>
228           <td class="memname">#define HeapMemMP_S_BUSY&#160;&#160;&#160;2</td>
229         </tr>
230       </table>
231 </div><div class="memdoc">
233 <p>The resource is still in use. </p>
235 </div>
236 </div>
237 <a class="anchor" id="a62e81fa297f6eb3a9cbc154170fbd608"></a>
238 <div class="memitem">
239 <div class="memproto">
240       <table class="memname">
241         <tr>
242           <td class="memname">#define HeapMemMP_S_ALREADYSETUP&#160;&#160;&#160;1</td>
243         </tr>
244       </table>
245 </div><div class="memdoc">
247 <p>The module has been already setup. </p>
249 </div>
250 </div>
251 <a class="anchor" id="a220e8086edc8314cef6034e584b41c93"></a>
252 <div class="memitem">
253 <div class="memproto">
254       <table class="memname">
255         <tr>
256           <td class="memname">#define HeapMemMP_S_SUCCESS&#160;&#160;&#160;0</td>
257         </tr>
258       </table>
259 </div><div class="memdoc">
261 <p>Operation is successful. </p>
263 </div>
264 </div>
265 <a class="anchor" id="a080d0886b807af624599a98987a4470b"></a>
266 <div class="memitem">
267 <div class="memproto">
268       <table class="memname">
269         <tr>
270           <td class="memname">#define HeapMemMP_E_FAIL&#160;&#160;&#160;-1</td>
271         </tr>
272       </table>
273 </div><div class="memdoc">
275 <p>Generic failure. </p>
277 </div>
278 </div>
279 <a class="anchor" id="ac9be05da1907e0e8d229ddba4d68af96"></a>
280 <div class="memitem">
281 <div class="memproto">
282       <table class="memname">
283         <tr>
284           <td class="memname">#define HeapMemMP_E_INVALIDARG&#160;&#160;&#160;-2</td>
285         </tr>
286       </table>
287 </div><div class="memdoc">
289 <p>Argument passed to function is invalid. </p>
291 </div>
292 </div>
293 <a class="anchor" id="ae16b106a9e2b1d56da7aa7310d6b4fc6"></a>
294 <div class="memitem">
295 <div class="memproto">
296       <table class="memname">
297         <tr>
298           <td class="memname">#define HeapMemMP_E_MEMORY&#160;&#160;&#160;-3</td>
299         </tr>
300       </table>
301 </div><div class="memdoc">
303 <p>Operation resulted in memory failure. </p>
305 </div>
306 </div>
307 <a class="anchor" id="a5c0844490d41dbf13f3746f6ff3b0fbb"></a>
308 <div class="memitem">
309 <div class="memproto">
310       <table class="memname">
311         <tr>
312           <td class="memname">#define HeapMemMP_E_ALREADYEXISTS&#160;&#160;&#160;-4</td>
313         </tr>
314       </table>
315 </div><div class="memdoc">
317 <p>The specified entity already exists. </p>
319 </div>
320 </div>
321 <a class="anchor" id="aeee2167e40995fa214c8b26407937513"></a>
322 <div class="memitem">
323 <div class="memproto">
324       <table class="memname">
325         <tr>
326           <td class="memname">#define HeapMemMP_E_NOTFOUND&#160;&#160;&#160;-5</td>
327         </tr>
328       </table>
329 </div><div class="memdoc">
331 <p>Unable to find the specified entity. </p>
333 </div>
334 </div>
335 <a class="anchor" id="a59e36864ebc19f31f38801cd4f6b8927"></a>
336 <div class="memitem">
337 <div class="memproto">
338       <table class="memname">
339         <tr>
340           <td class="memname">#define HeapMemMP_E_TIMEOUT&#160;&#160;&#160;-6</td>
341         </tr>
342       </table>
343 </div><div class="memdoc">
345 <p>Operation timed out. </p>
347 </div>
348 </div>
349 <a class="anchor" id="ae59ad8c5c037aef22e16cf90beabc93c"></a>
350 <div class="memitem">
351 <div class="memproto">
352       <table class="memname">
353         <tr>
354           <td class="memname">#define HeapMemMP_E_INVALIDSTATE&#160;&#160;&#160;-7</td>
355         </tr>
356       </table>
357 </div><div class="memdoc">
359 <p>Module is not initialized. </p>
361 </div>
362 </div>
363 <a class="anchor" id="a125464679440a2d5ec7f80e9a40035c1"></a>
364 <div class="memitem">
365 <div class="memproto">
366       <table class="memname">
367         <tr>
368           <td class="memname">#define HeapMemMP_E_OSFAILURE&#160;&#160;&#160;-8</td>
369         </tr>
370       </table>
371 </div><div class="memdoc">
373 <p>A failure occurred in an OS-specific call. </p>
375 </div>
376 </div>
377 <a class="anchor" id="a59a512963c177b9e026486d270c3556f"></a>
378 <div class="memitem">
379 <div class="memproto">
380       <table class="memname">
381         <tr>
382           <td class="memname">#define HeapMemMP_E_RESOURCE&#160;&#160;&#160;-9</td>
383         </tr>
384       </table>
385 </div><div class="memdoc">
387 <p>Specified resource is not available. </p>
389 </div>
390 </div>
391 <a class="anchor" id="a50fc296659efef22fea5863af26930d5"></a>
392 <div class="memitem">
393 <div class="memproto">
394       <table class="memname">
395         <tr>
396           <td class="memname">#define HeapMemMP_E_RESTART&#160;&#160;&#160;-10</td>
397         </tr>
398       </table>
399 </div><div class="memdoc">
401 <p>Operation was interrupted. Please restart the operation. </p>
403 </div>
404 </div>
405 <h2 class="groupheader">Typedef Documentation</h2>
406 <a class="anchor" id="a9aa6360e22c2f5f387c5aba52a1a8522"></a>
407 <div class="memitem">
408 <div class="memproto">
409       <table class="memname">
410         <tr>
411           <td class="memname">typedef struct HeapMemMP_Object* <a class="el" href="_heap_mem_m_p_8h.html#a9aa6360e22c2f5f387c5aba52a1a8522">HeapMemMP_Handle</a></td>
412         </tr>
413       </table>
414 </div><div class="memdoc">
416 <p>HeapMemMP_Handle type. </p>
418 </div>
419 </div>
420 <a class="anchor" id="a888191d73ac615e5335b1add34db69e8"></a>
421 <div class="memitem">
422 <div class="memproto">
423       <table class="memname">
424         <tr>
425           <td class="memname">typedef struct <a class="el" href="struct_heap_mem_m_p___params.html">HeapMemMP_Params</a>  <a class="el" href="struct_heap_mem_m_p___params.html">HeapMemMP_Params</a></td>
426         </tr>
427       </table>
428 </div><div class="memdoc">
430 <p>Structure defining parameters for the HeapMemMP module. </p>
431 <dl class="section see"><dt>See also</dt><dd><a class="el" href="_heap_mem_m_p_8h.html#a3ee79b7e84e8eaef048c919be45e0a7c" title="Create a HeapMemMP instance. ">HeapMemMP_create()</a> </dd></dl>
433 </div>
434 </div>
435 <a class="anchor" id="a366cf280eda1086a46528b999b035618"></a>
436 <div class="memitem">
437 <div class="memproto">
438       <table class="memname">
439         <tr>
440           <td class="memname">typedef struct <a class="el" href="struct_heap_mem_m_p___extended_stats.html">HeapMemMP_ExtendedStats</a>  <a class="el" href="struct_heap_mem_m_p___extended_stats.html">HeapMemMP_ExtendedStats</a></td>
441         </tr>
442       </table>
443 </div><div class="memdoc">
445 <p>Stats structure for <a class="el" href="_heap_mem_m_p_8h.html#a1ee8a7319a0ed2344dea9d7b1bbbd3ee" title="Get extended memory statistics. ">HeapMemMP_getExtendedStats()</a> </p>
446 <dl class="section see"><dt>See also</dt><dd><a class="el" href="_heap_mem_m_p_8h.html#a1ee8a7319a0ed2344dea9d7b1bbbd3ee" title="Get extended memory statistics. ">HeapMemMP_getExtendedStats()</a> </dd></dl>
448 </div>
449 </div>
450 <h2 class="groupheader">Function Documentation</h2>
451 <a class="anchor" id="ac3fcc6ef980577f060f738f3485013f1"></a>
452 <div class="memitem">
453 <div class="memproto">
454       <table class="memname">
455         <tr>
456           <td class="memname">Int HeapMemMP_close </td>
457           <td>(</td>
458           <td class="paramtype"><a class="el" href="_heap_mem_m_p_8h.html#a9aa6360e22c2f5f387c5aba52a1a8522">HeapMemMP_Handle</a> *&#160;</td>
459           <td class="paramname"><em>handlePtr</em></td><td>)</td>
460           <td></td>
461         </tr>
462       </table>
463 </div><div class="memdoc">
465 <p>Close a HeapMemMP instance. </p>
466 <p>Closing an instance will free local memory consumed by the opened instance. All opened instances should be closed before the instance is deleted.</p>
467 <dl class="params"><dt>Parameters</dt><dd>
468   <table class="params">
469     <tr><td class="paramdir">[in,out]</td><td class="paramname">handlePtr</td><td>Pointer to handle returned from <a class="el" href="_heap_mem_m_p_8h.html#a05598b30cd1a93e88e59cea962d1e976" title="Open a created HeapMemMP instance. ">HeapMemMP_open()</a></td></tr>
470   </table>
471   </dd>
472 </dl>
473 <dl class="section return"><dt>Returns</dt><dd>HeapMemMP status:<ul>
474 <li><a class="el" href="_heap_mem_m_p_8h.html#a220e8086edc8314cef6034e584b41c93" title="Operation is successful. ">HeapMemMP_S_SUCCESS</a>: Heap successfully closed</li>
475 </ul>
476 </dd></dl>
477 <dl class="section see"><dt>See also</dt><dd><a class="el" href="_heap_mem_m_p_8h.html#a05598b30cd1a93e88e59cea962d1e976" title="Open a created HeapMemMP instance. ">HeapMemMP_open()</a> </dd></dl>
479 </div>
480 </div>
481 <a class="anchor" id="a3ee79b7e84e8eaef048c919be45e0a7c"></a>
482 <div class="memitem">
483 <div class="memproto">
484       <table class="memname">
485         <tr>
486           <td class="memname"><a class="el" href="_heap_mem_m_p_8h.html#a9aa6360e22c2f5f387c5aba52a1a8522">HeapMemMP_Handle</a> HeapMemMP_create </td>
487           <td>(</td>
488           <td class="paramtype">const <a class="el" href="struct_heap_mem_m_p___params.html">HeapMemMP_Params</a> *&#160;</td>
489           <td class="paramname"><em>params</em></td><td>)</td>
490           <td></td>
491         </tr>
492       </table>
493 </div><div class="memdoc">
495 <p>Create a HeapMemMP instance. </p>
496 <dl class="params"><dt>Parameters</dt><dd>
497   <table class="params">
498     <tr><td class="paramdir">[in]</td><td class="paramname">params</td><td>HeapMemMP parameters</td></tr>
499   </table>
500   </dd>
501 </dl>
502 <dl class="section return"><dt>Returns</dt><dd>HeapMemMP Handle</dd></dl>
503 <dl class="section see"><dt>See also</dt><dd><a class="el" href="_heap_mem_m_p_8h.html#a0041a019dcc514bf6de66997a3383a02" title="Delete a created HeapMemMP instance. ">HeapMemMP_delete()</a> </dd></dl>
505 </div>
506 </div>
507 <a class="anchor" id="a0041a019dcc514bf6de66997a3383a02"></a>
508 <div class="memitem">
509 <div class="memproto">
510       <table class="memname">
511         <tr>
512           <td class="memname">Int HeapMemMP_delete </td>
513           <td>(</td>
514           <td class="paramtype"><a class="el" href="_heap_mem_m_p_8h.html#a9aa6360e22c2f5f387c5aba52a1a8522">HeapMemMP_Handle</a> *&#160;</td>
515           <td class="paramname"><em>handlePtr</em></td><td>)</td>
516           <td></td>
517         </tr>
518       </table>
519 </div><div class="memdoc">
521 <p>Delete a created HeapMemMP instance. </p>
522 <dl class="params"><dt>Parameters</dt><dd>
523   <table class="params">
524     <tr><td class="paramdir">[in,out]</td><td class="paramname">handlePtr</td><td>Pointer to handle to delete.</td></tr>
525   </table>
526   </dd>
527 </dl>
528 <dl class="section return"><dt>Returns</dt><dd>HeapMemMP status:<ul>
529 <li><a class="el" href="_heap_mem_m_p_8h.html#a220e8086edc8314cef6034e584b41c93" title="Operation is successful. ">HeapMemMP_S_SUCCESS</a>: Heap successfully deleted</li>
530 </ul>
531 </dd></dl>
532 <dl class="section see"><dt>See also</dt><dd><a class="el" href="_heap_mem_m_p_8h.html#a3ee79b7e84e8eaef048c919be45e0a7c" title="Create a HeapMemMP instance. ">HeapMemMP_create()</a> </dd></dl>
534 </div>
535 </div>
536 <a class="anchor" id="a05598b30cd1a93e88e59cea962d1e976"></a>
537 <div class="memitem">
538 <div class="memproto">
539       <table class="memname">
540         <tr>
541           <td class="memname">Int HeapMemMP_open </td>
542           <td>(</td>
543           <td class="paramtype">String&#160;</td>
544           <td class="paramname"><em>name</em>, </td>
545         </tr>
546         <tr>
547           <td class="paramkey"></td>
548           <td></td>
549           <td class="paramtype"><a class="el" href="_heap_mem_m_p_8h.html#a9aa6360e22c2f5f387c5aba52a1a8522">HeapMemMP_Handle</a> *&#160;</td>
550           <td class="paramname"><em>handlePtr</em>&#160;</td>
551         </tr>
552         <tr>
553           <td></td>
554           <td>)</td>
555           <td></td><td></td>
556         </tr>
557       </table>
558 </div><div class="memdoc">
560 <p>Open a created HeapMemMP instance. </p>
561 <p>Once an instance is created, an open can be performed. The open is used to gain access to the same HeapMemMP instance. Generally an instance is created on one processor and opened on the other processor.</p>
562 <p>The open returns a HeapMemMP instance handle like the create, however the open does not initialize the shared memory. The supplied name is used to identify the created instance.</p>
563 <p>Call <a class="el" href="_heap_mem_m_p_8h.html#ac3fcc6ef980577f060f738f3485013f1" title="Close a HeapMemMP instance. ">HeapMemMP_close</a> when the opened instance is not longer needed.</p>
564 <dl class="params"><dt>Parameters</dt><dd>
565   <table class="params">
566     <tr><td class="paramdir">[in]</td><td class="paramname">name</td><td>Name of created HeapMemMP instance </td></tr>
567     <tr><td class="paramdir">[out]</td><td class="paramname">handlePtr</td><td>Pointer to HeapMemMP handle to be opened</td></tr>
568   </table>
569   </dd>
570 </dl>
571 <dl class="section return"><dt>Returns</dt><dd>HeapMemMP status:<ul>
572 <li><a class="el" href="_heap_mem_m_p_8h.html#a220e8086edc8314cef6034e584b41c93" title="Operation is successful. ">HeapMemMP_S_SUCCESS</a>: Heap successfully opened</li>
573 <li><a class="el" href="_heap_mem_m_p_8h.html#aeee2167e40995fa214c8b26407937513" title="Unable to find the specified entity. ">HeapMemMP_E_NOTFOUND</a>: Heap is not yet ready to be opened.</li>
574 <li><a class="el" href="_heap_mem_m_p_8h.html#a080d0886b807af624599a98987a4470b" title="Generic failure. ">HeapMemMP_E_FAIL</a>: A general failure has occurred</li>
575 </ul>
576 </dd></dl>
577 <dl class="section see"><dt>See also</dt><dd><a class="el" href="_heap_mem_m_p_8h.html#ac3fcc6ef980577f060f738f3485013f1" title="Close a HeapMemMP instance. ">HeapMemMP_close</a> </dd></dl>
579 </div>
580 </div>
581 <a class="anchor" id="ade4b085199639e1184e221725e03a962"></a>
582 <div class="memitem">
583 <div class="memproto">
584       <table class="memname">
585         <tr>
586           <td class="memname">Void HeapMemMP_Params_init </td>
587           <td>(</td>
588           <td class="paramtype"><a class="el" href="struct_heap_mem_m_p___params.html">HeapMemMP_Params</a> *&#160;</td>
589           <td class="paramname"><em>params</em></td><td>)</td>
590           <td></td>
591         </tr>
592       </table>
593 </div><div class="memdoc">
595 <p>Initialize a HeapMemMP parameters struct. </p>
596 <dl class="params"><dt>Parameters</dt><dd>
597   <table class="params">
598     <tr><td class="paramdir">[out]</td><td class="paramname">params</td><td>Pointer to creation parameters</td></tr>
599   </table>
600   </dd>
601 </dl>
602 <dl class="section see"><dt>See also</dt><dd><a class="el" href="_heap_mem_m_p_8h.html#a3ee79b7e84e8eaef048c919be45e0a7c" title="Create a HeapMemMP instance. ">HeapMemMP_create()</a> </dd></dl>
604 </div>
605 </div>
606 <a class="anchor" id="a04ab3af78110251e5f22f9bc9a961a95"></a>
607 <div class="memitem">
608 <div class="memproto">
609       <table class="memname">
610         <tr>
611           <td class="memname">Void* HeapMemMP_alloc </td>
612           <td>(</td>
613           <td class="paramtype"><a class="el" href="_heap_mem_m_p_8h.html#a9aa6360e22c2f5f387c5aba52a1a8522">HeapMemMP_Handle</a>&#160;</td>
614           <td class="paramname"><em>handle</em>, </td>
615         </tr>
616         <tr>
617           <td class="paramkey"></td>
618           <td></td>
619           <td class="paramtype">SizeT&#160;</td>
620           <td class="paramname"><em>size</em>, </td>
621         </tr>
622         <tr>
623           <td class="paramkey"></td>
624           <td></td>
625           <td class="paramtype">SizeT&#160;</td>
626           <td class="paramname"><em>align</em>&#160;</td>
627         </tr>
628         <tr>
629           <td></td>
630           <td>)</td>
631           <td></td><td></td>
632         </tr>
633       </table>
634 </div><div class="memdoc">
636 <p>Allocate a block of memory of specified size and alignment. </p>
637 <p>The actual block returned may be larger than requested to satisfy alignment requirements. NULL is returned if the alloc fails.</p>
638 <p>HeapMemMP_alloc will lock the heap using the HeapMemMP gate while it traverses the list of free blocks to find a large enough block for the request.</p>
639 <p>Guidelines for using large heaps and multiple alloc() calls.</p><ul>
640 <li>If possible, allocate larger blocks first. Previous allocations of small memory blocks can reduce the size of the blocks available for larger memory allocations.</li>
641 <li>Realize that allocation can fail even if the heap contains a sufficient absolute amount of unallocated space. This is because the largest free memory block may be smaller than total amount of unallocated memory.</li>
642 </ul>
643 <dl class="params"><dt>Parameters</dt><dd>
644   <table class="params">
645     <tr><td class="paramdir">[in]</td><td class="paramname">handle</td><td>Handle to previously created/opened instance. </td></tr>
646     <tr><td class="paramdir">[in]</td><td class="paramname">size</td><td>Size to be allocated (in MADUs) </td></tr>
647     <tr><td class="paramdir">[in]</td><td class="paramname">align</td><td>Alignment for allocation (power of 2)</td></tr>
648   </table>
649   </dd>
650 </dl>
651 <dl class="section see"><dt>See also</dt><dd><a class="el" href="_heap_mem_m_p_8h.html#af424678d0776b662701672c9b737e0bc" title="Frees a block of memory. ">HeapMemMP_free()</a> </dd></dl>
653 </div>
654 </div>
655 <a class="anchor" id="af424678d0776b662701672c9b737e0bc"></a>
656 <div class="memitem">
657 <div class="memproto">
658       <table class="memname">
659         <tr>
660           <td class="memname">Void HeapMemMP_free </td>
661           <td>(</td>
662           <td class="paramtype"><a class="el" href="_heap_mem_m_p_8h.html#a9aa6360e22c2f5f387c5aba52a1a8522">HeapMemMP_Handle</a>&#160;</td>
663           <td class="paramname"><em>handle</em>, </td>
664         </tr>
665         <tr>
666           <td class="paramkey"></td>
667           <td></td>
668           <td class="paramtype">Ptr&#160;</td>
669           <td class="paramname"><em>block</em>, </td>
670         </tr>
671         <tr>
672           <td class="paramkey"></td>
673           <td></td>
674           <td class="paramtype">SizeT&#160;</td>
675           <td class="paramname"><em>size</em>&#160;</td>
676         </tr>
677         <tr>
678           <td></td>
679           <td>)</td>
680           <td></td><td></td>
681         </tr>
682       </table>
683 </div><div class="memdoc">
685 <p>Frees a block of memory. </p>
686 <p><a class="el" href="_heap_mem_m_p_8h.html#af424678d0776b662701672c9b737e0bc" title="Frees a block of memory. ">HeapMemMP_free()</a> places the memory block specified by addr and size back into the free pool of the heap specified. The newly freed block is combined with any adjacent free blocks. The space is then available for future allocations.</p>
687 <p><a class="el" href="_heap_mem_m_p_8h.html#af424678d0776b662701672c9b737e0bc" title="Frees a block of memory. ">HeapMemMP_free()</a> will lock the heap using the HeapMemMP gate if one is specified or the system GateMP if not.</p>
688 <dl class="params"><dt>Parameters</dt><dd>
689   <table class="params">
690     <tr><td class="paramdir">[in]</td><td class="paramname">handle</td><td>Handle to previously created/opened instance. </td></tr>
691     <tr><td class="paramdir">[in]</td><td class="paramname">block</td><td>Block of memory to be freed. </td></tr>
692     <tr><td class="paramdir">[in]</td><td class="paramname">size</td><td>Size to be freed (in MADUs)</td></tr>
693   </table>
694   </dd>
695 </dl>
696 <dl class="section see"><dt>See also</dt><dd><a class="el" href="_heap_mem_m_p_8h.html#a04ab3af78110251e5f22f9bc9a961a95" title="Allocate a block of memory of specified size and alignment. ">HeapMemMP_alloc()</a> </dd></dl>
698 </div>
699 </div>
700 <a class="anchor" id="a1ee8a7319a0ed2344dea9d7b1bbbd3ee"></a>
701 <div class="memitem">
702 <div class="memproto">
703       <table class="memname">
704         <tr>
705           <td class="memname">Void HeapMemMP_getExtendedStats </td>
706           <td>(</td>
707           <td class="paramtype"><a class="el" href="_heap_mem_m_p_8h.html#a9aa6360e22c2f5f387c5aba52a1a8522">HeapMemMP_Handle</a>&#160;</td>
708           <td class="paramname"><em>handle</em>, </td>
709         </tr>
710         <tr>
711           <td class="paramkey"></td>
712           <td></td>
713           <td class="paramtype"><a class="el" href="struct_heap_mem_m_p___extended_stats.html">HeapMemMP_ExtendedStats</a> *&#160;</td>
714           <td class="paramname"><em>stats</em>&#160;</td>
715         </tr>
716         <tr>
717           <td></td>
718           <td>)</td>
719           <td></td><td></td>
720         </tr>
721       </table>
722 </div><div class="memdoc">
724 <p>Get extended memory statistics. </p>
725 <p>This function retrieves extended statistics for a HeapMemMP instance. Refer to <a class="el" href="struct_heap_mem_m_p___extended_stats.html" title="Stats structure for HeapMemMP_getExtendedStats() ">HeapMemMP_ExtendedStats</a> for more information regarding what information is returned.</p>
726 <dl class="params"><dt>Parameters</dt><dd>
727   <table class="params">
728     <tr><td class="paramdir">[in]</td><td class="paramname">handle</td><td>Handle to previously created/opened instance. </td></tr>
729     <tr><td class="paramdir">[out]</td><td class="paramname">stats</td><td>ExtendedStats structure</td></tr>
730   </table>
731   </dd>
732 </dl>
733 <dl class="section see"><dt>See also</dt><dd><a class="el" href="_heap_mem_m_p_8h.html#a5ce7746f4d08dd3fb94e692f6f544b67" title="Get memory statistics. ">HeapMemMP_getStats</a> </dd></dl>
735 </div>
736 </div>
737 <a class="anchor" id="a5ce7746f4d08dd3fb94e692f6f544b67"></a>
738 <div class="memitem">
739 <div class="memproto">
740       <table class="memname">
741         <tr>
742           <td class="memname">Void HeapMemMP_getStats </td>
743           <td>(</td>
744           <td class="paramtype"><a class="el" href="_heap_mem_m_p_8h.html#a9aa6360e22c2f5f387c5aba52a1a8522">HeapMemMP_Handle</a>&#160;</td>
745           <td class="paramname"><em>handle</em>, </td>
746         </tr>
747         <tr>
748           <td class="paramkey"></td>
749           <td></td>
750           <td class="paramtype">Ptr&#160;</td>
751           <td class="paramname"><em>stats</em>&#160;</td>
752         </tr>
753         <tr>
754           <td></td>
755           <td>)</td>
756           <td></td><td></td>
757         </tr>
758       </table>
759 </div><div class="memdoc">
761 <p>Get memory statistics. </p>
762 <dl class="params"><dt>Parameters</dt><dd>
763   <table class="params">
764     <tr><td class="paramdir">[in]</td><td class="paramname">handle</td><td>Handle to previously created/opened instance. </td></tr>
765     <tr><td class="paramdir">[out]</td><td class="paramname">stats</td><td>Memory statistics structure</td></tr>
766   </table>
767   </dd>
768 </dl>
769 <dl class="section see"><dt>See also</dt><dd><a class="el" href="_heap_mem_m_p_8h.html#a1ee8a7319a0ed2344dea9d7b1bbbd3ee" title="Get extended memory statistics. ">HeapMemMP_getExtendedStats()</a> </dd></dl>
771 </div>
772 </div>
773 <a class="anchor" id="a8a610d9bdd7650bf42d52841915a42a0"></a>
774 <div class="memitem">
775 <div class="memproto">
776       <table class="memname">
777         <tr>
778           <td class="memname">Void HeapMemMP_restore </td>
779           <td>(</td>
780           <td class="paramtype"><a class="el" href="_heap_mem_m_p_8h.html#a9aa6360e22c2f5f387c5aba52a1a8522">HeapMemMP_Handle</a>&#160;</td>
781           <td class="paramname"><em>handle</em></td><td>)</td>
782           <td></td>
783         </tr>
784       </table>
785 </div><div class="memdoc">
787 <p>Restore an instance to it's original created state. </p>
788 <p>This function restores an instance to its original created state. Any memory previously allocated from the heap is no longer valid after this API is called. This function does not check whether there is allocated memory or not.</p>
789 <dl class="params"><dt>Parameters</dt><dd>
790   <table class="params">
791     <tr><td class="paramdir">[in]</td><td class="paramname">handle</td><td>Handle to previously created/opened instance. </td></tr>
792   </table>
793   </dd>
794 </dl>
796 </div>
797 </div>
798 </div><!-- contents -->
799 <!-- HTML footer for doxygen 1.8.9.1-->
800 <!-- start footer part -->
801 <hr class="footer"/><small>
802 Copyright  2016, Texas Instruments Incorporated
803 </small>
804 </body>
805 </html>