/********************************************************************** * * 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 * ******************************************************************************/ #ifndef __PVR_BRIDGE_H__ #define __PVR_BRIDGE_H__ #if defined (__cplusplus) extern "C" { #endif #include "servicesint.h" #ifdef __linux__ #include #define PVRSRV_IOC_GID 'g' #define PVRSRV_IO(INDEX) _IO(PVRSRV_IOC_GID, INDEX, PVRSRV_BRIDGE_PACKAGE) #define PVRSRV_IOW(INDEX) _IOW(PVRSRV_IOC_GID, INDEX, PVRSRV_BRIDGE_PACKAGE) #define PVRSRV_IOR(INDEX) _IOR(PVRSRV_IOC_GID, INDEX, PVRSRV_BRIDGE_PACKAGE) #define PVRSRV_IOWR(INDEX) _IOWR(PVRSRV_IOC_GID, INDEX, PVRSRV_BRIDGE_PACKAGE) #else #error Unknown platform: Cannot define ioctls #define PVRSRV_IO(INDEX) (PVRSRV_IOC_GID + (INDEX)) #define PVRSRV_IOW(INDEX) (PVRSRV_IOC_GID + (INDEX)) #define PVRSRV_IOR(INDEX) (PVRSRV_IOC_GID + (INDEX)) #define PVRSRV_IOWR(INDEX) (PVRSRV_IOC_GID + (INDEX)) #define PVRSRV_BRIDGE_BASE PVRSRV_IOC_GID #endif #define PVRSRV_BRIDGE_CORE_CMD_FIRST 0UL #define PVRSRV_BRIDGE_ENUM_DEVICES PVRSRV_IOWR(PVRSRV_BRIDGE_CORE_CMD_FIRST+0) #define PVRSRV_BRIDGE_ACQUIRE_DEVICEINFO PVRSRV_IOWR(PVRSRV_BRIDGE_CORE_CMD_FIRST+1) #define PVRSRV_BRIDGE_RELEASE_DEVICEINFO PVRSRV_IOWR(PVRSRV_BRIDGE_CORE_CMD_FIRST+2) #define PVRSRV_BRIDGE_CREATE_DEVMEMCONTEXT PVRSRV_IOWR(PVRSRV_BRIDGE_CORE_CMD_FIRST+3) #define PVRSRV_BRIDGE_DESTROY_DEVMEMCONTEXT PVRSRV_IOWR(PVRSRV_BRIDGE_CORE_CMD_FIRST+4) #define PVRSRV_BRIDGE_GET_DEVMEM_HEAPINFO PVRSRV_IOWR(PVRSRV_BRIDGE_CORE_CMD_FIRST+5) #define PVRSRV_BRIDGE_ALLOC_DEVICEMEM PVRSRV_IOWR(PVRSRV_BRIDGE_CORE_CMD_FIRST+6) #define PVRSRV_BRIDGE_FREE_DEVICEMEM PVRSRV_IOWR(PVRSRV_BRIDGE_CORE_CMD_FIRST+7) #define PVRSRV_BRIDGE_GETFREE_DEVICEMEM PVRSRV_IOWR(PVRSRV_BRIDGE_CORE_CMD_FIRST+8) #define PVRSRV_BRIDGE_CREATE_COMMANDQUEUE PVRSRV_IOWR(PVRSRV_BRIDGE_CORE_CMD_FIRST+9) #define PVRSRV_BRIDGE_DESTROY_COMMANDQUEUE PVRSRV_IOWR(PVRSRV_BRIDGE_CORE_CMD_FIRST+10) #define PVRSRV_BRIDGE_MHANDLE_TO_MMAP_DATA PVRSRV_IOWR(PVRSRV_BRIDGE_CORE_CMD_FIRST+11) #define PVRSRV_BRIDGE_CONNECT_SERVICES PVRSRV_IOWR(PVRSRV_BRIDGE_CORE_CMD_FIRST+12) #define PVRSRV_BRIDGE_DISCONNECT_SERVICES PVRSRV_IOWR(PVRSRV_BRIDGE_CORE_CMD_FIRST+13) #define PVRSRV_BRIDGE_WRAP_DEVICE_MEM PVRSRV_IOWR(PVRSRV_BRIDGE_CORE_CMD_FIRST+14) #define PVRSRV_BRIDGE_GET_DEVICEMEMINFO PVRSRV_IOWR(PVRSRV_BRIDGE_CORE_CMD_FIRST+15) #define PVRSRV_BRIDGE_RESERVE_DEV_VIRTMEM PVRSRV_IOWR(PVRSRV_BRIDGE_CORE_CMD_FIRST+16) #define PVRSRV_BRIDGE_FREE_DEV_VIRTMEM PVRSRV_IOWR(PVRSRV_BRIDGE_CORE_CMD_FIRST+17) #define PVRSRV_BRIDGE_MAP_EXT_MEMORY PVRSRV_IOWR(PVRSRV_BRIDGE_CORE_CMD_FIRST+18) #define PVRSRV_BRIDGE_UNMAP_EXT_MEMORY PVRSRV_IOWR(PVRSRV_BRIDGE_CORE_CMD_FIRST+19) #define PVRSRV_BRIDGE_MAP_DEV_MEMORY PVRSRV_IOWR(PVRSRV_BRIDGE_CORE_CMD_FIRST+20) #define PVRSRV_BRIDGE_UNMAP_DEV_MEMORY PVRSRV_IOWR(PVRSRV_BRIDGE_CORE_CMD_FIRST+21) #define PVRSRV_BRIDGE_MAP_DEVICECLASS_MEMORY PVRSRV_IOWR(PVRSRV_BRIDGE_CORE_CMD_FIRST+22) #define PVRSRV_BRIDGE_UNMAP_DEVICECLASS_MEMORY PVRSRV_IOWR(PVRSRV_BRIDGE_CORE_CMD_FIRST+23) #define PVRSRV_BRIDGE_MAP_MEM_INFO_TO_USER PVRSRV_IOWR(PVRSRV_BRIDGE_CORE_CMD_FIRST+24) #define PVRSRV_BRIDGE_UNMAP_MEM_INFO_FROM_USER PVRSRV_IOWR(PVRSRV_BRIDGE_CORE_CMD_FIRST+25) #define PVRSRV_BRIDGE_EXPORT_DEVICEMEM PVRSRV_IOWR(PVRSRV_BRIDGE_CORE_CMD_FIRST+26) #define PVRSRV_BRIDGE_RELEASE_MMAP_DATA PVRSRV_IOWR(PVRSRV_BRIDGE_CORE_CMD_FIRST+27) #define PVRSRV_BRIDGE_CHG_DEV_MEM_ATTRIBS PVRSRV_IOWR(PVRSRV_BRIDGE_CORE_CMD_FIRST+28) #define PVRSRV_BRIDGE_MAP_DEV_MEMORY_2 PVRSRV_IOWR(PVRSRV_BRIDGE_CORE_CMD_FIRST+29) #define PVRSRV_BRIDGE_EXPORT_DEVICEMEM_2 PVRSRV_IOWR(PVRSRV_BRIDGE_CORE_CMD_FIRST+30) #define PVRSRV_BRIDGE_CORE_CMD_LAST (PVRSRV_BRIDGE_CORE_CMD_FIRST+30) #define PVRSRV_BRIDGE_SIM_CMD_FIRST (PVRSRV_BRIDGE_CORE_CMD_LAST+1) #define PVRSRV_BRIDGE_PROCESS_SIMISR_EVENT PVRSRV_IOWR(PVRSRV_BRIDGE_SIM_CMD_FIRST+0) #define PVRSRV_BRIDGE_REGISTER_SIM_PROCESS PVRSRV_IOWR(PVRSRV_BRIDGE_SIM_CMD_FIRST+1) #define PVRSRV_BRIDGE_UNREGISTER_SIM_PROCESS PVRSRV_IOWR(PVRSRV_BRIDGE_SIM_CMD_FIRST+2) #define PVRSRV_BRIDGE_SIM_CMD_LAST (PVRSRV_BRIDGE_SIM_CMD_FIRST+2) #define PVRSRV_BRIDGE_MAPPING_CMD_FIRST (PVRSRV_BRIDGE_SIM_CMD_LAST+1) #define PVRSRV_BRIDGE_MAPPHYSTOUSERSPACE PVRSRV_IOWR(PVRSRV_BRIDGE_MAPPING_CMD_FIRST+0) #define PVRSRV_BRIDGE_UNMAPPHYSTOUSERSPACE PVRSRV_IOWR(PVRSRV_BRIDGE_MAPPING_CMD_FIRST+1) #define PVRSRV_BRIDGE_GETPHYSTOUSERSPACEMAP PVRSRV_IOWR(PVRSRV_BRIDGE_MAPPING_CMD_FIRST+2) #define PVRSRV_BRIDGE_MAPPING_CMD_LAST (PVRSRV_BRIDGE_MAPPING_CMD_FIRST+2) #define PVRSRV_BRIDGE_STATS_CMD_FIRST (PVRSRV_BRIDGE_MAPPING_CMD_LAST+1) #define PVRSRV_BRIDGE_GET_FB_STATS PVRSRV_IOWR(PVRSRV_BRIDGE_STATS_CMD_FIRST+0) #define PVRSRV_BRIDGE_STATS_CMD_LAST (PVRSRV_BRIDGE_STATS_CMD_FIRST+0) #define PVRSRV_BRIDGE_MISC_CMD_FIRST (PVRSRV_BRIDGE_STATS_CMD_LAST+1) #define PVRSRV_BRIDGE_GET_MISC_INFO PVRSRV_IOWR(PVRSRV_BRIDGE_MISC_CMD_FIRST+0) #define PVRSRV_BRIDGE_RELEASE_MISC_INFO PVRSRV_IOWR(PVRSRV_BRIDGE_MISC_CMD_FIRST+1) #define PVRSRV_BRIDGE_MISC_CMD_LAST (PVRSRV_BRIDGE_MISC_CMD_FIRST+1) #if defined (SUPPORT_OVERLAY_ROTATE_BLIT) #define PVRSRV_BRIDGE_OVERLAY_CMD_FIRST (PVRSRV_BRIDGE_MISC_CMD_LAST+1) #define PVRSRV_BRIDGE_INIT_3D_OVL_BLT_RES PVRSRV_IOWR(PVRSRV_BRIDGE_OVERLAY_CMD_FIRST+0) #define PVRSRV_BRIDGE_DEINIT_3D_OVL_BLT_RES PVRSRV_IOWR(PVRSRV_BRIDGE_OVERLAY_CMD_FIRST+1) #define PVRSRV_BRIDGE_OVERLAY_CMD_LAST (PVRSRV_BRIDGE_OVERLAY_CMD_FIRST+1) #else #define PVRSRV_BRIDGE_OVERLAY_CMD_LAST PVRSRV_BRIDGE_MISC_CMD_LAST #endif #if defined(PDUMP) #define PVRSRV_BRIDGE_PDUMP_CMD_FIRST (PVRSRV_BRIDGE_OVERLAY_CMD_LAST+1) #define PVRSRV_BRIDGE_PDUMP_INIT PVRSRV_IOWR(PVRSRV_BRIDGE_PDUMP_CMD_FIRST+0) #define PVRSRV_BRIDGE_PDUMP_MEMPOL PVRSRV_IOWR(PVRSRV_BRIDGE_PDUMP_CMD_FIRST+1) #define PVRSRV_BRIDGE_PDUMP_DUMPMEM PVRSRV_IOWR(PVRSRV_BRIDGE_PDUMP_CMD_FIRST+2) #define PVRSRV_BRIDGE_PDUMP_REG PVRSRV_IOWR(PVRSRV_BRIDGE_PDUMP_CMD_FIRST+3) #define PVRSRV_BRIDGE_PDUMP_REGPOL PVRSRV_IOWR(PVRSRV_BRIDGE_PDUMP_CMD_FIRST+4) #define PVRSRV_BRIDGE_PDUMP_COMMENT PVRSRV_IOWR(PVRSRV_BRIDGE_PDUMP_CMD_FIRST+5) #define PVRSRV_BRIDGE_PDUMP_SETFRAME PVRSRV_IOWR(PVRSRV_BRIDGE_PDUMP_CMD_FIRST+6) #define PVRSRV_BRIDGE_PDUMP_ISCAPTURING PVRSRV_IOWR(PVRSRV_BRIDGE_PDUMP_CMD_FIRST+7) #define PVRSRV_BRIDGE_PDUMP_DUMPBITMAP PVRSRV_IOWR(PVRSRV_BRIDGE_PDUMP_CMD_FIRST+8) #define PVRSRV_BRIDGE_PDUMP_DUMPREADREG PVRSRV_IOWR(PVRSRV_BRIDGE_PDUMP_CMD_FIRST+9) #define PVRSRV_BRIDGE_PDUMP_SYNCPOL PVRSRV_IOWR(PVRSRV_BRIDGE_PDUMP_CMD_FIRST+10) #define PVRSRV_BRIDGE_PDUMP_DUMPSYNC PVRSRV_IOWR(PVRSRV_BRIDGE_PDUMP_CMD_FIRST+11) #define PVRSRV_BRIDGE_PDUMP_MEMPAGES PVRSRV_IOWR(PVRSRV_BRIDGE_PDUMP_CMD_FIRST+12) #define PVRSRV_BRIDGE_PDUMP_DRIVERINFO PVRSRV_IOWR(PVRSRV_BRIDGE_PDUMP_CMD_FIRST+13) #define PVRSRV_BRIDGE_PDUMP_DUMPPDDEVPADDR PVRSRV_IOWR(PVRSRV_BRIDGE_PDUMP_CMD_FIRST+15) #define PVRSRV_BRIDGE_PDUMP_CYCLE_COUNT_REG_READ PVRSRV_IOWR(PVRSRV_BRIDGE_PDUMP_CMD_FIRST+16) #define PVRSRV_BRIDGE_PDUMP_STARTINITPHASE PVRSRV_IOWR(PVRSRV_BRIDGE_PDUMP_CMD_FIRST+17) #define PVRSRV_BRIDGE_PDUMP_STOPINITPHASE PVRSRV_IOWR(PVRSRV_BRIDGE_PDUMP_CMD_FIRST+18) #define PVRSRV_BRIDGE_PDUMP_CMD_LAST (PVRSRV_BRIDGE_PDUMP_CMD_FIRST+18) #else #define PVRSRV_BRIDGE_PDUMP_CMD_LAST PVRSRV_BRIDGE_OVERLAY_CMD_LAST #endif #define PVRSRV_BRIDGE_OEM_CMD_FIRST (PVRSRV_BRIDGE_PDUMP_CMD_LAST+1) #define PVRSRV_BRIDGE_GET_OEMJTABLE PVRSRV_IOWR(PVRSRV_BRIDGE_OEM_CMD_FIRST+0) #define PVRSRV_BRIDGE_OEM_CMD_LAST (PVRSRV_BRIDGE_OEM_CMD_FIRST+0) #define PVRSRV_BRIDGE_DEVCLASS_CMD_FIRST (PVRSRV_BRIDGE_OEM_CMD_LAST+1) #define PVRSRV_BRIDGE_ENUM_CLASS PVRSRV_IOWR(PVRSRV_BRIDGE_DEVCLASS_CMD_FIRST+0) #define PVRSRV_BRIDGE_DEVCLASS_CMD_LAST (PVRSRV_BRIDGE_DEVCLASS_CMD_FIRST+0) #define PVRSRV_BRIDGE_DISPCLASS_CMD_FIRST (PVRSRV_BRIDGE_DEVCLASS_CMD_LAST+1) #define PVRSRV_BRIDGE_OPEN_DISPCLASS_DEVICE PVRSRV_IOWR(PVRSRV_BRIDGE_DISPCLASS_CMD_FIRST+0) #define PVRSRV_BRIDGE_CLOSE_DISPCLASS_DEVICE PVRSRV_IOWR(PVRSRV_BRIDGE_DISPCLASS_CMD_FIRST+1) #define PVRSRV_BRIDGE_ENUM_DISPCLASS_FORMATS PVRSRV_IOWR(PVRSRV_BRIDGE_DISPCLASS_CMD_FIRST+2) #define PVRSRV_BRIDGE_ENUM_DISPCLASS_DIMS PVRSRV_IOWR(PVRSRV_BRIDGE_DISPCLASS_CMD_FIRST+3) #define PVRSRV_BRIDGE_GET_DISPCLASS_SYSBUFFER PVRSRV_IOWR(PVRSRV_BRIDGE_DISPCLASS_CMD_FIRST+4) #define PVRSRV_BRIDGE_GET_DISPCLASS_INFO PVRSRV_IOWR(PVRSRV_BRIDGE_DISPCLASS_CMD_FIRST+5) #define PVRSRV_BRIDGE_CREATE_DISPCLASS_SWAPCHAIN PVRSRV_IOWR(PVRSRV_BRIDGE_DISPCLASS_CMD_FIRST+6) #define PVRSRV_BRIDGE_DESTROY_DISPCLASS_SWAPCHAIN PVRSRV_IOWR(PVRSRV_BRIDGE_DISPCLASS_CMD_FIRST+7) #define PVRSRV_BRIDGE_SET_DISPCLASS_DSTRECT PVRSRV_IOWR(PVRSRV_BRIDGE_DISPCLASS_CMD_FIRST+8) #define PVRSRV_BRIDGE_SET_DISPCLASS_SRCRECT PVRSRV_IOWR(PVRSRV_BRIDGE_DISPCLASS_CMD_FIRST+9) #define PVRSRV_BRIDGE_SET_DISPCLASS_DSTCOLOURKEY PVRSRV_IOWR(PVRSRV_BRIDGE_DISPCLASS_CMD_FIRST+10) #define PVRSRV_BRIDGE_SET_DISPCLASS_SRCCOLOURKEY PVRSRV_IOWR(PVRSRV_BRIDGE_DISPCLASS_CMD_FIRST+11) #define PVRSRV_BRIDGE_GET_DISPCLASS_BUFFERS PVRSRV_IOWR(PVRSRV_BRIDGE_DISPCLASS_CMD_FIRST+12) #define PVRSRV_BRIDGE_SWAP_DISPCLASS_TO_BUFFER PVRSRV_IOWR(PVRSRV_BRIDGE_DISPCLASS_CMD_FIRST+13) #define PVRSRV_BRIDGE_SWAP_DISPCLASS_TO_BUFFER2 PVRSRV_IOWR(PVRSRV_BRIDGE_DISPCLASS_CMD_FIRST+14) #define PVRSRV_BRIDGE_SWAP_DISPCLASS_TO_SYSTEM PVRSRV_IOWR(PVRSRV_BRIDGE_DISPCLASS_CMD_FIRST+15) #define PVRSRV_BRIDGE_DISPCLASS_CMD_LAST (PVRSRV_BRIDGE_DISPCLASS_CMD_FIRST+15) #define PVRSRV_BRIDGE_BUFCLASS_CMD_FIRST (PVRSRV_BRIDGE_DISPCLASS_CMD_LAST+1) #define PVRSRV_BRIDGE_OPEN_BUFFERCLASS_DEVICE PVRSRV_IOWR(PVRSRV_BRIDGE_BUFCLASS_CMD_FIRST+0) #define PVRSRV_BRIDGE_CLOSE_BUFFERCLASS_DEVICE PVRSRV_IOWR(PVRSRV_BRIDGE_BUFCLASS_CMD_FIRST+1) #define PVRSRV_BRIDGE_GET_BUFFERCLASS_INFO PVRSRV_IOWR(PVRSRV_BRIDGE_BUFCLASS_CMD_FIRST+2) #define PVRSRV_BRIDGE_GET_BUFFERCLASS_BUFFER PVRSRV_IOWR(PVRSRV_BRIDGE_BUFCLASS_CMD_FIRST+3) #define PVRSRV_BRIDGE_BUFCLASS_CMD_LAST (PVRSRV_BRIDGE_BUFCLASS_CMD_FIRST+3) #define PVRSRV_BRIDGE_WRAP_CMD_FIRST (PVRSRV_BRIDGE_BUFCLASS_CMD_LAST+1) #define PVRSRV_BRIDGE_WRAP_EXT_MEMORY PVRSRV_IOWR(PVRSRV_BRIDGE_WRAP_CMD_FIRST+0) #define PVRSRV_BRIDGE_UNWRAP_EXT_MEMORY PVRSRV_IOWR(PVRSRV_BRIDGE_WRAP_CMD_FIRST+1) #define PVRSRV_BRIDGE_WRAP_CMD_LAST (PVRSRV_BRIDGE_WRAP_CMD_FIRST+1) #define PVRSRV_BRIDGE_SHAREDMEM_CMD_FIRST (PVRSRV_BRIDGE_WRAP_CMD_LAST+1) #define PVRSRV_BRIDGE_ALLOC_SHARED_SYS_MEM PVRSRV_IOWR(PVRSRV_BRIDGE_SHAREDMEM_CMD_FIRST+0) #define PVRSRV_BRIDGE_FREE_SHARED_SYS_MEM PVRSRV_IOWR(PVRSRV_BRIDGE_SHAREDMEM_CMD_FIRST+1) #define PVRSRV_BRIDGE_MAP_MEMINFO_MEM PVRSRV_IOWR(PVRSRV_BRIDGE_SHAREDMEM_CMD_FIRST+2) #define PVRSRV_BRIDGE_UNMAP_MEMINFO_MEM PVRSRV_IOWR(PVRSRV_BRIDGE_SHAREDMEM_CMD_FIRST+3) #define PVRSRV_BRIDGE_SHAREDMEM_CMD_LAST (PVRSRV_BRIDGE_SHAREDMEM_CMD_FIRST+3) #define PVRSRV_BRIDGE_INITSRV_CMD_FIRST (PVRSRV_BRIDGE_SHAREDMEM_CMD_LAST+1) #define PVRSRV_BRIDGE_INITSRV_CONNECT PVRSRV_IOWR(PVRSRV_BRIDGE_INITSRV_CMD_FIRST+0) #define PVRSRV_BRIDGE_INITSRV_DISCONNECT PVRSRV_IOWR(PVRSRV_BRIDGE_INITSRV_CMD_FIRST+1) #define PVRSRV_BRIDGE_INITSRV_CMD_LAST (PVRSRV_BRIDGE_INITSRV_CMD_FIRST+1) #define PVRSRV_BRIDGE_EVENT_OBJECT_CMD_FIRST (PVRSRV_BRIDGE_INITSRV_CMD_LAST+1) #define PVRSRV_BRIDGE_EVENT_OBJECT_WAIT PVRSRV_IOWR(PVRSRV_BRIDGE_EVENT_OBJECT_CMD_FIRST+0) #define PVRSRV_BRIDGE_EVENT_OBJECT_OPEN PVRSRV_IOWR(PVRSRV_BRIDGE_EVENT_OBJECT_CMD_FIRST+1) #define PVRSRV_BRIDGE_EVENT_OBJECT_CLOSE PVRSRV_IOWR(PVRSRV_BRIDGE_EVENT_OBJECT_CMD_FIRST+2) #define PVRSRV_BRIDGE_EVENT_OBJECT_CMD_LAST (PVRSRV_BRIDGE_EVENT_OBJECT_CMD_FIRST+2) #define PVRSRV_BRIDGE_SYNC_OPS_CMD_FIRST (PVRSRV_BRIDGE_EVENT_OBJECT_CMD_LAST+1) #define PVRSRV_BRIDGE_CREATE_SYNC_INFO_MOD_OBJ PVRSRV_IOWR(PVRSRV_BRIDGE_SYNC_OPS_CMD_FIRST+0) #define PVRSRV_BRIDGE_DESTROY_SYNC_INFO_MOD_OBJ PVRSRV_IOWR(PVRSRV_BRIDGE_SYNC_OPS_CMD_FIRST+1) #define PVRSRV_BRIDGE_MODIFY_PENDING_SYNC_OPS PVRSRV_IOWR(PVRSRV_BRIDGE_SYNC_OPS_CMD_FIRST+2) #define PVRSRV_BRIDGE_MODIFY_COMPLETE_SYNC_OPS PVRSRV_IOWR(PVRSRV_BRIDGE_SYNC_OPS_CMD_FIRST+3) #define PVRSRV_BRIDGE_SYNC_OPS_TAKE_TOKEN PVRSRV_IOWR(PVRSRV_BRIDGE_SYNC_OPS_CMD_FIRST+4) #define PVRSRV_BRIDGE_SYNC_OPS_FLUSH_TO_TOKEN PVRSRV_IOWR(PVRSRV_BRIDGE_SYNC_OPS_CMD_FIRST+5) #define PVRSRV_BRIDGE_SYNC_OPS_FLUSH_TO_MOD_OBJ PVRSRV_IOWR(PVRSRV_BRIDGE_SYNC_OPS_CMD_FIRST+6) #define PVRSRV_BRIDGE_SYNC_OPS_FLUSH_TO_DELTA PVRSRV_IOWR(PVRSRV_BRIDGE_SYNC_OPS_CMD_FIRST+7) #define PVRSRV_BRIDGE_ALLOC_SYNC_INFO PVRSRV_IOWR(PVRSRV_BRIDGE_SYNC_OPS_CMD_FIRST+8) #define PVRSRV_BRIDGE_FREE_SYNC_INFO PVRSRV_IOWR(PVRSRV_BRIDGE_SYNC_OPS_CMD_FIRST+9) #define PVRSRV_BRIDGE_SYNC_OPS_CMD_LAST (PVRSRV_BRIDGE_SYNC_OPS_CMD_FIRST+9) #define PVRSRV_BRIDGE_LAST_NON_DEVICE_CMD (PVRSRV_BRIDGE_SYNC_OPS_CMD_LAST+1) #define PVRSRV_KERNEL_MODE_CLIENT 1 typedef struct PVRSRV_BRIDGE_RETURN_TAG { PVRSRV_ERROR eError; IMG_VOID *pvData; }PVRSRV_BRIDGE_RETURN; typedef struct PVRSRV_BRIDGE_PACKAGE_TAG { IMG_UINT32 ui32BridgeID; IMG_UINT32 ui32Size; IMG_VOID *pvParamIn; IMG_UINT32 ui32InBufferSize; IMG_VOID *pvParamOut; IMG_UINT32 ui32OutBufferSize; #if defined (SUPPORT_SID_INTERFACE) IMG_SID hKernelServices; #else IMG_HANDLE hKernelServices; #endif }PVRSRV_BRIDGE_PACKAGE; typedef struct PVRSRV_BRIDGE_IN_CONNECT_SERVICES_TAG { IMG_UINT32 ui32BridgeFlags; IMG_UINT32 ui32Flags; } PVRSRV_BRIDGE_IN_CONNECT_SERVICES; typedef struct PVRSRV_BRIDGE_IN_ACQUIRE_DEVICEINFO_TAG { IMG_UINT32 ui32BridgeFlags; IMG_UINT32 uiDevIndex; PVRSRV_DEVICE_TYPE eDeviceType; } PVRSRV_BRIDGE_IN_ACQUIRE_DEVICEINFO; typedef struct PVRSRV_BRIDGE_IN_ENUMCLASS_TAG { IMG_UINT32 ui32BridgeFlags; PVRSRV_DEVICE_CLASS sDeviceClass; } PVRSRV_BRIDGE_IN_ENUMCLASS; typedef struct PVRSRV_BRIDGE_IN_CLOSE_DISPCLASS_DEVICE_TAG { IMG_UINT32 ui32BridgeFlags; #if defined (SUPPORT_SID_INTERFACE) IMG_SID hDeviceKM; #else IMG_HANDLE hDeviceKM; #endif } PVRSRV_BRIDGE_IN_CLOSE_DISPCLASS_DEVICE; typedef struct PVRSRV_BRIDGE_IN_ENUM_DISPCLASS_FORMATS_TAG { IMG_UINT32 ui32BridgeFlags; #if defined (SUPPORT_SID_INTERFACE) IMG_SID hDeviceKM; #else IMG_HANDLE hDeviceKM; #endif } PVRSRV_BRIDGE_IN_ENUM_DISPCLASS_FORMATS; typedef struct PVRSRV_BRIDGE_IN_GET_DISPCLASS_SYSBUFFER_TAG { IMG_UINT32 ui32BridgeFlags; #if defined (SUPPORT_SID_INTERFACE) IMG_SID hDeviceKM; #else IMG_HANDLE hDeviceKM; #endif } PVRSRV_BRIDGE_IN_GET_DISPCLASS_SYSBUFFER; typedef struct PVRSRV_BRIDGE_IN_GET_DISPCLASS_INFO_TAG { IMG_UINT32 ui32BridgeFlags; #if defined (SUPPORT_SID_INTERFACE) IMG_SID hDeviceKM; #else IMG_HANDLE hDeviceKM; #endif } PVRSRV_BRIDGE_IN_GET_DISPCLASS_INFO; typedef struct PVRSRV_BRIDGE_IN_CLOSE_BUFFERCLASS_DEVICE_TAG { IMG_UINT32 ui32BridgeFlags; #if defined (SUPPORT_SID_INTERFACE) IMG_SID hDeviceKM; #else IMG_HANDLE hDeviceKM; #endif } PVRSRV_BRIDGE_IN_CLOSE_BUFFERCLASS_DEVICE; typedef struct PVRSRV_BRIDGE_IN_GET_BUFFERCLASS_INFO_TAG { IMG_UINT32 ui32BridgeFlags; #if defined (SUPPORT_SID_INTERFACE) IMG_SID hDeviceKM; #else IMG_HANDLE hDeviceKM; #endif } PVRSRV_BRIDGE_IN_GET_BUFFERCLASS_INFO; typedef struct PVRSRV_BRIDGE_IN_RELEASE_DEVICEINFO_TAG { IMG_UINT32 ui32BridgeFlags; #if defined (SUPPORT_SID_INTERFACE) IMG_SID hDevCookie; #else IMG_HANDLE hDevCookie; #endif } PVRSRV_BRIDGE_IN_RELEASE_DEVICEINFO; typedef struct PVRSRV_BRIDGE_IN_FREE_CLASSDEVICEINFO_TAG { IMG_UINT32 ui32BridgeFlags; PVRSRV_DEVICE_CLASS DeviceClass; IMG_VOID* pvDevInfo; }PVRSRV_BRIDGE_IN_FREE_CLASSDEVICEINFO; typedef struct PVRSRV_BRIDGE_IN_GET_DEVMEM_HEAPINFO_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_GET_DEVMEM_HEAPINFO; typedef struct PVRSRV_BRIDGE_IN_CREATE_DEVMEMCONTEXT_TAG { IMG_UINT32 ui32BridgeFlags; #if defined (SUPPORT_SID_INTERFACE) IMG_SID hDevCookie; #else IMG_HANDLE hDevCookie; #endif }PVRSRV_BRIDGE_IN_CREATE_DEVMEMCONTEXT; typedef struct PVRSRV_BRIDGE_IN_DESTROY_DEVMEMCONTEXT_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_DESTROY_DEVMEMCONTEXT; typedef struct PVRSRV_BRIDGE_IN_ALLOCDEVICEMEM_TAG { IMG_UINT32 ui32BridgeFlags; #if defined (SUPPORT_SID_INTERFACE) IMG_SID hDevCookie; IMG_SID hDevMemHeap; #else IMG_HANDLE hDevCookie; IMG_HANDLE hDevMemHeap; #endif IMG_UINT32 ui32Attribs; IMG_SIZE_T ui32Size; IMG_SIZE_T ui32Alignment; IMG_PVOID pvPrivData; IMG_UINT32 ui32PrivDataLength; }PVRSRV_BRIDGE_IN_ALLOCDEVICEMEM; typedef struct PVRSRV_BRIDGE_IN_MAPMEMINFOTOUSER_TAG { IMG_UINT32 ui32BridgeFlags; #if defined (SUPPORT_SID_INTERFACE) IMG_SID hKernelMemInfo; #else PVRSRV_KERNEL_MEM_INFO *psKernelMemInfo; #endif }PVRSRV_BRIDGE_IN_MAPMEMINFOTOUSER; typedef struct PVRSRV_BRIDGE_IN_UNMAPMEMINFOFROMUSER_TAG { IMG_UINT32 ui32BridgeFlags; #if defined (SUPPORT_SID_INTERFACE) IMG_SID hKernelMemInfo; #else PVRSRV_KERNEL_MEM_INFO *psKernelMemInfo; #endif IMG_PVOID pvLinAddr; #if defined (SUPPORT_SID_INTERFACE) IMG_SID hMappingInfo; #else IMG_HANDLE hMappingInfo; #endif }PVRSRV_BRIDGE_IN_UNMAPMEMINFOFROMUSER; typedef struct PVRSRV_BRIDGE_IN_FREEDEVICEMEM_TAG { IMG_UINT32 ui32BridgeFlags; #if defined (SUPPORT_SID_INTERFACE) IMG_SID hDevCookie; IMG_SID hKernelMemInfo; #else IMG_HANDLE hDevCookie; PVRSRV_KERNEL_MEM_INFO *psKernelMemInfo; #endif PVRSRV_CLIENT_MEM_INFO sClientMemInfo; }PVRSRV_BRIDGE_IN_FREEDEVICEMEM; typedef struct PVRSRV_BRIDGE_IN_EXPORTDEVICEMEM_TAG { IMG_UINT32 ui32BridgeFlags; #if defined (SUPPORT_SID_INTERFACE) IMG_SID hDevCookie; IMG_SID hKernelMemInfo; #else IMG_HANDLE hDevCookie; PVRSRV_KERNEL_MEM_INFO *psKernelMemInfo; #endif }PVRSRV_BRIDGE_IN_EXPORTDEVICEMEM; typedef struct PVRSRV_BRIDGE_IN_GETFREEDEVICEMEM_TAG { IMG_UINT32 ui32BridgeFlags; IMG_UINT32 ui32Flags; } PVRSRV_BRIDGE_IN_GETFREEDEVICEMEM; typedef struct PVRSRV_BRIDGE_IN_CREATECOMMANDQUEUE_TAG { IMG_UINT32 ui32BridgeFlags; #if defined (SUPPORT_SID_INTERFACE) IMG_SID hDevCookie; #else IMG_HANDLE hDevCookie; #endif IMG_SIZE_T ui32QueueSize; }PVRSRV_BRIDGE_IN_CREATECOMMANDQUEUE; typedef struct PVRSRV_BRIDGE_IN_DESTROYCOMMANDQUEUE_TAG { IMG_UINT32 ui32BridgeFlags; #if defined (SUPPORT_SID_INTERFACE) IMG_SID hDevCookie; #else IMG_HANDLE hDevCookie; #endif PVRSRV_QUEUE_INFO *psQueueInfo; }PVRSRV_BRIDGE_IN_DESTROYCOMMANDQUEUE; typedef struct PVRSRV_BRIDGE_IN_MHANDLE_TO_MMAP_DATA_TAG { IMG_UINT32 ui32BridgeFlags; #if defined (SUPPORT_SID_INTERFACE) IMG_SID hMHandle; #else IMG_HANDLE hMHandle; #endif } PVRSRV_BRIDGE_IN_MHANDLE_TO_MMAP_DATA; typedef struct PVRSRV_BRIDGE_IN_RELEASE_MMAP_DATA_TAG { IMG_UINT32 ui32BridgeFlags; #if defined (SUPPORT_SID_INTERFACE) IMG_SID hMHandle; #else IMG_HANDLE hMHandle; #endif } PVRSRV_BRIDGE_IN_RELEASE_MMAP_DATA; typedef struct PVRSRV_BRIDGE_IN_RESERVE_DEV_VIRTMEM_TAG { IMG_UINT32 ui32BridgeFlags; #if defined (SUPPORT_SID_INTERFACE) IMG_SID hDevMemHeap; #else IMG_HANDLE hDevMemHeap; #endif IMG_DEV_VIRTADDR *psDevVAddr; IMG_SIZE_T ui32Size; IMG_SIZE_T ui32Alignment; }PVRSRV_BRIDGE_IN_RESERVE_DEV_VIRTMEM; typedef struct PVRSRV_BRIDGE_OUT_CONNECT_SERVICES_TAG { PVRSRV_ERROR eError; #if defined (SUPPORT_SID_INTERFACE) IMG_SID hKernelServices; #else IMG_HANDLE hKernelServices; #endif }PVRSRV_BRIDGE_OUT_CONNECT_SERVICES; typedef struct PVRSRV_BRIDGE_OUT_RESERVE_DEV_VIRTMEM_TAG { PVRSRV_ERROR eError; #if defined (SUPPORT_SID_INTERFACE) IMG_SID hKernelMemInfo; IMG_SID hKernelSyncInfo; #else PVRSRV_KERNEL_MEM_INFO *psKernelMemInfo; PVRSRV_KERNEL_SYNC_INFO *psKernelSyncInfo; #endif PVRSRV_CLIENT_MEM_INFO sClientMemInfo; PVRSRV_CLIENT_SYNC_INFO sClientSyncInfo; }PVRSRV_BRIDGE_OUT_RESERVE_DEV_VIRTMEM; typedef struct PVRSRV_BRIDGE_IN_FREE_DEV_VIRTMEM_TAG { IMG_UINT32 ui32BridgeFlags; #if defined (SUPPORT_SID_INTERFACE) IMG_SID hKernelMemInfo; #else PVRSRV_KERNEL_MEM_INFO *psKernelMemInfo; #endif PVRSRV_CLIENT_MEM_INFO sClientMemInfo; PVRSRV_CLIENT_SYNC_INFO sClientSyncInfo; }PVRSRV_BRIDGE_IN_FREE_DEV_VIRTMEM; typedef struct PVRSRV_BRIDGE_IN_MAP_DEV_MEMORY_TAG { IMG_UINT32 ui32BridgeFlags; #if defined (SUPPORT_SID_INTERFACE) IMG_SID hKernelMemInfo; IMG_SID hDstDevMemHeap; #else IMG_HANDLE hKernelMemInfo; IMG_HANDLE hDstDevMemHeap; #endif }PVRSRV_BRIDGE_IN_MAP_DEV_MEMORY; typedef struct PVRSRV_BRIDGE_OUT_MAP_DEV_MEMORY_TAG { PVRSRV_ERROR eError; #if defined (SUPPORT_SID_INTERFACE) IMG_SID hDstKernelMemInfo; #else PVRSRV_KERNEL_MEM_INFO *psDstKernelMemInfo; #endif PVRSRV_CLIENT_MEM_INFO sDstClientMemInfo; PVRSRV_CLIENT_SYNC_INFO sDstClientSyncInfo; }PVRSRV_BRIDGE_OUT_MAP_DEV_MEMORY; typedef struct PVRSRV_BRIDGE_IN_UNMAP_DEV_MEMORY_TAG { IMG_UINT32 ui32BridgeFlags; #if defined (SUPPORT_SID_INTERFACE) IMG_SID hKernelMemInfo; #else PVRSRV_KERNEL_MEM_INFO *psKernelMemInfo; #endif PVRSRV_CLIENT_MEM_INFO sClientMemInfo; PVRSRV_CLIENT_SYNC_INFO sClientSyncInfo; }PVRSRV_BRIDGE_IN_UNMAP_DEV_MEMORY; typedef struct PVRSRV_BRIDGE_IN_MAP_EXT_MEMORY_TAG { IMG_UINT32 ui32BridgeFlags; #if defined (SUPPORT_SID_INTERFACE) IMG_SID hKernelMemInfo; #else PVRSRV_KERNEL_MEM_INFO *psKernelMemInfo; #endif IMG_SYS_PHYADDR *psSysPAddr; IMG_UINT32 ui32Flags; }PVRSRV_BRIDGE_IN_MAP_EXT_MEMORY; typedef struct PVRSRV_BRIDGE_IN_UNMAP_EXT_MEMORY_TAG { IMG_UINT32 ui32BridgeFlags; PVRSRV_CLIENT_MEM_INFO sClientMemInfo; PVRSRV_CLIENT_SYNC_INFO sClientSyncInfo; IMG_UINT32 ui32Flags; }PVRSRV_BRIDGE_IN_UNMAP_EXT_MEMORY; typedef struct PVRSRV_BRIDGE_IN_MAP_DEVICECLASS_MEMORY_TAG { IMG_UINT32 ui32BridgeFlags; #if defined (SUPPORT_SID_INTERFACE) IMG_SID hDeviceClassBuffer; IMG_SID hDevMemContext; #else IMG_HANDLE hDeviceClassBuffer; IMG_HANDLE hDevMemContext; #endif }PVRSRV_BRIDGE_IN_MAP_DEVICECLASS_MEMORY; typedef struct PVRSRV_BRIDGE_OUT_MAP_DEVICECLASS_MEMORY_TAG { PVRSRV_ERROR eError; PVRSRV_CLIENT_MEM_INFO sClientMemInfo; PVRSRV_CLIENT_SYNC_INFO sClientSyncInfo; #if defined (SUPPORT_SID_INTERFACE) IMG_SID hKernelMemInfo; IMG_SID hMappingInfo; #else PVRSRV_KERNEL_MEM_INFO *psKernelMemInfo; IMG_HANDLE hMappingInfo; #endif }PVRSRV_BRIDGE_OUT_MAP_DEVICECLASS_MEMORY; typedef struct PVRSRV_BRIDGE_IN_UNMAP_DEVICECLASS_MEMORY_TAG { IMG_UINT32 ui32BridgeFlags; #if defined (SUPPORT_SID_INTERFACE) IMG_SID hKernelMemInfo; #else PVRSRV_KERNEL_MEM_INFO *psKernelMemInfo; #endif PVRSRV_CLIENT_MEM_INFO sClientMemInfo; PVRSRV_CLIENT_SYNC_INFO sClientSyncInfo; }PVRSRV_BRIDGE_IN_UNMAP_DEVICECLASS_MEMORY; typedef struct PVRSRV_BRIDGE_IN_PDUMP_MEMPOL_TAG { IMG_UINT32 ui32BridgeFlags; #if defined (SUPPORT_SID_INTERFACE) IMG_SID hKernelMemInfo; #else PVRSRV_KERNEL_MEM_INFO *psKernelMemInfo; #endif IMG_UINT32 ui32Offset; IMG_UINT32 ui32Value; IMG_UINT32 ui32Mask; PDUMP_POLL_OPERATOR eOperator; IMG_UINT32 ui32Flags; }PVRSRV_BRIDGE_IN_PDUMP_MEMPOL; typedef struct PVRSRV_BRIDGE_IN_PDUMP_SYNCPOL_TAG { IMG_UINT32 ui32BridgeFlags; #if defined (SUPPORT_SID_INTERFACE) IMG_SID hKernelSyncInfo; #else PVRSRV_KERNEL_SYNC_INFO *psKernelSyncInfo; #endif IMG_BOOL bIsRead; IMG_BOOL bUseLastOpDumpVal; IMG_UINT32 ui32Value; IMG_UINT32 ui32Mask; }PVRSRV_BRIDGE_IN_PDUMP_SYNCPOL; typedef struct PVRSRV_BRIDGE_IN_PDUMP_DUMPMEM_TAG { IMG_UINT32 ui32BridgeFlags; IMG_PVOID pvLinAddr; IMG_PVOID pvAltLinAddr; #if defined (SUPPORT_SID_INTERFACE) IMG_SID hKernelMemInfo; #else PVRSRV_KERNEL_MEM_INFO *psKernelMemInfo; #endif IMG_UINT32 ui32Offset; IMG_UINT32 ui32Bytes; IMG_UINT32 ui32Flags; }PVRSRV_BRIDGE_IN_PDUMP_DUMPMEM; typedef struct PVRSRV_BRIDGE_IN_PDUMP_DUMPSYNC_TAG { IMG_UINT32 ui32BridgeFlags; IMG_PVOID pvAltLinAddr; #if defined (SUPPORT_SID_INTERFACE) IMG_SID hKernelSyncInfo; #else PVRSRV_KERNEL_SYNC_INFO *psKernelSyncInfo; #endif IMG_UINT32 ui32Offset; IMG_UINT32 ui32Bytes; }PVRSRV_BRIDGE_IN_PDUMP_DUMPSYNC; typedef struct PVRSRV_BRIDGE_IN_PDUMP_DUMPREG_TAG { IMG_UINT32 ui32BridgeFlags; #if defined (SUPPORT_SID_INTERFACE) IMG_SID hDevCookie; #else IMG_HANDLE hDevCookie; #endif PVRSRV_HWREG sHWReg; IMG_UINT32 ui32Flags; IMG_CHAR szRegRegion[32]; }PVRSRV_BRIDGE_IN_PDUMP_DUMPREG; typedef struct PVRSRV_BRIDGE_IN_PDUMP_REGPOL_TAG { IMG_UINT32 ui32BridgeFlags; #if defined (SUPPORT_SID_INTERFACE) IMG_SID hDevCookie; #else IMG_HANDLE hDevCookie; #endif PVRSRV_HWREG sHWReg; IMG_UINT32 ui32Mask; IMG_UINT32 ui32Flags; IMG_CHAR szRegRegion[32]; }PVRSRV_BRIDGE_IN_PDUMP_REGPOL; typedef struct PVRSRV_BRIDGE_IN_PDUMP_DUMPPDREG_TAG { IMG_UINT32 ui32BridgeFlags; PVRSRV_HWREG sHWReg; IMG_UINT32 ui32Flags; }PVRSRV_BRIDGE_IN_PDUMP_DUMPPDREG; typedef struct PVRSRV_BRIDGE_IN_PDUMP_MEMPAGES_TAG { IMG_UINT32 ui32BridgeFlags; #if defined (SUPPORT_SID_INTERFACE) IMG_SID hDevCookie; IMG_SID hKernelMemInfo; #else IMG_HANDLE hDevCookie; IMG_HANDLE hKernelMemInfo; #endif IMG_DEV_PHYADDR *pPages; IMG_UINT32 ui32NumPages; IMG_DEV_VIRTADDR sDevVAddr; IMG_UINT32 ui32Start; IMG_UINT32 ui32Length; IMG_UINT32 ui32Flags; }PVRSRV_BRIDGE_IN_PDUMP_MEMPAGES; typedef struct PVRSRV_BRIDGE_IN_PDUMP_COMMENT_TAG { IMG_UINT32 ui32BridgeFlags; IMG_CHAR szComment[PVRSRV_PDUMP_MAX_COMMENT_SIZE]; IMG_UINT32 ui32Flags; }PVRSRV_BRIDGE_IN_PDUMP_COMMENT; typedef struct PVRSRV_BRIDGE_IN_PDUMP_SETFRAME_TAG { IMG_UINT32 ui32BridgeFlags; IMG_UINT32 ui32Frame; }PVRSRV_BRIDGE_IN_PDUMP_SETFRAME; typedef struct PVRSRV_BRIDGE_IN_PDUMP_BITMAP_TAG { IMG_UINT32 ui32BridgeFlags; #if defined (SUPPORT_SID_INTERFACE) IMG_SID hDevCookie; #else IMG_HANDLE hDevCookie; #endif IMG_CHAR szFileName[PVRSRV_PDUMP_MAX_FILENAME_SIZE]; IMG_UINT32 ui32FileOffset; IMG_UINT32 ui32Width; IMG_UINT32 ui32Height; IMG_UINT32 ui32StrideInBytes; IMG_DEV_VIRTADDR sDevBaseAddr; #if defined (SUPPORT_SID_INTERFACE) IMG_SID hDevMemContext; #else IMG_HANDLE hDevMemContext; #endif IMG_UINT32 ui32Size; PDUMP_PIXEL_FORMAT ePixelFormat; PDUMP_MEM_FORMAT eMemFormat; IMG_UINT32 ui32Flags; }PVRSRV_BRIDGE_IN_PDUMP_BITMAP; typedef struct PVRSRV_BRIDGE_IN_PDUMP_READREG_TAG { IMG_UINT32 ui32BridgeFlags; #if defined (SUPPORT_SID_INTERFACE) IMG_SID hDevCookie; #else IMG_HANDLE hDevCookie; #endif IMG_CHAR szFileName[PVRSRV_PDUMP_MAX_FILENAME_SIZE]; IMG_UINT32 ui32FileOffset; IMG_UINT32 ui32Address; IMG_UINT32 ui32Size; IMG_UINT32 ui32Flags; IMG_CHAR szRegRegion[32]; }PVRSRV_BRIDGE_IN_PDUMP_READREG; typedef struct PVRSRV_BRIDGE_IN_PDUMP_DRIVERINFO_TAG { IMG_UINT32 ui32BridgeFlags; IMG_CHAR szString[PVRSRV_PDUMP_MAX_COMMENT_SIZE]; IMG_BOOL bContinuous; }PVRSRV_BRIDGE_IN_PDUMP_DRIVERINFO; typedef struct PVRSRV_BRIDGE_IN_PDUMP_DUMPPDDEVPADDR_TAG { IMG_UINT32 ui32BridgeFlags; #if defined (SUPPORT_SID_INTERFACE) IMG_SID hKernelMemInfo; #else IMG_HANDLE hKernelMemInfo; #endif IMG_UINT32 ui32Offset; IMG_DEV_PHYADDR sPDDevPAddr; }PVRSRV_BRIDGE_IN_PDUMP_DUMPPDDEVPADDR; typedef struct PVRSRV_BRIDGE_PDUM_IN_CYCLE_COUNT_REG_READ_TAG { IMG_UINT32 ui32BridgeFlags; #if defined (SUPPORT_SID_INTERFACE) IMG_SID hDevCookie; #else IMG_HANDLE hDevCookie; #endif IMG_UINT32 ui32RegOffset; IMG_BOOL bLastFrame; }PVRSRV_BRIDGE_IN_PDUMP_CYCLE_COUNT_REG_READ; typedef struct PVRSRV_BRIDGE_OUT_ENUMDEVICE_TAG { PVRSRV_ERROR eError; IMG_UINT32 ui32NumDevices; PVRSRV_DEVICE_IDENTIFIER asDeviceIdentifier[PVRSRV_MAX_DEVICES]; }PVRSRV_BRIDGE_OUT_ENUMDEVICE; typedef struct PVRSRV_BRIDGE_OUT_ACQUIRE_DEVICEINFO_TAG { PVRSRV_ERROR eError; #if defined (SUPPORT_SID_INTERFACE) IMG_SID hDevCookie; #else IMG_HANDLE hDevCookie; #endif } PVRSRV_BRIDGE_OUT_ACQUIRE_DEVICEINFO; typedef struct PVRSRV_BRIDGE_OUT_ENUMCLASS_TAG { PVRSRV_ERROR eError; IMG_UINT32 ui32NumDevices; IMG_UINT32 ui32DevID[PVRSRV_MAX_DEVICES]; }PVRSRV_BRIDGE_OUT_ENUMCLASS; typedef struct PVRSRV_BRIDGE_IN_OPEN_DISPCLASS_DEVICE_TAG { IMG_UINT32 ui32BridgeFlags; IMG_UINT32 ui32DeviceID; #if defined (SUPPORT_SID_INTERFACE) IMG_SID hDevCookie; #else IMG_HANDLE hDevCookie; #endif }PVRSRV_BRIDGE_IN_OPEN_DISPCLASS_DEVICE; typedef struct PVRSRV_BRIDGE_OUT_OPEN_DISPCLASS_DEVICE_TAG { PVRSRV_ERROR eError; #if defined (SUPPORT_SID_INTERFACE) IMG_SID hDeviceKM; #else IMG_HANDLE hDeviceKM; #endif }PVRSRV_BRIDGE_OUT_OPEN_DISPCLASS_DEVICE; typedef struct PVRSRV_BRIDGE_IN_WRAP_EXT_MEMORY_TAG { IMG_UINT32 ui32BridgeFlags; #if defined (SUPPORT_SID_INTERFACE) IMG_SID hDevCookie; IMG_SID hDevMemContext; #else IMG_HANDLE hDevCookie; IMG_HANDLE hDevMemContext; #endif IMG_VOID *pvLinAddr; IMG_SIZE_T ui32ByteSize; IMG_SIZE_T ui32PageOffset; IMG_BOOL bPhysContig; IMG_UINT32 ui32NumPageTableEntries; IMG_SYS_PHYADDR *psSysPAddr; IMG_UINT32 ui32Flags; }PVRSRV_BRIDGE_IN_WRAP_EXT_MEMORY; typedef struct PVRSRV_BRIDGE_OUT_WRAP_EXT_MEMORY_TAG { PVRSRV_ERROR eError; PVRSRV_CLIENT_MEM_INFO sClientMemInfo; PVRSRV_CLIENT_SYNC_INFO sClientSyncInfo; }PVRSRV_BRIDGE_OUT_WRAP_EXT_MEMORY; typedef struct PVRSRV_BRIDGE_IN_UNWRAP_EXT_MEMORY_TAG { IMG_UINT32 ui32BridgeFlags; #if defined (SUPPORT_SID_INTERFACE) IMG_SID hKernelMemInfo; #else IMG_HANDLE hKernelMemInfo; #endif PVRSRV_CLIENT_MEM_INFO sClientMemInfo; PVRSRV_CLIENT_SYNC_INFO sClientSyncInfo; }PVRSRV_BRIDGE_IN_UNWRAP_EXT_MEMORY; #define PVRSRV_MAX_DC_DISPLAY_FORMATS 10 #define PVRSRV_MAX_DC_DISPLAY_DIMENSIONS 10 #define PVRSRV_MAX_DC_SWAPCHAIN_BUFFERS 4 #define PVRSRV_MAX_DC_CLIP_RECTS 32 typedef struct PVRSRV_BRIDGE_OUT_ENUM_DISPCLASS_FORMATS_TAG { PVRSRV_ERROR eError; IMG_UINT32 ui32Count; DISPLAY_FORMAT asFormat[PVRSRV_MAX_DC_DISPLAY_FORMATS]; }PVRSRV_BRIDGE_OUT_ENUM_DISPCLASS_FORMATS; typedef struct PVRSRV_BRIDGE_IN_ENUM_DISPCLASS_DIMS_TAG { IMG_UINT32 ui32BridgeFlags; #if defined (SUPPORT_SID_INTERFACE) IMG_SID hDeviceKM; #else IMG_HANDLE hDeviceKM; #endif DISPLAY_FORMAT sFormat; }PVRSRV_BRIDGE_IN_ENUM_DISPCLASS_DIMS; typedef struct PVRSRV_BRIDGE_OUT_ENUM_DISPCLASS_DIMS_TAG { PVRSRV_ERROR eError; IMG_UINT32 ui32Count; DISPLAY_DIMS asDim[PVRSRV_MAX_DC_DISPLAY_DIMENSIONS]; }PVRSRV_BRIDGE_OUT_ENUM_DISPCLASS_DIMS; typedef struct PVRSRV_BRIDGE_OUT_GET_DISPCLASS_INFO_TAG { PVRSRV_ERROR eError; DISPLAY_INFO sDisplayInfo; }PVRSRV_BRIDGE_OUT_GET_DISPCLASS_INFO; typedef struct PVRSRV_BRIDGE_OUT_GET_DISPCLASS_SYSBUFFER_TAG { PVRSRV_ERROR eError; #if defined (SUPPORT_SID_INTERFACE) IMG_SID hBuffer; #else IMG_HANDLE hBuffer; #endif }PVRSRV_BRIDGE_OUT_GET_DISPCLASS_SYSBUFFER; typedef struct PVRSRV_BRIDGE_IN_CREATE_DISPCLASS_SWAPCHAIN_TAG { IMG_UINT32 ui32BridgeFlags; #if defined (SUPPORT_SID_INTERFACE) IMG_SID hDeviceKM; #else IMG_HANDLE hDeviceKM; #endif IMG_UINT32 ui32Flags; DISPLAY_SURF_ATTRIBUTES sDstSurfAttrib; DISPLAY_SURF_ATTRIBUTES sSrcSurfAttrib; IMG_UINT32 ui32BufferCount; IMG_UINT32 ui32OEMFlags; IMG_UINT32 ui32SwapChainID; } PVRSRV_BRIDGE_IN_CREATE_DISPCLASS_SWAPCHAIN; typedef struct PVRSRV_BRIDGE_OUT_CREATE_DISPCLASS_SWAPCHAIN_TAG { PVRSRV_ERROR eError; #if defined (SUPPORT_SID_INTERFACE) IMG_SID hSwapChain; #else IMG_HANDLE hSwapChain; #endif IMG_UINT32 ui32SwapChainID; } PVRSRV_BRIDGE_OUT_CREATE_DISPCLASS_SWAPCHAIN; typedef struct PVRSRV_BRIDGE_IN_DESTROY_DISPCLASS_SWAPCHAIN_TAG { IMG_UINT32 ui32BridgeFlags; #if defined (SUPPORT_SID_INTERFACE) IMG_SID hDeviceKM; IMG_SID hSwapChain; #else IMG_HANDLE hDeviceKM; IMG_HANDLE hSwapChain; #endif } PVRSRV_BRIDGE_IN_DESTROY_DISPCLASS_SWAPCHAIN; typedef struct PVRSRV_BRIDGE_IN_SET_DISPCLASS_RECT_TAG { IMG_UINT32 ui32BridgeFlags; #if defined (SUPPORT_SID_INTERFACE) IMG_SID hDeviceKM; IMG_SID hSwapChain; #else IMG_HANDLE hDeviceKM; IMG_HANDLE hSwapChain; #endif IMG_RECT sRect; } PVRSRV_BRIDGE_IN_SET_DISPCLASS_RECT; typedef struct PVRSRV_BRIDGE_IN_SET_DISPCLASS_COLOURKEY_TAG { IMG_UINT32 ui32BridgeFlags; #if defined (SUPPORT_SID_INTERFACE) IMG_SID hDeviceKM; IMG_SID hSwapChain; #else IMG_HANDLE hDeviceKM; IMG_HANDLE hSwapChain; #endif IMG_UINT32 ui32CKColour; } PVRSRV_BRIDGE_IN_SET_DISPCLASS_COLOURKEY; typedef struct PVRSRV_BRIDGE_IN_GET_DISPCLASS_BUFFERS_TAG { IMG_UINT32 ui32BridgeFlags; #if defined (SUPPORT_SID_INTERFACE) IMG_SID hDeviceKM; IMG_SID hSwapChain; #else IMG_HANDLE hDeviceKM; IMG_HANDLE hSwapChain; #endif } PVRSRV_BRIDGE_IN_GET_DISPCLASS_BUFFERS; typedef struct PVRSRV_BRIDGE_OUT_GET_DISPCLASS_BUFFERS_TAG { PVRSRV_ERROR eError; IMG_UINT32 ui32BufferCount; #if defined (SUPPORT_SID_INTERFACE) IMG_SID ahBuffer[PVRSRV_MAX_DC_SWAPCHAIN_BUFFERS]; #else IMG_HANDLE ahBuffer[PVRSRV_MAX_DC_SWAPCHAIN_BUFFERS]; #endif IMG_SYS_PHYADDR asPhyAddr[PVRSRV_MAX_DC_SWAPCHAIN_BUFFERS]; } PVRSRV_BRIDGE_OUT_GET_DISPCLASS_BUFFERS; typedef struct PVRSRV_BRIDGE_IN_SWAP_DISPCLASS_TO_BUFFER_TAG { IMG_UINT32 ui32BridgeFlags; #if defined (SUPPORT_SID_INTERFACE) IMG_SID hDeviceKM; IMG_SID hBuffer; #else IMG_HANDLE hDeviceKM; IMG_HANDLE hBuffer; #endif IMG_UINT32 ui32SwapInterval; #if defined (SUPPORT_SID_INTERFACE) IMG_SID hPrivateTag; #else IMG_HANDLE hPrivateTag; #endif IMG_UINT32 ui32ClipRectCount; IMG_RECT sClipRect[PVRSRV_MAX_DC_CLIP_RECTS]; } PVRSRV_BRIDGE_IN_SWAP_DISPCLASS_TO_BUFFER; typedef struct PVRSRV_BRIDGE_IN_SWAP_DISPCLASS_TO_BUFFER2_TAG { IMG_UINT32 ui32BridgeFlags; #if defined (SUPPORT_SID_INTERFACE) IMG_SID hDeviceKM; IMG_SID hSwapChain; #else IMG_HANDLE hDeviceKM; IMG_HANDLE hSwapChain; #endif IMG_UINT32 ui32SwapInterval; IMG_UINT32 ui32NumMemInfos; PVRSRV_KERNEL_MEM_INFO **ppsKernelMemInfos; PVRSRV_KERNEL_SYNC_INFO **ppsKernelSyncInfos; IMG_UINT32 ui32PrivDataLength; IMG_PVOID pvPrivData; } PVRSRV_BRIDGE_IN_SWAP_DISPCLASS_TO_BUFFER2; typedef struct PVRSRV_BRIDGE_IN_SWAP_DISPCLASS_TO_SYSTEM_TAG { IMG_UINT32 ui32BridgeFlags; #if defined (SUPPORT_SID_INTERFACE) IMG_SID hDeviceKM; IMG_SID hSwapChain; #else IMG_HANDLE hDeviceKM; IMG_HANDLE hSwapChain; #endif } PVRSRV_BRIDGE_IN_SWAP_DISPCLASS_TO_SYSTEM; typedef struct PVRSRV_BRIDGE_IN_OPEN_BUFFERCLASS_DEVICE_TAG { IMG_UINT32 ui32BridgeFlags; IMG_UINT32 ui32DeviceID; #if defined (SUPPORT_SID_INTERFACE) IMG_SID hDevCookie; #else IMG_HANDLE hDevCookie; #endif } PVRSRV_BRIDGE_IN_OPEN_BUFFERCLASS_DEVICE; typedef struct PVRSRV_BRIDGE_OUT_OPEN_BUFFERCLASS_DEVICE_TAG { PVRSRV_ERROR eError; #if defined (SUPPORT_SID_INTERFACE) IMG_SID hDeviceKM; #else IMG_HANDLE hDeviceKM; #endif } PVRSRV_BRIDGE_OUT_OPEN_BUFFERCLASS_DEVICE; typedef struct PVRSRV_BRIDGE_OUT_GET_BUFFERCLASS_INFO_TAG { PVRSRV_ERROR eError; BUFFER_INFO sBufferInfo; } PVRSRV_BRIDGE_OUT_GET_BUFFERCLASS_INFO; typedef struct PVRSRV_BRIDGE_IN_GET_BUFFERCLASS_BUFFER_TAG { IMG_UINT32 ui32BridgeFlags; #if defined (SUPPORT_SID_INTERFACE) IMG_SID hDeviceKM; #else IMG_HANDLE hDeviceKM; #endif IMG_UINT32 ui32BufferIndex; } PVRSRV_BRIDGE_IN_GET_BUFFERCLASS_BUFFER; typedef struct PVRSRV_BRIDGE_OUT_GET_BUFFERCLASS_BUFFER_TAG { PVRSRV_ERROR eError; #if defined (SUPPORT_SID_INTERFACE) IMG_SID hBuffer; #else IMG_HANDLE hBuffer; #endif } PVRSRV_BRIDGE_OUT_GET_BUFFERCLASS_BUFFER; typedef struct PVRSRV_BRIDGE_OUT_GET_DEVMEM_HEAPINFO_TAG { PVRSRV_ERROR eError; IMG_UINT32 ui32ClientHeapCount; PVRSRV_HEAP_INFO sHeapInfo[PVRSRV_MAX_CLIENT_HEAPS]; } PVRSRV_BRIDGE_OUT_GET_DEVMEM_HEAPINFO; typedef struct PVRSRV_BRIDGE_OUT_CREATE_DEVMEMCONTEXT_TAG { PVRSRV_ERROR eError; #if defined (SUPPORT_SID_INTERFACE) IMG_SID hDevMemContext; #else IMG_HANDLE hDevMemContext; #endif IMG_UINT32 ui32ClientHeapCount; PVRSRV_HEAP_INFO sHeapInfo[PVRSRV_MAX_CLIENT_HEAPS]; } PVRSRV_BRIDGE_OUT_CREATE_DEVMEMCONTEXT; typedef struct PVRSRV_BRIDGE_OUT_CREATE_DEVMEMHEAP_TAG { PVRSRV_ERROR eError; #if defined (SUPPORT_SID_INTERFACE) IMG_SID hDevMemHeap; #else IMG_HANDLE hDevMemHeap; #endif } PVRSRV_BRIDGE_OUT_CREATE_DEVMEMHEAP; typedef struct PVRSRV_BRIDGE_OUT_ALLOCDEVICEMEM_TAG { PVRSRV_ERROR eError; #if defined (SUPPORT_SID_INTERFACE) IMG_SID hKernelMemInfo; #else PVRSRV_KERNEL_MEM_INFO *psKernelMemInfo; #endif PVRSRV_CLIENT_MEM_INFO sClientMemInfo; PVRSRV_CLIENT_SYNC_INFO sClientSyncInfo; } PVRSRV_BRIDGE_OUT_ALLOCDEVICEMEM; typedef struct PVRSRV_BRIDGE_OUT_EXPORTDEVICEMEM_TAG { PVRSRV_ERROR eError; #if defined (SUPPORT_SID_INTERFACE) IMG_SID hMemInfo; #else IMG_HANDLE hMemInfo; #endif #if defined(SUPPORT_MEMINFO_IDS) IMG_UINT64 ui64Stamp; #endif } PVRSRV_BRIDGE_OUT_EXPORTDEVICEMEM; typedef struct PVRSRV_BRIDGE_OUT_MAPMEMINFOTOUSER_TAG { PVRSRV_ERROR eError; IMG_PVOID pvLinAddr; #if defined (SUPPORT_SID_INTERFACE) IMG_SID hMappingInfo; #else IMG_HANDLE hMappingInfo; #endif }PVRSRV_BRIDGE_OUT_MAPMEMINFOTOUSER; typedef struct PVRSRV_BRIDGE_OUT_GETFREEDEVICEMEM_TAG { PVRSRV_ERROR eError; IMG_SIZE_T ui32Total; IMG_SIZE_T ui32Free; IMG_SIZE_T ui32LargestBlock; } PVRSRV_BRIDGE_OUT_GETFREEDEVICEMEM; #include "pvrmmap.h" typedef struct PVRSRV_BRIDGE_OUT_MHANDLE_TO_MMAP_DATA_TAG { PVRSRV_ERROR eError; IMG_UINT32 ui32MMapOffset; IMG_UINT32 ui32ByteOffset; IMG_UINT32 ui32RealByteSize; IMG_UINT32 ui32UserVAddr; } PVRSRV_BRIDGE_OUT_MHANDLE_TO_MMAP_DATA; typedef struct PVRSRV_BRIDGE_OUT_RELEASE_MMAP_DATA_TAG { PVRSRV_ERROR eError; IMG_BOOL bMUnmap; IMG_UINT32 ui32UserVAddr; IMG_UINT32 ui32RealByteSize; } PVRSRV_BRIDGE_OUT_RELEASE_MMAP_DATA; typedef struct PVRSRV_BRIDGE_IN_GET_MISC_INFO_TAG { IMG_UINT32 ui32BridgeFlags; PVRSRV_MISC_INFO sMiscInfo; }PVRSRV_BRIDGE_IN_GET_MISC_INFO; typedef struct PVRSRV_BRIDGE_OUT_GET_MISC_INFO_TAG { PVRSRV_ERROR eError; PVRSRV_MISC_INFO sMiscInfo; }PVRSRV_BRIDGE_OUT_GET_MISC_INFO; typedef struct PVRSRV_BRIDGE_IN_RELEASE_MISC_INFO_TAG { IMG_UINT32 ui32BridgeFlags; PVRSRV_MISC_INFO sMiscInfo; }PVRSRV_BRIDGE_IN_RELEASE_MISC_INFO; typedef struct PVRSRV_BRIDGE_OUT_RELEASE_MISC_INFO_TAG { PVRSRV_ERROR eError; PVRSRV_MISC_INFO sMiscInfo; }PVRSRV_BRIDGE_OUT_RELEASE_MISC_INFO; typedef struct PVRSRV_BRIDGE_OUT_PDUMP_ISCAPTURING_TAG { PVRSRV_ERROR eError; IMG_BOOL bIsCapturing; } PVRSRV_BRIDGE_OUT_PDUMP_ISCAPTURING; typedef struct PVRSRV_BRIDGE_IN_GET_FB_STATS_TAG { IMG_UINT32 ui32BridgeFlags; IMG_SIZE_T ui32Total; IMG_SIZE_T ui32Available; } PVRSRV_BRIDGE_IN_GET_FB_STATS; typedef struct PVRSRV_BRIDGE_IN_MAPPHYSTOUSERSPACE_TAG { IMG_UINT32 ui32BridgeFlags; #if defined (SUPPORT_SID_INTERFACE) IMG_SID hDevCookie; #else IMG_HANDLE hDevCookie; #endif IMG_SYS_PHYADDR sSysPhysAddr; IMG_UINT32 uiSizeInBytes; } PVRSRV_BRIDGE_IN_MAPPHYSTOUSERSPACE; typedef struct PVRSRV_BRIDGE_OUT_MAPPHYSTOUSERSPACE_TAG { IMG_PVOID pvUserAddr; IMG_UINT32 uiActualSize; IMG_PVOID pvProcess; } PVRSRV_BRIDGE_OUT_MAPPHYSTOUSERSPACE; typedef struct PVRSRV_BRIDGE_IN_UNMAPPHYSTOUSERSPACE_TAG { IMG_UINT32 ui32BridgeFlags; #if defined (SUPPORT_SID_INTERFACE) IMG_SID hDevCookie; #else IMG_HANDLE hDevCookie; #endif IMG_PVOID pvUserAddr; IMG_PVOID pvProcess; } PVRSRV_BRIDGE_IN_UNMAPPHYSTOUSERSPACE; typedef struct PVRSRV_BRIDGE_OUT_GETPHYSTOUSERSPACEMAP_TAG { IMG_PVOID *ppvTbl; IMG_UINT32 uiTblSize; } PVRSRV_BRIDGE_OUT_GETPHYSTOUSERSPACEMAP; #if !defined (SUPPORT_SID_INTERFACE) typedef struct PVRSRV_BRIDGE_IN_REGISTER_SIM_PROCESS_TAG { IMG_UINT32 ui32BridgeFlags; IMG_HANDLE hDevCookie; IMG_PVOID pvProcess; } PVRSRV_BRIDGE_IN_REGISTER_SIM_PROCESS; typedef struct PVRSRV_BRIDGE_OUT_REGISTER_SIM_PROCESS_TAG { IMG_SYS_PHYADDR sRegsPhysBase; IMG_VOID *pvRegsBase; IMG_PVOID pvProcess; IMG_UINT32 ulNoOfEntries; IMG_PVOID pvTblLinAddr; } PVRSRV_BRIDGE_OUT_REGISTER_SIM_PROCESS; typedef struct PVRSRV_BRIDGE_IN_UNREGISTER_SIM_PROCESS_TAG { IMG_UINT32 ui32BridgeFlags; IMG_HANDLE hDevCookie; IMG_PVOID pvProcess; IMG_VOID *pvRegsBase; } PVRSRV_BRIDGE_IN_UNREGISTER_SIM_PROCESS; typedef struct PVRSRV_BRIDGE_IN_PROCESS_SIMISR_EVENT_TAG { IMG_UINT32 ui32BridgeFlags; IMG_HANDLE hDevCookie; IMG_UINT32 ui32StatusAndMask; PVRSRV_ERROR eError; } PVRSRV_BRIDGE_IN_PROCESS_SIMISR_EVENT; #endif typedef struct PVRSRV_BRIDGE_IN_INITSRV_DISCONNECT_TAG { IMG_UINT32 ui32BridgeFlags; IMG_BOOL bInitSuccesful; } PVRSRV_BRIDGE_IN_INITSRV_DISCONNECT; typedef struct PVRSRV_BRIDGE_IN_ALLOC_SHARED_SYS_MEM_TAG { IMG_UINT32 ui32BridgeFlags; IMG_UINT32 ui32Flags; IMG_SIZE_T ui32Size; }PVRSRV_BRIDGE_IN_ALLOC_SHARED_SYS_MEM; typedef struct PVRSRV_BRIDGE_OUT_ALLOC_SHARED_SYS_MEM_TAG { PVRSRV_ERROR eError; #if defined (SUPPORT_SID_INTERFACE) #else PVRSRV_KERNEL_MEM_INFO *psKernelMemInfo; #endif PVRSRV_CLIENT_MEM_INFO sClientMemInfo; }PVRSRV_BRIDGE_OUT_ALLOC_SHARED_SYS_MEM; typedef struct PVRSRV_BRIDGE_IN_FREE_SHARED_SYS_MEM_TAG { #if defined (SUPPORT_SID_INTERFACE) IMG_SID hKernelMemInfo; IMG_SID hMappingInfo; #else IMG_UINT32 ui32BridgeFlags; PVRSRV_KERNEL_MEM_INFO *psKernelMemInfo; #endif PVRSRV_CLIENT_MEM_INFO sClientMemInfo; }PVRSRV_BRIDGE_IN_FREE_SHARED_SYS_MEM; typedef struct PVRSRV_BRIDGE_OUT_FREE_SHARED_SYS_MEM_TAG { PVRSRV_ERROR eError; }PVRSRV_BRIDGE_OUT_FREE_SHARED_SYS_MEM; typedef struct PVRSRV_BRIDGE_IN_MAP_MEMINFO_MEM_TAG { IMG_UINT32 ui32BridgeFlags; #if defined (SUPPORT_SID_INTERFACE) IMG_SID hKernelMemInfo; #else IMG_HANDLE hKernelMemInfo; #endif }PVRSRV_BRIDGE_IN_MAP_MEMINFO_MEM; typedef struct PVRSRV_BRIDGE_OUT_MAP_MEMINFO_MEM_TAG { PVRSRV_CLIENT_MEM_INFO sClientMemInfo; PVRSRV_CLIENT_SYNC_INFO sClientSyncInfo; #if defined (SUPPORT_SID_INTERFACE) IMG_SID hKernelMemInfo; #else PVRSRV_KERNEL_MEM_INFO *psKernelMemInfo; #endif PVRSRV_ERROR eError; }PVRSRV_BRIDGE_OUT_MAP_MEMINFO_MEM; typedef struct PVRSRV_BRIDGE_IN_UNMAP_MEMINFO_MEM_TAG { IMG_UINT32 ui32BridgeFlags; PVRSRV_CLIENT_MEM_INFO sClientMemInfo; }PVRSRV_BRIDGE_IN_UNMAP_MEMINFO_MEM; typedef struct PVRSRV_BRIDGE_OUT_UNMAP_MEMINFO_MEM_TAG { PVRSRV_ERROR eError; }PVRSRV_BRIDGE_OUT_UNMAP_MEMINFO_MEM; typedef struct PVRSRV_BRIDGE_IN_EVENT_OBJECT_WAI_TAG { IMG_UINT32 ui32BridgeFlags; #if defined (SUPPORT_SID_INTERFACE) IMG_SID hOSEventKM; #else IMG_HANDLE hOSEventKM; #endif } PVRSRV_BRIDGE_IN_EVENT_OBJECT_WAIT; typedef struct PVRSRV_BRIDGE_IN_EVENT_OBJECT_OPEN_TAG { PVRSRV_EVENTOBJECT sEventObject; } PVRSRV_BRIDGE_IN_EVENT_OBJECT_OPEN; typedef struct PVRSRV_BRIDGE_OUT_EVENT_OBJECT_OPEN_TAG { #if defined (SUPPORT_SID_INTERFACE) IMG_UINT32 hOSEvent; #else IMG_HANDLE hOSEvent; #endif PVRSRV_ERROR eError; } PVRSRV_BRIDGE_OUT_EVENT_OBJECT_OPEN; typedef struct PVRSRV_BRIDGE_IN_EVENT_OBJECT_CLOSE_TAG { PVRSRV_EVENTOBJECT sEventObject; #if defined (SUPPORT_SID_INTERFACE) IMG_SID hOSEventKM; #else IMG_HANDLE hOSEventKM; #endif } PVRSRV_BRIDGE_IN_EVENT_OBJECT_CLOSE; typedef struct PVRSRV_BRIDGE_OUT_CREATE_SYNC_INFO_MOD_OBJ_TAG { PVRSRV_ERROR eError; #if defined (SUPPORT_SID_INTERFACE) IMG_SID hKernelSyncInfoModObj; #else IMG_HANDLE hKernelSyncInfoModObj; #endif } PVRSRV_BRIDGE_OUT_CREATE_SYNC_INFO_MOD_OBJ; typedef struct PVRSRV_BRIDGE_IN_DESTROY_SYNC_INFO_MOD_OBJ { IMG_UINT32 ui32BridgeFlags; #if defined (SUPPORT_SID_INTERFACE) IMG_SID hKernelSyncInfoModObj; #else IMG_HANDLE hKernelSyncInfoModObj; #endif } PVRSRV_BRIDGE_IN_DESTROY_SYNC_INFO_MOD_OBJ; typedef struct PVRSRV_BRIDGE_IN_MODIFY_PENDING_SYNC_OPS_TAG { IMG_UINT32 ui32BridgeFlags; #if defined (SUPPORT_SID_INTERFACE) IMG_SID hKernelSyncInfoModObj; IMG_SID hKernelSyncInfo; #else IMG_HANDLE hKernelSyncInfoModObj; IMG_HANDLE hKernelSyncInfo; #endif IMG_UINT32 ui32ModifyFlags; } PVRSRV_BRIDGE_IN_MODIFY_PENDING_SYNC_OPS; typedef struct PVRSRV_BRIDGE_IN_MODIFY_COMPLETE_SYNC_OPS_TAG { IMG_UINT32 ui32BridgeFlags; #if defined (SUPPORT_SID_INTERFACE) IMG_SID hKernelSyncInfoModObj; #else IMG_HANDLE hKernelSyncInfoModObj; #endif } PVRSRV_BRIDGE_IN_MODIFY_COMPLETE_SYNC_OPS; typedef struct PVRSRV_BRIDGE_OUT_MODIFY_PENDING_SYNC_OPS_TAG { PVRSRV_ERROR eError; IMG_UINT32 ui32ReadOpsPending; IMG_UINT32 ui32WriteOpsPending; IMG_UINT32 ui32ReadOps2Pending; } PVRSRV_BRIDGE_OUT_MODIFY_PENDING_SYNC_OPS; typedef struct PVRSRV_BRIDGE_IN_SYNC_OPS_TAKE_TOKEN_TAG { IMG_UINT32 ui32BridgeFlags; #if defined (SUPPORT_SID_INTERFACE) IMG_SID hKernelSyncInfo; #else IMG_HANDLE hKernelSyncInfo; #endif } PVRSRV_BRIDGE_IN_SYNC_OPS_TAKE_TOKEN; typedef struct PVRSRV_BRIDGE_OUT_SYNC_OPS_TAKE_TOKEN_TAG { PVRSRV_ERROR eError; IMG_UINT32 ui32ReadOpsPending; IMG_UINT32 ui32WriteOpsPending; IMG_UINT32 ui32ReadOps2Pending; } PVRSRV_BRIDGE_OUT_SYNC_OPS_TAKE_TOKEN; typedef struct PVRSRV_BRIDGE_IN_SYNC_OPS_FLUSH_TO_TOKEN_TAG { IMG_UINT32 ui32BridgeFlags; #if defined (SUPPORT_SID_INTERFACE) IMG_SID hKernelSyncInfo; #else IMG_HANDLE hKernelSyncInfo; #endif IMG_UINT32 ui32ReadOpsPendingSnapshot; IMG_UINT32 ui32WriteOpsPendingSnapshot; IMG_UINT32 ui32ReadOps2PendingSnapshot; } PVRSRV_BRIDGE_IN_SYNC_OPS_FLUSH_TO_TOKEN; typedef struct PVRSRV_BRIDGE_IN_SYNC_OPS_FLUSH_TO_MOD_OBJ_TAG { IMG_UINT32 ui32BridgeFlags; #if defined (SUPPORT_SID_INTERFACE) IMG_SID hKernelSyncInfoModObj; #else IMG_HANDLE hKernelSyncInfoModObj; #endif } PVRSRV_BRIDGE_IN_SYNC_OPS_FLUSH_TO_MOD_OBJ; typedef struct PVRSRV_BRIDGE_IN_SYNC_OPS_FLUSH_TO_DELTA_TAG { IMG_UINT32 ui32BridgeFlags; #if defined (SUPPORT_SID_INTERFACE) IMG_SID hKernelSyncInfo; #else IMG_HANDLE hKernelSyncInfo; #endif IMG_UINT32 ui32Delta; } PVRSRV_BRIDGE_IN_SYNC_OPS_FLUSH_TO_DELTA; typedef struct PVRSRV_BRIDGE_IN_ALLOC_SYNC_INFO_TAG { IMG_UINT32 ui32BridgeFlags; #if defined (SUPPORT_SID_INTERFACE) IMG_SID hDevCookie; #else IMG_HANDLE hDevCookie; #endif } PVRSRV_BRIDGE_IN_ALLOC_SYNC_INFO; typedef struct PVRSRV_BRIDGE_OUT_ALLOC_SYNC_INFO_TAG { PVRSRV_ERROR eError; #if defined (SUPPORT_SID_INTERFACE) IMG_SID hKernelSyncInfo; #else IMG_HANDLE hKernelSyncInfo; #endif } PVRSRV_BRIDGE_OUT_ALLOC_SYNC_INFO; typedef struct PVRSRV_BRIDGE_IN_FREE_SYNC_INFO_TAG { IMG_UINT32 ui32BridgeFlags; #if defined (SUPPORT_SID_INTERFACE) IMG_SID hKernelSyncInfo; #else IMG_HANDLE hKernelSyncInfo; #endif } PVRSRV_BRIDGE_IN_FREE_SYNC_INFO; typedef struct PVRSRV_BRIDGE_IN_CHG_DEV_MEM_ATTRIBS_TAG { IMG_SID hKernelMemInfo; IMG_UINT32 ui32Attribs; } PVRSRV_BRIDGE_IN_CHG_DEV_MEM_ATTRIBS; #if defined (__cplusplus) } #endif #endif