]> Gitweb @ Texas Instruments - Open Source Git Repositories - git.TI.com/gitweb - processor-sdk/performance-audio-sr.git/blob - psdk_cust/libarch_k2g_1_0_1_0/docs/doxygen/html/d7/da6/group__libarch__memmgt.html
PASDK-258:Add LibArch release from Jianzhong
[processor-sdk/performance-audio-sr.git] / psdk_cust / libarch_k2g_1_0_1_0 / docs / doxygen / html / d7 / da6 / group__libarch__memmgt.html
1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2 <html xmlns="http://www.w3.org/1999/xhtml">
3 <head>
4 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
5 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
6 <meta name="generator" content="Doxygen 1.8.6"/>
7 <title>LibArch: Memory Management API</title>
8 <link href="../../tabs.css" rel="stylesheet" type="text/css"/>
9 <script type="text/javascript" src="../../jquery.js"></script>
10 <script type="text/javascript" src="../../dynsections.js"></script>
11 <link href="../../search/search.css" rel="stylesheet" type="text/css"/>
12 <script type="text/javascript" src="../../search/search.js"></script>
13 <script type="text/javascript">
14   $(document).ready(function() { searchBox.OnSelectItem(0); });
15 </script>
16 <link href="../../doxygen.css" rel="stylesheet" type="text/css" />
17 </head>
18 <body>
19 <div id="top"><!-- do not remove this div, it is closed by doxygen! -->
20 <div id="titlearea">
21 <table cellspacing="0" cellpadding="0">
22  <tbody>
23  <tr style="height: 56px;">
24   <td style="padding-left: 0.5em;">
25    <div id="projectname">LibArch
26    </div>
27    <div id="projectbrief">Library architecture and framework</div>
28   </td>
29  </tr>
30  </tbody>
31 </table>
32 </div>
33 <!-- end header part -->
34 <!-- Generated by Doxygen 1.8.6 -->
35 <script type="text/javascript">
36 var searchBox = new SearchBox("searchBox", "../../search",false,'Search');
37 </script>
38   <div id="navrow1" class="tabs">
39     <ul class="tablist">
40       <li><a href="../../index.html"><span>Main&#160;Page</span></a></li>
41       <li><a href="../../modules.html"><span>Modules</span></a></li>
42       <li><a href="../../annotated.html"><span>Data&#160;Structures</span></a></li>
43       <li><a href="../../files.html"><span>Files</span></a></li>
44       <li>
45         <div id="MSearchBox" class="MSearchBoxInactive">
46         <span class="left">
47           <img id="MSearchSelect" src="../../search/mag_sel.png"
48                onmouseover="return searchBox.OnSearchSelectShow()"
49                onmouseout="return searchBox.OnSearchSelectHide()"
50                alt=""/>
51           <input type="text" id="MSearchField" value="Search" accesskey="S"
52                onfocus="searchBox.OnSearchFieldFocus(true)" 
53                onblur="searchBox.OnSearchFieldFocus(false)" 
54                onkeyup="searchBox.OnSearchFieldChange(event)"/>
55           </span><span class="right">
56             <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="../../search/close.png" alt=""/></a>
57           </span>
58         </div>
59       </li>
60     </ul>
61   </div>
62 </div><!-- top -->
63 <!-- window showing the filter options -->
64 <div id="MSearchSelectWindow"
65      onmouseover="return searchBox.OnSearchSelectShow()"
66      onmouseout="return searchBox.OnSearchSelectHide()"
67      onkeydown="return searchBox.OnSearchSelectKey(event)">
68 <a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Pages</a></div>
70 <!-- iframe showing the search results (closed by default) -->
71 <div id="MSearchResultsWindow">
72 <iframe src="javascript:void(0)" frameborder="0" 
73         name="MSearchResults" id="MSearchResults">
74 </iframe>
75 </div>
77 <div class="header">
78   <div class="summary">
79 <a href="#nested-classes">Data Structures</a> &#124;
80 <a href="#define-members">Macros</a> &#124;
81 <a href="#typedef-members">Typedefs</a> &#124;
82 <a href="#enum-members">Enumerations</a> &#124;
83 <a href="#func-members">Functions</a>  </div>
84   <div class="headertitle">
85 <div class="title">Memory Management API</div>  </div>
86 </div><!--header-->
87 <div class="contents">
89 <p>Error return codes of memory management functions.  
90 <a href="#details">More...</a></p>
91 <table class="memberdecls">
92 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
93 Data Structures</h2></td></tr>
94 <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../da/dec/structlib__memdscr__str.html">lib_memdscr_str</a></td></tr>
95 <tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Memory descriptor structure.  <a href="../../da/dec/structlib__memdscr__str.html#details">More...</a><br/></td></tr>
96 <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
97 </table><table class="memberdecls">
98 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
99 Macros</h2></td></tr>
100 <tr class="memitem:gacfa30c2c1e697da904265b91b9c60d2f"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d7/da6/group__libarch__memmgt.html#gacfa30c2c1e697da904265b91b9c60d2f">LIB_MEMMGT_SUCCESS</a>&#160;&#160;&#160;(0)</td></tr>
101 <tr class="separator:gacfa30c2c1e697da904265b91b9c60d2f"><td class="memSeparator" colspan="2">&#160;</td></tr>
102 <tr class="memitem:ga21728661e7141fcfd212ca8286a7947b"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d7/da6/group__libarch__memmgt.html#ga21728661e7141fcfd212ca8286a7947b">LIB_MEMMGT_ERROR</a>&#160;&#160;&#160;(-1)</td></tr>
103 <tr class="separator:ga21728661e7141fcfd212ca8286a7947b"><td class="memSeparator" colspan="2">&#160;</td></tr>
104 </table><table class="memberdecls">
105 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
106 Typedefs</h2></td></tr>
107 <tr class="memitem:ga933f44304562f9591104d57b7868ebc3"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="../../da/dec/structlib__memdscr__str.html">lib_memdscr_str</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d7/da6/group__libarch__memmgt.html#ga933f44304562f9591104d57b7868ebc3">lib_memdscr_t</a></td></tr>
108 <tr class="memdesc:ga933f44304562f9591104d57b7868ebc3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Memory descriptor structure.  <a href="#ga933f44304562f9591104d57b7868ebc3">More...</a><br/></td></tr>
109 <tr class="separator:ga933f44304562f9591104d57b7868ebc3"><td class="memSeparator" colspan="2">&#160;</td></tr>
110 </table><table class="memberdecls">
111 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
112 Enumerations</h2></td></tr>
113 <tr class="memitem:ga06fc87d81c62e9abb8790b6e5713c55b"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom">{ <br/>
114 &#160;&#160;<a class="el" href="../../d7/da6/group__libarch__memmgt.html#gga06fc87d81c62e9abb8790b6e5713c55ba98a90dd78f7e0d087e7d9c66505011c7">LIB_SMEM_VFAST</a> = 0, 
115 <a class="el" href="../../d7/da6/group__libarch__memmgt.html#gga06fc87d81c62e9abb8790b6e5713c55ba0554f0354c84251e347c0ee79ffe046d">LIB_SMEM_FAST</a>, 
116 <a class="el" href="../../d7/da6/group__libarch__memmgt.html#gga06fc87d81c62e9abb8790b6e5713c55bab6e0c7570cd8f2ada826e36d607d8abb">LIB_SMEM_MED</a>, 
117 <a class="el" href="../../d7/da6/group__libarch__memmgt.html#gga06fc87d81c62e9abb8790b6e5713c55badc4290cb2bdcc915f3156f39ce3ea361">LIB_SMEM_SLOW</a>, 
118 <br/>
119 &#160;&#160;<a class="el" href="../../d7/da6/group__libarch__memmgt.html#gga06fc87d81c62e9abb8790b6e5713c55ba5e2798bb86ffcd081fbd1a7fad3571a2">LIB_PMEM_MED</a>, 
120 <a class="el" href="../../d7/da6/group__libarch__memmgt.html#gga06fc87d81c62e9abb8790b6e5713c55ba106f7b37f3b11574158123d265359eeb">LIB_PMEM_SLOW</a>, 
121 <a class="el" href="../../d7/da6/group__libarch__memmgt.html#gga06fc87d81c62e9abb8790b6e5713c55ba1cb4f966271cb92f79ba8229136f3a70">LIB_MEMTYPE_N</a>
122 <br/>
123  }</td></tr>
124 <tr class="memdesc:ga06fc87d81c62e9abb8790b6e5713c55b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Memory types in terms of speed and volatility.  <a href="../../d7/da6/group__libarch__memmgt.html#ga06fc87d81c62e9abb8790b6e5713c55b">More...</a><br/></td></tr>
125 <tr class="separator:ga06fc87d81c62e9abb8790b6e5713c55b"><td class="memSeparator" colspan="2">&#160;</td></tr>
126 </table><table class="memberdecls">
127 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
128 Functions</h2></td></tr>
129 <tr class="memitem:gaeeb7c8294fcd4640e4eaf7a741397032"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d7/da6/group__libarch__memmgt.html#gaeeb7c8294fcd4640e4eaf7a741397032">lib_smem_vinit</a> (void *handle, void *base, size_t size)</td></tr>
130 <tr class="memdesc:gaeeb7c8294fcd4640e4eaf7a741397032"><td class="mdescLeft">&#160;</td><td class="mdescRight">Function lib_smem_vinit performs necessary initialization for the very fast scratch heap memory allocation.  <a href="#gaeeb7c8294fcd4640e4eaf7a741397032">More...</a><br/></td></tr>
131 <tr class="separator:gaeeb7c8294fcd4640e4eaf7a741397032"><td class="memSeparator" colspan="2">&#160;</td></tr>
132 <tr class="memitem:gadd591cf0185afae77c89e62a35af6395"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d7/da6/group__libarch__memmgt.html#gadd591cf0185afae77c89e62a35af6395">lib_smem_finit</a> (void *handle, void *base, size_t size)</td></tr>
133 <tr class="memdesc:gadd591cf0185afae77c89e62a35af6395"><td class="mdescLeft">&#160;</td><td class="mdescRight">Function lib_smem_finit performs necessary initialization for the fast scratch heap memory allocation.  <a href="#gadd591cf0185afae77c89e62a35af6395">More...</a><br/></td></tr>
134 <tr class="separator:gadd591cf0185afae77c89e62a35af6395"><td class="memSeparator" colspan="2">&#160;</td></tr>
135 <tr class="memitem:ga991a1c6d4b40f4b4750c7fd1f8aa73f6"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d7/da6/group__libarch__memmgt.html#ga991a1c6d4b40f4b4750c7fd1f8aa73f6">lib_smem_minit</a> (void *handle, void *base, size_t size)</td></tr>
136 <tr class="memdesc:ga991a1c6d4b40f4b4750c7fd1f8aa73f6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Function lib_smem_minit performs necessary initialization for the medium speed scratch heap memory allocation.  <a href="#ga991a1c6d4b40f4b4750c7fd1f8aa73f6">More...</a><br/></td></tr>
137 <tr class="separator:ga991a1c6d4b40f4b4750c7fd1f8aa73f6"><td class="memSeparator" colspan="2">&#160;</td></tr>
138 <tr class="memitem:ga1dd9ae589bdfe68ced145885ea4c4789"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d7/da6/group__libarch__memmgt.html#ga1dd9ae589bdfe68ced145885ea4c4789">lib_smem_sinit</a> (void *handle, void *base, size_t size)</td></tr>
139 <tr class="memdesc:ga1dd9ae589bdfe68ced145885ea4c4789"><td class="mdescLeft">&#160;</td><td class="mdescRight">Function lib_smem_sinit performs necessary initialization for the slow scratch heap memory allocation.  <a href="#ga1dd9ae589bdfe68ced145885ea4c4789">More...</a><br/></td></tr>
140 <tr class="separator:ga1dd9ae589bdfe68ced145885ea4c4789"><td class="memSeparator" colspan="2">&#160;</td></tr>
141 <tr class="memitem:ga24093174e441c683650863236dcb9806"><td class="memItemLeft" align="right" valign="top">void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d7/da6/group__libarch__memmgt.html#ga24093174e441c683650863236dcb9806">lib_smem_valloc</a> (void *handle, size_t size, size_t align)</td></tr>
142 <tr class="memdesc:ga24093174e441c683650863236dcb9806"><td class="mdescLeft">&#160;</td><td class="mdescRight">Function lib_smem_valloc allocates a memory block from the very fast scratch heap. It will also align the allocated memory block as requested.  <a href="#ga24093174e441c683650863236dcb9806">More...</a><br/></td></tr>
143 <tr class="separator:ga24093174e441c683650863236dcb9806"><td class="memSeparator" colspan="2">&#160;</td></tr>
144 <tr class="memitem:ga51d763b1f89ef58e83cb9e4bc7546ba8"><td class="memItemLeft" align="right" valign="top">void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d7/da6/group__libarch__memmgt.html#ga51d763b1f89ef58e83cb9e4bc7546ba8">lib_smem_falloc</a> (void *handle, size_t size, size_t align)</td></tr>
145 <tr class="memdesc:ga51d763b1f89ef58e83cb9e4bc7546ba8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Function lib_smem_falloc allocates a memory block from the fast scratch heap. It will also align the address of the allocated memory block as requested.  <a href="#ga51d763b1f89ef58e83cb9e4bc7546ba8">More...</a><br/></td></tr>
146 <tr class="separator:ga51d763b1f89ef58e83cb9e4bc7546ba8"><td class="memSeparator" colspan="2">&#160;</td></tr>
147 <tr class="memitem:gaac0047f2fe5ce1dfad45fc0333d906dc"><td class="memItemLeft" align="right" valign="top">void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d7/da6/group__libarch__memmgt.html#gaac0047f2fe5ce1dfad45fc0333d906dc">lib_smem_malloc</a> (void *handle, size_t size, size_t align)</td></tr>
148 <tr class="memdesc:gaac0047f2fe5ce1dfad45fc0333d906dc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Function lib_smem_malloc allocates a memory block from the medium speed scratch heap. It will also align the address of the allocated memory block as requested.  <a href="#gaac0047f2fe5ce1dfad45fc0333d906dc">More...</a><br/></td></tr>
149 <tr class="separator:gaac0047f2fe5ce1dfad45fc0333d906dc"><td class="memSeparator" colspan="2">&#160;</td></tr>
150 <tr class="memitem:ga08b73e8bf61fb50e20e08f7df4de636b"><td class="memItemLeft" align="right" valign="top">void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d7/da6/group__libarch__memmgt.html#ga08b73e8bf61fb50e20e08f7df4de636b">lib_smem_salloc</a> (void *handle, size_t size, size_t align)</td></tr>
151 <tr class="memdesc:ga08b73e8bf61fb50e20e08f7df4de636b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Function lib_smem_salloc allocates a memory block from the slow scratch heap. It will also align the address of the allocated memory block as requested.  <a href="#ga08b73e8bf61fb50e20e08f7df4de636b">More...</a><br/></td></tr>
152 <tr class="separator:ga08b73e8bf61fb50e20e08f7df4de636b"><td class="memSeparator" colspan="2">&#160;</td></tr>
153 <tr class="memitem:ga65c30f7a20c6e359df9d73db0c9078c1"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d7/da6/group__libarch__memmgt.html#ga65c30f7a20c6e359df9d73db0c9078c1">lib_smem_vreset</a> (void *handle)</td></tr>
154 <tr class="memdesc:ga65c30f7a20c6e359df9d73db0c9078c1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Function lib_smem_vreset resets the very fast scratch heap and destroys all allocated memory blocks in it.  <a href="#ga65c30f7a20c6e359df9d73db0c9078c1">More...</a><br/></td></tr>
155 <tr class="separator:ga65c30f7a20c6e359df9d73db0c9078c1"><td class="memSeparator" colspan="2">&#160;</td></tr>
156 <tr class="memitem:ga18470bba549f0d9c4a6d98a1f615b8c2"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d7/da6/group__libarch__memmgt.html#ga18470bba549f0d9c4a6d98a1f615b8c2">lib_smem_freset</a> (void *handle)</td></tr>
157 <tr class="memdesc:ga18470bba549f0d9c4a6d98a1f615b8c2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Function lib_smem_freset resets the fast scratch heap and destroys all allocated memory blocks in it.  <a href="#ga18470bba549f0d9c4a6d98a1f615b8c2">More...</a><br/></td></tr>
158 <tr class="separator:ga18470bba549f0d9c4a6d98a1f615b8c2"><td class="memSeparator" colspan="2">&#160;</td></tr>
159 <tr class="memitem:ga38dbf46a5af66e691ba20ffb61f9932e"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d7/da6/group__libarch__memmgt.html#ga38dbf46a5af66e691ba20ffb61f9932e">lib_smem_mreset</a> (void *handle)</td></tr>
160 <tr class="memdesc:ga38dbf46a5af66e691ba20ffb61f9932e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Function lib_smem_mreset resets the medium speed scratch heap and destroys all allocated memory blocks in it.  <a href="#ga38dbf46a5af66e691ba20ffb61f9932e">More...</a><br/></td></tr>
161 <tr class="separator:ga38dbf46a5af66e691ba20ffb61f9932e"><td class="memSeparator" colspan="2">&#160;</td></tr>
162 <tr class="memitem:gaa3fb30e824c80ec62d4e7847f292108f"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d7/da6/group__libarch__memmgt.html#gaa3fb30e824c80ec62d4e7847f292108f">lib_smem_sreset</a> (void *handle)</td></tr>
163 <tr class="memdesc:gaa3fb30e824c80ec62d4e7847f292108f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Function lib_smem_mreset resets the slow scratch heap and destroys all allocated memory blocks in it.  <a href="#gaa3fb30e824c80ec62d4e7847f292108f">More...</a><br/></td></tr>
164 <tr class="separator:gaa3fb30e824c80ec62d4e7847f292108f"><td class="memSeparator" colspan="2">&#160;</td></tr>
165 <tr class="memitem:gaeae499cb566d6411b938107d3ffeb144"><td class="memItemLeft" align="right" valign="top">static void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d7/da6/group__libarch__memmgt.html#gaeae499cb566d6411b938107d3ffeb144">lib_pmem_malloc</a> (void *handle, size_t size, size_t align)</td></tr>
166 <tr class="memdesc:gaeae499cb566d6411b938107d3ffeb144"><td class="mdescLeft">&#160;</td><td class="mdescRight">Function lib_pmem_malloc allocates a memory block from the medium speed permanent heap. It will also align the address of the allocated memory block as requested.  <a href="#gaeae499cb566d6411b938107d3ffeb144">More...</a><br/></td></tr>
167 <tr class="separator:gaeae499cb566d6411b938107d3ffeb144"><td class="memSeparator" colspan="2">&#160;</td></tr>
168 <tr class="memitem:ga306a1aa220281f0b6d79b12928bfeff8"><td class="memItemLeft" align="right" valign="top">static void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d7/da6/group__libarch__memmgt.html#ga306a1aa220281f0b6d79b12928bfeff8">lib_pmem_salloc</a> (void *handle, size_t size, size_t align)</td></tr>
169 <tr class="memdesc:ga306a1aa220281f0b6d79b12928bfeff8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Function lib_pmem_salloc allocates a memory block from the slow permanent heap. It will also align the address of the allocated memory block as requested.  <a href="#ga306a1aa220281f0b6d79b12928bfeff8">More...</a><br/></td></tr>
170 <tr class="separator:ga306a1aa220281f0b6d79b12928bfeff8"><td class="memSeparator" colspan="2">&#160;</td></tr>
171 <tr class="memitem:gafeda2ec3f28d9ebb87a8adcecbb0f414"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d7/da6/group__libarch__memmgt.html#gafeda2ec3f28d9ebb87a8adcecbb0f414">lib_pmem_mfree</a> (void *handle, void *mem_ptr)</td></tr>
172 <tr class="memdesc:gafeda2ec3f28d9ebb87a8adcecbb0f414"><td class="mdescLeft">&#160;</td><td class="mdescRight">Refer to <a class="el" href="../../db/d68/lib__memmgt_8h.html">lib_memmgt.h</a> for detailed documentation.  <a href="#gafeda2ec3f28d9ebb87a8adcecbb0f414">More...</a><br/></td></tr>
173 <tr class="separator:gafeda2ec3f28d9ebb87a8adcecbb0f414"><td class="memSeparator" colspan="2">&#160;</td></tr>
174 <tr class="memitem:gab12e1d41b3d71633c9ab2d8818510f63"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d7/da6/group__libarch__memmgt.html#gab12e1d41b3d71633c9ab2d8818510f63">lib_pmem_sfree</a> (void *handle, void *mem_ptr)</td></tr>
175 <tr class="memdesc:gab12e1d41b3d71633c9ab2d8818510f63"><td class="mdescLeft">&#160;</td><td class="mdescRight">Refer to <a class="el" href="../../db/d68/lib__memmgt_8h.html">lib_memmgt.h</a> for detailed documentation.  <a href="#gab12e1d41b3d71633c9ab2d8818510f63">More...</a><br/></td></tr>
176 <tr class="separator:gab12e1d41b3d71633c9ab2d8818510f63"><td class="memSeparator" colspan="2">&#160;</td></tr>
177 </table>
178 <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
179 <p>Error return codes of memory management functions. </p>
180 <h2 class="groupheader">Macro Definition Documentation</h2>
181 <a class="anchor" id="ga21728661e7141fcfd212ca8286a7947b"></a>
182 <div class="memitem">
183 <div class="memproto">
184       <table class="memname">
185         <tr>
186           <td class="memname">#define LIB_MEMMGT_ERROR&#160;&#160;&#160;(-1)</td>
187         </tr>
188       </table>
189 </div><div class="memdoc">
190 <p>Failure. </p>
192 </div>
193 </div>
194 <a class="anchor" id="gacfa30c2c1e697da904265b91b9c60d2f"></a>
195 <div class="memitem">
196 <div class="memproto">
197       <table class="memname">
198         <tr>
199           <td class="memname">#define LIB_MEMMGT_SUCCESS&#160;&#160;&#160;(0)</td>
200         </tr>
201       </table>
202 </div><div class="memdoc">
203 <p>Success. No error. </p>
205 </div>
206 </div>
207 <h2 class="groupheader">Typedef Documentation</h2>
208 <a class="anchor" id="ga933f44304562f9591104d57b7868ebc3"></a>
209 <div class="memitem">
210 <div class="memproto">
211       <table class="memname">
212         <tr>
213           <td class="memname">typedef struct <a class="el" href="../../da/dec/structlib__memdscr__str.html">lib_memdscr_str</a>  <a class="el" href="../../d7/da6/group__libarch__memmgt.html#ga933f44304562f9591104d57b7868ebc3">lib_memdscr_t</a></td>
214         </tr>
215       </table>
216 </div><div class="memdoc">
218 <p>Memory descriptor structure. </p>
219 <dl class="section remark"><dt>Remarks</dt><dd>The user MUST define an array of memory descriptors and pass the address of the array to the heap initialization and allocation routines. For example, the memory descriptor array may be defined as: <pre class="fragment">    lib_memdscr_t libxyz_smem_med;
220     lib_memdscr_t libxyz_smem_fast;
221     lib_memdscr_t libxyz_smem_vfast;
222     
223     lib_memdscr_t * libxyz_memdscr_tab[LIB_MEMTYPE_N] = {
224       &amp;libxyz_smem_vfast,
225       &amp;libxyz_smem_fast,
226       &amp;libxyz_smem_med,
227       NULL                // scratch slow memory is not used by libxyz 
228     };</pre> </dd></dl>
230 </div>
231 </div>
232 <h2 class="groupheader">Enumeration Type Documentation</h2>
233 <a class="anchor" id="ga06fc87d81c62e9abb8790b6e5713c55b"></a>
234 <div class="memitem">
235 <div class="memproto">
236       <table class="memname">
237         <tr>
238           <td class="memname">anonymous enum</td>
239         </tr>
240       </table>
241 </div><div class="memdoc">
243 <p>Memory types in terms of speed and volatility. </p>
244 <table class="fieldtable">
245 <tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><em><a class="anchor" id="gga06fc87d81c62e9abb8790b6e5713c55ba98a90dd78f7e0d087e7d9c66505011c7"></a>LIB_SMEM_VFAST</em>&#160;</td><td class="fielddoc">
246 <p>Scratch memory, very fast </p>
247 </td></tr>
248 <tr><td class="fieldname"><em><a class="anchor" id="gga06fc87d81c62e9abb8790b6e5713c55ba0554f0354c84251e347c0ee79ffe046d"></a>LIB_SMEM_FAST</em>&#160;</td><td class="fielddoc">
249 <p>Scratch memory, fast </p>
250 </td></tr>
251 <tr><td class="fieldname"><em><a class="anchor" id="gga06fc87d81c62e9abb8790b6e5713c55bab6e0c7570cd8f2ada826e36d607d8abb"></a>LIB_SMEM_MED</em>&#160;</td><td class="fielddoc">
252 <p>Scratch memory, medium speed </p>
253 </td></tr>
254 <tr><td class="fieldname"><em><a class="anchor" id="gga06fc87d81c62e9abb8790b6e5713c55badc4290cb2bdcc915f3156f39ce3ea361"></a>LIB_SMEM_SLOW</em>&#160;</td><td class="fielddoc">
255 <p>Scratch memory, slow </p>
256 </td></tr>
257 <tr><td class="fieldname"><em><a class="anchor" id="gga06fc87d81c62e9abb8790b6e5713c55ba5e2798bb86ffcd081fbd1a7fad3571a2"></a>LIB_PMEM_MED</em>&#160;</td><td class="fielddoc">
258 <p>Permanent memory, medium speed </p>
259 </td></tr>
260 <tr><td class="fieldname"><em><a class="anchor" id="gga06fc87d81c62e9abb8790b6e5713c55ba106f7b37f3b11574158123d265359eeb"></a>LIB_PMEM_SLOW</em>&#160;</td><td class="fielddoc">
261 <p>Permanent memory, slow </p>
262 </td></tr>
263 <tr><td class="fieldname"><em><a class="anchor" id="gga06fc87d81c62e9abb8790b6e5713c55ba1cb4f966271cb92f79ba8229136f3a70"></a>LIB_MEMTYPE_N</em>&#160;</td><td class="fielddoc">
264 <p>Total number of types </p>
265 </td></tr>
266 </table>
268 </div>
269 </div>
270 <h2 class="groupheader">Function Documentation</h2>
271 <a class="anchor" id="gaeae499cb566d6411b938107d3ffeb144"></a>
272 <div class="memitem">
273 <div class="memproto">
274 <table class="mlabels">
275   <tr>
276   <td class="mlabels-left">
277       <table class="memname">
278         <tr>
279           <td class="memname">static void* lib_pmem_malloc </td>
280           <td>(</td>
281           <td class="paramtype">void *&#160;</td>
282           <td class="paramname"><em>handle</em>, </td>
283         </tr>
284         <tr>
285           <td class="paramkey"></td>
286           <td></td>
287           <td class="paramtype">size_t&#160;</td>
288           <td class="paramname"><em>size</em>, </td>
289         </tr>
290         <tr>
291           <td class="paramkey"></td>
292           <td></td>
293           <td class="paramtype">size_t&#160;</td>
294           <td class="paramname"><em>align</em>&#160;</td>
295         </tr>
296         <tr>
297           <td></td>
298           <td>)</td>
299           <td></td><td></td>
300         </tr>
301       </table>
302   </td>
303   <td class="mlabels-right">
304 <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
305   </tr>
306 </table>
307 </div><div class="memdoc">
309 <p>Function lib_pmem_malloc allocates a memory block from the medium speed permanent heap. It will also align the address of the allocated memory block as requested. </p>
310 <dl class="section remark"><dt>Remarks</dt><dd>In this release, this function simply calls run time support library function memalign().</dd></dl>
311 <dl class="params"><dt>Parameters</dt><dd>
312   <table class="params">
313     <tr><td class="paramdir">[in]</td><td class="paramname">handle</td><td>Pointer to the memory descriptor array defined by the library using this funciton </td></tr>
314     <tr><td class="paramdir">[in]</td><td class="paramname">size</td><td>Size of memory block to be allocated </td></tr>
315     <tr><td class="paramdir">[in]</td><td class="paramname">align</td><td>Alignment. The address of the allocated memory block will be aligned to 2^align bytes.</td></tr>
316   </table>
317   </dd>
318 </dl>
319 <dl class="retval"><dt>Return values</dt><dd>
320   <table class="retval">
321     <tr><td class="paramname">Non-NULL</td><td>Address of the allocated memory block </td></tr>
322     <tr><td class="paramname">NULL</td><td>Failure to allocate memory </td></tr>
323   </table>
324   </dd>
325 </dl>
327 </div>
328 </div>
329 <a class="anchor" id="gafeda2ec3f28d9ebb87a8adcecbb0f414"></a>
330 <div class="memitem">
331 <div class="memproto">
332 <table class="mlabels">
333   <tr>
334   <td class="mlabels-left">
335       <table class="memname">
336         <tr>
337           <td class="memname">static void lib_pmem_mfree </td>
338           <td>(</td>
339           <td class="paramtype">void *&#160;</td>
340           <td class="paramname"><em>handle</em>, </td>
341         </tr>
342         <tr>
343           <td class="paramkey"></td>
344           <td></td>
345           <td class="paramtype">void *&#160;</td>
346           <td class="paramname"><em>mem_ptr</em>&#160;</td>
347         </tr>
348         <tr>
349           <td></td>
350           <td>)</td>
351           <td></td><td></td>
352         </tr>
353       </table>
354   </td>
355   <td class="mlabels-right">
356 <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
357   </tr>
358 </table>
359 </div><div class="memdoc">
361 <p>Refer to <a class="el" href="../../db/d68/lib__memmgt_8h.html">lib_memmgt.h</a> for detailed documentation. </p>
362 <dl class="section remark"><dt>Remarks</dt><dd>In this release, this function simply calls run time support library function free().</dd></dl>
363 <dl class="params"><dt>Parameters</dt><dd>
364   <table class="params">
365     <tr><td class="paramdir">[in]</td><td class="paramname">handle</td><td>Pointer to the memory descriptor array defined by the library using this funciton </td></tr>
366     <tr><td class="paramdir">[in]</td><td class="paramname">mem_ptr</td><td>Pointer to the memory to be freed </td></tr>
367   </table>
368   </dd>
369 </dl>
371 </div>
372 </div>
373 <a class="anchor" id="ga306a1aa220281f0b6d79b12928bfeff8"></a>
374 <div class="memitem">
375 <div class="memproto">
376 <table class="mlabels">
377   <tr>
378   <td class="mlabels-left">
379       <table class="memname">
380         <tr>
381           <td class="memname">static void* lib_pmem_salloc </td>
382           <td>(</td>
383           <td class="paramtype">void *&#160;</td>
384           <td class="paramname"><em>handle</em>, </td>
385         </tr>
386         <tr>
387           <td class="paramkey"></td>
388           <td></td>
389           <td class="paramtype">size_t&#160;</td>
390           <td class="paramname"><em>size</em>, </td>
391         </tr>
392         <tr>
393           <td class="paramkey"></td>
394           <td></td>
395           <td class="paramtype">size_t&#160;</td>
396           <td class="paramname"><em>align</em>&#160;</td>
397         </tr>
398         <tr>
399           <td></td>
400           <td>)</td>
401           <td></td><td></td>
402         </tr>
403       </table>
404   </td>
405   <td class="mlabels-right">
406 <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
407   </tr>
408 </table>
409 </div><div class="memdoc">
411 <p>Function lib_pmem_salloc allocates a memory block from the slow permanent heap. It will also align the address of the allocated memory block as requested. </p>
412 <dl class="section remark"><dt>Remarks</dt><dd>In this release, this function simply calls run time support library function memalign().</dd></dl>
413 <dl class="params"><dt>Parameters</dt><dd>
414   <table class="params">
415     <tr><td class="paramdir">[in]</td><td class="paramname">handle</td><td>Pointer to the memory descriptor array defined by the library using this funciton </td></tr>
416     <tr><td class="paramdir">[in]</td><td class="paramname">size</td><td>Size of memory block to be allocated </td></tr>
417     <tr><td class="paramdir">[in]</td><td class="paramname">align</td><td>Alignment. The address of the allocated memory block will be aligned to 2^align bytes.</td></tr>
418   </table>
419   </dd>
420 </dl>
421 <dl class="retval"><dt>Return values</dt><dd>
422   <table class="retval">
423     <tr><td class="paramname">Non-NULL</td><td>Address of the allocated memory block </td></tr>
424     <tr><td class="paramname">NULL</td><td>Failure to allocate memory </td></tr>
425   </table>
426   </dd>
427 </dl>
429 </div>
430 </div>
431 <a class="anchor" id="gab12e1d41b3d71633c9ab2d8818510f63"></a>
432 <div class="memitem">
433 <div class="memproto">
434 <table class="mlabels">
435   <tr>
436   <td class="mlabels-left">
437       <table class="memname">
438         <tr>
439           <td class="memname">static void lib_pmem_sfree </td>
440           <td>(</td>
441           <td class="paramtype">void *&#160;</td>
442           <td class="paramname"><em>handle</em>, </td>
443         </tr>
444         <tr>
445           <td class="paramkey"></td>
446           <td></td>
447           <td class="paramtype">void *&#160;</td>
448           <td class="paramname"><em>mem_ptr</em>&#160;</td>
449         </tr>
450         <tr>
451           <td></td>
452           <td>)</td>
453           <td></td><td></td>
454         </tr>
455       </table>
456   </td>
457   <td class="mlabels-right">
458 <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
459   </tr>
460 </table>
461 </div><div class="memdoc">
463 <p>Refer to <a class="el" href="../../db/d68/lib__memmgt_8h.html">lib_memmgt.h</a> for detailed documentation. </p>
464 <dl class="section remark"><dt>Remarks</dt><dd>In this release, this function simply calls run time support library function free().</dd></dl>
465 <dl class="params"><dt>Parameters</dt><dd>
466   <table class="params">
467     <tr><td class="paramdir">[in]</td><td class="paramname">handle</td><td>Pointer to the memory descriptor array defined by the library using this funciton </td></tr>
468     <tr><td class="paramdir">[in]</td><td class="paramname">mem_ptr</td><td>Pointer to the memory to be freed </td></tr>
469   </table>
470   </dd>
471 </dl>
473 </div>
474 </div>
475 <a class="anchor" id="ga51d763b1f89ef58e83cb9e4bc7546ba8"></a>
476 <div class="memitem">
477 <div class="memproto">
478       <table class="memname">
479         <tr>
480           <td class="memname">void* lib_smem_falloc </td>
481           <td>(</td>
482           <td class="paramtype">void *&#160;</td>
483           <td class="paramname"><em>handle</em>, </td>
484         </tr>
485         <tr>
486           <td class="paramkey"></td>
487           <td></td>
488           <td class="paramtype">size_t&#160;</td>
489           <td class="paramname"><em>size</em>, </td>
490         </tr>
491         <tr>
492           <td class="paramkey"></td>
493           <td></td>
494           <td class="paramtype">size_t&#160;</td>
495           <td class="paramname"><em>align</em>&#160;</td>
496         </tr>
497         <tr>
498           <td></td>
499           <td>)</td>
500           <td></td><td></td>
501         </tr>
502       </table>
503 </div><div class="memdoc">
505 <p>Function lib_smem_falloc allocates a memory block from the fast scratch heap. It will also align the address of the allocated memory block as requested. </p>
506 <dl class="params"><dt>Parameters</dt><dd>
507   <table class="params">
508     <tr><td class="paramdir">[in]</td><td class="paramname">handle</td><td>Pointer to the memory descriptor array defined by the library using this funciton </td></tr>
509     <tr><td class="paramdir">[in]</td><td class="paramname">size</td><td>Size of memory block to be allocated </td></tr>
510     <tr><td class="paramdir">[in]</td><td class="paramname">align</td><td>Alignment. The address of the allocated memory block will be aligned to 2^align bytes.</td></tr>
511   </table>
512   </dd>
513 </dl>
514 <dl class="retval"><dt>Return values</dt><dd>
515   <table class="retval">
516     <tr><td class="paramname">Non-NULL</td><td>Address of the allocated memory block </td></tr>
517     <tr><td class="paramname">NULL</td><td>Failure to allocate memory</td></tr>
518   </table>
519   </dd>
520 </dl>
521 <dl class="section pre"><dt>Precondition</dt><dd>Function lib_smem_finit must be called first before this function can be used to allocate memory.</dd></dl>
522 <p>Function lib_smem_falloc allocates a memory block from the fast scratch heap. It will also align the address of the allocated memory block as requested. </p>
524 </div>
525 </div>
526 <a class="anchor" id="gadd591cf0185afae77c89e62a35af6395"></a>
527 <div class="memitem">
528 <div class="memproto">
529       <table class="memname">
530         <tr>
531           <td class="memname">int lib_smem_finit </td>
532           <td>(</td>
533           <td class="paramtype">void *&#160;</td>
534           <td class="paramname"><em>handle</em>, </td>
535         </tr>
536         <tr>
537           <td class="paramkey"></td>
538           <td></td>
539           <td class="paramtype">void *&#160;</td>
540           <td class="paramname"><em>base</em>, </td>
541         </tr>
542         <tr>
543           <td class="paramkey"></td>
544           <td></td>
545           <td class="paramtype">size_t&#160;</td>
546           <td class="paramname"><em>size</em>&#160;</td>
547         </tr>
548         <tr>
549           <td></td>
550           <td>)</td>
551           <td></td><td></td>
552         </tr>
553       </table>
554 </div><div class="memdoc">
556 <p>Function lib_smem_finit performs necessary initialization for the fast scratch heap memory allocation. </p>
557 <dl class="params"><dt>Parameters</dt><dd>
558   <table class="params">
559     <tr><td class="paramdir">[in]</td><td class="paramname">handle</td><td>Pointer to the memory descriptor array </td></tr>
560     <tr><td class="paramdir">[in]</td><td class="paramname">base</td><td>Base address of the memory to be used as fast scratch </td></tr>
561     <tr><td class="paramdir">[in]</td><td class="paramname">size</td><td>Size of the memory in bytes</td></tr>
562   </table>
563   </dd>
564 </dl>
565 <dl class="retval"><dt>Return values</dt><dd>
566   <table class="retval">
567     <tr><td class="paramname">LIB_MEMMGT_SUCCESS</td><td>Success. No error. </td></tr>
568     <tr><td class="paramname">LIB_MEMMGT_ERROR</td><td>Failure.</td></tr>
569   </table>
570   </dd>
571 </dl>
572 <p>Function lib_smem_finit performs necessary initialization for the fast scratch heap memory allocation. </p>
574 </div>
575 </div>
576 <a class="anchor" id="ga18470bba549f0d9c4a6d98a1f615b8c2"></a>
577 <div class="memitem">
578 <div class="memproto">
579       <table class="memname">
580         <tr>
581           <td class="memname">int lib_smem_freset </td>
582           <td>(</td>
583           <td class="paramtype">void *&#160;</td>
584           <td class="paramname"><em>handle</em></td><td>)</td>
585           <td></td>
586         </tr>
587       </table>
588 </div><div class="memdoc">
590 <p>Function lib_smem_freset resets the fast scratch heap and destroys all allocated memory blocks in it. </p>
591 <dl class="params"><dt>Parameters</dt><dd>
592   <table class="params">
593     <tr><td class="paramdir">[in]</td><td class="paramname">handle</td><td>Pointer to the memory descriptor array defined by the library using this funciton</td></tr>
594   </table>
595   </dd>
596 </dl>
597 <dl class="retval"><dt>Return values</dt><dd>
598   <table class="retval">
599     <tr><td class="paramname">LIB_MEMMGT_SUCCESS</td><td>Success. No error. </td></tr>
600     <tr><td class="paramname">LIB_MEMMGT_ERROR</td><td>Failure.</td></tr>
601   </table>
602   </dd>
603 </dl>
604 <dl class="section pre"><dt>Precondition</dt><dd>Function lib_smem_finit must be called first before this function can be called.</dd></dl>
605 <p>Function lib_smem_freset resets the fast scratch heap and destroys all allocated memory blocks in it. </p>
607 </div>
608 </div>
609 <a class="anchor" id="gaac0047f2fe5ce1dfad45fc0333d906dc"></a>
610 <div class="memitem">
611 <div class="memproto">
612       <table class="memname">
613         <tr>
614           <td class="memname">void* lib_smem_malloc </td>
615           <td>(</td>
616           <td class="paramtype">void *&#160;</td>
617           <td class="paramname"><em>handle</em>, </td>
618         </tr>
619         <tr>
620           <td class="paramkey"></td>
621           <td></td>
622           <td class="paramtype">size_t&#160;</td>
623           <td class="paramname"><em>size</em>, </td>
624         </tr>
625         <tr>
626           <td class="paramkey"></td>
627           <td></td>
628           <td class="paramtype">size_t&#160;</td>
629           <td class="paramname"><em>align</em>&#160;</td>
630         </tr>
631         <tr>
632           <td></td>
633           <td>)</td>
634           <td></td><td></td>
635         </tr>
636       </table>
637 </div><div class="memdoc">
639 <p>Function lib_smem_malloc allocates a memory block from the medium speed scratch heap. It will also align the address of the allocated memory block as requested. </p>
640 <dl class="params"><dt>Parameters</dt><dd>
641   <table class="params">
642     <tr><td class="paramdir">[in]</td><td class="paramname">handle</td><td>Pointer to the memory descriptor array defined by the library using this funciton </td></tr>
643     <tr><td class="paramdir">[in]</td><td class="paramname">size</td><td>Size of memory block to be allocated </td></tr>
644     <tr><td class="paramdir">[in]</td><td class="paramname">align</td><td>Alignment. The address of the allocated memory block will be aligned to 2^align bytes.</td></tr>
645   </table>
646   </dd>
647 </dl>
648 <dl class="retval"><dt>Return values</dt><dd>
649   <table class="retval">
650     <tr><td class="paramname">Non-NULL</td><td>Address of the allocated memory block </td></tr>
651     <tr><td class="paramname">NULL</td><td>Failure to allocate memory</td></tr>
652   </table>
653   </dd>
654 </dl>
655 <dl class="section pre"><dt>Precondition</dt><dd>Function lib_smem_minit must be called first before this function can be used to allocate memory.</dd></dl>
656 <p>Function lib_smem_malloc allocates a memory block from the medium speed scratch heap. It will also align the address of the allocated memory block as requested. </p>
658 </div>
659 </div>
660 <a class="anchor" id="ga991a1c6d4b40f4b4750c7fd1f8aa73f6"></a>
661 <div class="memitem">
662 <div class="memproto">
663       <table class="memname">
664         <tr>
665           <td class="memname">int lib_smem_minit </td>
666           <td>(</td>
667           <td class="paramtype">void *&#160;</td>
668           <td class="paramname"><em>handle</em>, </td>
669         </tr>
670         <tr>
671           <td class="paramkey"></td>
672           <td></td>
673           <td class="paramtype">void *&#160;</td>
674           <td class="paramname"><em>base</em>, </td>
675         </tr>
676         <tr>
677           <td class="paramkey"></td>
678           <td></td>
679           <td class="paramtype">size_t&#160;</td>
680           <td class="paramname"><em>size</em>&#160;</td>
681         </tr>
682         <tr>
683           <td></td>
684           <td>)</td>
685           <td></td><td></td>
686         </tr>
687       </table>
688 </div><div class="memdoc">
690 <p>Function lib_smem_minit performs necessary initialization for the medium speed scratch heap memory allocation. </p>
691 <dl class="params"><dt>Parameters</dt><dd>
692   <table class="params">
693     <tr><td class="paramdir">[in]</td><td class="paramname">handle</td><td>Pointer to the memory descriptor array </td></tr>
694     <tr><td class="paramdir">[in]</td><td class="paramname">base</td><td>Base address of the memory to be used as medium scratch </td></tr>
695     <tr><td class="paramdir">[in]</td><td class="paramname">size</td><td>Size of the memory in bytes</td></tr>
696   </table>
697   </dd>
698 </dl>
699 <dl class="retval"><dt>Return values</dt><dd>
700   <table class="retval">
701     <tr><td class="paramname">LIB_MEMMGT_SUCCESS</td><td>Success. No error. </td></tr>
702     <tr><td class="paramname">LIB_MEMMGT_ERROR</td><td>Failure.</td></tr>
703   </table>
704   </dd>
705 </dl>
706 <p>Function lib_smem_minit performs necessary initialization for the medium speed scratch heap memory allocation. </p>
708 </div>
709 </div>
710 <a class="anchor" id="ga38dbf46a5af66e691ba20ffb61f9932e"></a>
711 <div class="memitem">
712 <div class="memproto">
713       <table class="memname">
714         <tr>
715           <td class="memname">int lib_smem_mreset </td>
716           <td>(</td>
717           <td class="paramtype">void *&#160;</td>
718           <td class="paramname"><em>handle</em></td><td>)</td>
719           <td></td>
720         </tr>
721       </table>
722 </div><div class="memdoc">
724 <p>Function lib_smem_mreset resets the medium speed scratch heap and destroys all allocated memory blocks in it. </p>
725 <dl class="params"><dt>Parameters</dt><dd>
726   <table class="params">
727     <tr><td class="paramdir">[in]</td><td class="paramname">handle</td><td>Pointer to the memory descriptor array defined by the library using this funciton</td></tr>
728   </table>
729   </dd>
730 </dl>
731 <dl class="retval"><dt>Return values</dt><dd>
732   <table class="retval">
733     <tr><td class="paramname">LIB_MEMMGT_SUCCESS</td><td>Success. No error. </td></tr>
734     <tr><td class="paramname">LIB_MEMMGT_ERROR</td><td>Failure.</td></tr>
735   </table>
736   </dd>
737 </dl>
738 <dl class="section pre"><dt>Precondition</dt><dd>Function lib_smem_minit must be called first before this function can be called.</dd></dl>
739 <p>Function lib_smem_mreset resets the medium speed scratch heap and destroys all allocated memory blocks in it. </p>
741 </div>
742 </div>
743 <a class="anchor" id="ga08b73e8bf61fb50e20e08f7df4de636b"></a>
744 <div class="memitem">
745 <div class="memproto">
746       <table class="memname">
747         <tr>
748           <td class="memname">void* lib_smem_salloc </td>
749           <td>(</td>
750           <td class="paramtype">void *&#160;</td>
751           <td class="paramname"><em>handle</em>, </td>
752         </tr>
753         <tr>
754           <td class="paramkey"></td>
755           <td></td>
756           <td class="paramtype">size_t&#160;</td>
757           <td class="paramname"><em>size</em>, </td>
758         </tr>
759         <tr>
760           <td class="paramkey"></td>
761           <td></td>
762           <td class="paramtype">size_t&#160;</td>
763           <td class="paramname"><em>align</em>&#160;</td>
764         </tr>
765         <tr>
766           <td></td>
767           <td>)</td>
768           <td></td><td></td>
769         </tr>
770       </table>
771 </div><div class="memdoc">
773 <p>Function lib_smem_salloc allocates a memory block from the slow scratch heap. It will also align the address of the allocated memory block as requested. </p>
774 <dl class="params"><dt>Parameters</dt><dd>
775   <table class="params">
776     <tr><td class="paramdir">[in]</td><td class="paramname">handle</td><td>Pointer to the memory descriptor array defined by the library using this funciton </td></tr>
777     <tr><td class="paramdir">[in]</td><td class="paramname">size</td><td>Size of memory block to be allocated </td></tr>
778     <tr><td class="paramdir">[in]</td><td class="paramname">align</td><td>Alignment. The address of the allocated memory block will be aligned to 2^align bytes.</td></tr>
779   </table>
780   </dd>
781 </dl>
782 <dl class="retval"><dt>Return values</dt><dd>
783   <table class="retval">
784     <tr><td class="paramname">Non-NULL</td><td>Address of the allocated memory block </td></tr>
785     <tr><td class="paramname">NULL</td><td>Failure to allocate memory</td></tr>
786   </table>
787   </dd>
788 </dl>
789 <dl class="section pre"><dt>Precondition</dt><dd>Function lib_smem_sinit must be called first before this function can be used to allocate memory.</dd></dl>
790 <p>Function lib_smem_salloc allocates a memory block from the slow scratch heap. It will also align the address of the allocated memory block as requested. </p>
792 </div>
793 </div>
794 <a class="anchor" id="ga1dd9ae589bdfe68ced145885ea4c4789"></a>
795 <div class="memitem">
796 <div class="memproto">
797       <table class="memname">
798         <tr>
799           <td class="memname">int lib_smem_sinit </td>
800           <td>(</td>
801           <td class="paramtype">void *&#160;</td>
802           <td class="paramname"><em>handle</em>, </td>
803         </tr>
804         <tr>
805           <td class="paramkey"></td>
806           <td></td>
807           <td class="paramtype">void *&#160;</td>
808           <td class="paramname"><em>base</em>, </td>
809         </tr>
810         <tr>
811           <td class="paramkey"></td>
812           <td></td>
813           <td class="paramtype">size_t&#160;</td>
814           <td class="paramname"><em>size</em>&#160;</td>
815         </tr>
816         <tr>
817           <td></td>
818           <td>)</td>
819           <td></td><td></td>
820         </tr>
821       </table>
822 </div><div class="memdoc">
824 <p>Function lib_smem_sinit performs necessary initialization for the slow scratch heap memory allocation. </p>
825 <dl class="params"><dt>Parameters</dt><dd>
826   <table class="params">
827     <tr><td class="paramdir">[in]</td><td class="paramname">handle</td><td>Pointer to the memory descriptor array </td></tr>
828     <tr><td class="paramdir">[in]</td><td class="paramname">base</td><td>Base address of the memory to be used as slow scratch </td></tr>
829     <tr><td class="paramdir">[in]</td><td class="paramname">size</td><td>Size of the memory in bytes</td></tr>
830   </table>
831   </dd>
832 </dl>
833 <dl class="retval"><dt>Return values</dt><dd>
834   <table class="retval">
835     <tr><td class="paramname">LIB_MEMMGT_SUCCESS</td><td>Success. No error. </td></tr>
836     <tr><td class="paramname">LIB_MEMMGT_ERROR</td><td>Failure.</td></tr>
837   </table>
838   </dd>
839 </dl>
840 <p>Function lib_smem_sinit performs necessary initialization for the slow scratch heap memory allocation. </p>
842 </div>
843 </div>
844 <a class="anchor" id="gaa3fb30e824c80ec62d4e7847f292108f"></a>
845 <div class="memitem">
846 <div class="memproto">
847       <table class="memname">
848         <tr>
849           <td class="memname">int lib_smem_sreset </td>
850           <td>(</td>
851           <td class="paramtype">void *&#160;</td>
852           <td class="paramname"><em>handle</em></td><td>)</td>
853           <td></td>
854         </tr>
855       </table>
856 </div><div class="memdoc">
858 <p>Function lib_smem_mreset resets the slow scratch heap and destroys all allocated memory blocks in it. </p>
859 <dl class="params"><dt>Parameters</dt><dd>
860   <table class="params">
861     <tr><td class="paramdir">[in]</td><td class="paramname">handle</td><td>Pointer to the memory descriptor array defined by the library using this funciton</td></tr>
862   </table>
863   </dd>
864 </dl>
865 <dl class="retval"><dt>Return values</dt><dd>
866   <table class="retval">
867     <tr><td class="paramname">LIB_MEMMGT_SUCCESS</td><td>Success. No error. </td></tr>
868     <tr><td class="paramname">LIB_MEMMGT_ERROR</td><td>Failure.</td></tr>
869   </table>
870   </dd>
871 </dl>
872 <dl class="section pre"><dt>Precondition</dt><dd>Function lib_smem_sinit must be called first before this function can be called.</dd></dl>
873 <p>Function lib_smem_mreset resets the slow scratch heap and destroys all allocated memory blocks in it. </p>
875 </div>
876 </div>
877 <a class="anchor" id="ga24093174e441c683650863236dcb9806"></a>
878 <div class="memitem">
879 <div class="memproto">
880       <table class="memname">
881         <tr>
882           <td class="memname">void* lib_smem_valloc </td>
883           <td>(</td>
884           <td class="paramtype">void *&#160;</td>
885           <td class="paramname"><em>handle</em>, </td>
886         </tr>
887         <tr>
888           <td class="paramkey"></td>
889           <td></td>
890           <td class="paramtype">size_t&#160;</td>
891           <td class="paramname"><em>size</em>, </td>
892         </tr>
893         <tr>
894           <td class="paramkey"></td>
895           <td></td>
896           <td class="paramtype">size_t&#160;</td>
897           <td class="paramname"><em>align</em>&#160;</td>
898         </tr>
899         <tr>
900           <td></td>
901           <td>)</td>
902           <td></td><td></td>
903         </tr>
904       </table>
905 </div><div class="memdoc">
907 <p>Function lib_smem_valloc allocates a memory block from the very fast scratch heap. It will also align the allocated memory block as requested. </p>
908 <dl class="params"><dt>Parameters</dt><dd>
909   <table class="params">
910     <tr><td class="paramdir">[in]</td><td class="paramname">handle</td><td>Pointer to the memory descriptor array </td></tr>
911     <tr><td class="paramdir">[in]</td><td class="paramname">size</td><td>Size of memory block to be allocated </td></tr>
912     <tr><td class="paramdir">[in]</td><td class="paramname">align</td><td>Alignment. The address of the allocated memory block will be aligned to 2^align bytes.</td></tr>
913   </table>
914   </dd>
915 </dl>
916 <dl class="retval"><dt>Return values</dt><dd>
917   <table class="retval">
918     <tr><td class="paramname">Non-NULL</td><td>Address of the allocated memory block </td></tr>
919     <tr><td class="paramname">NULL</td><td>Failure to allocate memory</td></tr>
920   </table>
921   </dd>
922 </dl>
923 <dl class="section pre"><dt>Precondition</dt><dd>Function lib_smem_vinit must be called first before this function can be used to allocate memory.</dd></dl>
924 <p>Function lib_smem_valloc allocates a memory block from the very fast scratch heap. It will also align the allocated memory block as requested. </p>
926 </div>
927 </div>
928 <a class="anchor" id="gaeeb7c8294fcd4640e4eaf7a741397032"></a>
929 <div class="memitem">
930 <div class="memproto">
931       <table class="memname">
932         <tr>
933           <td class="memname">int lib_smem_vinit </td>
934           <td>(</td>
935           <td class="paramtype">void *&#160;</td>
936           <td class="paramname"><em>handle</em>, </td>
937         </tr>
938         <tr>
939           <td class="paramkey"></td>
940           <td></td>
941           <td class="paramtype">void *&#160;</td>
942           <td class="paramname"><em>base</em>, </td>
943         </tr>
944         <tr>
945           <td class="paramkey"></td>
946           <td></td>
947           <td class="paramtype">size_t&#160;</td>
948           <td class="paramname"><em>size</em>&#160;</td>
949         </tr>
950         <tr>
951           <td></td>
952           <td>)</td>
953           <td></td><td></td>
954         </tr>
955       </table>
956 </div><div class="memdoc">
958 <p>Function lib_smem_vinit performs necessary initialization for the very fast scratch heap memory allocation. </p>
959 <dl class="params"><dt>Parameters</dt><dd>
960   <table class="params">
961     <tr><td class="paramdir">[in]</td><td class="paramname">handle</td><td>Pointer to the memory descriptor array </td></tr>
962     <tr><td class="paramdir">[in]</td><td class="paramname">base</td><td>Base address of the memory to be used as very fast scratch </td></tr>
963     <tr><td class="paramdir">[in]</td><td class="paramname">size</td><td>Size of the memory in bytes</td></tr>
964   </table>
965   </dd>
966 </dl>
967 <dl class="retval"><dt>Return values</dt><dd>
968   <table class="retval">
969     <tr><td class="paramname">LIB_MEMMGT_SUCCESS</td><td>Success. No error. </td></tr>
970     <tr><td class="paramname">LIB_MEMMGT_ERROR</td><td>Failure.</td></tr>
971   </table>
972   </dd>
973 </dl>
974 <p>Function lib_smem_vinit performs necessary initialization for the very fast scratch heap memory allocation. </p>
976 </div>
977 </div>
978 <a class="anchor" id="ga65c30f7a20c6e359df9d73db0c9078c1"></a>
979 <div class="memitem">
980 <div class="memproto">
981       <table class="memname">
982         <tr>
983           <td class="memname">int lib_smem_vreset </td>
984           <td>(</td>
985           <td class="paramtype">void *&#160;</td>
986           <td class="paramname"><em>handle</em></td><td>)</td>
987           <td></td>
988         </tr>
989       </table>
990 </div><div class="memdoc">
992 <p>Function lib_smem_vreset resets the very fast scratch heap and destroys all allocated memory blocks in it. </p>
993 <dl class="params"><dt>Parameters</dt><dd>
994   <table class="params">
995     <tr><td class="paramdir">[in]</td><td class="paramname">handle</td><td>Pointer to the memory descriptor array defined by the library using this funciton</td></tr>
996   </table>
997   </dd>
998 </dl>
999 <dl class="retval"><dt>Return values</dt><dd>
1000   <table class="retval">
1001     <tr><td class="paramname">LIB_MEMMGT_SUCCESS</td><td>Success. No error. </td></tr>
1002     <tr><td class="paramname">LIB_MEMMGT_ERROR</td><td>Failure.</td></tr>
1003   </table>
1004   </dd>
1005 </dl>
1006 <dl class="section pre"><dt>Precondition</dt><dd>Function lib_smem_vinit must be called first before this function can be called.</dd></dl>
1007 <p>Function lib_smem_vreset resets the very fast scratch heap and destroys all allocated memory blocks in it. </p>
1009 </div>
1010 </div>
1011 </div><!-- contents -->
1012 <!-- start footer part -->
1013 <hr class="footer"/><address class="footer"><small>
1014 Generated on Mon Mar 6 2017 14:10:51 for LibArch by &#160;<a href="http://www.doxygen.org/index.html">
1015 <img class="footer" src="../../doxygen.png" alt="doxygen"/>
1016 </a> 1.8.6
1017 </small></address>
1018 </body>
1019 </html>