diff options
author | Ricardo Salveti de Araujo <ricardo.salveti@linaro.org> | 2012-07-18 00:30:31 -0300 |
---|---|---|
committer | Ricardo Salveti de Araujo <ricardo.salveti@linaro.org> | 2012-07-18 00:30:31 -0300 |
commit | 0f9b9d9e1f16d454b12921d3429eced6dc1095d4 (patch) | |
tree | 21eaffbd85393a9e53889bbd868a255c7f6c24fc /sgx/services4/include/pvr_bridge.h | |
parent | 50fa520ba5f68fa76173493c44715d4542007120 (diff) |
Imported Upstream version 1.9.0.4.1.1 (ARMHF)upstream/1.9.0.4.1.1
Signed-off-by: Ricardo Salveti de Araujo <ricardo.salveti@linaro.org>
Diffstat (limited to 'sgx/services4/include/pvr_bridge.h')
-rw-r--r-- | sgx/services4/include/pvr_bridge.h | 836 |
1 files changed, 652 insertions, 184 deletions
diff --git a/sgx/services4/include/pvr_bridge.h b/sgx/services4/include/pvr_bridge.h index 15b9181..1d2a0b2 100644 --- a/sgx/services4/include/pvr_bridge.h +++ b/sgx/services4/include/pvr_bridge.h @@ -1,28 +1,45 @@ -/********************************************************************** - * - * 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 - * - ******************************************************************************/ +/*************************************************************************/ /*! +@Title PVR Bridge Functionality +@Copyright Copyright (c) Imagination Technologies Ltd. All Rights Reserved +@Description Header for the PVR Bridge code +@License Dual MIT/GPLv2 + +The contents of this file are subject to the MIT license as set out below. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +Alternatively, the contents of this file may be used under the terms of +the GNU General Public License Version 2 ("GPL") in which case the provisions +of GPL are applicable instead of those above. + +If you wish to allow use of your version of this file only under the terms of +GPL, and not to allow others to use your version of this file under the terms +of the MIT license, indicate your decision by deleting the provisions above +and replace them with the notice and other provisions required by GPL as set +out in the file called "GPL-COPYING" included in this distribution. If you do +not delete the provisions above, a recipient may use your version of this file +under the terms of either the MIT license or GPL. + +This License is also included in this distribution in the file called +"MIT-COPYING". + +EXCEPT AS OTHERWISE STATED IN A NEGOTIATED AGREEMENT: (A) THE SOFTWARE IS +PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING +BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR +PURPOSE AND NONINFRINGEMENT; AND (B) IN NO EVENT SHALL THE AUTHORS OR +COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +*/ /**************************************************************************/ #ifndef __PVR_BRIDGE_H__ #define __PVR_BRIDGE_H__ @@ -33,17 +50,22 @@ extern "C" { #include "servicesint.h" +/* + * Bridge Cmd Ids + */ + + #ifdef __linux__ #include <linux/ioctl.h> - + /*!< Nov 2006: according to ioctl-number.txt 'g' wasn't in use. */ #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 +#else /* __linux__ */ #if defined(__QNXNTO__) #define PVRSRV_IOC_GID (0x0UL) @@ -57,26 +79,31 @@ extern "C" { #define PVRSRV_IOWR(INDEX) (PVRSRV_IOC_GID + (INDEX)) #define PVRSRV_BRIDGE_BASE PVRSRV_IOC_GID -#endif +#endif /* __linux__ */ + +/* + * Note *REMEMBER* to update PVRSRV_BRIDGE_LAST_CMD (below) if you add any new + * bridge commands! + */ #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_ENUM_DEVICES PVRSRV_IOWR(PVRSRV_BRIDGE_CORE_CMD_FIRST+0) /*!< enumerate device bridge index */ +#define PVRSRV_BRIDGE_ACQUIRE_DEVICEINFO PVRSRV_IOWR(PVRSRV_BRIDGE_CORE_CMD_FIRST+1) /*!< acquire device data bridge index */ +#define PVRSRV_BRIDGE_RELEASE_DEVICEINFO PVRSRV_IOWR(PVRSRV_BRIDGE_CORE_CMD_FIRST+2) /*!< release device data bridge index */ +#define PVRSRV_BRIDGE_CREATE_DEVMEMCONTEXT PVRSRV_IOWR(PVRSRV_BRIDGE_CORE_CMD_FIRST+3) /*!< create device addressable memory context */ +#define PVRSRV_BRIDGE_DESTROY_DEVMEMCONTEXT PVRSRV_IOWR(PVRSRV_BRIDGE_CORE_CMD_FIRST+4) /*!< destroy device addressable memory context */ +#define PVRSRV_BRIDGE_GET_DEVMEM_HEAPINFO PVRSRV_IOWR(PVRSRV_BRIDGE_CORE_CMD_FIRST+5) /*!< get device memory heap info */ +#define PVRSRV_BRIDGE_ALLOC_DEVICEMEM PVRSRV_IOWR(PVRSRV_BRIDGE_CORE_CMD_FIRST+6) /*!< alloc device memory bridge index */ +#define PVRSRV_BRIDGE_FREE_DEVICEMEM PVRSRV_IOWR(PVRSRV_BRIDGE_CORE_CMD_FIRST+7) /*!< free device memory bridge index */ +#define PVRSRV_BRIDGE_GETFREE_DEVICEMEM PVRSRV_IOWR(PVRSRV_BRIDGE_CORE_CMD_FIRST+8) /*!< get free device memory bridge index */ +#define PVRSRV_BRIDGE_CREATE_COMMANDQUEUE PVRSRV_IOWR(PVRSRV_BRIDGE_CORE_CMD_FIRST+9) /*!< create Cmd Q bridge index */ +#define PVRSRV_BRIDGE_DESTROY_COMMANDQUEUE PVRSRV_IOWR(PVRSRV_BRIDGE_CORE_CMD_FIRST+10) /*!< destroy Cmd Q bridge index */ +#define PVRSRV_BRIDGE_MHANDLE_TO_MMAP_DATA PVRSRV_IOWR(PVRSRV_BRIDGE_CORE_CMD_FIRST+11) /*!< generate mmap data from a memory handle */ +#define PVRSRV_BRIDGE_CONNECT_SERVICES PVRSRV_IOWR(PVRSRV_BRIDGE_CORE_CMD_FIRST+12) /*!< services connect bridge index */ +#define PVRSRV_BRIDGE_DISCONNECT_SERVICES PVRSRV_IOWR(PVRSRV_BRIDGE_CORE_CMD_FIRST+13) /*!< services disconnect bridge index */ +#define PVRSRV_BRIDGE_WRAP_DEVICE_MEM PVRSRV_IOWR(PVRSRV_BRIDGE_CORE_CMD_FIRST+14) /*!< wrap device memory bridge index */ +#define PVRSRV_BRIDGE_GET_DEVICEMEMINFO PVRSRV_IOWR(PVRSRV_BRIDGE_CORE_CMD_FIRST+15) /*!< read the kernel meminfo record */ #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) @@ -95,71 +122,89 @@ extern "C" { #define PVRSRV_BRIDGE_REMAP_TO_DEV PVRSRV_IOWR(PVRSRV_BRIDGE_CORE_CMD_FIRST+31) #define PVRSRV_BRIDGE_UNMAP_FROM_DEV PVRSRV_IOWR(PVRSRV_BRIDGE_CORE_CMD_FIRST+32) #define PVRSRV_BRIDGE_IMPORT_GEM PVRSRV_IOWR(PVRSRV_BRIDGE_CORE_CMD_FIRST+33) -#define PVRSRV_BRIDGE_CORE_CMD_LAST (PVRSRV_BRIDGE_CORE_CMD_FIRST+33) +#if defined (SUPPORT_ION) +#define PVRSRV_BRIDGE_MAP_ION_HANDLE PVRSRV_IOWR(PVRSRV_BRIDGE_CORE_CMD_FIRST+34) +#define PVRSRV_BRIDGE_UNMAP_ION_HANDLE PVRSRV_IOWR(PVRSRV_BRIDGE_CORE_CMD_FIRST+35) +#define PVRSRV_BRIDGE_CORE_CMD_LAST (PVRSRV_BRIDGE_CORE_CMD_FIRST+36) +#else +#define PVRSRV_BRIDGE_CORE_CMD_LAST (PVRSRV_BRIDGE_CORE_CMD_FIRST+34) +#endif +/* SIM */ #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_PROCESS_SIMISR_EVENT PVRSRV_IOWR(PVRSRV_BRIDGE_SIM_CMD_FIRST+0) /*!< RTSIM pseudo ISR */ +#define PVRSRV_BRIDGE_REGISTER_SIM_PROCESS PVRSRV_IOWR(PVRSRV_BRIDGE_SIM_CMD_FIRST+1) /*!< Register RTSIM process thread */ +#define PVRSRV_BRIDGE_UNREGISTER_SIM_PROCESS PVRSRV_IOWR(PVRSRV_BRIDGE_SIM_CMD_FIRST+2) /*!< Unregister RTSIM process thread */ #define PVRSRV_BRIDGE_SIM_CMD_LAST (PVRSRV_BRIDGE_SIM_CMD_FIRST+2) +/* User Mapping */ #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_MAPPHYSTOUSERSPACE PVRSRV_IOWR(PVRSRV_BRIDGE_MAPPING_CMD_FIRST+0) /*!< map CPU phys to user space */ +#define PVRSRV_BRIDGE_UNMAPPHYSTOUSERSPACE PVRSRV_IOWR(PVRSRV_BRIDGE_MAPPING_CMD_FIRST+1) /*!< unmap CPU phys to user space */ +#define PVRSRV_BRIDGE_GETPHYSTOUSERSPACEMAP PVRSRV_IOWR(PVRSRV_BRIDGE_MAPPING_CMD_FIRST+2) /*!< get user copy of Phys to Lin loopup table */ #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_GET_FB_STATS PVRSRV_IOWR(PVRSRV_BRIDGE_STATS_CMD_FIRST+0) /*!< Get FB memory stats */ #define PVRSRV_BRIDGE_STATS_CMD_LAST (PVRSRV_BRIDGE_STATS_CMD_FIRST+0) +/* API to retrieve misc. info. from services */ #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_GET_MISC_INFO PVRSRV_IOWR(PVRSRV_BRIDGE_MISC_CMD_FIRST+0) /*!< misc. info. */ +#define PVRSRV_BRIDGE_RELEASE_MISC_INFO PVRSRV_IOWR(PVRSRV_BRIDGE_MISC_CMD_FIRST+1) /*!< misc. info. */ #define PVRSRV_BRIDGE_MISC_CMD_LAST (PVRSRV_BRIDGE_MISC_CMD_FIRST+1) +/* Overlay ioctls */ + #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_INIT_3D_OVL_BLT_RES PVRSRV_IOWR(PVRSRV_BRIDGE_OVERLAY_CMD_FIRST+0) /*!< 3D Overlay rotate blit init */ +#define PVRSRV_BRIDGE_DEINIT_3D_OVL_BLT_RES PVRSRV_IOWR(PVRSRV_BRIDGE_OVERLAY_CMD_FIRST+1) /*!< 3D Overlay rotate blit deinit */ #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 +/* PDUMP */ #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_INIT PVRSRV_IOWR(PVRSRV_BRIDGE_PDUMP_CMD_FIRST+0) /*!< pdump command structure */ +#define PVRSRV_BRIDGE_PDUMP_MEMPOL PVRSRV_IOWR(PVRSRV_BRIDGE_PDUMP_CMD_FIRST+1) /*!< pdump command structure */ +#define PVRSRV_BRIDGE_PDUMP_DUMPMEM PVRSRV_IOWR(PVRSRV_BRIDGE_PDUMP_CMD_FIRST+2) /*!< pdump command structure */ +#define PVRSRV_BRIDGE_PDUMP_REG PVRSRV_IOWR(PVRSRV_BRIDGE_PDUMP_CMD_FIRST+3) /*!< pdump command structure */ +#define PVRSRV_BRIDGE_PDUMP_REGPOL PVRSRV_IOWR(PVRSRV_BRIDGE_PDUMP_CMD_FIRST+4) /*!< pdump command structure */ +#define PVRSRV_BRIDGE_PDUMP_COMMENT PVRSRV_IOWR(PVRSRV_BRIDGE_PDUMP_CMD_FIRST+5) /*!< pdump command structure */ +#define PVRSRV_BRIDGE_PDUMP_SETFRAME PVRSRV_IOWR(PVRSRV_BRIDGE_PDUMP_CMD_FIRST+6) /*!< pdump command structure */ +#define PVRSRV_BRIDGE_PDUMP_ISCAPTURING PVRSRV_IOWR(PVRSRV_BRIDGE_PDUMP_CMD_FIRST+7) /*!< pdump command structure */ +#define PVRSRV_BRIDGE_PDUMP_DUMPBITMAP PVRSRV_IOWR(PVRSRV_BRIDGE_PDUMP_CMD_FIRST+8) /*!< pdump command structure */ +#define PVRSRV_BRIDGE_PDUMP_DUMPREADREG PVRSRV_IOWR(PVRSRV_BRIDGE_PDUMP_CMD_FIRST+9) /*!< pdump command structure */ +#define PVRSRV_BRIDGE_PDUMP_SYNCPOL PVRSRV_IOWR(PVRSRV_BRIDGE_PDUMP_CMD_FIRST+10) /*!< pdump command structure */ +#define PVRSRV_BRIDGE_PDUMP_DUMPSYNC PVRSRV_IOWR(PVRSRV_BRIDGE_PDUMP_CMD_FIRST+11) /*!< pdump command structure */ +#define PVRSRV_BRIDGE_PDUMP_MEMPAGES PVRSRV_IOWR(PVRSRV_BRIDGE_PDUMP_CMD_FIRST+12) /*!< pdump command structure */ +#define PVRSRV_BRIDGE_PDUMP_DRIVERINFO PVRSRV_IOWR(PVRSRV_BRIDGE_PDUMP_CMD_FIRST+13) /*!< pdump command structure */ +#define PVRSRV_BRIDGE_PDUMP_DUMPPDDEVPADDR PVRSRV_IOWR(PVRSRV_BRIDGE_PDUMP_CMD_FIRST+15) /*!< pdump command structure */ #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 +/* Note we are carefull here not to leave a large gap in the ioctl numbers. + * (Some ports may use these values to index into an array where large gaps can + * waste memory) */ #define PVRSRV_BRIDGE_PDUMP_CMD_LAST PVRSRV_BRIDGE_OVERLAY_CMD_LAST #endif +/* DisplayClass APIs */ #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_GET_OEMJTABLE PVRSRV_IOWR(PVRSRV_BRIDGE_OEM_CMD_FIRST+0) /*!< Get OEM Jtable */ #define PVRSRV_BRIDGE_OEM_CMD_LAST (PVRSRV_BRIDGE_OEM_CMD_FIRST+0) +/* device class enum */ #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) +/* display class API */ #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) @@ -175,9 +220,11 @@ extern "C" { #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_SYSTEM PVRSRV_IOWR(PVRSRV_BRIDGE_DISPCLASS_CMD_FIRST+14) -#define PVRSRV_BRIDGE_DISPCLASS_CMD_LAST (PVRSRV_BRIDGE_DISPCLASS_CMD_FIRST+14) +#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) +/* buffer class API */ #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) @@ -185,11 +232,13 @@ extern "C" { #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) +/* Wrap/Unwrap external memory */ #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) +/* Shared memory */ #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) @@ -197,17 +246,20 @@ extern "C" { #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) +/* Intialisation Service support */ #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) +/* Event Objects */ #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) +/* Sync ops */ #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) @@ -221,11 +273,22 @@ extern "C" { #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) +/* For sgx_bridge.h (msvdx_bridge.h should probably use these defines too) */ #define PVRSRV_BRIDGE_LAST_NON_DEVICE_CMD (PVRSRV_BRIDGE_SYNC_OPS_CMD_LAST+1) +/****************************************************************************** + * Bridge flags + *****************************************************************************/ #define PVRSRV_KERNEL_MODE_CLIENT 1 +/****************************************************************************** + * Generic bridge structures + *****************************************************************************/ + +/****************************************************************************** + * bridge return structure + *****************************************************************************/ typedef struct PVRSRV_BRIDGE_RETURN_TAG { PVRSRV_ERROR eError; @@ -234,48 +297,68 @@ typedef struct PVRSRV_BRIDGE_RETURN_TAG }PVRSRV_BRIDGE_RETURN; +/****************************************************************************** + * bridge packaging structure + *****************************************************************************/ typedef struct PVRSRV_BRIDGE_PACKAGE_TAG { - IMG_UINT32 ui32BridgeID; - IMG_UINT32 ui32Size; - IMG_VOID *pvParamIn; - IMG_UINT32 ui32InBufferSize; - IMG_VOID *pvParamOut; - IMG_UINT32 ui32OutBufferSize; + IMG_UINT32 ui32BridgeID; /*!< ioctl/drvesc index */ + IMG_UINT32 ui32Size; /*!< size of structure */ + IMG_VOID *pvParamIn; /*!< input data buffer */ + IMG_UINT32 ui32InBufferSize; /*!< size of input data buffer */ + IMG_VOID *pvParamOut; /*!< output data buffer */ + IMG_UINT32 ui32OutBufferSize; /*!< size of output data buffer */ #if defined (SUPPORT_SID_INTERFACE) - IMG_SID hKernelServices; + IMG_SID hKernelServices; /*!< kernel servcies handle */ #else - IMG_HANDLE hKernelServices; + IMG_HANDLE hKernelServices; /*!< kernel servcies handle */ #endif }PVRSRV_BRIDGE_PACKAGE; +/****************************************************************************** + * Input structures for IOCTL/DRVESC + *****************************************************************************/ + + +/****************************************************************************** + * 'bridge in' connect to services + *****************************************************************************/ typedef struct PVRSRV_BRIDGE_IN_CONNECT_SERVICES_TAG { - IMG_UINT32 ui32BridgeFlags; + IMG_UINT32 ui32BridgeFlags; /* Must be first member of structure */ IMG_UINT32 ui32Flags; } PVRSRV_BRIDGE_IN_CONNECT_SERVICES; +/****************************************************************************** + * 'bridge in' acquire device info + *****************************************************************************/ typedef struct PVRSRV_BRIDGE_IN_ACQUIRE_DEVICEINFO_TAG { - IMG_UINT32 ui32BridgeFlags; + IMG_UINT32 ui32BridgeFlags; /* Must be first member of structure */ IMG_UINT32 uiDevIndex; PVRSRV_DEVICE_TYPE eDeviceType; } PVRSRV_BRIDGE_IN_ACQUIRE_DEVICEINFO; +/****************************************************************************** + * 'bridge in' enum class + *****************************************************************************/ typedef struct PVRSRV_BRIDGE_IN_ENUMCLASS_TAG { - IMG_UINT32 ui32BridgeFlags; + IMG_UINT32 ui32BridgeFlags; /* Must be first member of structure */ PVRSRV_DEVICE_CLASS sDeviceClass; } PVRSRV_BRIDGE_IN_ENUMCLASS; +/****************************************************************************** + * 'bridge in' close display class device + *****************************************************************************/ typedef struct PVRSRV_BRIDGE_IN_CLOSE_DISPCLASS_DEVICE_TAG { - IMG_UINT32 ui32BridgeFlags; + IMG_UINT32 ui32BridgeFlags; /* Must be first member of structure */ #if defined (SUPPORT_SID_INTERFACE) IMG_SID hDeviceKM; #else @@ -284,9 +367,12 @@ typedef struct PVRSRV_BRIDGE_IN_CLOSE_DISPCLASS_DEVICE_TAG } PVRSRV_BRIDGE_IN_CLOSE_DISPCLASS_DEVICE; +/****************************************************************************** + * 'bridge in' enum display class formats + *****************************************************************************/ typedef struct PVRSRV_BRIDGE_IN_ENUM_DISPCLASS_FORMATS_TAG { - IMG_UINT32 ui32BridgeFlags; + IMG_UINT32 ui32BridgeFlags; /* Must be first member of structure */ #if defined (SUPPORT_SID_INTERFACE) IMG_SID hDeviceKM; #else @@ -295,9 +381,12 @@ typedef struct PVRSRV_BRIDGE_IN_ENUM_DISPCLASS_FORMATS_TAG } PVRSRV_BRIDGE_IN_ENUM_DISPCLASS_FORMATS; +/****************************************************************************** + * 'bridge in' get display class sysbuffer + *****************************************************************************/ typedef struct PVRSRV_BRIDGE_IN_GET_DISPCLASS_SYSBUFFER_TAG { - IMG_UINT32 ui32BridgeFlags; + IMG_UINT32 ui32BridgeFlags; /* Must be first member of structure */ #if defined (SUPPORT_SID_INTERFACE) IMG_SID hDeviceKM; #else @@ -306,9 +395,12 @@ typedef struct PVRSRV_BRIDGE_IN_GET_DISPCLASS_SYSBUFFER_TAG } PVRSRV_BRIDGE_IN_GET_DISPCLASS_SYSBUFFER; +/****************************************************************************** + * 'bridge in' display class info + *****************************************************************************/ typedef struct PVRSRV_BRIDGE_IN_GET_DISPCLASS_INFO_TAG { - IMG_UINT32 ui32BridgeFlags; + IMG_UINT32 ui32BridgeFlags; /* Must be first member of structure */ #if defined (SUPPORT_SID_INTERFACE) IMG_SID hDeviceKM; #else @@ -317,9 +409,12 @@ typedef struct PVRSRV_BRIDGE_IN_GET_DISPCLASS_INFO_TAG } PVRSRV_BRIDGE_IN_GET_DISPCLASS_INFO; +/****************************************************************************** + * 'bridge in' close buffer class device + *****************************************************************************/ typedef struct PVRSRV_BRIDGE_IN_CLOSE_BUFFERCLASS_DEVICE_TAG { - IMG_UINT32 ui32BridgeFlags; + IMG_UINT32 ui32BridgeFlags; /* Must be first member of structure */ #if defined (SUPPORT_SID_INTERFACE) IMG_SID hDeviceKM; #else @@ -328,9 +423,12 @@ typedef struct PVRSRV_BRIDGE_IN_CLOSE_BUFFERCLASS_DEVICE_TAG } PVRSRV_BRIDGE_IN_CLOSE_BUFFERCLASS_DEVICE; +/****************************************************************************** + * 'bridge in' close buffer class device + *****************************************************************************/ typedef struct PVRSRV_BRIDGE_IN_GET_BUFFERCLASS_INFO_TAG { - IMG_UINT32 ui32BridgeFlags; + IMG_UINT32 ui32BridgeFlags; /* Must be first member of structure */ #if defined (SUPPORT_SID_INTERFACE) IMG_SID hDeviceKM; #else @@ -339,9 +437,12 @@ typedef struct PVRSRV_BRIDGE_IN_GET_BUFFERCLASS_INFO_TAG } PVRSRV_BRIDGE_IN_GET_BUFFERCLASS_INFO; +/****************************************************************************** + * 'bridge out' acquire device info + *****************************************************************************/ typedef struct PVRSRV_BRIDGE_IN_RELEASE_DEVICEINFO_TAG { - IMG_UINT32 ui32BridgeFlags; + IMG_UINT32 ui32BridgeFlags; /* Must be first member of structure */ #if defined (SUPPORT_SID_INTERFACE) IMG_SID hDevCookie; #else @@ -351,18 +452,24 @@ typedef struct PVRSRV_BRIDGE_IN_RELEASE_DEVICEINFO_TAG } PVRSRV_BRIDGE_IN_RELEASE_DEVICEINFO; +/****************************************************************************** + * 'bridge in' free class devices info. + *****************************************************************************/ typedef struct PVRSRV_BRIDGE_IN_FREE_CLASSDEVICEINFO_TAG { - IMG_UINT32 ui32BridgeFlags; + IMG_UINT32 ui32BridgeFlags; /* Must be first member of structure */ PVRSRV_DEVICE_CLASS DeviceClass; IMG_VOID* pvDevInfo; }PVRSRV_BRIDGE_IN_FREE_CLASSDEVICEINFO; +/****************************************************************************** + * 'bridge in' get device memory heap info + *****************************************************************************/ typedef struct PVRSRV_BRIDGE_IN_GET_DEVMEM_HEAPINFO_TAG { - IMG_UINT32 ui32BridgeFlags; + IMG_UINT32 ui32BridgeFlags; /* Must be first member of structure */ #if defined (SUPPORT_SID_INTERFACE) IMG_SID hDevCookie; IMG_SID hDevMemContext; @@ -374,9 +481,12 @@ typedef struct PVRSRV_BRIDGE_IN_GET_DEVMEM_HEAPINFO_TAG }PVRSRV_BRIDGE_IN_GET_DEVMEM_HEAPINFO; +/****************************************************************************** + * 'bridge in' create device memory context + *****************************************************************************/ typedef struct PVRSRV_BRIDGE_IN_CREATE_DEVMEMCONTEXT_TAG { - IMG_UINT32 ui32BridgeFlags; + IMG_UINT32 ui32BridgeFlags; /* Must be first member of structure */ #if defined (SUPPORT_SID_INTERFACE) IMG_SID hDevCookie; #else @@ -386,9 +496,12 @@ typedef struct PVRSRV_BRIDGE_IN_CREATE_DEVMEMCONTEXT_TAG }PVRSRV_BRIDGE_IN_CREATE_DEVMEMCONTEXT; +/****************************************************************************** + * 'bridge in' destroy device memory context + *****************************************************************************/ typedef struct PVRSRV_BRIDGE_IN_DESTROY_DEVMEMCONTEXT_TAG { - IMG_UINT32 ui32BridgeFlags; + IMG_UINT32 ui32BridgeFlags; /* Must be first member of structure */ #if defined (SUPPORT_SID_INTERFACE) IMG_SID hDevCookie; IMG_SID hDevMemContext; @@ -400,9 +513,12 @@ typedef struct PVRSRV_BRIDGE_IN_DESTROY_DEVMEMCONTEXT_TAG }PVRSRV_BRIDGE_IN_DESTROY_DEVMEMCONTEXT; +/****************************************************************************** + * 'bridge in' alloc device memory + *****************************************************************************/ typedef struct PVRSRV_BRIDGE_IN_ALLOCDEVICEMEM_TAG { - IMG_UINT32 ui32BridgeFlags; + IMG_UINT32 ui32BridgeFlags; /* Must be first member of structure */ #if defined (SUPPORT_SID_INTERFACE) IMG_SID hDevCookie; IMG_SID hDevMemHeap; @@ -413,12 +529,21 @@ typedef struct PVRSRV_BRIDGE_IN_ALLOCDEVICEMEM_TAG IMG_UINT32 ui32Attribs; IMG_SIZE_T ui32Size; IMG_SIZE_T ui32Alignment; + IMG_PVOID pvPrivData; + IMG_UINT32 ui32PrivDataLength; + IMG_UINT32 ui32ChunkSize; + IMG_UINT32 ui32NumVirtChunks; + IMG_UINT32 ui32NumPhysChunks; + IMG_BOOL *pabMapChunk; }PVRSRV_BRIDGE_IN_ALLOCDEVICEMEM; +/****************************************************************************** + * 'bridge in' map meminfo to user mode + *****************************************************************************/ typedef struct PVRSRV_BRIDGE_IN_MAPMEMINFOTOUSER_TAG { - IMG_UINT32 ui32BridgeFlags; + IMG_UINT32 ui32BridgeFlags; /* Must be first member of structure */ #if defined (SUPPORT_SID_INTERFACE) IMG_SID hKernelMemInfo; #else @@ -427,9 +552,12 @@ typedef struct PVRSRV_BRIDGE_IN_MAPMEMINFOTOUSER_TAG }PVRSRV_BRIDGE_IN_MAPMEMINFOTOUSER; +/****************************************************************************** + * 'bridge in' unmap meminfo from user mode + *****************************************************************************/ typedef struct PVRSRV_BRIDGE_IN_UNMAPMEMINFOFROMUSER_TAG { - IMG_UINT32 ui32BridgeFlags; + IMG_UINT32 ui32BridgeFlags; /* Must be first member of structure */ #if defined (SUPPORT_SID_INTERFACE) IMG_SID hKernelMemInfo; #else @@ -444,9 +572,12 @@ typedef struct PVRSRV_BRIDGE_IN_UNMAPMEMINFOFROMUSER_TAG }PVRSRV_BRIDGE_IN_UNMAPMEMINFOFROMUSER; +/****************************************************************************** + * 'bridge in' free device memory + *****************************************************************************/ typedef struct PVRSRV_BRIDGE_IN_FREEDEVICEMEM_TAG { - IMG_UINT32 ui32BridgeFlags; + IMG_UINT32 ui32BridgeFlags; /* Must be first member of structure */ #if defined (SUPPORT_SID_INTERFACE) IMG_SID hDevCookie; IMG_SID hKernelMemInfo; @@ -484,9 +615,12 @@ typedef struct PVRSRV_BRIDGE_IN_UNMAP_FROM_DEV_TAG }PVRSRV_BRIDGE_IN_UNMAP_FROM_DEV; +/****************************************************************************** + * 'bridge in' export device memory + *****************************************************************************/ typedef struct PVRSRV_BRIDGE_IN_EXPORTDEVICEMEM_TAG { - IMG_UINT32 ui32BridgeFlags; + IMG_UINT32 ui32BridgeFlags; /* Must be first member of structure */ #if defined (SUPPORT_SID_INTERFACE) IMG_SID hDevCookie; IMG_SID hKernelMemInfo; @@ -497,16 +631,53 @@ typedef struct PVRSRV_BRIDGE_IN_EXPORTDEVICEMEM_TAG }PVRSRV_BRIDGE_IN_EXPORTDEVICEMEM; +/****************************************************************************** + * 'bridge in' map ion handle + *****************************************************************************/ +typedef struct _PVRSRV_BRIDGE_IN_MAP_ION_HANDLE_ +{ + IMG_UINT32 ui32BridgeFlags; /* Must be first member of structure */ + IMG_HANDLE handle; + IMG_UINT32 ui32Attribs; + IMG_SIZE_T ui32Size; +#if defined (SUPPORT_SID_INTERFACE) + IMG_SID hDevCookie; + IMG_SID hDevMemContext; +#else + IMG_HANDLE hDevCookie; + IMG_HANDLE hDevMemContext; +#endif +} PVRSRV_BRIDGE_IN_MAP_ION_HANDLE; + +/****************************************************************************** + * 'bridge in' unmap ion handle + *****************************************************************************/ +typedef struct PVRSRV_BRIDGE_IN_UNMAP_ION_HANDLE_TAG +{ + IMG_UINT32 ui32BridgeFlags; /* Must be first member of structure */ +#if defined (SUPPORT_SID_INTERFACE) + IMG_SID hKernelMemInfo; +#else + PVRSRV_KERNEL_MEM_INFO *psKernelMemInfo; +#endif +}PVRSRV_BRIDGE_IN_UNMAP_ION_HANDLE; + +/****************************************************************************** + * 'bridge in' get free device memory + *****************************************************************************/ typedef struct PVRSRV_BRIDGE_IN_GETFREEDEVICEMEM_TAG { - IMG_UINT32 ui32BridgeFlags; + IMG_UINT32 ui32BridgeFlags; /* Must be first member of structure */ IMG_UINT32 ui32Flags; } PVRSRV_BRIDGE_IN_GETFREEDEVICEMEM; +/****************************************************************************** + * 'bridge in' create Cmd Q + *****************************************************************************/ typedef struct PVRSRV_BRIDGE_IN_CREATECOMMANDQUEUE_TAG { - IMG_UINT32 ui32BridgeFlags; + IMG_UINT32 ui32BridgeFlags; /* Must be first member of structure */ #if defined (SUPPORT_SID_INTERFACE) IMG_SID hDevCookie; #else @@ -517,9 +688,12 @@ typedef struct PVRSRV_BRIDGE_IN_CREATECOMMANDQUEUE_TAG }PVRSRV_BRIDGE_IN_CREATECOMMANDQUEUE; +/****************************************************************************** + * 'bridge in' destroy Cmd Q + *****************************************************************************/ typedef struct PVRSRV_BRIDGE_IN_DESTROYCOMMANDQUEUE_TAG { - IMG_UINT32 ui32BridgeFlags; + IMG_UINT32 ui32BridgeFlags; /* Must be first member of structure */ #if defined (SUPPORT_SID_INTERFACE) IMG_SID hDevCookie; #else @@ -530,31 +704,40 @@ typedef struct PVRSRV_BRIDGE_IN_DESTROYCOMMANDQUEUE_TAG }PVRSRV_BRIDGE_IN_DESTROYCOMMANDQUEUE; +/****************************************************************************** + * 'bridge in' get full map data + *****************************************************************************/ typedef struct PVRSRV_BRIDGE_IN_MHANDLE_TO_MMAP_DATA_TAG { - IMG_UINT32 ui32BridgeFlags; + IMG_UINT32 ui32BridgeFlags; /* Must be first member of structure */ #if defined (SUPPORT_SID_INTERFACE) - IMG_SID hMHandle; + IMG_SID hMHandle; /* Handle associated with the memory that needs to be mapped */ #else - IMG_HANDLE hMHandle; + IMG_HANDLE hMHandle; /* Handle associated with the memory that needs to be mapped */ #endif } PVRSRV_BRIDGE_IN_MHANDLE_TO_MMAP_DATA; +/****************************************************************************** + * 'bridge in' get full map data + *****************************************************************************/ typedef struct PVRSRV_BRIDGE_IN_RELEASE_MMAP_DATA_TAG { - IMG_UINT32 ui32BridgeFlags; + IMG_UINT32 ui32BridgeFlags; /* Must be first member of structure */ #if defined (SUPPORT_SID_INTERFACE) - IMG_SID hMHandle; + IMG_SID hMHandle; /* Handle associated with the memory that needs to be mapped */ #else - IMG_HANDLE hMHandle; + IMG_HANDLE hMHandle; /* Handle associated with the memory that needs to be mapped */ #endif } PVRSRV_BRIDGE_IN_RELEASE_MMAP_DATA; +/****************************************************************************** + * 'bridge in' reserve vm + *****************************************************************************/ typedef struct PVRSRV_BRIDGE_IN_RESERVE_DEV_VIRTMEM_TAG { - IMG_UINT32 ui32BridgeFlags; + IMG_UINT32 ui32BridgeFlags; /* Must be first member of structure */ #if defined (SUPPORT_SID_INTERFACE) IMG_SID hDevMemHeap; #else @@ -566,6 +749,9 @@ typedef struct PVRSRV_BRIDGE_IN_RESERVE_DEV_VIRTMEM_TAG }PVRSRV_BRIDGE_IN_RESERVE_DEV_VIRTMEM; +/****************************************************************************** + * 'bridge out' connect to services + *****************************************************************************/ typedef struct PVRSRV_BRIDGE_OUT_CONNECT_SERVICES_TAG { PVRSRV_ERROR eError; @@ -576,6 +762,9 @@ typedef struct PVRSRV_BRIDGE_OUT_CONNECT_SERVICES_TAG #endif }PVRSRV_BRIDGE_OUT_CONNECT_SERVICES; +/****************************************************************************** + * 'bridge out' reserve vm + *****************************************************************************/ typedef struct PVRSRV_BRIDGE_OUT_RESERVE_DEV_VIRTMEM_TAG { PVRSRV_ERROR eError; @@ -592,9 +781,12 @@ typedef struct PVRSRV_BRIDGE_OUT_RESERVE_DEV_VIRTMEM_TAG }PVRSRV_BRIDGE_OUT_RESERVE_DEV_VIRTMEM; +/****************************************************************************** + * 'bridge in' free vm + *****************************************************************************/ typedef struct PVRSRV_BRIDGE_IN_FREE_DEV_VIRTMEM_TAG { - IMG_UINT32 ui32BridgeFlags; + IMG_UINT32 ui32BridgeFlags; /* Must be first member of structure */ #if defined (SUPPORT_SID_INTERFACE) IMG_SID hKernelMemInfo; #else @@ -606,9 +798,12 @@ typedef struct PVRSRV_BRIDGE_IN_FREE_DEV_VIRTMEM_TAG }PVRSRV_BRIDGE_IN_FREE_DEV_VIRTMEM; +/****************************************************************************** + * 'bridge in' map dev memory allocation to another heap + *****************************************************************************/ typedef struct PVRSRV_BRIDGE_IN_MAP_DEV_MEMORY_TAG { - IMG_UINT32 ui32BridgeFlags; + IMG_UINT32 ui32BridgeFlags; /* Must be first member of structure */ #if defined (SUPPORT_SID_INTERFACE) IMG_SID hKernelMemInfo; IMG_SID hDstDevMemHeap; @@ -620,6 +815,9 @@ typedef struct PVRSRV_BRIDGE_IN_MAP_DEV_MEMORY_TAG }PVRSRV_BRIDGE_IN_MAP_DEV_MEMORY; +/****************************************************************************** + * 'bridge out' map dev memory allocation to another heap + *****************************************************************************/ typedef struct PVRSRV_BRIDGE_OUT_MAP_DEV_MEMORY_TAG { PVRSRV_ERROR eError; @@ -634,9 +832,12 @@ typedef struct PVRSRV_BRIDGE_OUT_MAP_DEV_MEMORY_TAG }PVRSRV_BRIDGE_OUT_MAP_DEV_MEMORY; +/****************************************************************************** + * 'bridge in' unmap dev memory allocation + *****************************************************************************/ typedef struct PVRSRV_BRIDGE_IN_UNMAP_DEV_MEMORY_TAG { - IMG_UINT32 ui32BridgeFlags; + IMG_UINT32 ui32BridgeFlags; /* Must be first member of structure */ #if defined (SUPPORT_SID_INTERFACE) IMG_SID hKernelMemInfo; #else @@ -682,10 +883,12 @@ typedef struct PVRSRV_BRIDGE_OUT_IMPORT_GEM_TAG }PVRSRV_BRIDGE_OUT_IMPORT_GEM; #endif /* SUPPORT_DRI_DRM_EXTERNAL */ - +/****************************************************************************** + * 'bridge in' map pages + *****************************************************************************/ typedef struct PVRSRV_BRIDGE_IN_MAP_EXT_MEMORY_TAG { - IMG_UINT32 ui32BridgeFlags; + IMG_UINT32 ui32BridgeFlags; /* Must be first member of structure */ #if defined (SUPPORT_SID_INTERFACE) IMG_SID hKernelMemInfo; #else @@ -696,18 +899,24 @@ typedef struct PVRSRV_BRIDGE_IN_MAP_EXT_MEMORY_TAG }PVRSRV_BRIDGE_IN_MAP_EXT_MEMORY; +/****************************************************************************** + * 'bridge in' unmap pages + *****************************************************************************/ typedef struct PVRSRV_BRIDGE_IN_UNMAP_EXT_MEMORY_TAG { - IMG_UINT32 ui32BridgeFlags; + IMG_UINT32 ui32BridgeFlags; /* Must be first member of structure */ PVRSRV_CLIENT_MEM_INFO sClientMemInfo; PVRSRV_CLIENT_SYNC_INFO sClientSyncInfo; IMG_UINT32 ui32Flags; }PVRSRV_BRIDGE_IN_UNMAP_EXT_MEMORY; +/****************************************************************************** + * 'bridge in' map device class buffer pages + *****************************************************************************/ typedef struct PVRSRV_BRIDGE_IN_MAP_DEVICECLASS_MEMORY_TAG { - IMG_UINT32 ui32BridgeFlags; + IMG_UINT32 ui32BridgeFlags; /* Must be first member of structure */ #if defined (SUPPORT_SID_INTERFACE) IMG_SID hDeviceClassBuffer; IMG_SID hDevMemContext; @@ -719,6 +928,9 @@ typedef struct PVRSRV_BRIDGE_IN_MAP_DEVICECLASS_MEMORY_TAG }PVRSRV_BRIDGE_IN_MAP_DEVICECLASS_MEMORY; +/****************************************************************************** + * 'bridge out' map device class buffer pages + *****************************************************************************/ typedef struct PVRSRV_BRIDGE_OUT_MAP_DEVICECLASS_MEMORY_TAG { PVRSRV_ERROR eError; @@ -735,9 +947,12 @@ typedef struct PVRSRV_BRIDGE_OUT_MAP_DEVICECLASS_MEMORY_TAG }PVRSRV_BRIDGE_OUT_MAP_DEVICECLASS_MEMORY; +/****************************************************************************** + * 'bridge in' unmap device class buffer pages + *****************************************************************************/ typedef struct PVRSRV_BRIDGE_IN_UNMAP_DEVICECLASS_MEMORY_TAG { - IMG_UINT32 ui32BridgeFlags; + IMG_UINT32 ui32BridgeFlags; /* Must be first member of structure */ #if defined (SUPPORT_SID_INTERFACE) IMG_SID hKernelMemInfo; #else @@ -749,9 +964,12 @@ typedef struct PVRSRV_BRIDGE_IN_UNMAP_DEVICECLASS_MEMORY_TAG }PVRSRV_BRIDGE_IN_UNMAP_DEVICECLASS_MEMORY; +/****************************************************************************** + * 'bridge in' pdump memory poll + *****************************************************************************/ typedef struct PVRSRV_BRIDGE_IN_PDUMP_MEMPOL_TAG { - IMG_UINT32 ui32BridgeFlags; + IMG_UINT32 ui32BridgeFlags; /* Must be first member of structure */ #if defined (SUPPORT_SID_INTERFACE) IMG_SID hKernelMemInfo; #else @@ -765,9 +983,12 @@ typedef struct PVRSRV_BRIDGE_IN_PDUMP_MEMPOL_TAG }PVRSRV_BRIDGE_IN_PDUMP_MEMPOL; +/****************************************************************************** + * 'bridge in' pdump sync poll + *****************************************************************************/ typedef struct PVRSRV_BRIDGE_IN_PDUMP_SYNCPOL_TAG { - IMG_UINT32 ui32BridgeFlags; + IMG_UINT32 ui32BridgeFlags; /* Must be first member of structure */ #if defined (SUPPORT_SID_INTERFACE) IMG_SID hKernelSyncInfo; #else @@ -781,9 +1002,12 @@ typedef struct PVRSRV_BRIDGE_IN_PDUMP_SYNCPOL_TAG }PVRSRV_BRIDGE_IN_PDUMP_SYNCPOL; +/****************************************************************************** + * 'bridge in' pdump dump memory + *****************************************************************************/ typedef struct PVRSRV_BRIDGE_IN_PDUMP_DUMPMEM_TAG { - IMG_UINT32 ui32BridgeFlags; + IMG_UINT32 ui32BridgeFlags; /* Must be first member of structure */ IMG_PVOID pvLinAddr; IMG_PVOID pvAltLinAddr; #if defined (SUPPORT_SID_INTERFACE) @@ -798,9 +1022,12 @@ typedef struct PVRSRV_BRIDGE_IN_PDUMP_DUMPMEM_TAG }PVRSRV_BRIDGE_IN_PDUMP_DUMPMEM; +/****************************************************************************** + * 'bridge in' pdump dump sync + *****************************************************************************/ typedef struct PVRSRV_BRIDGE_IN_PDUMP_DUMPSYNC_TAG { - IMG_UINT32 ui32BridgeFlags; + IMG_UINT32 ui32BridgeFlags; /* Must be first member of structure */ IMG_PVOID pvAltLinAddr; #if defined (SUPPORT_SID_INTERFACE) IMG_SID hKernelSyncInfo; @@ -813,9 +1040,12 @@ typedef struct PVRSRV_BRIDGE_IN_PDUMP_DUMPSYNC_TAG }PVRSRV_BRIDGE_IN_PDUMP_DUMPSYNC; +/****************************************************************************** + * 'bridge in' pdump dump reg + *****************************************************************************/ typedef struct PVRSRV_BRIDGE_IN_PDUMP_DUMPREG_TAG { - IMG_UINT32 ui32BridgeFlags; + IMG_UINT32 ui32BridgeFlags; /* Must be first member of structure */ #if defined (SUPPORT_SID_INTERFACE) IMG_SID hDevCookie; #else @@ -827,9 +1057,12 @@ typedef struct PVRSRV_BRIDGE_IN_PDUMP_DUMPREG_TAG }PVRSRV_BRIDGE_IN_PDUMP_DUMPREG; +/****************************************************************************** + * 'bridge in' pdump dump reg + *****************************************************************************/ typedef struct PVRSRV_BRIDGE_IN_PDUMP_REGPOL_TAG { - IMG_UINT32 ui32BridgeFlags; + IMG_UINT32 ui32BridgeFlags; /* Must be first member of structure */ #if defined (SUPPORT_SID_INTERFACE) IMG_SID hDevCookie; #else @@ -841,17 +1074,23 @@ typedef struct PVRSRV_BRIDGE_IN_PDUMP_REGPOL_TAG IMG_CHAR szRegRegion[32]; }PVRSRV_BRIDGE_IN_PDUMP_REGPOL; +/****************************************************************************** + * 'bridge in' pdump dump PD reg + *****************************************************************************/ typedef struct PVRSRV_BRIDGE_IN_PDUMP_DUMPPDREG_TAG { - IMG_UINT32 ui32BridgeFlags; + IMG_UINT32 ui32BridgeFlags; /* Must be first member of structure */ PVRSRV_HWREG sHWReg; IMG_UINT32 ui32Flags; }PVRSRV_BRIDGE_IN_PDUMP_DUMPPDREG; +/****************************************************************************** + * 'bridge in' pdump dump mem pages + *****************************************************************************/ typedef struct PVRSRV_BRIDGE_IN_PDUMP_MEMPAGES_TAG { - IMG_UINT32 ui32BridgeFlags; + IMG_UINT32 ui32BridgeFlags; /* Must be first member of structure */ #if defined (SUPPORT_SID_INTERFACE) IMG_SID hDevCookie; IMG_SID hKernelMemInfo; @@ -868,26 +1107,36 @@ typedef struct PVRSRV_BRIDGE_IN_PDUMP_MEMPAGES_TAG }PVRSRV_BRIDGE_IN_PDUMP_MEMPAGES; +/****************************************************************************** + * 'bridge in' pdump dump comment + *****************************************************************************/ typedef struct PVRSRV_BRIDGE_IN_PDUMP_COMMENT_TAG { - IMG_UINT32 ui32BridgeFlags; + IMG_UINT32 ui32BridgeFlags; /* Must be first member of structure */ IMG_CHAR szComment[PVRSRV_PDUMP_MAX_COMMENT_SIZE]; IMG_UINT32 ui32Flags; }PVRSRV_BRIDGE_IN_PDUMP_COMMENT; +/****************************************************************************** + * 'bridge in' pdump set frame + *****************************************************************************/ typedef struct PVRSRV_BRIDGE_IN_PDUMP_SETFRAME_TAG { - IMG_UINT32 ui32BridgeFlags; + IMG_UINT32 ui32BridgeFlags; /* Must be first member of structure */ IMG_UINT32 ui32Frame; }PVRSRV_BRIDGE_IN_PDUMP_SETFRAME; +/****************************************************************************** + * 'bridge in' pdump dump bitmap + *****************************************************************************/ + typedef struct PVRSRV_BRIDGE_IN_PDUMP_BITMAP_TAG { - IMG_UINT32 ui32BridgeFlags; + IMG_UINT32 ui32BridgeFlags; /* Must be first member of structure */ #if defined (SUPPORT_SID_INTERFACE) IMG_SID hDevCookie; #else @@ -912,9 +1161,12 @@ typedef struct PVRSRV_BRIDGE_IN_PDUMP_BITMAP_TAG }PVRSRV_BRIDGE_IN_PDUMP_BITMAP; +/****************************************************************************** + * 'bridge in' pdump dump read reg + *****************************************************************************/ typedef struct PVRSRV_BRIDGE_IN_PDUMP_READREG_TAG { - IMG_UINT32 ui32BridgeFlags; + IMG_UINT32 ui32BridgeFlags; /* Must be first member of structure */ #if defined (SUPPORT_SID_INTERFACE) IMG_SID hDevCookie; #else @@ -929,9 +1181,12 @@ typedef struct PVRSRV_BRIDGE_IN_PDUMP_READREG_TAG }PVRSRV_BRIDGE_IN_PDUMP_READREG; +/****************************************************************************** + * 'bridge in' pdump dump driver-info + *****************************************************************************/ typedef struct PVRSRV_BRIDGE_IN_PDUMP_DRIVERINFO_TAG { - IMG_UINT32 ui32BridgeFlags; + IMG_UINT32 ui32BridgeFlags; /* Must be first member of structure */ IMG_CHAR szString[PVRSRV_PDUMP_MAX_COMMENT_SIZE]; IMG_BOOL bContinuous; @@ -939,7 +1194,7 @@ typedef struct PVRSRV_BRIDGE_IN_PDUMP_DRIVERINFO_TAG typedef struct PVRSRV_BRIDGE_IN_PDUMP_DUMPPDDEVPADDR_TAG { - IMG_UINT32 ui32BridgeFlags; + IMG_UINT32 ui32BridgeFlags; /* Must be first member of structure */ #if defined (SUPPORT_SID_INTERFACE) IMG_SID hKernelMemInfo; #else @@ -949,9 +1204,12 @@ typedef struct PVRSRV_BRIDGE_IN_PDUMP_DUMPPDDEVPADDR_TAG IMG_DEV_PHYADDR sPDDevPAddr; }PVRSRV_BRIDGE_IN_PDUMP_DUMPPDDEVPADDR; +/****************************************************************************** + * 'bridge in' pdump cycle count register read + *****************************************************************************/ typedef struct PVRSRV_BRIDGE_PDUM_IN_CYCLE_COUNT_REG_READ_TAG { - IMG_UINT32 ui32BridgeFlags; + IMG_UINT32 ui32BridgeFlags; /* Must be first member of structure */ #if defined (SUPPORT_SID_INTERFACE) IMG_SID hDevCookie; #else @@ -961,6 +1219,13 @@ typedef struct PVRSRV_BRIDGE_PDUM_IN_CYCLE_COUNT_REG_READ_TAG IMG_BOOL bLastFrame; }PVRSRV_BRIDGE_IN_PDUMP_CYCLE_COUNT_REG_READ; +/***************************************************************************** + * Output structures for BRIDGEs + ****************************************************************************/ + +/****************************************************************************** + * 'bridge out' enum. devices + *****************************************************************************/ typedef struct PVRSRV_BRIDGE_OUT_ENUMDEVICE_TAG { PVRSRV_ERROR eError; @@ -970,6 +1235,9 @@ typedef struct PVRSRV_BRIDGE_OUT_ENUMDEVICE_TAG }PVRSRV_BRIDGE_OUT_ENUMDEVICE; +/****************************************************************************** + * 'bridge out' acquire device info + *****************************************************************************/ typedef struct PVRSRV_BRIDGE_OUT_ACQUIRE_DEVICEINFO_TAG { @@ -983,6 +1251,9 @@ typedef struct PVRSRV_BRIDGE_OUT_ACQUIRE_DEVICEINFO_TAG } PVRSRV_BRIDGE_OUT_ACQUIRE_DEVICEINFO; +/****************************************************************************** + * 'bridge out' enum. class devices + *****************************************************************************/ typedef struct PVRSRV_BRIDGE_OUT_ENUMCLASS_TAG { PVRSRV_ERROR eError; @@ -992,9 +1263,12 @@ typedef struct PVRSRV_BRIDGE_OUT_ENUMCLASS_TAG }PVRSRV_BRIDGE_OUT_ENUMCLASS; +/****************************************************************************** + * 'bridge in' open display class devices + *****************************************************************************/ typedef struct PVRSRV_BRIDGE_IN_OPEN_DISPCLASS_DEVICE_TAG { - IMG_UINT32 ui32BridgeFlags; + IMG_UINT32 ui32BridgeFlags; /* Must be first member of structure */ IMG_UINT32 ui32DeviceID; #if defined (SUPPORT_SID_INTERFACE) IMG_SID hDevCookie; @@ -1004,6 +1278,9 @@ typedef struct PVRSRV_BRIDGE_IN_OPEN_DISPCLASS_DEVICE_TAG }PVRSRV_BRIDGE_IN_OPEN_DISPCLASS_DEVICE; +/****************************************************************************** + * 'bridge out' open display class devices + *****************************************************************************/ typedef struct PVRSRV_BRIDGE_OUT_OPEN_DISPCLASS_DEVICE_TAG { PVRSRV_ERROR eError; @@ -1016,9 +1293,12 @@ typedef struct PVRSRV_BRIDGE_OUT_OPEN_DISPCLASS_DEVICE_TAG }PVRSRV_BRIDGE_OUT_OPEN_DISPCLASS_DEVICE; +/****************************************************************************** + * 'bridge in' wrap pages + *****************************************************************************/ typedef struct PVRSRV_BRIDGE_IN_WRAP_EXT_MEMORY_TAG { - IMG_UINT32 ui32BridgeFlags; + IMG_UINT32 ui32BridgeFlags; /* Must be first member of structure */ #if defined (SUPPORT_SID_INTERFACE) IMG_SID hDevCookie; IMG_SID hDevMemContext; @@ -1036,6 +1316,9 @@ typedef struct PVRSRV_BRIDGE_IN_WRAP_EXT_MEMORY_TAG }PVRSRV_BRIDGE_IN_WRAP_EXT_MEMORY; +/****************************************************************************** + * 'bridge out' wrap pages + *****************************************************************************/ typedef struct PVRSRV_BRIDGE_OUT_WRAP_EXT_MEMORY_TAG { PVRSRV_ERROR eError; @@ -1044,9 +1327,12 @@ typedef struct PVRSRV_BRIDGE_OUT_WRAP_EXT_MEMORY_TAG }PVRSRV_BRIDGE_OUT_WRAP_EXT_MEMORY; +/****************************************************************************** + * 'bridge in' unwrap pages + *****************************************************************************/ typedef struct PVRSRV_BRIDGE_IN_UNWRAP_EXT_MEMORY_TAG { - IMG_UINT32 ui32BridgeFlags; + IMG_UINT32 ui32BridgeFlags; /* Must be first member of structure */ #if defined (SUPPORT_SID_INTERFACE) IMG_SID hKernelMemInfo; #else @@ -1063,6 +1349,9 @@ typedef struct PVRSRV_BRIDGE_IN_UNWRAP_EXT_MEMORY_TAG #define PVRSRV_MAX_DC_SWAPCHAIN_BUFFERS 4 #define PVRSRV_MAX_DC_CLIP_RECTS 32 +/****************************************************************************** + * 'bridge out' enum display class formats + *****************************************************************************/ typedef struct PVRSRV_BRIDGE_OUT_ENUM_DISPCLASS_FORMATS_TAG { PVRSRV_ERROR eError; @@ -1072,9 +1361,12 @@ typedef struct PVRSRV_BRIDGE_OUT_ENUM_DISPCLASS_FORMATS_TAG }PVRSRV_BRIDGE_OUT_ENUM_DISPCLASS_FORMATS; +/****************************************************************************** + * 'bridge in' enum display class dims + *****************************************************************************/ typedef struct PVRSRV_BRIDGE_IN_ENUM_DISPCLASS_DIMS_TAG { - IMG_UINT32 ui32BridgeFlags; + IMG_UINT32 ui32BridgeFlags; /* Must be first member of structure */ #if defined (SUPPORT_SID_INTERFACE) IMG_SID hDeviceKM; #else @@ -1085,6 +1377,9 @@ typedef struct PVRSRV_BRIDGE_IN_ENUM_DISPCLASS_DIMS_TAG }PVRSRV_BRIDGE_IN_ENUM_DISPCLASS_DIMS; +/****************************************************************************** + * 'bridge out' enum display class dims + *****************************************************************************/ typedef struct PVRSRV_BRIDGE_OUT_ENUM_DISPCLASS_DIMS_TAG { PVRSRV_ERROR eError; @@ -1094,6 +1389,9 @@ typedef struct PVRSRV_BRIDGE_OUT_ENUM_DISPCLASS_DIMS_TAG }PVRSRV_BRIDGE_OUT_ENUM_DISPCLASS_DIMS; +/****************************************************************************** + * 'bridge out' enum display class dims + *****************************************************************************/ typedef struct PVRSRV_BRIDGE_OUT_GET_DISPCLASS_INFO_TAG { PVRSRV_ERROR eError; @@ -1102,6 +1400,9 @@ typedef struct PVRSRV_BRIDGE_OUT_GET_DISPCLASS_INFO_TAG }PVRSRV_BRIDGE_OUT_GET_DISPCLASS_INFO; +/****************************************************************************** + * 'bridge out' get display class system buffer + *****************************************************************************/ typedef struct PVRSRV_BRIDGE_OUT_GET_DISPCLASS_SYSBUFFER_TAG { PVRSRV_ERROR eError; @@ -1114,9 +1415,12 @@ typedef struct PVRSRV_BRIDGE_OUT_GET_DISPCLASS_SYSBUFFER_TAG }PVRSRV_BRIDGE_OUT_GET_DISPCLASS_SYSBUFFER; +/****************************************************************************** + * 'bridge in' create swap chain + *****************************************************************************/ typedef struct PVRSRV_BRIDGE_IN_CREATE_DISPCLASS_SWAPCHAIN_TAG { - IMG_UINT32 ui32BridgeFlags; + IMG_UINT32 ui32BridgeFlags; /* Must be first member of structure */ #if defined (SUPPORT_SID_INTERFACE) IMG_SID hDeviceKM; #else @@ -1132,6 +1436,9 @@ typedef struct PVRSRV_BRIDGE_IN_CREATE_DISPCLASS_SWAPCHAIN_TAG } PVRSRV_BRIDGE_IN_CREATE_DISPCLASS_SWAPCHAIN; +/****************************************************************************** + * 'bridge out' create swap chain + *****************************************************************************/ typedef struct PVRSRV_BRIDGE_OUT_CREATE_DISPCLASS_SWAPCHAIN_TAG { PVRSRV_ERROR eError; @@ -1145,9 +1452,12 @@ typedef struct PVRSRV_BRIDGE_OUT_CREATE_DISPCLASS_SWAPCHAIN_TAG } PVRSRV_BRIDGE_OUT_CREATE_DISPCLASS_SWAPCHAIN; +/****************************************************************************** + * 'bridge in' destroy swap chain + *****************************************************************************/ typedef struct PVRSRV_BRIDGE_IN_DESTROY_DISPCLASS_SWAPCHAIN_TAG { - IMG_UINT32 ui32BridgeFlags; + IMG_UINT32 ui32BridgeFlags; /* Must be first member of structure */ #if defined (SUPPORT_SID_INTERFACE) IMG_SID hDeviceKM; IMG_SID hSwapChain; @@ -1159,9 +1469,12 @@ typedef struct PVRSRV_BRIDGE_IN_DESTROY_DISPCLASS_SWAPCHAIN_TAG } PVRSRV_BRIDGE_IN_DESTROY_DISPCLASS_SWAPCHAIN; +/****************************************************************************** + * 'bridge in' set DST/SRC rect + *****************************************************************************/ typedef struct PVRSRV_BRIDGE_IN_SET_DISPCLASS_RECT_TAG { - IMG_UINT32 ui32BridgeFlags; + IMG_UINT32 ui32BridgeFlags; /* Must be first member of structure */ #if defined (SUPPORT_SID_INTERFACE) IMG_SID hDeviceKM; IMG_SID hSwapChain; @@ -1174,9 +1487,12 @@ typedef struct PVRSRV_BRIDGE_IN_SET_DISPCLASS_RECT_TAG } PVRSRV_BRIDGE_IN_SET_DISPCLASS_RECT; +/****************************************************************************** + * 'bridge in' set DST/SRC colourkey + *****************************************************************************/ typedef struct PVRSRV_BRIDGE_IN_SET_DISPCLASS_COLOURKEY_TAG { - IMG_UINT32 ui32BridgeFlags; + IMG_UINT32 ui32BridgeFlags; /* Must be first member of structure */ #if defined (SUPPORT_SID_INTERFACE) IMG_SID hDeviceKM; IMG_SID hSwapChain; @@ -1189,9 +1505,12 @@ typedef struct PVRSRV_BRIDGE_IN_SET_DISPCLASS_COLOURKEY_TAG } PVRSRV_BRIDGE_IN_SET_DISPCLASS_COLOURKEY; +/****************************************************************************** + * 'bridge in' get buffers (from swapchain) + *****************************************************************************/ typedef struct PVRSRV_BRIDGE_IN_GET_DISPCLASS_BUFFERS_TAG { - IMG_UINT32 ui32BridgeFlags; + IMG_UINT32 ui32BridgeFlags; /* Must be first member of structure */ #if defined (SUPPORT_SID_INTERFACE) IMG_SID hDeviceKM; IMG_SID hSwapChain; @@ -1203,6 +1522,9 @@ typedef struct PVRSRV_BRIDGE_IN_GET_DISPCLASS_BUFFERS_TAG } PVRSRV_BRIDGE_IN_GET_DISPCLASS_BUFFERS; +/****************************************************************************** + * 'bridge out' get buffers (from swapchain) + *****************************************************************************/ typedef struct PVRSRV_BRIDGE_OUT_GET_DISPCLASS_BUFFERS_TAG { PVRSRV_ERROR eError; @@ -1212,13 +1534,16 @@ typedef struct PVRSRV_BRIDGE_OUT_GET_DISPCLASS_BUFFERS_TAG #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; +/****************************************************************************** + * 'bridge in' swap to buffer + *****************************************************************************/ typedef struct PVRSRV_BRIDGE_IN_SWAP_DISPCLASS_TO_BUFFER_TAG { - IMG_UINT32 ui32BridgeFlags; + IMG_UINT32 ui32BridgeFlags; /* Must be first member of structure */ #if defined (SUPPORT_SID_INTERFACE) IMG_SID hDeviceKM; IMG_SID hBuffer; @@ -1237,10 +1562,36 @@ typedef struct PVRSRV_BRIDGE_IN_SWAP_DISPCLASS_TO_BUFFER_TAG } PVRSRV_BRIDGE_IN_SWAP_DISPCLASS_TO_BUFFER; +/****************************************************************************** + * 'bridge in' swap to buffer + *****************************************************************************/ +typedef struct PVRSRV_BRIDGE_IN_SWAP_DISPCLASS_TO_BUFFER2_TAG +{ + IMG_UINT32 ui32BridgeFlags; /* Must be first member of structure */ +#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; + +/****************************************************************************** + * 'bridge in' swap to system buffer (primary) + *****************************************************************************/ typedef struct PVRSRV_BRIDGE_IN_SWAP_DISPCLASS_TO_SYSTEM_TAG { - IMG_UINT32 ui32BridgeFlags; + IMG_UINT32 ui32BridgeFlags; /* Must be first member of structure */ #if defined (SUPPORT_SID_INTERFACE) IMG_SID hDeviceKM; IMG_SID hSwapChain; @@ -1252,9 +1603,12 @@ typedef struct PVRSRV_BRIDGE_IN_SWAP_DISPCLASS_TO_SYSTEM_TAG } PVRSRV_BRIDGE_IN_SWAP_DISPCLASS_TO_SYSTEM; +/****************************************************************************** + * 'bridge in' open buffer class device + *****************************************************************************/ typedef struct PVRSRV_BRIDGE_IN_OPEN_BUFFERCLASS_DEVICE_TAG { - IMG_UINT32 ui32BridgeFlags; + IMG_UINT32 ui32BridgeFlags; /* Must be first member of structure */ IMG_UINT32 ui32DeviceID; #if defined (SUPPORT_SID_INTERFACE) IMG_SID hDevCookie; @@ -1265,6 +1619,9 @@ typedef struct PVRSRV_BRIDGE_IN_OPEN_BUFFERCLASS_DEVICE_TAG } PVRSRV_BRIDGE_IN_OPEN_BUFFERCLASS_DEVICE; +/****************************************************************************** + * 'bridge out' open buffer class device + *****************************************************************************/ typedef struct PVRSRV_BRIDGE_OUT_OPEN_BUFFERCLASS_DEVICE_TAG { PVRSRV_ERROR eError; @@ -1277,6 +1634,9 @@ typedef struct PVRSRV_BRIDGE_OUT_OPEN_BUFFERCLASS_DEVICE_TAG } PVRSRV_BRIDGE_OUT_OPEN_BUFFERCLASS_DEVICE; +/****************************************************************************** + * 'bridge out' get buffer class info + *****************************************************************************/ typedef struct PVRSRV_BRIDGE_OUT_GET_BUFFERCLASS_INFO_TAG { PVRSRV_ERROR eError; @@ -1285,9 +1645,12 @@ typedef struct PVRSRV_BRIDGE_OUT_GET_BUFFERCLASS_INFO_TAG } PVRSRV_BRIDGE_OUT_GET_BUFFERCLASS_INFO; +/****************************************************************************** + * 'bridge in' get buffer class buffer + *****************************************************************************/ typedef struct PVRSRV_BRIDGE_IN_GET_BUFFERCLASS_BUFFER_TAG { - IMG_UINT32 ui32BridgeFlags; + IMG_UINT32 ui32BridgeFlags; /* Must be first member of structure */ #if defined (SUPPORT_SID_INTERFACE) IMG_SID hDeviceKM; #else @@ -1298,6 +1661,9 @@ typedef struct PVRSRV_BRIDGE_IN_GET_BUFFERCLASS_BUFFER_TAG } PVRSRV_BRIDGE_IN_GET_BUFFERCLASS_BUFFER; +/****************************************************************************** + * 'bridge out' get buffer class buffer + *****************************************************************************/ typedef struct PVRSRV_BRIDGE_OUT_GET_BUFFERCLASS_BUFFER_TAG { PVRSRV_ERROR eError; @@ -1310,6 +1676,9 @@ typedef struct PVRSRV_BRIDGE_OUT_GET_BUFFERCLASS_BUFFER_TAG } PVRSRV_BRIDGE_OUT_GET_BUFFERCLASS_BUFFER; +/****************************************************************************** + * 'bridge out' get heap info + *****************************************************************************/ typedef struct PVRSRV_BRIDGE_OUT_GET_DEVMEM_HEAPINFO_TAG { PVRSRV_ERROR eError; @@ -1319,6 +1688,9 @@ typedef struct PVRSRV_BRIDGE_OUT_GET_DEVMEM_HEAPINFO_TAG } PVRSRV_BRIDGE_OUT_GET_DEVMEM_HEAPINFO; +/****************************************************************************** + * 'bridge out' create device memory context + *****************************************************************************/ typedef struct PVRSRV_BRIDGE_OUT_CREATE_DEVMEMCONTEXT_TAG { PVRSRV_ERROR eError; @@ -1333,6 +1705,9 @@ typedef struct PVRSRV_BRIDGE_OUT_CREATE_DEVMEMCONTEXT_TAG } PVRSRV_BRIDGE_OUT_CREATE_DEVMEMCONTEXT; +/****************************************************************************** + * 'bridge out' create device memory context + *****************************************************************************/ typedef struct PVRSRV_BRIDGE_OUT_CREATE_DEVMEMHEAP_TAG { PVRSRV_ERROR eError; @@ -1345,6 +1720,9 @@ typedef struct PVRSRV_BRIDGE_OUT_CREATE_DEVMEMHEAP_TAG } PVRSRV_BRIDGE_OUT_CREATE_DEVMEMHEAP; +/****************************************************************************** + * 'bridge out' alloc device memory + *****************************************************************************/ typedef struct PVRSRV_BRIDGE_OUT_ALLOCDEVICEMEM_TAG { PVRSRV_ERROR eError; @@ -1367,6 +1745,9 @@ typedef struct PVRSRV_BRIDGE_OUT_REMAP_TO_DEV_TAG }PVRSRV_BRIDGE_OUT_REMAP_TO_DEV; +/****************************************************************************** + * 'bridge out' export device memory + *****************************************************************************/ typedef struct PVRSRV_BRIDGE_OUT_EXPORTDEVICEMEM_TAG { PVRSRV_ERROR eError; @@ -1382,6 +1763,26 @@ typedef struct PVRSRV_BRIDGE_OUT_EXPORTDEVICEMEM_TAG } PVRSRV_BRIDGE_OUT_EXPORTDEVICEMEM; +/****************************************************************************** + * 'bridge out' map ion handle + *****************************************************************************/ +typedef struct _PVRSRV_BRIDGE_OUT_MAP_ION_HANDLE_ +{ + 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_MAP_ION_HANDLE; + + +/****************************************************************************** + * 'bridge out' map meminfo to user mode + *****************************************************************************/ typedef struct PVRSRV_BRIDGE_OUT_MAPMEMINFOTOUSER_TAG { PVRSRV_ERROR eError; @@ -1395,6 +1796,9 @@ typedef struct PVRSRV_BRIDGE_OUT_MAPMEMINFOTOUSER_TAG }PVRSRV_BRIDGE_OUT_MAPMEMINFOTOUSER; +/****************************************************************************** + * 'bridge out' get free device memory + *****************************************************************************/ typedef struct PVRSRV_BRIDGE_OUT_GETFREEDEVICEMEM_TAG { PVRSRV_ERROR eError; @@ -1405,21 +1809,29 @@ typedef struct PVRSRV_BRIDGE_OUT_GETFREEDEVICEMEM_TAG } PVRSRV_BRIDGE_OUT_GETFREEDEVICEMEM; +//#ifdef LINUX +/****************************************************************************** + * 'bridge out' get full map data + *****************************************************************************/ #include "pvrmmap.h" typedef struct PVRSRV_BRIDGE_OUT_MHANDLE_TO_MMAP_DATA_TAG { PVRSRV_ERROR eError; - + /* This is a the offset you should pass to mmap(2) so that + * the driver can look up the full details for the mapping + * request. */ IMG_UINT32 ui32MMapOffset; - + /* This is the byte offset you should add to the mapping you + * get from mmap */ IMG_UINT32 ui32ByteOffset; - + /* This is the real size of the mapping that will be created + * which should be passed to mmap _and_ munmap. */ IMG_UINT32 ui32RealByteSize; - + /* User mode address associated with mapping */ IMG_UINT32 ui32UserVAddr; } PVRSRV_BRIDGE_OUT_MHANDLE_TO_MMAP_DATA; @@ -1428,23 +1840,32 @@ typedef struct PVRSRV_BRIDGE_OUT_RELEASE_MMAP_DATA_TAG { PVRSRV_ERROR eError; - + /* Flag that indicates whether the mapping should be destroyed */ IMG_BOOL bMUnmap; - + /* User mode address associated with mapping */ IMG_UINT32 ui32UserVAddr; - + /* Size of mapping */ IMG_UINT32 ui32RealByteSize; } PVRSRV_BRIDGE_OUT_RELEASE_MMAP_DATA; +//#endif + + +/****************************************************************************** + * 'bridge in' get misc info + *****************************************************************************/ typedef struct PVRSRV_BRIDGE_IN_GET_MISC_INFO_TAG { - IMG_UINT32 ui32BridgeFlags; + IMG_UINT32 ui32BridgeFlags; /* Must be first member of structure */ PVRSRV_MISC_INFO sMiscInfo; }PVRSRV_BRIDGE_IN_GET_MISC_INFO; +/****************************************************************************** + * 'bridge out' get misc info + *****************************************************************************/ typedef struct PVRSRV_BRIDGE_OUT_GET_MISC_INFO_TAG { PVRSRV_ERROR eError; @@ -1453,14 +1874,20 @@ typedef struct PVRSRV_BRIDGE_OUT_GET_MISC_INFO_TAG }PVRSRV_BRIDGE_OUT_GET_MISC_INFO; +/****************************************************************************** + * 'bridge in' get misc info + *****************************************************************************/ typedef struct PVRSRV_BRIDGE_IN_RELEASE_MISC_INFO_TAG { - IMG_UINT32 ui32BridgeFlags; + IMG_UINT32 ui32BridgeFlags; /* Must be first member of structure */ PVRSRV_MISC_INFO sMiscInfo; }PVRSRV_BRIDGE_IN_RELEASE_MISC_INFO; +/****************************************************************************** + * 'bridge out' get misc info + *****************************************************************************/ typedef struct PVRSRV_BRIDGE_OUT_RELEASE_MISC_INFO_TAG { PVRSRV_ERROR eError; @@ -1469,6 +1896,10 @@ typedef struct PVRSRV_BRIDGE_OUT_RELEASE_MISC_INFO_TAG }PVRSRV_BRIDGE_OUT_RELEASE_MISC_INFO; +/****************************************************************************** + * 'bridge out' PDUMP is capturing + *****************************************************************************/ + typedef struct PVRSRV_BRIDGE_OUT_PDUMP_ISCAPTURING_TAG { PVRSRV_ERROR eError; @@ -1476,18 +1907,24 @@ typedef struct PVRSRV_BRIDGE_OUT_PDUMP_ISCAPTURING_TAG } PVRSRV_BRIDGE_OUT_PDUMP_ISCAPTURING; +/****************************************************************************** + * 'bridge in' get FB mem stats + *****************************************************************************/ typedef struct PVRSRV_BRIDGE_IN_GET_FB_STATS_TAG { - IMG_UINT32 ui32BridgeFlags; + IMG_UINT32 ui32BridgeFlags; /* Must be first member of structure */ IMG_SIZE_T ui32Total; IMG_SIZE_T ui32Available; } PVRSRV_BRIDGE_IN_GET_FB_STATS; +/****************************************************************************** + * 'bridge in' Map CPU Physical to User Space + *****************************************************************************/ typedef struct PVRSRV_BRIDGE_IN_MAPPHYSTOUSERSPACE_TAG { - IMG_UINT32 ui32BridgeFlags; + IMG_UINT32 ui32BridgeFlags; /* Must be first member of structure */ #if defined (SUPPORT_SID_INTERFACE) IMG_SID hDevCookie; #else @@ -1499,6 +1936,9 @@ typedef struct PVRSRV_BRIDGE_IN_MAPPHYSTOUSERSPACE_TAG } PVRSRV_BRIDGE_IN_MAPPHYSTOUSERSPACE; +/****************************************************************************** + * 'bridge out' Map CPU Physical to User Space + *****************************************************************************/ typedef struct PVRSRV_BRIDGE_OUT_MAPPHYSTOUSERSPACE_TAG { IMG_PVOID pvUserAddr; @@ -1508,9 +1948,12 @@ typedef struct PVRSRV_BRIDGE_OUT_MAPPHYSTOUSERSPACE_TAG } PVRSRV_BRIDGE_OUT_MAPPHYSTOUSERSPACE; +/****************************************************************************** + * 'bridge in' Unmap CPU Physical to User Space + *****************************************************************************/ typedef struct PVRSRV_BRIDGE_IN_UNMAPPHYSTOUSERSPACE_TAG { - IMG_UINT32 ui32BridgeFlags; + IMG_UINT32 ui32BridgeFlags; /* Must be first member of structure */ #if defined (SUPPORT_SID_INTERFACE) IMG_SID hDevCookie; #else @@ -1522,6 +1965,9 @@ typedef struct PVRSRV_BRIDGE_IN_UNMAPPHYSTOUSERSPACE_TAG } PVRSRV_BRIDGE_IN_UNMAPPHYSTOUSERSPACE; +/****************************************************************************** + * 'bridge out' Get user space pointer to Phys to Lin lookup table + *****************************************************************************/ typedef struct PVRSRV_BRIDGE_OUT_GETPHYSTOUSERSPACEMAP_TAG { IMG_PVOID *ppvTbl; @@ -1531,19 +1977,25 @@ typedef struct PVRSRV_BRIDGE_OUT_GETPHYSTOUSERSPACEMAP_TAG #if !defined (SUPPORT_SID_INTERFACE) +/****************************************************************************** + * 'bridge in' Register RTSIM process thread + *****************************************************************************/ typedef struct PVRSRV_BRIDGE_IN_REGISTER_SIM_PROCESS_TAG { - IMG_UINT32 ui32BridgeFlags; + IMG_UINT32 ui32BridgeFlags; /* Must be first member of structure */ IMG_HANDLE hDevCookie; IMG_PVOID pvProcess; } PVRSRV_BRIDGE_IN_REGISTER_SIM_PROCESS; +/****************************************************************************** + * 'bridge out' Register RTSIM process thread + *****************************************************************************/ typedef struct PVRSRV_BRIDGE_OUT_REGISTER_SIM_PROCESS_TAG { - IMG_SYS_PHYADDR sRegsPhysBase; - IMG_VOID *pvRegsBase; + IMG_SYS_PHYADDR sRegsPhysBase; /*!< Physical address of current device register */ + IMG_VOID *pvRegsBase; /*!< User mode linear address of SGX device registers */ IMG_PVOID pvProcess; IMG_UINT32 ulNoOfEntries; IMG_PVOID pvTblLinAddr; @@ -1551,35 +2003,44 @@ typedef struct PVRSRV_BRIDGE_OUT_REGISTER_SIM_PROCESS_TAG } PVRSRV_BRIDGE_OUT_REGISTER_SIM_PROCESS; +/****************************************************************************** + * 'bridge in' Unregister RTSIM process thread + *****************************************************************************/ typedef struct PVRSRV_BRIDGE_IN_UNREGISTER_SIM_PROCESS_TAG { - IMG_UINT32 ui32BridgeFlags; + IMG_UINT32 ui32BridgeFlags; /* Must be first member of structure */ IMG_HANDLE hDevCookie; IMG_PVOID pvProcess; - IMG_VOID *pvRegsBase; + IMG_VOID *pvRegsBase; /*!< User mode linear address of SGX device registers */ } PVRSRV_BRIDGE_IN_UNREGISTER_SIM_PROCESS; +/****************************************************************************** + * 'bridge in' process simulator ISR event + *****************************************************************************/ typedef struct PVRSRV_BRIDGE_IN_PROCESS_SIMISR_EVENT_TAG { - IMG_UINT32 ui32BridgeFlags; + IMG_UINT32 ui32BridgeFlags; /* Must be first member of structure */ IMG_HANDLE hDevCookie; IMG_UINT32 ui32StatusAndMask; PVRSRV_ERROR eError; } PVRSRV_BRIDGE_IN_PROCESS_SIMISR_EVENT; -#endif +#endif /* #if !defined (SUPPORT_SID_INTERFACE) */ +/****************************************************************************** + * 'bridge in' initialisation server disconnect + *****************************************************************************/ typedef struct PVRSRV_BRIDGE_IN_INITSRV_DISCONNECT_TAG { - IMG_UINT32 ui32BridgeFlags; + IMG_UINT32 ui32BridgeFlags; /* Must be first member of structure */ IMG_BOOL bInitSuccesful; } PVRSRV_BRIDGE_IN_INITSRV_DISCONNECT; typedef struct PVRSRV_BRIDGE_IN_ALLOC_SHARED_SYS_MEM_TAG { - IMG_UINT32 ui32BridgeFlags; + IMG_UINT32 ui32BridgeFlags; /* Must be first member of structure */ IMG_UINT32 ui32Flags; IMG_SIZE_T ui32Size; }PVRSRV_BRIDGE_IN_ALLOC_SHARED_SYS_MEM; @@ -1600,7 +2061,7 @@ typedef struct PVRSRV_BRIDGE_IN_FREE_SHARED_SYS_MEM_TAG IMG_SID hKernelMemInfo; IMG_SID hMappingInfo; #else - IMG_UINT32 ui32BridgeFlags; + IMG_UINT32 ui32BridgeFlags; /* Must be first member of structure */ PVRSRV_KERNEL_MEM_INFO *psKernelMemInfo; #endif PVRSRV_CLIENT_MEM_INFO sClientMemInfo; @@ -1613,7 +2074,7 @@ typedef struct PVRSRV_BRIDGE_OUT_FREE_SHARED_SYS_MEM_TAG typedef struct PVRSRV_BRIDGE_IN_MAP_MEMINFO_MEM_TAG { - IMG_UINT32 ui32BridgeFlags; + IMG_UINT32 ui32BridgeFlags; /* Must be first member of structure */ #if defined (SUPPORT_SID_INTERFACE) IMG_SID hKernelMemInfo; #else @@ -1635,7 +2096,7 @@ typedef struct PVRSRV_BRIDGE_OUT_MAP_MEMINFO_MEM_TAG typedef struct PVRSRV_BRIDGE_IN_UNMAP_MEMINFO_MEM_TAG { - IMG_UINT32 ui32BridgeFlags; + IMG_UINT32 ui32BridgeFlags; /* Must be first member of structure */ PVRSRV_CLIENT_MEM_INFO sClientMemInfo; }PVRSRV_BRIDGE_IN_UNMAP_MEMINFO_MEM; @@ -1646,7 +2107,7 @@ typedef struct PVRSRV_BRIDGE_OUT_UNMAP_MEMINFO_MEM_TAG typedef struct PVRSRV_BRIDGE_IN_EVENT_OBJECT_WAI_TAG { - IMG_UINT32 ui32BridgeFlags; + IMG_UINT32 ui32BridgeFlags; /* Must be first member of structure */ #if defined (SUPPORT_SID_INTERFACE) IMG_SID hOSEventKM; #else @@ -1693,7 +2154,7 @@ typedef struct PVRSRV_BRIDGE_OUT_CREATE_SYNC_INFO_MOD_OBJ_TAG typedef struct PVRSRV_BRIDGE_IN_DESTROY_SYNC_INFO_MOD_OBJ { - IMG_UINT32 ui32BridgeFlags; + IMG_UINT32 ui32BridgeFlags; /* Must be first member of structure */ #if defined (SUPPORT_SID_INTERFACE) IMG_SID hKernelSyncInfoModObj; #else @@ -1703,7 +2164,7 @@ typedef struct PVRSRV_BRIDGE_IN_DESTROY_SYNC_INFO_MOD_OBJ typedef struct PVRSRV_BRIDGE_IN_MODIFY_PENDING_SYNC_OPS_TAG { - IMG_UINT32 ui32BridgeFlags; + IMG_UINT32 ui32BridgeFlags; /* Must be first member of structure */ #if defined (SUPPORT_SID_INTERFACE) IMG_SID hKernelSyncInfoModObj; IMG_SID hKernelSyncInfo; @@ -1717,7 +2178,7 @@ typedef struct PVRSRV_BRIDGE_IN_MODIFY_PENDING_SYNC_OPS_TAG typedef struct PVRSRV_BRIDGE_IN_MODIFY_COMPLETE_SYNC_OPS_TAG { - IMG_UINT32 ui32BridgeFlags; + IMG_UINT32 ui32BridgeFlags; /* Must be first member of structure */ #if defined (SUPPORT_SID_INTERFACE) IMG_SID hKernelSyncInfoModObj; #else @@ -1729,15 +2190,16 @@ typedef struct PVRSRV_BRIDGE_OUT_MODIFY_PENDING_SYNC_OPS_TAG { PVRSRV_ERROR eError; - + /* The following variable are used to return the PRE-INCREMENTED op vals */ 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; + IMG_UINT32 ui32BridgeFlags; /* Must be first member of structure */ #if defined (SUPPORT_SID_INTERFACE) IMG_SID hKernelSyncInfo; #else @@ -1752,12 +2214,13 @@ typedef struct PVRSRV_BRIDGE_OUT_SYNC_OPS_TAKE_TOKEN_TAG 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; + IMG_UINT32 ui32BridgeFlags; /* Must be first member of structure */ #if defined (SUPPORT_SID_INTERFACE) IMG_SID hKernelSyncInfo; #else @@ -1765,11 +2228,12 @@ typedef struct PVRSRV_BRIDGE_IN_SYNC_OPS_FLUSH_TO_TOKEN_TAG #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; + IMG_UINT32 ui32BridgeFlags; /* Must be first member of structure */ #if defined (SUPPORT_SID_INTERFACE) IMG_SID hKernelSyncInfoModObj; #else @@ -1779,7 +2243,7 @@ typedef struct PVRSRV_BRIDGE_IN_SYNC_OPS_FLUSH_TO_MOD_OBJ_TAG typedef struct PVRSRV_BRIDGE_IN_SYNC_OPS_FLUSH_TO_DELTA_TAG { - IMG_UINT32 ui32BridgeFlags; + IMG_UINT32 ui32BridgeFlags; /* Must be first member of structure */ #if defined (SUPPORT_SID_INTERFACE) IMG_SID hKernelSyncInfo; #else @@ -1790,7 +2254,7 @@ typedef struct PVRSRV_BRIDGE_IN_SYNC_OPS_FLUSH_TO_DELTA_TAG typedef struct PVRSRV_BRIDGE_IN_ALLOC_SYNC_INFO_TAG { - IMG_UINT32 ui32BridgeFlags; + IMG_UINT32 ui32BridgeFlags; /* Must be first member of structure */ #if defined (SUPPORT_SID_INTERFACE) IMG_SID hDevCookie; @@ -1812,7 +2276,7 @@ typedef struct PVRSRV_BRIDGE_OUT_ALLOC_SYNC_INFO_TAG typedef struct PVRSRV_BRIDGE_IN_FREE_SYNC_INFO_TAG { - IMG_UINT32 ui32BridgeFlags; + IMG_UINT32 ui32BridgeFlags; /* Must be first member of structure */ #if defined (SUPPORT_SID_INTERFACE) IMG_SID hKernelSyncInfo; @@ -1832,5 +2296,9 @@ typedef struct PVRSRV_BRIDGE_IN_CHG_DEV_MEM_ATTRIBS_TAG } #endif -#endif +#endif /* __PVR_BRIDGE_H__ */ + +/****************************************************************************** + End of file (pvr_bridge.h) +******************************************************************************/ |