/********************************************************************** * * Copyright (C) Imagination Technologies Ltd. All rights reserved. * * This program is free software; you can redistribute it and/or modify it * under the terms and conditions of the GNU General Public License, * version 2, as published by the Free Software Foundation. * * This program is distributed in the hope it will be useful but, except * as otherwise stated in writing, without any warranty; without even the * implied warranty of merchantability or fitness for a particular purpose. * See the GNU General Public License for more details. * * You should have received a copy of the GNU General Public License along with * this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA. * * The full GNU General Public License is included in this distribution in * the file called "COPYING". * * Contact Information: * Imagination Technologies Ltd. * Home Park Estate, Kings Langley, Herts, WD4 8LZ, UK * ******************************************************************************/ #if !defined(__SGX_BRIDGE_H__) #define __SGX_BRIDGE_H__ #if defined (SUPPORT_SID_INTERFACE) #include "sgxapi.h" #else #include "sgxapi_km.h" #endif #include "sgxinfo.h" #include "pvr_bridge.h" #if defined (__cplusplus) extern "C" { #endif #define PVRSRV_BRIDGE_SGX_CMD_BASE (PVRSRV_BRIDGE_LAST_NON_DEVICE_CMD+1) #define PVRSRV_BRIDGE_SGX_GETCLIENTINFO PVRSRV_IOWR(PVRSRV_BRIDGE_SGX_CMD_BASE+0) #define PVRSRV_BRIDGE_SGX_RELEASECLIENTINFO PVRSRV_IOWR(PVRSRV_BRIDGE_SGX_CMD_BASE+1) #define PVRSRV_BRIDGE_SGX_GETINTERNALDEVINFO PVRSRV_IOWR(PVRSRV_BRIDGE_SGX_CMD_BASE+2) #define PVRSRV_BRIDGE_SGX_DOKICK PVRSRV_IOWR(PVRSRV_BRIDGE_SGX_CMD_BASE+3) #define PVRSRV_BRIDGE_SGX_GETPHYSPAGEADDR PVRSRV_IOWR(PVRSRV_BRIDGE_SGX_CMD_BASE+4) #define PVRSRV_BRIDGE_SGX_READREGISTRYDWORD PVRSRV_IOWR(PVRSRV_BRIDGE_SGX_CMD_BASE+5) #define PVRSRV_BRIDGE_SGX_2DQUERYBLTSCOMPLETE PVRSRV_IOWR(PVRSRV_BRIDGE_SGX_CMD_BASE+9) #define PVRSRV_BRIDGE_SGX_GETMMUPDADDR PVRSRV_IOWR(PVRSRV_BRIDGE_SGX_CMD_BASE+10) #if defined(TRANSFER_QUEUE) #define PVRSRV_BRIDGE_SGX_SUBMITTRANSFER PVRSRV_IOWR(PVRSRV_BRIDGE_SGX_CMD_BASE+13) #endif #define PVRSRV_BRIDGE_SGX_GETMISCINFO PVRSRV_IOWR(PVRSRV_BRIDGE_SGX_CMD_BASE+14) #define PVRSRV_BRIDGE_SGXINFO_FOR_SRVINIT PVRSRV_IOWR(PVRSRV_BRIDGE_SGX_CMD_BASE+15) #define PVRSRV_BRIDGE_SGX_DEVINITPART2 PVRSRV_IOWR(PVRSRV_BRIDGE_SGX_CMD_BASE+16) #define PVRSRV_BRIDGE_SGX_FINDSHAREDPBDESC PVRSRV_IOWR(PVRSRV_BRIDGE_SGX_CMD_BASE+17) #define PVRSRV_BRIDGE_SGX_UNREFSHAREDPBDESC PVRSRV_IOWR(PVRSRV_BRIDGE_SGX_CMD_BASE+18) #define PVRSRV_BRIDGE_SGX_ADDSHAREDPBDESC PVRSRV_IOWR(PVRSRV_BRIDGE_SGX_CMD_BASE+19) #define PVRSRV_BRIDGE_SGX_REGISTER_HW_RENDER_CONTEXT PVRSRV_IOWR(PVRSRV_BRIDGE_SGX_CMD_BASE+20) #define PVRSRV_BRIDGE_SGX_FLUSH_HW_RENDER_TARGET PVRSRV_IOWR(PVRSRV_BRIDGE_SGX_CMD_BASE+21) #define PVRSRV_BRIDGE_SGX_UNREGISTER_HW_RENDER_CONTEXT PVRSRV_IOWR(PVRSRV_BRIDGE_SGX_CMD_BASE+22) #if defined(SGX_FEATURE_2D_HARDWARE) #define PVRSRV_BRIDGE_SGX_SUBMIT2D PVRSRV_IOWR(PVRSRV_BRIDGE_SGX_CMD_BASE+23) #define PVRSRV_BRIDGE_SGX_REGISTER_HW_2D_CONTEXT PVRSRV_IOWR(PVRSRV_BRIDGE_SGX_CMD_BASE+24) #define PVRSRV_BRIDGE_SGX_UNREGISTER_HW_2D_CONTEXT PVRSRV_IOWR(PVRSRV_BRIDGE_SGX_CMD_BASE+25) #endif #define PVRSRV_BRIDGE_SGX_REGISTER_HW_TRANSFER_CONTEXT PVRSRV_IOWR(PVRSRV_BRIDGE_SGX_CMD_BASE+26) #define PVRSRV_BRIDGE_SGX_UNREGISTER_HW_TRANSFER_CONTEXT PVRSRV_IOWR(PVRSRV_BRIDGE_SGX_CMD_BASE+27) #define PVRSRV_BRIDGE_SGX_SCHEDULE_PROCESS_QUEUES PVRSRV_IOWR(PVRSRV_BRIDGE_SGX_CMD_BASE+28) #define PVRSRV_BRIDGE_SGX_READ_HWPERF_CB PVRSRV_IOWR(PVRSRV_BRIDGE_SGX_CMD_BASE+30) #if defined(PDUMP) #define PVRSRV_BRIDGE_SGX_PDUMP_BUFFER_ARRAY PVRSRV_IOWR(PVRSRV_BRIDGE_SGX_CMD_BASE+31) #define PVRSRV_BRIDGE_SGX_PDUMP_3D_SIGNATURE_REGISTERS PVRSRV_IOWR(PVRSRV_BRIDGE_SGX_CMD_BASE+32) #define PVRSRV_BRIDGE_SGX_PDUMP_COUNTER_REGISTERS PVRSRV_IOWR(PVRSRV_BRIDGE_SGX_CMD_BASE+33) #define PVRSRV_BRIDGE_SGX_PDUMP_TA_SIGNATURE_REGISTERS PVRSRV_IOWR(PVRSRV_BRIDGE_SGX_CMD_BASE+34) #define PVRSRV_BRIDGE_SGX_PDUMP_HWPERFCB PVRSRV_IOWR(PVRSRV_BRIDGE_SGX_CMD_BASE+35) #define PVRSRV_BRIDGE_SGX_PDUMP_SAVEMEM PVRSRV_IOWR(PVRSRV_BRIDGE_SGX_CMD_BASE+36) #endif #define PVRSRV_BRIDGE_LAST_SGX_CMD (PVRSRV_BRIDGE_SGX_CMD_BASE+36) typedef struct PVRSRV_BRIDGE_IN_GETPHYSPAGEADDR { IMG_UINT32 ui32BridgeFlags; IMG_HANDLE hDevMemHeap; IMG_DEV_VIRTADDR sDevVAddr; }PVRSRV_BRIDGE_IN_GETPHYSPAGEADDR; typedef struct PVRSRV_BRIDGE_OUT_GETPHYSPAGEADDR { PVRSRV_ERROR eError; IMG_DEV_PHYADDR DevPAddr; IMG_CPU_PHYADDR CpuPAddr; }PVRSRV_BRIDGE_OUT_GETPHYSPAGEADDR; typedef struct PVRSRV_BRIDGE_IN_SGX_GETMMU_PDADDR_TAG { IMG_UINT32 ui32BridgeFlags; #if defined (SUPPORT_SID_INTERFACE) IMG_SID hDevCookie; IMG_SID hDevMemContext; #else IMG_HANDLE hDevCookie; IMG_HANDLE hDevMemContext; #endif }PVRSRV_BRIDGE_IN_SGX_GETMMU_PDADDR; typedef struct PVRSRV_BRIDGE_OUT_SGX_GETMMU_PDADDR_TAG { IMG_DEV_PHYADDR sPDDevPAddr; PVRSRV_ERROR eError; }PVRSRV_BRIDGE_OUT_SGX_GETMMU_PDADDR; typedef struct PVRSRV_BRIDGE_IN_GETCLIENTINFO_TAG { IMG_UINT32 ui32BridgeFlags; #if defined (SUPPORT_SID_INTERFACE) IMG_SID hDevCookie; #else IMG_HANDLE hDevCookie; #endif }PVRSRV_BRIDGE_IN_GETCLIENTINFO; typedef struct PVRSRV_BRIDGE_OUT_GETINTERNALDEVINFO_TAG { SGX_INTERNAL_DEVINFO sSGXInternalDevInfo; PVRSRV_ERROR eError; }PVRSRV_BRIDGE_OUT_GETINTERNALDEVINFO; typedef struct PVRSRV_BRIDGE_IN_GETINTERNALDEVINFO_TAG { IMG_UINT32 ui32BridgeFlags; #if defined (SUPPORT_SID_INTERFACE) IMG_SID hDevCookie; #else IMG_HANDLE hDevCookie; #endif }PVRSRV_BRIDGE_IN_GETINTERNALDEVINFO; typedef struct PVRSRV_BRIDGE_OUT_GETCLIENTINFO_TAG { SGX_CLIENT_INFO sClientInfo; PVRSRV_ERROR eError; }PVRSRV_BRIDGE_OUT_GETCLIENTINFO; typedef struct PVRSRV_BRIDGE_IN_RELEASECLIENTINFO_TAG { IMG_UINT32 ui32BridgeFlags; #if defined (SUPPORT_SID_INTERFACE) IMG_SID hDevCookie; #else IMG_HANDLE hDevCookie; #endif SGX_CLIENT_INFO sClientInfo; }PVRSRV_BRIDGE_IN_RELEASECLIENTINFO; typedef struct PVRSRV_BRIDGE_IN_ISPBREAKPOLL_TAG { IMG_UINT32 ui32BridgeFlags; #if defined (SUPPORT_SID_INTERFACE) IMG_SID hDevCookie; #else IMG_HANDLE hDevCookie; #endif }PVRSRV_BRIDGE_IN_ISPBREAKPOLL; typedef struct PVRSRV_BRIDGE_IN_DOKICK_TAG { IMG_UINT32 ui32BridgeFlags; #if defined (SUPPORT_SID_INTERFACE) IMG_SID hDevCookie; #else IMG_HANDLE hDevCookie; #endif SGX_CCB_KICK sCCBKick; }PVRSRV_BRIDGE_IN_DOKICK; typedef struct PVRSRV_BRIDGE_IN_SGX_SCHEDULE_PROCESS_QUEUES_TAG { IMG_UINT32 ui32BridgeFlags; #if defined (SUPPORT_SID_INTERFACE) IMG_SID hDevCookie; #else IMG_HANDLE hDevCookie; #endif }PVRSRV_BRIDGE_IN_SGX_SCHEDULE_PROCESS_QUEUES; #if defined(TRANSFER_QUEUE) typedef struct PVRSRV_BRIDGE_IN_SUBMITTRANSFER_TAG { IMG_UINT32 ui32BridgeFlags; #if defined (SUPPORT_SID_INTERFACE) IMG_SID hDevCookie; #else IMG_HANDLE hDevCookie; #endif PVRSRV_TRANSFER_SGX_KICK sKick; }PVRSRV_BRIDGE_IN_SUBMITTRANSFER; #if defined(SGX_FEATURE_2D_HARDWARE) typedef struct PVRSRV_BRIDGE_IN_SUBMIT2D_TAG { IMG_UINT32 ui32BridgeFlags; #if defined (SUPPORT_SID_INTERFACE) IMG_SID hDevCookie; #else IMG_HANDLE hDevCookie; #endif PVRSRV_2D_SGX_KICK sKick; } PVRSRV_BRIDGE_IN_SUBMIT2D; #endif #endif typedef struct PVRSRV_BRIDGE_IN_READREGDWORD_TAG { IMG_UINT32 ui32BridgeFlags; #if defined (SUPPORT_SID_INTERFACE) IMG_SID hDevCookie; #else IMG_HANDLE hDevCookie; #endif IMG_PCHAR pszKey; IMG_PCHAR pszValue; }PVRSRV_BRIDGE_IN_READREGDWORD; typedef struct PVRSRV_BRIDGE_OUT_READREGDWORD_TAG { PVRSRV_ERROR eError; IMG_UINT32 ui32Data; }PVRSRV_BRIDGE_OUT_READREGDWORD; typedef struct PVRSRV_BRIDGE_IN_SGXGETMISCINFO_TAG { IMG_UINT32 ui32BridgeFlags; #if defined (SUPPORT_SID_INTERFACE) IMG_SID hDevCookie; #else IMG_HANDLE hDevCookie; #endif SGX_MISC_INFO *psMiscInfo; }PVRSRV_BRIDGE_IN_SGXGETMISCINFO; typedef struct PVRSRV_BRIDGE_IN_SGXINFO_FOR_SRVINIT_TAG { IMG_UINT32 ui32BridgeFlags; #if defined (SUPPORT_SID_INTERFACE) IMG_SID hDevCookie; #else IMG_HANDLE hDevCookie; #endif }PVRSRV_BRIDGE_IN_SGXINFO_FOR_SRVINIT; typedef struct PVRSRV_BRIDGE_OUT_SGXINFO_FOR_SRVINIT_TAG { PVRSRV_ERROR eError; SGX_BRIDGE_INFO_FOR_SRVINIT sInitInfo; }PVRSRV_BRIDGE_OUT_SGXINFO_FOR_SRVINIT; typedef struct PVRSRV_BRIDGE_IN_SGXDEVINITPART2_TAG { IMG_UINT32 ui32BridgeFlags; #if defined (SUPPORT_SID_INTERFACE) IMG_SID hDevCookie; #else IMG_HANDLE hDevCookie; #endif SGX_BRIDGE_INIT_INFO sInitInfo; }PVRSRV_BRIDGE_IN_SGXDEVINITPART2; typedef struct PVRSRV_BRIDGE_OUT_SGXDEVINITPART2_TAG { PVRSRV_ERROR eError; IMG_UINT32 ui32KMBuildOptions; }PVRSRV_BRIDGE_OUT_SGXDEVINITPART2; typedef struct PVRSRV_BRIDGE_IN_2DQUERYBLTSCOMPLETE_TAG { IMG_UINT32 ui32BridgeFlags; #if defined (SUPPORT_SID_INTERFACE) IMG_SID hDevCookie; IMG_SID hKernSyncInfo; #else IMG_HANDLE hDevCookie; IMG_HANDLE hKernSyncInfo; #endif IMG_BOOL bWaitForComplete; }PVRSRV_BRIDGE_IN_2DQUERYBLTSCOMPLETE; #define PVRSRV_BRIDGE_SGX_SHAREDPBDESC_MAX_SUBMEMINFOS 10 typedef struct PVRSRV_BRIDGE_IN_SGXFINDSHAREDPBDESC_TAG { IMG_UINT32 ui32BridgeFlags; #if defined (SUPPORT_SID_INTERFACE) IMG_SID hDevCookie; #else IMG_HANDLE hDevCookie; #endif IMG_BOOL bLockOnFailure; IMG_UINT32 ui32TotalPBSize; }PVRSRV_BRIDGE_IN_SGXFINDSHAREDPBDESC; typedef struct PVRSRV_BRIDGE_OUT_SGXFINDSHAREDPBDESC_TAG { #if defined (SUPPORT_SID_INTERFACE) IMG_SID hKernelMemInfo; IMG_SID hSharedPBDesc; IMG_SID hSharedPBDescKernelMemInfoHandle; IMG_SID hHWPBDescKernelMemInfoHandle; IMG_SID hBlockKernelMemInfoHandle; IMG_SID hHWBlockKernelMemInfoHandle; IMG_SID ahSharedPBDescSubKernelMemInfoHandles[PVRSRV_BRIDGE_SGX_SHAREDPBDESC_MAX_SUBMEMINFOS]; #else IMG_HANDLE hKernelMemInfo; IMG_HANDLE hSharedPBDesc; IMG_HANDLE hSharedPBDescKernelMemInfoHandle; IMG_HANDLE hHWPBDescKernelMemInfoHandle; IMG_HANDLE hBlockKernelMemInfoHandle; IMG_HANDLE hHWBlockKernelMemInfoHandle; IMG_HANDLE ahSharedPBDescSubKernelMemInfoHandles[PVRSRV_BRIDGE_SGX_SHAREDPBDESC_MAX_SUBMEMINFOS]; #endif IMG_UINT32 ui32SharedPBDescSubKernelMemInfoHandlesCount; PVRSRV_ERROR eError; }PVRSRV_BRIDGE_OUT_SGXFINDSHAREDPBDESC; typedef struct PVRSRV_BRIDGE_IN_SGXUNREFSHAREDPBDESC_TAG { IMG_UINT32 ui32BridgeFlags; #if defined (SUPPORT_SID_INTERFACE) IMG_SID hSharedPBDesc; #else IMG_HANDLE hSharedPBDesc; #endif }PVRSRV_BRIDGE_IN_SGXUNREFSHAREDPBDESC; typedef struct PVRSRV_BRIDGE_OUT_SGXUNREFSHAREDPBDESC_TAG { PVRSRV_ERROR eError; }PVRSRV_BRIDGE_OUT_SGXUNREFSHAREDPBDESC; typedef struct PVRSRV_BRIDGE_IN_SGXADDSHAREDPBDESC_TAG { IMG_UINT32 ui32BridgeFlags; IMG_UINT32 ui32TotalPBSize; #if defined (SUPPORT_SID_INTERFACE) IMG_SID hDevCookie; IMG_SID hSharedPBDescKernelMemInfo; IMG_SID hHWPBDescKernelMemInfo; IMG_SID hBlockKernelMemInfo; IMG_SID hHWBlockKernelMemInfo; IMG_SID *phKernelMemInfoHandles; #else IMG_HANDLE hDevCookie; IMG_HANDLE hSharedPBDescKernelMemInfo; IMG_HANDLE hHWPBDescKernelMemInfo; IMG_HANDLE hBlockKernelMemInfo; IMG_HANDLE hHWBlockKernelMemInfo; IMG_HANDLE *phKernelMemInfoHandles; #endif IMG_UINT32 ui32KernelMemInfoHandlesCount; IMG_DEV_VIRTADDR sHWPBDescDevVAddr; }PVRSRV_BRIDGE_IN_SGXADDSHAREDPBDESC; typedef struct PVRSRV_BRIDGE_OUT_SGXADDSHAREDPBDESC_TAG { PVRSRV_ERROR eError; #if defined (SUPPORT_SID_INTERFACE) IMG_SID hSharedPBDesc; #else IMG_HANDLE hSharedPBDesc; #endif }PVRSRV_BRIDGE_OUT_SGXADDSHAREDPBDESC; #ifdef PDUMP typedef struct PVRSRV_BRIDGE_IN_PDUMP_BUFFER_ARRAY_TAG { IMG_UINT32 ui32BridgeFlags; SGX_KICKTA_DUMP_BUFFER *psBufferArray; IMG_UINT32 ui32BufferArrayLength; IMG_BOOL bDumpPolls; } PVRSRV_BRIDGE_IN_PDUMP_BUFFER_ARRAY; typedef struct PVRSRV_BRIDGE_IN_PDUMP_3D_SIGNATURE_REGISTERS_TAG { IMG_UINT32 ui32BridgeFlags; #if defined (SUPPORT_SID_INTERFACE) IMG_SID hDevCookie; IMG_SID hDevMemContext; #else IMG_HANDLE hDevCookie; IMG_HANDLE hDevMemContext; #endif IMG_UINT32 ui32DumpFrameNum; IMG_BOOL bLastFrame; IMG_UINT32 *pui32Registers; IMG_UINT32 ui32NumRegisters; }PVRSRV_BRIDGE_IN_PDUMP_3D_SIGNATURE_REGISTERS; typedef struct PVRSRV_BRIDGE_IN_PDUMPCOUNTER_REGISTERS_TAG { IMG_UINT32 ui32BridgeFlags; #if defined (SUPPORT_SID_INTERFACE) IMG_SID hDevCookie; #else IMG_HANDLE hDevCookie; #endif IMG_UINT32 ui32DumpFrameNum; IMG_BOOL bLastFrame; IMG_UINT32 *pui32Registers; IMG_UINT32 ui32NumRegisters; }PVRSRV_BRIDGE_IN_PDUMP_COUNTER_REGISTERS; typedef struct PVRSRV_BRIDGE_IN_PDUMP_TA_SIGNATURE_REGISTERS_TAG { IMG_UINT32 ui32BridgeFlags; #if defined (SUPPORT_SID_INTERFACE) IMG_SID hDevCookie; #else IMG_HANDLE hDevCookie; #endif IMG_UINT32 ui32DumpFrameNum; IMG_UINT32 ui32TAKickCount; IMG_BOOL bLastFrame; IMG_UINT32 *pui32Registers; IMG_UINT32 ui32NumRegisters; }PVRSRV_BRIDGE_IN_PDUMP_TA_SIGNATURE_REGISTERS; typedef struct PVRSRV_BRIDGE_IN_PDUMP_HWPERFCB_TAG { IMG_UINT32 ui32BridgeFlags; #if defined (SUPPORT_SID_INTERFACE) IMG_SID hDevCookie; IMG_SID hDevMemContext; #else IMG_HANDLE hDevCookie; IMG_HANDLE hDevMemContext; #endif IMG_CHAR szFileName[PVRSRV_PDUMP_MAX_FILENAME_SIZE]; IMG_UINT32 ui32FileOffset; IMG_UINT32 ui32PDumpFlags; }PVRSRV_BRIDGE_IN_PDUMP_HWPERFCB; typedef struct PVRSRV_BRIDGE_IN_PDUMP_SAVEMEM { IMG_UINT32 ui32BridgeFlags; #if defined (SUPPORT_SID_INTERFACE) IMG_SID hDevCookie; IMG_SID hDevMemContext; #else IMG_HANDLE hDevCookie; #endif IMG_CHAR szFileName[PVRSRV_PDUMP_MAX_FILENAME_SIZE]; IMG_UINT32 ui32FileOffset; IMG_DEV_VIRTADDR sDevVAddr; IMG_UINT32 ui32Size; #if !defined (SUPPORT_SID_INTERFACE) IMG_HANDLE hDevMemContext; #endif IMG_UINT32 ui32PDumpFlags; }PVRSRV_BRIDGE_IN_PDUMP_SAVEMEM; #endif typedef struct PVRSRV_BRIDGE_IN_SGX_REGISTER_HW_RENDER_CONTEXT_TAG { IMG_UINT32 ui32BridgeFlags; #if defined (SUPPORT_SID_INTERFACE) IMG_SID hDevCookie; #else IMG_HANDLE hDevCookie; #endif IMG_DEV_VIRTADDR sHWRenderContextDevVAddr; }PVRSRV_BRIDGE_IN_SGX_REGISTER_HW_RENDER_CONTEXT; typedef struct PVRSRV_BRIDGE_OUT_SGX_REGISTER_HW_RENDER_CONTEXT_TAG { PVRSRV_ERROR eError; #if defined (SUPPORT_SID_INTERFACE) IMG_SID hHWRenderContext; #else IMG_HANDLE hHWRenderContext; #endif }PVRSRV_BRIDGE_OUT_SGX_REGISTER_HW_RENDER_CONTEXT; typedef struct PVRSRV_BRIDGE_IN_SGX_UNREGISTER_HW_RENDER_CONTEXT_TAG { IMG_UINT32 ui32BridgeFlags; IMG_BOOL bForceCleanup; #if defined (SUPPORT_SID_INTERFACE) IMG_SID hDevCookie; IMG_SID hHWRenderContext; #else IMG_HANDLE hDevCookie; IMG_HANDLE hHWRenderContext; #endif }PVRSRV_BRIDGE_IN_SGX_UNREGISTER_HW_RENDER_CONTEXT; typedef struct PVRSRV_BRIDGE_IN_SGX_REGISTER_HW_TRANSFER_CONTEXT_TAG { IMG_UINT32 ui32BridgeFlags; #if defined (SUPPORT_SID_INTERFACE) IMG_SID hDevCookie; #else IMG_HANDLE hDevCookie; #endif IMG_DEV_VIRTADDR sHWTransferContextDevVAddr; }PVRSRV_BRIDGE_IN_SGX_REGISTER_HW_TRANSFER_CONTEXT; typedef struct PVRSRV_BRIDGE_OUT_SGX_REGISTER_HW_TRANSFER_CONTEXT_TAG { PVRSRV_ERROR eError; #if defined (SUPPORT_SID_INTERFACE) IMG_SID hHWTransferContext; #else IMG_HANDLE hHWTransferContext; #endif }PVRSRV_BRIDGE_OUT_SGX_REGISTER_HW_TRANSFER_CONTEXT; typedef struct PVRSRV_BRIDGE_IN_SGX_UNREGISTER_HW_TRANSFER_CONTEXT_TAG { IMG_UINT32 ui32BridgeFlags; IMG_BOOL bForceCleanup; #if defined (SUPPORT_SID_INTERFACE) IMG_SID hDevCookie; IMG_SID hHWTransferContext; #else IMG_HANDLE hDevCookie; IMG_HANDLE hHWTransferContext; #endif }PVRSRV_BRIDGE_IN_SGX_UNREGISTER_HW_TRANSFER_CONTEXT; typedef struct PVRSRV_BRIDGE_IN_SGX_FLUSH_HW_RENDER_TARGET_TAG { IMG_UINT32 ui32BridgeFlags; #if defined (SUPPORT_SID_INTERFACE) IMG_SID hDevCookie; #else IMG_HANDLE hDevCookie; #endif IMG_DEV_VIRTADDR sHWRTDataSetDevVAddr; }PVRSRV_BRIDGE_IN_SGX_FLUSH_HW_RENDER_TARGET; #if defined(SGX_FEATURE_2D_HARDWARE) typedef struct PVRSRV_BRIDGE_IN_SGX_REGISTER_HW_2D_CONTEXT_TAG { IMG_UINT32 ui32BridgeFlags; #if defined (SUPPORT_SID_INTERFACE) IMG_SID hDevCookie; #else IMG_HANDLE hDevCookie; #endif IMG_DEV_VIRTADDR sHW2DContextDevVAddr; }PVRSRV_BRIDGE_IN_SGX_REGISTER_HW_2D_CONTEXT; typedef struct PVRSRV_BRIDGE_OUT_SGX_REGISTER_HW_2D_CONTEXT_TAG { PVRSRV_ERROR eError; #if defined (SUPPORT_SID_INTERFACE) IMG_SID hHW2DContext; #else IMG_HANDLE hHW2DContext; #endif }PVRSRV_BRIDGE_OUT_SGX_REGISTER_HW_2D_CONTEXT; typedef struct PVRSRV_BRIDGE_IN_SGX_UNREGISTER_HW_2D_CONTEXT_TAG { IMG_UINT32 ui32BridgeFlags; IMG_BOOL bForceCleanup; #if defined (SUPPORT_SID_INTERFACE) IMG_SID hDevCookie; IMG_SID hHW2DContext; #else IMG_HANDLE hDevCookie; IMG_HANDLE hHW2DContext; #endif }PVRSRV_BRIDGE_IN_SGX_UNREGISTER_HW_2D_CONTEXT; #define SGX2D_MAX_BLT_CMD_SIZ 256 #endif typedef struct PVRSRV_BRIDGE_IN_SGX_READ_HWPERF_CB_TAG { IMG_UINT32 ui32BridgeFlags; #if defined (SUPPORT_SID_INTERFACE) IMG_SID hDevCookie; #else IMG_HANDLE hDevCookie; #endif IMG_UINT32 ui32ArraySize; PVRSRV_SGX_HWPERF_CB_ENTRY *psHWPerfCBData; } PVRSRV_BRIDGE_IN_SGX_READ_HWPERF_CB; typedef struct PVRSRV_BRIDGE_OUT_SGX_READ_HWPERF_CB_TAG { PVRSRV_ERROR eError; IMG_UINT32 ui32DataCount; IMG_UINT32 ui32ClockSpeed; IMG_UINT32 ui32HostTimeStamp; } PVRSRV_BRIDGE_OUT_SGX_READ_HWPERF_CB; #if defined (__cplusplus) } #endif #endif