SysLink API Reference
2.21.03.11
Main Page
Data Structures
Files
Related Pages
File List
Globals
All
Data Structures
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Pages
ti
syslink
FrameQ_ShMem.h
Go to the documentation of this file.
1
10
/*
11
* ============================================================================
12
*
13
* Copyright (c) 2008-2012, Texas Instruments Incorporated
14
*
15
* Redistribution and use in source and binary forms, with or without
16
* modification, are permitted provided that the following conditions
17
* are met:
18
*
19
* * Redistributions of source code must retain the above copyright
20
* notice, this list of conditions and the following disclaimer.
21
*
22
* * Redistributions in binary form must reproduce the above copyright
23
* notice, this list of conditions and the following disclaimer in the
24
* documentation and/or other materials provided with the distribution.
25
*
26
* * Neither the name of Texas Instruments Incorporated nor the names of
27
* its contributors may be used to endorse or promote products derived
28
* from this software without specific prior written permission.
29
*
30
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
31
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
32
* THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
33
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
34
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
35
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
36
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
37
* OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
38
* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
39
* OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
40
* EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
41
* Contact information for paper mail:
42
* Texas Instruments
43
* Post Office Box 655303
44
* Dallas, Texas 75265
45
* Contact information:
46
* http://www-k.ext.ti.com/sc/technical-support/product-information-centers.htm?
47
* DCMP=TIHomeTracking&HQS=Other+OT+home_d_contact
48
* ============================================================================
49
*
50
*/
51
52
53
#ifndef FRAMEQ_SHMEM_H
54
#define FRAMEQ_SHMEM_H
55
56
#include <
ti/ipc/GateMP.h
>
57
58
#if defined (__cplusplus)
59
extern
"C"
{
60
#endif
61
62
/* =============================================================================
63
* Macros & defines
64
* =============================================================================
65
*/
66
67
typedef
FrameQ_Config
FrameQ_ShMem_Config
;
68
69
/* =============================================================================
70
* Structures & Enums
71
* =============================================================================
72
*/
73
78
typedef
struct
FrameQ_ShMem_Params_tag
{
79
FrameQ_CreateParams
commonCreateParams
;
82
GateMP_Handle
gate
;
95
GateMP_LocalProtect
localProtect
;
101
GateMP_RemoteProtect
remoteProtect
;
107
Ptr
sharedAddr
;
118
UInt32
sharedAddrSize
;
128
UInt32
regionId
;
136
UInt32
numReaders
;
141
UInt32
numQueues
;
145
UInt32
cpuAccessFlags
;
152
String
frameQBufMgrName
;
160
Ptr
frameQBufMgrSharedAddr
;
165
}
FrameQ_ShMem_Params
;
166
167
172
typedef
struct
FrameQ_ShMem_OpenParams_tag
{
173
FrameQ_CommonOpenParams
commonOpenParams
;
175
}
FrameQ_ShMem_OpenParams
;
176
177
178
/* =============================================================================
179
* APIs
180
* =============================================================================
181
*/
182
192
void
193
FrameQ_ShMem_Params_init
(
FrameQ_ShMem_Params
* params);
194
207
UInt32
208
FrameQ_ShMem_sharedMemReq
(
const
FrameQ_ShMem_Params
* params);
209
210
/*
211
* @brief Get the default configuration for the FrameQ_ShMem module.
212
*
213
* This function can be called by the application to get their
214
* configuration parameter to FrameQ_setup filled in by
215
* the FrameQ module with the default parameters. If the
216
* user does not wish to make any change in the default parameters,
217
* this API is not required to be called.
218
*
219
* @param cfg Pointer to the FrameQ module configuration
220
* structure in which the default config is to be
221
* returned.
222
*
223
* @sa FrameQ_setup
224
*/
225
Void
FrameQ_ShMem_getConfig
(FrameQ_ShMem_Config *cfg);
226
227
/*
228
* @brief Setup the FrameQ module.
229
*
230
* This function sets up the FrameQ module. This function
231
* must be called before any other instance-level APIs can be
232
* invoked.
233
* Module-level configuration needs to be provided to this
234
* function. If the user wishes to change some specific config
235
* parameters, then FrameQ_getConfig can be called to get
236
* the configuration filled with the default values. After this,
237
* only the required configuration values can be changed. If the
238
* user does not wish to make any change in the default parameters,
239
* the application can simply call FrameQ_setup with NULL
240
* parameters. The default parameters would get automatically used.
241
*
242
* @param cfg Optional FrameQ module configuration. If provided
243
* as NULL, default configuration is used.
244
*
245
* @sa FrameQ_destroy, FrameQ_getConfig
246
*/
247
Int32
248
FrameQ_ShMem_setup
(FrameQ_ShMem_Config * cfg);
249
250
/*
251
* ======== FrameQ_ShMem_destroy ========
252
* API to finalize the module.
253
*/
254
Int32
255
FrameQ_ShMem_destroy
(
void
);
256
257
#if defined (__cplusplus)
258
}
259
#endif
260
261
262
#endif
/* FRAMEQ_SHMEM_H */
263
Copyright 2014, Texas Instruments Incorporated