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
FrameQBufMgr_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 FRAMEQBUFMGR_SHMEM_H
54
#define FRAMEQBUFMGR_SHMEM_H
55
56
#include <
ti/ipc/GateMP.h
>
57
#include <
ti/syslink/FrameQBufMgr.h
>
58
59
60
#if defined (__cplusplus)
61
extern
"C"
{
62
#endif
63
64
/* =============================================================================
65
* Macros & defines
66
* =============================================================================
67
*/
68
#define FrameQBufMgr_ShMem_BUFINTERFACE_SHAREDMEM FrameQBufMgr_BUFINTERFACE_SHAREDMEM
69
#define FrameQBufMgr_ShMem_BUFINTERFACE_TILERMEM FrameQBufMgr_BUFINTERFACE_TILERMEM
70
#define FrameQBufMgr_ShMem_HDRINTERFACE_SHAREDMEM FrameQBufMgr_HDRINTERFACE_SHAREDMEM
71
#define FrameQBufMgr_ShMem_FrameBufParams FrameQBufMgr_FrameBufParams
72
73
74
/* TODO - are different _internal_ vs _external types necessary? */
75
typedef
FrameQBufMgr_Config
FrameQBufMgr_ShMem_Config
;
76
/* =============================================================================
77
* Structures & Enums
78
* =============================================================================
79
*/
80
84
typedef
struct
FrameQBufMgr_ShMem_Params_tag
{
85
FrameQBufMgr_CreateParams
commonCreateParams
;
88
GateMP_Handle
gate
;
102
GateMP_LocalProtect
localProtect
;
105
GateMP_RemoteProtect
remoteProtect
;
108
Ptr
sharedAddr
;
119
UInt32
sharedAddrSize
;
129
UInt32
regionId
;
137
UInt32
headerInterfaceType
;
143
UInt32
bufInterfaceType
;
150
Ptr
sharedAddrHdrBuf
;
162
UInt32
sharedAddrHdrBufSize
;
165
UInt32
hdrBuf_regionId
;
173
Ptr
sharedAddrFrmBuf
;
176
UInt32
sharedAddrFrmBufSize
;
179
UInt32
frmBuf_regionId
;
187
UInt32
numFreeFramePools
;
190
UInt32
numFreeFramesInPool
[
FrameQBufMgr_MAX_POOLS
];
193
UInt32
numFreeHeaderBufsInPool
[
FrameQBufMgr_MAX_POOLS
];
196
UInt32
frameHeaderBufSize
[
FrameQBufMgr_MAX_POOLS
];
199
UInt32
numFrameBufsInFrame
[
FrameQBufMgr_MAX_POOLS
];
204
FrameQBufMgr_ShMem_FrameBufParams
*
frameBufParams
[
FrameQBufMgr_MAX_POOLS
];
207
UInt32
cpuAccessFlags
;
214
UInt32
numNotifyEntries
;
219
}
FrameQBufMgr_ShMem_Params
;
220
225
typedef
struct
FrameQBufMgr_ShMem_OpenParams_tag
{
226
FrameQBufMgr_CommonOpenParams
commonOpenParams
;
228
}
FrameQBufMgr_ShMem_OpenParams
;
229
230
/* =============================================================================
231
* APIs
232
* =============================================================================
233
*/
234
235
/* Initialize the FrameQBufMgr module, there would be some default values for
236
* the parameters, but if any change is required, change the cfg before calling
237
* this API.
238
*/
239
Int32
FrameQBufMgr_ShMem_setup
(FrameQBufMgr_ShMem_Config * cfg);
240
241
242
/* Function to destroy(finalize) the FrameQBufMgr module.*/
243
Int32
FrameQBufMgr_ShMem_destroy
(
Void
);
244
252
void
FrameQBufMgr_ShMem_Params_init
(
FrameQBufMgr_ShMem_Params
* params);
253
268
UInt32
269
FrameQBufMgr_ShMem_sharedMemReq
(
const
FrameQBufMgr_ShMem_Params
* params,
270
UInt32
* hdrBufChunkSize,
271
UInt32
* frmBufChunkSize);
272
273
Int32
FrameQBufMgr_ShMem_getConfig
(FrameQBufMgr_ShMem_Config *cfg);
274
275
276
#if defined (__cplusplus)
277
}
278
#endif
/* defined (__cplusplus) */
279
280
281
#endif
/* HEAPBUF_H_0x4CD5 */
Copyright 2014, Texas Instruments Incorporated