[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 <ti/ipc/HeapBufMP.h></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 [ <a class="xdocBrief" href="#xdoc-desc">more</a> ... ]
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"><ti/sdo/ipc/heaps/HeapBufMP.h></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">// 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">// 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">// 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">// 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">// 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> </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">// 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> <span class="xdoc-id">size</span>, <span class="xdoc-kw2">SizeT</span> <span class="xdoc-id">align</span>, <a class="xdoc-link" href="../../../../xdc/runtime/Error.html#.Block" title="xdc.runtime.Error.Block">Error_Block</a> *<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> </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">// 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> <span class="xdoc-id">block</span>, <span class="xdoc-kw2">SizeT</span> <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> </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">// 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> *<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> </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">// 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">// 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">// 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">// 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">// 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">// 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">// 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">// 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">// 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">// 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">// 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">// 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">// 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">// 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">// 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">// 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">// 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">// 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">// 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">// 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">// 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">// 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> </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">// 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> </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">// 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> </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">// 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> </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">// 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> </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">// 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> </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">// 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> </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">// 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> </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">// Track the number of allocated blocks</span></span></a>;</div></td></tr>
120 </table>
121 <div class="xdocSynSpacer"> </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 <ti/ipc/HeapBufMP.h></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"> </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> <small><span class="xdocSynSum">// 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> <span class="xdoc-id">HeapBufMP_A_badAlignment</span>;
167 </div>
168 </div>
169 <div class="xdocSynSpacer"> </div>
170 <div class="xdocSynSpacer"> </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> <small><span class="xdocSynSum">// 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> <span class="xdoc-id">HeapBufMP_A_invBlockFreed</span>;
187 </div>
188 </div>
189 <div class="xdocSynSpacer"> </div>
190 <div class="xdocSynSpacer"> </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> <small><span class="xdocSynSum">// 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> <span class="xdoc-id">HeapBufMP_E_alignTooLarge</span>;
207 </div>
208 </div>
209 <div class="xdocSynSpacer"> </div>
210 <div class="xdocSynSpacer"> </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> <small><span class="xdocSynSum">// 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> <span class="xdoc-id">HeapBufMP_E_exactFail</span>;
227 </div>
228 </div>
229 <div class="xdocSynSpacer"> </div>
230 <div class="xdocSynSpacer"> </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> <small><span class="xdocSynSum">// 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> <span class="xdoc-id">HeapBufMP_E_noBlocksLeft</span>;
247 </div>
248 </div>
249 <div class="xdocSynSpacer"> </div>
250 <div class="xdocSynSpacer"> </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> <small><span class="xdocSynSum">// 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> <span class="xdoc-id">HeapBufMP_E_sizeTooLarge</span>;
267 </div>
268 </div>
269 <div class="xdocSynSpacer"> </div>
270 <div class="xdocSynSpacer"> </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> <small><span class="xdocSynSum">// 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> <span class="xdoc-id">HeapBufMP_maxNameLen</span>;
287 </div>
288 </div>
289 <div class="xdocSynSpacer"> </div>
290 <div class="xdocSynSpacer"> </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> <small><span class="xdocSynSum">// 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> <span class="xdoc-id">HeapBufMP_trackAllocs</span>;
307 </div>
308 </div>
309 <div class="xdocSynSpacer"> </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>// Get this module's unique id</div>
338 <div class="xdocSynSpacer"> </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>// Test if this module has completed startup</div>
343 <div class="xdocSynSpacer"> </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>// The heap from which this module allocates memory</div>
348 <div class="xdocSynSpacer"> </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>// Test whether this module has a diagnostics mask</div>
353 <div class="xdocSynSpacer"> </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>// Returns the diagnostics mask for this module</div>
358 <div class="xdocSynSpacer"> </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>// 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>// Opaque internal representation of an instance object</div>
382 <div class="xdocSynSpacer"> </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>// Client reference to an instance object</div>
387 <div class="xdocSynSpacer"> </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>// Opaque client structure large enough to hold an instance object</div>
392 <div class="xdocSynSpacer"> </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>// Convert this instance structure pointer into an instance handle</div>
397 <div class="xdocSynSpacer"> </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>// 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>// Instance config-params structure</div>
421 <div class="xdocSynCode">
422 <tt></tt><tt> </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> </tt>// Common per-instance configs</div>
425 <div class="xdocSynCode">
426 <tt></tt><tt> </tt><span class="xdoc-kw2">SizeT</span> <span class="xdoc-id">align</span>;
427 </div>
428 <div class='xdocSynSum'><tt></tt><tt> </tt>// Alignment (in MAUs) of each block</div>
429 <div class="xdocSynCode">
430 <tt></tt><tt> </tt><span class="xdoc-kw2">SizeT</span> <span class="xdoc-id">blockSize</span>;
431 </div>
432 <div class='xdocSynSum'><tt></tt><tt> </tt>// Size (in MAUs) of each block</div>
433 <div class="xdocSynCode">
434 <tt></tt><tt> </tt><span class="xdoc-kw2">Bool</span> <span class="xdoc-id">exact</span>;
435 </div>
436 <div class='xdocSynSum'><tt></tt><tt> </tt>// Use exact matching</div>
437 <div class="xdocSynCode">
438 <tt></tt><tt> </tt><a class="xdoc-link" href="../../../../ti/sdo/ipc/GateMP.html#per-instance_object_types" title="ti.sdo.ipc.GateMP.Handle">GateMP_Handle</a> <span class="xdoc-id">gate</span>;
439 </div>
440 <div class='xdocSynSum'><tt></tt><tt> </tt>// GateMP used for critical region management of the shared memory</div>
441 <div class="xdocSynCode">
442 <tt></tt><tt> </tt><span class="xdoc-kw2">String</span> <span class="xdoc-id">name</span>;
443 </div>
444 <div class='xdocSynSum'><tt></tt><tt> </tt>// Name of this instance</div>
445 <div class="xdocSynCode">
446 <tt></tt><tt> </tt><span class="xdoc-kw2">UInt</span> <span class="xdoc-id">numBlocks</span>;
447 </div>
448 <div class='xdocSynSum'><tt></tt><tt> </tt>// Number of fixed-size blocks</div>
449 <div class="xdocSynCode">
450 <tt></tt><tt> </tt><span class="xdoc-kw2">UInt16</span> <span class="xdoc-id">regionId</span>;
451 </div>
452 <div class='xdocSynSum'><tt></tt><tt> </tt>// 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"> </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>// Initialize this config-params structure with supplier-specified defaults before instance creation</div>
461 </div>
462 <div class="xdocSynSpacer"> </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> <small><span class="xdocSynSum">// 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> </tt><b> ...</b>
482 </div>
483 <div class="xdocSynCode">
484 <tt></tt><tt> </tt><span class="xdoc-kw2">SizeT</span> <span class="xdoc-id">align</span>;
485 </div>
486 </div>
487 <div class="xdocSynSpacer"> </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"> </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> <small><span class="xdocSynSum">// 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> </tt><b> ...</b>
518 </div>
519 <div class="xdocSynCode">
520 <tt></tt><tt> </tt><span class="xdoc-kw2">SizeT</span> <span class="xdoc-id">blockSize</span>;
521 </div>
522 </div>
523 <div class="xdocSynSpacer"> </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"> </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> <small><span class="xdocSynSum">// 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> </tt><b> ...</b>
552 </div>
553 <div class="xdocSynCode">
554 <tt></tt><tt> </tt><span class="xdoc-kw2">Bool</span> <span class="xdoc-id">exact</span>;
555 </div>
556 </div>
557 <div class="xdocSynSpacer"> </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"> </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> <small><span class="xdocSynSum">// 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> </tt><b> ...</b>
583 </div>
584 <div class="xdocSynCode">
585 <tt></tt><tt> </tt><a class="xdoc-link" href="../../../../ti/sdo/ipc/GateMP.html#per-instance_object_types" title="ti.sdo.ipc.GateMP.Handle">GateMP_Handle</a> <span class="xdoc-id">gate</span>;
586 </div>
587 </div>
588 <div class="xdocSynSpacer"> </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"> </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> <small><span class="xdocSynSum">// 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> </tt><b> ...</b>
613 </div>
614 <div class="xdocSynCode">
615 <tt></tt><tt> </tt><span class="xdoc-kw2">String</span> <span class="xdoc-id">name</span>;
616 </div>
617 </div>
618 <div class="xdocSynSpacer"> </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"> </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> <small><span class="xdocSynSum">// 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> </tt><b> ...</b>
644 </div>
645 <div class="xdocSynCode">
646 <tt></tt><tt> </tt><span class="xdoc-kw2">UInt</span> <span class="xdoc-id">numBlocks</span>;
647 </div>
648 </div>
649 <div class="xdocSynSpacer"> </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"> </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> <small><span class="xdocSynSum">// 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> </tt><b> ...</b>
673 </div>
674 <div class="xdocSynCode">
675 <tt></tt><tt> </tt><span class="xdoc-kw2">UInt16</span> <span class="xdoc-id">regionId</span>;
676 </div>
677 </div>
678 <div class="xdocSynSpacer"> </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>// Allocate and initialize a new instance object and return its handle</div>
701 <div class="xdocSynSpacer"> </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>// 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">— 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">— 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>// Finalize and free this previously allocated instance object, setting the referenced handle to NULL</div>
736 <div class="xdocSynSpacer"> </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>// Finalize the instance object inside the provided structure</div>
741 </div>
742 <div class="xdocSynSpacer"> </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>() <small><span class="xdocSynSum">// 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> <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> <span class="xdoc-id">size</span>, <span class="xdoc-kw2">SizeT</span> <span class="xdoc-id">align</span>, <a class="xdoc-link" href="../../../../xdc/runtime/Error.html#.Block" title="xdc.runtime.Error.Block">Error_Block</a> *<span class="xdoc-id">eb</span>);
759 </div>
760 </div>
761 <div class="xdocSynSpacer"> </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">— 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">— size (in MADUs) of the block</span>
769 </div>
770 <div class="xdocChild"><span class="xdocChildId">align</span>
771 <span class="xdocChildSum">— alignment (in MADUs) of the block</span>
772 </div>
773 <div class="xdocChild"><span class="xdocChildId">eb</span>
774 <span class="xdocChildSum">— 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"> </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>() <small><span class="xdocSynSum">// 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> <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> <span class="xdoc-id">block</span>, <span class="xdoc-kw2">SizeT</span> <span class="xdoc-id">size</span>);
800 </div>
801 </div>
802 <div class="xdocSynSpacer"> </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">— 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">— 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">— 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"> </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>() <small><span class="xdocSynSum">// 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> <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> *<span class="xdoc-id">stats</span>);
835 </div>
836 </div>
837 <div class="xdocSynSpacer"> </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">— 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">— 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"> </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>() <small><span class="xdocSynSum">// 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> <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"> </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">— 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>// unconditionally move one level up the inheritance hierarchy</div>
900 <div class="xdocSynSpacer"> </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>// 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>// The number of statically-created instance objects</div>
924 <div class="xdocSynSpacer"> </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>// The handle of the i-th statically-created instance object (array == NULL)</div>
929 <div class="xdocSynSpacer"> </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>// The handle of the first dynamically-created instance object, or NULL</div>
934 <div class="xdocSynSpacer"> </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>// The handle of the next dynamically-created instance object, or NULL</div>
939 <div class="xdocSynSpacer"> </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>// The heap used to allocate dynamically-created instance objects</div>
944 <div class="xdocSynSpacer"> </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>// The label associated with this instance object</div>
949 <div class="xdocSynSpacer"> </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>// The name of this instance object</div>
954 </div>
955 </div>
956 <div class="xdocSynSpacer"> </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> </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">// 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> </tt><tt> </tt>msg: "A_badAlignment: Block being freed is not aligned properly "
973 </div>
974 <div class="xdocSynCode">
975 <tt> </tt><tt></tt>};
976 </div>
977 <div class="xdocSynCode">
978 <tt> </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">// 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> </tt><tt> </tt>msg: "A_invBlockFreed: Invalid block being freed"
982 </div>
983 <div class="xdocSynCode">
984 <tt> </tt><tt></tt>};
985 </div>
986 <div class="xdocSynCode">
987 <tt> </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">// 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> </tt><tt> </tt>msg: "E_alignTooLarge: Requested alignment size of %u is greater than %u"
991 </div>
992 <div class="xdocSynCode">
993 <tt> </tt><tt></tt>};
994 </div>
995 <div class="xdocSynCode">
996 <tt> </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">// 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> </tt><tt> </tt>msg: "E_exactFail: Exact allocation failed (requested size = %u and buffer size = %u)"
1000 </div>
1001 <div class="xdocSynCode">
1002 <tt> </tt><tt></tt>};
1003 </div>
1004 <div class="xdocSynCode">
1005 <tt> </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">// 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> </tt><tt> </tt>msg: "E_noBlocksLeft: No more blocks left in buffer (handle = 0x%x, requested size = %u)"
1009 </div>
1010 <div class="xdocSynCode">
1011 <tt> </tt><tt></tt>};
1012 </div>
1013 <div class="xdocSynCode">
1014 <tt> </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">// 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> </tt><tt> </tt>msg: "E_sizeTooLarge: Requested alloc size of %u is greater than %u"
1018 </div>
1019 <div class="xdocSynCode">
1020 <tt> </tt><tt></tt>};
1021 </div>
1022 <div class="xdocSynCode">
1023 <tt> </tt><tt></tt><a class="xdocSynGo" href="#metamax.Name.Len">HeapBufMP.<span class="xdoc-id">maxNameLen</span><span class="xdocSynHoverShadow"><span class="xdocSynHover">// 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> </tt><tt></tt><a class="xdocSynGo" href="#metatrack.Allocs">HeapBufMP.<span class="xdoc-id">trackAllocs</span><span class="xdocSynHoverShadow"><span class="xdocSynHover">// 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"> </div>
1029 <div class="xdocSynCode">
1030 <tt> </tt><tt></tt><a class="xdocSynGo" href="#common$">HeapBufMP.<span class="xdoc-id">common$</span><span class="xdocSynHoverShadow"><span class="xdocSynHover">// 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> </tt><tt></tt><a class="xdocSynGo" href="#max.Runtime.Entries">HeapBufMP.<span class="xdoc-id">maxRuntimeEntries</span><span class="xdocSynHoverShadow"><span class="xdocSynHover">// 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> </tt><tt></tt><a class="xdocSynGo" href="#table.Section">HeapBufMP.<span class="xdoc-id">tableSection</span><span class="xdocSynHoverShadow"><span class="xdocSynHover">// 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> </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">// Instance config-params object</span></span></a>;
1042 </div>
1043 <div class="xdocSynCode">
1044 <tt> </tt><tt> </tt>params.<a class="xdocSynGo" href="#metaalign"><span class="xdoc-id">align</span><span class="xdocSynHoverShadow"><span class="xdocSynHover">// 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> </tt><tt> </tt>params.<a class="xdocSynGo" href="#metablock.Size"><span class="xdoc-id">blockSize</span><span class="xdocSynHoverShadow"><span class="xdocSynHover">// 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> </tt><tt> </tt>params.<a class="xdocSynGo" href="#metaexact"><span class="xdoc-id">exact</span><span class="xdocSynHoverShadow"><span class="xdocSynHover">// 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> </tt><tt> </tt>params.<a class="xdocSynGo" href="#metagate"><span class="xdoc-id">gate</span><span class="xdocSynHoverShadow"><span class="xdocSynHover">// 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> </tt><tt> </tt>params.<a class="xdocSynGo" href="#metaname"><span class="xdoc-id">name</span><span class="xdocSynHoverShadow"><span class="xdocSynHover">// 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> </tt><tt> </tt>params.<a class="xdocSynGo" href="#metanum.Blocks"><span class="xdoc-id">numBlocks</span><span class="xdocSynHoverShadow"><span class="xdocSynHover">// 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> </tt><tt> </tt>params.<a class="xdocSynGo" href="#metaregion.Id"><span class="xdoc-id">regionId</span><span class="xdocSynHoverShadow"><span class="xdocSynHover">// 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> </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">// Create an instance-object</span></span></a>(params);
1068 </div>
1069 <div class="xdocSynSpacer"> </div>
1070 </div>
1071 <div id="xdocSep">
1072 </div>
1073 <div id="xdocMetaElems">
1074 <div class="xdocSynSpacer"> </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> <small><span class="xdocSynSum">// 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> </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"> </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"> </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> <small><span class="xdocSynSum">// 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> </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"> </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"> </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> <small><span class="xdocSynSum">// 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> </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"> </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"> </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> <small><span class="xdocSynSum">// 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> </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"> </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"> </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> <small><span class="xdocSynSum">// 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> </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"> </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"> </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> <small><span class="xdocSynSum">// 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> </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"> </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"> </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> <small><span class="xdocSynSum">// 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"> </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"> </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> <small><span class="xdocSynSum">// 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"> </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"> </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> <small><span class="xdocSynSum">// 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"> </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"> </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> <small><span class="xdocSynSum">// 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"> </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"> </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> <small><span class="xdocSynSum">// 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"> </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>// Instance config-params object</div>
1393 <div class="xdocSynCode">
1394 <tt></tt><tt> </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> </tt>// Alignment (in MAUs) of each block</div>
1397 <div class="xdocSynCode">
1398 <tt></tt><tt> </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> </tt>// Size (in MAUs) of each block</div>
1401 <div class="xdocSynCode">
1402 <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>;
1403 </div>
1404 <div class='xdocSynSum'><tt></tt><tt> </tt>// Use exact matching</div>
1405 <div class="xdocSynCode">
1406 <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>;
1407 </div>
1408 <div class='xdocSynSum'><tt></tt><tt> </tt>// GateMP used for critical region management of the shared memory</div>
1409 <div class="xdocSynCode">
1410 <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>;
1411 </div>
1412 <div class='xdocSynSum'><tt></tt><tt> </tt>// Name of this instance</div>
1413 <div class="xdocSynCode">
1414 <tt></tt><tt> </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> </tt>// Number of fixed-size blocks</div>
1417 <div class="xdocSynCode">
1418 <tt></tt><tt> </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> </tt>// Shared region ID</div>
1421 </div>
1422 <div class="xdocSynSpacer"> </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> <small><span class="xdocSynSum">// 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> ...</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"> </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"> </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> <small><span class="xdocSynSum">// 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> ...</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"> </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"> </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> <small><span class="xdocSynSum">// 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> ...</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"> </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"> </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> <small><span class="xdocSynSum">// 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> ...</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"> </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"> </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> <small><span class="xdocSynSum">// 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> ...</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"> </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"> </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> <small><span class="xdocSynSum">// 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> ...</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"> </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"> </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> <small><span class="xdocSynSum">// 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> ...</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"> </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>// Allocate instance config-params</div>
1675 <div class="xdocSynCode">
1676 <tt></tt><tt></tt>params.<i>config</i> = <b> ...</b>
1677 </div>
1678 <div class='xdocSynSum'><tt></tt><tt></tt>// Assign individual configs</div>
1679 <div class="xdocSynSpacer"> </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>// 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">— 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">— 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>