00001
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040
00041
00042
00043
00044
00045
00046
00047
00048
00049
00050
00051
00052
00053 #ifndef FRAMEQBUFMGR_H
00054 #define FRAMEQBUFMGR_H
00055
00056
00057
00058 #include <ti/syslink/FrameQDefs.h>
00059 #include <ti/syslink/SysLink.h>
00060 #include <ti/ipc/Notify.h>
00061
00062 #if defined (__cplusplus)
00063 extern "C" {
00064 #endif
00065
00069 #define FrameQBufMgr_S_ALREADYDESTROYED 2
00070
00074 #define FrameQBufMgr_S_ALREADYSETUP 1
00075
00079 #define FrameQBufMgr_S_SUCCESS 0
00080
00084 #define FrameQBufMgr_E_FAIL -1
00085
00089 #define FrameQBufMgr_E_INVALIDARG -2
00090
00094 #define FrameQBufMgr_E_NOTFOUND -3
00095
00099 #define FrameQBufMgr_E_INST_EXISTS -4
00100
00104 #define FrameQBufMgr_E_ALLOC_BUF -5
00105
00109 #define FrameQBufMgr_E_ALLOC_MEMORY -6
00110
00114 #define FrameQBufMgr_E_CREATE_NAMESERVER -7
00115
00119 #define FrameQBufMgr_E_FAIL_CLIENTN0TIFYMGR_CREATE -8
00120
00124 #define FrameQBufMgr_E_CLIENTN0TIFYMGR_OPEN -9
00125
00129 #define FrameQBufMgr_E_CREATE_GATEMP -10
00130
00134 #define FrameQBufMgr_E_OPEN_GATEMP -11
00135
00139 #define FrameQBufMgr_E_MAX_CLIENTS -12
00140
00144 #define FrameQBufMgr_E_ACCESSDENIED -13
00145
00149 #define FrameQBufMgr_E_NOTIMPLEMENTED -14
00150
00154 #define FrameQBufMgr_E_INVALIDSTATE -15
00155
00159 #define FrameQBufMgr_E_OSFAILURE -16
00160
00164 #define FrameQBufMgr_E_MAXINSTANCES -17
00165
00169 #define FrameQBufMgr_E_INVALID_INTERFACE -18
00170
00174 #define FrameQBufMgr_E_OPEN_NAMESERVER -19
00175
00179 #define FrameQBufMgr_E_INSUFFICIENT_HDRBUFS -20
00180
00184 #define FrameQBufMgr_E_ALLOC_FRAME -21
00185
00190 #define FrameQBufMgr_E_ALLOC_ALLFRAMES -22
00191
00195 #define FrameQBufMgr_E_INVALID_MEMMGRTYPE -23
00196
00201 #define FrameQBufMgr_E_INVALID_HDRINTERFACETYPE -24
00202
00207 #define FrameQBufMgr_E_INVALID_BUFINTERFACETYPE -25
00208
00212 #define FrameQBufMgr_E_NAMESERVERADD -33
00213
00217 typedef struct FrameQBufMgr_Object* FrameQBufMgr_Handle;
00218
00219
00220
00221
00222
00223
00224 #define FrameQBufMgr_FrameBufInfo Frame_FrameBufInfo
00225
00229 #define FrameQBufMgr_FrameHeader Frame_FrameHeader
00230
00234 typedef Frame_FrameHeader * FrameQBufMgr_Frame;
00235
00239 #define FrameQBufMgr_MAXNAMELEN (32u)
00240
00244 #define FrameQBufMgr_MAXINSTANCES (64u)
00245
00249 #define FrameQBufMgr_MAX_POOLS (64u)
00250
00255 #define FrameQBufMgr_MAX_FRAMEBUFS (8)
00256
00261 #define FrameQBufMgr_POOL_MAXFRAMES (32)
00262
00267 #define FrameQBufMgr_POOL_MAXHDRS (64)
00268
00273 #define FrameQBufMgr_POOL_DYNAMIC_MAXFRAMES (1)
00274
00279 #define FrameQBufMgr_POOL_DYNAMIC_MAXHDRS (1)
00280
00284 #define FrameQBufMgr_NOTIFY_RESERVED_EVENTNO (0u)
00285
00286
00292 #define FrameQBufMgr_MAX_FRAMESINVAPI (FrameQ_MAX_FRAMESINVAPI)
00293
00294
00295
00296
00297
00298
00303 typedef enum FrameQBufMgr_CpuAccessFlags_Tag {
00304 FrameQBufMgr_FRAMEBUF0_CPUACCESS = 0x10000,
00308 FrameQBufMgr_FRAMEBUF1_CPUACCESS = 0x20000,
00312 FrameQBufMgr_FRAMEBUF2_CPUACCESS = 0x40000,
00316 FrameQBufMgr_FRAMEBUF3_CPUACCESS = 0x80000,
00320 FrameQBufMgr_FRAMEBUF4_CPUACCESS = 0x100000,
00324 FrameQBufMgr_FRAMEBUF5_CPUACCESS = 0x200000,
00328 FrameQBufMgr_FRAMEBUF6_CPUACCESS = 0x400000,
00332 FrameQBufMgr_FRAMEBUF7_CPUACCESS = 0x800000
00336 } FrameQBufMgr_CpuAccessFlags;
00337
00341 typedef enum FrameQBufMgr_BufType_Tag {
00342 FrameQBufMgr_BUF_FRAMEHEADER = 0u,
00344 FrameQBufMgr_BUF_FRAMEBUF = 1u,
00346 FrameQBufMgr_BUF_ENDVALUE = 2u
00348 }FrameQBufMgr_BufType;
00349
00353 typedef enum FrameQBufMgr_AddrType_Tag{
00354 FrameQBufMgr_AddrType_Virtual = 0u,
00358 FrameQBufMgr_AddrType_Portable = 1u,
00363 FrameQBufMgr_AddrType_EndValue = 2u
00365 }FrameQBufMgr_AddrType;
00366
00371 typedef enum FrameQBufMgr_Interface_Tag {
00372 FrameQBufMgr_INTERFACE_SHAREDMEM = 0x0,
00376 FrameQBufMgr_INTERFACE_NONE = 0x1
00377 } FrameQBufMgr_Interface;
00378
00383 typedef enum FrameQBufMgr_FrameHeaderInterface_Tag {
00384 FrameQBufMgr_HDRINTERFACE_SHAREDMEM = 0x0,
00388 FrameQBufMgr_HDRINTERFACE_NONE = 0x1
00389 } FrameQBufMgr_FrameHeaderInterface;
00390
00395 typedef enum FrameQBufMgr_FrameBufferInterface_Tag {
00396 FrameQBufMgr_BUFINTERFACE_SHAREDMEM = 0x0,
00400 FrameQBufMgr_BUFINTERFACE_TILERMEM = 0x1,
00403 FrameQBufMgr_BUFINTERFACE_NONE = 0x2
00404 } FrameQBufMgr_FrameBufferInterface;
00405
00410 typedef struct FrameQBufMgr_Config_Tag {
00411 UInt32 eventNo;
00413 Bool maxInstances;
00415 UInt32 usedefaultgate;
00416
00417
00418
00419
00420
00421
00422
00423 } FrameQBufMgr_Config;
00424
00432 typedef struct FrameQBufMgr_CreateParams_Tag {
00433 UInt32 size;
00434 FrameQBufMgr_Interface ctrlInterfaceType;
00435 String name;
00436 UInt32 openFlag;
00444 } FrameQBufMgr_CreateParams;
00445
00450 typedef struct FrameQBufMgr_CommonOpenParams_Tag {
00451 String name;
00454 UInt32 cpuAccessFlags;
00457 Ptr sharedAddr;
00459 } FrameQBufMgr_CommonOpenParams;
00460
00468 typedef struct FrameQBufMgr_Params {
00469 FrameQBufMgr_CreateParams commonCreateParams;
00470 Ptr impParams;
00473 UInt32 impParamsSize;
00476 } FrameQBufMgr_Params;
00477
00481 typedef struct FrameQBufMgr_FrameBufParams_Tag {
00482 UInt32 size;
00484 UInt32 pixelFormat;
00486 UInt32 height;
00488 UInt32 width;
00490 UInt32 align;
00492 }FrameQBufMgr_FrameBufParams;
00493
00497 typedef void (*FrameQBufMgr_NotifyFunc) (FrameQBufMgr_Handle, Ptr arg, UInt32);
00498
00502 typedef struct FrameQBufMgr_NotifyParams_Tag {
00503 SysLink_NotifyType notifyType;
00505 UInt32 watermark;
00509 FrameQBufMgr_NotifyFunc cbFxnPtr;
00511 Ptr cbContext;
00513 Ptr cbClientHandle;
00516 } FrameQBufMgr_NotifyParams;
00517
00518
00519
00520
00521
00522
00542 Int32 FrameQBufMgr_setup(FrameQBufMgr_Config *cfg);
00543
00544
00548 Int32 FrameQBufMgr_destroy(Void);
00549
00550
00565 FrameQBufMgr_Handle FrameQBufMgr_create(Ptr params);
00566
00567
00583 Int32 FrameQBufMgr_delete(FrameQBufMgr_Handle *pHandle);
00584
00585
00625 Int32 FrameQBufMgr_open(FrameQBufMgr_Handle *handlePtr, Ptr openParams);
00626
00627
00665 Int32
00666 FrameQBufMgr_openByAddr (FrameQBufMgr_Handle * handlePtr,
00667 Ptr openParams);
00668
00684 Int32
00685 FrameQBufMgr_close (FrameQBufMgr_Handle *pHandle);
00686
00708 Int32
00709 FrameQBufMgr_alloc (FrameQBufMgr_Handle handle,
00710 FrameQBufMgr_Frame *frame);
00711
00738 Int32
00739 FrameQBufMgr_allocv (FrameQBufMgr_Handle handle,
00740 FrameQBufMgr_Frame framePtr[],
00741 UInt32 freeQId[],
00742 UInt8 * numFrames);
00743
00760 Int32
00761 FrameQBufMgr_free (FrameQBufMgr_Handle handle,
00762 FrameQBufMgr_Frame frame);
00763
00783 Int32
00784 FrameQBufMgr_freev (FrameQBufMgr_Handle handle,
00785 FrameQBufMgr_Frame framePtr[],
00786 UInt32 numFrames);
00787
00788
00797 Ptr
00798 FrameQBufMgr_add (FrameQBufMgr_Handle handle,
00799 UInt8 freeQId);
00800
00808 Int32
00809 FrameQBufMgr_remove (FrameQBufMgr_Handle handle,
00810 UInt8 freeQId,
00811 FrameQBufMgr_Frame framePtr);
00812
00837 Int32
00838 FrameQBufMgr_dup (FrameQBufMgr_Handle handle,
00839 FrameQBufMgr_Frame framePtr,
00840 FrameQBufMgr_Frame dupedFramePtr[],
00841 UInt32 numDupedFrames);
00842
00869 Int32
00870 FrameQBufMgr_dupv (FrameQBufMgr_Handle handle,
00871 FrameQBufMgr_Frame framePtr[],
00872 FrameQBufMgr_Frame **dupedFramePtr,
00873 UInt32 numDupedFrames,
00874 UInt32 numFrames);
00875
00896 Int32
00897 FrameQBufMgr_registerNotifier (FrameQBufMgr_Handle handle,
00898 FrameQBufMgr_NotifyParams *notifyParams);
00899
00918 Int32
00919 FrameQBufMgr_unregisterNotifier (FrameQBufMgr_Handle handle);
00920
00936 Int32
00937 FrameQBufMgr_writeBack(FrameQBufMgr_Handle handle, FrameQBufMgr_Frame framePtr);
00938
00957 Int32
00958 FrameQBufMgr_writeBackBuf(FrameQBufMgr_Handle handle,
00959 Ptr buf,
00960 UInt32 flags);
00961
00977 Int32
00978 FrameQBufMgr_invalidate(FrameQBufMgr_Handle handle,
00979 FrameQBufMgr_Frame framePtr);
00980
00999 Int32
01000 FrameQBufMgr_invalidateFrameBuf(FrameQBufMgr_Handle handle,
01001 Ptr frameBuf,
01002 UInt32 size,
01003 UInt8 bufIndexInFrame);
01004
01023 Int32
01024 FrameQBufMgr_writeBackFrameBuf(FrameQBufMgr_Handle handle,
01025 Ptr frameBuf,
01026 UInt32 size,
01027 UInt8 bufIndexInFrame);
01041 Int32
01042 FrameQBufMgr_invalidateHeaderBuf(FrameQBufMgr_Handle handle,
01043 Ptr headerBuf);
01044
01058 Int32
01059 FrameQBufMgr_writeBackHeaderBuf(FrameQBufMgr_Handle handle,
01060 Ptr headerBuf);
01061
01086 Int32
01087 FrameQBufMgr_translateAddr (FrameQBufMgr_Handle handle,
01088 Ptr * dstAddr,
01089 FrameQBufMgr_AddrType dstAddrType,
01090 Ptr srcAddr,
01091 FrameQBufMgr_AddrType srcAddrType,
01092 FrameQBufMgr_BufType bufType);
01093
01103 Int32 FrameQBufMgr_getConfig(FrameQBufMgr_Config *cfg);
01104
01113 UInt32
01114 FrameQBufMgr_getId (FrameQBufMgr_Handle handle);
01115
01125 Ptr
01126 FrameQBufMgr_getHandle (UInt32 Id);
01127
01137 Bool
01138 FrameQBufMgr_isCacheEnabledForHeaderBuf(FrameQBufMgr_Handle handle);
01139
01150 Bool
01151 FrameQBufMgr_isCacheEnabledForFrameBuf(FrameQBufMgr_Handle handle,
01152 UInt8 framebufIndex);
01153
01163 Int32
01164 FrameQBufMgr_getNumFreeFrames (FrameQBufMgr_Handle handle, UInt32* numFreeFrames);
01165
01176 Int32
01177 FrameQBufMgr_control (FrameQBufMgr_Handle handle,
01178 Int32 cmd,
01179 Ptr arg);
01180
01189 UInt32 FrameQBufMgr_getBaseHeaderSize(UInt8 numFrameBufs);
01190
01199
01200 Ptr FrameQBufMgr_getKnlHandle(FrameQBufMgr_Handle handle);
01201
01202
01203 #if defined (__cplusplus)
01204 }
01205 #endif
01206
01207
01208 #endif