[processor-sdk/performance-audio-sr.git] / psdk_cust / ipc_3_43_00_00_eng / docs / doxygen / html / _shared_region_8h.html
1 <!-- HTML header for doxygen 1.8.9.1-->
2 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3 <html xmlns="http://www.w3.org/1999/xhtml">
4 <head>
5 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
6 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
7 <meta name="generator" content="Doxygen 1.8.9.1"/>
8 <title>IPC API: ti/ipc/SharedRegion.h File Reference</title>
9 <link href="tabs.css" rel="stylesheet" type="text/css"/>
10 <script type="text/javascript" src="jquery.js"></script>
11 <script type="text/javascript" src="dynsections.js"></script>
12 <link href="search/search.css" rel="stylesheet" type="text/css"/>
13 <script type="text/javascript" src="search/searchdata.js"></script>
14 <script type="text/javascript" src="search/search.js"></script>
15 <script type="text/javascript">
16 $(document).ready(function() { init_search(); });
17 </script>
18 <link href="doxygen.css" rel="stylesheet" type="text/css" />
19 </head>
20 <body>
21 <table width="100%">
22 <tr>
23 <td bgcolor="black" width="1"><a href="http://www.ti.com"><img border="0" src="tilogo.gif" /></a></td>
24 <td bgcolor="red"><img src="titagline.gif" /></td>
25 </tr>
26 </table>
27 <div id="top"><!-- do not remove this div, it is closed by doxygen! -->
28 <div id="titlearea">
29 <table cellspacing="0" cellpadding="0">
30 <tbody>
31 <tr style="height: 56px;">
32 <td style="padding-left: 0.5em;">
33 <div id="projectname">IPC API
34  <span id="projectnumber">3.43.00.00_eng</span>
35 </div>
36 </td>
37 </tr>
38 </tbody>
39 </table>
40 </div>
41 <!-- end header part -->
42 <!-- Generated by Doxygen 1.8.9.1 -->
43 <script type="text/javascript">
44 var searchBox = new SearchBox("searchBox", "search",false,'Search');
45 </script>
46 <div id="navrow1" class="tabs">
47 <ul class="tablist">
48 <li><a href="index.html"><span>Main Page</span></a></li>
49 <li><a href="modules.html"><span>Modules</span></a></li>
50 <li><a href="annotated.html"><span>Data Structures</span></a></li>
51 <li class="current"><a href="files.html"><span>Files</span></a></li>
52 <li><a href="pages.html"><span>Related Pages</span></a></li>
53 <li>
54 <div id="MSearchBox" class="MSearchBoxInactive">
55 <span class="left">
56 <img id="MSearchSelect" src="search/mag_sel.png"
57 onmouseover="return searchBox.OnSearchSelectShow()"
58 onmouseout="return searchBox.OnSearchSelectHide()"
59 alt=""/>
60 <input type="text" id="MSearchField" value="Search" accesskey="S"
61 onfocus="searchBox.OnSearchFieldFocus(true)"
62 onblur="searchBox.OnSearchFieldFocus(false)"
63 onkeyup="searchBox.OnSearchFieldChange(event)"/>
64 </span><span class="right">
65 <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
66 </span>
67 </div>
68 </li>
69 </ul>
70 </div>
71 <div id="navrow2" class="tabs2">
72 <ul class="tablist">
73 <li><a href="files.html"><span>File List</span></a></li>
74 <li><a href="globals.html"><span>Globals</span></a></li>
75 </ul>
76 </div>
77 <!-- window showing the filter options -->
78 <div id="MSearchSelectWindow"
79 onmouseover="return searchBox.OnSearchSelectShow()"
80 onmouseout="return searchBox.OnSearchSelectHide()"
81 onkeydown="return searchBox.OnSearchSelectKey(event)">
82 </div>
84 <!-- iframe showing the search results (closed by default) -->
85 <div id="MSearchResultsWindow">
86 <iframe src="javascript:void(0)" frameborder="0"
87 name="MSearchResults" id="MSearchResults">
88 </iframe>
89 </div>
91 <div id="nav-path" class="navpath">
92 <ul>
93 <li class="navelem"><a class="el" href="dir_46079174fecd82ead33d8fa28082a6fc.html">ti</a></li><li class="navelem"><a class="el" href="dir_d15d182bf14778c656928067305f92ce.html">ipc</a></li> </ul>
94 </div>
95 </div><!-- top -->
96 <div class="header">
97 <div class="summary">
98 <a href="#nested-classes">Data Structures</a> |
99 <a href="#define-members">Macros</a> |
100 <a href="#typedef-members">Typedefs</a> |
101 <a href="#func-members">Functions</a> </div>
102 <div class="headertitle">
103 <div class="title">SharedRegion.h File Reference</div> </div>
104 </div><!--header-->
105 <div class="contents">
106 <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
107 <div class="textblock"><p>Shared memory manager and address translator. </p>
108 <dl class="section note"><dt>Note</dt><dd>SharedRegion is currently only available for SYS/BIOS.</dd></dl>
109 <p>The SharedRegion module is designed to be used in a multi-processor environment in which memory regions are shared and accessed across different processors. The module itself does not use any shared memory, because all module state is stored locally. SharedRegion APIs use the system gate for thread protection.</p>
110 <p>This module creates and stores a local shared memory region table. The table contains the processor's view for every shared region in the system. The table must not contain any overlapping regions. Each processor's view of a particular shared memory region is determined by the region id. In cases where a processor cannot access a certain shared memory region, that shared memory region should be left invalid for that processor. Note: The number of entries must be the same on all processors.</p>
111 <p>Each shared region contains the following:</p><ul>
112 <li><b>base</b> - The base address</li>
113 <li><b>len</b> - The length</li>
114 <li><b>name</b> - The name of the region</li>
115 <li><b>isValid</b> - Whether the region is valid</li>
116 <li><b>ownerProcId</b> - The id of the processor which owns the region</li>
117 <li><b>cacheEnable</b> - Whether the region is cacheable</li>
118 <li><b>cacheLineSize</b> - The cache line size</li>
119 <li><b>createHeap</b> - Whether a heap is created for the region.</li>
120 </ul>
121 <p>A region is added using the <a class="el" href="_shared_region_8h.html#a03f6986f76660e57a41ee312545e9f7d" title="Sets the entry at the specified region id. ">SharedRegion_setEntry()</a> API. The length of a region must be the same across all processors. The owner of the region can be specified. If specified, the owner manages the shared region. It creates a HeapMemMP instance which spans the full size of the region. The other processors open the same HeapMemMP instance.</p>
122 <p>Note: Prior to calling <a class="el" href="_ipc_8h.html#aca550c6a5498637cfec7b0f4e6d07828" title="Reserves memory, creates default GateMP and HeapMemMP. ">Ipc_start()</a>, If a SharedRegion's 'isValid' is true and 'createHeap' is true then the owner of the SharedRegion must be the same as the owner of SharedRegion 0.</p>
123 <p>After a shared region is valid, SharedRegion APIs can be used to convert pointers between the local processor's address space and the SharedRegion- pointer (SRPtr) address space. These APIs include <a class="el" href="_shared_region_8h.html#afc6f82dd851547d6d6221a779be945dd" title="Gets the region id for the specified address. ">SharedRegion_getId()</a>, <a class="el" href="_shared_region_8h.html#a7362baec546e36b21e82f35746b4ab3b" title="Calculate the shared region pointer given local address and id. ">SharedRegion_getSRPtr()</a> and <a class="el" href="_shared_region_8h.html#a2b64c07cb305a034417a42fb1ed8e7a9" title="Calculate the local pointer from the shared region pointer. ">SharedRegion_getPtr()</a>. An example is shown below:</p>
124 <div class="fragment"><div class="line"><a class="code" href="_shared_region_8h.html#a3efe06da0fa1fcbb3b271278ddd9b410">SharedRegion_SRPtr</a> srptr;</div>
125 <div class="line">Ptr addr;</div>
126 <div class="line">UInt16 id;</div>
127 <div class="line"></div>
128 <div class="line"><span class="comment">// to get the id of the local address if id is not already known.</span></div>
129 <div class="line"><span class="keywordtype">id</span> = <a class="code" href="_shared_region_8h.html#afc6f82dd851547d6d6221a779be945dd">SharedRegion_getId</a>(addr);</div>
130 <div class="line"></div>
131 <div class="line"><span class="comment">// to get the shared region pointer for the local address</span></div>
132 <div class="line">srptr = <a class="code" href="_shared_region_8h.html#a7362baec546e36b21e82f35746b4ab3b">SharedRegion_getSRPtr</a>(addr, <span class="keywordtype">id</span>);</div>
133 <div class="line"></div>
134 <div class="line"><span class="comment">// to get the local address from the shared region pointer</span></div>
135 <div class="line">addr = <a class="code" href="_shared_region_8h.html#a2b64c07cb305a034417a42fb1ed8e7a9">SharedRegion_getPtr</a>(srptr);</div>
136 </div><!-- fragment --><p>The SharedRegion header should be included in an application as follows: </p><div class="fragment"><div class="line"><span class="preprocessor">#include <<a class="code" href="_shared_region_8h.html">ti/ipc/SharedRegion.h</a>></span></div>
137 </div><!-- fragment --> </div><div class="textblock"><div class="dynheader">
138 This graph shows which files directly or indirectly include this file:</div>
139 <div class="dyncontent">
140 <div class="center"><img src="_shared_region_8h__dep__incl.png" border="0" usemap="#ti_2ipc_2_shared_region_8hdep" alt=""/></div>
141 <map name="ti_2ipc_2_shared_region_8hdep" id="ti_2ipc_2_shared_region_8hdep">
142 <area shape="rect" id="node3" href="_list_m_p_8h.html" title="Multiple processor shared memory list. " alt="" coords="25,83,132,112"/></map>
143 </div>
144 </div>
145 <p><a href="_shared_region_8h_source.html">Go to the source code of this file.</a></p>
146 <table class="memberdecls">
147 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
148 Data Structures</h2></td></tr>
149 <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="struct_shared_region___entry.html">SharedRegion_Entry</a></td></tr>
150 <tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">Structure defining a region. <a href="struct_shared_region___entry.html#details">More...</a><br /></td></tr>
151 <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
152 </table><table class="memberdecls">
153 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
154 Macros</h2></td></tr>
155 <tr class="memitem:a6600547ee6e6f87175f7031004206e9e"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="_shared_region_8h.html#a6600547ee6e6f87175f7031004206e9e">SharedRegion_S_BUSY</a>   2</td></tr>
156 <tr class="memdesc:a6600547ee6e6f87175f7031004206e9e"><td class="mdescLeft"> </td><td class="mdescRight">The resource is still in use. <a href="#a6600547ee6e6f87175f7031004206e9e">More...</a><br /></td></tr>
157 <tr class="separator:a6600547ee6e6f87175f7031004206e9e"><td class="memSeparator" colspan="2"> </td></tr>
158 <tr class="memitem:a016c010c7acdf21d0138f54002eb1783"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="_shared_region_8h.html#a016c010c7acdf21d0138f54002eb1783">SharedRegion_S_ALREADYSETUP</a>   1</td></tr>
159 <tr class="memdesc:a016c010c7acdf21d0138f54002eb1783"><td class="mdescLeft"> </td><td class="mdescRight">The module has been already setup. <a href="#a016c010c7acdf21d0138f54002eb1783">More...</a><br /></td></tr>
160 <tr class="separator:a016c010c7acdf21d0138f54002eb1783"><td class="memSeparator" colspan="2"> </td></tr>
161 <tr class="memitem:aeb2b620491aa7fb3f25603b651e037a5"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="_shared_region_8h.html#aeb2b620491aa7fb3f25603b651e037a5">SharedRegion_S_SUCCESS</a>   0</td></tr>
162 <tr class="memdesc:aeb2b620491aa7fb3f25603b651e037a5"><td class="mdescLeft"> </td><td class="mdescRight">Operation is successful. <a href="#aeb2b620491aa7fb3f25603b651e037a5">More...</a><br /></td></tr>
163 <tr class="separator:aeb2b620491aa7fb3f25603b651e037a5"><td class="memSeparator" colspan="2"> </td></tr>
164 <tr class="memitem:a38d229410cc0928a0ece957d8b525c5e"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="_shared_region_8h.html#a38d229410cc0928a0ece957d8b525c5e">SharedRegion_E_FAIL</a>   -1</td></tr>
165 <tr class="memdesc:a38d229410cc0928a0ece957d8b525c5e"><td class="mdescLeft"> </td><td class="mdescRight">Generic failure. <a href="#a38d229410cc0928a0ece957d8b525c5e">More...</a><br /></td></tr>
166 <tr class="separator:a38d229410cc0928a0ece957d8b525c5e"><td class="memSeparator" colspan="2"> </td></tr>
167 <tr class="memitem:ae6cbeb3d372c004105fa71df5710cb25"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="_shared_region_8h.html#ae6cbeb3d372c004105fa71df5710cb25">SharedRegion_E_INVALIDARG</a>   -2</td></tr>
168 <tr class="memdesc:ae6cbeb3d372c004105fa71df5710cb25"><td class="mdescLeft"> </td><td class="mdescRight">Argument passed to function is invalid. <a href="#ae6cbeb3d372c004105fa71df5710cb25">More...</a><br /></td></tr>
169 <tr class="separator:ae6cbeb3d372c004105fa71df5710cb25"><td class="memSeparator" colspan="2"> </td></tr>
170 <tr class="memitem:a220eacf751625694d91a86b98c03dc8d"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="_shared_region_8h.html#a220eacf751625694d91a86b98c03dc8d">SharedRegion_E_MEMORY</a>   -3</td></tr>
171 <tr class="memdesc:a220eacf751625694d91a86b98c03dc8d"><td class="mdescLeft"> </td><td class="mdescRight">Operation resulted in memory failure. <a href="#a220eacf751625694d91a86b98c03dc8d">More...</a><br /></td></tr>
172 <tr class="separator:a220eacf751625694d91a86b98c03dc8d"><td class="memSeparator" colspan="2"> </td></tr>
173 <tr class="memitem:a7df199a0327c8ba88ca03f73f4119815"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="_shared_region_8h.html#a7df199a0327c8ba88ca03f73f4119815">SharedRegion_E_ALREADYEXISTS</a>   -4</td></tr>
174 <tr class="memdesc:a7df199a0327c8ba88ca03f73f4119815"><td class="mdescLeft"> </td><td class="mdescRight">The specified entity already exists. <a href="#a7df199a0327c8ba88ca03f73f4119815">More...</a><br /></td></tr>
175 <tr class="separator:a7df199a0327c8ba88ca03f73f4119815"><td class="memSeparator" colspan="2"> </td></tr>
176 <tr class="memitem:a6002cac7430e40aefe151274b1b3ec3b"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="_shared_region_8h.html#a6002cac7430e40aefe151274b1b3ec3b">SharedRegion_E_NOTFOUND</a>   -5</td></tr>
177 <tr class="memdesc:a6002cac7430e40aefe151274b1b3ec3b"><td class="mdescLeft"> </td><td class="mdescRight">Unable to find the specified entity. <a href="#a6002cac7430e40aefe151274b1b3ec3b">More...</a><br /></td></tr>
178 <tr class="separator:a6002cac7430e40aefe151274b1b3ec3b"><td class="memSeparator" colspan="2"> </td></tr>
179 <tr class="memitem:a030f39eb6a4dda552520aa2873bfd02b"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="_shared_region_8h.html#a030f39eb6a4dda552520aa2873bfd02b">SharedRegion_E_TIMEOUT</a>   -6</td></tr>
180 <tr class="memdesc:a030f39eb6a4dda552520aa2873bfd02b"><td class="mdescLeft"> </td><td class="mdescRight">Operation timed out. <a href="#a030f39eb6a4dda552520aa2873bfd02b">More...</a><br /></td></tr>
181 <tr class="separator:a030f39eb6a4dda552520aa2873bfd02b"><td class="memSeparator" colspan="2"> </td></tr>
182 <tr class="memitem:a66763317d6f51467f6c52c6adfc226ac"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="_shared_region_8h.html#a66763317d6f51467f6c52c6adfc226ac">SharedRegion_E_INVALIDSTATE</a>   -7</td></tr>
183 <tr class="memdesc:a66763317d6f51467f6c52c6adfc226ac"><td class="mdescLeft"> </td><td class="mdescRight">Module is not initialized. <a href="#a66763317d6f51467f6c52c6adfc226ac">More...</a><br /></td></tr>
184 <tr class="separator:a66763317d6f51467f6c52c6adfc226ac"><td class="memSeparator" colspan="2"> </td></tr>
185 <tr class="memitem:adb57012556121d43f887d1930e0b26ef"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="_shared_region_8h.html#adb57012556121d43f887d1930e0b26ef">SharedRegion_E_OSFAILURE</a>   -8</td></tr>
186 <tr class="memdesc:adb57012556121d43f887d1930e0b26ef"><td class="mdescLeft"> </td><td class="mdescRight">A failure occurred in an OS-specific call. <a href="#adb57012556121d43f887d1930e0b26ef">More...</a><br /></td></tr>
187 <tr class="separator:adb57012556121d43f887d1930e0b26ef"><td class="memSeparator" colspan="2"> </td></tr>
188 <tr class="memitem:aae63a683d1705eed55bb537a55b4bb20"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="_shared_region_8h.html#aae63a683d1705eed55bb537a55b4bb20">SharedRegion_E_RESOURCE</a>   -9</td></tr>
189 <tr class="memdesc:aae63a683d1705eed55bb537a55b4bb20"><td class="mdescLeft"> </td><td class="mdescRight">Specified resource is not available. <a href="#aae63a683d1705eed55bb537a55b4bb20">More...</a><br /></td></tr>
190 <tr class="separator:aae63a683d1705eed55bb537a55b4bb20"><td class="memSeparator" colspan="2"> </td></tr>
191 <tr class="memitem:a55086f20c7279ee538a1325fe5a60b9d"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="_shared_region_8h.html#a55086f20c7279ee538a1325fe5a60b9d">SharedRegion_E_RESTART</a>   -10</td></tr>
192 <tr class="memdesc:a55086f20c7279ee538a1325fe5a60b9d"><td class="mdescLeft"> </td><td class="mdescRight">Operation was interrupted. Please restart the operation. <a href="#a55086f20c7279ee538a1325fe5a60b9d">More...</a><br /></td></tr>
193 <tr class="separator:a55086f20c7279ee538a1325fe5a60b9d"><td class="memSeparator" colspan="2"> </td></tr>
194 <tr class="memitem:a8212f0ca02e94eb45edad350147db529"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="_shared_region_8h.html#a8212f0ca02e94eb45edad350147db529">SharedRegion_INVALIDREGIONID</a>   (0xFFFF)</td></tr>
195 <tr class="memdesc:a8212f0ca02e94eb45edad350147db529"><td class="mdescLeft"> </td><td class="mdescRight">Invalid region id. <a href="#a8212f0ca02e94eb45edad350147db529">More...</a><br /></td></tr>
196 <tr class="separator:a8212f0ca02e94eb45edad350147db529"><td class="memSeparator" colspan="2"> </td></tr>
197 </table><table class="memberdecls">
198 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
199 Typedefs</h2></td></tr>
200 <tr class="memitem:a3efe06da0fa1fcbb3b271278ddd9b410"><td class="memItemLeft" align="right" valign="top">typedef Bits32 </td><td class="memItemRight" valign="bottom"><a class="el" href="_shared_region_8h.html#a3efe06da0fa1fcbb3b271278ddd9b410">SharedRegion_SRPtr</a></td></tr>
201 <tr class="memdesc:a3efe06da0fa1fcbb3b271278ddd9b410"><td class="mdescLeft"> </td><td class="mdescRight">SharedRegion pointer type. <a href="#a3efe06da0fa1fcbb3b271278ddd9b410">More...</a><br /></td></tr>
202 <tr class="separator:a3efe06da0fa1fcbb3b271278ddd9b410"><td class="memSeparator" colspan="2"> </td></tr>
203 <tr class="memitem:aadc9f7e3da237ebfbefeb2edfc87732d"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="struct_shared_region___entry.html">SharedRegion_Entry</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="_shared_region_8h.html#aadc9f7e3da237ebfbefeb2edfc87732d">SharedRegion_Entry</a></td></tr>
204 <tr class="memdesc:aadc9f7e3da237ebfbefeb2edfc87732d"><td class="mdescLeft"> </td><td class="mdescRight">Structure defining a region. <a href="#aadc9f7e3da237ebfbefeb2edfc87732d">More...</a><br /></td></tr>
205 <tr class="separator:aadc9f7e3da237ebfbefeb2edfc87732d"><td class="memSeparator" colspan="2"> </td></tr>
206 </table><table class="memberdecls">
207 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
208 Functions</h2></td></tr>
209 <tr class="memitem:ae8654bccc1c7acbe7814ecc05ddee6e0"><td class="memItemLeft" align="right" valign="top">Int </td><td class="memItemRight" valign="bottom"><a class="el" href="_shared_region_8h.html#ae8654bccc1c7acbe7814ecc05ddee6e0">SharedRegion_clearEntry</a> (UInt16 regionId)</td></tr>
210 <tr class="memdesc:ae8654bccc1c7acbe7814ecc05ddee6e0"><td class="mdescLeft"> </td><td class="mdescRight">Clears the <code>regionid</code> entry. <a href="#ae8654bccc1c7acbe7814ecc05ddee6e0">More...</a><br /></td></tr>
211 <tr class="separator:ae8654bccc1c7acbe7814ecc05ddee6e0"><td class="memSeparator" colspan="2"> </td></tr>
212 <tr class="memitem:a8462f38d89bbf6d9f0974c2465606110"><td class="memItemLeft" align="right" valign="top">Void </td><td class="memItemRight" valign="bottom"><a class="el" href="_shared_region_8h.html#a8462f38d89bbf6d9f0974c2465606110">SharedRegion_entryInit</a> (<a class="el" href="struct_shared_region___entry.html">SharedRegion_Entry</a> *entry)</td></tr>
213 <tr class="memdesc:a8462f38d89bbf6d9f0974c2465606110"><td class="mdescLeft"> </td><td class="mdescRight">Initializes the entry fields. <a href="#a8462f38d89bbf6d9f0974c2465606110">More...</a><br /></td></tr>
214 <tr class="separator:a8462f38d89bbf6d9f0974c2465606110"><td class="memSeparator" colspan="2"> </td></tr>
215 <tr class="memitem:ae673e2d9bfd20a7eb07bcaab9a3c70aa"><td class="memItemLeft" align="right" valign="top">SizeT </td><td class="memItemRight" valign="bottom"><a class="el" href="_shared_region_8h.html#ae673e2d9bfd20a7eb07bcaab9a3c70aa">SharedRegion_getCacheLineSize</a> (UInt16 regionId)</td></tr>
216 <tr class="memdesc:ae673e2d9bfd20a7eb07bcaab9a3c70aa"><td class="mdescLeft"> </td><td class="mdescRight">Gets the cache line size for the specified region id. <a href="#ae673e2d9bfd20a7eb07bcaab9a3c70aa">More...</a><br /></td></tr>
217 <tr class="separator:ae673e2d9bfd20a7eb07bcaab9a3c70aa"><td class="memSeparator" colspan="2"> </td></tr>
218 <tr class="memitem:aa7838cd5e41f00af54e2a76c3f251eca"><td class="memItemLeft" align="right" valign="top">Int </td><td class="memItemRight" valign="bottom"><a class="el" href="_shared_region_8h.html#aa7838cd5e41f00af54e2a76c3f251eca">SharedRegion_getEntry</a> (UInt16 regionId, <a class="el" href="struct_shared_region___entry.html">SharedRegion_Entry</a> *entry)</td></tr>
219 <tr class="memdesc:aa7838cd5e41f00af54e2a76c3f251eca"><td class="mdescLeft"> </td><td class="mdescRight">Gets the entry information for the specified region id. <a href="#aa7838cd5e41f00af54e2a76c3f251eca">More...</a><br /></td></tr>
220 <tr class="separator:aa7838cd5e41f00af54e2a76c3f251eca"><td class="memSeparator" colspan="2"> </td></tr>
221 <tr class="memitem:a8be33d6889ff1e1dbbd10f7e99caa01e"><td class="memItemLeft" align="right" valign="top"><a class="el" href="struct_shared_region___entry.html">SharedRegion_Entry</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="_shared_region_8h.html#a8be33d6889ff1e1dbbd10f7e99caa01e">SharedRegion_getEntryPtr</a> (UInt16 regionId)</td></tr>
222 <tr class="memdesc:a8be33d6889ff1e1dbbd10f7e99caa01e"><td class="mdescLeft"> </td><td class="mdescRight">Return the address of the shared region entry structure. <a href="#a8be33d6889ff1e1dbbd10f7e99caa01e">More...</a><br /></td></tr>
223 <tr class="separator:a8be33d6889ff1e1dbbd10f7e99caa01e"><td class="memSeparator" colspan="2"> </td></tr>
224 <tr class="memitem:a6cbed730e029bb68e4c163b34ed69fa3"><td class="memItemLeft" align="right" valign="top">Ptr </td><td class="memItemRight" valign="bottom"><a class="el" href="_shared_region_8h.html#a6cbed730e029bb68e4c163b34ed69fa3">SharedRegion_getHeap</a> (UInt16 regionId)</td></tr>
225 <tr class="memdesc:a6cbed730e029bb68e4c163b34ed69fa3"><td class="mdescLeft"> </td><td class="mdescRight">Gets the heap associated with the specified region id. <a href="#a6cbed730e029bb68e4c163b34ed69fa3">More...</a><br /></td></tr>
226 <tr class="separator:a6cbed730e029bb68e4c163b34ed69fa3"><td class="memSeparator" colspan="2"> </td></tr>
227 <tr class="memitem:afc6f82dd851547d6d6221a779be945dd"><td class="memItemLeft" align="right" valign="top">UInt16 </td><td class="memItemRight" valign="bottom"><a class="el" href="_shared_region_8h.html#afc6f82dd851547d6d6221a779be945dd">SharedRegion_getId</a> (Ptr addr)</td></tr>
228 <tr class="memdesc:afc6f82dd851547d6d6221a779be945dd"><td class="mdescLeft"> </td><td class="mdescRight">Gets the region id for the specified address. <a href="#afc6f82dd851547d6d6221a779be945dd">More...</a><br /></td></tr>
229 <tr class="separator:afc6f82dd851547d6d6221a779be945dd"><td class="memSeparator" colspan="2"> </td></tr>
230 <tr class="memitem:a67a530716a59b8794fee523cc8845f2c"><td class="memItemLeft" align="right" valign="top">UInt16 </td><td class="memItemRight" valign="bottom"><a class="el" href="_shared_region_8h.html#a67a530716a59b8794fee523cc8845f2c">SharedRegion_getIdByName</a> (String name)</td></tr>
231 <tr class="memdesc:a67a530716a59b8794fee523cc8845f2c"><td class="mdescLeft"> </td><td class="mdescRight">Gets the id of a region, given its name. <a href="#a67a530716a59b8794fee523cc8845f2c">More...</a><br /></td></tr>
232 <tr class="separator:a67a530716a59b8794fee523cc8845f2c"><td class="memSeparator" colspan="2"> </td></tr>
233 <tr class="memitem:a5fb23b15b5321edd51438108b7fd9cfe"><td class="memItemLeft" align="right" valign="top">UInt16 </td><td class="memItemRight" valign="bottom"><a class="el" href="_shared_region_8h.html#a5fb23b15b5321edd51438108b7fd9cfe">SharedRegion_getNumRegions</a> (Void)</td></tr>
234 <tr class="memdesc:a5fb23b15b5321edd51438108b7fd9cfe"><td class="mdescLeft"> </td><td class="mdescRight">Gets the number of regions. <a href="#a5fb23b15b5321edd51438108b7fd9cfe">More...</a><br /></td></tr>
235 <tr class="separator:a5fb23b15b5321edd51438108b7fd9cfe"><td class="memSeparator" colspan="2"> </td></tr>
236 <tr class="memitem:a2b64c07cb305a034417a42fb1ed8e7a9"><td class="memItemLeft" align="right" valign="top">Ptr </td><td class="memItemRight" valign="bottom"><a class="el" href="_shared_region_8h.html#a2b64c07cb305a034417a42fb1ed8e7a9">SharedRegion_getPtr</a> (<a class="el" href="_shared_region_8h.html#a3efe06da0fa1fcbb3b271278ddd9b410">SharedRegion_SRPtr</a> srptr)</td></tr>
237 <tr class="memdesc:a2b64c07cb305a034417a42fb1ed8e7a9"><td class="mdescLeft"> </td><td class="mdescRight">Calculate the local pointer from the shared region pointer. <a href="#a2b64c07cb305a034417a42fb1ed8e7a9">More...</a><br /></td></tr>
238 <tr class="separator:a2b64c07cb305a034417a42fb1ed8e7a9"><td class="memSeparator" colspan="2"> </td></tr>
239 <tr class="memitem:a7362baec546e36b21e82f35746b4ab3b"><td class="memItemLeft" align="right" valign="top"><a class="el" href="_shared_region_8h.html#a3efe06da0fa1fcbb3b271278ddd9b410">SharedRegion_SRPtr</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="_shared_region_8h.html#a7362baec546e36b21e82f35746b4ab3b">SharedRegion_getSRPtr</a> (Ptr addr, UInt16 regionId)</td></tr>
240 <tr class="memdesc:a7362baec546e36b21e82f35746b4ab3b"><td class="mdescLeft"> </td><td class="mdescRight">Calculate the shared region pointer given local address and id. <a href="#a7362baec546e36b21e82f35746b4ab3b">More...</a><br /></td></tr>
241 <tr class="separator:a7362baec546e36b21e82f35746b4ab3b"><td class="memSeparator" colspan="2"> </td></tr>
242 <tr class="memitem:afcd99988acc5d3b6b9dd809c49692185"><td class="memItemLeft" align="right" valign="top">Bool </td><td class="memItemRight" valign="bottom"><a class="el" href="_shared_region_8h.html#afcd99988acc5d3b6b9dd809c49692185">SharedRegion_isCacheEnabled</a> (UInt16 regionId)</td></tr>
243 <tr class="memdesc:afcd99988acc5d3b6b9dd809c49692185"><td class="mdescLeft"> </td><td class="mdescRight">whether cache enable was specified <a href="#afcd99988acc5d3b6b9dd809c49692185">More...</a><br /></td></tr>
244 <tr class="separator:afcd99988acc5d3b6b9dd809c49692185"><td class="memSeparator" colspan="2"> </td></tr>
245 <tr class="memitem:a03f6986f76660e57a41ee312545e9f7d"><td class="memItemLeft" align="right" valign="top">Int </td><td class="memItemRight" valign="bottom"><a class="el" href="_shared_region_8h.html#a03f6986f76660e57a41ee312545e9f7d">SharedRegion_setEntry</a> (UInt16 regionId, <a class="el" href="struct_shared_region___entry.html">SharedRegion_Entry</a> *entry)</td></tr>
246 <tr class="memdesc:a03f6986f76660e57a41ee312545e9f7d"><td class="mdescLeft"> </td><td class="mdescRight">Sets the entry at the specified region id. <a href="#a03f6986f76660e57a41ee312545e9f7d">More...</a><br /></td></tr>
247 <tr class="separator:a03f6986f76660e57a41ee312545e9f7d"><td class="memSeparator" colspan="2"> </td></tr>
248 <tr class="memitem:ab6d47a56e271184d92158e88810e9063"><td class="memItemLeft" align="right" valign="top">Bool </td><td class="memItemRight" valign="bottom"><a class="el" href="_shared_region_8h.html#ab6d47a56e271184d92158e88810e9063">SharedRegion_translateEnabled</a> (Void)</td></tr>
249 <tr class="memdesc:ab6d47a56e271184d92158e88810e9063"><td class="mdescLeft"> </td><td class="mdescRight">Whether address translation is enabled. <a href="#ab6d47a56e271184d92158e88810e9063">More...</a><br /></td></tr>
250 <tr class="separator:ab6d47a56e271184d92158e88810e9063"><td class="memSeparator" colspan="2"> </td></tr>
251 <tr class="memitem:a9ed41a1be03f81e10b150921c1035467"><td class="memItemLeft" align="right" valign="top"><a class="el" href="_shared_region_8h.html#a3efe06da0fa1fcbb3b271278ddd9b410">SharedRegion_SRPtr</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="_shared_region_8h.html#a9ed41a1be03f81e10b150921c1035467">SharedRegion_invalidSRPtr</a> (Void)</td></tr>
252 <tr class="memdesc:a9ed41a1be03f81e10b150921c1035467"><td class="mdescLeft"> </td><td class="mdescRight">Returns the SharedRegion_SRPtr value that maps to NULL. <a href="#a9ed41a1be03f81e10b150921c1035467">More...</a><br /></td></tr>
253 <tr class="separator:a9ed41a1be03f81e10b150921c1035467"><td class="memSeparator" colspan="2"> </td></tr>
254 </table>
255 <h2 class="groupheader">Macro Definition Documentation</h2>
256 <a class="anchor" id="a6600547ee6e6f87175f7031004206e9e"></a>
257 <div class="memitem">
258 <div class="memproto">
259 <table class="memname">
260 <tr>
261 <td class="memname">#define SharedRegion_S_BUSY   2</td>
262 </tr>
263 </table>
264 </div><div class="memdoc">
266 <p>The resource is still in use. </p>
268 </div>
269 </div>
270 <a class="anchor" id="a016c010c7acdf21d0138f54002eb1783"></a>
271 <div class="memitem">
272 <div class="memproto">
273 <table class="memname">
274 <tr>
275 <td class="memname">#define SharedRegion_S_ALREADYSETUP   1</td>
276 </tr>
277 </table>
278 </div><div class="memdoc">
280 <p>The module has been already setup. </p>
282 </div>
283 </div>
284 <a class="anchor" id="aeb2b620491aa7fb3f25603b651e037a5"></a>
285 <div class="memitem">
286 <div class="memproto">
287 <table class="memname">
288 <tr>
289 <td class="memname">#define SharedRegion_S_SUCCESS   0</td>
290 </tr>
291 </table>
292 </div><div class="memdoc">
294 <p>Operation is successful. </p>
296 </div>
297 </div>
298 <a class="anchor" id="a38d229410cc0928a0ece957d8b525c5e"></a>
299 <div class="memitem">
300 <div class="memproto">
301 <table class="memname">
302 <tr>
303 <td class="memname">#define SharedRegion_E_FAIL   -1</td>
304 </tr>
305 </table>
306 </div><div class="memdoc">
308 <p>Generic failure. </p>
310 </div>
311 </div>
312 <a class="anchor" id="ae6cbeb3d372c004105fa71df5710cb25"></a>
313 <div class="memitem">
314 <div class="memproto">
315 <table class="memname">
316 <tr>
317 <td class="memname">#define SharedRegion_E_INVALIDARG   -2</td>
318 </tr>
319 </table>
320 </div><div class="memdoc">
322 <p>Argument passed to function is invalid. </p>
324 </div>
325 </div>
326 <a class="anchor" id="a220eacf751625694d91a86b98c03dc8d"></a>
327 <div class="memitem">
328 <div class="memproto">
329 <table class="memname">
330 <tr>
331 <td class="memname">#define SharedRegion_E_MEMORY   -3</td>
332 </tr>
333 </table>
334 </div><div class="memdoc">
336 <p>Operation resulted in memory failure. </p>
338 </div>
339 </div>
340 <a class="anchor" id="a7df199a0327c8ba88ca03f73f4119815"></a>
341 <div class="memitem">
342 <div class="memproto">
343 <table class="memname">
344 <tr>
345 <td class="memname">#define SharedRegion_E_ALREADYEXISTS   -4</td>
346 </tr>
347 </table>
348 </div><div class="memdoc">
350 <p>The specified entity already exists. </p>
352 </div>
353 </div>
354 <a class="anchor" id="a6002cac7430e40aefe151274b1b3ec3b"></a>
355 <div class="memitem">
356 <div class="memproto">
357 <table class="memname">
358 <tr>
359 <td class="memname">#define SharedRegion_E_NOTFOUND   -5</td>
360 </tr>
361 </table>
362 </div><div class="memdoc">
364 <p>Unable to find the specified entity. </p>
366 </div>
367 </div>
368 <a class="anchor" id="a030f39eb6a4dda552520aa2873bfd02b"></a>
369 <div class="memitem">
370 <div class="memproto">
371 <table class="memname">
372 <tr>
373 <td class="memname">#define SharedRegion_E_TIMEOUT   -6</td>
374 </tr>
375 </table>
376 </div><div class="memdoc">
378 <p>Operation timed out. </p>
380 </div>
381 </div>
382 <a class="anchor" id="a66763317d6f51467f6c52c6adfc226ac"></a>
383 <div class="memitem">
384 <div class="memproto">
385 <table class="memname">
386 <tr>
387 <td class="memname">#define SharedRegion_E_INVALIDSTATE   -7</td>
388 </tr>
389 </table>
390 </div><div class="memdoc">
392 <p>Module is not initialized. </p>
394 </div>
395 </div>
396 <a class="anchor" id="adb57012556121d43f887d1930e0b26ef"></a>
397 <div class="memitem">
398 <div class="memproto">
399 <table class="memname">
400 <tr>
401 <td class="memname">#define SharedRegion_E_OSFAILURE   -8</td>
402 </tr>
403 </table>
404 </div><div class="memdoc">
406 <p>A failure occurred in an OS-specific call. </p>
408 </div>
409 </div>
410 <a class="anchor" id="aae63a683d1705eed55bb537a55b4bb20"></a>
411 <div class="memitem">
412 <div class="memproto">
413 <table class="memname">
414 <tr>
415 <td class="memname">#define SharedRegion_E_RESOURCE   -9</td>
416 </tr>
417 </table>
418 </div><div class="memdoc">
420 <p>Specified resource is not available. </p>
422 </div>
423 </div>
424 <a class="anchor" id="a55086f20c7279ee538a1325fe5a60b9d"></a>
425 <div class="memitem">
426 <div class="memproto">
427 <table class="memname">
428 <tr>
429 <td class="memname">#define SharedRegion_E_RESTART   -10</td>
430 </tr>
431 </table>
432 </div><div class="memdoc">
434 <p>Operation was interrupted. Please restart the operation. </p>
436 </div>
437 </div>
438 <a class="anchor" id="a8212f0ca02e94eb45edad350147db529"></a>
439 <div class="memitem">
440 <div class="memproto">
441 <table class="memname">
442 <tr>
443 <td class="memname">#define SharedRegion_INVALIDREGIONID   (0xFFFF)</td>
444 </tr>
445 </table>
446 </div><div class="memdoc">
448 <p>Invalid region id. </p>
450 </div>
451 </div>
452 <h2 class="groupheader">Typedef Documentation</h2>
453 <a class="anchor" id="a3efe06da0fa1fcbb3b271278ddd9b410"></a>
454 <div class="memitem">
455 <div class="memproto">
456 <table class="memname">
457 <tr>
458 <td class="memname">typedef Bits32 <a class="el" href="_shared_region_8h.html#a3efe06da0fa1fcbb3b271278ddd9b410">SharedRegion_SRPtr</a></td>
459 </tr>
460 </table>
461 </div><div class="memdoc">
463 <p>SharedRegion pointer type. </p>
465 </div>
466 </div>
467 <a class="anchor" id="aadc9f7e3da237ebfbefeb2edfc87732d"></a>
468 <div class="memitem">
469 <div class="memproto">
470 <table class="memname">
471 <tr>
472 <td class="memname">typedef struct <a class="el" href="struct_shared_region___entry.html">SharedRegion_Entry</a> <a class="el" href="struct_shared_region___entry.html">SharedRegion_Entry</a></td>
473 </tr>
474 </table>
475 </div><div class="memdoc">
477 <p>Structure defining a region. </p>
479 </div>
480 </div>
481 <h2 class="groupheader">Function Documentation</h2>
482 <a class="anchor" id="ae8654bccc1c7acbe7814ecc05ddee6e0"></a>
483 <div class="memitem">
484 <div class="memproto">
485 <table class="memname">
486 <tr>
487 <td class="memname">Int SharedRegion_clearEntry </td>
488 <td>(</td>
489 <td class="paramtype">UInt16 </td>
490 <td class="paramname"><em>regionId</em></td><td>)</td>
491 <td></td>
492 </tr>
493 </table>
494 </div><div class="memdoc">
496 <p>Clears the <code>regionid</code> entry. </p>
497 <p><a class="el" href="_shared_region_8h.html#ae8654bccc1c7acbe7814ecc05ddee6e0" title="Clears the regionid entry. ">SharedRegion_clearEntry()</a> is used to render invalid a shared region that is currently valid. If the region has a heap, it will either be closed or deleted as necessary. All attributes of region are reset to defaults.</p>
498 <p>Calling <a class="el" href="_shared_region_8h.html#ae8654bccc1c7acbe7814ecc05ddee6e0" title="Clears the regionid entry. ">SharedRegion_clearEntry()</a> upon a region that is already invalid simply resets the region attributes to their defaults.</p>
499 <dl class="section note"><dt>Note</dt><dd>Region #0 is special and can neither be cleared nor set.</dd></dl>
500 <dl class="params"><dt>Parameters</dt><dd>
501 <table class="params">
502 <tr><td class="paramname">regionId</td><td>the region id</td></tr>
503 </table>
504 </dd>
505 </dl>
506 <dl class="section return"><dt>Returns</dt><dd>Status<ul>
507 <li><a class="el" href="_shared_region_8h.html#aeb2b620491aa7fb3f25603b651e037a5" title="Operation is successful. ">SharedRegion_S_SUCCESS</a>: Operation was successful</li>
508 <li><a class="el" href="_shared_region_8h.html#a38d229410cc0928a0ece957d8b525c5e" title="Generic failure. ">SharedRegion_E_FAIL</a>: Delete or close of heap created in region failed.</li>
509 </ul>
510 </dd></dl>
511 <dl class="section see"><dt>See also</dt><dd><a class="el" href="_shared_region_8h.html#a03f6986f76660e57a41ee312545e9f7d" title="Sets the entry at the specified region id. ">SharedRegion_setEntry()</a> </dd></dl>
513 </div>
514 </div>
515 <a class="anchor" id="a8462f38d89bbf6d9f0974c2465606110"></a>
516 <div class="memitem">
517 <div class="memproto">
518 <table class="memname">
519 <tr>
520 <td class="memname">Void SharedRegion_entryInit </td>
521 <td>(</td>
522 <td class="paramtype"><a class="el" href="struct_shared_region___entry.html">SharedRegion_Entry</a> * </td>
523 <td class="paramname"><em>entry</em></td><td>)</td>
524 <td></td>
525 </tr>
526 </table>
527 </div><div class="memdoc">
529 <p>Initializes the entry fields. </p>
530 <dl class="params"><dt>Parameters</dt><dd>
531 <table class="params">
532 <tr><td class="paramname">entry</td><td>pointer to a SharedRegion entry</td></tr>
533 </table>
534 </dd>
535 </dl>
536 <dl class="section see"><dt>See also</dt><dd><a class="el" href="_shared_region_8h.html#a03f6986f76660e57a41ee312545e9f7d" title="Sets the entry at the specified region id. ">SharedRegion_setEntry()</a> </dd></dl>
538 </div>
539 </div>
540 <a class="anchor" id="ae673e2d9bfd20a7eb07bcaab9a3c70aa"></a>
541 <div class="memitem">
542 <div class="memproto">
543 <table class="memname">
544 <tr>
545 <td class="memname">SizeT SharedRegion_getCacheLineSize </td>
546 <td>(</td>
547 <td class="paramtype">UInt16 </td>
548 <td class="paramname"><em>regionId</em></td><td>)</td>
549 <td></td>
550 </tr>
551 </table>
552 </div><div class="memdoc">
554 <p>Gets the cache line size for the specified region id. </p>
555 <dl class="params"><dt>Parameters</dt><dd>
556 <table class="params">
557 <tr><td class="paramname">regionId</td><td>the region id</td></tr>
558 </table>
559 </dd>
560 </dl>
561 <dl class="section return"><dt>Returns</dt><dd>Cache line size</dd></dl>
562 <dl class="section see"><dt>See also</dt><dd><a class="el" href="_shared_region_8h.html#afcd99988acc5d3b6b9dd809c49692185" title="whether cache enable was specified ">SharedRegion_isCacheEnabled()</a> </dd></dl>
564 </div>
565 </div>
566 <a class="anchor" id="aa7838cd5e41f00af54e2a76c3f251eca"></a>
567 <div class="memitem">
568 <div class="memproto">
569 <table class="memname">
570 <tr>
571 <td class="memname">Int SharedRegion_getEntry </td>
572 <td>(</td>
573 <td class="paramtype">UInt16 </td>
574 <td class="paramname"><em>regionId</em>, </td>
575 </tr>
576 <tr>
577 <td class="paramkey"></td>
578 <td></td>
579 <td class="paramtype"><a class="el" href="struct_shared_region___entry.html">SharedRegion_Entry</a> * </td>
580 <td class="paramname"><em>entry</em> </td>
581 </tr>
582 <tr>
583 <td></td>
584 <td>)</td>
585 <td></td><td></td>
586 </tr>
587 </table>
588 </div><div class="memdoc">
590 <p>Gets the entry information for the specified region id. </p>
591 <dl class="params"><dt>Parameters</dt><dd>
592 <table class="params">
593 <tr><td class="paramname">regionId</td><td>the region id </td></tr>
594 <tr><td class="paramname">entry</td><td>pointer to return region information</td></tr>
595 </table>
596 </dd>
597 </dl>
598 <dl class="section return"><dt>Returns</dt><dd>Status<ul>
599 <li><a class="el" href="_shared_region_8h.html#aeb2b620491aa7fb3f25603b651e037a5" title="Operation is successful. ">SharedRegion_S_SUCCESS</a>: Operation was successful</li>
600 <li><a class="el" href="_shared_region_8h.html#a38d229410cc0928a0ece957d8b525c5e" title="Generic failure. ">SharedRegion_E_FAIL</a>: Operation failed</li>
601 </ul>
602 </dd></dl>
603 <dl class="section see"><dt>See also</dt><dd><a class="el" href="_shared_region_8h.html#a03f6986f76660e57a41ee312545e9f7d" title="Sets the entry at the specified region id. ">SharedRegion_setEntry()</a> </dd></dl>
605 </div>
606 </div>
607 <a class="anchor" id="a8be33d6889ff1e1dbbd10f7e99caa01e"></a>
608 <div class="memitem">
609 <div class="memproto">
610 <table class="memname">
611 <tr>
612 <td class="memname"><a class="el" href="struct_shared_region___entry.html">SharedRegion_Entry</a>* SharedRegion_getEntryPtr </td>
613 <td>(</td>
614 <td class="paramtype">UInt16 </td>
615 <td class="paramname"><em>regionId</em></td><td>)</td>
616 <td></td>
617 </tr>
618 </table>
619 </div><div class="memdoc">
621 <p>Return the address of the shared region entry structure. </p>
622 <p>This function is to be used only for module startup configuration. The returned address gives you direct access to the in-memory entry structure. Use it to configure the entry just before the module startup phase begins. It is intended to support single-image loading.</p>
623 <p>Do not use this function during normal run-time operations; use <a class="el" href="_shared_region_8h.html#aa7838cd5e41f00af54e2a76c3f251eca" title="Gets the entry information for the specified region id. ">SharedRegion_getEntry()</a> instead. </p>
625 </div>
626 </div>
627 <a class="anchor" id="a6cbed730e029bb68e4c163b34ed69fa3"></a>
628 <div class="memitem">
629 <div class="memproto">
630 <table class="memname">
631 <tr>
632 <td class="memname">Ptr SharedRegion_getHeap </td>
633 <td>(</td>
634 <td class="paramtype">UInt16 </td>
635 <td class="paramname"><em>regionId</em></td><td>)</td>
636 <td></td>
637 </tr>
638 </table>
639 </div><div class="memdoc">
641 <p>Gets the heap associated with the specified region id. </p>
642 <p>The heap handle returned is of type xdc.runtime.IHeap. This handle type can be used with xdc.runtime.Memory.</p>
643 <p>The following code shows an example.</p>
644 <div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> #include <xdc/runtime/IHeap.h></div>
645 <div class="line"><a name="l00002"></a><span class="lineno"> 2</span> #include <xdc/runtime/Memory.h></div>
646 <div class="line"><a name="l00003"></a><span class="lineno"> 3</span> #include <ti/ipc/SharedRegion.h></div>
647 <div class="line"><a name="l00004"></a><span class="lineno"> 4</span> </div>
648 <div class="line"><a name="l00005"></a><span class="lineno"> 5</span> IHeap_Handle heap;</div>
649 <div class="line"><a name="l00006"></a><span class="lineno"> 6</span> UInt16 regionId;</div>
650 <div class="line"><a name="l00007"></a><span class="lineno"> 7</span> SizeT size;</div>
651 <div class="line"><a name="l00008"></a><span class="lineno"> 8</span> SizeT align;</div>
652 <div class="line"><a name="l00009"></a><span class="lineno"> 9</span> </div>
653 <div class="line"><a name="l00010"></a><span class="lineno"> 10</span> heap = (IHeap_Handle)SharedRegion_getHeap(regionId); // get the heap</div>
654 <div class="line"><a name="l00011"></a><span class="lineno"> 11</span> Memory_alloc(heap, size, align, NULL); // alloc memory from heap</div>
655 </div><!-- fragment --><dl class="params"><dt>Parameters</dt><dd>
656 <table class="params">
657 <tr><td class="paramname">regionId</td><td>the region id</td></tr>
658 </table>
659 </dd>
660 </dl>
661 <dl class="section return"><dt>Returns</dt><dd>Handle of the heap, NULL if the region has no heap </dd></dl>
663 </div>
664 </div>
665 <a class="anchor" id="afc6f82dd851547d6d6221a779be945dd"></a>
666 <div class="memitem">
667 <div class="memproto">
668 <table class="memname">
669 <tr>
670 <td class="memname">UInt16 SharedRegion_getId </td>
671 <td>(</td>
672 <td class="paramtype">Ptr </td>
673 <td class="paramname"><em>addr</em></td><td>)</td>
674 <td></td>
675 </tr>
676 </table>
677 </div><div class="memdoc">
679 <p>Gets the region id for the specified address. </p>
680 <dl class="params"><dt>Parameters</dt><dd>
681 <table class="params">
682 <tr><td class="paramname">addr</td><td>address</td></tr>
683 </table>
684 </dd>
685 </dl>
686 <dl class="section return"><dt>Returns</dt><dd>region id </dd></dl>
688 </div>
689 </div>
690 <a class="anchor" id="a67a530716a59b8794fee523cc8845f2c"></a>
691 <div class="memitem">
692 <div class="memproto">
693 <table class="memname">
694 <tr>
695 <td class="memname">UInt16 SharedRegion_getIdByName </td>
696 <td>(</td>
697 <td class="paramtype">String </td>
698 <td class="paramname"><em>name</em></td><td>)</td>
699 <td></td>
700 </tr>
701 </table>
702 </div><div class="memdoc">
704 <p>Gets the id of a region, given its name. </p>
705 <dl class="params"><dt>Parameters</dt><dd>
706 <table class="params">
707 <tr><td class="paramname">name</td><td>name of the region</td></tr>
708 </table>
709 </dd>
710 </dl>
711 <dl class="section return"><dt>Returns</dt><dd>region id </dd></dl>
713 </div>
714 </div>
715 <a class="anchor" id="a5fb23b15b5321edd51438108b7fd9cfe"></a>
716 <div class="memitem">
717 <div class="memproto">
718 <table class="memname">
719 <tr>
720 <td class="memname">UInt16 SharedRegion_getNumRegions </td>
721 <td>(</td>
722 <td class="paramtype">Void </td>
723 <td class="paramname"></td><td>)</td>
724 <td></td>
725 </tr>
726 </table>
727 </div><div class="memdoc">
729 <p>Gets the number of regions. </p>
730 <dl class="section return"><dt>Returns</dt><dd>number of regions </dd></dl>
732 </div>
733 </div>
734 <a class="anchor" id="a2b64c07cb305a034417a42fb1ed8e7a9"></a>
735 <div class="memitem">
736 <div class="memproto">
737 <table class="memname">
738 <tr>
739 <td class="memname">Ptr SharedRegion_getPtr </td>
740 <td>(</td>
741 <td class="paramtype"><a class="el" href="_shared_region_8h.html#a3efe06da0fa1fcbb3b271278ddd9b410">SharedRegion_SRPtr</a> </td>
742 <td class="paramname"><em>srptr</em></td><td>)</td>
743 <td></td>
744 </tr>
745 </table>
746 </div><div class="memdoc">
748 <p>Calculate the local pointer from the shared region pointer. </p>
749 <dl class="params"><dt>Parameters</dt><dd>
750 <table class="params">
751 <tr><td class="paramname">srptr</td><td>SharedRegion pointer</td></tr>
752 </table>
753 </dd>
754 </dl>
755 <dl class="section return"><dt>Returns</dt><dd>local pointer or NULL if shared region pointer is invalid</dd></dl>
756 <dl class="section see"><dt>See also</dt><dd><a class="el" href="_shared_region_8h.html#a7362baec546e36b21e82f35746b4ab3b" title="Calculate the shared region pointer given local address and id. ">SharedRegion_getSRPtr()</a> </dd></dl>
758 </div>
759 </div>
760 <a class="anchor" id="a7362baec546e36b21e82f35746b4ab3b"></a>
761 <div class="memitem">
762 <div class="memproto">
763 <table class="memname">
764 <tr>
765 <td class="memname"><a class="el" href="_shared_region_8h.html#a3efe06da0fa1fcbb3b271278ddd9b410">SharedRegion_SRPtr</a> SharedRegion_getSRPtr </td>
766 <td>(</td>
767 <td class="paramtype">Ptr </td>
768 <td class="paramname"><em>addr</em>, </td>
769 </tr>
770 <tr>
771 <td class="paramkey"></td>
772 <td></td>
773 <td class="paramtype">UInt16 </td>
774 <td class="paramname"><em>regionId</em> </td>
775 </tr>
776 <tr>
777 <td></td>
778 <td>)</td>
779 <td></td><td></td>
780 </tr>
781 </table>
782 </div><div class="memdoc">
784 <p>Calculate the shared region pointer given local address and id. </p>
785 <dl class="params"><dt>Parameters</dt><dd>
786 <table class="params">
787 <tr><td class="paramname">addr</td><td>the local address </td></tr>
788 <tr><td class="paramname">regionId</td><td>region id</td></tr>
789 </table>
790 </dd>
791 </dl>
792 <dl class="section return"><dt>Returns</dt><dd>SharedRegion pointer</dd></dl>
793 <dl class="section see"><dt>See also</dt><dd><a class="el" href="_shared_region_8h.html#a2b64c07cb305a034417a42fb1ed8e7a9" title="Calculate the local pointer from the shared region pointer. ">SharedRegion_getPtr()</a> </dd></dl>
795 </div>
796 </div>
797 <a class="anchor" id="afcd99988acc5d3b6b9dd809c49692185"></a>
798 <div class="memitem">
799 <div class="memproto">
800 <table class="memname">
801 <tr>
802 <td class="memname">Bool SharedRegion_isCacheEnabled </td>
803 <td>(</td>
804 <td class="paramtype">UInt16 </td>
805 <td class="paramname"><em>regionId</em></td><td>)</td>
806 <td></td>
807 </tr>
808 </table>
809 </div><div class="memdoc">
811 <p>whether cache enable was specified </p>
812 <dl class="params"><dt>Parameters</dt><dd>
813 <table class="params">
814 <tr><td class="paramname">regionId</td><td>region id</td></tr>
815 </table>
816 </dd>
817 </dl>
818 <dl class="section return"><dt>Returns</dt><dd>'TRUE' if cache enable specified, otherwise 'FALSE' </dd></dl>
820 </div>
821 </div>
822 <a class="anchor" id="a03f6986f76660e57a41ee312545e9f7d"></a>
823 <div class="memitem">
824 <div class="memproto">
825 <table class="memname">
826 <tr>
827 <td class="memname">Int SharedRegion_setEntry </td>
828 <td>(</td>
829 <td class="paramtype">UInt16 </td>
830 <td class="paramname"><em>regionId</em>, </td>
831 </tr>
832 <tr>
833 <td class="paramkey"></td>
834 <td></td>
835 <td class="paramtype"><a class="el" href="struct_shared_region___entry.html">SharedRegion_Entry</a> * </td>
836 <td class="paramname"><em>entry</em> </td>
837 </tr>
838 <tr>
839 <td></td>
840 <td>)</td>
841 <td></td><td></td>
842 </tr>
843 </table>
844 </div><div class="memdoc">
846 <p>Sets the entry at the specified region id. </p>
847 <p><a class="el" href="_shared_region_8h.html#a03f6986f76660e57a41ee312545e9f7d" title="Sets the entry at the specified region id. ">SharedRegion_setEntry()</a> is used to set up a shared region that is currently invalid. Configuration is performed using the values supplied in the 'entry' parameter. If the 'createHeap' flag is TRUE, then a region heap will be created (if the processor is the region owner) or opened.</p>
848 <p>If 'createHeap' is TRUE, <a class="el" href="_shared_region_8h.html#a03f6986f76660e57a41ee312545e9f7d" title="Sets the entry at the specified region id. ">SharedRegion_setEntry()</a> must always be called by a 'client' of the shared region only after the region owner has called <a class="el" href="_shared_region_8h.html#a03f6986f76660e57a41ee312545e9f7d" title="Sets the entry at the specified region id. ">SharedRegion_setEntry()</a>. It is unsafe to poll using <a class="el" href="_shared_region_8h.html#a03f6986f76660e57a41ee312545e9f7d" title="Sets the entry at the specified region id. ">SharedRegion_setEntry()</a> to wait for the corresponding heap to be created by the owner. An external synchronization mechanism (i.e. Notify, shared memory, etc) must be used to ensure the proper sequence of operations.</p>
849 <p>NOTE: This function should never be called upon a region that is currently valid.</p>
850 <dl class="params"><dt>Parameters</dt><dd>
851 <table class="params">
852 <tr><td class="paramname">regionId</td><td>region id </td></tr>
853 <tr><td class="paramname">entry</td><td>pointer to set region information.</td></tr>
854 </table>
855 </dd>
856 </dl>
857 <dl class="section return"><dt>Returns</dt><dd>Status<ul>
858 <li><a class="el" href="_shared_region_8h.html#aeb2b620491aa7fb3f25603b651e037a5" title="Operation is successful. ">SharedRegion_S_SUCCESS</a>: Operation was successful</li>
859 <li><a class="el" href="_shared_region_8h.html#a38d229410cc0928a0ece957d8b525c5e" title="Generic failure. ">SharedRegion_E_FAIL</a>: Region already exists or overlaps with with another region</li>
860 <li><a class="el" href="_shared_region_8h.html#a220eacf751625694d91a86b98c03dc8d" title="Operation resulted in memory failure. ">SharedRegion_E_MEMORY</a>: Unable to create Heap </li>
861 </ul>
862 </dd></dl>
864 </div>
865 </div>
866 <a class="anchor" id="ab6d47a56e271184d92158e88810e9063"></a>
867 <div class="memitem">
868 <div class="memproto">
869 <table class="memname">
870 <tr>
871 <td class="memname">Bool SharedRegion_translateEnabled </td>
872 <td>(</td>
873 <td class="paramtype">Void </td>
874 <td class="paramname"></td><td>)</td>
875 <td></td>
876 </tr>
877 </table>
878 </div><div class="memdoc">
880 <p>Whether address translation is enabled. </p>
881 <dl class="section return"><dt>Returns</dt><dd>'TRUE' if translate is enabled otherwise 'FALSE' </dd></dl>
883 </div>
884 </div>
885 <a class="anchor" id="a9ed41a1be03f81e10b150921c1035467"></a>
886 <div class="memitem">
887 <div class="memproto">
888 <table class="memname">
889 <tr>
890 <td class="memname"><a class="el" href="_shared_region_8h.html#a3efe06da0fa1fcbb3b271278ddd9b410">SharedRegion_SRPtr</a> SharedRegion_invalidSRPtr </td>
891 <td>(</td>
892 <td class="paramtype">Void </td>
893 <td class="paramname"></td><td>)</td>
894 <td></td>
895 </tr>
896 </table>
897 </div><div class="memdoc">
899 <p>Returns the SharedRegion_SRPtr value that maps to NULL. </p>
900 <dl class="section return"><dt>Returns</dt><dd>Value in SRPtr-space that maps to NULL in Ptr-space </dd></dl>
902 </div>
903 </div>
904 </div><!-- contents -->
905 <!-- HTML footer for doxygen 1.8.9.1-->
906 <!-- start footer part -->
907 <hr class="footer"/><small>
908 Copyright 2016, Texas Instruments Incorporated
909 </small>
910 </body>
911 </html>