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;
00410 typedef struct FrameQBufMgr_CreateParams_Tag {
00411 UInt32 size;
00413 FrameQBufMgr_Interface ctrlInterfaceType;
00415 String name;
00417 UInt32 openFlag;
00418
00419
00420
00421 } FrameQBufMgr_CreateParams;
00422
00427 typedef struct FrameQBufMgr_CommonOpenParams_Tag {
00428 String name;
00431 UInt32 cpuAccessFlags;
00434 Ptr sharedAddr;
00436 } FrameQBufMgr_CommonOpenParams;
00437
00443 typedef struct FrameQBufMgr_Params {
00444 FrameQBufMgr_CreateParams commonCreateParams;
00445 Ptr impParams;
00451 UInt32 impParamsSize;
00456 } FrameQBufMgr_Params;
00457
00461 typedef struct FrameQBufMgr_FrameBufParams_Tag {
00462 UInt32 size;
00464 UInt32 pixelFormat;
00466 UInt32 height;
00468 UInt32 width;
00470 UInt32 align;
00472 }FrameQBufMgr_FrameBufParams;
00473
00477 typedef void (*FrameQBufMgr_NotifyFunc) (FrameQBufMgr_Handle, Ptr arg, UInt32);
00478
00482 typedef struct FrameQBufMgr_NotifyParams_Tag {
00483 SysLink_NotifyType notifyType;
00485 UInt32 watermark;
00489 FrameQBufMgr_NotifyFunc cbFxnPtr;
00491 Ptr cbContext;
00493 Ptr cbClientHandle;
00496 } FrameQBufMgr_NotifyParams;
00497
00498
00499
00500
00501
00502
00517 FrameQBufMgr_Handle
00518 FrameQBufMgr_create (Ptr params);
00519
00535 Int32
00536 FrameQBufMgr_delete (FrameQBufMgr_Handle * pHandle);
00537
00577 Int32
00578 FrameQBufMgr_open (FrameQBufMgr_Handle * handlePtr,
00579 Ptr openParams);
00617 Int32
00618 FrameQBufMgr_openByAddr (FrameQBufMgr_Handle * handlePtr,
00619 Ptr openParams);
00620
00636 Int32
00637 FrameQBufMgr_close (FrameQBufMgr_Handle *pHandle);
00638
00660 Int32
00661 FrameQBufMgr_alloc (FrameQBufMgr_Handle handle,
00662 FrameQBufMgr_Frame *frame);
00663
00690 Int32
00691 FrameQBufMgr_allocv (FrameQBufMgr_Handle handle,
00692 FrameQBufMgr_Frame framePtr[],
00693 UInt32 freeQId[],
00694 UInt8 * numFrames);
00695
00712 Int32
00713 FrameQBufMgr_free (FrameQBufMgr_Handle handle,
00714 FrameQBufMgr_Frame frame);
00715
00735 Int32
00736 FrameQBufMgr_freev (FrameQBufMgr_Handle handle,
00737 FrameQBufMgr_Frame framePtr[],
00738 UInt32 numFrames);
00739
00740
00749 Ptr
00750 FrameQBufMgr_add (FrameQBufMgr_Handle handle,
00751 UInt8 freeQId);
00752
00760 Int32
00761 FrameQBufMgr_remove (FrameQBufMgr_Handle handle,
00762 UInt8 freeQId,
00763 FrameQBufMgr_Frame framePtr);
00764
00789 Int32
00790 FrameQBufMgr_dup (FrameQBufMgr_Handle handle,
00791 FrameQBufMgr_Frame framePtr,
00792 FrameQBufMgr_Frame dupedFramePtr[],
00793 UInt32 numDupedFrames);
00794
00821 Int32
00822 FrameQBufMgr_dupv (FrameQBufMgr_Handle handle,
00823 FrameQBufMgr_Frame framePtr[],
00824 FrameQBufMgr_Frame **dupedFramePtr,
00825 UInt32 numDupedFrames,
00826 UInt32 numFrames);
00827
00848 Int32
00849 FrameQBufMgr_registerNotifier (FrameQBufMgr_Handle handle,
00850 FrameQBufMgr_NotifyParams *notifyParams);
00851
00870 Int32
00871 FrameQBufMgr_unregisterNotifier (FrameQBufMgr_Handle handle);
00872
00888 Int32
00889 FrameQBufMgr_writeBack(FrameQBufMgr_Handle handle, FrameQBufMgr_Frame framePtr);
00890
00909 Int32
00910 FrameQBufMgr_writeBackBuf(FrameQBufMgr_Handle handle,
00911 Ptr buf,
00912 UInt32 flags);
00913
00929 Int32
00930 FrameQBufMgr_invalidate(FrameQBufMgr_Handle handle,
00931 FrameQBufMgr_Frame framePtr);
00932
00951 Int32
00952 FrameQBufMgr_invalidateFrameBuf(FrameQBufMgr_Handle handle,
00953 Ptr frameBuf,
00954 UInt32 size,
00955 UInt8 bufIndexInFrame);
00956
00975 Int32
00976 FrameQBufMgr_writeBackFrameBuf(FrameQBufMgr_Handle handle,
00977 Ptr frameBuf,
00978 UInt32 size,
00979 UInt8 bufIndexInFrame);
00993 Int32
00994 FrameQBufMgr_invalidateHeaderBuf(FrameQBufMgr_Handle handle,
00995 Ptr headerBuf);
00996
01010 Int32
01011 FrameQBufMgr_writeBackHeaderBuf(FrameQBufMgr_Handle handle,
01012 Ptr headerBuf);
01013
01038 Int32
01039 FrameQBufMgr_translateAddr (FrameQBufMgr_Handle handle,
01040 Ptr * dstAddr,
01041 FrameQBufMgr_AddrType dstAddrType,
01042 Ptr srcAddr,
01043 FrameQBufMgr_AddrType srcAddrType,
01044 FrameQBufMgr_BufType bufType);
01045
01054 UInt32
01055 FrameQBufMgr_getId (FrameQBufMgr_Handle handle);
01056
01066 Ptr
01067 FrameQBufMgr_getHandle (UInt32 Id);
01068
01078 Bool
01079 FrameQBufMgr_isCacheEnabledForHeaderBuf(FrameQBufMgr_Handle handle);
01080
01091 Bool
01092 FrameQBufMgr_isCacheEnabledForFrameBuf(FrameQBufMgr_Handle handle,
01093 UInt8 framebufIndex);
01094
01104 Int32
01105 FrameQBufMgr_getNumFreeFrames (FrameQBufMgr_Handle handle, UInt32* numFreeFrames);
01106
01117 Int32
01118 FrameQBufMgr_control (FrameQBufMgr_Handle handle,
01119 Int32 cmd,
01120 Ptr arg);
01121
01130 UInt32 FrameQBufMgr_getBaseHeaderSize(UInt8 numFrameBufs);
01131
01140
01141 Ptr FrameQBufMgr_getKnlHandle(FrameQBufMgr_Handle handle);
01142
01143
01144 #if defined (__cplusplus)
01145 }
01146 #endif
01147
01148
01149 #endif