]> Gitweb @ Texas Instruments - Open Source Git Repositories - git.TI.com/gitweb - processor-sdk/performance-audio-sr.git/blob - ipc_3_43_00_00_eng/docs/cdoc/ti/sdo/ipc/heaps/HeapBufMP.html
Add IPC 3.34.00.00 eng release
[processor-sdk/performance-audio-sr.git] / ipc_3_43_00_00_eng / docs / cdoc / ti / sdo / ipc / heaps / HeapBufMP.html
1 <html>
2 <head>
3 <title>module ti.sdo.ipc.heaps.HeapBufMP</title>
4 <meta name="description" content="Multi-processor fixed-size buffer heap implementation">
5 <link rel="stylesheet" type="text/css" href="../../../../xdoc.css" />
6 </head>
7 <body><div id="xdocWrapper"><div id="xdocContent">
8 <table class="xdocHdr"><tr>
9 <td class="xdocHdrTitle"><span class="xdoc-kw1">module</span> <span class="xdoc-id">ti.sdo.ipc.heaps.</span><span class="xdoc-id">HeapBufMP</span></td>
10 <td class="xdocHdrArrow">
11 <a class="xdocHdrLink" href="../../../../ti/sdo/ipc/heaps/package.html" title="package ti.sdo.ipc.heaps"><img class="xdocHdrArrow" src="../../../../Arrow_up.png"/></a></td>
12 <td class="xdocHdrArrow">
13 <a class="xdocHdrLink" href="../../../../ti/sdo/ipc/heaps/HeapMemMP.html" title="module HeapMemMP"><img class="xdocHdrArrow" src="../../../../Arrow_right.png"/></a></td>
14 </table>
15 <div class=xdocHdrIndex><a class=xdocHdrIndex title="right-click to capture" href="../../../../index.html#ti/sdo/ipc/heaps/HeapBufMP.html">index URL</a></div>
16 <p class="xdocHdrSummary">Multi-processor fixed-size buffer heap implementation</p>
17 <ul class="xdocToc">
18 <li class="xdocToc"><a class="xdocToc" href="#targ-synop">C synopsis</a></li>
19 <li class="xdocToc2"><a class="xdocToc" href="#xdocElems">Individual elements</a></li>
20 <li class="xdocToc"><a class="xdocToc" href="#meta-synop">Configuration settings</a></li>
21 <li class="xdocToc2"><a class="xdocToc" href="#xdocMetaElems">Individual elements</a></li>
22 </ul>
23 <div class="xdocBrief">
24 This module has a common header that can be found in the <a class="xdoc-link" href="../../../../ti/ipc/package.html" title="ti.ipc">ti.ipc</a>
25   package.  Application code should include the common header file (not the
26   RTSC-generated one):
28   <PRE>#include &lt;ti/ipc/HeapBufMP.h&gt;</PRE>
30   The RTSC module must be used in the application's RTSC configuration file
31   (.cfg) if runtime APIs will be used in the application:
33   <PRE>HeapBufMP = xdc.useModule('ti.sdo.ipc.heaps.HeapBufMP');</PRE>
35   Documentation for all runtime APIs, instance configuration parameters,
36   error codes macros and type definitions available to the application
37   integrator can be found in the
38   <A HREF="../../../../../doxygen/html/files.html">Doxygen documenation</A>
39   for the IPC product.  However, the documentation presented on this page
40   should be referred to for information specific to the RTSC module, such as
41   module configuration, Errors, and Asserts.
42 [&nbsp;<a class="xdocBrief" href="#xdoc-desc">more</a>&nbsp;...&nbsp;]
43 </div>
44 <span id='targ-synop'></span>
45 <table class="xdocLabel"><tr>
46 <td class="xdocLabelLeft"><tt><span class="xdoc-id-targ2">C</span></tt> synopsis</td>
47 <td class="xdocLabelCenter">target-domain</td>
48 <td class="xdocLabelRight">sourced in <a class="xdocLink" href="../../../../ti/sdo/ipc/heaps/HeapBufMP-src.html"><span class="xdocLabelFile">ti/sdo/ipc/heaps/HeapBufMP.xdc</span></a></td>
49 </tr></table>
50 <div class="xdocSynT">
51 <div class="xdocSynCode">
52 <tt></tt><span class="xdoc-kw3">#include</span> <span class="xdoc-id">&lt;ti/sdo/ipc/heaps/HeapBufMP.h&gt;</span>
53 </div>
54 <table cellspacing="0" cellpadding="0" border="0">
55 <tr><td colspan='2'><div class='xdocSynTblHdr'>Functions</div></td></tr>
57 <tr valign="top"><td class="xdocSynDecl" nowrap><div class="xdocSynTblType"><tt></tt><span class="xdoc-kw2">Void</span> </div></td><td class="xdocSynDecl"><div class="xdocSynTblDecl"><a class="xdocSynGo" href="#per-instance_creation"><span class="xdoc-id">HeapBufMP_construct</span><span class="xdocSynHoverShadow"><span class="xdocSynHover">//&nbsp;Initialize a new instance object inside the provided structure</span></span></a>(<a class="xdoc-link" href="../../../../ti/sdo/ipc/heaps/HeapBufMP.html#per-instance_object_types" title="ti.sdo.ipc.heaps.HeapBufMP.Struct">HeapBufMP_Struct</a> *structP, <span class="xdoc-kw1">const</span> <a class="xdoc-link" href="../../../../ti/sdo/ipc/heaps/HeapBufMP.html#per-instance_config_parameters" title="ti.sdo.ipc.heaps.HeapBufMP.Params">HeapBufMP_Params</a> *params, <a class="xdoc-link" href="../../../../xdc/runtime/Error.html#.Block" title="xdc.runtime.Error.Block">Error_Block</a> *eb);</div></td></tr>
58 <tr valign="top"><td class="xdocSynDecl" nowrap><div class="xdocSynTblType"><tt></tt><a class="xdoc-link" href="../../../../ti/sdo/ipc/heaps/HeapBufMP.html#per-instance_object_types" title="ti.sdo.ipc.heaps.HeapBufMP.Handle">HeapBufMP_Handle</a> </div></td><td class="xdocSynDecl"><div class="xdocSynTblDecl"><a class="xdocSynGo" href="#per-instance_creation"><span class="xdoc-id">HeapBufMP_create</span><span class="xdocSynHoverShadow"><span class="xdocSynHover">//&nbsp;Allocate and initialize a new instance object and return its handle</span></span></a>(<span class="xdoc-kw1">const</span> <a class="xdoc-link" href="../../../../ti/sdo/ipc/heaps/HeapBufMP.html#per-instance_config_parameters" title="ti.sdo.ipc.heaps.HeapBufMP.Params">HeapBufMP_Params</a> *params, <a class="xdoc-link" href="../../../../xdc/runtime/Error.html#.Block" title="xdc.runtime.Error.Block">Error_Block</a> *eb);</div></td></tr>
59 <tr valign="top"><td class="xdocSynDecl" nowrap><div class="xdocSynTblType"><tt></tt><span class="xdoc-kw2">Void</span> </div></td><td class="xdocSynDecl"><div class="xdocSynTblDecl"><a class="xdocSynGo" href="#per-instance_deletion"><span class="xdoc-id">HeapBufMP_delete</span><span class="xdocSynHoverShadow"><span class="xdocSynHover">//&nbsp;Finalize and free this previously allocated instance object, setting the referenced handle to NULL</span></span></a>(<a class="xdoc-link" href="../../../../ti/sdo/ipc/heaps/HeapBufMP.html#per-instance_object_types" title="ti.sdo.ipc.heaps.HeapBufMP.Handle">HeapBufMP_Handle</a> *handleP);</div></td></tr>
60 <tr valign="top"><td class="xdocSynDecl" nowrap><div class="xdocSynTblType"><tt></tt><span class="xdoc-kw2">Void</span> </div></td><td class="xdocSynDecl"><div class="xdocSynTblDecl"><a class="xdocSynGo" href="#per-instance_deletion"><span class="xdoc-id">HeapBufMP_destruct</span><span class="xdocSynHoverShadow"><span class="xdocSynHover">//&nbsp;Finalize the instance object inside the provided structure</span></span></a>(<a class="xdoc-link" href="../../../../ti/sdo/ipc/heaps/HeapBufMP.html#per-instance_object_types" title="ti.sdo.ipc.heaps.HeapBufMP.Struct">HeapBufMP_Struct</a> *structP);</div></td></tr>
61 <tr valign="top"><td class="xdocSynDecl" nowrap><div class="xdocSynTblType"><tt></tt><span class="xdoc-kw2">Void</span> </div></td><td class="xdocSynDecl"><div class="xdocSynTblDecl"><a class="xdocSynGo" href="#per-instance_config_parameters"><span class="xdoc-id">HeapBufMP_Params_init</span><span class="xdocSynHoverShadow"><span class="xdocSynHover">//&nbsp;Initialize this config-params structure with supplier-specified defaults before instance creation</span></span></a>(<a class="xdoc-link" href="../../../../ti/sdo/ipc/heaps/HeapBufMP.html#per-instance_config_parameters" title="ti.sdo.ipc.heaps.HeapBufMP.Params">HeapBufMP_Params</a> *params);</div></td></tr>
62 <tr><td colspan="2"><div class="xdocSynFxnCat">Functions common to all IHeap modules</div></td></tr>
64 <tr valign="top"><td class="xdocSynDecl" nowrap><div class="xdocSynTblType"><tt></tt><span class="xdoc-kw2">Ptr</span>&nbsp;</div></td><td class="xdocSynDecl"><div class="xdocSynTblDecl"><a class="xdocSynGo" href="#alloc"><span class="xdoc-id">HeapBufMP_alloc</span><span class="xdocSynHoverShadow"><span class="xdocSynHover">//&nbsp;Allocates a block of memory from the heap</span></span></a>(<a class="xdoc-link" href="../../../../ti/sdo/ipc/heaps/HeapBufMP.html#per-instance_object_types" title="ti.sdo.ipc.heaps.HeapBufMP.Handle">HeapBufMP_Handle</a> handle, <span class="xdoc-kw2">SizeT</span>&nbsp;<span class="xdoc-id">size</span>, <span class="xdoc-kw2">SizeT</span>&nbsp;<span class="xdoc-id">align</span>, <a class="xdoc-link" href="../../../../xdc/runtime/Error.html#.Block" title="xdc.runtime.Error.Block">Error_Block</a>&nbsp;*<span class="xdoc-id">eb</span>);</div></td></tr>
65 <tr valign="top"><td class="xdocSynDecl" nowrap><div class="xdocSynTblType"><tt></tt><span class="xdoc-kw2">Void</span>&nbsp;</div></td><td class="xdocSynDecl"><div class="xdocSynTblDecl"><a class="xdocSynGo" href="#free"><span class="xdoc-id">HeapBufMP_free</span><span class="xdocSynHoverShadow"><span class="xdocSynHover">//&nbsp;Free a block of memory back to the heap</span></span></a>(<a class="xdoc-link" href="../../../../ti/sdo/ipc/heaps/HeapBufMP.html#per-instance_object_types" title="ti.sdo.ipc.heaps.HeapBufMP.Handle">HeapBufMP_Handle</a> handle, <span class="xdoc-kw2">Ptr</span>&nbsp;<span class="xdoc-id">block</span>, <span class="xdoc-kw2">SizeT</span>&nbsp;<span class="xdoc-id">size</span>);</div></td></tr>
66 <tr valign="top"><td class="xdocSynDecl" nowrap><div class="xdocSynTblType"><tt></tt><span class="xdoc-kw2">Void</span>&nbsp;</div></td><td class="xdocSynDecl"><div class="xdocSynTblDecl"><a class="xdocSynGo" href="#get.Stats"><span class="xdoc-id">HeapBufMP_getStats</span><span class="xdocSynHoverShadow"><span class="xdocSynHover">//&nbsp;Retrieve the statistics from the heap</span></span></a>(<a class="xdoc-link" href="../../../../ti/sdo/ipc/heaps/HeapBufMP.html#per-instance_object_types" title="ti.sdo.ipc.heaps.HeapBufMP.Handle">HeapBufMP_Handle</a> handle, <a class="xdoc-link" href="../../../../xdc/runtime/Memory.html#.Stats" title="xdc.runtime.Memory.Stats">Memory_Stats</a>&nbsp;*<span class="xdoc-id">stats</span>);</div></td></tr>
67 <tr valign="top"><td class="xdocSynDecl" nowrap><div class="xdocSynTblType"><tt></tt><span class="xdoc-kw2">Bool</span>&nbsp;</div></td><td class="xdocSynDecl"><div class="xdocSynTblDecl"><a class="xdocSynGo" href="#is.Blocking"><span class="xdoc-id">HeapBufMP_isBlocking</span><span class="xdocSynHoverShadow"><span class="xdocSynHover">//&nbsp;Returns whether the heap may block during an <tt><span class="xdoc-link" href="HeapBufMP.html#alloc" title="alloc">alloc()</span></tt> or
68   <tt><span class="xdoc-link" href="HeapBufMP.html#free" title="free">free()</span></tt></span></span></a>(<a class="xdoc-link" href="../../../../ti/sdo/ipc/heaps/HeapBufMP.html#per-instance_object_types" title="ti.sdo.ipc.heaps.HeapBufMP.Handle">HeapBufMP_Handle</a> handle);</div></td></tr>
69 <tr><td class="xdocSynFxnCat" colspan="2"><div class="xdocSynFxnCat">Functions common to all target instances</div></td></tr>
71 <tr>
72 <td></td>
73 <td>
74 <div class="xdocSynTblPack">
75 <a class="xdocSynGo" href="#per-instance_object_types"><span class="xdoc-id">HeapBufMP_handle</span><span class="xdocSynHoverShadow"><span class="xdocSynHover">//&nbsp;Convert this instance structure pointer into an instance handle</span></span></a>,
76 <a class="xdocSynGo" href="#per-instance_convertors"><span class="xdoc-id">HeapBufMP_Handle_downCast</span><span class="xdocSynHoverShadow"><span class="xdocSynHover">//&nbsp;conditionally move one level down the inheritance hierarchy; NULL upon failure</span></span></a>,
77 <a class="xdocSynGo" href="#per-instance_built-ins"><span class="xdoc-id">HeapBufMP_Handle_label</span><span class="xdocSynHoverShadow"><span class="xdocSynHover">//&nbsp;The label associated with this instance object</span></span></a>,
78 <a class="xdocSynGo" href="#per-instance_built-ins"><span class="xdoc-id">HeapBufMP_Handle_name</span><span class="xdocSynHoverShadow"><span class="xdocSynHover">//&nbsp;The name of this instance object</span></span></a>,
79 <a class="xdocSynGo" href="#per-instance_convertors"><span class="xdoc-id">HeapBufMP_Handle_upCast</span><span class="xdocSynHoverShadow"><span class="xdocSynHover">//&nbsp;unconditionally move one level up the inheritance hierarchy</span></span></a>,
80 <a class="xdocSynGo" href="#per-instance_built-ins"><span class="xdoc-id">HeapBufMP_Object_count</span><span class="xdocSynHoverShadow"><span class="xdocSynHover">//&nbsp;The number of statically-created instance objects</span></span></a>,
81 <a class="xdocSynGo" href="#per-instance_built-ins"><span class="xdoc-id">HeapBufMP_Object_first</span><span class="xdocSynHoverShadow"><span class="xdocSynHover">//&nbsp;The handle of the first dynamically-created instance object, or NULL</span></span></a>,
82 <a class="xdocSynGo" href="#per-instance_built-ins"><span class="xdoc-id">HeapBufMP_Object_get</span><span class="xdocSynHoverShadow"><span class="xdocSynHover">//&nbsp;The handle of the i-th statically-created instance object (array == NULL)</span></span></a>,
83 <a class="xdocSynGo" href="#per-instance_built-ins"><span class="xdoc-id">HeapBufMP_Object_heap</span><span class="xdocSynHoverShadow"><span class="xdocSynHover">//&nbsp;The heap used to allocate dynamically-created instance objects</span></span></a>,
84 <a class="xdocSynGo" href="#per-instance_built-ins"><span class="xdoc-id">HeapBufMP_Object_next</span><span class="xdocSynHoverShadow"><span class="xdocSynHover">//&nbsp;The handle of the next dynamically-created instance object, or NULL</span></span></a>,
85 <a class="xdocSynGo" href="#per-instance_object_types"><span class="xdoc-id">HeapBufMP_struct</span><span class="xdocSynHoverShadow"><span class="xdocSynHover">//&nbsp;Convert this instance handle into an instance structure pointer</span></span></a>
86 </div>
87 </td>
88 </tr>
89 <tr><td class="xdocSynFxnCat" colspan="2"><div class="xdocSynFxnCat">Functions common to all target modules</div></td></tr>
91 <tr>
92 <td></td>
93 <td>
94 <div class="xdocSynTblPack">
95 <a class="xdocSynGo" href="#module-wide_built-ins"><span class="xdoc-id">HeapBufMP_Module_getMask</span><span class="xdocSynHoverShadow"><span class="xdocSynHover">//&nbsp;Returns the diagnostics mask for this module</span></span></a>,
96 <a class="xdocSynGo" href="#module-wide_built-ins"><span class="xdoc-id">HeapBufMP_Module_hasMask</span><span class="xdocSynHoverShadow"><span class="xdocSynHover">//&nbsp;Test whether this module has a diagnostics mask</span></span></a>,
97 <a class="xdocSynGo" href="#module-wide_built-ins"><span class="xdoc-id">HeapBufMP_Module_heap</span><span class="xdocSynHoverShadow"><span class="xdocSynHover">//&nbsp;The heap from which this module allocates memory</span></span></a>,
98 <a class="xdocSynGo" href="#module-wide_built-ins"><span class="xdoc-id">HeapBufMP_Module_id</span><span class="xdocSynHoverShadow"><span class="xdocSynHover">//&nbsp;Get this module's unique id</span></span></a>,
99 <a class="xdocSynGo" href="#module-wide_built-ins"><span class="xdoc-id">HeapBufMP_Module_setMask</span><span class="xdocSynHoverShadow"><span class="xdocSynHover">//&nbsp;Set the diagnostics mask for this module</span></span></a>,
100 <a class="xdocSynGo" href="#module-wide_built-ins"><span class="xdoc-id">HeapBufMP_Module_startupDone</span><span class="xdocSynHoverShadow"><span class="xdocSynHover">//&nbsp;Test if this module has completed startup</span></span></a>
101 </div>
102 </td>
103 </tr>
104 <tr><td colspan='2'><div class='xdocSynTblHdr'>Typedefs</div></td></tr>
106 <tr valign="top"><td class="xdocSynDecl" nowrap><div class="xdocSynTblType"><tt></tt><span class="xdoc-kw1">typedef</span> <a class="xdoc-link" href="../../../../ti/sdo/ipc/heaps/HeapBufMP.html#per-instance_object_types" title="ti.sdo.ipc.heaps.HeapBufMP.Object">HeapBufMP_Object</a> *</div></td><td class="xdocSynDecl"><div class="xdocSynTblDecl"><a class="xdocSynGo" href="#per-instance_object_types"><span class="xdoc-id">HeapBufMP_Handle</span><span class="xdocSynHoverShadow"><span class="xdocSynHover">//&nbsp;Client reference to an instance object</span></span></a>;</div></td></tr>
107 <tr valign="top"><td class="xdocSynDecl" nowrap><div class="xdocSynTblType"><tt></tt><span class="xdoc-kw1">typedef</span> <span class="xdoc-kw1">struct</span> </div></td><td class="xdocSynDecl"><div class="xdocSynTblDecl"><a class="xdocSynGo" href="#per-instance_object_types"><span class="xdoc-id">HeapBufMP_Object</span><span class="xdocSynHoverShadow"><span class="xdocSynHover">//&nbsp;Opaque internal representation of an instance object</span></span></a> <span class="xdoc-id">HeapBufMP_Object</span>;</div></td></tr>
108 <tr valign="top"><td class="xdocSynDecl" nowrap><div class="xdocSynTblType"><tt></tt><span class="xdoc-kw1">typedef</span> <span class="xdoc-kw1">struct</span> </div></td><td class="xdocSynDecl"><div class="xdocSynTblDecl"><a class="xdocSynGo" href="#per-instance_config_parameters"><span class="xdoc-id">HeapBufMP_Params</span><span class="xdocSynHoverShadow"><span class="xdocSynHover">//&nbsp;Instance config-params structure</span></span></a> ...</div></td></tr>
109 <tr valign="top"><td class="xdocSynDecl" nowrap><div class="xdocSynTblType"><tt></tt><span class="xdoc-kw1">typedef</span> <span class="xdoc-kw1">struct</span> </div></td><td class="xdocSynDecl"><div class="xdocSynTblDecl"><a class="xdocSynGo" href="#per-instance_object_types"><span class="xdoc-id">HeapBufMP_Struct</span><span class="xdocSynHoverShadow"><span class="xdocSynHover">//&nbsp;Opaque client structure large enough to hold an instance object</span></span></a> <span class="xdoc-id">HeapBufMP_Struct</span>;</div></td></tr>
110 <tr><td colspan='2'><div class='xdocSynTblHdr'>Constants</div></td></tr>
112 <tr valign="top"><td class="xdocSynDecl" nowrap><div class="xdocSynTblType"><tt></tt><span class="xdoc-kw1">extern const</span> <a class="xdoc-link" href="../../../../xdc/runtime/Assert.html#.Id" title="xdc.runtime.Assert.Id">Assert_Id</a>&nbsp;</div></td><td class="xdocSynDecl"><div class="xdocSynTblDecl"><a class="xdocSynGo" href="#.A_bad.Alignment"><span class="xdoc-id">HeapBufMP_A_badAlignment</span><span class="xdocSynHoverShadow"><span class="xdocSynHover">//&nbsp;Assert raised when freeing a block that isn't aligned properly</span></span></a>;</div></td></tr>
113 <tr valign="top"><td class="xdocSynDecl" nowrap><div class="xdocSynTblType"><tt></tt><span class="xdoc-kw1">extern const</span> <a class="xdoc-link" href="../../../../xdc/runtime/Assert.html#.Id" title="xdc.runtime.Assert.Id">Assert_Id</a>&nbsp;</div></td><td class="xdocSynDecl"><div class="xdocSynTblDecl"><a class="xdocSynGo" href="#.A_inv.Block.Freed"><span class="xdoc-id">HeapBufMP_A_invBlockFreed</span><span class="xdocSynHoverShadow"><span class="xdocSynHover">//&nbsp;Assert raised when freeing a block that is not in the buffer's range</span></span></a>;</div></td></tr>
114 <tr valign="top"><td class="xdocSynDecl" nowrap><div class="xdocSynTblType"><tt></tt><span class="xdoc-kw1">extern const</span> <a class="xdoc-link" href="../../../../xdc/runtime/Error.html#.Id" title="xdc.runtime.Error.Id">Error_Id</a>&nbsp;</div></td><td class="xdocSynDecl"><div class="xdocSynTblDecl"><a class="xdocSynGo" href="#.E_align.Too.Large"><span class="xdoc-id">HeapBufMP_E_alignTooLarge</span><span class="xdocSynHoverShadow"><span class="xdocSynHover">//&nbsp;Error raised when a requested alignment is too large</span></span></a>;</div></td></tr>
115 <tr valign="top"><td class="xdocSynDecl" nowrap><div class="xdocSynTblType"><tt></tt><span class="xdoc-kw1">extern const</span> <a class="xdoc-link" href="../../../../xdc/runtime/Error.html#.Id" title="xdc.runtime.Error.Id">Error_Id</a>&nbsp;</div></td><td class="xdocSynDecl"><div class="xdocSynTblDecl"><a class="xdocSynGo" href="#.E_exact.Fail"><span class="xdoc-id">HeapBufMP_E_exactFail</span><span class="xdocSynHoverShadow"><span class="xdocSynHover">//&nbsp;Error raised when exact matching failed</span></span></a>;</div></td></tr>
116 <tr valign="top"><td class="xdocSynDecl" nowrap><div class="xdocSynTblType"><tt></tt><span class="xdoc-kw1">extern const</span> <a class="xdoc-link" href="../../../../xdc/runtime/Error.html#.Id" title="xdc.runtime.Error.Id">Error_Id</a>&nbsp;</div></td><td class="xdocSynDecl"><div class="xdocSynTblDecl"><a class="xdocSynGo" href="#.E_no.Blocks.Left"><span class="xdoc-id">HeapBufMP_E_noBlocksLeft</span><span class="xdocSynHoverShadow"><span class="xdocSynHover">//&nbsp;Error raised when there are no more blocks left in the buffer</span></span></a>;</div></td></tr>
117 <tr valign="top"><td class="xdocSynDecl" nowrap><div class="xdocSynTblType"><tt></tt><span class="xdoc-kw1">extern const</span> <a class="xdoc-link" href="../../../../xdc/runtime/Error.html#.Id" title="xdc.runtime.Error.Id">Error_Id</a>&nbsp;</div></td><td class="xdocSynDecl"><div class="xdocSynTblDecl"><a class="xdocSynGo" href="#.E_size.Too.Large"><span class="xdoc-id">HeapBufMP_E_sizeTooLarge</span><span class="xdocSynHoverShadow"><span class="xdocSynHover">//&nbsp;Error raised when a requested alloc size is too large</span></span></a>;</div></td></tr>
118 <tr valign="top"><td class="xdocSynDecl" nowrap><div class="xdocSynTblType"><tt></tt><span class="xdoc-kw1">extern const</span> <span class="xdoc-kw2">UInt</span>&nbsp;</div></td><td class="xdocSynDecl"><div class="xdocSynTblDecl"><a class="xdocSynGo" href="#max.Name.Len"><span class="xdoc-id">HeapBufMP_maxNameLen</span><span class="xdocSynHoverShadow"><span class="xdocSynHover">//&nbsp;Maximum length for heap names</span></span></a>;</div></td></tr>
119 <tr valign="top"><td class="xdocSynDecl" nowrap><div class="xdocSynTblType"><tt></tt><span class="xdoc-kw1">extern const</span> <span class="xdoc-kw2">Bool</span>&nbsp;</div></td><td class="xdocSynDecl"><div class="xdocSynTblDecl"><a class="xdocSynGo" href="#track.Allocs"><span class="xdoc-id">HeapBufMP_trackAllocs</span><span class="xdocSynHoverShadow"><span class="xdocSynHover">//&nbsp;Track the number of allocated blocks</span></span></a>;</div></td></tr>
120 </table>
121 <div class="xdocSynSpacer">&nbsp;</div>
122 </div>
123 <span id="xdoc-desc"></span>
124 <span id="xdoc-sect-1"></span>
125 <div class="xdocSect">DETAILS</div>
126 <div class="xdocText">This module has a common header that can be found in the <a class="xdoc-link" href="../../../../ti/ipc/package.html" title="ti.ipc">ti.ipc</a>
127   package.  Application code should include the common header file (not the
128   RTSC-generated one):
130   <PRE>#include &lt;ti/ipc/HeapBufMP.h&gt;</PRE>
132   The RTSC module must be used in the application's RTSC configuration file
133   (.cfg) if runtime APIs will be used in the application:
135   <PRE>HeapBufMP = xdc.useModule('ti.sdo.ipc.heaps.HeapBufMP');</PRE>
137   Documentation for all runtime APIs, instance configuration parameters,
138   error codes macros and type definitions available to the application
139   integrator can be found in the
140   <A HREF="../../../../../doxygen/html/files.html">Doxygen documenation</A>
141   for the IPC product.  However, the documentation presented on this page
142   should be referred to for information specific to the RTSC module, such as
143   module configuration, Errors, and Asserts.</div>
144 <div class="xdocText">It is important to note that allocation tracking is disabled by default in
145   <a class="xdoc-link" href="HeapBufMP.html#track.Allocs" title="trackAllocs">trackAllocs</a>.  Disabling allocation tracking improves alloc/free
146   performance especially when cache calls are required in shared memory.</div>
147 <div id="xdocSep">
148 </div>
149 <div id="xdocElems">
150 <div class="xdocSynSpacer">&nbsp;</div>
151 <a class="xdocAnchor" id=".A_bad.Alignment"></a>
152 <table class="xdocHdr"><tr>
153 <td class="xdocHdrTitle"><span class="xdoc-kw1">config</span> <span class="xdoc-id">HeapBufMP_</span><span class="xdoc-id">A_badAlignment</span>&nbsp;&nbsp;<small><span class="xdocSynSum">//&nbsp;module-wide</span></small></td>
154 <td class="xdocHdrArrow">
155 <a class="xdocHdrLink" href="../../../../ti/sdo/ipc/heaps/HeapBufMP.html" title="module HeapBufMP"><img class="xdocHdrArrow" src="../../../../Arrow_up.png"/></a></td>
156 </table>
157 <div class=xdocHdrIndex><a class=xdocHdrIndex title="right-click to capture" href="../../../../index.html#ti/sdo/ipc/heaps/HeapBufMP.html#.A_bad.Alignment">index URL</a></div>
158 <p class="xdocHdrSummaryDcl">Assert raised when freeing a block that isn't aligned properly</p>
159 <span id='targ-synop'></span>
160 <table class="xdocLabel"><tr>
161 <td class="xdocLabelLeft"><tt><span class="xdoc-id-targ2dcl">C</span></tt> synopsis</td>
162 <td class="xdocLabelRight">target-domain</td>
163 </tr></table>
164 <div class="xdocSynTdcl">
165 <div class="xdocSynCode">
166 <tt></tt><tt></tt><span class="xdoc-kw1">extern const</span> <a class="xdoc-link" href="../../../../xdc/runtime/Assert.html#.Id" title="xdc.runtime.Assert.Id">Assert_Id</a>&nbsp;<span class="xdoc-id">HeapBufMP_A_badAlignment</span>;
167 </div>
168 </div>
169 <div class="xdocSynSpacer">&nbsp;</div>
170 <div class="xdocSynSpacer">&nbsp;</div>
171 <a class="xdocAnchor" id=".A_inv.Block.Freed"></a>
172 <table class="xdocHdr"><tr>
173 <td class="xdocHdrTitle"><span class="xdoc-kw1">config</span> <span class="xdoc-id">HeapBufMP_</span><span class="xdoc-id">A_invBlockFreed</span>&nbsp;&nbsp;<small><span class="xdocSynSum">//&nbsp;module-wide</span></small></td>
174 <td class="xdocHdrArrow">
175 <a class="xdocHdrLink" href="../../../../ti/sdo/ipc/heaps/HeapBufMP.html" title="module HeapBufMP"><img class="xdocHdrArrow" src="../../../../Arrow_up.png"/></a></td>
176 </table>
177 <div class=xdocHdrIndex><a class=xdocHdrIndex title="right-click to capture" href="../../../../index.html#ti/sdo/ipc/heaps/HeapBufMP.html#.A_inv.Block.Freed">index URL</a></div>
178 <p class="xdocHdrSummaryDcl">Assert raised when freeing a block that is not in the buffer's range</p>
179 <span id='targ-synop'></span>
180 <table class="xdocLabel"><tr>
181 <td class="xdocLabelLeft"><tt><span class="xdoc-id-targ2dcl">C</span></tt> synopsis</td>
182 <td class="xdocLabelRight">target-domain</td>
183 </tr></table>
184 <div class="xdocSynTdcl">
185 <div class="xdocSynCode">
186 <tt></tt><tt></tt><span class="xdoc-kw1">extern const</span> <a class="xdoc-link" href="../../../../xdc/runtime/Assert.html#.Id" title="xdc.runtime.Assert.Id">Assert_Id</a>&nbsp;<span class="xdoc-id">HeapBufMP_A_invBlockFreed</span>;
187 </div>
188 </div>
189 <div class="xdocSynSpacer">&nbsp;</div>
190 <div class="xdocSynSpacer">&nbsp;</div>
191 <a class="xdocAnchor" id=".E_align.Too.Large"></a>
192 <table class="xdocHdr"><tr>
193 <td class="xdocHdrTitle"><span class="xdoc-kw1">config</span> <span class="xdoc-id">HeapBufMP_</span><span class="xdoc-id">E_alignTooLarge</span>&nbsp;&nbsp;<small><span class="xdocSynSum">//&nbsp;module-wide</span></small></td>
194 <td class="xdocHdrArrow">
195 <a class="xdocHdrLink" href="../../../../ti/sdo/ipc/heaps/HeapBufMP.html" title="module HeapBufMP"><img class="xdocHdrArrow" src="../../../../Arrow_up.png"/></a></td>
196 </table>
197 <div class=xdocHdrIndex><a class=xdocHdrIndex title="right-click to capture" href="../../../../index.html#ti/sdo/ipc/heaps/HeapBufMP.html#.E_align.Too.Large">index URL</a></div>
198 <p class="xdocHdrSummaryDcl">Error raised when a requested alignment is too large</p>
199 <span id='targ-synop'></span>
200 <table class="xdocLabel"><tr>
201 <td class="xdocLabelLeft"><tt><span class="xdoc-id-targ2dcl">C</span></tt> synopsis</td>
202 <td class="xdocLabelRight">target-domain</td>
203 </tr></table>
204 <div class="xdocSynTdcl">
205 <div class="xdocSynCode">
206 <tt></tt><tt></tt><span class="xdoc-kw1">extern const</span> <a class="xdoc-link" href="../../../../xdc/runtime/Error.html#.Id" title="xdc.runtime.Error.Id">Error_Id</a>&nbsp;<span class="xdoc-id">HeapBufMP_E_alignTooLarge</span>;
207 </div>
208 </div>
209 <div class="xdocSynSpacer">&nbsp;</div>
210 <div class="xdocSynSpacer">&nbsp;</div>
211 <a class="xdocAnchor" id=".E_exact.Fail"></a>
212 <table class="xdocHdr"><tr>
213 <td class="xdocHdrTitle"><span class="xdoc-kw1">config</span> <span class="xdoc-id">HeapBufMP_</span><span class="xdoc-id">E_exactFail</span>&nbsp;&nbsp;<small><span class="xdocSynSum">//&nbsp;module-wide</span></small></td>
214 <td class="xdocHdrArrow">
215 <a class="xdocHdrLink" href="../../../../ti/sdo/ipc/heaps/HeapBufMP.html" title="module HeapBufMP"><img class="xdocHdrArrow" src="../../../../Arrow_up.png"/></a></td>
216 </table>
217 <div class=xdocHdrIndex><a class=xdocHdrIndex title="right-click to capture" href="../../../../index.html#ti/sdo/ipc/heaps/HeapBufMP.html#.E_exact.Fail">index URL</a></div>
218 <p class="xdocHdrSummaryDcl">Error raised when exact matching failed</p>
219 <span id='targ-synop'></span>
220 <table class="xdocLabel"><tr>
221 <td class="xdocLabelLeft"><tt><span class="xdoc-id-targ2dcl">C</span></tt> synopsis</td>
222 <td class="xdocLabelRight">target-domain</td>
223 </tr></table>
224 <div class="xdocSynTdcl">
225 <div class="xdocSynCode">
226 <tt></tt><tt></tt><span class="xdoc-kw1">extern const</span> <a class="xdoc-link" href="../../../../xdc/runtime/Error.html#.Id" title="xdc.runtime.Error.Id">Error_Id</a>&nbsp;<span class="xdoc-id">HeapBufMP_E_exactFail</span>;
227 </div>
228 </div>
229 <div class="xdocSynSpacer">&nbsp;</div>
230 <div class="xdocSynSpacer">&nbsp;</div>
231 <a class="xdocAnchor" id=".E_no.Blocks.Left"></a>
232 <table class="xdocHdr"><tr>
233 <td class="xdocHdrTitle"><span class="xdoc-kw1">config</span> <span class="xdoc-id">HeapBufMP_</span><span class="xdoc-id">E_noBlocksLeft</span>&nbsp;&nbsp;<small><span class="xdocSynSum">//&nbsp;module-wide</span></small></td>
234 <td class="xdocHdrArrow">
235 <a class="xdocHdrLink" href="../../../../ti/sdo/ipc/heaps/HeapBufMP.html" title="module HeapBufMP"><img class="xdocHdrArrow" src="../../../../Arrow_up.png"/></a></td>
236 </table>
237 <div class=xdocHdrIndex><a class=xdocHdrIndex title="right-click to capture" href="../../../../index.html#ti/sdo/ipc/heaps/HeapBufMP.html#.E_no.Blocks.Left">index URL</a></div>
238 <p class="xdocHdrSummaryDcl">Error raised when there are no more blocks left in the buffer</p>
239 <span id='targ-synop'></span>
240 <table class="xdocLabel"><tr>
241 <td class="xdocLabelLeft"><tt><span class="xdoc-id-targ2dcl">C</span></tt> synopsis</td>
242 <td class="xdocLabelRight">target-domain</td>
243 </tr></table>
244 <div class="xdocSynTdcl">
245 <div class="xdocSynCode">
246 <tt></tt><tt></tt><span class="xdoc-kw1">extern const</span> <a class="xdoc-link" href="../../../../xdc/runtime/Error.html#.Id" title="xdc.runtime.Error.Id">Error_Id</a>&nbsp;<span class="xdoc-id">HeapBufMP_E_noBlocksLeft</span>;
247 </div>
248 </div>
249 <div class="xdocSynSpacer">&nbsp;</div>
250 <div class="xdocSynSpacer">&nbsp;</div>
251 <a class="xdocAnchor" id=".E_size.Too.Large"></a>
252 <table class="xdocHdr"><tr>
253 <td class="xdocHdrTitle"><span class="xdoc-kw1">config</span> <span class="xdoc-id">HeapBufMP_</span><span class="xdoc-id">E_sizeTooLarge</span>&nbsp;&nbsp;<small><span class="xdocSynSum">//&nbsp;module-wide</span></small></td>
254 <td class="xdocHdrArrow">
255 <a class="xdocHdrLink" href="../../../../ti/sdo/ipc/heaps/HeapBufMP.html" title="module HeapBufMP"><img class="xdocHdrArrow" src="../../../../Arrow_up.png"/></a></td>
256 </table>
257 <div class=xdocHdrIndex><a class=xdocHdrIndex title="right-click to capture" href="../../../../index.html#ti/sdo/ipc/heaps/HeapBufMP.html#.E_size.Too.Large">index URL</a></div>
258 <p class="xdocHdrSummaryDcl">Error raised when a requested alloc size is too large</p>
259 <span id='targ-synop'></span>
260 <table class="xdocLabel"><tr>
261 <td class="xdocLabelLeft"><tt><span class="xdoc-id-targ2dcl">C</span></tt> synopsis</td>
262 <td class="xdocLabelRight">target-domain</td>
263 </tr></table>
264 <div class="xdocSynTdcl">
265 <div class="xdocSynCode">
266 <tt></tt><tt></tt><span class="xdoc-kw1">extern const</span> <a class="xdoc-link" href="../../../../xdc/runtime/Error.html#.Id" title="xdc.runtime.Error.Id">Error_Id</a>&nbsp;<span class="xdoc-id">HeapBufMP_E_sizeTooLarge</span>;
267 </div>
268 </div>
269 <div class="xdocSynSpacer">&nbsp;</div>
270 <div class="xdocSynSpacer">&nbsp;</div>
271 <a class="xdocAnchor" id="max.Name.Len"></a>
272 <table class="xdocHdr"><tr>
273 <td class="xdocHdrTitle"><span class="xdoc-kw1">config</span> <span class="xdoc-id">HeapBufMP_</span><span class="xdoc-id">maxNameLen</span>&nbsp;&nbsp;<small><span class="xdocSynSum">//&nbsp;module-wide</span></small></td>
274 <td class="xdocHdrArrow">
275 <a class="xdocHdrLink" href="../../../../ti/sdo/ipc/heaps/HeapBufMP.html" title="module HeapBufMP"><img class="xdocHdrArrow" src="../../../../Arrow_up.png"/></a></td>
276 </table>
277 <div class=xdocHdrIndex><a class=xdocHdrIndex title="right-click to capture" href="../../../../index.html#ti/sdo/ipc/heaps/HeapBufMP.html#max.Name.Len">index URL</a></div>
278 <p class="xdocHdrSummaryDcl">Maximum length for heap names</p>
279 <span id='targ-synop'></span>
280 <table class="xdocLabel"><tr>
281 <td class="xdocLabelLeft"><tt><span class="xdoc-id-targ2dcl">C</span></tt> synopsis</td>
282 <td class="xdocLabelRight">target-domain</td>
283 </tr></table>
284 <div class="xdocSynTdcl">
285 <div class="xdocSynCode">
286 <tt></tt><tt></tt><span class="xdoc-kw1">extern const</span> <span class="xdoc-kw2">UInt</span>&nbsp;<span class="xdoc-id">HeapBufMP_maxNameLen</span>;
287 </div>
288 </div>
289 <div class="xdocSynSpacer">&nbsp;</div>
290 <div class="xdocSynSpacer">&nbsp;</div>
291 <a class="xdocAnchor" id="track.Allocs"></a>
292 <table class="xdocHdr"><tr>
293 <td class="xdocHdrTitle"><span class="xdoc-kw1">config</span> <span class="xdoc-id">HeapBufMP_</span><span class="xdoc-id">trackAllocs</span>&nbsp;&nbsp;<small><span class="xdocSynSum">//&nbsp;module-wide</span></small></td>
294 <td class="xdocHdrArrow">
295 <a class="xdocHdrLink" href="../../../../ti/sdo/ipc/heaps/HeapBufMP.html" title="module HeapBufMP"><img class="xdocHdrArrow" src="../../../../Arrow_up.png"/></a></td>
296 </table>
297 <div class=xdocHdrIndex><a class=xdocHdrIndex title="right-click to capture" href="../../../../index.html#ti/sdo/ipc/heaps/HeapBufMP.html#track.Allocs">index URL</a></div>
298 <p class="xdocHdrSummaryDcl">Track the number of allocated blocks</p>
299 <span id='targ-synop'></span>
300 <table class="xdocLabel"><tr>
301 <td class="xdocLabelLeft"><tt><span class="xdoc-id-targ2dcl">C</span></tt> synopsis</td>
302 <td class="xdocLabelRight">target-domain</td>
303 </tr></table>
304 <div class="xdocSynTdcl">
305 <div class="xdocSynCode">
306 <tt></tt><tt></tt><span class="xdoc-kw1">extern const</span> <span class="xdoc-kw2">Bool</span>&nbsp;<span class="xdoc-id">HeapBufMP_trackAllocs</span>;
307 </div>
308 </div>
309 <div class="xdocSynSpacer">&nbsp;</div>
310 <span id="xdoc-sect-1"></span>
311 <div class="xdocSect">DETAILS</div>
312 <div class="xdocText">This will enable/disable the tracking of the current and maximum number
313   of allocations for a HeapBufMP instance.  This maximum refers to the
314   "all time" maximum number of allocations for the history of a HeapBufMP
315   instance.</div>
316 <div class="xdocText">Tracking allocations might adversely affect performance when allocating
317   and/or freeing.  This is especially true if cache is enabled for the
318   shared region.  If this feature is not needed, setting this to false
319   avoids the performance penalty.</div>
320 <a class="xdocAnchor" id="module-wide_built-ins"></a>
321 <table class="xdocHdr"><tr>
322 <td class="xdocHdrTitle"><span class="xdocSynSum">Module-Wide Built-Ins</span></td>
323 <td class="xdocHdrArrow">
324 <a class="xdocHdrLink" href="../../../../ti/sdo/ipc/heaps/HeapBufMP.html" title="module HeapBufMP"><img class="xdocHdrArrow" src="../../../../Arrow_up.png"/></a></td>
325 </table>
326 <div class=xdocHdrIndex><a class=xdocHdrIndex title="right-click to capture" href="../../../../index.html#ti/sdo/ipc/heaps/HeapBufMP.html#module-wide_built-ins">index URL</a></div>
327 <p class="xdocHdrSummary"></p>
328 <span id='targ-synop'></span>
329 <table class="xdocLabel"><tr>
330 <td class="xdocLabelLeft"><tt><span class="xdoc-id-targ2dcl">C</span></tt> synopsis</td>
331 <td class="xdocLabelRight">target-domain</td>
332 </tr></table>
333 <div class="xdocSynTdcl">
334 <div class="xdocSynCode">
335 <tt></tt><tt></tt><a class="xdoc-link" href="../../../../xdc/runtime/Types.html#.Module.Id" title="xdc.runtime.Types.ModuleId">Types_ModuleId</a> <span class="xdoc-id">HeapBufMP_Module_id</span>();
336 </div>
337 <div class='xdocSynSum'><tt></tt><tt></tt>//&nbsp;Get this module's unique id</div>
338 <div class="xdocSynSpacer">&nbsp;</div>
339 <div class="xdocSynCode">
340 <tt></tt><tt></tt><span class="xdoc-kw2">Bool</span> <span class="xdoc-id">HeapBufMP_Module_startupDone</span>();
341 </div>
342 <div class='xdocSynSum'><tt></tt><tt></tt>//&nbsp;Test if this module has completed startup</div>
343 <div class="xdocSynSpacer">&nbsp;</div>
344 <div class="xdocSynCode">
345 <tt></tt><tt></tt><a class="xdoc-link" href="../../../../xdc/runtime/IHeap.html#per-instance_object_types" title="xdc.runtime.IHeap.Handle">IHeap_Handle</a> <span class="xdoc-id">HeapBufMP_Module_heap</span>();
346 </div>
347 <div class='xdocSynSum'><tt></tt><tt></tt>//&nbsp;The heap from which this module allocates memory</div>
348 <div class="xdocSynSpacer">&nbsp;</div>
349 <div class="xdocSynCode">
350 <tt></tt><tt></tt><span class="xdoc-kw2">Bool</span> <span class="xdoc-id">HeapBufMP_Module_hasMask</span>();
351 </div>
352 <div class='xdocSynSum'><tt></tt><tt></tt>//&nbsp;Test whether this module has a diagnostics mask</div>
353 <div class="xdocSynSpacer">&nbsp;</div>
354 <div class="xdocSynCode">
355 <tt></tt><tt></tt><span class="xdoc-kw2">Bits16</span> <span class="xdoc-id">HeapBufMP_Module_getMask</span>();
356 </div>
357 <div class='xdocSynSum'><tt></tt><tt></tt>//&nbsp;Returns the diagnostics mask for this module</div>
358 <div class="xdocSynSpacer">&nbsp;</div>
359 <div class="xdocSynCode">
360 <tt></tt><tt></tt><span class="xdoc-kw2">Void</span> <span class="xdoc-id">HeapBufMP_Module_setMask</span>(<span class="xdoc-kw2">Bits16</span> <span class="xdoc-id">mask</span>);
361 </div>
362 <div class='xdocSynSum'><tt></tt><tt></tt>//&nbsp;Set the diagnostics mask for this module</div>
363 </div>
364 <a class="xdocAnchor" id="per-instance_object_types"></a>
365 <table class="xdocHdr"><tr>
366 <td class="xdocHdrTitle"><span class="xdocSynSum">Instance Object Types</span></td>
367 <td class="xdocHdrArrow">
368 <a class="xdocHdrLink" href="../../../../ti/sdo/ipc/heaps/HeapBufMP.html" title="module HeapBufMP"><img class="xdocHdrArrow" src="../../../../Arrow_up.png"/></a></td>
369 </table>
370 <div class=xdocHdrIndex><a class=xdocHdrIndex title="right-click to capture" href="../../../../index.html#ti/sdo/ipc/heaps/HeapBufMP.html#per-instance_object_types">index URL</a></div>
371 <p class="xdocHdrSummary"></p>
372 <span id='targ-synop'></span>
373 <table class="xdocLabel"><tr>
374 <td class="xdocLabelLeft"><tt><span class="xdoc-id-targ2dcl">C</span></tt> synopsis</td>
375 <td class="xdocLabelRight">target-domain</td>
376 </tr></table>
377 <div class="xdocSynTdcl">
378 <div class="xdocSynCode">
379 <tt></tt><tt></tt><span class="xdoc-kw1">typedef</span> <span class="xdoc-kw1">struct</span> <span class="xdoc-id">HeapBufMP_Object</span> <span class="xdoc-id">HeapBufMP_Object</span>;
380 </div>
381 <div class='xdocSynSum'><tt></tt><tt></tt>//&nbsp;Opaque internal representation of an instance object</div>
382 <div class="xdocSynSpacer">&nbsp;</div>
383 <div class="xdocSynCode">
384 <tt></tt><tt></tt><span class="xdoc-kw1">typedef</span> <a class="xdoc-link" href="../../../../ti/sdo/ipc/heaps/HeapBufMP.html#per-instance_object_types" title="ti.sdo.ipc.heaps.HeapBufMP.Object">HeapBufMP_Object</a> *<span class="xdoc-id">HeapBufMP_Handle</span>;
385 </div>
386 <div class='xdocSynSum'><tt></tt><tt></tt>//&nbsp;Client reference to an instance object</div>
387 <div class="xdocSynSpacer">&nbsp;</div>
388 <div class="xdocSynCode">
389 <tt></tt><tt></tt><span class="xdoc-kw1">typedef</span> <span class="xdoc-kw1">struct</span> <span class="xdoc-id">HeapBufMP_Struct</span> <span class="xdoc-id">HeapBufMP_Struct</span>;
390 </div>
391 <div class='xdocSynSum'><tt></tt><tt></tt>//&nbsp;Opaque client structure large enough to hold an instance object</div>
392 <div class="xdocSynSpacer">&nbsp;</div>
393 <div class="xdocSynCode">
394 <tt></tt><tt></tt><a class="xdoc-link" href="../../../../ti/sdo/ipc/heaps/HeapBufMP.html#per-instance_object_types" title="ti.sdo.ipc.heaps.HeapBufMP.Handle">HeapBufMP_Handle</a> <span class="xdoc-id">HeapBufMP_handle</span>(<a class="xdoc-link" href="../../../../ti/sdo/ipc/heaps/HeapBufMP.html#per-instance_object_types" title="ti.sdo.ipc.heaps.HeapBufMP.Struct">HeapBufMP_Struct</a> *structP);
395 </div>
396 <div class='xdocSynSum'><tt></tt><tt></tt>//&nbsp;Convert this instance structure pointer into an instance handle</div>
397 <div class="xdocSynSpacer">&nbsp;</div>
398 <div class="xdocSynCode">
399 <tt></tt><tt></tt><a class="xdoc-link" href="../../../../ti/sdo/ipc/heaps/HeapBufMP.html#per-instance_object_types" title="ti.sdo.ipc.heaps.HeapBufMP.Struct">HeapBufMP_Struct</a> *<span class="xdoc-id">HeapBufMP_struct</span>(<a class="xdoc-link" href="../../../../ti/sdo/ipc/heaps/HeapBufMP.html#per-instance_object_types" title="ti.sdo.ipc.heaps.HeapBufMP.Handle">HeapBufMP_Handle</a> handle);
400 </div>
401 <div class='xdocSynSum'><tt></tt><tt></tt>//&nbsp;Convert this instance handle into an instance structure pointer</div>
402 </div>
403 <a class="xdocAnchor" id="per-instance_config_parameters"></a>
404 <table class="xdocHdr"><tr>
405 <td class="xdocHdrTitle"><span class="xdocSynSum">Instance Config Parameters</span></td>
406 <td class="xdocHdrArrow">
407 <a class="xdocHdrLink" href="../../../../ti/sdo/ipc/heaps/HeapBufMP.html" title="module HeapBufMP"><img class="xdocHdrArrow" src="../../../../Arrow_up.png"/></a></td>
408 </table>
409 <div class=xdocHdrIndex><a class=xdocHdrIndex title="right-click to capture" href="../../../../index.html#ti/sdo/ipc/heaps/HeapBufMP.html#per-instance_config_parameters">index URL</a></div>
410 <p class="xdocHdrSummary"></p>
411 <span id='targ-synop'></span>
412 <table class="xdocLabel"><tr>
413 <td class="xdocLabelLeft"><tt><span class="xdoc-id-targ2dcl">C</span></tt> synopsis</td>
414 <td class="xdocLabelRight">target-domain</td>
415 </tr></table>
416 <div class="xdocSynTdcl">
417 <div class="xdocSynCode">
418 <tt></tt><tt></tt><span class="xdoc-kw1">typedef</span> <span class="xdoc-kw1">struct</span> <span class="xdoc-id">HeapBufMP_Params</span> {
419 </div>
420 <div class='xdocSynSum'><tt></tt><tt></tt>//&nbsp;Instance config-params structure</div>
421 <div class="xdocSynCode">
422 <tt></tt><tt>&nbsp;&nbsp;&nbsp;&nbsp;</tt><a class="xdoc-link" href="../../../../xdc/runtime/IInstance.html#per-instance_config_parameters" title="xdc.runtime.IInstance.Params">IInstance_Params</a> *instance;
423 </div>
424 <div class='xdocSynSum'><tt></tt><tt>&nbsp;&nbsp;&nbsp;&nbsp;</tt>//&nbsp;Common per-instance configs</div>
425 <div class="xdocSynCode">
426 <tt></tt><tt>&nbsp;&nbsp;&nbsp;&nbsp;</tt><span class="xdoc-kw2">SizeT</span>&nbsp;<span class="xdoc-id">align</span>;
427 </div>
428 <div class='xdocSynSum'><tt></tt><tt>&nbsp;&nbsp;&nbsp;&nbsp;</tt>//&nbsp;Alignment (in MAUs) of each block</div>
429 <div class="xdocSynCode">
430 <tt></tt><tt>&nbsp;&nbsp;&nbsp;&nbsp;</tt><span class="xdoc-kw2">SizeT</span>&nbsp;<span class="xdoc-id">blockSize</span>;
431 </div>
432 <div class='xdocSynSum'><tt></tt><tt>&nbsp;&nbsp;&nbsp;&nbsp;</tt>//&nbsp;Size (in MAUs) of each block</div>
433 <div class="xdocSynCode">
434 <tt></tt><tt>&nbsp;&nbsp;&nbsp;&nbsp;</tt><span class="xdoc-kw2">Bool</span>&nbsp;<span class="xdoc-id">exact</span>;
435 </div>
436 <div class='xdocSynSum'><tt></tt><tt>&nbsp;&nbsp;&nbsp;&nbsp;</tt>//&nbsp;Use exact matching</div>
437 <div class="xdocSynCode">
438 <tt></tt><tt>&nbsp;&nbsp;&nbsp;&nbsp;</tt><a class="xdoc-link" href="../../../../ti/sdo/ipc/GateMP.html#per-instance_object_types" title="ti.sdo.ipc.GateMP.Handle">GateMP_Handle</a>&nbsp;<span class="xdoc-id">gate</span>;
439 </div>
440 <div class='xdocSynSum'><tt></tt><tt>&nbsp;&nbsp;&nbsp;&nbsp;</tt>//&nbsp;GateMP used for critical region management of the shared memory</div>
441 <div class="xdocSynCode">
442 <tt></tt><tt>&nbsp;&nbsp;&nbsp;&nbsp;</tt><span class="xdoc-kw2">String</span>&nbsp;<span class="xdoc-id">name</span>;
443 </div>
444 <div class='xdocSynSum'><tt></tt><tt>&nbsp;&nbsp;&nbsp;&nbsp;</tt>//&nbsp;Name of this instance</div>
445 <div class="xdocSynCode">
446 <tt></tt><tt>&nbsp;&nbsp;&nbsp;&nbsp;</tt><span class="xdoc-kw2">UInt</span>&nbsp;<span class="xdoc-id">numBlocks</span>;
447 </div>
448 <div class='xdocSynSum'><tt></tt><tt>&nbsp;&nbsp;&nbsp;&nbsp;</tt>//&nbsp;Number of fixed-size blocks</div>
449 <div class="xdocSynCode">
450 <tt></tt><tt>&nbsp;&nbsp;&nbsp;&nbsp;</tt><span class="xdoc-kw2">UInt16</span>&nbsp;<span class="xdoc-id">regionId</span>;
451 </div>
452 <div class='xdocSynSum'><tt></tt><tt>&nbsp;&nbsp;&nbsp;&nbsp;</tt>//&nbsp;Shared region ID</div>
453 <div class="xdocSynCode">
454 <tt></tt><tt></tt>} <span class="xdoc-id">HeapBufMP_Params</span>;
455 </div>
456 <div class="xdocSynSpacer">&nbsp;</div>
457 <div class="xdocSynCode">
458 <tt></tt><tt></tt><span class="xdoc-kw2">Void</span> <span class="xdoc-id">HeapBufMP_Params_init</span>(<a class="xdoc-link" href="../../../../ti/sdo/ipc/heaps/HeapBufMP.html#per-instance_config_parameters" title="ti.sdo.ipc.heaps.HeapBufMP.Params">HeapBufMP_Params</a> *params);
459 </div>
460 <div class='xdocSynSum'><tt></tt><tt></tt>//&nbsp;Initialize this config-params structure with supplier-specified defaults before instance creation</div>
461 </div>
462 <div class="xdocSynSpacer">&nbsp;</div>
463 <a class="xdocAnchor" id="align"></a>
464 <table class="xdocHdr"><tr>
465 <td class="xdocHdrTitle"><span class="xdoc-kw1">config</span> <span class="xdoc-id">HeapBufMP_Params.</span><span class="xdoc-id">align</span>&nbsp;&nbsp;<small><span class="xdocSynSum">//&nbsp;instance</span></small></td>
466 <td class="xdocHdrArrow">
467 <a class="xdocHdrLink" href="../../../../ti/sdo/ipc/heaps/HeapBufMP.html" title="module HeapBufMP"><img class="xdocHdrArrow" src="../../../../Arrow_up.png"/></a></td>
468 </table>
469 <div class=xdocHdrIndex><a class=xdocHdrIndex title="right-click to capture" href="../../../../index.html#ti/sdo/ipc/heaps/HeapBufMP.html#align">index URL</a></div>
470 <p class="xdocHdrSummaryDcl">Alignment (in MAUs) of each block</p>
471 <span id='targ-synop'></span>
472 <table class="xdocLabel"><tr>
473 <td class="xdocLabelLeft"><tt><span class="xdoc-id-targ2dcl">C</span></tt> synopsis</td>
474 <td class="xdocLabelRight">target-domain</td>
475 </tr></table>
476 <div class="xdocSynTdcl">
477 <div class="xdocSynCode">
478 <tt></tt><tt></tt><span class="xdoc-kw1">struct</span> <a class="xdoc-link" href="../../../../ti/sdo/ipc/heaps/HeapBufMP.html#per-instance_config_parameters" title="ti.sdo.ipc.heaps.HeapBufMP.Params">HeapBufMP_Params</a> {
479 </div>
480 <div class="xdocSynCode">
481 <tt></tt><tt>&nbsp;&nbsp;&nbsp;&nbsp;</tt><b>&nbsp;&nbsp;...</b>
482 </div>
483 <div class="xdocSynCode">
484 <tt></tt><tt>&nbsp;&nbsp;&nbsp;&nbsp;</tt><span class="xdoc-kw2">SizeT</span>&nbsp;<span class="xdoc-id">align</span>;
485 </div>
486 </div>
487 <div class="xdocSynSpacer">&nbsp;</div>
488 <span id="xdoc-sect-1"></span>
489 <div class="xdocSect">DETAILS</div>
490 <div class="xdocText">The alignment must be a power of 2. If the value 0 is specified,
491   the value will be changed to meet the minimum structure alignment
492   requirements (refer to
493   <a class="xdoc-link" href="../../../../xdc/runtime/Memory.html#get.Max.Default.Type.Align" title="xdc.runtime.Memory.getMaxDefaultTypeAlign">xdc.runtime.Memory.getMaxDefaultTypeAlign</a> and
494   <a class="xdoc-link" href="../../../../xdc/runtime/Memory.html#get.Max.Default.Type.Align.Meta" title="xdc.runtime.Memory.getMaxDefaultTypeAlignMeta">xdc.runtime.Memory.getMaxDefaultTypeAlignMeta</a> and
495   the cache alignment size of the region in which the heap will
496   be placed.  Therefore, the actual alignment may be larger.</div>
497 <div class="xdocText">The default alignment is 0.</div>
498 <div class="xdocSynSpacer">&nbsp;</div>
499 <a class="xdocAnchor" id="block.Size"></a>
500 <table class="xdocHdr"><tr>
501 <td class="xdocHdrTitle"><span class="xdoc-kw1">config</span> <span class="xdoc-id">HeapBufMP_Params.</span><span class="xdoc-id">blockSize</span>&nbsp;&nbsp;<small><span class="xdocSynSum">//&nbsp;instance</span></small></td>
502 <td class="xdocHdrArrow">
503 <a class="xdocHdrLink" href="../../../../ti/sdo/ipc/heaps/HeapBufMP.html" title="module HeapBufMP"><img class="xdocHdrArrow" src="../../../../Arrow_up.png"/></a></td>
504 </table>
505 <div class=xdocHdrIndex><a class=xdocHdrIndex title="right-click to capture" href="../../../../index.html#ti/sdo/ipc/heaps/HeapBufMP.html#block.Size">index URL</a></div>
506 <p class="xdocHdrSummaryDcl">Size (in MAUs) of each block</p>
507 <span id='targ-synop'></span>
508 <table class="xdocLabel"><tr>
509 <td class="xdocLabelLeft"><tt><span class="xdoc-id-targ2dcl">C</span></tt> synopsis</td>
510 <td class="xdocLabelRight">target-domain</td>
511 </tr></table>
512 <div class="xdocSynTdcl">
513 <div class="xdocSynCode">
514 <tt></tt><tt></tt><span class="xdoc-kw1">struct</span> <a class="xdoc-link" href="../../../../ti/sdo/ipc/heaps/HeapBufMP.html#per-instance_config_parameters" title="ti.sdo.ipc.heaps.HeapBufMP.Params">HeapBufMP_Params</a> {
515 </div>
516 <div class="xdocSynCode">
517 <tt></tt><tt>&nbsp;&nbsp;&nbsp;&nbsp;</tt><b>&nbsp;&nbsp;...</b>
518 </div>
519 <div class="xdocSynCode">
520 <tt></tt><tt>&nbsp;&nbsp;&nbsp;&nbsp;</tt><span class="xdoc-kw2">SizeT</span>&nbsp;<span class="xdoc-id">blockSize</span>;
521 </div>
522 </div>
523 <div class="xdocSynSpacer">&nbsp;</div>
524 <span id="xdoc-sect-1"></span>
525 <div class="xdocSect">DETAILS</div>
526 <div class="xdocText">HeapBufMP will round the blockSize up to the nearest multiple of the
527   alignment, so the actual blockSize may be larger. When creating a
528   HeapBufMP dynamically, this needs to be taken into account to determine
529   the proper buffer size to pass in.</div>
530 <div class="xdocText">Required parameter.</div>
531 <div class="xdocText">The default size of the blocks is 0 MAUs.</div>
532 <div class="xdocSynSpacer">&nbsp;</div>
533 <a class="xdocAnchor" id="exact"></a>
534 <table class="xdocHdr"><tr>
535 <td class="xdocHdrTitle"><span class="xdoc-kw1">config</span> <span class="xdoc-id">HeapBufMP_Params.</span><span class="xdoc-id">exact</span>&nbsp;&nbsp;<small><span class="xdocSynSum">//&nbsp;instance</span></small></td>
536 <td class="xdocHdrArrow">
537 <a class="xdocHdrLink" href="../../../../ti/sdo/ipc/heaps/HeapBufMP.html" title="module HeapBufMP"><img class="xdocHdrArrow" src="../../../../Arrow_up.png"/></a></td>
538 </table>
539 <div class=xdocHdrIndex><a class=xdocHdrIndex title="right-click to capture" href="../../../../index.html#ti/sdo/ipc/heaps/HeapBufMP.html#exact">index URL</a></div>
540 <p class="xdocHdrSummaryDcl">Use exact matching</p>
541 <span id='targ-synop'></span>
542 <table class="xdocLabel"><tr>
543 <td class="xdocLabelLeft"><tt><span class="xdoc-id-targ2dcl">C</span></tt> synopsis</td>
544 <td class="xdocLabelRight">target-domain</td>
545 </tr></table>
546 <div class="xdocSynTdcl">
547 <div class="xdocSynCode">
548 <tt></tt><tt></tt><span class="xdoc-kw1">struct</span> <a class="xdoc-link" href="../../../../ti/sdo/ipc/heaps/HeapBufMP.html#per-instance_config_parameters" title="ti.sdo.ipc.heaps.HeapBufMP.Params">HeapBufMP_Params</a> {
549 </div>
550 <div class="xdocSynCode">
551 <tt></tt><tt>&nbsp;&nbsp;&nbsp;&nbsp;</tt><b>&nbsp;&nbsp;...</b>
552 </div>
553 <div class="xdocSynCode">
554 <tt></tt><tt>&nbsp;&nbsp;&nbsp;&nbsp;</tt><span class="xdoc-kw2">Bool</span>&nbsp;<span class="xdoc-id">exact</span>;
555 </div>
556 </div>
557 <div class="xdocSynSpacer">&nbsp;</div>
558 <span id="xdoc-sect-1"></span>
559 <div class="xdocSect">DETAILS</div>
560 <div class="xdocText">Setting this flag will allow allocation only if the requested size
561   is equal to (rather than less than or equal to) the buffer's block
562   size.</div>
563 <div class="xdocSynSpacer">&nbsp;</div>
564 <a class="xdocAnchor" id="gate"></a>
565 <table class="xdocHdr"><tr>
566 <td class="xdocHdrTitle"><span class="xdoc-kw1">config</span> <span class="xdoc-id">HeapBufMP_Params.</span><span class="xdoc-id">gate</span>&nbsp;&nbsp;<small><span class="xdocSynSum">//&nbsp;instance</span></small></td>
567 <td class="xdocHdrArrow">
568 <a class="xdocHdrLink" href="../../../../ti/sdo/ipc/heaps/HeapBufMP.html" title="module HeapBufMP"><img class="xdocHdrArrow" src="../../../../Arrow_up.png"/></a></td>
569 </table>
570 <div class=xdocHdrIndex><a class=xdocHdrIndex title="right-click to capture" href="../../../../index.html#ti/sdo/ipc/heaps/HeapBufMP.html#gate">index URL</a></div>
571 <p class="xdocHdrSummaryDcl">GateMP used for critical region management of the shared memory</p>
572 <span id='targ-synop'></span>
573 <table class="xdocLabel"><tr>
574 <td class="xdocLabelLeft"><tt><span class="xdoc-id-targ2dcl">C</span></tt> synopsis</td>
575 <td class="xdocLabelRight">target-domain</td>
576 </tr></table>
577 <div class="xdocSynTdcl">
578 <div class="xdocSynCode">
579 <tt></tt><tt></tt><span class="xdoc-kw1">struct</span> <a class="xdoc-link" href="../../../../ti/sdo/ipc/heaps/HeapBufMP.html#per-instance_config_parameters" title="ti.sdo.ipc.heaps.HeapBufMP.Params">HeapBufMP_Params</a> {
580 </div>
581 <div class="xdocSynCode">
582 <tt></tt><tt>&nbsp;&nbsp;&nbsp;&nbsp;</tt><b>&nbsp;&nbsp;...</b>
583 </div>
584 <div class="xdocSynCode">
585 <tt></tt><tt>&nbsp;&nbsp;&nbsp;&nbsp;</tt><a class="xdoc-link" href="../../../../ti/sdo/ipc/GateMP.html#per-instance_object_types" title="ti.sdo.ipc.GateMP.Handle">GateMP_Handle</a>&nbsp;<span class="xdoc-id">gate</span>;
586 </div>
587 </div>
588 <div class="xdocSynSpacer">&nbsp;</div>
589 <span id="xdoc-sect-1"></span>
590 <div class="xdocSect">DETAILS</div>
591 <div class="xdocText">Using the default value of NULL will result in use of the GateMP
592   system gate for context protection.</div>
593 <div class="xdocSynSpacer">&nbsp;</div>
594 <a class="xdocAnchor" id="name"></a>
595 <table class="xdocHdr"><tr>
596 <td class="xdocHdrTitle"><span class="xdoc-kw1">config</span> <span class="xdoc-id">HeapBufMP_Params.</span><span class="xdoc-id">name</span>&nbsp;&nbsp;<small><span class="xdocSynSum">//&nbsp;instance</span></small></td>
597 <td class="xdocHdrArrow">
598 <a class="xdocHdrLink" href="../../../../ti/sdo/ipc/heaps/HeapBufMP.html" title="module HeapBufMP"><img class="xdocHdrArrow" src="../../../../Arrow_up.png"/></a></td>
599 </table>
600 <div class=xdocHdrIndex><a class=xdocHdrIndex title="right-click to capture" href="../../../../index.html#ti/sdo/ipc/heaps/HeapBufMP.html#name">index URL</a></div>
601 <p class="xdocHdrSummaryDcl">Name of this instance</p>
602 <span id='targ-synop'></span>
603 <table class="xdocLabel"><tr>
604 <td class="xdocLabelLeft"><tt><span class="xdoc-id-targ2dcl">C</span></tt> synopsis</td>
605 <td class="xdocLabelRight">target-domain</td>
606 </tr></table>
607 <div class="xdocSynTdcl">
608 <div class="xdocSynCode">
609 <tt></tt><tt></tt><span class="xdoc-kw1">struct</span> <a class="xdoc-link" href="../../../../ti/sdo/ipc/heaps/HeapBufMP.html#per-instance_config_parameters" title="ti.sdo.ipc.heaps.HeapBufMP.Params">HeapBufMP_Params</a> {
610 </div>
611 <div class="xdocSynCode">
612 <tt></tt><tt>&nbsp;&nbsp;&nbsp;&nbsp;</tt><b>&nbsp;&nbsp;...</b>
613 </div>
614 <div class="xdocSynCode">
615 <tt></tt><tt>&nbsp;&nbsp;&nbsp;&nbsp;</tt><span class="xdoc-kw2">String</span>&nbsp;<span class="xdoc-id">name</span>;
616 </div>
617 </div>
618 <div class="xdocSynSpacer">&nbsp;</div>
619 <span id="xdoc-sect-1"></span>
620 <div class="xdocSect">DETAILS</div>
621 <div class="xdocText">The name (if not NULL) must be unique among all HeapBufMP
622   instances in the entire system.  When creating a new
623   heap, it is necessary to supply an instance name.</div>
624 <div class="xdocSynSpacer">&nbsp;</div>
625 <a class="xdocAnchor" id="num.Blocks"></a>
626 <table class="xdocHdr"><tr>
627 <td class="xdocHdrTitle"><span class="xdoc-kw1">config</span> <span class="xdoc-id">HeapBufMP_Params.</span><span class="xdoc-id">numBlocks</span>&nbsp;&nbsp;<small><span class="xdocSynSum">//&nbsp;instance</span></small></td>
628 <td class="xdocHdrArrow">
629 <a class="xdocHdrLink" href="../../../../ti/sdo/ipc/heaps/HeapBufMP.html" title="module HeapBufMP"><img class="xdocHdrArrow" src="../../../../Arrow_up.png"/></a></td>
630 </table>
631 <div class=xdocHdrIndex><a class=xdocHdrIndex title="right-click to capture" href="../../../../index.html#ti/sdo/ipc/heaps/HeapBufMP.html#num.Blocks">index URL</a></div>
632 <p class="xdocHdrSummaryDcl">Number of fixed-size blocks</p>
633 <span id='targ-synop'></span>
634 <table class="xdocLabel"><tr>
635 <td class="xdocLabelLeft"><tt><span class="xdoc-id-targ2dcl">C</span></tt> synopsis</td>
636 <td class="xdocLabelRight">target-domain</td>
637 </tr></table>
638 <div class="xdocSynTdcl">
639 <div class="xdocSynCode">
640 <tt></tt><tt></tt><span class="xdoc-kw1">struct</span> <a class="xdoc-link" href="../../../../ti/sdo/ipc/heaps/HeapBufMP.html#per-instance_config_parameters" title="ti.sdo.ipc.heaps.HeapBufMP.Params">HeapBufMP_Params</a> {
641 </div>
642 <div class="xdocSynCode">
643 <tt></tt><tt>&nbsp;&nbsp;&nbsp;&nbsp;</tt><b>&nbsp;&nbsp;...</b>
644 </div>
645 <div class="xdocSynCode">
646 <tt></tt><tt>&nbsp;&nbsp;&nbsp;&nbsp;</tt><span class="xdoc-kw2">UInt</span>&nbsp;<span class="xdoc-id">numBlocks</span>;
647 </div>
648 </div>
649 <div class="xdocSynSpacer">&nbsp;</div>
650 <span id="xdoc-sect-1"></span>
651 <div class="xdocSect">DETAILS</div>
652 <div class="xdocText">This is a required parameter for all new HeapBufMP instances.</div>
653 <div class="xdocSynSpacer">&nbsp;</div>
654 <a class="xdocAnchor" id="region.Id"></a>
655 <table class="xdocHdr"><tr>
656 <td class="xdocHdrTitle"><span class="xdoc-kw1">config</span> <span class="xdoc-id">HeapBufMP_Params.</span><span class="xdoc-id">regionId</span>&nbsp;&nbsp;<small><span class="xdocSynSum">//&nbsp;instance</span></small></td>
657 <td class="xdocHdrArrow">
658 <a class="xdocHdrLink" href="../../../../ti/sdo/ipc/heaps/HeapBufMP.html" title="module HeapBufMP"><img class="xdocHdrArrow" src="../../../../Arrow_up.png"/></a></td>
659 </table>
660 <div class=xdocHdrIndex><a class=xdocHdrIndex title="right-click to capture" href="../../../../index.html#ti/sdo/ipc/heaps/HeapBufMP.html#region.Id">index URL</a></div>
661 <p class="xdocHdrSummaryDcl">Shared region ID</p>
662 <span id='targ-synop'></span>
663 <table class="xdocLabel"><tr>
664 <td class="xdocLabelLeft"><tt><span class="xdoc-id-targ2dcl">C</span></tt> synopsis</td>
665 <td class="xdocLabelRight">target-domain</td>
666 </tr></table>
667 <div class="xdocSynTdcl">
668 <div class="xdocSynCode">
669 <tt></tt><tt></tt><span class="xdoc-kw1">struct</span> <a class="xdoc-link" href="../../../../ti/sdo/ipc/heaps/HeapBufMP.html#per-instance_config_parameters" title="ti.sdo.ipc.heaps.HeapBufMP.Params">HeapBufMP_Params</a> {
670 </div>
671 <div class="xdocSynCode">
672 <tt></tt><tt>&nbsp;&nbsp;&nbsp;&nbsp;</tt><b>&nbsp;&nbsp;...</b>
673 </div>
674 <div class="xdocSynCode">
675 <tt></tt><tt>&nbsp;&nbsp;&nbsp;&nbsp;</tt><span class="xdoc-kw2">UInt16</span>&nbsp;<span class="xdoc-id">regionId</span>;
676 </div>
677 </div>
678 <div class="xdocSynSpacer">&nbsp;</div>
679 <span id="xdoc-sect-1"></span>
680 <div class="xdocSect">DETAILS</div>
681 <div class="xdocText">The index corresponding to the shared region from which shared memory
682   will be allocated.</div>
683 <a class="xdocAnchor" id="per-instance_creation"></a>
684 <table class="xdocHdr"><tr>
685 <td class="xdocHdrTitle"><span class="xdocSynSum">Runtime Instance Creation</span></td>
686 <td class="xdocHdrArrow">
687 <a class="xdocHdrLink" href="../../../../ti/sdo/ipc/heaps/HeapBufMP.html" title="module HeapBufMP"><img class="xdocHdrArrow" src="../../../../Arrow_up.png"/></a></td>
688 </table>
689 <div class=xdocHdrIndex><a class=xdocHdrIndex title="right-click to capture" href="../../../../index.html#ti/sdo/ipc/heaps/HeapBufMP.html#per-instance_creation">index URL</a></div>
690 <p class="xdocHdrSummary"></p>
691 <span id='targ-synop'></span>
692 <table class="xdocLabel"><tr>
693 <td class="xdocLabelLeft"><tt><span class="xdoc-id-targ2dcl">C</span></tt> synopsis</td>
694 <td class="xdocLabelRight">target-domain</td>
695 </tr></table>
696 <div class="xdocSynTdcl">
697 <div class="xdocSynCode">
698 <tt></tt><tt></tt><a class="xdoc-link" href="../../../../ti/sdo/ipc/heaps/HeapBufMP.html#per-instance_object_types" title="ti.sdo.ipc.heaps.HeapBufMP.Handle">HeapBufMP_Handle</a> <span class="xdoc-id">HeapBufMP_create</span>(<span class="xdoc-kw1">const</span> <a class="xdoc-link" href="../../../../ti/sdo/ipc/heaps/HeapBufMP.html#per-instance_config_parameters" title="ti.sdo.ipc.heaps.HeapBufMP.Params">HeapBufMP_Params</a> *params, <a class="xdoc-link" href="../../../../xdc/runtime/Error.html#.Block" title="xdc.runtime.Error.Block">Error_Block</a> *eb);
699 </div>
700 <div class='xdocSynSum'><tt></tt><tt></tt>//&nbsp;Allocate and initialize a new instance object and return its handle</div>
701 <div class="xdocSynSpacer">&nbsp;</div>
702 <div class="xdocSynCode">
703 <tt></tt><tt></tt><span class="xdoc-kw2">Void</span> <span class="xdoc-id">HeapBufMP_construct</span>(<a class="xdoc-link" href="../../../../ti/sdo/ipc/heaps/HeapBufMP.html#per-instance_object_types" title="ti.sdo.ipc.heaps.HeapBufMP.Struct">HeapBufMP_Struct</a> *structP, <span class="xdoc-kw1">const</span> <a class="xdoc-link" href="../../../../ti/sdo/ipc/heaps/HeapBufMP.html#per-instance_config_parameters" title="ti.sdo.ipc.heaps.HeapBufMP.Params">HeapBufMP_Params</a> *params, <a class="xdoc-link" href="../../../../xdc/runtime/Error.html#.Block" title="xdc.runtime.Error.Block">Error_Block</a> *eb);
704 </div>
705 <div class='xdocSynSum'><tt></tt><tt></tt>//&nbsp;Initialize a new instance object inside the provided structure</div>
706 </div>
707 <span id="xdoc-sect-1"></span>
708 <div class="xdocSect">ARGUMENTS</div>
709 <div class="xdocChild"><span class="xdocChildId">params</span>
710 <span class="xdocChildSum">&#151;&nbsp;per-instance config params, or <tt>NULL</tt> to select default values (target-domain only)</span>
711 </div>
712 <div class="xdocChild"><span class="xdocChildId">eb</span>
713 <span class="xdocChildSum">&#151;&nbsp;active error-handling block, or <tt>NULL</tt> to select default policy (target-domain only)</span>
714 </div>
715 <span id="xdoc-sect-2"></span>
716 <div class="xdocSect">DETAILS</div>
717 <div class="xdocText">See specific <tt>IHeap</tt> implementation for parameters used.</div>
718 <a class="xdocAnchor" id="per-instance_deletion"></a>
719 <table class="xdocHdr"><tr>
720 <td class="xdocHdrTitle"><span class="xdocSynSum">Instance Deletion</span></td>
721 <td class="xdocHdrArrow">
722 <a class="xdocHdrLink" href="../../../../ti/sdo/ipc/heaps/HeapBufMP.html" title="module HeapBufMP"><img class="xdocHdrArrow" src="../../../../Arrow_up.png"/></a></td>
723 </table>
724 <div class=xdocHdrIndex><a class=xdocHdrIndex title="right-click to capture" href="../../../../index.html#ti/sdo/ipc/heaps/HeapBufMP.html#per-instance_deletion">index URL</a></div>
725 <p class="xdocHdrSummary"></p>
726 <span id='targ-synop'></span>
727 <table class="xdocLabel"><tr>
728 <td class="xdocLabelLeft"><tt><span class="xdoc-id-targ2dcl">C</span></tt> synopsis</td>
729 <td class="xdocLabelRight">target-domain</td>
730 </tr></table>
731 <div class="xdocSynTdcl">
732 <div class="xdocSynCode">
733 <tt></tt><tt></tt><span class="xdoc-kw2">Void</span> <span class="xdoc-id">HeapBufMP_delete</span>(<a class="xdoc-link" href="../../../../ti/sdo/ipc/heaps/HeapBufMP.html#per-instance_object_types" title="ti.sdo.ipc.heaps.HeapBufMP.Handle">HeapBufMP_Handle</a> *handleP);
734 </div>
735 <div class='xdocSynSum'><tt></tt><tt></tt>//&nbsp;Finalize and free this previously allocated instance object, setting the referenced handle to NULL</div>
736 <div class="xdocSynSpacer">&nbsp;</div>
737 <div class="xdocSynCode">
738 <tt></tt><tt></tt><span class="xdoc-kw2">Void</span> <span class="xdoc-id">HeapBufMP_destruct</span>(<a class="xdoc-link" href="../../../../ti/sdo/ipc/heaps/HeapBufMP.html#per-instance_object_types" title="ti.sdo.ipc.heaps.HeapBufMP.Struct">HeapBufMP_Struct</a> *structP);
739 </div>
740 <div class='xdocSynSum'><tt></tt><tt></tt>//&nbsp;Finalize the instance object inside the provided structure</div>
741 </div>
742 <div class="xdocSynSpacer">&nbsp;</div>
743 <a class="xdocAnchor" id="alloc"></a>
744 <table class="xdocHdr"><tr>
745 <td class="xdocHdrTitle"><span class="xdoc-id">HeapBufMP_</span><span class="xdoc-id">alloc</span>()&nbsp;&nbsp;<small><span class="xdocSynSum">//&nbsp;instance</span></small></td>
746 <td class="xdocHdrArrow">
747 <a class="xdocHdrLink" href="../../../../ti/sdo/ipc/heaps/HeapBufMP.html" title="module HeapBufMP"><img class="xdocHdrArrow" src="../../../../Arrow_up.png"/></a></td>
748 </table>
749 <div class=xdocHdrIndex><a class=xdocHdrIndex title="right-click to capture" href="../../../../index.html#ti/sdo/ipc/heaps/HeapBufMP.html#alloc">index URL</a></div>
750 <p class="xdocHdrSummaryDcl">Allocates a block of memory from the heap</p>
751 <span id='targ-synop'></span>
752 <table class="xdocLabel"><tr>
753 <td class="xdocLabelLeft"><tt><span class="xdoc-id-targ2dcl">C</span></tt> synopsis</td>
754 <td class="xdocLabelRight">target-domain</td>
755 </tr></table>
756 <div class="xdocSynTdcl">
757 <div class="xdocSynCode">
758 <tt></tt><tt></tt><span class="xdoc-kw2">Ptr</span>&nbsp;<span class="xdoc-id">HeapBufMP_alloc</span>(<a class="xdoc-link" href="../../../../ti/sdo/ipc/heaps/HeapBufMP.html#per-instance_object_types" title="ti.sdo.ipc.heaps.HeapBufMP.Handle">HeapBufMP_Handle</a> handle, <span class="xdoc-kw2">SizeT</span>&nbsp;<span class="xdoc-id">size</span>, <span class="xdoc-kw2">SizeT</span>&nbsp;<span class="xdoc-id">align</span>, <a class="xdoc-link" href="../../../../xdc/runtime/Error.html#.Block" title="xdc.runtime.Error.Block">Error_Block</a>&nbsp;*<span class="xdoc-id">eb</span>);
759 </div>
760 </div>
761 <div class="xdocSynSpacer">&nbsp;</div>
762 <span id="xdoc-sect-1"></span>
763 <div class="xdocSect">ARGUMENTS</div>
764 <div class="xdocChild"><span class="xdocChildId">handle</span>
765 <span class="xdocChildSum">&#151;&nbsp;handle of a previously-created <tt>HeapBufMP</tt> instance object</span>
766 </div>
767 <div class="xdocChild"><span class="xdocChildId">size</span>
768 <span class="xdocChildSum">&#151;&nbsp;size (in MADUs) of the block</span>
769 </div>
770 <div class="xdocChild"><span class="xdocChildId">align</span>
771 <span class="xdocChildSum">&#151;&nbsp;alignment (in MADUs)  of the block</span>
772 </div>
773 <div class="xdocChild"><span class="xdocChildId">eb</span>
774 <span class="xdocChildSum">&#151;&nbsp;pointer to error block</span>
775 </div>
776 <span id="xdoc-sect-2"></span>
777 <div class="xdocSect">DETAILS</div>
778 <div class="xdocText">This method returns a block of memory from the heap.
779   It is called by the <tt><a class="xdoc-link" href="../../../../xdc/runtime/Memory.html#alloc" title="xdc.runtime.Memory.alloc">xdc.runtime.Memory.alloc()</a></tt> function.</div>
780 <span id="xdoc-sect-3"></span>
781 <div class="xdocSect">RETURNS</div>
782 <div class="xdocText">Returns the address of the allocated memory.</div>
783 <div class="xdocSynSpacer">&nbsp;</div>
784 <a class="xdocAnchor" id="free"></a>
785 <table class="xdocHdr"><tr>
786 <td class="xdocHdrTitle"><span class="xdoc-id">HeapBufMP_</span><span class="xdoc-id">free</span>()&nbsp;&nbsp;<small><span class="xdocSynSum">//&nbsp;instance</span></small></td>
787 <td class="xdocHdrArrow">
788 <a class="xdocHdrLink" href="../../../../ti/sdo/ipc/heaps/HeapBufMP.html" title="module HeapBufMP"><img class="xdocHdrArrow" src="../../../../Arrow_up.png"/></a></td>
789 </table>
790 <div class=xdocHdrIndex><a class=xdocHdrIndex title="right-click to capture" href="../../../../index.html#ti/sdo/ipc/heaps/HeapBufMP.html#free">index URL</a></div>
791 <p class="xdocHdrSummaryDcl">Free a block of memory back to the heap</p>
792 <span id='targ-synop'></span>
793 <table class="xdocLabel"><tr>
794 <td class="xdocLabelLeft"><tt><span class="xdoc-id-targ2dcl">C</span></tt> synopsis</td>
795 <td class="xdocLabelRight">target-domain</td>
796 </tr></table>
797 <div class="xdocSynTdcl">
798 <div class="xdocSynCode">
799 <tt></tt><tt></tt><span class="xdoc-kw2">Void</span>&nbsp;<span class="xdoc-id">HeapBufMP_free</span>(<a class="xdoc-link" href="../../../../ti/sdo/ipc/heaps/HeapBufMP.html#per-instance_object_types" title="ti.sdo.ipc.heaps.HeapBufMP.Handle">HeapBufMP_Handle</a> handle, <span class="xdoc-kw2">Ptr</span>&nbsp;<span class="xdoc-id">block</span>, <span class="xdoc-kw2">SizeT</span>&nbsp;<span class="xdoc-id">size</span>);
800 </div>
801 </div>
802 <div class="xdocSynSpacer">&nbsp;</div>
803 <span id="xdoc-sect-1"></span>
804 <div class="xdocSect">ARGUMENTS</div>
805 <div class="xdocChild"><span class="xdocChildId">handle</span>
806 <span class="xdocChildSum">&#151;&nbsp;handle of a previously-created <tt>HeapBufMP</tt> instance object</span>
807 </div>
808 <div class="xdocChild"><span class="xdocChildId">block</span>
809 <span class="xdocChildSum">&#151;&nbsp;non-<tt>NULL</tt> address of allocated block to free</span>
810 </div>
811 <div class="xdocChild"><span class="xdocChildId">size</span>
812 <span class="xdocChildSum">&#151;&nbsp;size (in MADUs) of the block of memory to free</span>
813 </div>
814 <span id="xdoc-sect-2"></span>
815 <div class="xdocSect">DETAILS</div>
816 <div class="xdocText">This method gives back a block of memory to a heap.
817   It is called by the <tt><a class="xdoc-link" href="../../../../xdc/runtime/Memory.html#free" title="xdc.runtime.Memory.free">xdc.runtime.Memory.free()</a></tt> function.</div>
818 <div class="xdocSynSpacer">&nbsp;</div>
819 <a class="xdocAnchor" id="get.Stats"></a>
820 <table class="xdocHdr"><tr>
821 <td class="xdocHdrTitle"><span class="xdoc-id">HeapBufMP_</span><span class="xdoc-id">getStats</span>()&nbsp;&nbsp;<small><span class="xdocSynSum">//&nbsp;instance</span></small></td>
822 <td class="xdocHdrArrow">
823 <a class="xdocHdrLink" href="../../../../ti/sdo/ipc/heaps/HeapBufMP.html" title="module HeapBufMP"><img class="xdocHdrArrow" src="../../../../Arrow_up.png"/></a></td>
824 </table>
825 <div class=xdocHdrIndex><a class=xdocHdrIndex title="right-click to capture" href="../../../../index.html#ti/sdo/ipc/heaps/HeapBufMP.html#get.Stats">index URL</a></div>
826 <p class="xdocHdrSummaryDcl">Retrieve the statistics from the heap</p>
827 <span id='targ-synop'></span>
828 <table class="xdocLabel"><tr>
829 <td class="xdocLabelLeft"><tt><span class="xdoc-id-targ2dcl">C</span></tt> synopsis</td>
830 <td class="xdocLabelRight">target-domain</td>
831 </tr></table>
832 <div class="xdocSynTdcl">
833 <div class="xdocSynCode">
834 <tt></tt><tt></tt><span class="xdoc-kw2">Void</span>&nbsp;<span class="xdoc-id">HeapBufMP_getStats</span>(<a class="xdoc-link" href="../../../../ti/sdo/ipc/heaps/HeapBufMP.html#per-instance_object_types" title="ti.sdo.ipc.heaps.HeapBufMP.Handle">HeapBufMP_Handle</a> handle, <a class="xdoc-link" href="../../../../xdc/runtime/Memory.html#.Stats" title="xdc.runtime.Memory.Stats">Memory_Stats</a>&nbsp;*<span class="xdoc-id">stats</span>);
835 </div>
836 </div>
837 <div class="xdocSynSpacer">&nbsp;</div>
838 <span id="xdoc-sect-1"></span>
839 <div class="xdocSect">ARGUMENTS</div>
840 <div class="xdocChild"><span class="xdocChildId">handle</span>
841 <span class="xdocChildSum">&#151;&nbsp;handle of a previously-created <tt>HeapBufMP</tt> instance object</span>
842 </div>
843 <div class="xdocChild"><span class="xdocChildId">stats</span>
844 <span class="xdocChildSum">&#151;&nbsp;non-<tt>NULL</tt> pointer to an output buffer</span>
845 </div>
846 <span id="xdoc-sect-2"></span>
847 <div class="xdocSect">DETAILS</div>
848 <div class="xdocText">The caller passes in a pointer to a <tt><a class="xdoc-link" href="../../../../xdc/runtime/Memory.html#.Stats" title="xdc.runtime.Memory.Stats">xdc.runtime.Memory.Stats</a></tt>
849   structure and <tt>getStats</tt> fills in this structure.</div>
850 <div class="xdocText">This function is called by the <tt><a class="xdoc-link" href="../../../../xdc/runtime/Memory.html#get.Stats" title="xdc.runtime.Memory.getStats">xdc.runtime.Memory.getStats()</a></tt>
851   function.</div>
852 <div class="xdocSynSpacer">&nbsp;</div>
853 <a class="xdocAnchor" id="is.Blocking"></a>
854 <table class="xdocHdr"><tr>
855 <td class="xdocHdrTitle"><span class="xdoc-id">HeapBufMP_</span><span class="xdoc-id">isBlocking</span>()&nbsp;&nbsp;<small><span class="xdocSynSum">//&nbsp;instance</span></small></td>
856 <td class="xdocHdrArrow">
857 <a class="xdocHdrLink" href="../../../../ti/sdo/ipc/heaps/HeapBufMP.html" title="module HeapBufMP"><img class="xdocHdrArrow" src="../../../../Arrow_up.png"/></a></td>
858 </table>
859 <div class=xdocHdrIndex><a class=xdocHdrIndex title="right-click to capture" href="../../../../index.html#ti/sdo/ipc/heaps/HeapBufMP.html#is.Blocking">index URL</a></div>
860 <p class="xdocHdrSummaryDcl">Returns whether the heap may block during an <tt><a class="xdoc-link" href="HeapBufMP.html#alloc" title="alloc">alloc()</a></tt> or
861   <tt><a class="xdoc-link" href="HeapBufMP.html#free" title="free">free()</a></tt></p>
862 <span id='targ-synop'></span>
863 <table class="xdocLabel"><tr>
864 <td class="xdocLabelLeft"><tt><span class="xdoc-id-targ2dcl">C</span></tt> synopsis</td>
865 <td class="xdocLabelRight">target-domain</td>
866 </tr></table>
867 <div class="xdocSynTdcl">
868 <div class="xdocSynCode">
869 <tt></tt><tt></tt><span class="xdoc-kw2">Bool</span>&nbsp;<span class="xdoc-id">HeapBufMP_isBlocking</span>(<a class="xdoc-link" href="../../../../ti/sdo/ipc/heaps/HeapBufMP.html#per-instance_object_types" title="ti.sdo.ipc.heaps.HeapBufMP.Handle">HeapBufMP_Handle</a> handle);
870 </div>
871 </div>
872 <div class="xdocSynSpacer">&nbsp;</div>
873 <span id="xdoc-sect-1"></span>
874 <div class="xdocSect">ARGUMENTS</div>
875 <div class="xdocChild"><span class="xdocChildId">handle</span>
876 <span class="xdocChildSum">&#151;&nbsp;handle of a previously-created <tt>HeapBufMP</tt> instance object</span>
877 </div>
878 <span id="xdoc-sect-2"></span>
879 <div class="xdocSect">RETURNS</div>
880 <div class="xdocText">If the heap might block, <tt>TRUE</tt> is returned.
881                    If the heap does not block, <tt>FALSE</tt> is returned.</div>
882 <a class="xdocAnchor" id="per-instance_convertors"></a>
883 <table class="xdocHdr"><tr>
884 <td class="xdocHdrTitle"><span class="xdocSynSum">Instance Convertors</span></td>
885 <td class="xdocHdrArrow">
886 <a class="xdocHdrLink" href="../../../../ti/sdo/ipc/heaps/HeapBufMP.html" title="module HeapBufMP"><img class="xdocHdrArrow" src="../../../../Arrow_up.png"/></a></td>
887 </table>
888 <div class=xdocHdrIndex><a class=xdocHdrIndex title="right-click to capture" href="../../../../index.html#ti/sdo/ipc/heaps/HeapBufMP.html#per-instance_convertors">index URL</a></div>
889 <p class="xdocHdrSummary"></p>
890 <span id='targ-synop'></span>
891 <table class="xdocLabel"><tr>
892 <td class="xdocLabelLeft"><tt><span class="xdoc-id-targ2dcl">C</span></tt> synopsis</td>
893 <td class="xdocLabelRight">target-domain</td>
894 </tr></table>
895 <div class="xdocSynTdcl">
896 <div class="xdocSynCode">
897 <tt></tt><tt></tt><a class="xdoc-link" href="../../../../xdc/runtime/IHeap.html#per-instance_object_types" title="xdc.runtime.IHeap.Handle">IHeap_Handle</a> <span class="xdoc-id">HeapBufMP_Handle_upCast</span>(<a class="xdoc-link" href="../../../../ti/sdo/ipc/heaps/HeapBufMP.html#per-instance_object_types" title="ti.sdo.ipc.heaps.HeapBufMP.Handle">HeapBufMP_Handle</a> handle);
898 </div>
899 <div class='xdocSynSum'><tt></tt><tt></tt>//&nbsp;unconditionally move one level up the inheritance hierarchy</div>
900 <div class="xdocSynSpacer">&nbsp;</div>
901 <div class="xdocSynCode">
902 <tt></tt><tt></tt><a class="xdoc-link" href="../../../../ti/sdo/ipc/heaps/HeapBufMP.html#per-instance_object_types" title="ti.sdo.ipc.heaps.HeapBufMP.Handle">HeapBufMP_Handle</a> <span class="xdoc-id">HeapBufMP_Handle_downCast</span>(<a class="xdoc-link" href="../../../../xdc/runtime/IHeap.html#per-instance_object_types" title="xdc.runtime.IHeap.Handle">IHeap_Handle</a> handle);
903 </div>
904 <div class='xdocSynSum'><tt></tt><tt></tt>//&nbsp;conditionally move one level down the inheritance hierarchy; NULL upon failure</div>
905 </div>
906 <a class="xdocAnchor" id="per-instance_built-ins"></a>
907 <table class="xdocHdr"><tr>
908 <td class="xdocHdrTitle"><span class="xdocSynSum">Instance Built-Ins</span></td>
909 <td class="xdocHdrArrow">
910 <a class="xdocHdrLink" href="../../../../ti/sdo/ipc/heaps/HeapBufMP.html" title="module HeapBufMP"><img class="xdocHdrArrow" src="../../../../Arrow_up.png"/></a></td>
911 </table>
912 <div class=xdocHdrIndex><a class=xdocHdrIndex title="right-click to capture" href="../../../../index.html#ti/sdo/ipc/heaps/HeapBufMP.html#per-instance_built-ins">index URL</a></div>
913 <p class="xdocHdrSummary"></p>
914 <span id='targ-synop'></span>
915 <table class="xdocLabel"><tr>
916 <td class="xdocLabelLeft"><tt><span class="xdoc-id-targ2dcl">C</span></tt> synopsis</td>
917 <td class="xdocLabelRight">target-domain</td>
918 </tr></table>
919 <div class="xdocSynTdcl">
920 <div class="xdocSynCode">
921 <tt></tt><tt></tt><span class="xdoc-kw2">Int</span> <span class="xdoc-id">HeapBufMP_Object_count</span>();
922 </div>
923 <div class='xdocSynSum'><tt></tt><tt></tt>//&nbsp;The number of statically-created instance objects</div>
924 <div class="xdocSynSpacer">&nbsp;</div>
925 <div class="xdocSynCode">
926 <tt></tt><tt></tt><a class="xdoc-link" href="../../../../ti/sdo/ipc/heaps/HeapBufMP.html#per-instance_object_types" title="ti.sdo.ipc.heaps.HeapBufMP.Handle">HeapBufMP_Handle</a> <span class="xdoc-id">HeapBufMP_Object_get</span>(<a class="xdoc-link" href="../../../../ti/sdo/ipc/heaps/HeapBufMP.html#per-instance_object_types" title="ti.sdo.ipc.heaps.HeapBufMP.Object">HeapBufMP_Object</a> *array, <span class="xdoc-kw2">Int</span> i);
927 </div>
928 <div class='xdocSynSum'><tt></tt><tt></tt>//&nbsp;The handle of the i-th statically-created instance object (array == NULL)</div>
929 <div class="xdocSynSpacer">&nbsp;</div>
930 <div class="xdocSynCode">
931 <tt></tt><tt></tt><a class="xdoc-link" href="../../../../ti/sdo/ipc/heaps/HeapBufMP.html#per-instance_object_types" title="ti.sdo.ipc.heaps.HeapBufMP.Handle">HeapBufMP_Handle</a> <span class="xdoc-id">HeapBufMP_Object_first</span>();
932 </div>
933 <div class='xdocSynSum'><tt></tt><tt></tt>//&nbsp;The handle of the first dynamically-created instance object, or NULL</div>
934 <div class="xdocSynSpacer">&nbsp;</div>
935 <div class="xdocSynCode">
936 <tt></tt><tt></tt><a class="xdoc-link" href="../../../../ti/sdo/ipc/heaps/HeapBufMP.html#per-instance_object_types" title="ti.sdo.ipc.heaps.HeapBufMP.Handle">HeapBufMP_Handle</a> <span class="xdoc-id">HeapBufMP_Object_next</span>(<a class="xdoc-link" href="../../../../ti/sdo/ipc/heaps/HeapBufMP.html#per-instance_object_types" title="ti.sdo.ipc.heaps.HeapBufMP.Handle">HeapBufMP_Handle</a> handle);
937 </div>
938 <div class='xdocSynSum'><tt></tt><tt></tt>//&nbsp;The handle of the next dynamically-created instance object, or NULL</div>
939 <div class="xdocSynSpacer">&nbsp;</div>
940 <div class="xdocSynCode">
941 <tt></tt><tt></tt><a class="xdoc-link" href="../../../../xdc/runtime/IHeap.html#per-instance_object_types" title="xdc.runtime.IHeap.Handle">IHeap_Handle</a> <span class="xdoc-id">HeapBufMP_Object_heap</span>();
942 </div>
943 <div class='xdocSynSum'><tt></tt><tt></tt>//&nbsp;The heap used to allocate dynamically-created instance objects</div>
944 <div class="xdocSynSpacer">&nbsp;</div>
945 <div class="xdocSynCode">
946 <tt></tt><tt></tt><a class="xdoc-link" href="../../../../xdc/runtime/Types.html#.Label" title="xdc.runtime.Types.Label">Types_Label</a> *<span class="xdoc-id">HeapBufMP_Handle_label</span>(<a class="xdoc-link" href="../../../../ti/sdo/ipc/heaps/HeapBufMP.html#per-instance_object_types" title="ti.sdo.ipc.heaps.HeapBufMP.Handle">HeapBufMP_Handle</a> handle, <a class="xdoc-link" href="../../../../xdc/runtime/Types.html#.Label" title="xdc.runtime.Types.Label">Types_Label</a> *buf);
947 </div>
948 <div class='xdocSynSum'><tt></tt><tt></tt>//&nbsp;The label associated with this instance object</div>
949 <div class="xdocSynSpacer">&nbsp;</div>
950 <div class="xdocSynCode">
951 <tt></tt><tt></tt><span class="xdoc-kw2">String</span> <span class="xdoc-id">HeapBufMP_Handle_name</span>(<a class="xdoc-link" href="../../../../ti/sdo/ipc/heaps/HeapBufMP.html#per-instance_object_types" title="ti.sdo.ipc.heaps.HeapBufMP.Handle">HeapBufMP_Handle</a> handle);
952 </div>
953 <div class='xdocSynSum'><tt></tt><tt></tt>//&nbsp;The name of this instance object</div>
954 </div>
955 </div>
956 <div class="xdocSynSpacer">&nbsp;</div>
957 <span id='meta-synop'></span>
958 <table class="xdocLabel"><tr>
959 <td class="xdocLabelLeft"><tt><span class="xdoc-id-meta2"></span></tt>Configuration settings</td>
960 <td class="xdocLabelRight">sourced in <a class="xdocLink" href="../../../../ti/sdo/ipc/heaps/HeapBufMP-src.html"><span class="xdocLabelFile">ti/sdo/ipc/heaps/HeapBufMP.xdc</span></a></td>
961 </tr></table>
962 <div class="xdocSynM">
963 <div class="xdocSynCode">
964 <tt></tt><span class="xdoc-kw1">var</span> HeapBufMP = <span class="xdoc-kw3">xdc.useModule</span>(<span class="xdoc-id">'ti.sdo.ipc.heaps.HeapBufMP'</span>);
965 </div>
966 <div class='xdocSynHdr'>module-wide config parameters</div>
968 <div class="xdocSynCode">
969 <tt>&nbsp;&nbsp;&nbsp;&nbsp;</tt><tt></tt><a class="xdocSynGo" href="#meta.A_bad.Alignment">HeapBufMP.<span class="xdoc-id">A_badAlignment</span><span class="xdocSynHoverShadow"><span class="xdocSynHover">//&nbsp;Assert raised when freeing a block that isn't aligned properly</span></span></a> = <i><a class="xdoc-link" href="../../../../xdc/runtime/Assert.html#.Desc" title="xdc.runtime.Assert.Desc">Assert.Desc</a></i> {
970 </div>
971 <div class="xdocSynCode">
972 <tt>&nbsp;&nbsp;&nbsp;&nbsp;</tt><tt>&nbsp;&nbsp;&nbsp;&nbsp;</tt>msg: "A_badAlignment: Block being freed is not aligned properly "
973 </div>
974 <div class="xdocSynCode">
975 <tt>&nbsp;&nbsp;&nbsp;&nbsp;</tt><tt></tt>};
976 </div>
977 <div class="xdocSynCode">
978 <tt>&nbsp;&nbsp;&nbsp;&nbsp;</tt><tt></tt><a class="xdocSynGo" href="#meta.A_inv.Block.Freed">HeapBufMP.<span class="xdoc-id">A_invBlockFreed</span><span class="xdocSynHoverShadow"><span class="xdocSynHover">//&nbsp;Assert raised when freeing a block that is not in the buffer's range</span></span></a> = <i><a class="xdoc-link" href="../../../../xdc/runtime/Assert.html#.Desc" title="xdc.runtime.Assert.Desc">Assert.Desc</a></i> {
979 </div>
980 <div class="xdocSynCode">
981 <tt>&nbsp;&nbsp;&nbsp;&nbsp;</tt><tt>&nbsp;&nbsp;&nbsp;&nbsp;</tt>msg: "A_invBlockFreed: Invalid block being freed"
982 </div>
983 <div class="xdocSynCode">
984 <tt>&nbsp;&nbsp;&nbsp;&nbsp;</tt><tt></tt>};
985 </div>
986 <div class="xdocSynCode">
987 <tt>&nbsp;&nbsp;&nbsp;&nbsp;</tt><tt></tt><a class="xdocSynGo" href="#meta.E_align.Too.Large">HeapBufMP.<span class="xdoc-id">E_alignTooLarge</span><span class="xdocSynHoverShadow"><span class="xdocSynHover">//&nbsp;Error raised when a requested alignment is too large</span></span></a> = <i><a class="xdoc-link" href="../../../../xdc/runtime/Error.html#.Desc" title="xdc.runtime.Error.Desc">Error.Desc</a></i> {
988 </div>
989 <div class="xdocSynCode">
990 <tt>&nbsp;&nbsp;&nbsp;&nbsp;</tt><tt>&nbsp;&nbsp;&nbsp;&nbsp;</tt>msg: "E_alignTooLarge: Requested alignment size of %u is greater than %u"
991 </div>
992 <div class="xdocSynCode">
993 <tt>&nbsp;&nbsp;&nbsp;&nbsp;</tt><tt></tt>};
994 </div>
995 <div class="xdocSynCode">
996 <tt>&nbsp;&nbsp;&nbsp;&nbsp;</tt><tt></tt><a class="xdocSynGo" href="#meta.E_exact.Fail">HeapBufMP.<span class="xdoc-id">E_exactFail</span><span class="xdocSynHoverShadow"><span class="xdocSynHover">//&nbsp;Error raised when exact matching failed</span></span></a> = <i><a class="xdoc-link" href="../../../../xdc/runtime/Error.html#.Desc" title="xdc.runtime.Error.Desc">Error.Desc</a></i> {
997 </div>
998 <div class="xdocSynCode">
999 <tt>&nbsp;&nbsp;&nbsp;&nbsp;</tt><tt>&nbsp;&nbsp;&nbsp;&nbsp;</tt>msg: "E_exactFail: Exact allocation failed (requested size = %u and buffer size = %u)"
1000 </div>
1001 <div class="xdocSynCode">
1002 <tt>&nbsp;&nbsp;&nbsp;&nbsp;</tt><tt></tt>};
1003 </div>
1004 <div class="xdocSynCode">
1005 <tt>&nbsp;&nbsp;&nbsp;&nbsp;</tt><tt></tt><a class="xdocSynGo" href="#meta.E_no.Blocks.Left">HeapBufMP.<span class="xdoc-id">E_noBlocksLeft</span><span class="xdocSynHoverShadow"><span class="xdocSynHover">//&nbsp;Error raised when there are no more blocks left in the buffer</span></span></a> = <i><a class="xdoc-link" href="../../../../xdc/runtime/Error.html#.Desc" title="xdc.runtime.Error.Desc">Error.Desc</a></i> {
1006 </div>
1007 <div class="xdocSynCode">
1008 <tt>&nbsp;&nbsp;&nbsp;&nbsp;</tt><tt>&nbsp;&nbsp;&nbsp;&nbsp;</tt>msg: "E_noBlocksLeft: No more blocks left in buffer (handle = 0x%x, requested size = %u)"
1009 </div>
1010 <div class="xdocSynCode">
1011 <tt>&nbsp;&nbsp;&nbsp;&nbsp;</tt><tt></tt>};
1012 </div>
1013 <div class="xdocSynCode">
1014 <tt>&nbsp;&nbsp;&nbsp;&nbsp;</tt><tt></tt><a class="xdocSynGo" href="#meta.E_size.Too.Large">HeapBufMP.<span class="xdoc-id">E_sizeTooLarge</span><span class="xdocSynHoverShadow"><span class="xdocSynHover">//&nbsp;Error raised when a requested alloc size is too large</span></span></a> = <i><a class="xdoc-link" href="../../../../xdc/runtime/Error.html#.Desc" title="xdc.runtime.Error.Desc">Error.Desc</a></i> {
1015 </div>
1016 <div class="xdocSynCode">
1017 <tt>&nbsp;&nbsp;&nbsp;&nbsp;</tt><tt>&nbsp;&nbsp;&nbsp;&nbsp;</tt>msg: "E_sizeTooLarge: Requested alloc size of %u is greater than %u"
1018 </div>
1019 <div class="xdocSynCode">
1020 <tt>&nbsp;&nbsp;&nbsp;&nbsp;</tt><tt></tt>};
1021 </div>
1022 <div class="xdocSynCode">
1023 <tt>&nbsp;&nbsp;&nbsp;&nbsp;</tt><tt></tt><a class="xdocSynGo" href="#metamax.Name.Len">HeapBufMP.<span class="xdoc-id">maxNameLen</span><span class="xdocSynHoverShadow"><span class="xdocSynHover">//&nbsp;Maximum length for heap names</span></span></a> = <i><span class="xdoc-kw2">UInt</span></i> 32;
1024 </div>
1025 <div class="xdocSynCode">
1026 <tt>&nbsp;&nbsp;&nbsp;&nbsp;</tt><tt></tt><a class="xdocSynGo" href="#metatrack.Allocs">HeapBufMP.<span class="xdoc-id">trackAllocs</span><span class="xdocSynHoverShadow"><span class="xdocSynHover">//&nbsp;Track the number of allocated blocks</span></span></a> = <i><span class="xdoc-kw2">Bool</span></i> <span class="xdoc-kw2">false</span>;
1027 </div>
1028 <div class="xdocSynSpacer">&nbsp;</div>
1029 <div class="xdocSynCode">
1030 <tt>&nbsp;&nbsp;&nbsp;&nbsp;</tt><tt></tt><a class="xdocSynGo" href="#common$">HeapBufMP.<span class="xdoc-id">common$</span><span class="xdocSynHoverShadow"><span class="xdocSynHover">//&nbsp;Common module configuration parameters</span></span></a> = <i><a class="xdoc-link" href="../../../../xdc/runtime/Types.html#.Common$" title="xdc.runtime.Types.Common$">Types.Common$</a></i> <span class="xdoc-kw2">undefined</span>;
1031 </div>
1032 <div class="xdocSynCode">
1033 <tt>&nbsp;&nbsp;&nbsp;&nbsp;</tt><tt></tt><a class="xdocSynGo" href="#max.Runtime.Entries">HeapBufMP.<span class="xdoc-id">maxRuntimeEntries</span><span class="xdocSynHoverShadow"><span class="xdocSynHover">//&nbsp;Maximum runtime entries</span></span></a> = <i><span class="xdoc-kw2">UInt</span></i> <a class="xdoc-link" href="../../../../ti/sdo/utils/NameServer.html#.A.L.L.O.W.G.R.O.W.T.H" title="ti.sdo.utils.NameServer.ALLOWGROWTH">NameServer.ALLOWGROWTH</a>;
1034 </div>
1035 <div class="xdocSynCode">
1036 <tt>&nbsp;&nbsp;&nbsp;&nbsp;</tt><tt></tt><a class="xdocSynGo" href="#table.Section">HeapBufMP.<span class="xdoc-id">tableSection</span><span class="xdocSynHoverShadow"><span class="xdocSynHover">//&nbsp;Section name is used to place the names table</span></span></a> = <i><span class="xdoc-kw2">String</span></i> <span class="xdoc-kw2">null</span>;
1037 </div>
1038 <div class='xdocSynHdr'>per-instance config parameters</div>
1040 <div class="xdocSynCode">
1041 <tt>&nbsp;&nbsp;&nbsp;&nbsp;</tt><tt></tt><span class="xdoc-kw1">var</span> params = <span class="xdoc-kw1">new</span> HeapBufMP.<a class="xdocSynGo" href="#metaper-instance_config_parameters"><span class="xdoc-id">Params</span><span class="xdocSynHoverShadow"><span class="xdocSynHover">//&nbsp;Instance config-params object</span></span></a>;
1042 </div>
1043 <div class="xdocSynCode">
1044 <tt>&nbsp;&nbsp;&nbsp;&nbsp;</tt><tt>&nbsp;&nbsp;&nbsp;&nbsp;</tt>params.<a class="xdocSynGo" href="#metaalign"><span class="xdoc-id">align</span><span class="xdocSynHoverShadow"><span class="xdocSynHover">//&nbsp;Alignment (in MAUs) of each block</span></span></a> = <i><span class="xdoc-kw2">SizeT</span></i> 0;
1045 </div>
1046 <div class="xdocSynCode">
1047 <tt>&nbsp;&nbsp;&nbsp;&nbsp;</tt><tt>&nbsp;&nbsp;&nbsp;&nbsp;</tt>params.<a class="xdocSynGo" href="#metablock.Size"><span class="xdoc-id">blockSize</span><span class="xdocSynHoverShadow"><span class="xdocSynHover">//&nbsp;Size (in MAUs) of each block</span></span></a> = <i><span class="xdoc-kw2">SizeT</span></i> 0;
1048 </div>
1049 <div class="xdocSynCode">
1050 <tt>&nbsp;&nbsp;&nbsp;&nbsp;</tt><tt>&nbsp;&nbsp;&nbsp;&nbsp;</tt>params.<a class="xdocSynGo" href="#metaexact"><span class="xdoc-id">exact</span><span class="xdocSynHoverShadow"><span class="xdocSynHover">//&nbsp;Use exact matching</span></span></a> = <i><span class="xdoc-kw2">Bool</span></i> <span class="xdoc-kw2">false</span>;
1051 </div>
1052 <div class="xdocSynCode">
1053 <tt>&nbsp;&nbsp;&nbsp;&nbsp;</tt><tt>&nbsp;&nbsp;&nbsp;&nbsp;</tt>params.<a class="xdocSynGo" href="#metagate"><span class="xdoc-id">gate</span><span class="xdocSynHoverShadow"><span class="xdocSynHover">//&nbsp;GateMP used for critical region management of the shared memory</span></span></a> = <i><a class="xdoc-link" href="../../../../ti/sdo/ipc/GateMP.html#per-instance_object_types" title="ti.sdo.ipc.GateMP.Handle">GateMP.Handle</a></i> <span class="xdoc-kw2">null</span>;
1054 </div>
1055 <div class="xdocSynCode">
1056 <tt>&nbsp;&nbsp;&nbsp;&nbsp;</tt><tt>&nbsp;&nbsp;&nbsp;&nbsp;</tt>params.<a class="xdocSynGo" href="#metaname"><span class="xdoc-id">name</span><span class="xdocSynHoverShadow"><span class="xdocSynHover">//&nbsp;Name of this instance</span></span></a> = <i><span class="xdoc-kw2">String</span></i> <span class="xdoc-kw2">null</span>;
1057 </div>
1058 <div class="xdocSynCode">
1059 <tt>&nbsp;&nbsp;&nbsp;&nbsp;</tt><tt>&nbsp;&nbsp;&nbsp;&nbsp;</tt>params.<a class="xdocSynGo" href="#metanum.Blocks"><span class="xdoc-id">numBlocks</span><span class="xdocSynHoverShadow"><span class="xdocSynHover">//&nbsp;Number of fixed-size blocks</span></span></a> = <i><span class="xdoc-kw2">UInt</span></i> 0;
1060 </div>
1061 <div class="xdocSynCode">
1062 <tt>&nbsp;&nbsp;&nbsp;&nbsp;</tt><tt>&nbsp;&nbsp;&nbsp;&nbsp;</tt>params.<a class="xdocSynGo" href="#metaregion.Id"><span class="xdoc-id">regionId</span><span class="xdocSynHoverShadow"><span class="xdocSynHover">//&nbsp;Shared region ID</span></span></a> = <i><span class="xdoc-kw2">UInt16</span></i> 0;
1063 </div>
1064 <div class='xdocSynHdr'>per-instance creation</div>
1066 <div class="xdocSynCode">
1067 <tt>&nbsp;&nbsp;&nbsp;&nbsp;</tt><tt></tt><span class="xdoc-kw1">var</span> inst = HeapBufMP.<a class="xdocSynGo" href="#metaper-instance_creation"><span class="xdoc-id">create</span><span class="xdocSynHoverShadow"><span class="xdocSynHover">//&nbsp;Create an instance-object</span></span></a>(params);
1068 </div>
1069 <div class="xdocSynSpacer">&nbsp;</div>
1070 </div>
1071 <div id="xdocSep">
1072 </div>
1073 <div id="xdocMetaElems">
1074 <div class="xdocSynSpacer">&nbsp;</div>
1075 <a class="xdocAnchor" id="meta.A_bad.Alignment"></a>
1076 <table class="xdocHdr"><tr>
1077 <td class="xdocHdrTitle"><span class="xdoc-kw1">config</span> <span class="xdoc-id">HeapBufMP.</span><span class="xdoc-id">A_badAlignment</span>&nbsp;&nbsp;<small><span class="xdocSynSum">//&nbsp;module-wide</span></small></td>
1078 <td class="xdocHdrArrow">
1079 <a class="xdocHdrLink" href="../../../../ti/sdo/ipc/heaps/HeapBufMP.html" title="module HeapBufMP"><img class="xdocHdrArrow" src="../../../../Arrow_up.png"/></a></td>
1080 </table>
1081 <div class=xdocHdrIndex><a class=xdocHdrIndex title="right-click to capture" href="../../../../index.html#ti/sdo/ipc/heaps/HeapBufMP.html#.A_bad.Alignment">index URL</a></div>
1082 <p class="xdocHdrSummaryDcl">Assert raised when freeing a block that isn't aligned properly</p>
1083 <span id='meta-synop'></span>
1084 <table class="xdocLabel"><tr>
1085 <td class="xdocLabelLeft"><tt><span class="xdoc-id-meta2dcl"></span></tt>Configuration settings</td>
1086 <td class="xdocLabelRight"></td>
1087 </tr></table>
1088 <div class="xdocSynMdcl">
1089 <div class="xdocSynCode">
1090 <tt></tt><tt></tt>HeapBufMP.<span class="xdoc-id">A_badAlignment</span> = <i><a class="xdoc-link" href="../../../../xdc/runtime/Assert.html#.Desc" title="xdc.runtime.Assert.Desc">Assert.Desc</a></i> {
1091 </div>
1092 <div class="xdocSynCode">
1093 <tt></tt><tt>&nbsp;&nbsp;&nbsp;&nbsp;</tt>msg: "A_badAlignment: Block being freed is not aligned properly "
1094 </div>
1095 <div class="xdocSynCode">
1096 <tt></tt><tt></tt>};
1097 </div>
1098 </div>
1099 <div class="xdocSynSpacer">&nbsp;</div>
1100 <div class="xdocSect">C SYNOPSIS</div>
1101 <div class="xdocText"><a class="xdoc-link" href="#.A_bad.Alignment" title="HeapBufMP_A_badAlignment">HeapBufMP_A_badAlignment</a></div>
1102 <div class="xdocSynSpacer">&nbsp;</div>
1103 <a class="xdocAnchor" id="meta.A_inv.Block.Freed"></a>
1104 <table class="xdocHdr"><tr>
1105 <td class="xdocHdrTitle"><span class="xdoc-kw1">config</span> <span class="xdoc-id">HeapBufMP.</span><span class="xdoc-id">A_invBlockFreed</span>&nbsp;&nbsp;<small><span class="xdocSynSum">//&nbsp;module-wide</span></small></td>
1106 <td class="xdocHdrArrow">
1107 <a class="xdocHdrLink" href="../../../../ti/sdo/ipc/heaps/HeapBufMP.html" title="module HeapBufMP"><img class="xdocHdrArrow" src="../../../../Arrow_up.png"/></a></td>
1108 </table>
1109 <div class=xdocHdrIndex><a class=xdocHdrIndex title="right-click to capture" href="../../../../index.html#ti/sdo/ipc/heaps/HeapBufMP.html#.A_inv.Block.Freed">index URL</a></div>
1110 <p class="xdocHdrSummaryDcl">Assert raised when freeing a block that is not in the buffer's range</p>
1111 <span id='meta-synop'></span>
1112 <table class="xdocLabel"><tr>
1113 <td class="xdocLabelLeft"><tt><span class="xdoc-id-meta2dcl"></span></tt>Configuration settings</td>
1114 <td class="xdocLabelRight"></td>
1115 </tr></table>
1116 <div class="xdocSynMdcl">
1117 <div class="xdocSynCode">
1118 <tt></tt><tt></tt>HeapBufMP.<span class="xdoc-id">A_invBlockFreed</span> = <i><a class="xdoc-link" href="../../../../xdc/runtime/Assert.html#.Desc" title="xdc.runtime.Assert.Desc">Assert.Desc</a></i> {
1119 </div>
1120 <div class="xdocSynCode">
1121 <tt></tt><tt>&nbsp;&nbsp;&nbsp;&nbsp;</tt>msg: "A_invBlockFreed: Invalid block being freed"
1122 </div>
1123 <div class="xdocSynCode">
1124 <tt></tt><tt></tt>};
1125 </div>
1126 </div>
1127 <div class="xdocSynSpacer">&nbsp;</div>
1128 <div class="xdocSect">C SYNOPSIS</div>
1129 <div class="xdocText"><a class="xdoc-link" href="#.A_inv.Block.Freed" title="HeapBufMP_A_invBlockFreed">HeapBufMP_A_invBlockFreed</a></div>
1130 <div class="xdocSynSpacer">&nbsp;</div>
1131 <a class="xdocAnchor" id="meta.E_align.Too.Large"></a>
1132 <table class="xdocHdr"><tr>
1133 <td class="xdocHdrTitle"><span class="xdoc-kw1">config</span> <span class="xdoc-id">HeapBufMP.</span><span class="xdoc-id">E_alignTooLarge</span>&nbsp;&nbsp;<small><span class="xdocSynSum">//&nbsp;module-wide</span></small></td>
1134 <td class="xdocHdrArrow">
1135 <a class="xdocHdrLink" href="../../../../ti/sdo/ipc/heaps/HeapBufMP.html" title="module HeapBufMP"><img class="xdocHdrArrow" src="../../../../Arrow_up.png"/></a></td>
1136 </table>
1137 <div class=xdocHdrIndex><a class=xdocHdrIndex title="right-click to capture" href="../../../../index.html#ti/sdo/ipc/heaps/HeapBufMP.html#.E_align.Too.Large">index URL</a></div>
1138 <p class="xdocHdrSummaryDcl">Error raised when a requested alignment is too large</p>
1139 <span id='meta-synop'></span>
1140 <table class="xdocLabel"><tr>
1141 <td class="xdocLabelLeft"><tt><span class="xdoc-id-meta2dcl"></span></tt>Configuration settings</td>
1142 <td class="xdocLabelRight"></td>
1143 </tr></table>
1144 <div class="xdocSynMdcl">
1145 <div class="xdocSynCode">
1146 <tt></tt><tt></tt>HeapBufMP.<span class="xdoc-id">E_alignTooLarge</span> = <i><a class="xdoc-link" href="../../../../xdc/runtime/Error.html#.Desc" title="xdc.runtime.Error.Desc">Error.Desc</a></i> {
1147 </div>
1148 <div class="xdocSynCode">
1149 <tt></tt><tt>&nbsp;&nbsp;&nbsp;&nbsp;</tt>msg: "E_alignTooLarge: Requested alignment size of %u is greater than %u"
1150 </div>
1151 <div class="xdocSynCode">
1152 <tt></tt><tt></tt>};
1153 </div>
1154 </div>
1155 <div class="xdocSynSpacer">&nbsp;</div>
1156 <div class="xdocSect">C SYNOPSIS</div>
1157 <div class="xdocText"><a class="xdoc-link" href="#.E_align.Too.Large" title="HeapBufMP_E_alignTooLarge">HeapBufMP_E_alignTooLarge</a></div>
1158 <div class="xdocSynSpacer">&nbsp;</div>
1159 <a class="xdocAnchor" id="meta.E_exact.Fail"></a>
1160 <table class="xdocHdr"><tr>
1161 <td class="xdocHdrTitle"><span class="xdoc-kw1">config</span> <span class="xdoc-id">HeapBufMP.</span><span class="xdoc-id">E_exactFail</span>&nbsp;&nbsp;<small><span class="xdocSynSum">//&nbsp;module-wide</span></small></td>
1162 <td class="xdocHdrArrow">
1163 <a class="xdocHdrLink" href="../../../../ti/sdo/ipc/heaps/HeapBufMP.html" title="module HeapBufMP"><img class="xdocHdrArrow" src="../../../../Arrow_up.png"/></a></td>
1164 </table>
1165 <div class=xdocHdrIndex><a class=xdocHdrIndex title="right-click to capture" href="../../../../index.html#ti/sdo/ipc/heaps/HeapBufMP.html#.E_exact.Fail">index URL</a></div>
1166 <p class="xdocHdrSummaryDcl">Error raised when exact matching failed</p>
1167 <span id='meta-synop'></span>
1168 <table class="xdocLabel"><tr>
1169 <td class="xdocLabelLeft"><tt><span class="xdoc-id-meta2dcl"></span></tt>Configuration settings</td>
1170 <td class="xdocLabelRight"></td>
1171 </tr></table>
1172 <div class="xdocSynMdcl">
1173 <div class="xdocSynCode">
1174 <tt></tt><tt></tt>HeapBufMP.<span class="xdoc-id">E_exactFail</span> = <i><a class="xdoc-link" href="../../../../xdc/runtime/Error.html#.Desc" title="xdc.runtime.Error.Desc">Error.Desc</a></i> {
1175 </div>
1176 <div class="xdocSynCode">
1177 <tt></tt><tt>&nbsp;&nbsp;&nbsp;&nbsp;</tt>msg: "E_exactFail: Exact allocation failed (requested size = %u and buffer size = %u)"
1178 </div>
1179 <div class="xdocSynCode">
1180 <tt></tt><tt></tt>};
1181 </div>
1182 </div>
1183 <div class="xdocSynSpacer">&nbsp;</div>
1184 <div class="xdocSect">C SYNOPSIS</div>
1185 <div class="xdocText"><a class="xdoc-link" href="#.E_exact.Fail" title="HeapBufMP_E_exactFail">HeapBufMP_E_exactFail</a></div>
1186 <div class="xdocSynSpacer">&nbsp;</div>
1187 <a class="xdocAnchor" id="meta.E_no.Blocks.Left"></a>
1188 <table class="xdocHdr"><tr>
1189 <td class="xdocHdrTitle"><span class="xdoc-kw1">config</span> <span class="xdoc-id">HeapBufMP.</span><span class="xdoc-id">E_noBlocksLeft</span>&nbsp;&nbsp;<small><span class="xdocSynSum">//&nbsp;module-wide</span></small></td>
1190 <td class="xdocHdrArrow">
1191 <a class="xdocHdrLink" href="../../../../ti/sdo/ipc/heaps/HeapBufMP.html" title="module HeapBufMP"><img class="xdocHdrArrow" src="../../../../Arrow_up.png"/></a></td>
1192 </table>
1193 <div class=xdocHdrIndex><a class=xdocHdrIndex title="right-click to capture" href="../../../../index.html#ti/sdo/ipc/heaps/HeapBufMP.html#.E_no.Blocks.Left">index URL</a></div>
1194 <p class="xdocHdrSummaryDcl">Error raised when there are no more blocks left in the buffer</p>
1195 <span id='meta-synop'></span>
1196 <table class="xdocLabel"><tr>
1197 <td class="xdocLabelLeft"><tt><span class="xdoc-id-meta2dcl"></span></tt>Configuration settings</td>
1198 <td class="xdocLabelRight"></td>
1199 </tr></table>
1200 <div class="xdocSynMdcl">
1201 <div class="xdocSynCode">
1202 <tt></tt><tt></tt>HeapBufMP.<span class="xdoc-id">E_noBlocksLeft</span> = <i><a class="xdoc-link" href="../../../../xdc/runtime/Error.html#.Desc" title="xdc.runtime.Error.Desc">Error.Desc</a></i> {
1203 </div>
1204 <div class="xdocSynCode">
1205 <tt></tt><tt>&nbsp;&nbsp;&nbsp;&nbsp;</tt>msg: "E_noBlocksLeft: No more blocks left in buffer (handle = 0x%x, requested size = %u)"
1206 </div>
1207 <div class="xdocSynCode">
1208 <tt></tt><tt></tt>};
1209 </div>
1210 </div>
1211 <div class="xdocSynSpacer">&nbsp;</div>
1212 <div class="xdocSect">C SYNOPSIS</div>
1213 <div class="xdocText"><a class="xdoc-link" href="#.E_no.Blocks.Left" title="HeapBufMP_E_noBlocksLeft">HeapBufMP_E_noBlocksLeft</a></div>
1214 <div class="xdocSynSpacer">&nbsp;</div>
1215 <a class="xdocAnchor" id="meta.E_size.Too.Large"></a>
1216 <table class="xdocHdr"><tr>
1217 <td class="xdocHdrTitle"><span class="xdoc-kw1">config</span> <span class="xdoc-id">HeapBufMP.</span><span class="xdoc-id">E_sizeTooLarge</span>&nbsp;&nbsp;<small><span class="xdocSynSum">//&nbsp;module-wide</span></small></td>
1218 <td class="xdocHdrArrow">
1219 <a class="xdocHdrLink" href="../../../../ti/sdo/ipc/heaps/HeapBufMP.html" title="module HeapBufMP"><img class="xdocHdrArrow" src="../../../../Arrow_up.png"/></a></td>
1220 </table>
1221 <div class=xdocHdrIndex><a class=xdocHdrIndex title="right-click to capture" href="../../../../index.html#ti/sdo/ipc/heaps/HeapBufMP.html#.E_size.Too.Large">index URL</a></div>
1222 <p class="xdocHdrSummaryDcl">Error raised when a requested alloc size is too large</p>
1223 <span id='meta-synop'></span>
1224 <table class="xdocLabel"><tr>
1225 <td class="xdocLabelLeft"><tt><span class="xdoc-id-meta2dcl"></span></tt>Configuration settings</td>
1226 <td class="xdocLabelRight"></td>
1227 </tr></table>
1228 <div class="xdocSynMdcl">
1229 <div class="xdocSynCode">
1230 <tt></tt><tt></tt>HeapBufMP.<span class="xdoc-id">E_sizeTooLarge</span> = <i><a class="xdoc-link" href="../../../../xdc/runtime/Error.html#.Desc" title="xdc.runtime.Error.Desc">Error.Desc</a></i> {
1231 </div>
1232 <div class="xdocSynCode">
1233 <tt></tt><tt>&nbsp;&nbsp;&nbsp;&nbsp;</tt>msg: "E_sizeTooLarge: Requested alloc size of %u is greater than %u"
1234 </div>
1235 <div class="xdocSynCode">
1236 <tt></tt><tt></tt>};
1237 </div>
1238 </div>
1239 <div class="xdocSynSpacer">&nbsp;</div>
1240 <div class="xdocSect">C SYNOPSIS</div>
1241 <div class="xdocText"><a class="xdoc-link" href="#.E_size.Too.Large" title="HeapBufMP_E_sizeTooLarge">HeapBufMP_E_sizeTooLarge</a></div>
1242 <div class="xdocSynSpacer">&nbsp;</div>
1243 <a class="xdocAnchor" id="metamax.Name.Len"></a>
1244 <table class="xdocHdr"><tr>
1245 <td class="xdocHdrTitle"><span class="xdoc-kw1">config</span> <span class="xdoc-id">HeapBufMP.</span><span class="xdoc-id">maxNameLen</span>&nbsp;&nbsp;<small><span class="xdocSynSum">//&nbsp;module-wide</span></small></td>
1246 <td class="xdocHdrArrow">
1247 <a class="xdocHdrLink" href="../../../../ti/sdo/ipc/heaps/HeapBufMP.html" title="module HeapBufMP"><img class="xdocHdrArrow" src="../../../../Arrow_up.png"/></a></td>
1248 </table>
1249 <div class=xdocHdrIndex><a class=xdocHdrIndex title="right-click to capture" href="../../../../index.html#ti/sdo/ipc/heaps/HeapBufMP.html#max.Name.Len">index URL</a></div>
1250 <p class="xdocHdrSummaryDcl">Maximum length for heap names</p>
1251 <span id='meta-synop'></span>
1252 <table class="xdocLabel"><tr>
1253 <td class="xdocLabelLeft"><tt><span class="xdoc-id-meta2dcl"></span></tt>Configuration settings</td>
1254 <td class="xdocLabelRight"></td>
1255 </tr></table>
1256 <div class="xdocSynMdcl">
1257 <div class="xdocSynCode">
1258 <tt></tt><tt></tt>HeapBufMP.<span class="xdoc-id">maxNameLen</span> = <i><span class="xdoc-kw2">UInt</span></i> 32;
1259 </div>
1260 </div>
1261 <div class="xdocSynSpacer">&nbsp;</div>
1262 <div class="xdocSect">C SYNOPSIS</div>
1263 <div class="xdocText"><a class="xdoc-link" href="#max.Name.Len" title="HeapBufMP_maxNameLen">HeapBufMP_maxNameLen</a></div>
1264 <div class="xdocSynSpacer">&nbsp;</div>
1265 <a class="xdocAnchor" id="metatrack.Allocs"></a>
1266 <table class="xdocHdr"><tr>
1267 <td class="xdocHdrTitle"><span class="xdoc-kw1">config</span> <span class="xdoc-id">HeapBufMP.</span><span class="xdoc-id">trackAllocs</span>&nbsp;&nbsp;<small><span class="xdocSynSum">//&nbsp;module-wide</span></small></td>
1268 <td class="xdocHdrArrow">
1269 <a class="xdocHdrLink" href="../../../../ti/sdo/ipc/heaps/HeapBufMP.html" title="module HeapBufMP"><img class="xdocHdrArrow" src="../../../../Arrow_up.png"/></a></td>
1270 </table>
1271 <div class=xdocHdrIndex><a class=xdocHdrIndex title="right-click to capture" href="../../../../index.html#ti/sdo/ipc/heaps/HeapBufMP.html#track.Allocs">index URL</a></div>
1272 <p class="xdocHdrSummaryDcl">Track the number of allocated blocks</p>
1273 <span id='meta-synop'></span>
1274 <table class="xdocLabel"><tr>
1275 <td class="xdocLabelLeft"><tt><span class="xdoc-id-meta2dcl"></span></tt>Configuration settings</td>
1276 <td class="xdocLabelRight"></td>
1277 </tr></table>
1278 <div class="xdocSynMdcl">
1279 <div class="xdocSynCode">
1280 <tt></tt><tt></tt>HeapBufMP.<span class="xdoc-id">trackAllocs</span> = <i><span class="xdoc-kw2">Bool</span></i> <span class="xdoc-kw2">false</span>;
1281 </div>
1282 </div>
1283 <div class="xdocSynSpacer">&nbsp;</div>
1284 <span id="xdoc-sect-1"></span>
1285 <div class="xdocSect">DETAILS</div>
1286 <div class="xdocText">This will enable/disable the tracking of the current and maximum number
1287   of allocations for a HeapBufMP instance.  This maximum refers to the
1288   "all time" maximum number of allocations for the history of a HeapBufMP
1289   instance.</div>
1290 <div class="xdocText">Tracking allocations might adversely affect performance when allocating
1291   and/or freeing.  This is especially true if cache is enabled for the
1292   shared region.  If this feature is not needed, setting this to false
1293   avoids the performance penalty.</div>
1294 <div class="xdocSect">C SYNOPSIS</div>
1295 <div class="xdocText"><a class="xdoc-link" href="#track.Allocs" title="HeapBufMP_trackAllocs">HeapBufMP_trackAllocs</a></div>
1296 <div class="xdocSynSpacer">&nbsp;</div>
1297 <a class="xdocAnchor" id="common$"></a>
1298 <table class="xdocHdr"><tr>
1299 <td class="xdocHdrTitle"><span class="xdoc-kw1">metaonly </span><span class="xdoc-kw1">config</span> <span class="xdoc-id">HeapBufMP.</span><span class="xdoc-id">common$</span>&nbsp;&nbsp;<small><span class="xdocSynSum">//&nbsp;module-wide</span></small></td>
1300 <td class="xdocHdrArrow">
1301 <a class="xdocHdrLink" href="../../../../ti/sdo/ipc/heaps/HeapBufMP.html" title="module HeapBufMP"><img class="xdocHdrArrow" src="../../../../Arrow_up.png"/></a></td>
1302 </table>
1303 <div class=xdocHdrIndex><a class=xdocHdrIndex title="right-click to capture" href="../../../../index.html#ti/sdo/ipc/heaps/HeapBufMP.html#common$">index URL</a></div>
1304 <p class="xdocHdrSummaryDcl">Common module configuration parameters</p>
1305 <span id='meta-synop'></span>
1306 <table class="xdocLabel"><tr>
1307 <td class="xdocLabelLeft"><tt><span class="xdoc-id-meta2dcl"></span></tt>Configuration settings</td>
1308 <td class="xdocLabelRight"></td>
1309 </tr></table>
1310 <div class="xdocSynMdcl">
1311 <div class="xdocSynCode">
1312 <tt></tt><tt></tt>HeapBufMP.<span class="xdoc-id">common$</span> = <i><a class="xdoc-link" href="../../../../xdc/runtime/Types.html#.Common$" title="xdc.runtime.Types.Common$">Types.Common$</a></i> <span class="xdoc-kw2">undefined</span>;
1313 </div>
1314 </div>
1315 <div class="xdocSynSpacer">&nbsp;</div>
1316 <span id="xdoc-sect-1"></span>
1317 <div class="xdocSect">DETAILS</div>
1318 <div class="xdocText">All modules have this configuration parameter.  Its name
1319   contains the '$' character to ensure it does not conflict with
1320   configuration parameters declared by the module.  This allows
1321   new configuration parameters to be added in the future without
1322   any chance of breaking existing modules.</div>
1323 <div class="xdocSynSpacer">&nbsp;</div>
1324 <a class="xdocAnchor" id="max.Runtime.Entries"></a>
1325 <table class="xdocHdr"><tr>
1326 <td class="xdocHdrTitle"><span class="xdoc-kw1">metaonly </span><span class="xdoc-kw1">config</span> <span class="xdoc-id">HeapBufMP.</span><span class="xdoc-id">maxRuntimeEntries</span>&nbsp;&nbsp;<small><span class="xdocSynSum">//&nbsp;module-wide</span></small></td>
1327 <td class="xdocHdrArrow">
1328 <a class="xdocHdrLink" href="../../../../ti/sdo/ipc/heaps/HeapBufMP.html" title="module HeapBufMP"><img class="xdocHdrArrow" src="../../../../Arrow_up.png"/></a></td>
1329 </table>
1330 <div class=xdocHdrIndex><a class=xdocHdrIndex title="right-click to capture" href="../../../../index.html#ti/sdo/ipc/heaps/HeapBufMP.html#max.Runtime.Entries">index URL</a></div>
1331 <p class="xdocHdrSummaryDcl">Maximum runtime entries</p>
1332 <span id='meta-synop'></span>
1333 <table class="xdocLabel"><tr>
1334 <td class="xdocLabelLeft"><tt><span class="xdoc-id-meta2dcl"></span></tt>Configuration settings</td>
1335 <td class="xdocLabelRight"></td>
1336 </tr></table>
1337 <div class="xdocSynMdcl">
1338 <div class="xdocSynCode">
1339 <tt></tt><tt></tt>HeapBufMP.<span class="xdoc-id">maxRuntimeEntries</span> = <i><span class="xdoc-kw2">UInt</span></i> <a class="xdoc-link" href="../../../../ti/sdo/utils/NameServer.html#.A.L.L.O.W.G.R.O.W.T.H" title="ti.sdo.utils.NameServer.ALLOWGROWTH">NameServer.ALLOWGROWTH</a>;
1340 </div>
1341 </div>
1342 <div class="xdocSynSpacer">&nbsp;</div>
1343 <span id="xdoc-sect-1"></span>
1344 <div class="xdocSect">DETAILS</div>
1345 <div class="xdocText">Maximum number of HeapBufMP's that can be dynamically created and
1346   added to the NameServer.</div>
1347 <div class="xdocText">To minimize the amount of runtime allocation, this parameter allows
1348   the pre-allocation of memory for the HeapBufMP's NameServer table.
1349   The default is to allow growth (i.e. memory allocation when
1350   creating a new instance).</div>
1351 <div class="xdocSynSpacer">&nbsp;</div>
1352 <a class="xdocAnchor" id="table.Section"></a>
1353 <table class="xdocHdr"><tr>
1354 <td class="xdocHdrTitle"><span class="xdoc-kw1">metaonly </span><span class="xdoc-kw1">config</span> <span class="xdoc-id">HeapBufMP.</span><span class="xdoc-id">tableSection</span>&nbsp;&nbsp;<small><span class="xdocSynSum">//&nbsp;module-wide</span></small></td>
1355 <td class="xdocHdrArrow">
1356 <a class="xdocHdrLink" href="../../../../ti/sdo/ipc/heaps/HeapBufMP.html" title="module HeapBufMP"><img class="xdocHdrArrow" src="../../../../Arrow_up.png"/></a></td>
1357 </table>
1358 <div class=xdocHdrIndex><a class=xdocHdrIndex title="right-click to capture" href="../../../../index.html#ti/sdo/ipc/heaps/HeapBufMP.html#table.Section">index URL</a></div>
1359 <p class="xdocHdrSummaryDcl">Section name is used to place the names table</p>
1360 <span id='meta-synop'></span>
1361 <table class="xdocLabel"><tr>
1362 <td class="xdocLabelLeft"><tt><span class="xdoc-id-meta2dcl"></span></tt>Configuration settings</td>
1363 <td class="xdocLabelRight"></td>
1364 </tr></table>
1365 <div class="xdocSynMdcl">
1366 <div class="xdocSynCode">
1367 <tt></tt><tt></tt>HeapBufMP.<span class="xdoc-id">tableSection</span> = <i><span class="xdoc-kw2">String</span></i> <span class="xdoc-kw2">null</span>;
1368 </div>
1369 </div>
1370 <div class="xdocSynSpacer">&nbsp;</div>
1371 <span id="xdoc-sect-1"></span>
1372 <div class="xdocSect">DETAILS</div>
1373 <div class="xdocText">The default value of NULL implies that no explicit placement is
1374   performed.</div>
1375 <a class="xdocAnchor" id="metaper-instance_config_parameters"></a>
1376 <table class="xdocHdr"><tr>
1377 <td class="xdocHdrTitle"><span class="xdocSynSum">Instance Config Parameters</span></td>
1378 <td class="xdocHdrArrow">
1379 <a class="xdocHdrLink" href="../../../../ti/sdo/ipc/heaps/HeapBufMP.html" title="module HeapBufMP"><img class="xdocHdrArrow" src="../../../../Arrow_up.png"/></a></td>
1380 </table>
1381 <div class=xdocHdrIndex><a class=xdocHdrIndex title="right-click to capture" href="../../../../index.html#ti/sdo/ipc/heaps/HeapBufMP.html#per-instance_config_parameters">index URL</a></div>
1382 <p class="xdocHdrSummary"></p>
1383 <span id='meta-synop'></span>
1384 <table class="xdocLabel"><tr>
1385 <td class="xdocLabelLeft"><tt><span class="xdoc-id-meta2dcl"></span></tt>Configuration settings</td>
1386 <td class="xdocLabelRight"></td>
1387 </tr></table>
1388 <div class="xdocSynMdcl">
1389 <div class="xdocSynCode">
1390 <tt></tt><tt></tt><span class="xdoc-kw1">var</span> params = <span class="xdoc-kw1">new</span> HeapBufMP.<span class="xdoc-id">Params</span>;
1391 </div>
1392 <div class='xdocSynSum'><tt></tt><tt></tt>//&nbsp;Instance config-params object</div>
1393 <div class="xdocSynCode">
1394 <tt></tt><tt>&nbsp;&nbsp;&nbsp;&nbsp;</tt>params.<span class="xdoc-id">align</span> = <i><span class="xdoc-kw2">SizeT</span></i> 0;
1395 </div>
1396 <div class='xdocSynSum'><tt></tt><tt>&nbsp;&nbsp;&nbsp;&nbsp;</tt>//&nbsp;Alignment (in MAUs) of each block</div>
1397 <div class="xdocSynCode">
1398 <tt></tt><tt>&nbsp;&nbsp;&nbsp;&nbsp;</tt>params.<span class="xdoc-id">blockSize</span> = <i><span class="xdoc-kw2">SizeT</span></i> 0;
1399 </div>
1400 <div class='xdocSynSum'><tt></tt><tt>&nbsp;&nbsp;&nbsp;&nbsp;</tt>//&nbsp;Size (in MAUs) of each block</div>
1401 <div class="xdocSynCode">
1402 <tt></tt><tt>&nbsp;&nbsp;&nbsp;&nbsp;</tt>params.<span class="xdoc-id">exact</span> = <i><span class="xdoc-kw2">Bool</span></i> <span class="xdoc-kw2">false</span>;
1403 </div>
1404 <div class='xdocSynSum'><tt></tt><tt>&nbsp;&nbsp;&nbsp;&nbsp;</tt>//&nbsp;Use exact matching</div>
1405 <div class="xdocSynCode">
1406 <tt></tt><tt>&nbsp;&nbsp;&nbsp;&nbsp;</tt>params.<span class="xdoc-id">gate</span> = <i><a class="xdoc-link" href="../../../../ti/sdo/ipc/GateMP.html#per-instance_object_types" title="ti.sdo.ipc.GateMP.Handle">GateMP.Handle</a></i> <span class="xdoc-kw2">null</span>;
1407 </div>
1408 <div class='xdocSynSum'><tt></tt><tt>&nbsp;&nbsp;&nbsp;&nbsp;</tt>//&nbsp;GateMP used for critical region management of the shared memory</div>
1409 <div class="xdocSynCode">
1410 <tt></tt><tt>&nbsp;&nbsp;&nbsp;&nbsp;</tt>params.<span class="xdoc-id">name</span> = <i><span class="xdoc-kw2">String</span></i> <span class="xdoc-kw2">null</span>;
1411 </div>
1412 <div class='xdocSynSum'><tt></tt><tt>&nbsp;&nbsp;&nbsp;&nbsp;</tt>//&nbsp;Name of this instance</div>
1413 <div class="xdocSynCode">
1414 <tt></tt><tt>&nbsp;&nbsp;&nbsp;&nbsp;</tt>params.<span class="xdoc-id">numBlocks</span> = <i><span class="xdoc-kw2">UInt</span></i> 0;
1415 </div>
1416 <div class='xdocSynSum'><tt></tt><tt>&nbsp;&nbsp;&nbsp;&nbsp;</tt>//&nbsp;Number of fixed-size blocks</div>
1417 <div class="xdocSynCode">
1418 <tt></tt><tt>&nbsp;&nbsp;&nbsp;&nbsp;</tt>params.<span class="xdoc-id">regionId</span> = <i><span class="xdoc-kw2">UInt16</span></i> 0;
1419 </div>
1420 <div class='xdocSynSum'><tt></tt><tt>&nbsp;&nbsp;&nbsp;&nbsp;</tt>//&nbsp;Shared region ID</div>
1421 </div>
1422 <div class="xdocSynSpacer">&nbsp;</div>
1423 <a class="xdocAnchor" id="metaalign"></a>
1424 <table class="xdocHdr"><tr>
1425 <td class="xdocHdrTitle"><span class="xdoc-kw1">config</span> <span class="xdoc-id">HeapBufMP.Params.</span><span class="xdoc-id">align</span>&nbsp;&nbsp;<small><span class="xdocSynSum">//&nbsp;instance</span></small></td>
1426 <td class="xdocHdrArrow">
1427 <a class="xdocHdrLink" href="../../../../ti/sdo/ipc/heaps/HeapBufMP.html" title="module HeapBufMP"><img class="xdocHdrArrow" src="../../../../Arrow_up.png"/></a></td>
1428 </table>
1429 <div class=xdocHdrIndex><a class=xdocHdrIndex title="right-click to capture" href="../../../../index.html#ti/sdo/ipc/heaps/HeapBufMP.html#align">index URL</a></div>
1430 <p class="xdocHdrSummaryDcl">Alignment (in MAUs) of each block</p>
1431 <span id='meta-synop'></span>
1432 <table class="xdocLabel"><tr>
1433 <td class="xdocLabelLeft"><tt><span class="xdoc-id-meta2dcl"></span></tt>Configuration settings</td>
1434 <td class="xdocLabelRight"></td>
1435 </tr></table>
1436 <div class="xdocSynMdcl">
1437 <div class="xdocSynCode">
1438 <tt></tt><tt></tt><span class="xdoc-kw1">var</span> params = <span class="xdoc-kw1">new</span> HeapBufMP.<span class="xdoc-id">Params</span>;
1439 </div>
1440 <div class="xdocSynCode">
1441 <tt></tt><tt></tt><b>&nbsp;&nbsp;...</b>
1442 </div>
1443 <div class="xdocSynCode">
1444 <tt></tt><tt></tt>params.<span class="xdoc-id">align</span> = <i><span class="xdoc-kw2">SizeT</span></i> 0;
1445 </div>
1446 </div>
1447 <div class="xdocSynSpacer">&nbsp;</div>
1448 <span id="xdoc-sect-1"></span>
1449 <div class="xdocSect">DETAILS</div>
1450 <div class="xdocText">The alignment must be a power of 2. If the value 0 is specified,
1451   the value will be changed to meet the minimum structure alignment
1452   requirements (refer to
1453   <a class="xdoc-link" href="../../../../xdc/runtime/Memory.html#get.Max.Default.Type.Align" title="xdc.runtime.Memory.getMaxDefaultTypeAlign">xdc.runtime.Memory.getMaxDefaultTypeAlign</a> and
1454   <a class="xdoc-link" href="../../../../xdc/runtime/Memory.html#get.Max.Default.Type.Align.Meta" title="xdc.runtime.Memory.getMaxDefaultTypeAlignMeta">xdc.runtime.Memory.getMaxDefaultTypeAlignMeta</a> and
1455   the cache alignment size of the region in which the heap will
1456   be placed.  Therefore, the actual alignment may be larger.</div>
1457 <div class="xdocText">The default alignment is 0.</div>
1458 <div class="xdocSect">C SYNOPSIS</div>
1459 <div class="xdocText"><a class="xdoc-link" href="#align" title="HeapBufMP_Params.align">HeapBufMP_Params.align</a></div>
1460 <div class="xdocSynSpacer">&nbsp;</div>
1461 <a class="xdocAnchor" id="metablock.Size"></a>
1462 <table class="xdocHdr"><tr>
1463 <td class="xdocHdrTitle"><span class="xdoc-kw1">config</span> <span class="xdoc-id">HeapBufMP.Params.</span><span class="xdoc-id">blockSize</span>&nbsp;&nbsp;<small><span class="xdocSynSum">//&nbsp;instance</span></small></td>
1464 <td class="xdocHdrArrow">
1465 <a class="xdocHdrLink" href="../../../../ti/sdo/ipc/heaps/HeapBufMP.html" title="module HeapBufMP"><img class="xdocHdrArrow" src="../../../../Arrow_up.png"/></a></td>
1466 </table>
1467 <div class=xdocHdrIndex><a class=xdocHdrIndex title="right-click to capture" href="../../../../index.html#ti/sdo/ipc/heaps/HeapBufMP.html#block.Size">index URL</a></div>
1468 <p class="xdocHdrSummaryDcl">Size (in MAUs) of each block</p>
1469 <span id='meta-synop'></span>
1470 <table class="xdocLabel"><tr>
1471 <td class="xdocLabelLeft"><tt><span class="xdoc-id-meta2dcl"></span></tt>Configuration settings</td>
1472 <td class="xdocLabelRight"></td>
1473 </tr></table>
1474 <div class="xdocSynMdcl">
1475 <div class="xdocSynCode">
1476 <tt></tt><tt></tt><span class="xdoc-kw1">var</span> params = <span class="xdoc-kw1">new</span> HeapBufMP.<span class="xdoc-id">Params</span>;
1477 </div>
1478 <div class="xdocSynCode">
1479 <tt></tt><tt></tt><b>&nbsp;&nbsp;...</b>
1480 </div>
1481 <div class="xdocSynCode">
1482 <tt></tt><tt></tt>params.<span class="xdoc-id">blockSize</span> = <i><span class="xdoc-kw2">SizeT</span></i> 0;
1483 </div>
1484 </div>
1485 <div class="xdocSynSpacer">&nbsp;</div>
1486 <span id="xdoc-sect-1"></span>
1487 <div class="xdocSect">DETAILS</div>
1488 <div class="xdocText">HeapBufMP will round the blockSize up to the nearest multiple of the
1489   alignment, so the actual blockSize may be larger. When creating a
1490   HeapBufMP dynamically, this needs to be taken into account to determine
1491   the proper buffer size to pass in.</div>
1492 <div class="xdocText">Required parameter.</div>
1493 <div class="xdocText">The default size of the blocks is 0 MAUs.</div>
1494 <div class="xdocSect">C SYNOPSIS</div>
1495 <div class="xdocText"><a class="xdoc-link" href="#block.Size" title="HeapBufMP_Params.blockSize">HeapBufMP_Params.blockSize</a></div>
1496 <div class="xdocSynSpacer">&nbsp;</div>
1497 <a class="xdocAnchor" id="metaexact"></a>
1498 <table class="xdocHdr"><tr>
1499 <td class="xdocHdrTitle"><span class="xdoc-kw1">config</span> <span class="xdoc-id">HeapBufMP.Params.</span><span class="xdoc-id">exact</span>&nbsp;&nbsp;<small><span class="xdocSynSum">//&nbsp;instance</span></small></td>
1500 <td class="xdocHdrArrow">
1501 <a class="xdocHdrLink" href="../../../../ti/sdo/ipc/heaps/HeapBufMP.html" title="module HeapBufMP"><img class="xdocHdrArrow" src="../../../../Arrow_up.png"/></a></td>
1502 </table>
1503 <div class=xdocHdrIndex><a class=xdocHdrIndex title="right-click to capture" href="../../../../index.html#ti/sdo/ipc/heaps/HeapBufMP.html#exact">index URL</a></div>
1504 <p class="xdocHdrSummaryDcl">Use exact matching</p>
1505 <span id='meta-synop'></span>
1506 <table class="xdocLabel"><tr>
1507 <td class="xdocLabelLeft"><tt><span class="xdoc-id-meta2dcl"></span></tt>Configuration settings</td>
1508 <td class="xdocLabelRight"></td>
1509 </tr></table>
1510 <div class="xdocSynMdcl">
1511 <div class="xdocSynCode">
1512 <tt></tt><tt></tt><span class="xdoc-kw1">var</span> params = <span class="xdoc-kw1">new</span> HeapBufMP.<span class="xdoc-id">Params</span>;
1513 </div>
1514 <div class="xdocSynCode">
1515 <tt></tt><tt></tt><b>&nbsp;&nbsp;...</b>
1516 </div>
1517 <div class="xdocSynCode">
1518 <tt></tt><tt></tt>params.<span class="xdoc-id">exact</span> = <i><span class="xdoc-kw2">Bool</span></i> <span class="xdoc-kw2">false</span>;
1519 </div>
1520 </div>
1521 <div class="xdocSynSpacer">&nbsp;</div>
1522 <span id="xdoc-sect-1"></span>
1523 <div class="xdocSect">DETAILS</div>
1524 <div class="xdocText">Setting this flag will allow allocation only if the requested size
1525   is equal to (rather than less than or equal to) the buffer's block
1526   size.</div>
1527 <div class="xdocSect">C SYNOPSIS</div>
1528 <div class="xdocText"><a class="xdoc-link" href="#exact" title="HeapBufMP_Params.exact">HeapBufMP_Params.exact</a></div>
1529 <div class="xdocSynSpacer">&nbsp;</div>
1530 <a class="xdocAnchor" id="metagate"></a>
1531 <table class="xdocHdr"><tr>
1532 <td class="xdocHdrTitle"><span class="xdoc-kw1">config</span> <span class="xdoc-id">HeapBufMP.Params.</span><span class="xdoc-id">gate</span>&nbsp;&nbsp;<small><span class="xdocSynSum">//&nbsp;instance</span></small></td>
1533 <td class="xdocHdrArrow">
1534 <a class="xdocHdrLink" href="../../../../ti/sdo/ipc/heaps/HeapBufMP.html" title="module HeapBufMP"><img class="xdocHdrArrow" src="../../../../Arrow_up.png"/></a></td>
1535 </table>
1536 <div class=xdocHdrIndex><a class=xdocHdrIndex title="right-click to capture" href="../../../../index.html#ti/sdo/ipc/heaps/HeapBufMP.html#gate">index URL</a></div>
1537 <p class="xdocHdrSummaryDcl">GateMP used for critical region management of the shared memory</p>
1538 <span id='meta-synop'></span>
1539 <table class="xdocLabel"><tr>
1540 <td class="xdocLabelLeft"><tt><span class="xdoc-id-meta2dcl"></span></tt>Configuration settings</td>
1541 <td class="xdocLabelRight"></td>
1542 </tr></table>
1543 <div class="xdocSynMdcl">
1544 <div class="xdocSynCode">
1545 <tt></tt><tt></tt><span class="xdoc-kw1">var</span> params = <span class="xdoc-kw1">new</span> HeapBufMP.<span class="xdoc-id">Params</span>;
1546 </div>
1547 <div class="xdocSynCode">
1548 <tt></tt><tt></tt><b>&nbsp;&nbsp;...</b>
1549 </div>
1550 <div class="xdocSynCode">
1551 <tt></tt><tt></tt>params.<span class="xdoc-id">gate</span> = <i><a class="xdoc-link" href="../../../../ti/sdo/ipc/GateMP.html#per-instance_object_types" title="ti.sdo.ipc.GateMP.Handle">GateMP.Handle</a></i> <span class="xdoc-kw2">null</span>;
1552 </div>
1553 </div>
1554 <div class="xdocSynSpacer">&nbsp;</div>
1555 <span id="xdoc-sect-1"></span>
1556 <div class="xdocSect">DETAILS</div>
1557 <div class="xdocText">Using the default value of NULL will result in use of the GateMP
1558   system gate for context protection.</div>
1559 <div class="xdocSect">C SYNOPSIS</div>
1560 <div class="xdocText"><a class="xdoc-link" href="#gate" title="HeapBufMP_Params.gate">HeapBufMP_Params.gate</a></div>
1561 <div class="xdocSynSpacer">&nbsp;</div>
1562 <a class="xdocAnchor" id="metaname"></a>
1563 <table class="xdocHdr"><tr>
1564 <td class="xdocHdrTitle"><span class="xdoc-kw1">config</span> <span class="xdoc-id">HeapBufMP.Params.</span><span class="xdoc-id">name</span>&nbsp;&nbsp;<small><span class="xdocSynSum">//&nbsp;instance</span></small></td>
1565 <td class="xdocHdrArrow">
1566 <a class="xdocHdrLink" href="../../../../ti/sdo/ipc/heaps/HeapBufMP.html" title="module HeapBufMP"><img class="xdocHdrArrow" src="../../../../Arrow_up.png"/></a></td>
1567 </table>
1568 <div class=xdocHdrIndex><a class=xdocHdrIndex title="right-click to capture" href="../../../../index.html#ti/sdo/ipc/heaps/HeapBufMP.html#name">index URL</a></div>
1569 <p class="xdocHdrSummaryDcl">Name of this instance</p>
1570 <span id='meta-synop'></span>
1571 <table class="xdocLabel"><tr>
1572 <td class="xdocLabelLeft"><tt><span class="xdoc-id-meta2dcl"></span></tt>Configuration settings</td>
1573 <td class="xdocLabelRight"></td>
1574 </tr></table>
1575 <div class="xdocSynMdcl">
1576 <div class="xdocSynCode">
1577 <tt></tt><tt></tt><span class="xdoc-kw1">var</span> params = <span class="xdoc-kw1">new</span> HeapBufMP.<span class="xdoc-id">Params</span>;
1578 </div>
1579 <div class="xdocSynCode">
1580 <tt></tt><tt></tt><b>&nbsp;&nbsp;...</b>
1581 </div>
1582 <div class="xdocSynCode">
1583 <tt></tt><tt></tt>params.<span class="xdoc-id">name</span> = <i><span class="xdoc-kw2">String</span></i> <span class="xdoc-kw2">null</span>;
1584 </div>
1585 </div>
1586 <div class="xdocSynSpacer">&nbsp;</div>
1587 <span id="xdoc-sect-1"></span>
1588 <div class="xdocSect">DETAILS</div>
1589 <div class="xdocText">The name (if not NULL) must be unique among all HeapBufMP
1590   instances in the entire system.  When creating a new
1591   heap, it is necessary to supply an instance name.</div>
1592 <div class="xdocSect">C SYNOPSIS</div>
1593 <div class="xdocText"><a class="xdoc-link" href="#name" title="HeapBufMP_Params.name">HeapBufMP_Params.name</a></div>
1594 <div class="xdocSynSpacer">&nbsp;</div>
1595 <a class="xdocAnchor" id="metanum.Blocks"></a>
1596 <table class="xdocHdr"><tr>
1597 <td class="xdocHdrTitle"><span class="xdoc-kw1">config</span> <span class="xdoc-id">HeapBufMP.Params.</span><span class="xdoc-id">numBlocks</span>&nbsp;&nbsp;<small><span class="xdocSynSum">//&nbsp;instance</span></small></td>
1598 <td class="xdocHdrArrow">
1599 <a class="xdocHdrLink" href="../../../../ti/sdo/ipc/heaps/HeapBufMP.html" title="module HeapBufMP"><img class="xdocHdrArrow" src="../../../../Arrow_up.png"/></a></td>
1600 </table>
1601 <div class=xdocHdrIndex><a class=xdocHdrIndex title="right-click to capture" href="../../../../index.html#ti/sdo/ipc/heaps/HeapBufMP.html#num.Blocks">index URL</a></div>
1602 <p class="xdocHdrSummaryDcl">Number of fixed-size blocks</p>
1603 <span id='meta-synop'></span>
1604 <table class="xdocLabel"><tr>
1605 <td class="xdocLabelLeft"><tt><span class="xdoc-id-meta2dcl"></span></tt>Configuration settings</td>
1606 <td class="xdocLabelRight"></td>
1607 </tr></table>
1608 <div class="xdocSynMdcl">
1609 <div class="xdocSynCode">
1610 <tt></tt><tt></tt><span class="xdoc-kw1">var</span> params = <span class="xdoc-kw1">new</span> HeapBufMP.<span class="xdoc-id">Params</span>;
1611 </div>
1612 <div class="xdocSynCode">
1613 <tt></tt><tt></tt><b>&nbsp;&nbsp;...</b>
1614 </div>
1615 <div class="xdocSynCode">
1616 <tt></tt><tt></tt>params.<span class="xdoc-id">numBlocks</span> = <i><span class="xdoc-kw2">UInt</span></i> 0;
1617 </div>
1618 </div>
1619 <div class="xdocSynSpacer">&nbsp;</div>
1620 <span id="xdoc-sect-1"></span>
1621 <div class="xdocSect">DETAILS</div>
1622 <div class="xdocText">This is a required parameter for all new HeapBufMP instances.</div>
1623 <div class="xdocSect">C SYNOPSIS</div>
1624 <div class="xdocText"><a class="xdoc-link" href="#num.Blocks" title="HeapBufMP_Params.numBlocks">HeapBufMP_Params.numBlocks</a></div>
1625 <div class="xdocSynSpacer">&nbsp;</div>
1626 <a class="xdocAnchor" id="metaregion.Id"></a>
1627 <table class="xdocHdr"><tr>
1628 <td class="xdocHdrTitle"><span class="xdoc-kw1">config</span> <span class="xdoc-id">HeapBufMP.Params.</span><span class="xdoc-id">regionId</span>&nbsp;&nbsp;<small><span class="xdocSynSum">//&nbsp;instance</span></small></td>
1629 <td class="xdocHdrArrow">
1630 <a class="xdocHdrLink" href="../../../../ti/sdo/ipc/heaps/HeapBufMP.html" title="module HeapBufMP"><img class="xdocHdrArrow" src="../../../../Arrow_up.png"/></a></td>
1631 </table>
1632 <div class=xdocHdrIndex><a class=xdocHdrIndex title="right-click to capture" href="../../../../index.html#ti/sdo/ipc/heaps/HeapBufMP.html#region.Id">index URL</a></div>
1633 <p class="xdocHdrSummaryDcl">Shared region ID</p>
1634 <span id='meta-synop'></span>
1635 <table class="xdocLabel"><tr>
1636 <td class="xdocLabelLeft"><tt><span class="xdoc-id-meta2dcl"></span></tt>Configuration settings</td>
1637 <td class="xdocLabelRight"></td>
1638 </tr></table>
1639 <div class="xdocSynMdcl">
1640 <div class="xdocSynCode">
1641 <tt></tt><tt></tt><span class="xdoc-kw1">var</span> params = <span class="xdoc-kw1">new</span> HeapBufMP.<span class="xdoc-id">Params</span>;
1642 </div>
1643 <div class="xdocSynCode">
1644 <tt></tt><tt></tt><b>&nbsp;&nbsp;...</b>
1645 </div>
1646 <div class="xdocSynCode">
1647 <tt></tt><tt></tt>params.<span class="xdoc-id">regionId</span> = <i><span class="xdoc-kw2">UInt16</span></i> 0;
1648 </div>
1649 </div>
1650 <div class="xdocSynSpacer">&nbsp;</div>
1651 <span id="xdoc-sect-1"></span>
1652 <div class="xdocSect">DETAILS</div>
1653 <div class="xdocText">The index corresponding to the shared region from which shared memory
1654   will be allocated.</div>
1655 <div class="xdocSect">C SYNOPSIS</div>
1656 <div class="xdocText"><a class="xdoc-link" href="#region.Id" title="HeapBufMP_Params.regionId">HeapBufMP_Params.regionId</a></div>
1657 <a class="xdocAnchor" id="metaper-instance_creation"></a>
1658 <table class="xdocHdr"><tr>
1659 <td class="xdocHdrTitle"><span class="xdocSynSum">Static Instance Creation</span></td>
1660 <td class="xdocHdrArrow">
1661 <a class="xdocHdrLink" href="../../../../ti/sdo/ipc/heaps/HeapBufMP.html" title="module HeapBufMP"><img class="xdocHdrArrow" src="../../../../Arrow_up.png"/></a></td>
1662 </table>
1663 <div class=xdocHdrIndex><a class=xdocHdrIndex title="right-click to capture" href="../../../../index.html#ti/sdo/ipc/heaps/HeapBufMP.html#per-instance_creation">index URL</a></div>
1664 <p class="xdocHdrSummary"></p>
1665 <span id='meta-synop'></span>
1666 <table class="xdocLabel"><tr>
1667 <td class="xdocLabelLeft"><tt><span class="xdoc-id-meta2dcl"></span></tt>Configuration settings</td>
1668 <td class="xdocLabelRight"></td>
1669 </tr></table>
1670 <div class="xdocSynMdcl">
1671 <div class="xdocSynCode">
1672 <tt></tt><tt></tt><span class="xdoc-kw1">var</span> params = <span class="xdoc-kw1">new</span> HeapBufMP.<a class="xdoc-link" href="../../../../ti/sdo/ipc/heaps/HeapBufMP.html#metaper-instance_config_parameters" title="ti.sdo.ipc.heaps.HeapBufMP.Params">Params</a>;
1673 </div>
1674 <div class='xdocSynSum'><tt></tt><tt></tt>//&nbsp;Allocate instance config-params</div>
1675 <div class="xdocSynCode">
1676 <tt></tt><tt></tt>params.<i>config</i> = <b>&nbsp;&nbsp;...</b>
1677 </div>
1678 <div class='xdocSynSum'><tt></tt><tt></tt>//&nbsp;Assign individual configs</div>
1679 <div class="xdocSynSpacer">&nbsp;</div>
1680 <div class="xdocSynCode">
1681 <tt></tt><tt></tt><span class="xdoc-kw1">var</span> inst = HeapBufMP.<span class="xdoc-id">create</span>(params);
1682 </div>
1683 <div class='xdocSynSum'><tt></tt><tt></tt>//&nbsp;Create an instance-object</div>
1684 </div>
1685 <span id="xdoc-sect-1"></span>
1686 <div class="xdocSect">ARGUMENTS</div>
1687 <div class="xdocChild"><span class="xdocChildId">params</span>
1688 <span class="xdocChildSum">&#151;&nbsp;per-instance config params, or <tt>NULL</tt> to select default values (target-domain only)</span>
1689 </div>
1690 <div class="xdocChild"><span class="xdocChildId">eb</span>
1691 <span class="xdocChildSum">&#151;&nbsp;active error-handling block, or <tt>NULL</tt> to select default policy (target-domain only)</span>
1692 </div>
1693 <span id="xdoc-sect-2"></span>
1694 <div class="xdocSect">DETAILS</div>
1695 <div class="xdocText">See specific <tt>IHeap</tt> implementation for parameters used.</div>
1696 </div>
1697 <div id="xdocDate">generated on Mon, 23 May 2016 14:31:19 GMT</div>
1698 </div></div></body>
1699 </html>