summaryrefslogtreecommitdiff
path: root/sgx/services4/include/pvr_bridge.h
diff options
context:
space:
mode:
authorRicardo Salveti de Araujo <ricardo.salveti@linaro.org>2012-07-18 00:30:31 -0300
committerRicardo Salveti de Araujo <ricardo.salveti@linaro.org>2012-07-18 00:30:31 -0300
commit0f9b9d9e1f16d454b12921d3429eced6dc1095d4 (patch)
tree21eaffbd85393a9e53889bbd868a255c7f6c24fc /sgx/services4/include/pvr_bridge.h
parent50fa520ba5f68fa76173493c44715d4542007120 (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.h836
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)
+******************************************************************************/