blob: d3e5916a9dba6e2b0fbb0c16bddf707328f115dc [file] [log] [blame]
/**********************************************************************
*
* 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. <gpl-support@imgtec.com>
* 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 <linux/ioctl.h>
#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_SERVICES4_TMP_CMD_FIRST (PVRSRV_BRIDGE_SHAREDMEM_CMD_LAST+1)
#define PVRSRV_BRIDGE_GETMMU_PD_DEVPADDR PVRSRV_IOWR(PVRSRV_BRIDGE_SERVICES4_TMP_CMD_FIRST+0)
#define PVRSRV_BRIDGE_SERVICES4_TMP_CMD_LAST (PVRSRV_BRIDGE_SERVICES4_TMP_CMD_FIRST+0)
#define PVRSRV_BRIDGE_INITSRV_CMD_FIRST (PVRSRV_BRIDGE_SERVICES4_TMP_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_GETMMU_PD_DEVPADDR_TAG
{
IMG_UINT32 ui32BridgeFlags;
#if defined (SUPPORT_SID_INTERFACE)
IMG_SID hDevMemContext;
#else
IMG_HANDLE hDevMemContext;
#endif
}PVRSRV_BRIDGE_IN_GETMMU_PD_DEVPADDR;
typedef struct PVRSRV_BRIDGE_OUT_GETMMU_PD_DEVPADDR_TAG
{
IMG_DEV_PHYADDR sPDDevPAddr;
PVRSRV_ERROR eError;
}PVRSRV_BRIDGE_OUT_GETMMU_PD_DEVPADDR;
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