00001
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
00054 #ifndef FRAMEQBUFMGR_H
00055 #define FRAMEQBUFMGR_H
00056
00057
00058
00059 #include <ti/syslink/FrameQDefs.h>
00060 #include <ti/syslink/SysLink.h>
00061 #include <ti/ipc/Notify.h>
00062
00063 #if defined (__cplusplus)
00064 extern "C" {
00065 #endif
00066
00070 #define FrameQBufMgr_S_ALREADYDESTROYED 2
00071
00075 #define FrameQBufMgr_S_ALREADYSETUP 1
00076
00080 #define FrameQBufMgr_S_SUCCESS 0
00081
00085 #define FrameQBufMgr_E_FAIL -1
00086
00090 #define FrameQBufMgr_E_INVALIDARG -2
00091
00095 #define FrameQBufMgr_E_NOTFOUND -3
00096
00100 #define FrameQBufMgr_E_INST_EXISTS -4
00101
00105 #define FrameQBufMgr_E_ALLOC_BUF -5
00106
00110 #define FrameQBufMgr_E_ALLOC_MEMORY -6
00111
00115 #define FrameQBufMgr_E_CREATE_NAMESERVER -7
00116
00120 #define FrameQBufMgr_E_FAIL_CLIENTN0TIFYMGR_CREATE -8
00121
00125 #define FrameQBufMgr_E_CLIENTN0TIFYMGR_OPEN -9
00126
00130 #define FrameQBufMgr_E_CREATE_GATEMP -10
00131
00135 #define FrameQBufMgr_E_OPEN_GATEMP -11
00136
00140 #define FrameQBufMgr_E_MAX_CLIENTS -12
00141
00145 #define FrameQBufMgr_E_ACCESSDENIED -13
00146
00150 #define FrameQBufMgr_E_NOTIMPLEMENTED -14
00151
00155 #define FrameQBufMgr_E_INVALIDSTATE -15
00156
00160 #define FrameQBufMgr_E_OSFAILURE -16
00161
00165 #define FrameQBufMgr_E_MAXINSTANCES -17
00166
00170 #define FrameQBufMgr_E_INVALID_INTERFACE -18
00171
00175 #define FrameQBufMgr_E_OPEN_NAMESERVER -19
00176
00180 #define FrameQBufMgr_E_INSUFFICIENT_HDRBUFS -20
00181
00185 #define FrameQBufMgr_E_ALLOC_FRAME -21
00186
00191 #define FrameQBufMgr_E_ALLOC_ALLFRAMES -22
00192
00196 #define FrameQBufMgr_E_INVALID_MEMMGRTYPE -23
00197
00202 #define FrameQBufMgr_E_INVALID_HDRINTERFACETYPE -24
00203
00208 #define FrameQBufMgr_E_INVALID_BUFINTERFACETYPE -25
00209
00213 #define FrameQBufMgr_E_NAMESERVERADD -33
00214
00218 typedef struct FrameQBufMgr_Object* FrameQBufMgr_Handle;
00219
00220
00221
00222
00223
00224
00225 #define FrameQBufMgr_FrameBufInfo Frame_FrameBufInfo
00226
00230 #define FrameQBufMgr_FrameHeader Frame_FrameHeader
00231
00235 typedef Frame_FrameHeader * FrameQBufMgr_Frame;
00236
00240 #define FrameQBufMgr_MAXNAMELEN (32u)
00241
00245 #define FrameQBufMgr_MAXINSTANCES (64u)
00246
00250 #define FrameQBufMgr_MAX_POOLS (64u)
00251
00256 #define FrameQBufMgr_MAX_FRAMEBUFS (8)
00257
00262 #define FrameQBufMgr_POOL_MAXFRAMES (32)
00263
00268 #define FrameQBufMgr_POOL_MAXHDRS (64)
00269
00274 #define FrameQBufMgr_POOL_DYNAMIC_MAXFRAMES (1)
00275
00280 #define FrameQBufMgr_POOL_DYNAMIC_MAXHDRS (1)
00281
00285 #define FrameQBufMgr_NOTIFY_RESERVED_EVENTNO (0u)
00286
00287
00293 #define FrameQBufMgr_MAX_FRAMESINVAPI (FrameQ_MAX_FRAMESINVAPI)
00294
00295
00296
00297
00298
00299
00304 typedef enum FrameQBufMgr_CpuAccessFlags_Tag {
00305 FrameQBufMgr_FRAMEBUF0_CPUACCESS = 0x10000,
00309 FrameQBufMgr_FRAMEBUF1_CPUACCESS = 0x20000,
00313 FrameQBufMgr_FRAMEBUF2_CPUACCESS = 0x40000,
00317 FrameQBufMgr_FRAMEBUF3_CPUACCESS = 0x80000,
00321 FrameQBufMgr_FRAMEBUF4_CPUACCESS = 0x100000,
00325 FrameQBufMgr_FRAMEBUF5_CPUACCESS = 0x200000,
00329 FrameQBufMgr_FRAMEBUF6_CPUACCESS = 0x400000,
00333 FrameQBufMgr_FRAMEBUF7_CPUACCESS = 0x800000
00337 } FrameQBufMgr_CpuAccessFlags;
00338
00342 typedef enum FrameQBufMgr_BufType_Tag {
00343 FrameQBufMgr_BUF_FRAMEHEADER = 0u,
00345 FrameQBufMgr_BUF_FRAMEBUF = 1u,
00347 FrameQBufMgr_BUF_ENDVALUE = 2u
00349 }FrameQBufMgr_BufType;
00350
00354 typedef enum FrameQBufMgr_AddrType_Tag{
00355 FrameQBufMgr_AddrType_Virtual = 0u,
00359 FrameQBufMgr_AddrType_Portable = 1u,
00364 FrameQBufMgr_AddrType_EndValue = 2u
00366 }FrameQBufMgr_AddrType;
00367
00372 typedef enum FrameQBufMgr_Interface_Tag {
00373 FrameQBufMgr_INTERFACE_SHAREDMEM = 0x0,
00377 FrameQBufMgr_INTERFACE_NONE = 0x1
00378 } FrameQBufMgr_Interface;
00379
00384 typedef enum FrameQBufMgr_FrameHeaderInterface_Tag {
00385 FrameQBufMgr_HDRINTERFACE_SHAREDMEM = 0x0,
00389 FrameQBufMgr_HDRINTERFACE_NONE = 0x1
00390 } FrameQBufMgr_FrameHeaderInterface;
00391
00396 typedef enum FrameQBufMgr_FrameBufferInterface_Tag {
00397 FrameQBufMgr_BUFINTERFACE_SHAREDMEM = 0x0,
00401 FrameQBufMgr_BUFINTERFACE_TILERMEM = 0x1,
00404 FrameQBufMgr_BUFINTERFACE_NONE = 0x2
00405 } FrameQBufMgr_FrameBufferInterface;
00406
00411 typedef struct FrameQBufMgr_Config_Tag {
00412 UInt32 eventNo;
00414 Bool maxInstances;
00416 UInt32 usedefaultgate;
00417
00418
00419
00420
00421
00422
00423
00424 } FrameQBufMgr_Config;
00425
00433 typedef struct FrameQBufMgr_CreateParams_Tag {
00434 UInt32 size;
00435 FrameQBufMgr_Interface ctrlInterfaceType;
00436 String name;
00437 UInt32 openFlag;
00445 } FrameQBufMgr_CreateParams;
00446
00451 typedef struct FrameQBufMgr_CommonOpenParams_Tag {
00452 String name;
00455 UInt32 cpuAccessFlags;
00458 Ptr sharedAddr;
00460 } FrameQBufMgr_CommonOpenParams;
00461
00469 typedef struct FrameQBufMgr_Params {
00470 FrameQBufMgr_CreateParams commonCreateParams;
00471 Ptr impParams;
00474 UInt32 impParamsSize;
00477 } FrameQBufMgr_Params;
00478
00482 typedef struct FrameQBufMgr_FrameBufParams_Tag {
00483 UInt32 size;
00485 UInt32 pixelFormat;
00487 UInt32 height;
00489 UInt32 width;
00491 UInt32 align;
00493 }FrameQBufMgr_FrameBufParams;
00494
00498 typedef void (*FrameQBufMgr_NotifyFunc) (FrameQBufMgr_Handle, Ptr arg, UInt32);
00499
00503 typedef struct FrameQBufMgr_NotifyParams_Tag {
00504 SysLink_NotifyType notifyType;
00506 UInt32 watermark;
00510 FrameQBufMgr_NotifyFunc cbFxnPtr;
00512 Ptr cbContext;
00514 Ptr cbClientHandle;
00517 } FrameQBufMgr_NotifyParams;
00518
00519
00520
00521
00522
00523
00543 Int32 FrameQBufMgr_setup(FrameQBufMgr_Config *cfg);
00544
00545
00549 Int32 FrameQBufMgr_destroy(Void);
00550
00551
00566 FrameQBufMgr_Handle FrameQBufMgr_create(Ptr params);
00567
00568
00584 Int32 FrameQBufMgr_delete(FrameQBufMgr_Handle *pHandle);
00585
00586
00626 Int32 FrameQBufMgr_open(FrameQBufMgr_Handle *handlePtr, Ptr openParams);
00627
00628
00666 Int32
00667 FrameQBufMgr_openByAddr (FrameQBufMgr_Handle * handlePtr,
00668 Ptr openParams);
00669
00685 Int32
00686 FrameQBufMgr_close (FrameQBufMgr_Handle *pHandle);
00687
00709 Int32
00710 FrameQBufMgr_alloc (FrameQBufMgr_Handle handle,
00711 FrameQBufMgr_Frame *frame);
00712
00739 Int32
00740 FrameQBufMgr_allocv (FrameQBufMgr_Handle handle,
00741 FrameQBufMgr_Frame framePtr[],
00742 UInt32 freeQId[],
00743 UInt8 * numFrames);
00744
00761 Int32
00762 FrameQBufMgr_free (FrameQBufMgr_Handle handle,
00763 FrameQBufMgr_Frame frame);
00764
00784 Int32
00785 FrameQBufMgr_freev (FrameQBufMgr_Handle handle,
00786 FrameQBufMgr_Frame framePtr[],
00787 UInt32 numFrames);
00788
00789
00798 Ptr
00799 FrameQBufMgr_add (FrameQBufMgr_Handle handle,
00800 UInt8 freeQId);
00801
00809 Int32
00810 FrameQBufMgr_remove (FrameQBufMgr_Handle handle,
00811 UInt8 freeQId,
00812 FrameQBufMgr_Frame framePtr);
00813
00838 Int32
00839 FrameQBufMgr_dup (FrameQBufMgr_Handle handle,
00840 FrameQBufMgr_Frame framePtr,
00841 FrameQBufMgr_Frame dupedFramePtr[],
00842 UInt32 numDupedFrames);
00843
00870 Int32
00871 FrameQBufMgr_dupv (FrameQBufMgr_Handle handle,
00872 FrameQBufMgr_Frame framePtr[],
00873 FrameQBufMgr_Frame **dupedFramePtr,
00874 UInt32 numDupedFrames,
00875 UInt32 numFrames);
00876
00897 Int32
00898 FrameQBufMgr_registerNotifier (FrameQBufMgr_Handle handle,
00899 FrameQBufMgr_NotifyParams *notifyParams);
00900
00919 Int32
00920 FrameQBufMgr_unregisterNotifier (FrameQBufMgr_Handle handle);
00921
00937 Int32
00938 FrameQBufMgr_writeBack(FrameQBufMgr_Handle handle, FrameQBufMgr_Frame framePtr);
00939
00958 Int32
00959 FrameQBufMgr_writeBackBuf(FrameQBufMgr_Handle handle,
00960 Ptr buf,
00961 UInt32 flags);
00962
00978 Int32
00979 FrameQBufMgr_invalidate(FrameQBufMgr_Handle handle,
00980 FrameQBufMgr_Frame framePtr);
00981
01000 Int32
01001 FrameQBufMgr_invalidateFrameBuf(FrameQBufMgr_Handle handle,
01002 Ptr frameBuf,
01003 UInt32 size,
01004 UInt8 bufIndexInFrame);
01005
01024 Int32
01025 FrameQBufMgr_writeBackFrameBuf(FrameQBufMgr_Handle handle,
01026 Ptr frameBuf,
01027 UInt32 size,
01028 UInt8 bufIndexInFrame);
01042 Int32
01043 FrameQBufMgr_invalidateHeaderBuf(FrameQBufMgr_Handle handle,
01044 Ptr headerBuf);
01045
01059 Int32
01060 FrameQBufMgr_writeBackHeaderBuf(FrameQBufMgr_Handle handle,
01061 Ptr headerBuf);
01062
01087 Int32
01088 FrameQBufMgr_translateAddr (FrameQBufMgr_Handle handle,
01089 Ptr * dstAddr,
01090 FrameQBufMgr_AddrType dstAddrType,
01091 Ptr srcAddr,
01092 FrameQBufMgr_AddrType srcAddrType,
01093 FrameQBufMgr_BufType bufType);
01094
01104 Int32 FrameQBufMgr_getConfig(FrameQBufMgr_Config *cfg);
01105
01114 UInt32
01115 FrameQBufMgr_getId (FrameQBufMgr_Handle handle);
01116
01126 Ptr
01127 FrameQBufMgr_getHandle (UInt32 Id);
01128
01138 Bool
01139 FrameQBufMgr_isCacheEnabledForHeaderBuf(FrameQBufMgr_Handle handle);
01140
01151 Bool
01152 FrameQBufMgr_isCacheEnabledForFrameBuf(FrameQBufMgr_Handle handle,
01153 UInt8 framebufIndex);
01154
01164 Int32
01165 FrameQBufMgr_getNumFreeFrames (FrameQBufMgr_Handle handle, UInt32* numFreeFrames);
01166
01177 Int32
01178 FrameQBufMgr_control (FrameQBufMgr_Handle handle,
01179 Int32 cmd,
01180 Ptr arg);
01181
01190 UInt32 FrameQBufMgr_getBaseHeaderSize(UInt8 numFrameBufs);
01191
01200
01201 Ptr FrameQBufMgr_getKnlHandle(FrameQBufMgr_Handle handle);
01202
01203
01204 #if defined (__cplusplus)
01205 }
01206 #endif
01207
01208
01209 #endif