Project  1.0
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
SharedRegion.h
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2013, Texas Instruments Incorporated
3  * All rights reserved.
4  *
5  * Redistribution and use in source and binary forms, with or without
6  * modification, are permitted provided that the following conditions
7  * are met:
8  *
9  * * Redistributions of source code must retain the above copyright
10  * notice, this list of conditions and the following disclaimer.
11  *
12  * * Redistributions in binary form must reproduce the above copyright
13  * notice, this list of conditions and the following disclaimer in the
14  * documentation and/or other materials provided with the distribution.
15  *
16  * * Neither the name of Texas Instruments Incorporated nor the names of
17  * its contributors may be used to endorse or promote products derived
18  * from this software without specific prior written permission.
19  *
20  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
21  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
22  * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
23  * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
24  * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
25  * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
26  * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
27  * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
28  * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
29  * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
30  * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
31  * */
101 #ifndef ti_ipc_SharedRegion__include
102 #define ti_ipc_SharedRegion__include
103 
104 
105 #if defined (__cplusplus)
106 extern "C" {
107 #endif
108 
109 /* ============================================================================
110  * All success and failure codes for the module
111  * =============================================================================
112  */
113 
118 #define SharedRegion_S_BUSY 2
119 
124 #define SharedRegion_S_ALREADYSETUP 1
125 
130 #define SharedRegion_S_SUCCESS 0
131 
136 #define SharedRegion_E_FAIL -1
137 
142 #define SharedRegion_E_INVALIDARG -2
143 
148 #define SharedRegion_E_MEMORY -3
149 
154 #define SharedRegion_E_ALREADYEXISTS -4
155 
160 #define SharedRegion_E_NOTFOUND -5
161 
166 #define SharedRegion_E_TIMEOUT -6
167 
172 #define SharedRegion_E_INVALIDSTATE -7
173 
178 #define SharedRegion_E_OSFAILURE -8
179 
184 #define SharedRegion_E_RESOURCE -9
185 
190 #define SharedRegion_E_RESTART -10
191 
192 /* =============================================================================
193  * Macros
194  * =============================================================================
195  */
196 
201 #define SharedRegion_INVALIDREGIONID (0xFFFF)
202 
203 /* =============================================================================
204  * Structures & Enums
205  * =============================================================================
206  */
207 
211 typedef Bits32 SharedRegion_SRPtr;
212 
216 typedef struct SharedRegion_Entry {
217  Ptr base;
220  SizeT len;
227  UInt16 ownerProcId;
234  Bool isValid;
237  Bool cacheEnable;
246  SizeT cacheLineSize;
254  Bool createHeap;
263  String name;
270 
271 
272 /* =============================================================================
273  * SharedRegion Module-wide Functions
274  * =============================================================================
275  */
276 
298 Int SharedRegion_clearEntry(UInt16 regionId);
299 
308 
318 SizeT SharedRegion_getCacheLineSize(UInt16 regionId);
319 
332 Int SharedRegion_getEntry(UInt16 regionId, SharedRegion_Entry *entry);
333 
370 Ptr SharedRegion_getHeap(UInt16 regionId);
371 
379 UInt16 SharedRegion_getId(Ptr addr);
380 
388 UInt16 SharedRegion_getIdByName(String name);
389 
395 UInt16 SharedRegion_getNumRegions(Void);
396 
406 Ptr SharedRegion_getPtr(SharedRegion_SRPtr srptr);
407 
418 SharedRegion_SRPtr SharedRegion_getSRPtr(Ptr addr, UInt16 regionId);
419 
427 Bool SharedRegion_isCacheEnabled(UInt16 regionId);
428 
457 Int SharedRegion_setEntry(UInt16 regionId, SharedRegion_Entry *entry);
458 
465 
471 SharedRegion_SRPtr SharedRegion_invalidSRPtr(Void);
472 
473 #if defined (__cplusplus)
474 }
475 #endif /* defined (__cplusplus) */
476 
477 #endif /* ti_ipc_SharedRegion__include */
478 
479 /*
480  * @(#) ti.ipc; 1, 0, 0, 0,; 1-23-2013 13:22:43; /db/vtree/library/trees/ipc/ipc-i12/src/ xlibrary
481 
482  */
483 
Copyright 2013, Texas Instruments Incorporated