📄 pvr_bridge.h
字号:
PVRSRV_DEV_INFO *psDevInfo;
PVRSRV_PRIMARY_SURF *psPrimSurf;
}PVRSRV_BRIDGE_IN_RELEASEPRIMARY;
/*!
*****************************************************************************
* `bridge in' register primary
*****************************************************************************/
typedef struct PVRSRV_BRIDGE_IN_REGISTERPRIMARY_TAG {
PVRSRV_DEV_INFO *psDevInfo;
PVRSRV_PRIMARY_SURF sPrimary;
}PVRSRV_BRIDGE_IN_REGISTERPRIMARY;
/*!
*****************************************************************************
* `bridge in' unmap memory
*****************************************************************************/
typedef struct PVRSRV_BRIDGE_IN_UNMAPMEMORY_TAG {
IMG_VOID *pvUserAddress;
IMG_UINT32 ui32Length;
} PVRSRV_BRIDGE_IN_UNMAPMEMORY;
/*!
*****************************************************************************
* `bridge in' wrap memory
*****************************************************************************/
typedef struct PVRSRV_BRIDGE_IN_WRAPDEVICEMEM_TAG {
PVRSRV_DEV_INFO *psDevInfo;
IMG_UINT32 ui32Flags;
IMG_UINT32 ui32Size;
IMG_UINT32 ui32Alignment;
IMG_SYS_PHYADDR baseAddr;
}PVRSRV_BRIDGE_IN_WRAPDEVICEMEM;
#ifdef PDUMP
/*!
*****************************************************************************
* `bridge in' pdump data
*****************************************************************************/
typedef struct PVRSRV_BRIDGE_IN_PDUMP_DATA_TAG {
IMG_VOID *pvData;
IMG_UINT32 ui32Bytes;
} PVRSRV_BRIDGE_IN_PDUMP_DATA;
/*!
*****************************************************************************
* `bridge in' pdump cmd
*****************************************************************************/
typedef struct PVRSRV_BRIDGE_IN_PDUMP_COMMAND_TAG {
PDUMP_TYPE ePDumpCommandType;
PDUMP_CONTEXT *psPDumpContext;
IMG_HANDLE hServicesHandleUM;
/*
* Union to hold info specific to pdump command info
*/
union {
struct {
IMG_BOOL bInitialise;
} sInit;
struct {
PVRSRV_MEM_INFO *psMemInfo;
} sDumpTex;
struct {
IMG_UINT32 ui32PDumpRegType;
IMG_UINT32 ui32RegCount;
PVRSRV_HWREG psRegs[PDUMP_MAX_BRIDGED_REG_COUNT];
} sWriteReg;
struct {
IMG_UINT32 ui32PDumpSPType;
IMG_UINT32 ui32DataCount;
IMG_UINT32 pui32Data[PDUMP_MAX_BRIDGED_DATA_COUNT];
} sWriteSP;
struct {
IMG_UINT32 ui32PDumpRegType;
IMG_UINT32 ui32Addr;
IMG_UINT32 ui32Mask;
IMG_UINT32 ui32Value;
IMG_UINT32 ui32A;
IMG_UINT32 ui32B;
IMG_UINT32 ui32C;
} sWritePoll;
struct {
IMG_UINT32 ui32StrLen;
IMG_CHAR pszString[256];
} sWriteString;
}sPDumpData;
} PVRSRV_BRIDGE_IN_PDUMP_COMMAND;
#endif /* PDUMP */
/*****************************************************************************
* Output structures for BRIDGEs
****************************************************************************/
/*!
*****************************************************************************
* `bridge out' enum. devices
*****************************************************************************/
typedef struct PVRSRV_BRIDGE_OUT_ENUMDEVICE_TAG {
PVRSRV_ERROR eError;
IMG_UINT32 ui32NumDevices;
PVRSRV_DEVICE_IDENTIFIER asDeviceIdentifier[PVRSRV_MAX_DEVICES];
}PVRSRV_BRIDGE_OUT_ENUMDEVICE;
/*!
*****************************************************************************
* `bridge out' acquire device info
*****************************************************************************/
typedef struct PVRSRV_BRIDGE_OUT_ACQUIRE_DEVICEINFO_TAG {
PVRSRV_ERROR eError;
PVRSRV_DEV_DATA sDevData;
} PVRSRV_BRIDGE_OUT_ACQUIRE_DEVICEINFO;
/*!
*****************************************************************************
* `bridge out' get free device memory
*****************************************************************************/
typedef struct PVRSRV_BRIDGE_OUT_GETFREEDEVICEMEM_TAG {
PVRSRV_ERROR eError;
IMG_UINT32 ui32Total;
IMG_UINT32 ui32Free;
IMG_UINT32 ui32LargestBlock;
} PVRSRV_BRIDGE_OUT_GETFREEDEVICEMEM;
/*!
*****************************************************************************
* `bridge out' query primary
*****************************************************************************/
typedef struct PVRSRV_BRIDGE_OUT_QUERYPRIMARY_TAG {
PVRSRV_ERROR eError;
PVRSRV_PRIMARY_SURF_INFO sPrimarySurfInfo;
} PVRSRV_BRIDGE_OUT_QUERYPRIMARY;
/*!
*****************************************************************************
* `bridge out' wrap device mem
*****************************************************************************/
typedef struct PVRSRV_BRIDGE_OUT_WRAPDEVICEMEM_TAG {
PVRSRV_ERROR eError;
PVRSRV_MEM_INFO *psMemInfo;
}PVRSRV_BRIDGE_OUT_WRAPDEVICEMEM;
#ifdef SUPPORT_DEVCLASS_MPEG
/*!
*****************************************************************************
* `bridge out' mpeg connect
*****************************************************************************/
typedef struct PVRSRV_BRIDGE_IN_MPEGCONNECT_TAG
{
PVRSRV_DEV_INFO *psDevInfo;
IMG_BOOL bConnect;
} PVRSRV_BRIDGE_IN_MPEGCONNECT;
#ifdef SUPPORT_3D_BLIT
/*!
*****************************************************************************
* `bridge out' overlay blit resource init
*****************************************************************************/
typedef struct PVRSRV_BRIDGE_IN_INIT_OVL_BLIT_RSC_TAG
{
PVRSRV_DEV_INFO *psDevInfo;
IMG_BOOL bConnect;
IMG_UINT32 ui32SrcWidth;
IMG_UINT32 ui32SrcHeight;
IMG_UINT32 ui32SrcStride;
IMG_UINT32 ui32DstStride;
IMG_UINT32 ui32Rotation;
} PVRSRV_BRIDGE_IN_INIT_OVL_BLIT_RSC;
/*!
*****************************************************************************
* `bridge out' overlay blit resource deinit
*****************************************************************************/
typedef struct PVRSRV_BRIDGE_IN_DEINIT_OVL_BLIT_RSC_TAG
{
PVRSRV_DEV_INFO *psDevInfo;
} PVRSRV_BRIDGE_IN_DEINIT_OVL_BLIT_RSC;
#endif /* SUPPORT_3D_BLIT */
#endif
/*****************************************************************************
* `bridge out' get FB mem stats
*****************************************************************************/
typedef struct PVRSRV_BRIDGE_IN_GET_FB_STATS_TAG
{
IMG_UINT32 ui32Total;
IMG_UINT32 ui32Available;
} PVRSRV_BRIDGE_IN_GET_FB_STATS;
#if defined(NEW_LINUX_MUTEX)
typedef struct PVRSRV_BRIDGE_OUT_MUTEX_TABLE_TAG {
PVRSRV_ERROR eError;
IMG_UINT32 ui32TableSize;
IMG_VOID * pvTableAddress;
} PVRSRV_BRIDGE_OUT_MUTEX_TABLE;
#endif
/*****************************************************************************
* Function prototypes
*****************************************************************************/
PVRSRV_ERROR OpenServices(IMG_CHAR* szDevicePath, IMG_HANDLE *phServices);
PVRSRV_ERROR CloseServices(IMG_HANDLE hServices);
IMG_RESULT PVRSRVBridgeCall(IMG_HANDLE hServices,
IMG_UINT32 ui32FunctionID,
IMG_VOID *pvParamIn,
IMG_UINT32 ui32InBufferSize,
IMG_VOID *pvParamOut,
IMG_UINT32 ui32OutBufferSize);
#if defined PDUMP
PVRSRV_ERROR PVRSRVPDumpCommand (PVRSRV_BRIDGE_IN_PDUMP_COMMAND *psCommandData);
#endif /* PDUMP */
#if defined (__cplusplus)
}
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -