diff options
Diffstat (limited to 'pvr-source/services4/include')
-rwxr-xr-x | pvr-source/services4/include/kernelbuffer.h | 97 | ||||
-rwxr-xr-x | pvr-source/services4/include/kerneldisplay.h | 243 | ||||
-rwxr-xr-x | pvr-source/services4/include/pdump.h | 51 | ||||
-rwxr-xr-x | pvr-source/services4/include/pvr_bridge.h | 2255 | ||||
-rwxr-xr-x | pvr-source/services4/include/pvr_bridge_km.h | 409 | ||||
-rwxr-xr-x | pvr-source/services4/include/pvrmmap.h | 81 | ||||
-rwxr-xr-x | pvr-source/services4/include/pvrsrv_errors.h | 311 | ||||
-rwxr-xr-x | pvr-source/services4/include/servicesint.h | 555 | ||||
-rwxr-xr-x | pvr-source/services4/include/sgx_bridge.h | 779 | ||||
-rwxr-xr-x | pvr-source/services4/include/sgx_mkif_km.h | 476 | ||||
-rwxr-xr-x | pvr-source/services4/include/sgx_ukernel_status_codes.h | 966 | ||||
-rwxr-xr-x | pvr-source/services4/include/sgxinfo.h | 489 |
12 files changed, 0 insertions, 6712 deletions
diff --git a/pvr-source/services4/include/kernelbuffer.h b/pvr-source/services4/include/kernelbuffer.h deleted file mode 100755 index 6d8aed5..0000000 --- a/pvr-source/services4/include/kernelbuffer.h +++ /dev/null @@ -1,97 +0,0 @@ -/*************************************************************************/ /*! -@Title buffer device class API structures and prototypes - for kernel services to kernel 3rd party buffer device driver -@Copyright Copyright (c) Imagination Technologies Ltd. All Rights Reserved -@Description provides display device class API structures and prototypes -@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. -*/ /**************************************************************************/ - -#if !defined (__KERNELBUFFER_H__) -#define __KERNELBUFFER_H__ - -#if defined (__cplusplus) -extern "C" { -#endif - -/* - Function table and pointers for SRVKM->BUFFER -*/ -typedef PVRSRV_ERROR (*PFN_OPEN_BC_DEVICE)(IMG_UINT32, IMG_HANDLE*); -typedef PVRSRV_ERROR (*PFN_CLOSE_BC_DEVICE)(IMG_UINT32, IMG_HANDLE); -typedef PVRSRV_ERROR (*PFN_GET_BC_INFO)(IMG_HANDLE, BUFFER_INFO*); -typedef PVRSRV_ERROR (*PFN_GET_BC_BUFFER)(IMG_HANDLE, IMG_UINT32, PVRSRV_SYNC_DATA*, IMG_HANDLE*); - -typedef struct PVRSRV_BC_SRV2BUFFER_KMJTABLE_TAG -{ - IMG_UINT32 ui32TableSize; - PFN_OPEN_BC_DEVICE pfnOpenBCDevice; - PFN_CLOSE_BC_DEVICE pfnCloseBCDevice; - PFN_GET_BC_INFO pfnGetBCInfo; - PFN_GET_BC_BUFFER pfnGetBCBuffer; - PFN_GET_BUFFER_ADDR pfnGetBufferAddr; - -} PVRSRV_BC_SRV2BUFFER_KMJTABLE; - - -/* - Function table and pointers for BUFFER->SRVKM -*/ -typedef PVRSRV_ERROR (*PFN_BC_REGISTER_BUFFER_DEV)(PVRSRV_BC_SRV2BUFFER_KMJTABLE*, IMG_UINT32*); -typedef IMG_VOID (*PFN_BC_SCHEDULE_DEVICES)(IMG_VOID); -typedef PVRSRV_ERROR (*PFN_BC_REMOVE_BUFFER_DEV)(IMG_UINT32); - -typedef struct PVRSRV_BC_BUFFER2SRV_KMJTABLE_TAG -{ - IMG_UINT32 ui32TableSize; - PFN_BC_REGISTER_BUFFER_DEV pfnPVRSRVRegisterBCDevice; - PFN_BC_SCHEDULE_DEVICES pfnPVRSRVScheduleDevices; - PFN_BC_REMOVE_BUFFER_DEV pfnPVRSRVRemoveBCDevice; - -} PVRSRV_BC_BUFFER2SRV_KMJTABLE, *PPVRSRV_BC_BUFFER2SRV_KMJTABLE; - -/* function to retrieve kernel services function table from kernel services */ -typedef IMG_BOOL (*PFN_BC_GET_PVRJTABLE) (PPVRSRV_BC_BUFFER2SRV_KMJTABLE); - -/* Prototype for platforms that access the JTable via linkage */ -IMG_IMPORT IMG_BOOL PVRGetBufferClassJTable(PVRSRV_BC_BUFFER2SRV_KMJTABLE *psJTable); - -#if defined (__cplusplus) -} -#endif - -#endif/* #if !defined (__KERNELBUFFER_H__) */ diff --git a/pvr-source/services4/include/kerneldisplay.h b/pvr-source/services4/include/kerneldisplay.h deleted file mode 100755 index 2efd7b3..0000000 --- a/pvr-source/services4/include/kerneldisplay.h +++ /dev/null @@ -1,243 +0,0 @@ -/*************************************************************************/ /*! -@Title Display device class API structures and prototypes -@Copyright Copyright (c) Imagination Technologies Ltd. All Rights Reserved -@Description Provides display device class API structures and prototypes - for kernel services to kernel 3rd party display. -@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. -*/ /**************************************************************************/ - -#if !defined (__KERNELDISPLAY_H__) -#define __KERNELDISPLAY_H__ - -#if defined (__cplusplus) -extern "C" { -#endif - -typedef PVRSRV_ERROR (*PFN_OPEN_DC_DEVICE)(IMG_UINT32, IMG_HANDLE*, PVRSRV_SYNC_DATA*); -typedef PVRSRV_ERROR (*PFN_CLOSE_DC_DEVICE)(IMG_HANDLE); -typedef PVRSRV_ERROR (*PFN_ENUM_DC_FORMATS)(IMG_HANDLE, IMG_UINT32*, DISPLAY_FORMAT*); -typedef PVRSRV_ERROR (*PFN_ENUM_DC_DIMS)(IMG_HANDLE, - DISPLAY_FORMAT*, - IMG_UINT32*, - DISPLAY_DIMS*); -typedef PVRSRV_ERROR (*PFN_GET_DC_SYSTEMBUFFER)(IMG_HANDLE, IMG_HANDLE*); -typedef PVRSRV_ERROR (*PFN_GET_DC_INFO)(IMG_HANDLE, DISPLAY_INFO*); -typedef PVRSRV_ERROR (*PFN_CREATE_DC_SWAPCHAIN)(IMG_HANDLE, - IMG_UINT32, - DISPLAY_SURF_ATTRIBUTES*, - DISPLAY_SURF_ATTRIBUTES*, - IMG_UINT32, - PVRSRV_SYNC_DATA**, - IMG_UINT32, - IMG_HANDLE*, - IMG_UINT32*); -typedef PVRSRV_ERROR (*PFN_DESTROY_DC_SWAPCHAIN)(IMG_HANDLE, - IMG_HANDLE); -typedef PVRSRV_ERROR (*PFN_SET_DC_DSTRECT)(IMG_HANDLE, IMG_HANDLE, IMG_RECT*); -typedef PVRSRV_ERROR (*PFN_SET_DC_SRCRECT)(IMG_HANDLE, IMG_HANDLE, IMG_RECT*); -typedef PVRSRV_ERROR (*PFN_SET_DC_DSTCK)(IMG_HANDLE, IMG_HANDLE, IMG_UINT32); -typedef PVRSRV_ERROR (*PFN_SET_DC_SRCCK)(IMG_HANDLE, IMG_HANDLE, IMG_UINT32); -typedef PVRSRV_ERROR (*PFN_GET_DC_BUFFERS)(IMG_HANDLE, - IMG_HANDLE, - IMG_UINT32*, - IMG_HANDLE*); -typedef PVRSRV_ERROR (*PFN_SWAP_TO_DC_BUFFER)(IMG_HANDLE, - IMG_HANDLE, - IMG_UINT32, - IMG_HANDLE, - IMG_UINT32, - IMG_RECT*); -typedef IMG_VOID (*PFN_QUERY_SWAP_COMMAND_ID)(IMG_HANDLE, IMG_HANDLE, IMG_HANDLE, IMG_HANDLE, IMG_UINT16*, IMG_BOOL*); -typedef IMG_VOID (*PFN_SET_DC_STATE)(IMG_HANDLE, IMG_UINT32); - -/* - Function table for SRVKM->DISPLAY -*/ -typedef struct PVRSRV_DC_SRV2DISP_KMJTABLE_TAG -{ - IMG_UINT32 ui32TableSize; - PFN_OPEN_DC_DEVICE pfnOpenDCDevice; - PFN_CLOSE_DC_DEVICE pfnCloseDCDevice; - PFN_ENUM_DC_FORMATS pfnEnumDCFormats; - PFN_ENUM_DC_DIMS pfnEnumDCDims; - PFN_GET_DC_SYSTEMBUFFER pfnGetDCSystemBuffer; - PFN_GET_DC_INFO pfnGetDCInfo; - PFN_GET_BUFFER_ADDR pfnGetBufferAddr; - PFN_CREATE_DC_SWAPCHAIN pfnCreateDCSwapChain; - PFN_DESTROY_DC_SWAPCHAIN pfnDestroyDCSwapChain; - PFN_SET_DC_DSTRECT pfnSetDCDstRect; - PFN_SET_DC_SRCRECT pfnSetDCSrcRect; - PFN_SET_DC_DSTCK pfnSetDCDstColourKey; - PFN_SET_DC_SRCCK pfnSetDCSrcColourKey; - PFN_GET_DC_BUFFERS pfnGetDCBuffers; - PFN_SWAP_TO_DC_BUFFER pfnSwapToDCBuffer; - PFN_SET_DC_STATE pfnSetDCState; - PFN_QUERY_SWAP_COMMAND_ID pfnQuerySwapCommandID; - -} PVRSRV_DC_SRV2DISP_KMJTABLE; - -/* ISR callback pfn prototype */ -typedef IMG_BOOL (*PFN_ISR_HANDLER)(IMG_VOID*); - -/* - functions exported by kernel services for use by 3rd party kernel display class device driver -*/ -typedef PVRSRV_ERROR (*PFN_DC_REGISTER_DISPLAY_DEV)(PVRSRV_DC_SRV2DISP_KMJTABLE*, IMG_UINT32*); -typedef PVRSRV_ERROR (*PFN_DC_REMOVE_DISPLAY_DEV)(IMG_UINT32); -typedef PVRSRV_ERROR (*PFN_DC_OEM_FUNCTION)(IMG_UINT32, IMG_VOID*, IMG_UINT32, IMG_VOID*, IMG_UINT32); -typedef PVRSRV_ERROR (*PFN_DC_REGISTER_COMMANDPROCLIST)(IMG_UINT32, PPFN_CMD_PROC,IMG_UINT32[][2], IMG_UINT32); -typedef PVRSRV_ERROR (*PFN_DC_REMOVE_COMMANDPROCLIST)(IMG_UINT32, IMG_UINT32); -typedef IMG_VOID (*PFN_DC_CMD_COMPLETE)(IMG_HANDLE, IMG_BOOL); -typedef PVRSRV_ERROR (*PFN_DC_REGISTER_SYS_ISR)(PFN_ISR_HANDLER, IMG_VOID*, IMG_UINT32, IMG_UINT32); -typedef PVRSRV_ERROR (*PFN_DC_REGISTER_POWER)(IMG_UINT32, PFN_PRE_POWER, PFN_POST_POWER, - PFN_PRE_CLOCKSPEED_CHANGE, PFN_POST_CLOCKSPEED_CHANGE, - IMG_HANDLE, PVRSRV_DEV_POWER_STATE, PVRSRV_DEV_POWER_STATE); - -typedef struct _PVRSRV_KERNEL_MEM_INFO_* PDC_MEM_INFO; - -typedef PVRSRV_ERROR (*PFN_DC_MEMINFO_GET_CPU_VADDR)(PDC_MEM_INFO, IMG_CPU_VIRTADDR *pVAddr); -typedef PVRSRV_ERROR (*PFN_DC_MEMINFO_GET_CPU_PADDR)(PDC_MEM_INFO, IMG_SIZE_T uByteOffset, IMG_CPU_PHYADDR *pPAddr); -typedef PVRSRV_ERROR (*PFN_DC_MEMINFO_GET_BYTE_SIZE)(PDC_MEM_INFO, IMG_SIZE_T *uByteSize); -typedef IMG_BOOL (*PFN_DC_MEMINFO_IS_PHYS_CONTIG)(PDC_MEM_INFO); -typedef PVRSRV_ERROR (*PFN_DC_GETBVHANDLE)(PDC_MEM_INFO, IMG_VOID **handle); -typedef IMG_INT32 (*PFN_DC_MEMINFO_GET_MULTI_PLANE_CPU_PADDRS)(PDC_MEM_INFO, IMG_SIZE_T* puByteOffsets, - IMG_CPU_PHYADDR *pPAddrs, IMG_UINT32* pui32NumAddrOffsets); - -/* - Function table for DISPLAY->SRVKM -*/ -typedef struct PVRSRV_DC_DISP2SRV_KMJTABLE_TAG -{ - IMG_UINT32 ui32TableSize; - PFN_DC_REGISTER_DISPLAY_DEV pfnPVRSRVRegisterDCDevice; - PFN_DC_REMOVE_DISPLAY_DEV pfnPVRSRVRemoveDCDevice; - PFN_DC_OEM_FUNCTION pfnPVRSRVOEMFunction; - PFN_DC_REGISTER_COMMANDPROCLIST pfnPVRSRVRegisterCmdProcList; - PFN_DC_REMOVE_COMMANDPROCLIST pfnPVRSRVRemoveCmdProcList; - PFN_DC_CMD_COMPLETE pfnPVRSRVCmdComplete; - PFN_DC_REGISTER_SYS_ISR pfnPVRSRVRegisterSystemISRHandler; - PFN_DC_REGISTER_POWER pfnPVRSRVRegisterPowerDevice; - PFN_DC_CMD_COMPLETE pfnPVRSRVFreeCmdCompletePacket; - PFN_DC_MEMINFO_GET_CPU_VADDR pfnPVRSRVDCMemInfoGetCpuVAddr; - PFN_DC_MEMINFO_GET_CPU_PADDR pfnPVRSRVDCMemInfoGetCpuPAddr; - PFN_DC_MEMINFO_GET_BYTE_SIZE pfnPVRSRVDCMemInfoGetByteSize; - PFN_DC_MEMINFO_IS_PHYS_CONTIG pfnPVRSRVDCMemInfoIsPhysContig; - PFN_DC_GETBVHANDLE pfnPVRSRVDCMemInfoGetBvHandle; - PFN_DC_MEMINFO_GET_MULTI_PLANE_CPU_PADDRS pfnPVRSRVDCMemInfoGetCpuMultiPlanePAddr; - -} PVRSRV_DC_DISP2SRV_KMJTABLE, *PPVRSRV_DC_DISP2SRV_KMJTABLE; - - -typedef struct DISPLAYCLASS_FLIP_COMMAND_TAG -{ - /* Ext Device Handle */ - IMG_HANDLE hExtDevice; - - /* Ext SwapChain Handle */ - IMG_HANDLE hExtSwapChain; - - /* Ext Buffer Handle (Buffer to Flip to) */ - IMG_HANDLE hExtBuffer; - - /* private tag */ - IMG_HANDLE hPrivateTag; - - /* number of clip rects */ - IMG_UINT32 ui32ClipRectCount; - - /* clip rects */ - IMG_RECT *psClipRect; - - /* number of vsync intervals between successive flips */ - IMG_UINT32 ui32SwapInterval; - -} DISPLAYCLASS_FLIP_COMMAND; - - -typedef struct DISPLAYCLASS_FLIP_COMMAND2_TAG -{ - /* Ext Device Handle */ - IMG_HANDLE hExtDevice; - - /* Ext SwapChain Handle */ - IMG_HANDLE hExtSwapChain; - - /* Unused field, padding for compatibility with above structure */ - IMG_HANDLE hUnused; - - /* number of vsync intervals between successive flips */ - IMG_UINT32 ui32SwapInterval; - - /* private data from userspace */ - IMG_PVOID pvPrivData; - - /* length of private data in bytes */ - IMG_UINT32 ui32PrivDataLength; - - /* meminfos */ - PDC_MEM_INFO *ppsMemInfos; - - /* number of meminfos */ - IMG_UINT32 ui32NumMemInfos; - -} DISPLAYCLASS_FLIP_COMMAND2; - -/* start command IDs from 0 */ -#define DC_FLIP_COMMAND 0 - -/* States used in PFN_SET_DC_STATE */ -#define DC_STATE_NO_FLUSH_COMMANDS 0 -#define DC_STATE_FLUSH_COMMANDS 1 -#define DC_STATE_FORCE_SWAP_TO_SYSTEM 2 - -/* function to retrieve kernel services function table from kernel services */ -typedef IMG_BOOL (*PFN_DC_GET_PVRJTABLE)(PPVRSRV_DC_DISP2SRV_KMJTABLE); - -/* Prototype for platforms that access the JTable via linkage */ -IMG_IMPORT IMG_BOOL PVRGetDisplayClassJTable(PVRSRV_DC_DISP2SRV_KMJTABLE *psJTable); - - -#if defined (__cplusplus) -} -#endif - -#endif/* #if !defined (__KERNELDISPLAY_H__) */ - -/****************************************************************************** - End of file (kerneldisplay.h) -******************************************************************************/ diff --git a/pvr-source/services4/include/pdump.h b/pvr-source/services4/include/pdump.h deleted file mode 100755 index 566a118..0000000 --- a/pvr-source/services4/include/pdump.h +++ /dev/null @@ -1,51 +0,0 @@ -/*************************************************************************/ /*! -@Title PDUMP flags definitions. -@Copyright Copyright (c) Imagination Technologies Ltd. All Rights Reserved -@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 _SERVICES_PDUMP_H_ -#define _SERVICES_PDUMP_H_ - -#define PDUMP_FLAGS_NEVER 0x08000000U -#define PDUMP_FLAGS_LASTFRAME 0x10000000U -#define PDUMP_FLAGS_RESETLFBUFFER 0x20000000U -#define PDUMP_FLAGS_CONTINUOUS 0x40000000U -#define PDUMP_FLAGS_PERSISTENT 0x80000000U - -#endif /* _SERVICES_PDUMP_H_ */ - diff --git a/pvr-source/services4/include/pvr_bridge.h b/pvr-source/services4/include/pvr_bridge.h deleted file mode 100755 index 71813c4..0000000 --- a/pvr-source/services4/include/pvr_bridge.h +++ /dev/null @@ -1,2255 +0,0 @@ -/*************************************************************************/ /*! -@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__ - -#if defined (__cplusplus) -extern "C" { -#endif - -#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 /* __linux__ */ - - #if defined(__QNXNTO__) - #define PVRSRV_IOC_GID (0x0UL) - #else - #error Unknown platform: Cannot define ioctls - #endif - - #define PVRSRV_IO(INDEX) (PVRSRV_IOC_GID + (INDEX)) - #define PVRSRV_IOW(INDEX) (PVRSRV_IOC_GID + (INDEX)) - #define PVRSRV_IOR(INDEX) (PVRSRV_IOC_GID + (INDEX)) - #define PVRSRV_IOWR(INDEX) (PVRSRV_IOC_GID + (INDEX)) - - #define PVRSRV_BRIDGE_BASE PVRSRV_IOC_GID -#endif /* __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) /*!< 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) -#define PVRSRV_BRIDGE_UNMAP_EXT_MEMORY PVRSRV_IOWR(PVRSRV_BRIDGE_CORE_CMD_FIRST+19) -#define PVRSRV_BRIDGE_MAP_DEV_MEMORY PVRSRV_IOWR(PVRSRV_BRIDGE_CORE_CMD_FIRST+20) -#define PVRSRV_BRIDGE_UNMAP_DEV_MEMORY PVRSRV_IOWR(PVRSRV_BRIDGE_CORE_CMD_FIRST+21) -#define PVRSRV_BRIDGE_MAP_DEVICECLASS_MEMORY PVRSRV_IOWR(PVRSRV_BRIDGE_CORE_CMD_FIRST+22) -#define PVRSRV_BRIDGE_UNMAP_DEVICECLASS_MEMORY PVRSRV_IOWR(PVRSRV_BRIDGE_CORE_CMD_FIRST+23) -#define PVRSRV_BRIDGE_MAP_MEM_INFO_TO_USER PVRSRV_IOWR(PVRSRV_BRIDGE_CORE_CMD_FIRST+24) -#define PVRSRV_BRIDGE_UNMAP_MEM_INFO_FROM_USER PVRSRV_IOWR(PVRSRV_BRIDGE_CORE_CMD_FIRST+25) -#define PVRSRV_BRIDGE_EXPORT_DEVICEMEM PVRSRV_IOWR(PVRSRV_BRIDGE_CORE_CMD_FIRST+26) -#define PVRSRV_BRIDGE_RELEASE_MMAP_DATA PVRSRV_IOWR(PVRSRV_BRIDGE_CORE_CMD_FIRST+27) -#define PVRSRV_BRIDGE_CHG_DEV_MEM_ATTRIBS PVRSRV_IOWR(PVRSRV_BRIDGE_CORE_CMD_FIRST+28) -#define PVRSRV_BRIDGE_MAP_DEV_MEMORY_2 PVRSRV_IOWR(PVRSRV_BRIDGE_CORE_CMD_FIRST+29) -#define PVRSRV_BRIDGE_EXPORT_DEVICEMEM_2 PVRSRV_IOWR(PVRSRV_BRIDGE_CORE_CMD_FIRST+30) - -#define PVRSRV_BRIDGE_MULTI_MANAGE_DEV_MEM PVRSRV_IOWR(PVRSRV_BRIDGE_CORE_CMD_FIRST+31) -#define PVRSRV_BRIDGE_CORE_CMD_RESERVED_1 PVRSRV_IOWR(PVRSRV_BRIDGE_CORE_CMD_FIRST+32) -#define PVRSRV_BRIDGE_CORE_CMD_RESERVED_2 PVRSRV_IOWR(PVRSRV_BRIDGE_CORE_CMD_FIRST+33) -#define PVRSRV_BRIDGE_CORE_CMD_RESERVED_3 PVRSRV_IOWR(PVRSRV_BRIDGE_CORE_CMD_FIRST+34) - -#if defined (SUPPORT_ION) -#define PVRSRV_BRIDGE_MAP_ION_HANDLE PVRSRV_IOWR(PVRSRV_BRIDGE_CORE_CMD_FIRST+35) -#define PVRSRV_BRIDGE_UNMAP_ION_HANDLE PVRSRV_IOWR(PVRSRV_BRIDGE_CORE_CMD_FIRST+36) -#define PVRSRV_BRIDGE_CORE_CMD_LAST (PVRSRV_BRIDGE_CORE_CMD_FIRST+37) -#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) /*!< 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) /*!< 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) /*!< 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) /*!< 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) /*!< 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) /*!< 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) /*!< 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) -#define PVRSRV_BRIDGE_ENUM_DISPCLASS_FORMATS PVRSRV_IOWR(PVRSRV_BRIDGE_DISPCLASS_CMD_FIRST+2) -#define PVRSRV_BRIDGE_ENUM_DISPCLASS_DIMS PVRSRV_IOWR(PVRSRV_BRIDGE_DISPCLASS_CMD_FIRST+3) -#define PVRSRV_BRIDGE_GET_DISPCLASS_SYSBUFFER PVRSRV_IOWR(PVRSRV_BRIDGE_DISPCLASS_CMD_FIRST+4) -#define PVRSRV_BRIDGE_GET_DISPCLASS_INFO PVRSRV_IOWR(PVRSRV_BRIDGE_DISPCLASS_CMD_FIRST+5) -#define PVRSRV_BRIDGE_CREATE_DISPCLASS_SWAPCHAIN PVRSRV_IOWR(PVRSRV_BRIDGE_DISPCLASS_CMD_FIRST+6) -#define PVRSRV_BRIDGE_DESTROY_DISPCLASS_SWAPCHAIN PVRSRV_IOWR(PVRSRV_BRIDGE_DISPCLASS_CMD_FIRST+7) -#define PVRSRV_BRIDGE_SET_DISPCLASS_DSTRECT PVRSRV_IOWR(PVRSRV_BRIDGE_DISPCLASS_CMD_FIRST+8) -#define PVRSRV_BRIDGE_SET_DISPCLASS_SRCRECT PVRSRV_IOWR(PVRSRV_BRIDGE_DISPCLASS_CMD_FIRST+9) -#define PVRSRV_BRIDGE_SET_DISPCLASS_DSTCOLOURKEY PVRSRV_IOWR(PVRSRV_BRIDGE_DISPCLASS_CMD_FIRST+10) -#define PVRSRV_BRIDGE_SET_DISPCLASS_SRCCOLOURKEY PVRSRV_IOWR(PVRSRV_BRIDGE_DISPCLASS_CMD_FIRST+11) -#define PVRSRV_BRIDGE_GET_DISPCLASS_BUFFERS PVRSRV_IOWR(PVRSRV_BRIDGE_DISPCLASS_CMD_FIRST+12) -#define PVRSRV_BRIDGE_SWAP_DISPCLASS_TO_BUFFER PVRSRV_IOWR(PVRSRV_BRIDGE_DISPCLASS_CMD_FIRST+13) -#define PVRSRV_BRIDGE_SWAP_DISPCLASS_TO_BUFFER2 PVRSRV_IOWR(PVRSRV_BRIDGE_DISPCLASS_CMD_FIRST+14) -#define PVRSRV_BRIDGE_SWAP_DISPCLASS_TO_SYSTEM PVRSRV_IOWR(PVRSRV_BRIDGE_DISPCLASS_CMD_FIRST+15) -#define PVRSRV_BRIDGE_DISPCLASS_CMD_LAST (PVRSRV_BRIDGE_DISPCLASS_CMD_FIRST+15) - -/* 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) -#define PVRSRV_BRIDGE_GET_BUFFERCLASS_INFO PVRSRV_IOWR(PVRSRV_BRIDGE_BUFCLASS_CMD_FIRST+2) -#define PVRSRV_BRIDGE_GET_BUFFERCLASS_BUFFER PVRSRV_IOWR(PVRSRV_BRIDGE_BUFCLASS_CMD_FIRST+3) -#define PVRSRV_BRIDGE_BUFCLASS_CMD_LAST (PVRSRV_BRIDGE_BUFCLASS_CMD_FIRST+3) - -/* 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) -#define PVRSRV_BRIDGE_MAP_MEMINFO_MEM PVRSRV_IOWR(PVRSRV_BRIDGE_SHAREDMEM_CMD_FIRST+2) -#define PVRSRV_BRIDGE_UNMAP_MEMINFO_MEM PVRSRV_IOWR(PVRSRV_BRIDGE_SHAREDMEM_CMD_FIRST+3) -#define PVRSRV_BRIDGE_SHAREDMEM_CMD_LAST (PVRSRV_BRIDGE_SHAREDMEM_CMD_FIRST+3) - -/* 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) -#define PVRSRV_BRIDGE_MODIFY_PENDING_SYNC_OPS PVRSRV_IOWR(PVRSRV_BRIDGE_SYNC_OPS_CMD_FIRST+2) -#define PVRSRV_BRIDGE_MODIFY_COMPLETE_SYNC_OPS PVRSRV_IOWR(PVRSRV_BRIDGE_SYNC_OPS_CMD_FIRST+3) -#define PVRSRV_BRIDGE_SYNC_OPS_TAKE_TOKEN PVRSRV_IOWR(PVRSRV_BRIDGE_SYNC_OPS_CMD_FIRST+4) -#define PVRSRV_BRIDGE_SYNC_OPS_FLUSH_TO_TOKEN PVRSRV_IOWR(PVRSRV_BRIDGE_SYNC_OPS_CMD_FIRST+5) -#define PVRSRV_BRIDGE_SYNC_OPS_FLUSH_TO_MOD_OBJ PVRSRV_IOWR(PVRSRV_BRIDGE_SYNC_OPS_CMD_FIRST+6) -#define PVRSRV_BRIDGE_SYNC_OPS_FLUSH_TO_DELTA PVRSRV_IOWR(PVRSRV_BRIDGE_SYNC_OPS_CMD_FIRST+7) -#define PVRSRV_BRIDGE_ALLOC_SYNC_INFO PVRSRV_IOWR(PVRSRV_BRIDGE_SYNC_OPS_CMD_FIRST+8) -#define PVRSRV_BRIDGE_FREE_SYNC_INFO PVRSRV_IOWR(PVRSRV_BRIDGE_SYNC_OPS_CMD_FIRST+9) -#define PVRSRV_BRIDGE_SYNC_OPS_CMD_LAST (PVRSRV_BRIDGE_SYNC_OPS_CMD_FIRST+9) - -/* 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; - IMG_VOID *pvData; - -}PVRSRV_BRIDGE_RETURN; - - -/****************************************************************************** - * bridge packaging structure - *****************************************************************************/ -typedef struct PVRSRV_BRIDGE_PACKAGE_TAG -{ - 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; /*!< kernel servcies handle */ -#else - 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; /* 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; /* 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; /* 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; /* Must be first member of structure */ -#if defined (SUPPORT_SID_INTERFACE) - IMG_SID hDeviceKM; -#else - IMG_HANDLE hDeviceKM; -#endif -} PVRSRV_BRIDGE_IN_CLOSE_DISPCLASS_DEVICE; - - -/****************************************************************************** - * 'bridge in' enum display class formats - *****************************************************************************/ -typedef struct PVRSRV_BRIDGE_IN_ENUM_DISPCLASS_FORMATS_TAG -{ - IMG_UINT32 ui32BridgeFlags; /* Must be first member of structure */ -#if defined (SUPPORT_SID_INTERFACE) - IMG_SID hDeviceKM; -#else - IMG_HANDLE hDeviceKM; -#endif -} PVRSRV_BRIDGE_IN_ENUM_DISPCLASS_FORMATS; - - -/****************************************************************************** - * 'bridge in' get display class sysbuffer - *****************************************************************************/ -typedef struct PVRSRV_BRIDGE_IN_GET_DISPCLASS_SYSBUFFER_TAG -{ - IMG_UINT32 ui32BridgeFlags; /* Must be first member of structure */ -#if defined (SUPPORT_SID_INTERFACE) - IMG_SID hDeviceKM; -#else - IMG_HANDLE hDeviceKM; -#endif -} PVRSRV_BRIDGE_IN_GET_DISPCLASS_SYSBUFFER; - - -/****************************************************************************** - * 'bridge in' display class info - *****************************************************************************/ -typedef struct PVRSRV_BRIDGE_IN_GET_DISPCLASS_INFO_TAG -{ - IMG_UINT32 ui32BridgeFlags; /* Must be first member of structure */ -#if defined (SUPPORT_SID_INTERFACE) - IMG_SID hDeviceKM; -#else - IMG_HANDLE hDeviceKM; -#endif -} PVRSRV_BRIDGE_IN_GET_DISPCLASS_INFO; - - -/****************************************************************************** - * 'bridge in' close buffer class device - *****************************************************************************/ -typedef struct PVRSRV_BRIDGE_IN_CLOSE_BUFFERCLASS_DEVICE_TAG -{ - IMG_UINT32 ui32BridgeFlags; /* Must be first member of structure */ -#if defined (SUPPORT_SID_INTERFACE) - IMG_SID hDeviceKM; -#else - IMG_HANDLE hDeviceKM; -#endif -} PVRSRV_BRIDGE_IN_CLOSE_BUFFERCLASS_DEVICE; - - -/****************************************************************************** - * 'bridge in' close buffer class device - *****************************************************************************/ -typedef struct PVRSRV_BRIDGE_IN_GET_BUFFERCLASS_INFO_TAG -{ - IMG_UINT32 ui32BridgeFlags; /* Must be first member of structure */ -#if defined (SUPPORT_SID_INTERFACE) - IMG_SID hDeviceKM; -#else - IMG_HANDLE hDeviceKM; -#endif -} PVRSRV_BRIDGE_IN_GET_BUFFERCLASS_INFO; - - -/****************************************************************************** - * 'bridge out' acquire device info - *****************************************************************************/ -typedef struct PVRSRV_BRIDGE_IN_RELEASE_DEVICEINFO_TAG -{ - IMG_UINT32 ui32BridgeFlags; /* Must be first member of structure */ -#if defined (SUPPORT_SID_INTERFACE) - IMG_SID hDevCookie; -#else - IMG_HANDLE hDevCookie; -#endif - -} PVRSRV_BRIDGE_IN_RELEASE_DEVICEINFO; - - -/****************************************************************************** - * 'bridge in' free class devices info. - *****************************************************************************/ -typedef struct PVRSRV_BRIDGE_IN_FREE_CLASSDEVICEINFO_TAG -{ - 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; /* Must be first member of structure */ -#if defined (SUPPORT_SID_INTERFACE) - IMG_SID hDevCookie; - IMG_SID hDevMemContext; -#else - IMG_HANDLE hDevCookie; - IMG_HANDLE hDevMemContext; -#endif - -}PVRSRV_BRIDGE_IN_GET_DEVMEM_HEAPINFO; - - -/****************************************************************************** - * 'bridge in' create device memory context - *****************************************************************************/ -typedef struct PVRSRV_BRIDGE_IN_CREATE_DEVMEMCONTEXT_TAG -{ - IMG_UINT32 ui32BridgeFlags; /* Must be first member of structure */ -#if defined (SUPPORT_SID_INTERFACE) - IMG_SID hDevCookie; -#else - IMG_HANDLE hDevCookie; -#endif - -}PVRSRV_BRIDGE_IN_CREATE_DEVMEMCONTEXT; - - -/****************************************************************************** - * 'bridge in' destroy device memory context - *****************************************************************************/ -typedef struct PVRSRV_BRIDGE_IN_DESTROY_DEVMEMCONTEXT_TAG -{ - IMG_UINT32 ui32BridgeFlags; /* Must be first member of structure */ -#if defined (SUPPORT_SID_INTERFACE) - IMG_SID hDevCookie; - IMG_SID hDevMemContext; -#else - IMG_HANDLE hDevCookie; - IMG_HANDLE hDevMemContext; -#endif - -}PVRSRV_BRIDGE_IN_DESTROY_DEVMEMCONTEXT; - - -/****************************************************************************** - * 'bridge in' alloc device memory - *****************************************************************************/ -typedef struct PVRSRV_BRIDGE_IN_ALLOCDEVICEMEM_TAG -{ - IMG_UINT32 ui32BridgeFlags; /* Must be first member of structure */ -#if defined (SUPPORT_SID_INTERFACE) - IMG_SID hDevCookie; - IMG_SID hDevMemHeap; -#else - IMG_HANDLE hDevCookie; - IMG_HANDLE hDevMemHeap; -#endif - IMG_UINT32 ui32Attribs; - IMG_SIZE_T ui32Size; - IMG_SIZE_T ui32Alignment; - IMG_PVOID pvPrivData; - IMG_UINT32 ui32PrivDataLength; - - 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; /* Must be first member of structure */ -#if defined (SUPPORT_SID_INTERFACE) - IMG_SID hKernelMemInfo; -#else - PVRSRV_KERNEL_MEM_INFO *psKernelMemInfo; -#endif - -}PVRSRV_BRIDGE_IN_MAPMEMINFOTOUSER; - -/****************************************************************************** - * 'bridge in' unmap meminfo from user mode - *****************************************************************************/ -typedef struct PVRSRV_BRIDGE_IN_UNMAPMEMINFOFROMUSER_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 - IMG_PVOID pvLinAddr; -#if defined (SUPPORT_SID_INTERFACE) - IMG_SID hMappingInfo; -#else - IMG_HANDLE hMappingInfo; -#endif - -}PVRSRV_BRIDGE_IN_UNMAPMEMINFOFROMUSER; - -/****************************************************************************** - * 'bridge in' free device memory - *****************************************************************************/ -typedef struct PVRSRV_BRIDGE_IN_FREEDEVICEMEM_TAG -{ - IMG_UINT32 ui32BridgeFlags; /* Must be first member of structure */ -#if defined (SUPPORT_SID_INTERFACE) - IMG_SID hDevCookie; - IMG_SID hKernelMemInfo; -#else - IMG_HANDLE hDevCookie; - PVRSRV_KERNEL_MEM_INFO *psKernelMemInfo; -#endif - PVRSRV_CLIENT_MEM_INFO sClientMemInfo; - -}PVRSRV_BRIDGE_IN_FREEDEVICEMEM; - -/****************************************************************************** - * 'bridge in' export device memory - *****************************************************************************/ -typedef struct PVRSRV_BRIDGE_IN_EXPORTDEVICEMEM_TAG -{ - IMG_UINT32 ui32BridgeFlags; /* Must be first member of structure */ -#if defined (SUPPORT_SID_INTERFACE) - IMG_SID hDevCookie; - IMG_SID hKernelMemInfo; -#else - IMG_HANDLE hDevCookie; - PVRSRV_KERNEL_MEM_INFO *psKernelMemInfo; -#endif - -}PVRSRV_BRIDGE_IN_EXPORTDEVICEMEM; - -/****************************************************************************** - * '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; /* 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; /* Must be first member of structure */ -#if defined (SUPPORT_SID_INTERFACE) - IMG_SID hDevCookie; -#else - IMG_HANDLE hDevCookie; -#endif - IMG_SIZE_T ui32QueueSize; - -}PVRSRV_BRIDGE_IN_CREATECOMMANDQUEUE; - - -/****************************************************************************** - * 'bridge in' destroy Cmd Q - *****************************************************************************/ -typedef struct PVRSRV_BRIDGE_IN_DESTROYCOMMANDQUEUE_TAG -{ - IMG_UINT32 ui32BridgeFlags; /* Must be first member of structure */ -#if defined (SUPPORT_SID_INTERFACE) - IMG_SID hDevCookie; -#else - IMG_HANDLE hDevCookie; -#endif - PVRSRV_QUEUE_INFO *psQueueInfo; - -}PVRSRV_BRIDGE_IN_DESTROYCOMMANDQUEUE; - - -/****************************************************************************** - * 'bridge in' get full map data - *****************************************************************************/ -typedef struct PVRSRV_BRIDGE_IN_MHANDLE_TO_MMAP_DATA_TAG -{ - IMG_UINT32 ui32BridgeFlags; /* Must be first member of structure */ -#if defined (SUPPORT_SID_INTERFACE) - IMG_SID hMHandle; /* Handle associated with the memory that needs to be mapped */ -#else - 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; /* Must be first member of structure */ -#if defined (SUPPORT_SID_INTERFACE) - IMG_SID hMHandle; /* Handle associated with the memory that needs to be mapped */ -#else - 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; /* Must be first member of structure */ -#if defined (SUPPORT_SID_INTERFACE) - IMG_SID hDevMemHeap; -#else - IMG_HANDLE hDevMemHeap; -#endif - IMG_DEV_VIRTADDR *psDevVAddr; - IMG_SIZE_T ui32Size; - IMG_SIZE_T ui32Alignment; - -}PVRSRV_BRIDGE_IN_RESERVE_DEV_VIRTMEM; - -/****************************************************************************** - * 'bridge out' connect to services - *****************************************************************************/ -typedef struct PVRSRV_BRIDGE_OUT_CONNECT_SERVICES_TAG -{ - PVRSRV_ERROR eError; -#if defined (SUPPORT_SID_INTERFACE) - IMG_SID hKernelServices; -#else - IMG_HANDLE hKernelServices; -#endif -}PVRSRV_BRIDGE_OUT_CONNECT_SERVICES; - -/****************************************************************************** - * 'bridge out' reserve vm - *****************************************************************************/ -typedef struct PVRSRV_BRIDGE_OUT_RESERVE_DEV_VIRTMEM_TAG -{ - PVRSRV_ERROR eError; -#if defined (SUPPORT_SID_INTERFACE) - IMG_SID hKernelMemInfo; - IMG_SID hKernelSyncInfo; -#else - PVRSRV_KERNEL_MEM_INFO *psKernelMemInfo; - PVRSRV_KERNEL_SYNC_INFO *psKernelSyncInfo; -#endif - PVRSRV_CLIENT_MEM_INFO sClientMemInfo; - PVRSRV_CLIENT_SYNC_INFO sClientSyncInfo; - -}PVRSRV_BRIDGE_OUT_RESERVE_DEV_VIRTMEM; - - -/****************************************************************************** - * 'bridge in' free vm - *****************************************************************************/ -typedef struct PVRSRV_BRIDGE_IN_FREE_DEV_VIRTMEM_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_CLIENT_MEM_INFO sClientMemInfo; - PVRSRV_CLIENT_SYNC_INFO sClientSyncInfo; - -}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; /* Must be first member of structure */ -#if defined (SUPPORT_SID_INTERFACE) - IMG_SID hKernelMemInfo; - IMG_SID hDstDevMemHeap; -#else - IMG_HANDLE hKernelMemInfo; - IMG_HANDLE hDstDevMemHeap; -#endif - -}PVRSRV_BRIDGE_IN_MAP_DEV_MEMORY; - - -/****************************************************************************** - * 'bridge out' map dev memory allocation to another heap - *****************************************************************************/ -typedef struct PVRSRV_BRIDGE_OUT_MAP_DEV_MEMORY_TAG -{ - PVRSRV_ERROR eError; -#if defined (SUPPORT_SID_INTERFACE) - IMG_SID hDstKernelMemInfo; -#else - PVRSRV_KERNEL_MEM_INFO *psDstKernelMemInfo; -#endif - PVRSRV_CLIENT_MEM_INFO sDstClientMemInfo; - PVRSRV_CLIENT_SYNC_INFO sDstClientSyncInfo; - -}PVRSRV_BRIDGE_OUT_MAP_DEV_MEMORY; - - -/****************************************************************************** - * 'bridge in' unmap dev memory allocation - *****************************************************************************/ -typedef struct PVRSRV_BRIDGE_IN_UNMAP_DEV_MEMORY_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_CLIENT_MEM_INFO sClientMemInfo; - PVRSRV_CLIENT_SYNC_INFO sClientSyncInfo; - -}PVRSRV_BRIDGE_IN_UNMAP_DEV_MEMORY; - - -/****************************************************************************** - * 'bridge in' map pages - *****************************************************************************/ -typedef struct PVRSRV_BRIDGE_IN_MAP_EXT_MEMORY_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 - IMG_SYS_PHYADDR *psSysPAddr; - IMG_UINT32 ui32Flags; - -}PVRSRV_BRIDGE_IN_MAP_EXT_MEMORY; - -/****************************************************************************** - * 'bridge in' unmap pages - *****************************************************************************/ -typedef struct PVRSRV_BRIDGE_IN_UNMAP_EXT_MEMORY_TAG -{ - 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; /* Must be first member of structure */ -#if defined (SUPPORT_SID_INTERFACE) - IMG_SID hDeviceClassBuffer; - IMG_SID hDevMemContext; -#else - IMG_HANDLE hDeviceClassBuffer; - IMG_HANDLE hDevMemContext; -#endif - -}PVRSRV_BRIDGE_IN_MAP_DEVICECLASS_MEMORY; - - -/****************************************************************************** - * 'bridge out' map device class buffer pages - *****************************************************************************/ -typedef struct PVRSRV_BRIDGE_OUT_MAP_DEVICECLASS_MEMORY_TAG -{ - PVRSRV_ERROR eError; - PVRSRV_CLIENT_MEM_INFO sClientMemInfo; - PVRSRV_CLIENT_SYNC_INFO sClientSyncInfo; -#if defined (SUPPORT_SID_INTERFACE) - IMG_SID hKernelMemInfo; - IMG_SID hMappingInfo; -#else - PVRSRV_KERNEL_MEM_INFO *psKernelMemInfo; - IMG_HANDLE hMappingInfo; -#endif - -}PVRSRV_BRIDGE_OUT_MAP_DEVICECLASS_MEMORY; - - -/****************************************************************************** - * 'bridge in' unmap device class buffer pages - *****************************************************************************/ -typedef struct PVRSRV_BRIDGE_IN_UNMAP_DEVICECLASS_MEMORY_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_CLIENT_MEM_INFO sClientMemInfo; - PVRSRV_CLIENT_SYNC_INFO sClientSyncInfo; - -}PVRSRV_BRIDGE_IN_UNMAP_DEVICECLASS_MEMORY; - - -/****************************************************************************** - * 'bridge in' pdump memory poll - *****************************************************************************/ -typedef struct PVRSRV_BRIDGE_IN_PDUMP_MEMPOL_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 - IMG_UINT32 ui32Offset; - IMG_UINT32 ui32Value; - IMG_UINT32 ui32Mask; - PDUMP_POLL_OPERATOR eOperator; - IMG_UINT32 ui32Flags; - -}PVRSRV_BRIDGE_IN_PDUMP_MEMPOL; - -/****************************************************************************** - * 'bridge in' pdump sync poll - *****************************************************************************/ -typedef struct PVRSRV_BRIDGE_IN_PDUMP_SYNCPOL_TAG -{ - IMG_UINT32 ui32BridgeFlags; /* Must be first member of structure */ -#if defined (SUPPORT_SID_INTERFACE) - IMG_SID hKernelSyncInfo; -#else - PVRSRV_KERNEL_SYNC_INFO *psKernelSyncInfo; -#endif - IMG_BOOL bIsRead; - IMG_BOOL bUseLastOpDumpVal; - IMG_UINT32 ui32Value; - IMG_UINT32 ui32Mask; - -}PVRSRV_BRIDGE_IN_PDUMP_SYNCPOL; - - -/****************************************************************************** - * 'bridge in' pdump dump memory - *****************************************************************************/ -typedef struct PVRSRV_BRIDGE_IN_PDUMP_DUMPMEM_TAG -{ - IMG_UINT32 ui32BridgeFlags; /* Must be first member of structure */ - IMG_PVOID pvLinAddr; - IMG_PVOID pvAltLinAddr; -#if defined (SUPPORT_SID_INTERFACE) - IMG_SID hKernelMemInfo; -#else - PVRSRV_KERNEL_MEM_INFO *psKernelMemInfo; -#endif - IMG_UINT32 ui32Offset; - IMG_UINT32 ui32Bytes; - IMG_UINT32 ui32Flags; - -}PVRSRV_BRIDGE_IN_PDUMP_DUMPMEM; - - -/****************************************************************************** - * 'bridge in' pdump dump sync - *****************************************************************************/ -typedef struct PVRSRV_BRIDGE_IN_PDUMP_DUMPSYNC_TAG -{ - IMG_UINT32 ui32BridgeFlags; /* Must be first member of structure */ - IMG_PVOID pvAltLinAddr; -#if defined (SUPPORT_SID_INTERFACE) - IMG_SID hKernelSyncInfo; -#else - PVRSRV_KERNEL_SYNC_INFO *psKernelSyncInfo; -#endif - IMG_UINT32 ui32Offset; - IMG_UINT32 ui32Bytes; - -}PVRSRV_BRIDGE_IN_PDUMP_DUMPSYNC; - - -/****************************************************************************** - * 'bridge in' pdump dump reg - *****************************************************************************/ -typedef struct PVRSRV_BRIDGE_IN_PDUMP_DUMPREG_TAG -{ - IMG_UINT32 ui32BridgeFlags; /* Must be first member of structure */ -#if defined (SUPPORT_SID_INTERFACE) - IMG_SID hDevCookie; -#else - IMG_HANDLE hDevCookie; -#endif - PVRSRV_HWREG sHWReg; - IMG_UINT32 ui32Flags; - IMG_CHAR szRegRegion[32]; - -}PVRSRV_BRIDGE_IN_PDUMP_DUMPREG; - -/****************************************************************************** - * 'bridge in' pdump dump reg - *****************************************************************************/ -typedef struct PVRSRV_BRIDGE_IN_PDUMP_REGPOL_TAG -{ - IMG_UINT32 ui32BridgeFlags; /* Must be first member of structure */ -#if defined (SUPPORT_SID_INTERFACE) - IMG_SID hDevCookie; -#else - IMG_HANDLE hDevCookie; -#endif - PVRSRV_HWREG sHWReg; - IMG_UINT32 ui32Mask; - IMG_UINT32 ui32Flags; - IMG_CHAR szRegRegion[32]; -}PVRSRV_BRIDGE_IN_PDUMP_REGPOL; - -/****************************************************************************** - * 'bridge in' pdump dump PD reg - *****************************************************************************/ -typedef struct PVRSRV_BRIDGE_IN_PDUMP_DUMPPDREG_TAG -{ - 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; /* Must be first member of structure */ -#if defined (SUPPORT_SID_INTERFACE) - IMG_SID hDevCookie; - IMG_SID hKernelMemInfo; -#else - IMG_HANDLE hDevCookie; - IMG_HANDLE hKernelMemInfo; -#endif - IMG_DEV_PHYADDR *pPages; - IMG_UINT32 ui32NumPages; - IMG_DEV_VIRTADDR sDevVAddr; - IMG_UINT32 ui32Start; - IMG_UINT32 ui32Length; - IMG_UINT32 ui32Flags; - -}PVRSRV_BRIDGE_IN_PDUMP_MEMPAGES; - -/****************************************************************************** - * 'bridge in' pdump dump comment - *****************************************************************************/ -typedef struct PVRSRV_BRIDGE_IN_PDUMP_COMMENT_TAG -{ - 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; /* 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; /* Must be first member of structure */ -#if defined (SUPPORT_SID_INTERFACE) - IMG_SID hDevCookie; -#else - IMG_HANDLE hDevCookie; -#endif - IMG_CHAR szFileName[PVRSRV_PDUMP_MAX_FILENAME_SIZE]; - IMG_UINT32 ui32FileOffset; - IMG_UINT32 ui32Width; - IMG_UINT32 ui32Height; - IMG_UINT32 ui32StrideInBytes; - IMG_DEV_VIRTADDR sDevBaseAddr; -#if defined (SUPPORT_SID_INTERFACE) - IMG_SID hDevMemContext; -#else - IMG_HANDLE hDevMemContext; -#endif - IMG_UINT32 ui32Size; - PDUMP_PIXEL_FORMAT ePixelFormat; - PDUMP_MEM_FORMAT eMemFormat; - IMG_UINT32 ui32Flags; - -}PVRSRV_BRIDGE_IN_PDUMP_BITMAP; - - -/****************************************************************************** - * 'bridge in' pdump dump read reg - *****************************************************************************/ -typedef struct PVRSRV_BRIDGE_IN_PDUMP_READREG_TAG -{ - IMG_UINT32 ui32BridgeFlags; /* Must be first member of structure */ -#if defined (SUPPORT_SID_INTERFACE) - IMG_SID hDevCookie; -#else - IMG_HANDLE hDevCookie; -#endif - IMG_CHAR szFileName[PVRSRV_PDUMP_MAX_FILENAME_SIZE]; - IMG_UINT32 ui32FileOffset; - IMG_UINT32 ui32Address; - IMG_UINT32 ui32Size; - IMG_UINT32 ui32Flags; - IMG_CHAR szRegRegion[32]; - -}PVRSRV_BRIDGE_IN_PDUMP_READREG; - -/****************************************************************************** - * 'bridge in' pdump dump driver-info - *****************************************************************************/ -typedef struct PVRSRV_BRIDGE_IN_PDUMP_DRIVERINFO_TAG -{ - IMG_UINT32 ui32BridgeFlags; /* Must be first member of structure */ - IMG_CHAR szString[PVRSRV_PDUMP_MAX_COMMENT_SIZE]; - IMG_BOOL bContinuous; - -}PVRSRV_BRIDGE_IN_PDUMP_DRIVERINFO; - -typedef struct PVRSRV_BRIDGE_IN_PDUMP_DUMPPDDEVPADDR_TAG -{ - IMG_UINT32 ui32BridgeFlags; /* Must be first member of structure */ -#if defined (SUPPORT_SID_INTERFACE) - IMG_SID hKernelMemInfo; -#else - IMG_HANDLE hKernelMemInfo; -#endif - IMG_UINT32 ui32Offset; - IMG_DEV_PHYADDR sPDDevPAddr; -}PVRSRV_BRIDGE_IN_PDUMP_DUMPPDDEVPADDR; - -/****************************************************************************** - * 'bridge in' pdump cycle count register read - *****************************************************************************/ -typedef struct PVRSRV_BRIDGE_PDUM_IN_CYCLE_COUNT_REG_READ_TAG -{ - IMG_UINT32 ui32BridgeFlags; /* Must be first member of structure */ -#if defined (SUPPORT_SID_INTERFACE) - IMG_SID hDevCookie; -#else - IMG_HANDLE hDevCookie; -#endif - IMG_UINT32 ui32RegOffset; - IMG_BOOL bLastFrame; -}PVRSRV_BRIDGE_IN_PDUMP_CYCLE_COUNT_REG_READ; - -/***************************************************************************** - * Output structures for BRIDGEs - ****************************************************************************/ - -/****************************************************************************** - * 'bridge out' enum. devices - *****************************************************************************/ -typedef struct PVRSRV_BRIDGE_OUT_ENUMDEVICE_TAG -{ - PVRSRV_ERROR eError; - IMG_UINT32 ui32NumDevices; - PVRSRV_DEVICE_IDENTIFIER asDeviceIdentifier[PVRSRV_MAX_DEVICES]; - -}PVRSRV_BRIDGE_OUT_ENUMDEVICE; - - -/****************************************************************************** - * 'bridge out' acquire device info - *****************************************************************************/ -typedef struct PVRSRV_BRIDGE_OUT_ACQUIRE_DEVICEINFO_TAG -{ - - PVRSRV_ERROR eError; -#if defined (SUPPORT_SID_INTERFACE) - IMG_SID hDevCookie; -#else - IMG_HANDLE hDevCookie; -#endif - -} PVRSRV_BRIDGE_OUT_ACQUIRE_DEVICEINFO; - - -/****************************************************************************** - * 'bridge out' enum. class devices - *****************************************************************************/ -typedef struct PVRSRV_BRIDGE_OUT_ENUMCLASS_TAG -{ - PVRSRV_ERROR eError; - IMG_UINT32 ui32NumDevices; - IMG_UINT32 ui32DevID[PVRSRV_MAX_DEVICES]; - -}PVRSRV_BRIDGE_OUT_ENUMCLASS; - - -/****************************************************************************** - * 'bridge in' open display class devices - *****************************************************************************/ -typedef struct PVRSRV_BRIDGE_IN_OPEN_DISPCLASS_DEVICE_TAG -{ - IMG_UINT32 ui32BridgeFlags; /* Must be first member of structure */ - IMG_UINT32 ui32DeviceID; -#if defined (SUPPORT_SID_INTERFACE) - IMG_SID hDevCookie; -#else - IMG_HANDLE hDevCookie; -#endif - -}PVRSRV_BRIDGE_IN_OPEN_DISPCLASS_DEVICE; - -/****************************************************************************** - * 'bridge out' open display class devices - *****************************************************************************/ -typedef struct PVRSRV_BRIDGE_OUT_OPEN_DISPCLASS_DEVICE_TAG -{ - PVRSRV_ERROR eError; -#if defined (SUPPORT_SID_INTERFACE) - IMG_SID hDeviceKM; -#else - IMG_HANDLE hDeviceKM; -#endif - -}PVRSRV_BRIDGE_OUT_OPEN_DISPCLASS_DEVICE; - - -/****************************************************************************** - * 'bridge in' wrap pages - *****************************************************************************/ -typedef struct PVRSRV_BRIDGE_IN_WRAP_EXT_MEMORY_TAG -{ - IMG_UINT32 ui32BridgeFlags; /* Must be first member of structure */ -#if defined (SUPPORT_SID_INTERFACE) - IMG_SID hDevCookie; - IMG_SID hDevMemContext; -#else - IMG_HANDLE hDevCookie; - IMG_HANDLE hDevMemContext; -#endif - IMG_VOID *pvLinAddr; - IMG_SIZE_T ui32ByteSize; - IMG_SIZE_T ui32PageOffset; - IMG_BOOL bPhysContig; - IMG_UINT32 ui32NumPageTableEntries; - IMG_SYS_PHYADDR *psSysPAddr; - IMG_UINT32 ui32Flags; - -}PVRSRV_BRIDGE_IN_WRAP_EXT_MEMORY; - -/****************************************************************************** - * 'bridge out' wrap pages - *****************************************************************************/ -typedef struct PVRSRV_BRIDGE_OUT_WRAP_EXT_MEMORY_TAG -{ - PVRSRV_ERROR eError; - PVRSRV_CLIENT_MEM_INFO sClientMemInfo; - PVRSRV_CLIENT_SYNC_INFO sClientSyncInfo; - -}PVRSRV_BRIDGE_OUT_WRAP_EXT_MEMORY; - -/****************************************************************************** - * 'bridge in' unwrap pages - *****************************************************************************/ -typedef struct PVRSRV_BRIDGE_IN_UNWRAP_EXT_MEMORY_TAG -{ - IMG_UINT32 ui32BridgeFlags; /* Must be first member of structure */ -#if defined (SUPPORT_SID_INTERFACE) - IMG_SID hKernelMemInfo; -#else - IMG_HANDLE hKernelMemInfo; -#endif - PVRSRV_CLIENT_MEM_INFO sClientMemInfo; - PVRSRV_CLIENT_SYNC_INFO sClientSyncInfo; - -}PVRSRV_BRIDGE_IN_UNWRAP_EXT_MEMORY; - - -#define PVRSRV_MAX_DC_DISPLAY_FORMATS 10 -#define PVRSRV_MAX_DC_DISPLAY_DIMENSIONS 10 -#define PVRSRV_MAX_DC_SWAPCHAIN_BUFFERS 4 -#define PVRSRV_MAX_DC_CLIP_RECTS 32 - -/****************************************************************************** - * 'bridge out' enum display class formats - *****************************************************************************/ -typedef struct PVRSRV_BRIDGE_OUT_ENUM_DISPCLASS_FORMATS_TAG -{ - PVRSRV_ERROR eError; - IMG_UINT32 ui32Count; - DISPLAY_FORMAT asFormat[PVRSRV_MAX_DC_DISPLAY_FORMATS]; - -}PVRSRV_BRIDGE_OUT_ENUM_DISPCLASS_FORMATS; - - -/****************************************************************************** - * 'bridge in' enum display class dims - *****************************************************************************/ -typedef struct PVRSRV_BRIDGE_IN_ENUM_DISPCLASS_DIMS_TAG -{ - IMG_UINT32 ui32BridgeFlags; /* Must be first member of structure */ -#if defined (SUPPORT_SID_INTERFACE) - IMG_SID hDeviceKM; -#else - IMG_HANDLE hDeviceKM; -#endif - DISPLAY_FORMAT sFormat; - -}PVRSRV_BRIDGE_IN_ENUM_DISPCLASS_DIMS; - - -/****************************************************************************** - * 'bridge out' enum display class dims - *****************************************************************************/ -typedef struct PVRSRV_BRIDGE_OUT_ENUM_DISPCLASS_DIMS_TAG -{ - PVRSRV_ERROR eError; - IMG_UINT32 ui32Count; - DISPLAY_DIMS asDim[PVRSRV_MAX_DC_DISPLAY_DIMENSIONS]; - -}PVRSRV_BRIDGE_OUT_ENUM_DISPCLASS_DIMS; - - -/****************************************************************************** - * 'bridge out' enum display class dims - *****************************************************************************/ -typedef struct PVRSRV_BRIDGE_OUT_GET_DISPCLASS_INFO_TAG -{ - PVRSRV_ERROR eError; - DISPLAY_INFO sDisplayInfo; - -}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; -#if defined (SUPPORT_SID_INTERFACE) - IMG_SID hBuffer; -#else - IMG_HANDLE hBuffer; -#endif - -}PVRSRV_BRIDGE_OUT_GET_DISPCLASS_SYSBUFFER; - - -/****************************************************************************** - * 'bridge in' create swap chain - *****************************************************************************/ -typedef struct PVRSRV_BRIDGE_IN_CREATE_DISPCLASS_SWAPCHAIN_TAG -{ - IMG_UINT32 ui32BridgeFlags; /* Must be first member of structure */ -#if defined (SUPPORT_SID_INTERFACE) - IMG_SID hDeviceKM; -#else - IMG_HANDLE hDeviceKM; -#endif - IMG_UINT32 ui32Flags; - DISPLAY_SURF_ATTRIBUTES sDstSurfAttrib; - DISPLAY_SURF_ATTRIBUTES sSrcSurfAttrib; - IMG_UINT32 ui32BufferCount; - IMG_UINT32 ui32OEMFlags; - IMG_UINT32 ui32SwapChainID; - -} PVRSRV_BRIDGE_IN_CREATE_DISPCLASS_SWAPCHAIN; - - -/****************************************************************************** - * 'bridge out' create swap chain - *****************************************************************************/ -typedef struct PVRSRV_BRIDGE_OUT_CREATE_DISPCLASS_SWAPCHAIN_TAG -{ - PVRSRV_ERROR eError; -#if defined (SUPPORT_SID_INTERFACE) - IMG_SID hSwapChain; -#else - IMG_HANDLE hSwapChain; -#endif - IMG_UINT32 ui32SwapChainID; - -} PVRSRV_BRIDGE_OUT_CREATE_DISPCLASS_SWAPCHAIN; - - -/****************************************************************************** - * 'bridge in' destroy swap chain - *****************************************************************************/ -typedef struct PVRSRV_BRIDGE_IN_DESTROY_DISPCLASS_SWAPCHAIN_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 - -} PVRSRV_BRIDGE_IN_DESTROY_DISPCLASS_SWAPCHAIN; - - -/****************************************************************************** - * 'bridge in' set DST/SRC rect - *****************************************************************************/ -typedef struct PVRSRV_BRIDGE_IN_SET_DISPCLASS_RECT_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_RECT sRect; - -} PVRSRV_BRIDGE_IN_SET_DISPCLASS_RECT; - - -/****************************************************************************** - * 'bridge in' set DST/SRC colourkey - *****************************************************************************/ -typedef struct PVRSRV_BRIDGE_IN_SET_DISPCLASS_COLOURKEY_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 ui32CKColour; - -} PVRSRV_BRIDGE_IN_SET_DISPCLASS_COLOURKEY; - - -/****************************************************************************** - * 'bridge in' get buffers (from swapchain) - *****************************************************************************/ -typedef struct PVRSRV_BRIDGE_IN_GET_DISPCLASS_BUFFERS_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 - -} PVRSRV_BRIDGE_IN_GET_DISPCLASS_BUFFERS; - - -/****************************************************************************** - * 'bridge out' get buffers (from swapchain) - *****************************************************************************/ -typedef struct PVRSRV_BRIDGE_OUT_GET_DISPCLASS_BUFFERS_TAG -{ - PVRSRV_ERROR eError; - IMG_UINT32 ui32BufferCount; -#if defined (SUPPORT_SID_INTERFACE) - IMG_SID ahBuffer[PVRSRV_MAX_DC_SWAPCHAIN_BUFFERS]; -#else - IMG_HANDLE ahBuffer[PVRSRV_MAX_DC_SWAPCHAIN_BUFFERS]; -#endif - IMG_SYS_PHYADDR asPhyAddr[PVRSRV_MAX_DC_SWAPCHAIN_BUFFERS]; -} PVRSRV_BRIDGE_OUT_GET_DISPCLASS_BUFFERS; - - -/****************************************************************************** - * 'bridge in' swap to buffer - *****************************************************************************/ -typedef struct PVRSRV_BRIDGE_IN_SWAP_DISPCLASS_TO_BUFFER_TAG -{ - IMG_UINT32 ui32BridgeFlags; /* Must be first member of structure */ -#if defined (SUPPORT_SID_INTERFACE) - IMG_SID hDeviceKM; - IMG_SID hBuffer; -#else - IMG_HANDLE hDeviceKM; - IMG_HANDLE hBuffer; -#endif - IMG_UINT32 ui32SwapInterval; -#if defined (SUPPORT_SID_INTERFACE) - IMG_SID hPrivateTag; -#else - IMG_HANDLE hPrivateTag; -#endif - IMG_UINT32 ui32ClipRectCount; - IMG_RECT sClipRect[PVRSRV_MAX_DC_CLIP_RECTS]; - -} PVRSRV_BRIDGE_IN_SWAP_DISPCLASS_TO_BUFFER; - -/****************************************************************************** - * '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; /* 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 - -} 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; /* Must be first member of structure */ - IMG_UINT32 ui32DeviceID; -#if defined (SUPPORT_SID_INTERFACE) - IMG_SID hDevCookie; -#else - IMG_HANDLE hDevCookie; -#endif - -} PVRSRV_BRIDGE_IN_OPEN_BUFFERCLASS_DEVICE; - - -/****************************************************************************** - * 'bridge out' open buffer class device - *****************************************************************************/ -typedef struct PVRSRV_BRIDGE_OUT_OPEN_BUFFERCLASS_DEVICE_TAG -{ - PVRSRV_ERROR eError; -#if defined (SUPPORT_SID_INTERFACE) - IMG_SID hDeviceKM; -#else - IMG_HANDLE hDeviceKM; -#endif - -} PVRSRV_BRIDGE_OUT_OPEN_BUFFERCLASS_DEVICE; - - -/****************************************************************************** - * 'bridge out' get buffer class info - *****************************************************************************/ -typedef struct PVRSRV_BRIDGE_OUT_GET_BUFFERCLASS_INFO_TAG -{ - PVRSRV_ERROR eError; - BUFFER_INFO sBufferInfo; - -} PVRSRV_BRIDGE_OUT_GET_BUFFERCLASS_INFO; - - -/****************************************************************************** - * 'bridge in' get buffer class buffer - *****************************************************************************/ -typedef struct PVRSRV_BRIDGE_IN_GET_BUFFERCLASS_BUFFER_TAG -{ - IMG_UINT32 ui32BridgeFlags; /* Must be first member of structure */ -#if defined (SUPPORT_SID_INTERFACE) - IMG_SID hDeviceKM; -#else - IMG_HANDLE hDeviceKM; -#endif - IMG_UINT32 ui32BufferIndex; - -} PVRSRV_BRIDGE_IN_GET_BUFFERCLASS_BUFFER; - - -/****************************************************************************** - * 'bridge out' get buffer class buffer - *****************************************************************************/ -typedef struct PVRSRV_BRIDGE_OUT_GET_BUFFERCLASS_BUFFER_TAG -{ - PVRSRV_ERROR eError; -#if defined (SUPPORT_SID_INTERFACE) - IMG_SID hBuffer; -#else - IMG_HANDLE hBuffer; -#endif - -} PVRSRV_BRIDGE_OUT_GET_BUFFERCLASS_BUFFER; - - -/****************************************************************************** - * 'bridge out' get heap info - *****************************************************************************/ -typedef struct PVRSRV_BRIDGE_OUT_GET_DEVMEM_HEAPINFO_TAG -{ - PVRSRV_ERROR eError; - IMG_UINT32 ui32ClientHeapCount; - PVRSRV_HEAP_INFO sHeapInfo[PVRSRV_MAX_CLIENT_HEAPS]; - -} PVRSRV_BRIDGE_OUT_GET_DEVMEM_HEAPINFO; - - -/****************************************************************************** - * 'bridge out' create device memory context - *****************************************************************************/ -typedef struct PVRSRV_BRIDGE_OUT_CREATE_DEVMEMCONTEXT_TAG -{ - PVRSRV_ERROR eError; -#if defined (SUPPORT_SID_INTERFACE) - IMG_SID hDevMemContext; -#else - IMG_HANDLE hDevMemContext; -#endif - IMG_UINT32 ui32ClientHeapCount; - PVRSRV_HEAP_INFO sHeapInfo[PVRSRV_MAX_CLIENT_HEAPS]; - -} PVRSRV_BRIDGE_OUT_CREATE_DEVMEMCONTEXT; - - -/****************************************************************************** - * 'bridge out' create device memory context - *****************************************************************************/ -typedef struct PVRSRV_BRIDGE_OUT_CREATE_DEVMEMHEAP_TAG -{ - PVRSRV_ERROR eError; -#if defined (SUPPORT_SID_INTERFACE) - IMG_SID hDevMemHeap; -#else - IMG_HANDLE hDevMemHeap; -#endif - -} PVRSRV_BRIDGE_OUT_CREATE_DEVMEMHEAP; - - -/****************************************************************************** - * 'bridge out' alloc device memory - *****************************************************************************/ -typedef struct PVRSRV_BRIDGE_OUT_ALLOCDEVICEMEM_TAG -{ - PVRSRV_ERROR eError; -#if defined (SUPPORT_SID_INTERFACE) - IMG_SID hKernelMemInfo; -#else - PVRSRV_KERNEL_MEM_INFO *psKernelMemInfo; -#endif - PVRSRV_CLIENT_MEM_INFO sClientMemInfo; - PVRSRV_CLIENT_SYNC_INFO sClientSyncInfo; - -} PVRSRV_BRIDGE_OUT_ALLOCDEVICEMEM; - - -/****************************************************************************** - * 'bridge out' export device memory - *****************************************************************************/ -typedef struct PVRSRV_BRIDGE_OUT_EXPORTDEVICEMEM_TAG -{ - PVRSRV_ERROR eError; -#if defined (SUPPORT_SID_INTERFACE) - IMG_SID hMemInfo; -#else - IMG_HANDLE hMemInfo; -#endif -#if defined(SUPPORT_MEMINFO_IDS) - IMG_UINT64 ui64Stamp; -#endif - -} PVRSRV_BRIDGE_OUT_EXPORTDEVICEMEM; - - -/****************************************************************************** - * '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; - IMG_PVOID pvLinAddr; -#if defined (SUPPORT_SID_INTERFACE) - IMG_SID hMappingInfo; -#else - IMG_HANDLE hMappingInfo; -#endif - -}PVRSRV_BRIDGE_OUT_MAPMEMINFOTOUSER; - - -/****************************************************************************** - * 'bridge out' get free device memory - *****************************************************************************/ -typedef struct PVRSRV_BRIDGE_OUT_GETFREEDEVICEMEM_TAG -{ - PVRSRV_ERROR eError; - IMG_SIZE_T ui32Total; - IMG_SIZE_T ui32Free; - IMG_SIZE_T ui32LargestBlock; - -} PVRSRV_BRIDGE_OUT_GETFREEDEVICEMEM; - - -//#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; - -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; /* 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; - PVRSRV_MISC_INFO sMiscInfo; - -}PVRSRV_BRIDGE_OUT_GET_MISC_INFO; - - -/****************************************************************************** - * 'bridge in' get misc info - *****************************************************************************/ -typedef struct PVRSRV_BRIDGE_IN_RELEASE_MISC_INFO_TAG -{ - 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; - PVRSRV_MISC_INFO sMiscInfo; - -}PVRSRV_BRIDGE_OUT_RELEASE_MISC_INFO; - - -/****************************************************************************** - * 'bridge out' PDUMP is capturing - *****************************************************************************/ - -typedef struct PVRSRV_BRIDGE_OUT_PDUMP_ISCAPTURING_TAG -{ - PVRSRV_ERROR eError; - IMG_BOOL bIsCapturing; - -} PVRSRV_BRIDGE_OUT_PDUMP_ISCAPTURING; - -/****************************************************************************** - * 'bridge in' get FB mem stats - *****************************************************************************/ -typedef struct PVRSRV_BRIDGE_IN_GET_FB_STATS_TAG -{ - 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; /* Must be first member of structure */ -#if defined (SUPPORT_SID_INTERFACE) - IMG_SID hDevCookie; -#else - IMG_HANDLE hDevCookie; -#endif - IMG_SYS_PHYADDR sSysPhysAddr; - IMG_UINT32 uiSizeInBytes; - -} PVRSRV_BRIDGE_IN_MAPPHYSTOUSERSPACE; - - -/****************************************************************************** - * 'bridge out' Map CPU Physical to User Space - *****************************************************************************/ -typedef struct PVRSRV_BRIDGE_OUT_MAPPHYSTOUSERSPACE_TAG -{ - IMG_PVOID pvUserAddr; - IMG_UINT32 uiActualSize; - IMG_PVOID pvProcess; - -} PVRSRV_BRIDGE_OUT_MAPPHYSTOUSERSPACE; - - -/****************************************************************************** - * 'bridge in' Unmap CPU Physical to User Space - *****************************************************************************/ -typedef struct PVRSRV_BRIDGE_IN_UNMAPPHYSTOUSERSPACE_TAG -{ - IMG_UINT32 ui32BridgeFlags; /* Must be first member of structure */ -#if defined (SUPPORT_SID_INTERFACE) - IMG_SID hDevCookie; -#else - IMG_HANDLE hDevCookie; -#endif - IMG_PVOID pvUserAddr; - IMG_PVOID pvProcess; - -} 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; - IMG_UINT32 uiTblSize; - -} PVRSRV_BRIDGE_OUT_GETPHYSTOUSERSPACEMAP; - - -#if !defined (SUPPORT_SID_INTERFACE) -/****************************************************************************** - * 'bridge in' Register RTSIM process thread - *****************************************************************************/ -typedef struct PVRSRV_BRIDGE_IN_REGISTER_SIM_PROCESS_TAG -{ - 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; /*!< 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; - -} PVRSRV_BRIDGE_OUT_REGISTER_SIM_PROCESS; - - -/****************************************************************************** - * 'bridge in' Unregister RTSIM process thread - *****************************************************************************/ -typedef struct PVRSRV_BRIDGE_IN_UNREGISTER_SIM_PROCESS_TAG -{ - IMG_UINT32 ui32BridgeFlags; /* Must be first member of structure */ - IMG_HANDLE hDevCookie; - IMG_PVOID pvProcess; - 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; /* Must be first member of structure */ - IMG_HANDLE hDevCookie; - IMG_UINT32 ui32StatusAndMask; - PVRSRV_ERROR eError; - -} PVRSRV_BRIDGE_IN_PROCESS_SIMISR_EVENT; -#endif /* #if !defined (SUPPORT_SID_INTERFACE) */ - -/****************************************************************************** - * 'bridge in' initialisation server disconnect - *****************************************************************************/ -typedef struct PVRSRV_BRIDGE_IN_INITSRV_DISCONNECT_TAG -{ - 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; /* Must be first member of structure */ - IMG_UINT32 ui32Flags; - IMG_SIZE_T ui32Size; -}PVRSRV_BRIDGE_IN_ALLOC_SHARED_SYS_MEM; - -typedef struct PVRSRV_BRIDGE_OUT_ALLOC_SHARED_SYS_MEM_TAG -{ - PVRSRV_ERROR eError; -#if defined (SUPPORT_SID_INTERFACE) -#else - PVRSRV_KERNEL_MEM_INFO *psKernelMemInfo; -#endif - PVRSRV_CLIENT_MEM_INFO sClientMemInfo; -}PVRSRV_BRIDGE_OUT_ALLOC_SHARED_SYS_MEM; - -typedef struct PVRSRV_BRIDGE_IN_FREE_SHARED_SYS_MEM_TAG -{ -#if defined (SUPPORT_SID_INTERFACE) - IMG_SID hKernelMemInfo; - IMG_SID hMappingInfo; -#else - IMG_UINT32 ui32BridgeFlags; /* Must be first member of structure */ - PVRSRV_KERNEL_MEM_INFO *psKernelMemInfo; -#endif - PVRSRV_CLIENT_MEM_INFO sClientMemInfo; -}PVRSRV_BRIDGE_IN_FREE_SHARED_SYS_MEM; - -typedef struct PVRSRV_BRIDGE_OUT_FREE_SHARED_SYS_MEM_TAG -{ - PVRSRV_ERROR eError; -}PVRSRV_BRIDGE_OUT_FREE_SHARED_SYS_MEM; - -typedef struct PVRSRV_BRIDGE_IN_MAP_MEMINFO_MEM_TAG -{ - IMG_UINT32 ui32BridgeFlags; /* Must be first member of structure */ -#if defined (SUPPORT_SID_INTERFACE) - IMG_SID hKernelMemInfo; -#else - IMG_HANDLE hKernelMemInfo; -#endif -}PVRSRV_BRIDGE_IN_MAP_MEMINFO_MEM; - -typedef struct PVRSRV_BRIDGE_OUT_MAP_MEMINFO_MEM_TAG -{ - PVRSRV_CLIENT_MEM_INFO sClientMemInfo; - PVRSRV_CLIENT_SYNC_INFO sClientSyncInfo; -#if defined (SUPPORT_SID_INTERFACE) - IMG_SID hKernelMemInfo; -#else - PVRSRV_KERNEL_MEM_INFO *psKernelMemInfo; -#endif - PVRSRV_ERROR eError; -}PVRSRV_BRIDGE_OUT_MAP_MEMINFO_MEM; - -typedef struct PVRSRV_BRIDGE_IN_UNMAP_MEMINFO_MEM_TAG -{ - IMG_UINT32 ui32BridgeFlags; /* Must be first member of structure */ - PVRSRV_CLIENT_MEM_INFO sClientMemInfo; -}PVRSRV_BRIDGE_IN_UNMAP_MEMINFO_MEM; - -typedef struct PVRSRV_BRIDGE_OUT_UNMAP_MEMINFO_MEM_TAG -{ - PVRSRV_ERROR eError; -}PVRSRV_BRIDGE_OUT_UNMAP_MEMINFO_MEM; - -typedef struct PVRSRV_BRIDGE_IN_EVENT_OBJECT_WAI_TAG -{ - IMG_UINT32 ui32BridgeFlags; /* Must be first member of structure */ -#if defined (SUPPORT_SID_INTERFACE) - IMG_SID hOSEventKM; -#else - IMG_HANDLE hOSEventKM; -#endif -} PVRSRV_BRIDGE_IN_EVENT_OBJECT_WAIT; - -typedef struct PVRSRV_BRIDGE_IN_EVENT_OBJECT_OPEN_TAG -{ - PVRSRV_EVENTOBJECT sEventObject; -} PVRSRV_BRIDGE_IN_EVENT_OBJECT_OPEN; - -typedef struct PVRSRV_BRIDGE_OUT_EVENT_OBJECT_OPEN_TAG -{ -#if defined (SUPPORT_SID_INTERFACE) - IMG_UINT32 hOSEvent; -#else - IMG_HANDLE hOSEvent; -#endif - PVRSRV_ERROR eError; -} PVRSRV_BRIDGE_OUT_EVENT_OBJECT_OPEN; - -typedef struct PVRSRV_BRIDGE_IN_EVENT_OBJECT_CLOSE_TAG -{ - PVRSRV_EVENTOBJECT sEventObject; -#if defined (SUPPORT_SID_INTERFACE) - IMG_SID hOSEventKM; -#else - IMG_HANDLE hOSEventKM; -#endif -} PVRSRV_BRIDGE_IN_EVENT_OBJECT_CLOSE; - -typedef struct PVRSRV_BRIDGE_OUT_CREATE_SYNC_INFO_MOD_OBJ_TAG -{ - PVRSRV_ERROR eError; - -#if defined (SUPPORT_SID_INTERFACE) - IMG_SID hKernelSyncInfoModObj; -#else - IMG_HANDLE hKernelSyncInfoModObj; -#endif - -} PVRSRV_BRIDGE_OUT_CREATE_SYNC_INFO_MOD_OBJ; - -typedef struct PVRSRV_BRIDGE_IN_DESTROY_SYNC_INFO_MOD_OBJ -{ - IMG_UINT32 ui32BridgeFlags; /* Must be first member of structure */ -#if defined (SUPPORT_SID_INTERFACE) - IMG_SID hKernelSyncInfoModObj; -#else - IMG_HANDLE hKernelSyncInfoModObj; -#endif -} PVRSRV_BRIDGE_IN_DESTROY_SYNC_INFO_MOD_OBJ; - -typedef struct PVRSRV_BRIDGE_IN_MODIFY_PENDING_SYNC_OPS_TAG -{ - IMG_UINT32 ui32BridgeFlags; /* Must be first member of structure */ -#if defined (SUPPORT_SID_INTERFACE) - IMG_SID hKernelSyncInfoModObj; - IMG_SID hKernelSyncInfo; -#else - IMG_HANDLE hKernelSyncInfoModObj; - IMG_HANDLE hKernelSyncInfo; -#endif - IMG_UINT32 ui32ModifyFlags; - -} PVRSRV_BRIDGE_IN_MODIFY_PENDING_SYNC_OPS; - -typedef struct PVRSRV_BRIDGE_IN_MODIFY_COMPLETE_SYNC_OPS_TAG -{ - IMG_UINT32 ui32BridgeFlags; /* Must be first member of structure */ -#if defined (SUPPORT_SID_INTERFACE) - IMG_SID hKernelSyncInfoModObj; -#else - IMG_HANDLE hKernelSyncInfoModObj; -#endif -} PVRSRV_BRIDGE_IN_MODIFY_COMPLETE_SYNC_OPS; - -typedef struct PVRSRV_BRIDGE_OUT_MODIFY_PENDING_SYNC_OPS_TAG -{ - PVRSRV_ERROR eError; - - /* 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; /* Must be first member of structure */ -#if defined (SUPPORT_SID_INTERFACE) - IMG_SID hKernelSyncInfo; -#else - IMG_HANDLE hKernelSyncInfo; -#endif - -} PVRSRV_BRIDGE_IN_SYNC_OPS_TAKE_TOKEN; - -typedef struct PVRSRV_BRIDGE_OUT_SYNC_OPS_TAKE_TOKEN_TAG -{ - PVRSRV_ERROR eError; - - IMG_UINT32 ui32ReadOpsPending; - IMG_UINT32 ui32WriteOpsPending; - IMG_UINT32 ui32ReadOps2Pending; - -} PVRSRV_BRIDGE_OUT_SYNC_OPS_TAKE_TOKEN; - -typedef struct PVRSRV_BRIDGE_IN_SYNC_OPS_FLUSH_TO_TOKEN_TAG -{ - IMG_UINT32 ui32BridgeFlags; /* Must be first member of structure */ -#if defined (SUPPORT_SID_INTERFACE) - IMG_SID hKernelSyncInfo; -#else - IMG_HANDLE hKernelSyncInfo; -#endif - IMG_UINT32 ui32ReadOpsPendingSnapshot; - IMG_UINT32 ui32WriteOpsPendingSnapshot; - IMG_UINT32 ui32ReadOps2PendingSnapshot; -} PVRSRV_BRIDGE_IN_SYNC_OPS_FLUSH_TO_TOKEN; - -typedef struct PVRSRV_BRIDGE_IN_SYNC_OPS_FLUSH_TO_MOD_OBJ_TAG -{ - IMG_UINT32 ui32BridgeFlags; /* Must be first member of structure */ -#if defined (SUPPORT_SID_INTERFACE) - IMG_SID hKernelSyncInfoModObj; -#else - IMG_HANDLE hKernelSyncInfoModObj; -#endif -} PVRSRV_BRIDGE_IN_SYNC_OPS_FLUSH_TO_MOD_OBJ; - -typedef struct PVRSRV_BRIDGE_IN_SYNC_OPS_FLUSH_TO_DELTA_TAG -{ - IMG_UINT32 ui32BridgeFlags; /* Must be first member of structure */ -#if defined (SUPPORT_SID_INTERFACE) - IMG_SID hKernelSyncInfo; -#else - IMG_HANDLE hKernelSyncInfo; -#endif - IMG_UINT32 ui32Delta; -} PVRSRV_BRIDGE_IN_SYNC_OPS_FLUSH_TO_DELTA; - -typedef struct PVRSRV_BRIDGE_IN_ALLOC_SYNC_INFO_TAG -{ - IMG_UINT32 ui32BridgeFlags; /* Must be first member of structure */ - -#if defined (SUPPORT_SID_INTERFACE) - IMG_SID hDevCookie; -#else - IMG_HANDLE hDevCookie; -#endif -} PVRSRV_BRIDGE_IN_ALLOC_SYNC_INFO; - -typedef struct PVRSRV_BRIDGE_OUT_ALLOC_SYNC_INFO_TAG -{ - PVRSRV_ERROR eError; - -#if defined (SUPPORT_SID_INTERFACE) - IMG_SID hKernelSyncInfo; -#else - IMG_HANDLE hKernelSyncInfo; -#endif -} PVRSRV_BRIDGE_OUT_ALLOC_SYNC_INFO; - -typedef struct PVRSRV_BRIDGE_IN_FREE_SYNC_INFO_TAG -{ - IMG_UINT32 ui32BridgeFlags; /* Must be first member of structure */ - -#if defined (SUPPORT_SID_INTERFACE) - IMG_SID hKernelSyncInfo; -#else - IMG_HANDLE hKernelSyncInfo; -#endif -} PVRSRV_BRIDGE_IN_FREE_SYNC_INFO; - -typedef struct PVRSRV_BRIDGE_IN_CHG_DEV_MEM_ATTRIBS_TAG -{ - IMG_SID hKernelMemInfo; - IMG_UINT32 ui32Attribs; -} PVRSRV_BRIDGE_IN_CHG_DEV_MEM_ATTRIBS; - -/****************************************************************************** - * 'bridge in' multi manage device memory - *****************************************************************************/ -typedef PVRSRV_MULTI_MANAGE_DEV_MEM_REQUESTS PVRSRV_BRIDGE_IN_MULTI_MANAGE_DEV_MEM; - -/****************************************************************************** - * 'bridge out' multi manage device memory - *****************************************************************************/ -typedef struct PVRSRV_BRIDGE_OUT_MULTI_MANAGE_DEV_MEM_TAG -{ - IMG_UINT32 ui32NumberOfRequestsProcessed; - IMG_UINT32 ui32CtrlFlags; - IMG_UINT32 ui32StatusFlags; - IMG_UINT32 ui32IndexError; - PVRSRV_ERROR eError; - /* Memory Requests Array - used only with direct (not memory shared( mode */ - PVRSRV_MANAGE_DEV_MEM_RESPONSE sMemResponse[PVRSRV_MULTI_MANAGE_DEV_MEM_MAX_DIRECT_SIZE]; -}PVRSRV_BRIDGE_OUT_MULTI_MANAGE_DEV_MEM; - -#if defined (__cplusplus) -} -#endif - -#endif /* __PVR_BRIDGE_H__ */ - -/****************************************************************************** - End of file (pvr_bridge.h) -******************************************************************************/ - diff --git a/pvr-source/services4/include/pvr_bridge_km.h b/pvr-source/services4/include/pvr_bridge_km.h deleted file mode 100755 index 1bf5b9c..0000000 --- a/pvr-source/services4/include/pvr_bridge_km.h +++ /dev/null @@ -1,409 +0,0 @@ -/*************************************************************************/ /*! -@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_KM_H_ -#define __PVR_BRIDGE_KM_H_ - -#if defined (__cplusplus) -extern "C" { -#endif - -#include "pvr_bridge.h" -#include "perproc.h" - -/****************************************************************************** - * Function prototypes - *****************************************************************************/ -#if defined(__linux__) -PVRSRV_ERROR LinuxBridgeInit(IMG_VOID); -IMG_VOID LinuxBridgeDeInit(IMG_VOID); -#endif - -IMG_IMPORT -PVRSRV_ERROR IMG_CALLCONV PVRSRVEnumerateDevicesKM(IMG_UINT32 *pui32NumDevices, - PVRSRV_DEVICE_IDENTIFIER *psDevIdList); - -IMG_IMPORT -PVRSRV_ERROR IMG_CALLCONV PVRSRVAcquireDeviceDataKM(IMG_UINT32 uiDevIndex, - PVRSRV_DEVICE_TYPE eDeviceType, - IMG_HANDLE *phDevCookie); - -IMG_IMPORT -PVRSRV_ERROR IMG_CALLCONV PVRSRVCreateCommandQueueKM(IMG_SIZE_T ui32QueueSize, - PVRSRV_QUEUE_INFO **ppsQueueInfo); - -IMG_IMPORT -PVRSRV_ERROR IMG_CALLCONV PVRSRVDestroyCommandQueueKM(PVRSRV_QUEUE_INFO *psQueueInfo); - -IMG_IMPORT -PVRSRV_ERROR IMG_CALLCONV PVRSRVGetDeviceMemHeapsKM(IMG_HANDLE hDevCookie, -#if defined (SUPPORT_SID_INTERFACE) - PVRSRV_HEAP_INFO_KM *psHeapInfo); -#else - PVRSRV_HEAP_INFO *psHeapInfo); -#endif - -IMG_IMPORT -PVRSRV_ERROR IMG_CALLCONV PVRSRVCreateDeviceMemContextKM(IMG_HANDLE hDevCookie, - PVRSRV_PER_PROCESS_DATA *psPerProc, - IMG_HANDLE *phDevMemContext, - IMG_UINT32 *pui32ClientHeapCount, -#if defined (SUPPORT_SID_INTERFACE) - PVRSRV_HEAP_INFO_KM *psHeapInfo, -#else - PVRSRV_HEAP_INFO *psHeapInfo, -#endif - IMG_BOOL *pbCreated, - IMG_BOOL *pbShared); - - -IMG_IMPORT -PVRSRV_ERROR IMG_CALLCONV PVRSRVDestroyDeviceMemContextKM(IMG_HANDLE hDevCookie, - IMG_HANDLE hDevMemContext, - IMG_BOOL *pbDestroyed); - - -IMG_IMPORT -PVRSRV_ERROR IMG_CALLCONV PVRSRVGetDeviceMemHeapInfoKM(IMG_HANDLE hDevCookie, - IMG_HANDLE hDevMemContext, - IMG_UINT32 *pui32ClientHeapCount, -#if defined (SUPPORT_SID_INTERFACE) - PVRSRV_HEAP_INFO_KM *psHeapInfo, -#else - PVRSRV_HEAP_INFO *psHeapInfo, -#endif - IMG_BOOL *pbShared - ); - - -IMG_IMPORT -PVRSRV_ERROR IMG_CALLCONV _PVRSRVAllocDeviceMemKM(IMG_HANDLE hDevCookie, - PVRSRV_PER_PROCESS_DATA *psPerProc, - IMG_HANDLE hDevMemHeap, - IMG_UINT32 ui32Flags, - 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_KERNEL_MEM_INFO **ppsMemInfo); - - -#if defined(PVRSRV_LOG_MEMORY_ALLOCS) - #define PVRSRVAllocDeviceMemKM(devCookie, perProc, devMemHeap, flags, size, alignment, privdata, privdatalength, \ - chunksize, numvirtchunks, numphyschunks, mapchunk, memInfo, logStr) \ - (PVR_TRACE(("PVRSRVAllocDeviceMemKM(" #devCookie ", " #perProc ", " #devMemHeap ", " #flags ", " #size \ - ", " #alignment "," #memInfo "): " logStr " (size = 0x%x)", size)),\ - _PVRSRVAllocDeviceMemKM(devCookie, perProc, devMemHeap, flags, size, alignment, privdata, privdatalength, \ - chunksize, numvirtchunks, numphyschunks, mapchunk, memInfo)) -#else - #define PVRSRVAllocDeviceMemKM(devCookie, perProc, devMemHeap, flags, size, alignment, privdata, privdatalength, \ - chunksize, numvirtchunks, numphyschunks, mapchunk, memInfo, logStr) \ - _PVRSRVAllocDeviceMemKM(devCookie, perProc, devMemHeap, flags, size, alignment, privdata, privdatalength, \ - chunksize, numvirtchunks, numphyschunks, mapchunk, memInfo) -#endif - - -IMG_IMPORT -PVRSRV_ERROR IMG_CALLCONV PVRSRVFreeDeviceMemKM(IMG_HANDLE hDevCookie, - PVRSRV_KERNEL_MEM_INFO *psMemInfo); - -IMG_EXPORT -IMG_INT32 IMG_CALLCONV PVRSRVRemapToDevKM(IMG_HANDLE hDevCookie, - PVRSRV_KERNEL_MEM_INFO *psMemInfo, IMG_DEV_VIRTADDR *psDevVAddr); - -IMG_EXPORT -IMG_INT32 IMG_CALLCONV PVRSRVUnmapFromDevKM(IMG_HANDLE hDevCookie, - PVRSRV_KERNEL_MEM_INFO *psMemInfo); - - -#if defined(SUPPORT_ION) -IMG_IMPORT -PVRSRV_ERROR PVRSRVMapIonHandleKM(PVRSRV_PER_PROCESS_DATA *psPerProc, - IMG_HANDLE hDevCookie, - IMG_HANDLE hDevMemContext, - IMG_HANDLE hIon, - IMG_UINT32 ui32Flags, - IMG_UINT32 ui32Size, - PVRSRV_KERNEL_MEM_INFO **ppsKernelMemInfo); - -IMG_IMPORT -PVRSRV_ERROR IMG_CALLCONV PVRSRVUnmapIonHandleKM(PVRSRV_KERNEL_MEM_INFO *psMemInfo); -#endif /* SUPPORT_ION */ - -IMG_IMPORT -PVRSRV_ERROR IMG_CALLCONV PVRSRVDissociateDeviceMemKM(IMG_HANDLE hDevCookie, - PVRSRV_KERNEL_MEM_INFO *psMemInfo); - -IMG_IMPORT -PVRSRV_ERROR IMG_CALLCONV PVRSRVReserveDeviceVirtualMemKM(IMG_HANDLE hDevMemHeap, - IMG_DEV_VIRTADDR *psDevVAddr, - IMG_SIZE_T ui32Size, - IMG_SIZE_T ui32Alignment, - PVRSRV_KERNEL_MEM_INFO **ppsMemInfo); - -IMG_IMPORT -PVRSRV_ERROR IMG_CALLCONV PVRSRVFreeDeviceVirtualMemKM(PVRSRV_KERNEL_MEM_INFO *psMemInfo); - -IMG_IMPORT -PVRSRV_ERROR IMG_CALLCONV PVRSRVMapDeviceMemoryKM(PVRSRV_PER_PROCESS_DATA *psPerProc, - PVRSRV_KERNEL_MEM_INFO *psSrcMemInfo, - IMG_HANDLE hDstDevMemHeap, - PVRSRV_KERNEL_MEM_INFO **ppsDstMemInfo); - -IMG_IMPORT -PVRSRV_ERROR IMG_CALLCONV PVRSRVUnmapDeviceMemoryKM(PVRSRV_KERNEL_MEM_INFO *psMemInfo); - -IMG_IMPORT -PVRSRV_ERROR IMG_CALLCONV PVRSRVWrapExtMemoryKM(IMG_HANDLE hDevCookie, - PVRSRV_PER_PROCESS_DATA *psPerProc, - IMG_HANDLE hDevMemContext, - IMG_SIZE_T ui32ByteSize, - IMG_SIZE_T ui32PageOffset, - IMG_BOOL bPhysContig, - IMG_SYS_PHYADDR *psSysAddr, - IMG_VOID *pvLinAddr, - IMG_UINT32 ui32Flags, - PVRSRV_KERNEL_MEM_INFO **ppsMemInfo); - -IMG_IMPORT -PVRSRV_ERROR IMG_CALLCONV PVRSRVUnwrapExtMemoryKM(PVRSRV_KERNEL_MEM_INFO *psMemInfo); - -IMG_IMPORT -PVRSRV_ERROR PVRSRVEnumerateDCKM(PVRSRV_DEVICE_CLASS DeviceClass, - IMG_UINT32 *pui32DevCount, - IMG_UINT32 *pui32DevID ); - -IMG_IMPORT -PVRSRV_ERROR PVRSRVOpenDCDeviceKM(PVRSRV_PER_PROCESS_DATA *psPerProc, - IMG_UINT32 ui32DeviceID, - IMG_HANDLE hDevCookie, - IMG_HANDLE *phDeviceKM); - -IMG_IMPORT -PVRSRV_ERROR PVRSRVCloseDCDeviceKM(IMG_HANDLE hDeviceKM); - -IMG_IMPORT -PVRSRV_ERROR PVRSRVEnumDCFormatsKM(IMG_HANDLE hDeviceKM, - IMG_UINT32 *pui32Count, - DISPLAY_FORMAT *psFormat); - -IMG_IMPORT -PVRSRV_ERROR PVRSRVEnumDCDimsKM(IMG_HANDLE hDeviceKM, - DISPLAY_FORMAT *psFormat, - IMG_UINT32 *pui32Count, - DISPLAY_DIMS *psDim); - -IMG_IMPORT -PVRSRV_ERROR PVRSRVGetDCSystemBufferKM(IMG_HANDLE hDeviceKM, - IMG_HANDLE *phBuffer); - -IMG_IMPORT -PVRSRV_ERROR PVRSRVGetDCInfoKM(IMG_HANDLE hDeviceKM, - DISPLAY_INFO *psDisplayInfo); -IMG_IMPORT -PVRSRV_ERROR PVRSRVCreateDCSwapChainKM(PVRSRV_PER_PROCESS_DATA *psPerProc, - IMG_HANDLE hDeviceKM, - IMG_UINT32 ui32Flags, - DISPLAY_SURF_ATTRIBUTES *psDstSurfAttrib, - DISPLAY_SURF_ATTRIBUTES *psSrcSurfAttrib, - IMG_UINT32 ui32BufferCount, - IMG_UINT32 ui32OEMFlags, - IMG_HANDLE *phSwapChain, - IMG_UINT32 *pui32SwapChainID); -IMG_IMPORT -PVRSRV_ERROR PVRSRVDestroyDCSwapChainKM(IMG_HANDLE hSwapChain); -IMG_IMPORT -PVRSRV_ERROR PVRSRVSetDCDstRectKM(IMG_HANDLE hDeviceKM, - IMG_HANDLE hSwapChain, - IMG_RECT *psRect); -IMG_IMPORT -PVRSRV_ERROR PVRSRVSetDCSrcRectKM(IMG_HANDLE hDeviceKM, - IMG_HANDLE hSwapChain, - IMG_RECT *psRect); -IMG_IMPORT -PVRSRV_ERROR PVRSRVSetDCDstColourKeyKM(IMG_HANDLE hDeviceKM, - IMG_HANDLE hSwapChain, - IMG_UINT32 ui32CKColour); -IMG_IMPORT -PVRSRV_ERROR PVRSRVSetDCSrcColourKeyKM(IMG_HANDLE hDeviceKM, - IMG_HANDLE hSwapChain, - IMG_UINT32 ui32CKColour); -IMG_IMPORT -PVRSRV_ERROR PVRSRVGetDCBuffersKM(IMG_HANDLE hDeviceKM, - IMG_HANDLE hSwapChain, - IMG_UINT32 *pui32BufferCount, - IMG_HANDLE *phBuffer, - IMG_SYS_PHYADDR *psPhyAddr); -IMG_IMPORT -PVRSRV_ERROR PVRSRVSwapToDCBufferKM(IMG_HANDLE hDeviceKM, - IMG_HANDLE hBuffer, - IMG_UINT32 ui32SwapInterval, - IMG_HANDLE hPrivateTag, - IMG_UINT32 ui32ClipRectCount, - IMG_RECT *psClipRect); -IMG_IMPORT -PVRSRV_ERROR PVRSRVSwapToDCBuffer2KM(IMG_HANDLE hDeviceKM, - IMG_HANDLE hBuffer, - IMG_UINT32 ui32SwapInterval, - PVRSRV_KERNEL_MEM_INFO **ppsMemInfos, - PVRSRV_KERNEL_SYNC_INFO **ppsSyncInfos, - IMG_UINT32 ui32NumMemSyncInfos, - IMG_PVOID pvPrivData, - IMG_UINT32 ui32PrivDataLength); -IMG_IMPORT -PVRSRV_ERROR PVRSRVSwapToDCSystemKM(IMG_HANDLE hDeviceKM, - IMG_HANDLE hSwapChain); - -IMG_IMPORT -PVRSRV_ERROR PVRSRVOpenBCDeviceKM(PVRSRV_PER_PROCESS_DATA *psPerProc, - IMG_UINT32 ui32DeviceID, - IMG_HANDLE hDevCookie, - IMG_HANDLE *phDeviceKM); -IMG_IMPORT -PVRSRV_ERROR PVRSRVCloseBCDeviceKM(IMG_HANDLE hDeviceKM); - -IMG_IMPORT -PVRSRV_ERROR PVRSRVGetBCInfoKM(IMG_HANDLE hDeviceKM, - BUFFER_INFO *psBufferInfo); -IMG_IMPORT -PVRSRV_ERROR PVRSRVGetBCBufferKM(IMG_HANDLE hDeviceKM, - IMG_UINT32 ui32BufferIndex, - IMG_HANDLE *phBuffer); - - -IMG_IMPORT -PVRSRV_ERROR IMG_CALLCONV PVRSRVMapDeviceClassMemoryKM(PVRSRV_PER_PROCESS_DATA *psPerProc, - IMG_HANDLE hDevMemContext, - IMG_HANDLE hDeviceClassBuffer, - PVRSRV_KERNEL_MEM_INFO **ppsMemInfo, - IMG_HANDLE *phOSMapInfo); - -IMG_EXPORT -PVRSRV_ERROR IMG_CALLCONV PVRSRVChangeDeviceMemoryAttributesKM(IMG_HANDLE hKernelMemInfo, - IMG_UINT32 ui32Attribs); - -IMG_IMPORT -PVRSRV_ERROR IMG_CALLCONV PVRSRVUnmapDeviceClassMemoryKM(PVRSRV_KERNEL_MEM_INFO *psMemInfo); - -IMG_IMPORT -PVRSRV_ERROR IMG_CALLCONV PVRSRVGetFreeDeviceMemKM(IMG_UINT32 ui32Flags, - IMG_SIZE_T *pui32Total, - IMG_SIZE_T *pui32Free, - IMG_SIZE_T *pui32LargestBlock); -IMG_IMPORT -PVRSRV_ERROR IMG_CALLCONV PVRSRVAllocSyncInfoKM(IMG_HANDLE hDevCookie, - IMG_HANDLE hDevMemContext, - PVRSRV_KERNEL_SYNC_INFO **ppsKernelSyncInfo); -IMG_IMPORT -IMG_VOID IMG_CALLCONV PVRSRVAcquireSyncInfoKM(PVRSRV_KERNEL_SYNC_INFO *psKernelSyncInfo); -IMG_IMPORT -IMG_VOID IMG_CALLCONV PVRSRVReleaseSyncInfoKM(PVRSRV_KERNEL_SYNC_INFO *psKernelSyncInfo); - -IMG_IMPORT -#if defined (SUPPORT_SID_INTERFACE) -PVRSRV_ERROR IMG_CALLCONV PVRSRVGetMiscInfoKM(PVRSRV_MISC_INFO_KM *psMiscInfo); -#else -PVRSRV_ERROR IMG_CALLCONV PVRSRVGetMiscInfoKM(PVRSRV_MISC_INFO *psMiscInfo); -#endif - -/*! - * ***************************************************************************** - * @brief Allocates memory on behalf of a userspace process that is addressable - * by ther kernel. The memory is suitable for mapping into - * user space and it is possible to entirely dissociate the memory - * from the userspace process via PVRSRVDissociateSharedSysMemoryKM. - * - * @param psPerProc - * @param ui32Flags - * @param ui32Size - * @param ppsKernelMemInfo - * - * @return PVRSRV_ERROR - ********************************************************************************/ -IMG_IMPORT PVRSRV_ERROR -PVRSRVAllocSharedSysMemoryKM(PVRSRV_PER_PROCESS_DATA *psPerProc, - IMG_UINT32 ui32Flags, - IMG_SIZE_T ui32Size, - PVRSRV_KERNEL_MEM_INFO **ppsKernelMemInfo); - -/*! - * ***************************************************************************** - * @brief Frees memory allocated via PVRSRVAllocSharedSysMemoryKM (Note you must - * be sure any additional kernel references you created have been - * removed before freeing the memory) - * - * @param psKernelMemInfo - * - * @return PVRSRV_ERROR - ********************************************************************************/ -IMG_IMPORT PVRSRV_ERROR -PVRSRVFreeSharedSysMemoryKM(PVRSRV_KERNEL_MEM_INFO *psKernelMemInfo); - -/*! -****************************************************************************** - - @brief Dissociates memory from the process that allocates it. Intended for - transfering the ownership of system memory from a particular process - to the kernel. Unlike PVRSRVDissociateDeviceMemKM, ownership is not - transfered to the kernel context, so the Resource Manager will not - automatically clean up such memory. - - @param psKernelMemInfo: - - @return PVRSRV_ERROR: -******************************************************************************/ -IMG_IMPORT PVRSRV_ERROR -PVRSRVDissociateMemFromResmanKM(PVRSRV_KERNEL_MEM_INFO *psKernelMemInfo); - -#if defined (__cplusplus) -} -#endif - -#endif /* __PVR_BRIDGE_KM_H_ */ - -/****************************************************************************** - End of file (pvr_bridge_km.h) -******************************************************************************/ diff --git a/pvr-source/services4/include/pvrmmap.h b/pvr-source/services4/include/pvrmmap.h deleted file mode 100755 index 1a3930c..0000000 --- a/pvr-source/services4/include/pvrmmap.h +++ /dev/null @@ -1,81 +0,0 @@ -/*************************************************************************/ /*! -@Title Main include file for PVRMMAP library. -@Copyright Copyright (c) Imagination Technologies Ltd. All Rights Reserved -@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 __PVRMMAP_H__ -#define __PVRMMAP_H__ - -/*! - ************************************************************************** - @brief map kernel memory into user memory. - - @param hModule - a handle to the device supplying the kernel memory - @param ppvLinAddr - pointer to where the user mode address should be placed - @param pvLinAddrKM - the base of kernel address range to map - @param phMappingInfo - pointer to mapping information handle - @param hMHandle - handle associated with memory to be mapped - - @return PVRSRV_OK, or error code. - ***************************************************************************/ - -#if defined (SUPPORT_SID_INTERFACE) -PVRSRV_ERROR PVRPMapKMem(IMG_HANDLE hModule, IMG_VOID **ppvLinAddr, IMG_VOID *pvLinAddrKM, IMG_SID *phMappingInfo, IMG_SID hMHandle); -#else -PVRSRV_ERROR PVRPMapKMem(IMG_HANDLE hModule, IMG_VOID **ppvLinAddr, IMG_VOID *pvLinAddrKM, IMG_HANDLE *phMappingInfo, IMG_HANDLE hMHandle); -#endif - - -/*! - ************************************************************************** - @brief Removes a kernel to userspace memory mapping. - - @param hModule - a handle to the device supplying the kernel memory - @param hMappingInfo - mapping information handle - @param hMHandle - handle associated with memory to be mapped - - @return IMG_BOOL indicating success or otherwise. - ***************************************************************************/ -#if defined (SUPPORT_SID_INTERFACE) -IMG_BOOL PVRUnMapKMem(IMG_HANDLE hModule, IMG_SID hMappingInfo, IMG_SID hMHandle); -#else -IMG_BOOL PVRUnMapKMem(IMG_HANDLE hModule, IMG_HANDLE hMappingInfo, IMG_HANDLE hMHandle); -#endif - -#endif /* _PVRMMAP_H_ */ - diff --git a/pvr-source/services4/include/pvrsrv_errors.h b/pvr-source/services4/include/pvrsrv_errors.h deleted file mode 100755 index 2e95810..0000000 --- a/pvr-source/services4/include/pvrsrv_errors.h +++ /dev/null @@ -1,311 +0,0 @@ -/*************************************************************************/ /*! -@Title error code to string translation utility -@Copyright Copyright (c) Imagination Technologies Ltd. All Rights Reserved -@Description error code to string translation utility -@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. -*/ /**************************************************************************/ - -#if !defined (__PVRSRV_ERRORS_H__) -#define __PVRSRV_ERRORS_H__ - -#if defined (__cplusplus) -extern "C" { -#endif - -/* - NOTE: TO BE INCLUDED ONLY ONCE IN THE UM AND KM SERVICES MODULES - PROVIDES IMPLEMENTATIONS OF - - MUST BE KEPT IN SYNC WITH SERVICESEXT.H - - PVRSRVGetErrorString - PVRSRVGetErrorStringKM - Specifically, we have - - resources.c: - IMG_EXPORT - const IMG_CHAR *PVRSRVGetErrorString(PVRSRV_ERROR eError) - { - #include "pvrsrv_errors.h" - } - - pvrsrv.c: - IMG_EXPORT - const IMG_CHAR *PVRSRVGetErrorStringKM(PVRSRV_ERROR eError) - { - #include "pvrsrv_errors.h" - } -*/ - switch (eError) - { - case PVRSRV_OK: return "No Errors"; - case PVRSRV_ERROR_OUT_OF_MEMORY: return "PVRSRV_ERROR_OUT_OF_MEMORY - Unable to allocate required memory"; - case PVRSRV_ERROR_TOO_FEW_BUFFERS: return "PVRSRV_ERROR_TOO_FEW_BUFFERS"; - case PVRSRV_ERROR_INVALID_PARAMS: return "PVRSRV_ERROR_INVALID_PARAMS"; - case PVRSRV_ERROR_INIT_FAILURE: return "PVRSRV_ERROR_INIT_FAILURE"; - case PVRSRV_ERROR_CANT_REGISTER_CALLBACK: return "PVRSRV_ERROR_CANT_REGISTER_CALLBACK"; - case PVRSRV_ERROR_INVALID_DEVICE: return "PVRSRV_ERROR_INVALID_DEVICE"; - case PVRSRV_ERROR_NOT_OWNER: return "PVRSRV_ERROR_NOT_OWNER"; - case PVRSRV_ERROR_BAD_MAPPING: return "PVRSRV_ERROR_BAD_MAPPING"; - case PVRSRV_ERROR_TIMEOUT: return "PVRSRV_ERROR_TIMEOUT"; - case PVRSRV_ERROR_FLIP_CHAIN_EXISTS: return "PVRSRV_ERROR_FLIP_CHAIN_EXISTS"; - case PVRSRV_ERROR_INVALID_SWAPINTERVAL: return "PVRSRV_ERROR_INVALID_SWAPINTERVAL"; - case PVRSRV_ERROR_SCENE_INVALID: return "PVRSRV_ERROR_SCENE_INVALID"; - case PVRSRV_ERROR_STREAM_ERROR: return "PVRSRV_ERROR_STREAM_ERROR"; - case PVRSRV_ERROR_FAILED_DEPENDENCIES: return "PVRSRV_ERROR_FAILED_DEPENDENCIES"; - case PVRSRV_ERROR_CMD_NOT_PROCESSED: return "PVRSRV_ERROR_CMD_NOT_PROCESSED"; - case PVRSRV_ERROR_CMD_TOO_BIG: return "PVRSRV_ERROR_CMD_TOO_BIG"; - case PVRSRV_ERROR_DEVICE_REGISTER_FAILED: return "PVRSRV_ERROR_DEVICE_REGISTER_FAILED"; - case PVRSRV_ERROR_TOOMANYBUFFERS: return "PVRSRV_ERROR_TOOMANYBUFFERS"; - case PVRSRV_ERROR_NOT_SUPPORTED: return "PVRSRV_ERROR_NOT_SUPPORTED - fix"; - case PVRSRV_ERROR_PROCESSING_BLOCKED: return "PVRSRV_ERROR_PROCESSING_BLOCKED"; - - case PVRSRV_ERROR_CANNOT_FLUSH_QUEUE: return "PVRSRV_ERROR_CANNOT_FLUSH_QUEUE"; - case PVRSRV_ERROR_CANNOT_GET_QUEUE_SPACE: return "PVRSRV_ERROR_CANNOT_GET_QUEUE_SPACE"; - case PVRSRV_ERROR_CANNOT_GET_RENDERDETAILS: return "PVRSRV_ERROR_CANNOT_GET_RENDERDETAILS"; - case PVRSRV_ERROR_RETRY: return "PVRSRV_ERROR_RETRY"; - - case PVRSRV_ERROR_DDK_VERSION_MISMATCH: return "PVRSRV_ERROR_DDK_VERSION_MISMATCH"; - case PVRSRV_ERROR_BUILD_MISMATCH: return "PVRSRV_ERROR_BUILD_MISMATCH"; - case PVRSRV_ERROR_CORE_REVISION_MISMATCH: return "PVRSRV_ERROR_CORE_REVISION_MISMATCH"; - - case PVRSRV_ERROR_UPLOAD_TOO_BIG: return "PVRSRV_ERROR_UPLOAD_TOO_BIG"; - - case PVRSRV_ERROR_INVALID_FLAGS: return "PVRSRV_ERROR_INVALID_FLAGS"; - case PVRSRV_ERROR_FAILED_TO_REGISTER_PROCESS: return "PVRSRV_ERROR_FAILED_TO_REGISTER_PROCESS"; - - case PVRSRV_ERROR_UNABLE_TO_LOAD_LIBRARY: return "PVRSRV_ERROR_UNABLE_TO_LOAD_LIBRARY"; - case PVRSRV_ERROR_UNABLE_GET_FUNC_ADDR: return "PVRSRV_ERROR_UNABLE_GET_FUNC_ADDR"; - case PVRSRV_ERROR_UNLOAD_LIBRARY_FAILED: return "PVRSRV_ERROR_UNLOAD_LIBRARY_FAILED"; - - case PVRSRV_ERROR_BRIDGE_CALL_FAILED: return "PVRSRV_ERROR_BRIDGE_CALL_FAILED"; - case PVRSRV_ERROR_IOCTL_CALL_FAILED: return "PVRSRV_ERROR_IOCTL_CALL_FAILED"; - - case PVRSRV_ERROR_MMU_CONTEXT_NOT_FOUND: return "PVRSRV_ERROR_MMU_CONTEXT_NOT_FOUND"; - case PVRSRV_ERROR_BUFFER_DEVICE_NOT_FOUND: return "PVRSRV_ERROR_BUFFER_DEVICE_NOT_FOUND"; - case PVRSRV_ERROR_BUFFER_DEVICE_ALREADY_PRESENT:return "PVRSRV_ERROR_BUFFER_DEVICE_ALREADY_PRESENT"; - - case PVRSRV_ERROR_PCI_DEVICE_NOT_FOUND: return "PVRSRV_ERROR_PCI_DEVICE_NOT_FOUND"; - case PVRSRV_ERROR_PCI_CALL_FAILED: return "PVRSRV_ERROR_PCI_CALL_FAILED"; - case PVRSRV_ERROR_PCI_REGION_TOO_SMALL: return "PVRSRV_ERROR_PCI_REGION_TOO_SMALL"; - case PVRSRV_ERROR_PCI_REGION_UNAVAILABLE: return "PVRSRV_ERROR_PCI_REGION_UNAVAILABLE"; - case PVRSRV_ERROR_BAD_REGION_SIZE_MISMATCH: return "PVRSRV_ERROR_BAD_REGION_SIZE_MISMATCH"; - - case PVRSRV_ERROR_REGISTER_BASE_NOT_SET: return "PVRSRV_ERROR_REGISTER_BASE_NOT_SET"; - - case PVRSRV_ERROR_BM_BAD_SHAREMEM_HANDLE: return "PVRSRV_ERROR_BM_BAD_SHAREMEM_HANDLE"; - - case PVRSRV_ERROR_FAILED_TO_ALLOC_USER_MEM: return "PVRSRV_ERROR_FAILED_TO_ALLOC_USER_MEM"; - case PVRSRV_ERROR_FAILED_TO_ALLOC_VP_MEMORY: return "PVRSRV_ERROR_FAILED_TO_ALLOC_VP_MEMORY"; - case PVRSRV_ERROR_FAILED_TO_MAP_SHARED_PBDESC: return "PVRSRV_ERROR_FAILED_TO_MAP_SHARED_PBDESC"; - case PVRSRV_ERROR_FAILED_TO_GET_PHYS_ADDR: return "PVRSRV_ERROR_FAILED_TO_GET_PHYS_ADDR"; - - case PVRSRV_ERROR_FAILED_TO_ALLOC_VIRT_MEMORY: return "PVRSRV_ERROR_FAILED_TO_ALLOC_VIRT_MEMORY"; - case PVRSRV_ERROR_FAILED_TO_COPY_VIRT_MEMORY: return "PVRSRV_ERROR_FAILED_TO_COPY_VIRT_MEMORY"; - - case PVRSRV_ERROR_FAILED_TO_ALLOC_PAGES: return "PVRSRV_ERROR_FAILED_TO_ALLOC_PAGES"; - case PVRSRV_ERROR_FAILED_TO_FREE_PAGES: return "PVRSRV_ERROR_FAILED_TO_FREE_PAGES"; - case PVRSRV_ERROR_FAILED_TO_COPY_PAGES: return "PVRSRV_ERROR_FAILED_TO_COPY_PAGES"; - case PVRSRV_ERROR_UNABLE_TO_LOCK_PAGES: return "PVRSRV_ERROR_UNABLE_TO_LOCK_PAGES"; - case PVRSRV_ERROR_UNABLE_TO_UNLOCK_PAGES: return "PVRSRV_ERROR_UNABLE_TO_UNLOCK_PAGES"; - case PVRSRV_ERROR_STILL_MAPPED: return "PVRSRV_ERROR_STILL_MAPPED"; - case PVRSRV_ERROR_MAPPING_NOT_FOUND: return "PVRSRV_ERROR_MAPPING_NOT_FOUND"; - case PVRSRV_ERROR_PHYS_ADDRESS_EXCEEDS_32BIT: return "PVRSRV_ERROR_PHYS_ADDRESS_EXCEEDS_32BIT"; - case PVRSRV_ERROR_FAILED_TO_MAP_PAGE_TABLE: return "PVRSRV_ERROR_FAILED_TO_MAP_PAGE_TABLE"; - - case PVRSRV_ERROR_INVALID_SEGMENT_BLOCK: return "PVRSRV_ERROR_INVALID_SEGMENT_BLOCK"; - case PVRSRV_ERROR_INVALID_SGXDEVDATA: return "PVRSRV_ERROR_INVALID_SGXDEVDATA"; - case PVRSRV_ERROR_INVALID_DEVINFO: return "PVRSRV_ERROR_INVALID_DEVINFO"; - case PVRSRV_ERROR_INVALID_MEMINFO: return "PVRSRV_ERROR_INVALID_MEMINFO"; - case PVRSRV_ERROR_INVALID_MISCINFO: return "PVRSRV_ERROR_INVALID_MISCINFO"; - case PVRSRV_ERROR_UNKNOWN_IOCTL: return "PVRSRV_ERROR_UNKNOWN_IOCTL"; - case PVRSRV_ERROR_INVALID_CONTEXT: return "PVRSRV_ERROR_INVALID_CONTEXT"; - case PVRSRV_ERROR_UNABLE_TO_DESTROY_CONTEXT: return "PVRSRV_ERROR_UNABLE_TO_DESTROY_CONTEXT"; - case PVRSRV_ERROR_INVALID_HEAP: return "PVRSRV_ERROR_INVALID_HEAP"; - case PVRSRV_ERROR_INVALID_KERNELINFO: return "PVRSRV_ERROR_INVALID_KERNELINFO"; - case PVRSRV_ERROR_UNKNOWN_POWER_STATE: return "PVRSRV_ERROR_UNKNOWN_POWER_STATE"; - case PVRSRV_ERROR_INVALID_HANDLE_TYPE: return "PVRSRV_ERROR_INVALID_HANDLE_TYPE"; - case PVRSRV_ERROR_INVALID_WRAP_TYPE: return "PVRSRV_ERROR_INVALID_WRAP_TYPE"; - case PVRSRV_ERROR_INVALID_PHYS_ADDR: return "PVRSRV_ERROR_INVALID_PHYS_ADDR"; - case PVRSRV_ERROR_INVALID_CPU_ADDR: return "PVRSRV_ERROR_INVALID_CPU_ADDR"; - case PVRSRV_ERROR_INVALID_HEAPINFO: return "PVRSRV_ERROR_INVALID_HEAPINFO"; - case PVRSRV_ERROR_INVALID_PERPROC: return "PVRSRV_ERROR_INVALID_PERPROC"; - case PVRSRV_ERROR_FAILED_TO_RETRIEVE_HEAPINFO: return "PVRSRV_ERROR_FAILED_TO_RETRIEVE_HEAPINFO"; - case PVRSRV_ERROR_INVALID_MAP_REQUEST: return "PVRSRV_ERROR_INVALID_MAP_REQUEST"; - case PVRSRV_ERROR_INVALID_UNMAP_REQUEST: return "PVRSRV_ERROR_INVALID_UNMAP_REQUEST"; - case PVRSRV_ERROR_UNABLE_TO_FIND_MAPPING_HEAP: return "PVRSRV_ERROR_UNABLE_TO_FIND_MAPPING_HEAP"; - case PVRSRV_ERROR_MAPPING_STILL_IN_USE: return "PVRSRV_ERROR_MAPPING_STILL_IN_USE"; - - case PVRSRV_ERROR_EXCEEDED_HW_LIMITS: return "PVRSRV_ERROR_EXCEEDED_HW_LIMITS"; - case PVRSRV_ERROR_NO_STAGING_BUFFER_ALLOCATED: return "PVRSRV_ERROR_NO_STAGING_BUFFER_ALLOCATED"; - - case PVRSRV_ERROR_UNABLE_TO_CREATE_PERPROC_AREA:return "PVRSRV_ERROR_UNABLE_TO_CREATE_PERPROC_AREA"; - case PVRSRV_ERROR_UNABLE_TO_CREATE_EVENT: return "PVRSRV_ERROR_UNABLE_TO_CREATE_EVENT"; - case PVRSRV_ERROR_UNABLE_TO_ENABLE_EVENT: return "PVRSRV_ERROR_UNABLE_TO_ENABLE_EVENT"; - case PVRSRV_ERROR_UNABLE_TO_REGISTER_EVENT: return "PVRSRV_ERROR_UNABLE_TO_REGISTER_EVENT"; - case PVRSRV_ERROR_UNABLE_TO_DESTROY_EVENT: return "PVRSRV_ERROR_UNABLE_TO_DESTROY_EVENT"; - case PVRSRV_ERROR_UNABLE_TO_CREATE_THREAD: return "PVRSRV_ERROR_UNABLE_TO_CREATE_THREAD"; - case PVRSRV_ERROR_UNABLE_TO_CLOSE_THREAD: return "PVRSRV_ERROR_UNABLE_TO_CLOSE_THREAD"; - case PVRSRV_ERROR_THREAD_READ_ERROR: return "PVRSRV_ERROR_THREAD_READ_ERROR"; - case PVRSRV_ERROR_UNABLE_TO_REGISTER_ISR_HANDLER:return "PVRSRV_ERROR_UNABLE_TO_REGISTER_ISR_HANDLER"; - case PVRSRV_ERROR_UNABLE_TO_INSTALL_ISR: return "PVRSRV_ERROR_UNABLE_TO_INSTALL_ISR"; - case PVRSRV_ERROR_UNABLE_TO_UNINSTALL_ISR: return "PVRSRV_ERROR_UNABLE_TO_UNINSTALL_ISR"; - case PVRSRV_ERROR_ISR_ALREADY_INSTALLED: return "PVRSRV_ERROR_ISR_ALREADY_INSTALLED"; - case PVRSRV_ERROR_ISR_NOT_INSTALLED: return "PVRSRV_ERROR_ISR_NOT_INSTALLED"; - case PVRSRV_ERROR_UNABLE_TO_INITIALISE_INTERRUPT:return "PVRSRV_ERROR_UNABLE_TO_INITIALISE_INTERRUPT"; - case PVRSRV_ERROR_UNABLE_TO_RETRIEVE_INFO: return "PVRSRV_ERROR_UNABLE_TO_RETRIEVE_INFO"; - case PVRSRV_ERROR_UNABLE_TO_DO_BACKWARDS_BLIT: return "PVRSRV_ERROR_UNABLE_TO_DO_BACKWARDS_BLIT"; - case PVRSRV_ERROR_UNABLE_TO_CLOSE_SERVICES: return "PVRSRV_ERROR_UNABLE_TO_CLOSE_SERVICES"; - case PVRSRV_ERROR_UNABLE_TO_REGISTER_CONTEXT: return "PVRSRV_ERROR_UNABLE_TO_REGISTER_CONTEXT"; - case PVRSRV_ERROR_UNABLE_TO_REGISTER_RESOURCE: return "PVRSRV_ERROR_UNABLE_TO_REGISTER_RESOURCE"; - - case PVRSRV_ERROR_INVALID_CCB_COMMAND: return "PVRSRV_ERROR_INVALID_CCB_COMMAND"; - - case PVRSRV_ERROR_UNABLE_TO_LOCK_RESOURCE: return "PVRSRV_ERROR_UNABLE_TO_LOCK_RESOURCE"; - case PVRSRV_ERROR_INVALID_LOCK_ID: return "PVRSRV_ERROR_INVALID_LOCK_ID"; - case PVRSRV_ERROR_RESOURCE_NOT_LOCKED: return "PVRSRV_ERROR_RESOURCE_NOT_LOCKED"; - - case PVRSRV_ERROR_FLIP_FAILED: return "PVRSRV_ERROR_FLIP_FAILED"; - case PVRSRV_ERROR_UNBLANK_DISPLAY_FAILED: return "PVRSRV_ERROR_UNBLANK_DISPLAY_FAILED"; - - case PVRSRV_ERROR_TIMEOUT_POLLING_FOR_VALUE: return "PVRSRV_ERROR_TIMEOUT_POLLING_FOR_VALUE"; - - case PVRSRV_ERROR_CREATE_RENDER_CONTEXT_FAILED: return "PVRSRV_ERROR_CREATE_RENDER_CONTEXT_FAILED"; - case PVRSRV_ERROR_UNKNOWN_PRIMARY_FRAG: return "PVRSRV_ERROR_UNKNOWN_PRIMARY_FRAG"; - case PVRSRV_ERROR_UNEXPECTED_SECONDARY_FRAG: return "PVRSRV_ERROR_UNEXPECTED_SECONDARY_FRAG"; - case PVRSRV_ERROR_UNEXPECTED_PRIMARY_FRAG: return "PVRSRV_ERROR_UNEXPECTED_PRIMARY_FRAG"; - - case PVRSRV_ERROR_UNABLE_TO_INSERT_FENCE_ID: return "PVRSRV_ERROR_UNABLE_TO_INSERT_FENCE_ID"; - - case PVRSRV_ERROR_BLIT_SETUP_FAILED: return "PVRSRV_ERROR_BLIT_SETUP_FAILED"; - - case PVRSRV_ERROR_PDUMP_NOT_AVAILABLE: return "PVRSRV_ERROR_PDUMP_NOT_AVAILABLE"; - case PVRSRV_ERROR_PDUMP_BUFFER_FULL: return "PVRSRV_ERROR_PDUMP_BUFFER_FULL"; - case PVRSRV_ERROR_PDUMP_BUF_OVERFLOW: return "PVRSRV_ERROR_PDUMP_BUF_OVERFLOW"; - case PVRSRV_ERROR_PDUMP_NOT_ACTIVE: return "PVRSRV_ERROR_PDUMP_NOT_ACTIVE"; - case PVRSRV_ERROR_INCOMPLETE_LINE_OVERLAPS_PAGES:return "PVRSRV_ERROR_INCOMPLETE_LINE_OVERLAPS_PAGES"; - - case PVRSRV_ERROR_MUTEX_DESTROY_FAILED: return "PVRSRV_ERROR_MUTEX_DESTROY_FAILED"; - case PVRSRV_ERROR_MUTEX_INTERRUPTIBLE_ERROR: return "PVRSRV_ERROR_MUTEX_INTERRUPTIBLE_ERROR"; - - case PVRSRV_ERROR_INSUFFICIENT_SCRIPT_SPACE: return "PVRSRV_ERROR_INSUFFICIENT_SCRIPT_SPACE"; - case PVRSRV_ERROR_INSUFFICIENT_SPACE_FOR_COMMAND:return "PVRSRV_ERROR_INSUFFICIENT_SPACE_FOR_COMMAND"; - - case PVRSRV_ERROR_PROCESS_NOT_INITIALISED: return "PVRSRV_ERROR_PROCESS_NOT_INITIALISED"; - case PVRSRV_ERROR_PROCESS_NOT_FOUND: return "PVRSRV_ERROR_PROCESS_NOT_FOUND"; - case PVRSRV_ERROR_SRV_CONNECT_FAILED: return "PVRSRV_ERROR_SRV_CONNECT_FAILED"; - case PVRSRV_ERROR_SRV_DISCONNECT_FAILED: return "PVRSRV_ERROR_SRV_DISCONNECT_FAILED"; - case PVRSRV_ERROR_DEINT_PHASE_FAILED: return "PVRSRV_ERROR_DEINT_PHASE_FAILED"; - case PVRSRV_ERROR_INIT2_PHASE_FAILED: return "PVRSRV_ERROR_INIT2_PHASE_FAILED"; - - case PVRSRV_ERROR_NO_DC_DEVICES_FOUND: return "PVRSRV_ERROR_NO_DC_DEVICES_FOUND"; - case PVRSRV_ERROR_UNABLE_TO_OPEN_DC_DEVICE: return "PVRSRV_ERROR_UNABLE_TO_OPEN_DC_DEVICE"; - case PVRSRV_ERROR_UNABLE_TO_REMOVE_DEVICE: return "PVRSRV_ERROR_UNABLE_TO_REMOVE_DEVICE"; - case PVRSRV_ERROR_NO_DEVICEDATA_FOUND: return "PVRSRV_ERROR_NO_DEVICEDATA_FOUND"; - case PVRSRV_ERROR_NO_DEVICENODE_FOUND: return "PVRSRV_ERROR_NO_DEVICENODE_FOUND"; - case PVRSRV_ERROR_NO_CLIENTNODE_FOUND: return "PVRSRV_ERROR_NO_CLIENTNODE_FOUND"; - case PVRSRV_ERROR_FAILED_TO_PROCESS_QUEUE: return "PVRSRV_ERROR_FAILED_TO_PROCESS_QUEUE"; - - case PVRSRV_ERROR_UNABLE_TO_INIT_TASK: return "PVRSRV_ERROR_UNABLE_TO_INIT_TASK"; - case PVRSRV_ERROR_UNABLE_TO_SCHEDULE_TASK: return "PVRSRV_ERROR_UNABLE_TO_SCHEDULE_TASK"; - case PVRSRV_ERROR_UNABLE_TO_KILL_TASK: return "PVRSRV_ERROR_UNABLE_TO_KILL_TASK"; - - case PVRSRV_ERROR_UNABLE_TO_ENABLE_TIMER: return "PVRSRV_ERROR_UNABLE_TO_ENABLE_TIMER"; - case PVRSRV_ERROR_UNABLE_TO_DISABLE_TIMER: return "PVRSRV_ERROR_UNABLE_TO_DISABLE_TIMER"; - case PVRSRV_ERROR_UNABLE_TO_REMOVE_TIMER: return "PVRSRV_ERROR_UNABLE_TO_REMOVE_TIMER"; - - case PVRSRV_ERROR_UNKNOWN_PIXEL_FORMAT: return "PVRSRV_ERROR_UNKNOWN_PIXEL_FORMAT"; - case PVRSRV_ERROR_UNKNOWN_SCRIPT_OPERATION: return "PVRSRV_ERROR_UNKNOWN_SCRIPT_OPERATION"; - - case PVRSRV_ERROR_HANDLE_INDEX_OUT_OF_RANGE: return "PVRSRV_ERROR_HANDLE_INDEX_OUT_OF_RANGE"; - case PVRSRV_ERROR_HANDLE_NOT_ALLOCATED: return "PVRSRV_ERROR_HANDLE_NOT_ALLOCATED"; - case PVRSRV_ERROR_HANDLE_TYPE_MISMATCH: return "PVRSRV_ERROR_HANDLE_TYPE_MISMATCH"; - case PVRSRV_ERROR_UNABLE_TO_ADD_HANDLE: return "PVRSRV_ERROR_UNABLE_TO_ADD_HANDLE"; - case PVRSRV_ERROR_HANDLE_NOT_SHAREABLE: return "PVRSRV_ERROR_HANDLE_NOT_SHAREABLE"; - case PVRSRV_ERROR_HANDLE_NOT_FOUND: return "PVRSRV_ERROR_HANDLE_NOT_FOUND"; - case PVRSRV_ERROR_INVALID_SUBHANDLE: return "PVRSRV_ERROR_INVALID_SUBHANDLE"; - case PVRSRV_ERROR_HANDLE_BATCH_IN_USE: return "PVRSRV_ERROR_HANDLE_BATCH_IN_USE"; - case PVRSRV_ERROR_HANDLE_BATCH_COMMIT_FAILURE: return "PVRSRV_ERROR_HANDLE_BATCH_COMMIT_FAILURE"; - - case PVRSRV_ERROR_UNABLE_TO_CREATE_HASH_TABLE: return "PVRSRV_ERROR_UNABLE_TO_CREATE_HASH_TABLE"; - case PVRSRV_ERROR_INSERT_HASH_TABLE_DATA_FAILED:return "PVRSRV_ERROR_INSERT_HASH_TABLE_DATA_FAILED"; - - case PVRSRV_ERROR_UNSUPPORTED_BACKING_STORE: return "PVRSRV_ERROR_UNSUPPORTED_BACKING_STORE"; - case PVRSRV_ERROR_UNABLE_TO_DESTROY_BM_HEAP: return "PVRSRV_ERROR_UNABLE_TO_DESTROY_BM_HEAP"; - - case PVRSRV_ERROR_UNKNOWN_INIT_SERVER_STATE: return "PVRSRV_ERROR_UNKNOWN_INIT_SERVER_STATE"; - - case PVRSRV_ERROR_NO_FREE_DEVICEIDS_AVALIABLE: return "PVRSRV_ERROR_NO_FREE_DEVICEIDS_AVALIABLE"; - case PVRSRV_ERROR_INVALID_DEVICEID: return "PVRSRV_ERROR_INVALID_DEVICEID"; - case PVRSRV_ERROR_DEVICEID_NOT_FOUND: return "PVRSRV_ERROR_DEVICEID_NOT_FOUND"; - - case PVRSRV_ERROR_MEMORY_TEST_FAILED: return "PVRSRV_ERROR_MEMORY_TEST_FAILED"; - case PVRSRV_ERROR_CPUPADDR_TEST_FAILED: return "PVRSRV_ERROR_CPUPADDR_TEST_FAILED"; - case PVRSRV_ERROR_COPY_TEST_FAILED: return "PVRSRV_ERROR_COPY_TEST_FAILED"; - - case PVRSRV_ERROR_SEMAPHORE_NOT_INITIALISED: return "PVRSRV_ERROR_SEMAPHORE_NOT_INITIALISED"; - - case PVRSRV_ERROR_UNABLE_TO_RELEASE_CLOCK: return "PVRSRV_ERROR_UNABLE_TO_RELEASE_CLOCK"; - case PVRSRV_ERROR_CLOCK_REQUEST_FAILED: return "PVRSRV_ERROR_CLOCK_REQUEST_FAILED"; - case PVRSRV_ERROR_DISABLE_CLOCK_FAILURE: return "PVRSRV_ERROR_DISABLE_CLOCK_FAILURE"; - case PVRSRV_ERROR_UNABLE_TO_SET_CLOCK_RATE: return "PVRSRV_ERROR_UNABLE_TO_SET_CLOCK_RATE"; - case PVRSRV_ERROR_UNABLE_TO_ROUND_CLOCK_RATE: return "PVRSRV_ERROR_UNABLE_TO_ROUND_CLOCK_RATE"; - case PVRSRV_ERROR_UNABLE_TO_ENABLE_CLOCK: return "PVRSRV_ERROR_UNABLE_TO_ENABLE_CLOCK"; - case PVRSRV_ERROR_UNABLE_TO_GET_CLOCK: return "PVRSRV_ERROR_UNABLE_TO_GET_CLOCK"; - case PVRSRV_ERROR_UNABLE_TO_GET_PARENT_CLOCK: return "PVRSRV_ERROR_UNABLE_TO_GET_PARENT_CLOCK"; - case PVRSRV_ERROR_UNABLE_TO_GET_SYSTEM_CLOCK: return "PVRSRV_ERROR_UNABLE_TO_GET_SYSTEM_CLOCK"; - - case PVRSRV_ERROR_UNKNOWN_SGL_ERROR: return "PVRSRV_ERROR_UNKNOWN_SGL_ERROR"; - case PVRSRV_ERROR_BAD_SYNC_STATE: return "PVRSRV_ERROR_BAD_SYNC_STATE"; - - case PVRSRV_ERROR_CACHE_INVALIDATE_FAILED: return "PVRSRV_ERROR_CACHE_INVALIDATE_FAILED"; - - case PVRSRV_ERROR_FORCE_I32: return "PVRSRV_ERROR_FORCE_I32"; - - default: - return "Unknown PVRSRV error number"; - } - -#if defined (__cplusplus) -} -#endif -#endif /* __PVRSRV_ERRORS_H__ */ - -/***************************************************************************** - End of file (pvrsrv_errors.h) -*****************************************************************************/ diff --git a/pvr-source/services4/include/servicesint.h b/pvr-source/services4/include/servicesint.h deleted file mode 100755 index 7b09afb..0000000 --- a/pvr-source/services4/include/servicesint.h +++ /dev/null @@ -1,555 +0,0 @@ -/*************************************************************************/ /*! -@Title Services Internal Header -@Copyright Copyright (c) Imagination Technologies Ltd. All Rights Reserved -@Description services internal details -@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. -*/ /**************************************************************************/ - -#if !defined (__SERVICESINT_H__) -#define __SERVICESINT_H__ - -#if defined (__cplusplus) -extern "C" { -#endif - -#include "services.h" -#include "sysinfo.h" - -#define HWREC_DEFAULT_TIMEOUT (500) - -#define DRIVERNAME_MAXLENGTH (100) - -/* - helper macros: -*/ -#define ALIGNSIZE(size, alignshift) (((size) + ((1UL << (alignshift))-1)) & ~((1UL << (alignshift))-1)) - -#ifndef MAX -#define MAX(a,b) (((a) > (b)) ? (a) : (b)) -#endif -#ifndef MIN -#define MIN(a,b) (((a) < (b)) ? (a) : (b)) -#endif - -/* - Note: - MAX_CLEANUP_TRYS is set to try and be around the frame rate - as for every try we will kick the uKernel which we want to avoid - doing too often (as we risk flooding the uKernel trace buffer - with requests and losing important information from before the - cleanup requests started). -*/ -#define MAX_CLEANUP_TIME_US (MAX_HW_TIME_US * 4) -#define MAX_CLEANUP_TRYS 100 -#define MAX_CLEANUP_TIME_WAIT_US (MAX_CLEANUP_TIME_US/MAX_CLEANUP_TRYS) - -typedef enum _PVRSRV_MEMTYPE_ -{ - PVRSRV_MEMTYPE_UNKNOWN = 0, - PVRSRV_MEMTYPE_DEVICE = 1, - PVRSRV_MEMTYPE_DEVICECLASS = 2, - PVRSRV_MEMTYPE_WRAPPED = 3, - PVRSRV_MEMTYPE_MAPPED = 4, - PVRSRV_MEMTYPE_ION = 5, -} PVRSRV_MEMTYPE; - -/* - Kernel Memory Information structure -*/ -typedef struct _PVRSRV_KERNEL_MEM_INFO_ -{ - /* Kernel Mode CPU Virtual address */ - IMG_PVOID pvLinAddrKM; - - /* Device Virtual Address */ - IMG_DEV_VIRTADDR sDevVAddr; - - /* allocation flags */ - IMG_UINT32 ui32Flags; - - /* Size of the allocated buffer in bytes */ - IMG_SIZE_T uAllocSize; - - /* Internal implementation details. Do not use outside services code. */ - PVRSRV_MEMBLK sMemBlk; - - /* Address of the backup buffer used in a save/restore of the surface */ - IMG_PVOID pvSysBackupBuffer; - - /* refcount for allocation, wrapping and mapping */ - IMG_UINT32 ui32RefCount; - - /* Set when free call ocured and a mapping was still open */ - IMG_BOOL bPendingFree; - - -#if defined(SUPPORT_MEMINFO_IDS) - #if !defined(USE_CODE) - /* Globally unique "stamp" for allocation (not re-used until wrap) */ - IMG_UINT64 ui64Stamp; - #else /* !defined(USE_CODE) */ - IMG_UINT32 dummy1; - IMG_UINT32 dummy2; - #endif /* !defined(USE_CODE) */ -#endif /* defined(SUPPORT_MEMINFO_IDS) */ - - /* ptr to associated kernel sync info - NULL if no sync */ - struct _PVRSRV_KERNEL_SYNC_INFO_ *psKernelSyncInfo; - - PVRSRV_MEMTYPE memType; - - IMG_VOID *bvmap_handle; - - /* Device Virtual Address Offsets for the YUV MM planes */ - IMG_UINT32 planeOffsets[PVRSRV_MAX_NUMBER_OF_MM_BUFFER_PLANES]; - - /* - To activate the "share mem workaround", add PVRSRV_MEM_XPROC to - the flags for the allocation. This will cause the "map" API to - call use Alloc Device Mem but will share the underlying memory - block and sync data. - */ - struct { - /* Record whether the workaround is active for this - allocation. The rest of the fields in this struct are - undefined unless this is true */ - IMG_BOOL bInUse; - - /* Store the device cookie handle from the original - allocation, as it is not present on the "Map" API. */ - IMG_HANDLE hDevCookieInt; - - /* This is an index into a static array which store - information about the underlying allocation */ - IMG_UINT32 ui32ShareIndex; - - /* Original arguments as supplied to original - "PVRSRVAllocDeviceMem" call, such that a new call to this - function can be later constructed */ - IMG_UINT32 ui32OrigReqAttribs; - IMG_UINT32 ui32OrigReqSize; - IMG_UINT32 ui32OrigReqAlignment; - } sShareMemWorkaround; -} PVRSRV_KERNEL_MEM_INFO; - - -/* - Kernel Sync Info structure -*/ -typedef struct _PVRSRV_KERNEL_SYNC_INFO_ -{ - /* kernel sync data */ - PVRSRV_SYNC_DATA *psSyncData; - - /* Device accessible WriteOp Info */ - IMG_DEV_VIRTADDR sWriteOpsCompleteDevVAddr; - - /* Device accessible ReadOp Info */ - IMG_DEV_VIRTADDR sReadOpsCompleteDevVAddr; - - /* Device accessible ReadOp Info */ - IMG_DEV_VIRTADDR sReadOps2CompleteDevVAddr; - - /* meminfo for sync data */ - PVRSRV_KERNEL_MEM_INFO *psSyncDataMemInfoKM; - - /* Reference count for deferring destruction of syncinfo when it is shared */ - /* NB: This is only done for devicemem.c (alloc/map/wrap etc), and - not (presently) for deviceclass memory */ - IMG_PVOID pvRefCount; - - /* Resman cleanup, for those created with explicit API */ - IMG_HANDLE hResItem; - - /* Unique ID of the sync object */ - IMG_UINT32 ui32UID; -} PVRSRV_KERNEL_SYNC_INFO; - -/*! - ***************************************************************************** - * This is a device addressable version of a pvrsrv_sync_oject - * - any hw cmd may have an unlimited number of these - ****************************************************************************/ -typedef struct _PVRSRV_DEVICE_SYNC_OBJECT_ -{ - /* KEEP THESE 6 VARIABLES TOGETHER FOR UKERNEL BLOCK LOAD */ - IMG_UINT32 ui32ReadOpsPendingVal; - IMG_DEV_VIRTADDR sReadOpsCompleteDevVAddr; - IMG_UINT32 ui32WriteOpsPendingVal; - IMG_DEV_VIRTADDR sWriteOpsCompleteDevVAddr; - IMG_UINT32 ui32ReadOps2PendingVal; - IMG_DEV_VIRTADDR sReadOps2CompleteDevVAddr; -} PVRSRV_DEVICE_SYNC_OBJECT; - -/*! - ***************************************************************************** - * encapsulates a single sync object - * - any cmd may have an unlimited number of these - ****************************************************************************/ -typedef struct _PVRSRV_SYNC_OBJECT -{ - PVRSRV_KERNEL_SYNC_INFO *psKernelSyncInfoKM; - IMG_UINT32 ui32WriteOpsPending; - IMG_UINT32 ui32ReadOpsPending; - IMG_UINT32 ui32ReadOps2Pending; - -}PVRSRV_SYNC_OBJECT, *PPVRSRV_SYNC_OBJECT; - -/*! - ***************************************************************************** - * The `one size fits all' generic command. - ****************************************************************************/ -typedef struct _PVRSRV_COMMAND -{ - IMG_SIZE_T uCmdSize; /*!< total size of command */ - IMG_UINT32 ui32DevIndex; /*!< device type - 16bit enum (exported by system) */ - IMG_UINT32 CommandType; /*!< command type */ - IMG_UINT32 ui32DstSyncCount; /*!< number of dst sync objects */ - IMG_UINT32 ui32SrcSyncCount; /*!< number of src sync objects */ - PVRSRV_SYNC_OBJECT *psDstSync; /*!< dst sync ptr list, allocated on - back of this structure, i.e. is resident in Q */ - PVRSRV_SYNC_OBJECT *psSrcSync; /*!< src sync ptr list, allocated on - back of this structure, i.e. is resident in Q */ - IMG_SIZE_T uDataSize; /*!< Size of Cmd Data Packet - - only required in terms of allocating Q space */ - IMG_UINT32 ui32ProcessID; /*!< Process ID for debugging */ - IMG_VOID *pvData; /*!< data to be passed to Cmd Handler function, - allocated on back of this structure, i.e. is resident in Q */ - PFN_QUEUE_COMMAND_COMPLETE pfnCommandComplete; /*!< Command complete callback */ - IMG_HANDLE hCallbackData; /*!< Command complete callback data */ -}PVRSRV_COMMAND, *PPVRSRV_COMMAND; - - -/*! - ***************************************************************************** - * Circular command buffer structure forming the queue of pending commands. - * - * Queues are implemented as circular comamnd buffers (CCBs). - * The buffer is allocated as a specified size, plus the size of the largest supported command. - * The extra size allows commands to be added without worrying about wrapping around at the end. - * - * Commands are added to the CCB by client processes and consumed within - * kernel mode code running from within an L/MISR typically. - * - * The process of adding a command to a queue is as follows:- - * - A `lock' is acquired to prevent other processes from adding commands to a queue - * - Data representing the command to be executed, along with it's PVRSRV_SYNC_INFO - * dependencies is written to the buffer representing the queue at the queues - * current WriteOffset. - * - The PVRSRV_SYNC_INFO that the command depends on are updated to reflect - * the addition of the new command. - * - The WriteOffset is incremented by the size of the command added. - * - If the WriteOffset now lies beyound the declared buffer size, it is - * reset to zero. - * - The semaphore is released. - * - *****************************************************************************/ -typedef struct _PVRSRV_QUEUE_INFO_ -{ - IMG_VOID *pvLinQueueKM; /*!< Pointer to the command buffer in the kernel's - address space */ - - IMG_VOID *pvLinQueueUM; /*!< Pointer to the command buffer in the user's - address space */ - - volatile IMG_SIZE_T ui32ReadOffset; /*!< Index into the buffer at which commands are being - consumed */ - - volatile IMG_SIZE_T ui32WriteOffset; /*!< Index into the buffer at which commands are being - added */ - - IMG_UINT32 *pui32KickerAddrKM; /*!< kicker address in the kernel's - address space*/ - - IMG_UINT32 *pui32KickerAddrUM; /*!< kicker address in the user's - address space */ - - IMG_SIZE_T ui32QueueSize; /*!< Size in bytes of the buffer - excluding the safety allocation */ - - IMG_UINT32 ui32ProcessID; /*!< Process ID required by resource locking */ - - IMG_HANDLE hMemBlock[2]; - - struct _PVRSRV_QUEUE_INFO_ *psNextKM; /*!< The next queue in the system */ -}PVRSRV_QUEUE_INFO; - - -typedef struct _PVRSRV_HEAP_INFO_KM_ -{ - IMG_UINT32 ui32HeapID; - IMG_DEV_VIRTADDR sDevVAddrBase; - - IMG_HANDLE hDevMemHeap; - IMG_UINT32 ui32HeapByteSize; - IMG_UINT32 ui32Attribs; - IMG_UINT32 ui32XTileStride; -}PVRSRV_HEAP_INFO_KM; - - -/* - Event Object information structure -*/ -typedef struct _PVRSRV_EVENTOBJECT_KM_ -{ - /* globally unique name of the event object */ - IMG_CHAR szName[EVENTOBJNAME_MAXLENGTH]; - /* kernel specific handle for the event object */ - IMG_HANDLE hOSEventKM; - -} PVRSRV_EVENTOBJECT_KM; - - -/*! - ****************************************************************************** - * Structure to retrieve misc. information from services - *****************************************************************************/ -typedef struct _PVRSRV_MISC_INFO_KM_ -{ - IMG_UINT32 ui32StateRequest; /*!< requested State Flags */ - IMG_UINT32 ui32StatePresent; /*!< Present/Valid State Flags */ - - /*!< SOC Timer register */ - IMG_VOID *pvSOCTimerRegisterKM; - IMG_VOID *pvSOCTimerRegisterUM; - IMG_HANDLE hSOCTimerRegisterOSMemHandle; - IMG_HANDLE hSOCTimerRegisterMappingInfo; - - /*!< SOC Clock Gating registers */ - IMG_VOID *pvSOCClockGateRegs; - IMG_UINT32 ui32SOCClockGateRegsSize; - - /* Memory Stats/DDK version string depending on ui32StateRequest flags */ - IMG_CHAR *pszMemoryStr; - IMG_UINT32 ui32MemoryStrLen; - - /* global event object */ - PVRSRV_EVENTOBJECT_KM sGlobalEventObject;//FIXME: should be private to services - IMG_HANDLE hOSGlobalEvent; - - /* Note: add misc. items as required */ - IMG_UINT32 aui32DDKVersion[4]; - - /*!< CPU cache flush controls: */ - struct - { - /*!< Defer the CPU cache op to the next HW op to be submitted (else flush now) */ - IMG_BOOL bDeferOp; - - /*!< Type of cache operation to perform */ - PVRSRV_MISC_INFO_CPUCACHEOP_TYPE eCacheOpType; - - /*!< Meminfo (or meminfo handle) to flush */ - PVRSRV_KERNEL_MEM_INFO *psKernelMemInfo; - - /*!< Offset in MemInfo to start cache op */ - IMG_VOID *pvBaseVAddr; - - /*!< Length of range to perform cache op */ - IMG_UINT32 ui32Length; - } sCacheOpCtl; - - /*!< Meminfo refcount controls: */ - struct - { - /*!< Meminfo (or meminfo handle) to get refcount for */ - PVRSRV_KERNEL_MEM_INFO *psKernelMemInfo; - - /*!< Resulting refcount */ - IMG_UINT32 ui32RefCount; - } sGetRefCountCtl; -} PVRSRV_MISC_INFO_KM; - - -/* insert command function pointer */ -typedef PVRSRV_ERROR (*PFN_INSERT_CMD) (PVRSRV_QUEUE_INFO*, - PVRSRV_COMMAND**, - IMG_UINT32, - IMG_UINT16, - IMG_UINT32, - PVRSRV_KERNEL_SYNC_INFO*[], - IMG_UINT32, - PVRSRV_KERNEL_SYNC_INFO*[], - IMG_UINT32); -/* submit command function pointer */ -typedef PVRSRV_ERROR (*PFN_SUBMIT_CMD) (PVRSRV_QUEUE_INFO*, PVRSRV_COMMAND*, IMG_BOOL); - - -/*********************************************************************** - Device Class Structures -***********************************************************************/ - -/* - Generic Device Class Buffer - - details common between DC and BC -*/ -typedef struct PVRSRV_DEVICECLASS_BUFFER_TAG -{ - PFN_GET_BUFFER_ADDR pfnGetBufferAddr; - IMG_HANDLE hDevMemContext; - IMG_HANDLE hExtDevice; - IMG_HANDLE hExtBuffer; - PVRSRV_KERNEL_SYNC_INFO *psKernelSyncInfo; - IMG_UINT32 ui32MemMapRefCount; -} PVRSRV_DEVICECLASS_BUFFER; - - -/* - Common Device Class client services information structure -*/ -typedef struct PVRSRV_CLIENT_DEVICECLASS_INFO_TAG -{ -#if defined (SUPPORT_SID_INTERFACE) - IMG_SID hDeviceKM; -#else - IMG_HANDLE hDeviceKM; -#endif - IMG_HANDLE hServices; -} PVRSRV_CLIENT_DEVICECLASS_INFO; - - -typedef enum -{ - PVRSRV_FREE_CALLBACK_ORIGIN_ALLOCATOR, - PVRSRV_FREE_CALLBACK_ORIGIN_IMPORTER, - PVRSRV_FREE_CALLBACK_ORIGIN_EXTERNAL, -} -PVRSRV_FREE_CALLBACK_ORIGIN; - - -IMG_IMPORT -PVRSRV_ERROR FreeMemCallBackCommon(PVRSRV_KERNEL_MEM_INFO *psMemInfo, - IMG_UINT32 ui32Param, - PVRSRV_FREE_CALLBACK_ORIGIN eCallbackOrigin); - - -IMG_IMPORT -PVRSRV_ERROR PVRSRVQueueCommand(IMG_HANDLE hQueueInfo, - PVRSRV_COMMAND *psCommand); - - -/*! - * ***************************************************************************** - * @Description Allocates system memory on behalf of a userspace process that is - * addressable by the kernel; suitable for mapping into the current - * user space process; suitable for mapping into other userspace - * processes and it is possible to entirely disassociate the system - * memory from the current userspace process via a call to - * PVRSRVDissociateSharedSysMemoryKM. - * - * @Input psConnection - * @Input ui32Flags - * @Input ui32Size - * @Output ppsClientMemInfo - * - * @Return PVRSRV_ERROR - ********************************************************************************/ -IMG_IMPORT PVRSRV_ERROR IMG_CALLCONV -PVRSRVAllocSharedSysMem(const PVRSRV_CONNECTION *psConnection, - IMG_UINT32 ui32Flags, - IMG_SIZE_T ui32Size, - PVRSRV_CLIENT_MEM_INFO **ppsClientMemInfo); - -/*! - * ***************************************************************************** - * @Description Frees memory allocated via PVRSRVAllocSharedMemory (Note you must - * be sure any additional kernel references you created have been - * removed before freeing the memory) - * - * @Input psConnection - * @Input psClientMemInfo - * - * @Return PVRSRV_ERROR - ********************************************************************************/ -IMG_IMPORT PVRSRV_ERROR IMG_CALLCONV -PVRSRVFreeSharedSysMem(const PVRSRV_CONNECTION *psConnection, - PVRSRV_CLIENT_MEM_INFO *psClientMemInfo); - -/*! - * ***************************************************************************** - * @Description Removes any userspace reference to the shared system memory, except - * that the memory will remain registered with the services resource - * manager so if the process dies/exits the actuall shared memory will - * still be freed. - * If you need to move ownership of shared memory from userspace - * to kernel space then before unrefing a shared piece of memory you can - * take a copy of psClientMemInfo->hKernelMemInfo; call - * PVRSRVUnrefSharedSysMem; then use some mechanism (specialised bridge - * function) to request that the kernel remove any resource manager - * reference to the shared memory and assume responsaility for the meminfo - * in one atomic operation. (Note to aid with such a kernel space bridge - * function see PVRSRVDissociateSharedSysMemoryKM) - * - * @Input psConnection - * @Input psClientMemInfo - * - * @Return PVRSRV_ERROR - ********************************************************************************/ -IMG_IMPORT PVRSRV_ERROR -PVRSRVUnrefSharedSysMem(const PVRSRV_CONNECTION *psConnection, - PVRSRV_CLIENT_MEM_INFO *psClientMemInfo); - -/*! - * ***************************************************************************** - * @Description For shared system or device memory that is owned by the kernel, you can - * use this function to map the underlying memory into a client using a - * handle for the KernelMemInfo. - * - * @Input psConnection - * @Input hKernelMemInfo - * @Output ppsClientMemInfo - * - * @Return PVRSRV_ERROR - ********************************************************************************/ -IMG_IMPORT PVRSRV_ERROR IMG_CALLCONV -PVRSRVMapMemInfoMem(const PVRSRV_CONNECTION *psConnection, -#if defined (SUPPORT_SID_INTERFACE) - IMG_SID hKernelMemInfo, -#else - IMG_HANDLE hKernelMemInfo, -#endif - PVRSRV_CLIENT_MEM_INFO **ppsClientMemInfo); - - -#if defined (__cplusplus) -} -#endif -#endif /* __SERVICESINT_H__ */ - -/***************************************************************************** - End of file (servicesint.h) -*****************************************************************************/ diff --git a/pvr-source/services4/include/sgx_bridge.h b/pvr-source/services4/include/sgx_bridge.h deleted file mode 100755 index 33b27e3..0000000 --- a/pvr-source/services4/include/sgx_bridge.h +++ /dev/null @@ -1,779 +0,0 @@ -/*************************************************************************/ /*! -@Title SGX Bridge Functionality -@Copyright Copyright (c) Imagination Technologies Ltd. All Rights Reserved -@Description Header for the sgx Brdige 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. -*/ /**************************************************************************/ - -#if !defined(__SGX_BRIDGE_H__) -#define __SGX_BRIDGE_H__ - -#if defined (SUPPORT_SID_INTERFACE) -#include "sgxapi.h" -#else -#include "sgxapi_km.h" -#endif -#include "sgxinfo.h" -#include "pvr_bridge.h" - -#if defined (__cplusplus) -extern "C" { -#endif - - -/* - * Bridge Cmd Ids - */ - -/* *REMEMBER* to update PVRSRV_BRIDGE_LAST_SGX_CMD if you add/remove a command! - * Also you need to ensure all PVRSRV_BRIDGE_SGX_CMD_BASE+ offsets are sequential! - */ - -#define PVRSRV_BRIDGE_SGX_CMD_BASE (PVRSRV_BRIDGE_LAST_NON_DEVICE_CMD+1) -#define PVRSRV_BRIDGE_SGX_GETCLIENTINFO PVRSRV_IOWR(PVRSRV_BRIDGE_SGX_CMD_BASE+0) -#define PVRSRV_BRIDGE_SGX_RELEASECLIENTINFO PVRSRV_IOWR(PVRSRV_BRIDGE_SGX_CMD_BASE+1) -#define PVRSRV_BRIDGE_SGX_GETINTERNALDEVINFO PVRSRV_IOWR(PVRSRV_BRIDGE_SGX_CMD_BASE+2) -#define PVRSRV_BRIDGE_SGX_DOKICK PVRSRV_IOWR(PVRSRV_BRIDGE_SGX_CMD_BASE+3) -#define PVRSRV_BRIDGE_SGX_GETPHYSPAGEADDR PVRSRV_IOWR(PVRSRV_BRIDGE_SGX_CMD_BASE+4) -#define PVRSRV_BRIDGE_SGX_READREGISTRYDWORD PVRSRV_IOWR(PVRSRV_BRIDGE_SGX_CMD_BASE+5) - -#define PVRSRV_BRIDGE_SGX_2DQUERYBLTSCOMPLETE PVRSRV_IOWR(PVRSRV_BRIDGE_SGX_CMD_BASE+9) - -#if defined(TRANSFER_QUEUE) -#define PVRSRV_BRIDGE_SGX_SUBMITTRANSFER PVRSRV_IOWR(PVRSRV_BRIDGE_SGX_CMD_BASE+13) -#endif -#define PVRSRV_BRIDGE_SGX_GETMISCINFO PVRSRV_IOWR(PVRSRV_BRIDGE_SGX_CMD_BASE+14) -#define PVRSRV_BRIDGE_SGXINFO_FOR_SRVINIT PVRSRV_IOWR(PVRSRV_BRIDGE_SGX_CMD_BASE+15) -#define PVRSRV_BRIDGE_SGX_DEVINITPART2 PVRSRV_IOWR(PVRSRV_BRIDGE_SGX_CMD_BASE+16) - -#define PVRSRV_BRIDGE_SGX_FINDSHAREDPBDESC PVRSRV_IOWR(PVRSRV_BRIDGE_SGX_CMD_BASE+17) -#define PVRSRV_BRIDGE_SGX_UNREFSHAREDPBDESC PVRSRV_IOWR(PVRSRV_BRIDGE_SGX_CMD_BASE+18) -#define PVRSRV_BRIDGE_SGX_ADDSHAREDPBDESC PVRSRV_IOWR(PVRSRV_BRIDGE_SGX_CMD_BASE+19) -#define PVRSRV_BRIDGE_SGX_REGISTER_HW_RENDER_CONTEXT PVRSRV_IOWR(PVRSRV_BRIDGE_SGX_CMD_BASE+20) -#define PVRSRV_BRIDGE_SGX_FLUSH_HW_RENDER_TARGET PVRSRV_IOWR(PVRSRV_BRIDGE_SGX_CMD_BASE+21) -#define PVRSRV_BRIDGE_SGX_UNREGISTER_HW_RENDER_CONTEXT PVRSRV_IOWR(PVRSRV_BRIDGE_SGX_CMD_BASE+22) -#if defined(SGX_FEATURE_2D_HARDWARE) -#define PVRSRV_BRIDGE_SGX_SUBMIT2D PVRSRV_IOWR(PVRSRV_BRIDGE_SGX_CMD_BASE+23) -#define PVRSRV_BRIDGE_SGX_REGISTER_HW_2D_CONTEXT PVRSRV_IOWR(PVRSRV_BRIDGE_SGX_CMD_BASE+24) -#define PVRSRV_BRIDGE_SGX_UNREGISTER_HW_2D_CONTEXT PVRSRV_IOWR(PVRSRV_BRIDGE_SGX_CMD_BASE+25) -#endif -#define PVRSRV_BRIDGE_SGX_REGISTER_HW_TRANSFER_CONTEXT PVRSRV_IOWR(PVRSRV_BRIDGE_SGX_CMD_BASE+26) -#define PVRSRV_BRIDGE_SGX_UNREGISTER_HW_TRANSFER_CONTEXT PVRSRV_IOWR(PVRSRV_BRIDGE_SGX_CMD_BASE+27) - -#define PVRSRV_BRIDGE_SGX_SCHEDULE_PROCESS_QUEUES PVRSRV_IOWR(PVRSRV_BRIDGE_SGX_CMD_BASE+28) - -#define PVRSRV_BRIDGE_SGX_READ_HWPERF_CB PVRSRV_IOWR(PVRSRV_BRIDGE_SGX_CMD_BASE+29) -#define PVRSRV_BRIDGE_SGX_SET_RENDER_CONTEXT_PRIORITY PVRSRV_IOWR(PVRSRV_BRIDGE_SGX_CMD_BASE+30) -#define PVRSRV_BRIDGE_SGX_SET_TRANSFER_CONTEXT_PRIORITY PVRSRV_IOWR(PVRSRV_BRIDGE_SGX_CMD_BASE+31) - -#if defined(PDUMP) -#define PVRSRV_BRIDGE_SGX_PDUMP_BUFFER_ARRAY PVRSRV_IOWR(PVRSRV_BRIDGE_SGX_CMD_BASE+32) -#define PVRSRV_BRIDGE_SGX_PDUMP_3D_SIGNATURE_REGISTERS PVRSRV_IOWR(PVRSRV_BRIDGE_SGX_CMD_BASE+33) -#define PVRSRV_BRIDGE_SGX_PDUMP_COUNTER_REGISTERS PVRSRV_IOWR(PVRSRV_BRIDGE_SGX_CMD_BASE+34) -#define PVRSRV_BRIDGE_SGX_PDUMP_TA_SIGNATURE_REGISTERS PVRSRV_IOWR(PVRSRV_BRIDGE_SGX_CMD_BASE+35) -#define PVRSRV_BRIDGE_SGX_PDUMP_HWPERFCB PVRSRV_IOWR(PVRSRV_BRIDGE_SGX_CMD_BASE+36) -#define PVRSRV_BRIDGE_SGX_PDUMP_SAVEMEM PVRSRV_IOWR(PVRSRV_BRIDGE_SGX_CMD_BASE+37) -#endif - - - -/* *REMEMBER* to update PVRSRV_BRIDGE_LAST_SGX_CMD if you add/remove a command! - * You need to ensure all PVRSRV_BRIDGE_SGX_CMD_BASE+ offsets are sequential! - */ -#define PVRSRV_BRIDGE_LAST_SGX_CMD (PVRSRV_BRIDGE_SGX_CMD_BASE+37) - -/***************************************************************************** - * Input structures for IOCTL/DRVESC - *****************************************************************************/ - -/*! - ***************************************************************************** - * `bridge in' SGX Get Phys Page Addr - *****************************************************************************/ -typedef struct PVRSRV_BRIDGE_IN_GETPHYSPAGEADDR -{ - IMG_UINT32 ui32BridgeFlags; /* Must be first member of structure */ - IMG_HANDLE hDevMemHeap; - IMG_DEV_VIRTADDR sDevVAddr; -}PVRSRV_BRIDGE_IN_GETPHYSPAGEADDR; - -/*! - ***************************************************************************** - * `bridge out' SGX Get Phys Page Addr - *****************************************************************************/ -typedef struct PVRSRV_BRIDGE_OUT_GETPHYSPAGEADDR -{ - PVRSRV_ERROR eError; - IMG_DEV_PHYADDR DevPAddr; - IMG_CPU_PHYADDR CpuPAddr; -}PVRSRV_BRIDGE_OUT_GETPHYSPAGEADDR; - -/*! - ***************************************************************************** - * `bridge in' set transfer context priority - *****************************************************************************/ -typedef struct PVRSRV_BRIDGE_IN_SGX_SET_TRANSFER_CONTEXT_PRIORITY_TAG - { - IMG_UINT32 ui32BridgeFlags; /* Must be first member of structure */ - #if defined (SUPPORT_SID_INTERFACE) - IMG_SID hDevCookie; - IMG_SID hHWTransferContext; - #else - IMG_HANDLE hDevCookie; - IMG_HANDLE hHWTransferContext; - #endif - IMG_UINT32 ui32Priority; - IMG_UINT32 ui32OffsetOfPriorityField; -}PVRSRV_BRIDGE_IN_SGX_SET_TRANSFER_CONTEXT_PRIORITY; - -/*! - ***************************************************************************** - * `bridge in' set render context priority - *****************************************************************************/ -typedef struct PVRSRV_BRIDGE_IN_SGX_SET_RENDER_CONTEXT_PRIORITY_TAG -{ - IMG_UINT32 ui32BridgeFlags; /* Must be first member of structure */ -#if defined (SUPPORT_SID_INTERFACE) - IMG_SID hDevCookie; - IMG_SID hHWRenderContext; -#else - IMG_HANDLE hDevCookie; - IMG_HANDLE hHWRenderContext; -#endif - IMG_UINT32 ui32Priority; - IMG_UINT32 ui32OffsetOfPriorityField; -}PVRSRV_BRIDGE_IN_SGX_SET_RENDER_CONTEXT_PRIORITY; - -/*! - ***************************************************************************** - * `bridge in' Get Client Info - *****************************************************************************/ -typedef struct PVRSRV_BRIDGE_IN_GETCLIENTINFO_TAG -{ - IMG_UINT32 ui32BridgeFlags; /* Must be first member of structure */ -#if defined (SUPPORT_SID_INTERFACE) - IMG_SID hDevCookie; -#else - IMG_HANDLE hDevCookie; -#endif -}PVRSRV_BRIDGE_IN_GETCLIENTINFO; - -/*! - ***************************************************************************** - * `bridge out' Get internal device info - *****************************************************************************/ -typedef struct PVRSRV_BRIDGE_OUT_GETINTERNALDEVINFO_TAG -{ - SGX_INTERNAL_DEVINFO sSGXInternalDevInfo; - PVRSRV_ERROR eError; -}PVRSRV_BRIDGE_OUT_GETINTERNALDEVINFO; - -/*! - ***************************************************************************** - * `bridge in' Get internal device info - *****************************************************************************/ -typedef struct PVRSRV_BRIDGE_IN_GETINTERNALDEVINFO_TAG -{ - IMG_UINT32 ui32BridgeFlags; /* Must be first member of structure */ -#if defined (SUPPORT_SID_INTERFACE) - IMG_SID hDevCookie; -#else - IMG_HANDLE hDevCookie; -#endif -}PVRSRV_BRIDGE_IN_GETINTERNALDEVINFO; - -/*! - ***************************************************************************** - * `bridge out' Get Client Info - *****************************************************************************/ -typedef struct PVRSRV_BRIDGE_OUT_GETCLIENTINFO_TAG -{ - SGX_CLIENT_INFO sClientInfo; - PVRSRV_ERROR eError; -}PVRSRV_BRIDGE_OUT_GETCLIENTINFO; - -/*! - ***************************************************************************** - * `bridge in' Release Client Info - *****************************************************************************/ -typedef struct PVRSRV_BRIDGE_IN_RELEASECLIENTINFO_TAG -{ - IMG_UINT32 ui32BridgeFlags; /* Must be first member of structure */ -#if defined (SUPPORT_SID_INTERFACE) - IMG_SID hDevCookie; -#else - IMG_HANDLE hDevCookie; -#endif - SGX_CLIENT_INFO sClientInfo; -}PVRSRV_BRIDGE_IN_RELEASECLIENTINFO; - -/*! - ***************************************************************************** - * `bridge in' Pdump ISP mem Pol - *****************************************************************************/ -typedef struct PVRSRV_BRIDGE_IN_ISPBREAKPOLL_TAG -{ - IMG_UINT32 ui32BridgeFlags; /* Must be first member of structure */ -#if defined (SUPPORT_SID_INTERFACE) - IMG_SID hDevCookie; -#else - IMG_HANDLE hDevCookie; -#endif -}PVRSRV_BRIDGE_IN_ISPBREAKPOLL; - -/*! - ***************************************************************************** - * `bridge in' KickTA - *****************************************************************************/ -typedef struct PVRSRV_BRIDGE_IN_DOKICK_TAG -{ - IMG_UINT32 ui32BridgeFlags; /* Must be first member of structure */ -#if defined (SUPPORT_SID_INTERFACE) - IMG_SID hDevCookie; -#else - IMG_HANDLE hDevCookie; -#endif - SGX_CCB_KICK sCCBKick; -}PVRSRV_BRIDGE_IN_DOKICK; - -/*! - ***************************************************************************** - * `bridge in' SGXScheduleProcessQueues - *****************************************************************************/ -typedef struct PVRSRV_BRIDGE_IN_SGX_SCHEDULE_PROCESS_QUEUES_TAG -{ - IMG_UINT32 ui32BridgeFlags; /* Must be first member of structure */ -#if defined (SUPPORT_SID_INTERFACE) - IMG_SID hDevCookie; -#else - IMG_HANDLE hDevCookie; -#endif -}PVRSRV_BRIDGE_IN_SGX_SCHEDULE_PROCESS_QUEUES; - - -#if defined(TRANSFER_QUEUE) -/*! - ***************************************************************************** - * `bridge in' SubmitTransfer - *****************************************************************************/ -typedef struct PVRSRV_BRIDGE_IN_SUBMITTRANSFER_TAG -{ - IMG_UINT32 ui32BridgeFlags; /* Must be first member of structure */ -#if defined (SUPPORT_SID_INTERFACE) - IMG_SID hDevCookie; -#else - IMG_HANDLE hDevCookie; -#endif - PVRSRV_TRANSFER_SGX_KICK sKick; -}PVRSRV_BRIDGE_IN_SUBMITTRANSFER; - -#if defined(SGX_FEATURE_2D_HARDWARE) -/*! - ***************************************************************************** - * `bridge in' Submit2D - *****************************************************************************/ -typedef struct PVRSRV_BRIDGE_IN_SUBMIT2D_TAG -{ - IMG_UINT32 ui32BridgeFlags; /* Must be first member of structure */ -#if defined (SUPPORT_SID_INTERFACE) - IMG_SID hDevCookie; -#else - IMG_HANDLE hDevCookie; -#endif - PVRSRV_2D_SGX_KICK sKick; -} PVRSRV_BRIDGE_IN_SUBMIT2D; -#endif -#endif - -/*! - ***************************************************************************** - * `bridge in' ReadRegistryString - *****************************************************************************/ -typedef struct PVRSRV_BRIDGE_IN_READREGDWORD_TAG -{ - IMG_UINT32 ui32BridgeFlags; /* Must be first member of structure */ -#if defined (SUPPORT_SID_INTERFACE) - IMG_SID hDevCookie; -#else - IMG_HANDLE hDevCookie; -#endif - IMG_PCHAR pszKey; - IMG_PCHAR pszValue; -}PVRSRV_BRIDGE_IN_READREGDWORD; - -/*! - ***************************************************************************** - * `bridge out' ReadRegistryString - *****************************************************************************/ -typedef struct PVRSRV_BRIDGE_OUT_READREGDWORD_TAG -{ - PVRSRV_ERROR eError; - IMG_UINT32 ui32Data; -}PVRSRV_BRIDGE_OUT_READREGDWORD; - - -/*! - ***************************************************************************** - * `bridge in' SGXGetMiscInfo - *****************************************************************************/ -typedef struct PVRSRV_BRIDGE_IN_SGXGETMISCINFO_TAG -{ - IMG_UINT32 ui32BridgeFlags; /* Must be first member of structure */ -#if defined (SUPPORT_SID_INTERFACE) - IMG_SID hDevCookie; -#else - IMG_HANDLE hDevCookie; -#endif - SGX_MISC_INFO *psMiscInfo; -}PVRSRV_BRIDGE_IN_SGXGETMISCINFO; - -/*! - ***************************************************************************** - * `bridge in' SGXGetInfoForSrvInit - *****************************************************************************/ -typedef struct PVRSRV_BRIDGE_IN_SGXINFO_FOR_SRVINIT_TAG -{ - IMG_UINT32 ui32BridgeFlags; /* Must be first member of structure */ -#if defined (SUPPORT_SID_INTERFACE) - IMG_SID hDevCookie; -#else - IMG_HANDLE hDevCookie; -#endif -}PVRSRV_BRIDGE_IN_SGXINFO_FOR_SRVINIT; - -/*! - ***************************************************************************** - * `bridge out' SGXGetInfoForSrvInit - *****************************************************************************/ -typedef struct PVRSRV_BRIDGE_OUT_SGXINFO_FOR_SRVINIT_TAG -{ - PVRSRV_ERROR eError; - SGX_BRIDGE_INFO_FOR_SRVINIT sInitInfo; -}PVRSRV_BRIDGE_OUT_SGXINFO_FOR_SRVINIT; - -/*! - ***************************************************************************** - * `bridge in' SGXDevInitPart2 - *****************************************************************************/ -typedef struct PVRSRV_BRIDGE_IN_SGXDEVINITPART2_TAG -{ - IMG_UINT32 ui32BridgeFlags; /* Must be first member of structure */ -#if defined (SUPPORT_SID_INTERFACE) - IMG_SID hDevCookie; -#else - IMG_HANDLE hDevCookie; -#endif - SGX_BRIDGE_INIT_INFO sInitInfo; -}PVRSRV_BRIDGE_IN_SGXDEVINITPART2; - -/*! - ***************************************************************************** - * `bridge out' SGXDevInitPart2 - *****************************************************************************/ -typedef struct PVRSRV_BRIDGE_OUT_SGXDEVINITPART2_TAG -{ - PVRSRV_ERROR eError; - IMG_UINT32 ui32KMBuildOptions; - -}PVRSRV_BRIDGE_OUT_SGXDEVINITPART2; - -/*! - ***************************************************************************** - * `bridge in' 2D query blits complete - *****************************************************************************/ -typedef struct PVRSRV_BRIDGE_IN_2DQUERYBLTSCOMPLETE_TAG -{ - IMG_UINT32 ui32BridgeFlags; /* Must be first member of structure */ -#if defined (SUPPORT_SID_INTERFACE) - IMG_SID hDevCookie; - IMG_SID hKernSyncInfo; -#else - IMG_HANDLE hDevCookie; - IMG_HANDLE hKernSyncInfo; -#endif - IMG_BOOL bWaitForComplete; -}PVRSRV_BRIDGE_IN_2DQUERYBLTSCOMPLETE; - - -#define PVRSRV_BRIDGE_SGX_SHAREDPBDESC_MAX_SUBMEMINFOS 10 - -typedef struct PVRSRV_BRIDGE_IN_SGXFINDSHAREDPBDESC_TAG -{ - IMG_UINT32 ui32BridgeFlags; /* Must be first member of structure */ -#if defined (SUPPORT_SID_INTERFACE) - IMG_SID hDevCookie; -#else - IMG_HANDLE hDevCookie; -#endif - IMG_BOOL bLockOnFailure; - IMG_UINT32 ui32TotalPBSize; -}PVRSRV_BRIDGE_IN_SGXFINDSHAREDPBDESC; - -typedef struct PVRSRV_BRIDGE_OUT_SGXFINDSHAREDPBDESC_TAG -{ -#if defined (SUPPORT_SID_INTERFACE) - IMG_SID hKernelMemInfo; - IMG_SID hSharedPBDesc; - IMG_SID hSharedPBDescKernelMemInfoHandle; - IMG_SID hHWPBDescKernelMemInfoHandle; - IMG_SID hBlockKernelMemInfoHandle; - IMG_SID hHWBlockKernelMemInfoHandle; - IMG_SID ahSharedPBDescSubKernelMemInfoHandles[PVRSRV_BRIDGE_SGX_SHAREDPBDESC_MAX_SUBMEMINFOS]; -#else - IMG_HANDLE hKernelMemInfo; - IMG_HANDLE hSharedPBDesc; - IMG_HANDLE hSharedPBDescKernelMemInfoHandle; - IMG_HANDLE hHWPBDescKernelMemInfoHandle; - IMG_HANDLE hBlockKernelMemInfoHandle; - IMG_HANDLE hHWBlockKernelMemInfoHandle; - IMG_HANDLE ahSharedPBDescSubKernelMemInfoHandles[PVRSRV_BRIDGE_SGX_SHAREDPBDESC_MAX_SUBMEMINFOS]; -#endif - IMG_UINT32 ui32SharedPBDescSubKernelMemInfoHandlesCount; - PVRSRV_ERROR eError; -}PVRSRV_BRIDGE_OUT_SGXFINDSHAREDPBDESC; - -typedef struct PVRSRV_BRIDGE_IN_SGXUNREFSHAREDPBDESC_TAG -{ - IMG_UINT32 ui32BridgeFlags; /* Must be first member of structure */ -#if defined (SUPPORT_SID_INTERFACE) - IMG_SID hSharedPBDesc; -#else - IMG_HANDLE hSharedPBDesc; -#endif -}PVRSRV_BRIDGE_IN_SGXUNREFSHAREDPBDESC; - -typedef struct PVRSRV_BRIDGE_OUT_SGXUNREFSHAREDPBDESC_TAG -{ - PVRSRV_ERROR eError; -}PVRSRV_BRIDGE_OUT_SGXUNREFSHAREDPBDESC; - - -typedef struct PVRSRV_BRIDGE_IN_SGXADDSHAREDPBDESC_TAG -{ - IMG_UINT32 ui32BridgeFlags; /* Must be first member of structure */ - IMG_UINT32 ui32TotalPBSize; -#if defined (SUPPORT_SID_INTERFACE) - IMG_SID hDevCookie; - IMG_SID hSharedPBDescKernelMemInfo; - IMG_SID hHWPBDescKernelMemInfo; - IMG_SID hBlockKernelMemInfo; - IMG_SID hHWBlockKernelMemInfo; - IMG_SID *phKernelMemInfoHandles; -#else - IMG_HANDLE hDevCookie; - IMG_HANDLE hSharedPBDescKernelMemInfo; - IMG_HANDLE hHWPBDescKernelMemInfo; - IMG_HANDLE hBlockKernelMemInfo; - IMG_HANDLE hHWBlockKernelMemInfo; - IMG_HANDLE *phKernelMemInfoHandles; -#endif - IMG_UINT32 ui32KernelMemInfoHandlesCount; - IMG_DEV_VIRTADDR sHWPBDescDevVAddr; -}PVRSRV_BRIDGE_IN_SGXADDSHAREDPBDESC; - -typedef struct PVRSRV_BRIDGE_OUT_SGXADDSHAREDPBDESC_TAG -{ - PVRSRV_ERROR eError; -#if defined (SUPPORT_SID_INTERFACE) - IMG_SID hSharedPBDesc; -#else - IMG_HANDLE hSharedPBDesc; -#endif -}PVRSRV_BRIDGE_OUT_SGXADDSHAREDPBDESC; - - -#ifdef PDUMP -typedef struct PVRSRV_BRIDGE_IN_PDUMP_BUFFER_ARRAY_TAG -{ - IMG_UINT32 ui32BridgeFlags; /* Must be first member of structure */ - SGX_KICKTA_DUMP_BUFFER *psBufferArray; - IMG_UINT32 ui32BufferArrayLength; - IMG_BOOL bDumpPolls; -} PVRSRV_BRIDGE_IN_PDUMP_BUFFER_ARRAY; - -typedef struct PVRSRV_BRIDGE_IN_PDUMP_3D_SIGNATURE_REGISTERS_TAG -{ - IMG_UINT32 ui32BridgeFlags; /* Must be first member of structure */ -#if defined (SUPPORT_SID_INTERFACE) - IMG_SID hDevCookie; - IMG_SID hDevMemContext; -#else - IMG_HANDLE hDevCookie; - IMG_HANDLE hDevMemContext; -#endif - IMG_UINT32 ui32DumpFrameNum; - IMG_BOOL bLastFrame; - IMG_UINT32 *pui32Registers; - IMG_UINT32 ui32NumRegisters; -}PVRSRV_BRIDGE_IN_PDUMP_3D_SIGNATURE_REGISTERS; - -typedef struct PVRSRV_BRIDGE_IN_PDUMPCOUNTER_REGISTERS_TAG -{ - IMG_UINT32 ui32BridgeFlags; /* Must be first member of structure */ -#if defined (SUPPORT_SID_INTERFACE) - IMG_SID hDevCookie; -#else - IMG_HANDLE hDevCookie; -#endif - IMG_UINT32 ui32DumpFrameNum; - IMG_BOOL bLastFrame; - IMG_UINT32 *pui32Registers; - IMG_UINT32 ui32NumRegisters; -}PVRSRV_BRIDGE_IN_PDUMP_COUNTER_REGISTERS; - -typedef struct PVRSRV_BRIDGE_IN_PDUMP_TA_SIGNATURE_REGISTERS_TAG -{ - IMG_UINT32 ui32BridgeFlags; /* Must be first member of structure */ -#if defined (SUPPORT_SID_INTERFACE) - IMG_SID hDevCookie; -#else - IMG_HANDLE hDevCookie; -#endif - IMG_UINT32 ui32DumpFrameNum; - IMG_UINT32 ui32TAKickCount; - IMG_BOOL bLastFrame; - IMG_UINT32 *pui32Registers; - IMG_UINT32 ui32NumRegisters; -}PVRSRV_BRIDGE_IN_PDUMP_TA_SIGNATURE_REGISTERS; - -typedef struct PVRSRV_BRIDGE_IN_PDUMP_HWPERFCB_TAG -{ - IMG_UINT32 ui32BridgeFlags; /* Must be first member of structure */ -#if defined (SUPPORT_SID_INTERFACE) - IMG_SID hDevCookie; - IMG_SID hDevMemContext; -#else - IMG_HANDLE hDevCookie; - IMG_HANDLE hDevMemContext; -#endif - IMG_CHAR szFileName[PVRSRV_PDUMP_MAX_FILENAME_SIZE]; - IMG_UINT32 ui32FileOffset; - IMG_UINT32 ui32PDumpFlags; - -}PVRSRV_BRIDGE_IN_PDUMP_HWPERFCB; - -typedef struct PVRSRV_BRIDGE_IN_PDUMP_SAVEMEM -{ - IMG_UINT32 ui32BridgeFlags; /* Must be first member of structure */ -#if defined (SUPPORT_SID_INTERFACE) - IMG_SID hDevCookie; - IMG_SID hDevMemContext; -#else - IMG_HANDLE hDevCookie; -#endif - IMG_CHAR szFileName[PVRSRV_PDUMP_MAX_FILENAME_SIZE]; - IMG_UINT32 ui32FileOffset; - IMG_DEV_VIRTADDR sDevVAddr; - IMG_UINT32 ui32Size; -#if !defined (SUPPORT_SID_INTERFACE) - IMG_HANDLE hDevMemContext; -#endif - IMG_UINT32 ui32PDumpFlags; - -}PVRSRV_BRIDGE_IN_PDUMP_SAVEMEM; - -#endif - -typedef struct PVRSRV_BRIDGE_IN_SGX_REGISTER_HW_RENDER_CONTEXT_TAG -{ - IMG_UINT32 ui32BridgeFlags; /* Must be first member of structure */ -#if defined (SUPPORT_SID_INTERFACE) - IMG_SID hDevCookie; -#else - IMG_HANDLE hDevCookie; -#endif - IMG_CPU_VIRTADDR pHWRenderContextCpuVAddr; - IMG_UINT32 ui32HWRenderContextSize; - IMG_UINT32 ui32OffsetToPDDevPAddr; - IMG_HANDLE hDevMemContext; -}PVRSRV_BRIDGE_IN_SGX_REGISTER_HW_RENDER_CONTEXT; - -typedef struct PVRSRV_BRIDGE_OUT_SGX_REGISTER_HW_RENDER_CONTEXT_TAG -{ - PVRSRV_ERROR eError; -#if defined (SUPPORT_SID_INTERFACE) - IMG_SID hHWRenderContext; -#else - IMG_HANDLE hHWRenderContext; -#endif - IMG_DEV_VIRTADDR sHWRenderContextDevVAddr; -}PVRSRV_BRIDGE_OUT_SGX_REGISTER_HW_RENDER_CONTEXT; - -typedef struct PVRSRV_BRIDGE_IN_SGX_UNREGISTER_HW_RENDER_CONTEXT_TAG -{ - IMG_UINT32 ui32BridgeFlags; /* Must be first member of structure */ - IMG_BOOL bForceCleanup; -#if defined (SUPPORT_SID_INTERFACE) - IMG_SID hDevCookie; - IMG_SID hHWRenderContext; -#else - IMG_HANDLE hDevCookie; - IMG_HANDLE hHWRenderContext; -#endif -}PVRSRV_BRIDGE_IN_SGX_UNREGISTER_HW_RENDER_CONTEXT; - -typedef struct PVRSRV_BRIDGE_IN_SGX_REGISTER_HW_TRANSFER_CONTEXT_TAG -{ - IMG_UINT32 ui32BridgeFlags; /* Must be first member of structure */ -#if defined (SUPPORT_SID_INTERFACE) - IMG_SID hDevCookie; -#else - IMG_HANDLE hDevCookie; -#endif - IMG_CPU_VIRTADDR pHWTransferContextCpuVAddr; - IMG_UINT32 ui32HWTransferContextSize; - IMG_UINT32 ui32OffsetToPDDevPAddr; - IMG_HANDLE hDevMemContext; -}PVRSRV_BRIDGE_IN_SGX_REGISTER_HW_TRANSFER_CONTEXT; - -typedef struct PVRSRV_BRIDGE_OUT_SGX_REGISTER_HW_TRANSFER_CONTEXT_TAG -{ - PVRSRV_ERROR eError; -#if defined (SUPPORT_SID_INTERFACE) - IMG_SID hHWTransferContext; -#else - IMG_HANDLE hHWTransferContext; -#endif - IMG_DEV_VIRTADDR sHWTransferContextDevVAddr; -}PVRSRV_BRIDGE_OUT_SGX_REGISTER_HW_TRANSFER_CONTEXT; - -typedef struct PVRSRV_BRIDGE_IN_SGX_UNREGISTER_HW_TRANSFER_CONTEXT_TAG -{ - IMG_UINT32 ui32BridgeFlags; /* Must be first member of structure */ - IMG_BOOL bForceCleanup; -#if defined (SUPPORT_SID_INTERFACE) - IMG_SID hDevCookie; - IMG_SID hHWTransferContext; -#else - IMG_HANDLE hDevCookie; - IMG_HANDLE hHWTransferContext; -#endif -}PVRSRV_BRIDGE_IN_SGX_UNREGISTER_HW_TRANSFER_CONTEXT; - -typedef struct PVRSRV_BRIDGE_IN_SGX_FLUSH_HW_RENDER_TARGET_TAG -{ - IMG_UINT32 ui32BridgeFlags; /* Must be first member of structure */ -#if defined (SUPPORT_SID_INTERFACE) - IMG_SID hDevCookie; -#else - IMG_HANDLE hDevCookie; -#endif - IMG_DEV_VIRTADDR sHWRTDataSetDevVAddr; -}PVRSRV_BRIDGE_IN_SGX_FLUSH_HW_RENDER_TARGET; - -/*! - ***************************************************************************** - * SGX 2D specific defines - *****************************************************************************/ -#if defined(SGX_FEATURE_2D_HARDWARE) -typedef struct PVRSRV_BRIDGE_IN_SGX_REGISTER_HW_2D_CONTEXT_TAG -{ - IMG_UINT32 ui32BridgeFlags; /* Must be first member of structure */ -#if defined (SUPPORT_SID_INTERFACE) - IMG_SID hDevCookie; -#else - IMG_HANDLE hDevCookie; -#endif - IMG_CPU_VIRTADDR pHW2DContextCpuVAddr; - IMG_UINT32 ui32HW2DContextSize; - IMG_UINT32 ui32OffsetToPDDevPAddr; - IMG_HANDLE hDevMemContext; -}PVRSRV_BRIDGE_IN_SGX_REGISTER_HW_2D_CONTEXT; - -typedef struct PVRSRV_BRIDGE_OUT_SGX_REGISTER_HW_2D_CONTEXT_TAG -{ - PVRSRV_ERROR eError; -#if defined (SUPPORT_SID_INTERFACE) - IMG_SID hHW2DContext; -#else - IMG_HANDLE hHW2DContext; -#endif - IMG_DEV_VIRTADDR sHW2DContextDevVAddr; -}PVRSRV_BRIDGE_OUT_SGX_REGISTER_HW_2D_CONTEXT; - -typedef struct PVRSRV_BRIDGE_IN_SGX_UNREGISTER_HW_2D_CONTEXT_TAG -{ - IMG_UINT32 ui32BridgeFlags; /* Must be first member of structure */ - IMG_BOOL bForceCleanup; -#if defined (SUPPORT_SID_INTERFACE) - IMG_SID hDevCookie; - IMG_SID hHW2DContext; -#else - IMG_HANDLE hDevCookie; - IMG_HANDLE hHW2DContext; -#endif -}PVRSRV_BRIDGE_IN_SGX_UNREGISTER_HW_2D_CONTEXT; - -#define SGX2D_MAX_BLT_CMD_SIZ 256 /* Maximum size of a blit command, in bytes */ -#endif /* SGX_FEATURE_2D_HARDWARE */ - - -/*! - ***************************************************************************** - * `bridge in' SGXReadHWPerfCB - *****************************************************************************/ -typedef struct PVRSRV_BRIDGE_IN_SGX_READ_HWPERF_CB_TAG -{ - IMG_UINT32 ui32BridgeFlags; /* Must be first member of structure */ -#if defined (SUPPORT_SID_INTERFACE) - IMG_SID hDevCookie; -#else - IMG_HANDLE hDevCookie; -#endif - IMG_UINT32 ui32ArraySize; - PVRSRV_SGX_HWPERF_CB_ENTRY *psHWPerfCBData; -} PVRSRV_BRIDGE_IN_SGX_READ_HWPERF_CB; - -/*! - ***************************************************************************** - * `bridge out' SGXReadHWPerfCB - *****************************************************************************/ -typedef struct PVRSRV_BRIDGE_OUT_SGX_READ_HWPERF_CB_TAG -{ - PVRSRV_ERROR eError; - IMG_UINT32 ui32DataCount; - IMG_UINT32 ui32ClockSpeed; - IMG_UINT32 ui32HostTimeStamp; -} PVRSRV_BRIDGE_OUT_SGX_READ_HWPERF_CB; - -#if defined (__cplusplus) -} -#endif - -#endif /* __SGX_BRIDGE_H__ */ - diff --git a/pvr-source/services4/include/sgx_mkif_km.h b/pvr-source/services4/include/sgx_mkif_km.h deleted file mode 100755 index 265440a..0000000 --- a/pvr-source/services4/include/sgx_mkif_km.h +++ /dev/null @@ -1,476 +0,0 @@ -/*************************************************************************/ /*! -@Title SGX microkernel interface structures used by srvkm -@Copyright Copyright (c) Imagination Technologies Ltd. All Rights Reserved -@Description SGX microkernel interface structures used by srvkm -@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. -*/ /**************************************************************************/ - -#if !defined (__SGX_MKIF_KM_H__) -#define __SGX_MKIF_KM_H__ - -#include "img_types.h" -#include "servicesint.h" -#include "sgxapi_km.h" - - -#if !defined (SGX_MP_CORE_SELECT) -/* MP register control macros */ -#if defined(SGX_FEATURE_MP) - #define SGX_REG_BANK_SHIFT (14) - #define SGX_REG_BANK_SIZE (1 << SGX_REG_BANK_SHIFT) - #define SGX_REG_BANK_BASE_INDEX (2) - #define SGX_REG_BANK_MASTER_INDEX (1) - #define SGX_MP_CORE_SELECT(x,i) (x + ((i + SGX_REG_BANK_BASE_INDEX) * SGX_REG_BANK_SIZE)) - #define SGX_MP_MASTER_SELECT(x) (x + (SGX_REG_BANK_MASTER_INDEX * SGX_REG_BANK_SIZE)) -#else - #define SGX_MP_CORE_SELECT(x,i) (x) -#endif /* SGX_FEATURE_MP */ -#endif - - -/*! - ****************************************************************************** - * CCB command structure for SGX - *****************************************************************************/ -typedef struct _SGXMKIF_COMMAND_ -{ - IMG_UINT32 ui32ServiceAddress; /*!< address of the USE command handler */ - IMG_UINT32 ui32CacheControl; /*!< See SGXMKIF_CC_INVAL_* */ - IMG_UINT32 ui32Data[6]; /*!< array of other command control words */ -} SGXMKIF_COMMAND; - - -/*! - ****************************************************************************** - * CCB array of commands for SGX - *****************************************************************************/ -typedef struct _PVRSRV_SGX_KERNEL_CCB_ -{ - SGXMKIF_COMMAND asCommands[256]; /*!< array of commands */ -} PVRSRV_SGX_KERNEL_CCB; - - -/*! - ****************************************************************************** - * CCB control for SGX - *****************************************************************************/ -typedef struct _PVRSRV_SGX_CCB_CTL_ -{ - IMG_UINT32 ui32WriteOffset; /*!< write offset into array of commands (MUST be alligned to 16 bytes!) */ - IMG_UINT32 ui32ReadOffset; /*!< read offset into array of commands */ -} PVRSRV_SGX_CCB_CTL; - - -/*! - ***************************************************************************** - * Control data for SGX - *****************************************************************************/ -typedef struct _SGXMKIF_HOST_CTL_ -{ -#if defined(PVRSRV_USSE_EDM_BREAKPOINTS) - IMG_UINT32 ui32BreakpointDisable; - IMG_UINT32 ui32Continue; -#endif - - volatile IMG_UINT32 ui32InitStatus; /*!< Microkernel Initialisation status */ - volatile IMG_UINT32 ui32PowerStatus; /*!< Microkernel Power Management status */ - volatile IMG_UINT32 ui32CleanupStatus; /*!< Microkernel Resource Management status */ -#if defined(FIX_HW_BRN_28889) - volatile IMG_UINT32 ui32InvalStatus; /*!< Microkernel BIF Cache Invalidate status */ -#endif -#if defined(SUPPORT_HW_RECOVERY) - IMG_UINT32 ui32uKernelDetectedLockups; /*!< counter relating to the number of lockups the uKernel has detected */ - IMG_UINT32 ui32HostDetectedLockups; /*!< counter relating to the number of lockups the host has detected */ - IMG_UINT32 ui32HWRecoverySampleRate; /*!< SGX lockup detection rate (in multiples of the timer period) */ -#endif /* SUPPORT_HW_RECOVERY*/ - IMG_UINT32 ui32uKernelTimerClock; /*!< SGX ukernel timer period (in clocks) */ - IMG_UINT32 ui32ActivePowManSampleRate; /*!< SGX Active Power latency period (in multiples of the timer period) */ - IMG_UINT32 ui32InterruptFlags; /*!< Interrupt flags - PVRSRV_USSE_EDM_INTERRUPT_xxx */ - IMG_UINT32 ui32InterruptClearFlags; /*!< Interrupt clear flags - PVRSRV_USSE_EDM_INTERRUPT_xxx */ - IMG_UINT32 ui32BPSetClearSignal; /*!< Breakpoint set/cear signal */ - - IMG_UINT32 ui32NumActivePowerEvents; /*!< counter for the number of active power events */ - - IMG_UINT32 ui32TimeWraps; /*!< to count time wraps in the Timer task*/ - IMG_UINT32 ui32HostClock; /*!< Host clock value at microkernel power-up time */ - IMG_UINT32 ui32AssertFail; /*!< Microkernel assert failure code */ - -#if defined(SGX_FEATURE_EXTENDED_PERF_COUNTERS) - IMG_UINT32 aui32PerfGroup[PVRSRV_SGX_HWPERF_NUM_COUNTERS]; /*!< Specifies the HW's active group selectors */ - IMG_UINT32 aui32PerfBit[PVRSRV_SGX_HWPERF_NUM_COUNTERS]; /*!< Specifies the HW's active bit selectors */ - IMG_UINT32 ui32PerfCounterBitSelect; /*!< Specifies the HW's counter bit selectors */ - IMG_UINT32 ui32PerfSumMux; /*!< Specifies the HW's sum_mux selectors */ -#else - IMG_UINT32 ui32PerfGroup; /*!< Specifies the HW's active group */ -#endif /* SGX_FEATURE_EXTENDED_PERF_COUNTERS */ - -#if defined(FIX_HW_BRN_31939) - IMG_UINT32 ui32BRN31939Mem; -#endif - - IMG_UINT32 ui32OpenCLDelayCount; /* Counter to keep track OpenCL task completion time in units of regular task time out events */ - IMG_UINT32 ui32InterruptCount; -} SGXMKIF_HOST_CTL; - -/* - * TA queue Kick flags - */ -/* Set in DoKickKM to indicate the command is ready to be processed */ -#define SGXMKIF_CMDTA_CTRLFLAGS_READY 0x00000001 -/*! - ****************************************************************************** - * Shared TA command structure. - * This structure is part of the TA command structure proper (SGXMKIF_CMDTA), - * and is accessed from the kernel part of the driver and the microkernel. - * There shouldn't be a need to access it from user space. - *****************************************************************************/ -typedef struct _SGXMKIF_CMDTA_SHARED_ -{ - IMG_UINT32 ui32CtrlFlags; - - IMG_UINT32 ui32NumTAStatusVals; - IMG_UINT32 ui32Num3DStatusVals; - - /* KEEP THESE 4 VARIABLES TOGETHER FOR UKERNEL BLOCK LOAD */ - IMG_UINT32 ui32TATQSyncWriteOpsPendingVal; - IMG_DEV_VIRTADDR sTATQSyncWriteOpsCompleteDevVAddr; - IMG_UINT32 ui32TATQSyncReadOpsPendingVal; - IMG_DEV_VIRTADDR sTATQSyncReadOpsCompleteDevVAddr; - - /* KEEP THESE 4 VARIABLES TOGETHER FOR UKERNEL BLOCK LOAD */ - IMG_UINT32 ui323DTQSyncWriteOpsPendingVal; - IMG_DEV_VIRTADDR s3DTQSyncWriteOpsCompleteDevVAddr; - IMG_UINT32 ui323DTQSyncReadOpsPendingVal; - IMG_DEV_VIRTADDR s3DTQSyncReadOpsCompleteDevVAddr; - - /* sync criteria used for TA/3D dependency synchronisation */ - PVRSRV_DEVICE_SYNC_OBJECT sTA3DDependency; - -#if defined(SUPPORT_SGX_GENERALISED_SYNCOBJECTS) - /* SRC and DST syncs */ - IMG_UINT32 ui32NumTASrcSyncs; - PVRSRV_DEVICE_SYNC_OBJECT asTASrcSyncs[SGX_MAX_TA_SRC_SYNCS]; - IMG_UINT32 ui32NumTADstSyncs; - PVRSRV_DEVICE_SYNC_OBJECT asTADstSyncs[SGX_MAX_TA_DST_SYNCS]; - IMG_UINT32 ui32Num3DSrcSyncs; - PVRSRV_DEVICE_SYNC_OBJECT as3DSrcSyncs[SGX_MAX_3D_SRC_SYNCS]; -#else - /* source dependency details */ - IMG_UINT32 ui32NumSrcSyncs; - PVRSRV_DEVICE_SYNC_OBJECT asSrcSyncs[SGX_MAX_SRC_SYNCS_TA]; -#endif - - CTL_STATUS sCtlTAStatusInfo[SGX_MAX_TA_STATUS_VALS]; - CTL_STATUS sCtl3DStatusInfo[SGX_MAX_3D_STATUS_VALS]; - -} SGXMKIF_CMDTA_SHARED; - -/* - * Services internal TQ limits - */ -#define SGXTQ_MAX_STATUS SGX_MAX_TRANSFER_STATUS_VALS + 2 - -/* - * Transfer queue Kick flags - */ -/* if set the uKernel won't update the sync objects on completion*/ -#define SGXMKIF_TQFLAGS_NOSYNCUPDATE 0x00000001 -/* if set the kernel won't advance the pending values*/ -#define SGXMKIF_TQFLAGS_KEEPPENDING 0x00000002 -/* in services equivalent for the same client flags*/ -#define SGXMKIF_TQFLAGS_TATQ_SYNC 0x00000004 -#define SGXMKIF_TQFLAGS_3DTQ_SYNC 0x00000008 -#if defined(SGX_FEATURE_FAST_RENDER_CONTEXT_SWITCH) -#define SGXMKIF_TQFLAGS_CTXSWITCH 0x00000010 -#endif -/* if set uKernel only updates syncobjects / status values*/ -#define SGXMKIF_TQFLAGS_DUMMYTRANSFER 0x00000020 - -/*! - ****************************************************************************** - * Shared Transfer Queue command structure. - * This structure is placed at the start of the TQ command structure proper - * (SGXMKIF_TRANSFERCMD), and is accessed from the kernel part of the driver - * and the microkernel. - *****************************************************************************/ -typedef struct _SGXMKIF_TRANSFERCMD_SHARED_ -{ - /* need to be able to check read and write ops on src, and update reads */ - - IMG_UINT32 ui32NumSrcSyncs; - PVRSRV_DEVICE_SYNC_OBJECT asSrcSyncs[SGX_MAX_SRC_SYNCS_TQ]; - /* need to be able to check reads and writes on dest, and update writes */ - - IMG_UINT32 ui32NumDstSyncs; - PVRSRV_DEVICE_SYNC_OBJECT asDstSyncs[SGX_MAX_DST_SYNCS_TQ]; - /* KEEP THESE 4 VARIABLES TOGETHER FOR UKERNEL BLOCK LOAD */ - IMG_UINT32 ui32TASyncWriteOpsPendingVal; - IMG_DEV_VIRTADDR sTASyncWriteOpsCompleteDevVAddr; - IMG_UINT32 ui32TASyncReadOpsPendingVal; - IMG_DEV_VIRTADDR sTASyncReadOpsCompleteDevVAddr; - - /* KEEP THESE 4 VARIABLES TOGETHER FOR UKERNEL BLOCK LOAD */ - IMG_UINT32 ui323DSyncWriteOpsPendingVal; - IMG_DEV_VIRTADDR s3DSyncWriteOpsCompleteDevVAddr; - IMG_UINT32 ui323DSyncReadOpsPendingVal; - IMG_DEV_VIRTADDR s3DSyncReadOpsCompleteDevVAddr; - - IMG_UINT32 ui32NumStatusVals; - CTL_STATUS sCtlStatusInfo[SGXTQ_MAX_STATUS]; -} SGXMKIF_TRANSFERCMD_SHARED, *PSGXMKIF_TRANSFERCMD_SHARED; - - -#if defined(SGX_FEATURE_2D_HARDWARE) -typedef struct _SGXMKIF_2DCMD_SHARED_ { - /* need to be able to check read and write ops on src, and update reads */ - IMG_UINT32 ui32NumSrcSync; - PVRSRV_DEVICE_SYNC_OBJECT sSrcSyncData[SGX_MAX_2D_SRC_SYNC_OPS]; - - /* need to be able to check reads and writes on dest, and update writes */ - PVRSRV_DEVICE_SYNC_OBJECT sDstSyncData; - - /* need to be able to check reads and writes on TA ops, and update writes */ - PVRSRV_DEVICE_SYNC_OBJECT sTASyncData; - - /* need to be able to check reads and writes on 2D ops, and update writes */ - PVRSRV_DEVICE_SYNC_OBJECT s3DSyncData; -} SGXMKIF_2DCMD_SHARED, *PSGXMKIF_2DCMD_SHARED; -#endif /* SGX_FEATURE_2D_HARDWARE */ - - -typedef struct _SGXMKIF_HWDEVICE_SYNC_LIST_ -{ - IMG_DEV_VIRTADDR sAccessDevAddr; - IMG_UINT32 ui32NumSyncObjects; - /* Must be the last variable in the structure */ - PVRSRV_DEVICE_SYNC_OBJECT asSyncData[1]; -} SGXMKIF_HWDEVICE_SYNC_LIST, *PSGXMKIF_HWDEVICE_SYNC_LIST; - - -/*! - ***************************************************************************** - * Microkernel initialisation status - *****************************************************************************/ -#define PVRSRV_USSE_EDM_INIT_COMPLETE (1UL << 0) /*!< ukernel initialisation complete */ - -/*! - ***************************************************************************** - * Microkernel power status definitions - *****************************************************************************/ -#define PVRSRV_USSE_EDM_POWMAN_IDLE_COMPLETE (1UL << 2) /*!< Signal from ukernel->Host indicating SGX is idle */ -#define PVRSRV_USSE_EDM_POWMAN_POWEROFF_COMPLETE (1UL << 3) /*!< Signal from ukernel->Host indicating SGX can be powered down */ -#define PVRSRV_USSE_EDM_POWMAN_POWEROFF_RESTART_IMMEDIATE (1UL << 4) /*!< Signal from ukernel->Host indicating there is work to do immediately */ -#define PVRSRV_USSE_EDM_POWMAN_NO_WORK (1UL << 5) /*!< Signal from ukernel->Host indicating no work to do */ - -/*! - ***************************************************************************** - * EDM interrupt defines - *****************************************************************************/ -#define PVRSRV_USSE_EDM_INTERRUPT_HWR (1UL << 0) /*!< EDM requesting hardware recovery */ -#define PVRSRV_USSE_EDM_INTERRUPT_ACTIVE_POWER (1UL << 1) /*!< EDM requesting to be powered down */ -#define PVRSRV_USSE_EDM_INTERRUPT_IDLE (1UL << 2) /*!< EDM indicating SGX idle */ - -/*! - ***************************************************************************** - * EDM Resource management defines - *****************************************************************************/ -#define PVRSRV_USSE_EDM_CLEANUPCMD_COMPLETE (1UL << 0) /*!< Signal from EDM->Host indicating clean-up request completion */ -#define PVRSRV_USSE_EDM_CLEANUPCMD_BUSY (1UL << 1) /*!< Signal from EDM->Host indicating clean-up is blocked as the resource is busy */ -#define PVRSRV_USSE_EDM_CLEANUPCMD_DONE (1UL << 2) /*!< Signal from EDM->Host indicating clean-up has been done */ - -#if defined(FIX_HW_BRN_28889) -/*! - ***************************************************************************** - * EDM BIF Cache Invalidate defines - *****************************************************************************/ -#define PVRSRV_USSE_EDM_BIF_INVAL_COMPLETE (1UL << 0) /*!< Signal from EDM->Host indicating the BIF invalidate has started */ -#endif - -/*! - **************************************************************************** - * EDM / uKernel Get misc info defines - **************************************************************************** - */ -#define PVRSRV_USSE_MISCINFO_READY 0x1UL -#define PVRSRV_USSE_MISCINFO_GET_STRUCT_SIZES 0x2UL /*!< If set, getmiscinfo ukernel func returns structure sizes */ -#if defined(SUPPORT_SGX_EDM_MEMORY_DEBUG) -#define PVRSRV_USSE_MISCINFO_MEMREAD 0x4UL /*!< If set, getmiscinfo ukernel func reads arbitrary device mem */ -#define PVRSRV_USSE_MISCINFO_MEMWRITE 0x8UL /*!< If set, getmiscinfo ukernel func writes arbitrary device mem */ -#if !defined(SGX_FEATURE_MULTIPLE_MEM_CONTEXTS) -#define PVRSRV_USSE_MISCINFO_MEMREAD_FAIL 0x1UL << 31 /* If set, ukernel was unable to read from the mem context */ -#endif -#endif - - -/* Cleanup command control word */ -#define PVRSRV_CLEANUPCMD_RT 0x1U -#define PVRSRV_CLEANUPCMD_RC 0x2U -#define PVRSRV_CLEANUPCMD_TC 0x3U -#define PVRSRV_CLEANUPCMD_2DC 0x4U -#define PVRSRV_CLEANUPCMD_PB 0x5U - -/* Power command control word */ -#define PVRSRV_POWERCMD_POWEROFF 0x1U -#define PVRSRV_POWERCMD_IDLE 0x2U -#define PVRSRV_POWERCMD_RESUME 0x3U - -/* Context suspend command control word */ -#define PVRSRV_CTXSUSPCMD_SUSPEND 0x1U -#define PVRSRV_CTXSUSPCMD_RESUME 0x2U - - -#if defined(SGX_FEATURE_MULTIPLE_MEM_CONTEXTS) -#define SGX_BIF_DIR_LIST_INDEX_EDM (SGX_FEATURE_BIF_NUM_DIRLISTS - 1) -#else -#define SGX_BIF_DIR_LIST_INDEX_EDM (0) -#endif - -/*! - ****************************************************************************** - * microkernel cache control requests - ******************************************************************************/ -#define SGXMKIF_CC_INVAL_BIF_PT 0x1 -#define SGXMKIF_CC_INVAL_BIF_PD 0x2 -#define SGXMKIF_CC_INVAL_BIF_SL 0x4 -#define SGXMKIF_CC_INVAL_DATA 0x8 - - -/*! - ****************************************************************************** - * SGX microkernel interface structure sizes - ******************************************************************************/ -typedef struct _SGX_MISCINFO_STRUCT_SIZES_ -{ -#if defined (SGX_FEATURE_2D_HARDWARE) - IMG_UINT32 ui32Sizeof_2DCMD; - IMG_UINT32 ui32Sizeof_2DCMD_SHARED; -#endif - IMG_UINT32 ui32Sizeof_CMDTA; - IMG_UINT32 ui32Sizeof_CMDTA_SHARED; - IMG_UINT32 ui32Sizeof_TRANSFERCMD; - IMG_UINT32 ui32Sizeof_TRANSFERCMD_SHARED; - IMG_UINT32 ui32Sizeof_3DREGISTERS; - IMG_UINT32 ui32Sizeof_HWPBDESC; - IMG_UINT32 ui32Sizeof_HWRENDERCONTEXT; - IMG_UINT32 ui32Sizeof_HWRENDERDETAILS; - IMG_UINT32 ui32Sizeof_HWRTDATA; - IMG_UINT32 ui32Sizeof_HWRTDATASET; - IMG_UINT32 ui32Sizeof_HWTRANSFERCONTEXT; - IMG_UINT32 ui32Sizeof_HOST_CTL; - IMG_UINT32 ui32Sizeof_COMMAND; -} SGX_MISCINFO_STRUCT_SIZES; - - -#if defined(SUPPORT_SGX_EDM_MEMORY_DEBUG) -/*! - ***************************************************************************** - * SGX misc info for accessing device memory from ukernel - ***************************************************************************** - */ -typedef struct _PVRSRV_SGX_MISCINFO_MEMACCESS -{ - IMG_DEV_VIRTADDR sDevVAddr; /*!< dev virtual addr for mem access */ - IMG_DEV_PHYADDR sPDDevPAddr; /*!< device physical addr of PD for the mem heap */ -} PVRSRV_SGX_MISCINFO_MEMACCESS; -#endif - -/*! - ***************************************************************************** - * SGX Misc Info structure used in the microkernel - * PVRSRV_SGX_MISCINFO_FEATURES is defined in sgxapi_km.h - ****************************************************************************/ -typedef struct _PVRSRV_SGX_MISCINFO_INFO -{ - IMG_UINT32 ui32MiscInfoFlags; - PVRSRV_SGX_MISCINFO_FEATURES sSGXFeatures; /*!< external info for client */ - SGX_MISCINFO_STRUCT_SIZES sSGXStructSizes; /*!< internal info: microkernel structure sizes */ -#if defined(SUPPORT_SGX_EDM_MEMORY_DEBUG) - PVRSRV_SGX_MISCINFO_MEMACCESS sSGXMemAccessSrc; /*!< internal info: for reading dev memory */ - PVRSRV_SGX_MISCINFO_MEMACCESS sSGXMemAccessDest; /*!< internal info: for writing dev memory */ -#endif -} PVRSRV_SGX_MISCINFO_INFO; - -#ifdef PVRSRV_USSE_EDM_STATUS_DEBUG -/*! - ***************************************************************************** - * Number of entries in the microkernel status buffer - *****************************************************************************/ -#define SGXMK_TRACE_BUFFER_SIZE 512 -#endif /* PVRSRV_USSE_EDM_STATUS_DEBUG */ - -#define SGXMKIF_HWPERF_CB_SIZE 0x100 /* must be 2^n*/ - -/*! - ***************************************************************************** - * One entry in the HWPerf Circular Buffer. - *****************************************************************************/ -typedef struct _SGXMKIF_HWPERF_CB_ENTRY_ -{ - IMG_UINT32 ui32FrameNo; - IMG_UINT32 ui32PID; - IMG_UINT32 ui32RTData; - IMG_UINT32 ui32Type; - IMG_UINT32 ui32Ordinal; - IMG_UINT32 ui32Info; - IMG_UINT32 ui32TimeWraps; - IMG_UINT32 ui32Time; - /* NOTE: There should always be at least as many 3D cores as TA cores. */ - IMG_UINT32 ui32Counters[SGX_FEATURE_MP_CORE_COUNT_3D][PVRSRV_SGX_HWPERF_NUM_COUNTERS]; - IMG_UINT32 ui32MiscCounters[SGX_FEATURE_MP_CORE_COUNT_3D][PVRSRV_SGX_HWPERF_NUM_MISC_COUNTERS]; -} SGXMKIF_HWPERF_CB_ENTRY; - -/*! - ***************************************************************************** - * The HWPerf Circular Buffer. - *****************************************************************************/ -typedef struct _SGXMKIF_HWPERF_CB_ -{ - IMG_UINT32 ui32Woff; - IMG_UINT32 ui32Roff; - IMG_UINT32 ui32Ordinal; - SGXMKIF_HWPERF_CB_ENTRY psHWPerfCBData[SGXMKIF_HWPERF_CB_SIZE]; -} SGXMKIF_HWPERF_CB; - - -#endif /* __SGX_MKIF_KM_H__ */ - -/****************************************************************************** - End of file (sgx_mkif_km.h) -******************************************************************************/ - - diff --git a/pvr-source/services4/include/sgx_ukernel_status_codes.h b/pvr-source/services4/include/sgx_ukernel_status_codes.h deleted file mode 100755 index dc8f2f3..0000000 --- a/pvr-source/services4/include/sgx_ukernel_status_codes.h +++ /dev/null @@ -1,966 +0,0 @@ -/*************************************************************************/ /*! -@File sgx_ukernel_status_codes.h -@Title SGX microkernel debug status codes -@Copyright Copyright (c) Imagination Technologies Ltd. All Rights Reserved -@Description SGX microkernel debug status codes -@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 __SGX_UKERNEL_STATUS_CODES_H__ -#define __SGX_UKERNEL_STATUS_CODES_H__ - -/* - NOTE: Do not add any conditional macros to this file! There must be - no use of #if defined(). This file is included in srvkm to print - stringified ukernel status codes, it must build identically to - srvinit. -*/ - -/* - Users of this header might define this macro to do something - clever; the primary use right now is to generate a switch/case - LUT for debugging in srvkm. If you add a new code, make sure it - has a corresponding MKTC_ST. -*/ -#ifndef MKTC_ST -#define MKTC_ST(x) -#endif - -/* - It would be nice to put these definitions into an enumeration, but USEASM - only has access to the C preprocessor so macros are required. -*/ - -/* - Bits 24-31 of these codes (0xAD) are a magic number used to help - distinguish between them and other debug information which can be - optionally dumped into the status buffer, e.g. sync object values. -*/ - -/* - Microkernel trace codes -*/ -#define MKTC_EHEVENT_3DMEMFREE 0xAD000001 -MKTC_ST(MKTC_EHEVENT_3DMEMFREE) -#define MKTC_EHEVENT_PIXELENDRENDER 0xAD000002 -MKTC_ST(MKTC_EHEVENT_PIXELENDRENDER) -#define MKTC_EHEVENT_ISPBREAKPOINT 0xAD000004 -MKTC_ST(MKTC_EHEVENT_ISPBREAKPOINT) -#define MKTC_EHEVENT_TAFINISHED 0xAD000005 -MKTC_ST(MKTC_EHEVENT_TAFINISHED) -#define MKTC_EHEVENT_OUTOFMEM 0xAD000007 -MKTC_ST(MKTC_EHEVENT_OUTOFMEM) -#define MKTC_EHEVENT_TATERMINATE 0xAD000008 -MKTC_ST(MKTC_EHEVENT_TATERMINATE) -#define MKTC_EHEVENT_TIMER 0xAD000009 -MKTC_ST(MKTC_EHEVENT_TIMER) -#define MKTC_EHEVENT_SWEVENT 0xAD00000A -MKTC_ST(MKTC_EHEVENT_SWEVENT) -#define MKTC_EHEVENT_2DCOMPLETE 0xAD00000B -MKTC_ST(MKTC_EHEVENT_2DCOMPLETE) - -#define MKTC_3DEVENT_3DMEMFREE 0xAD000100 -MKTC_ST(MKTC_3DEVENT_3DMEMFREE) -#define MKTC_3DEVENT_PIXELENDRENDER 0xAD000101 -MKTC_ST(MKTC_3DEVENT_PIXELENDRENDER) -#define MKTC_3DEVENT_ISPBREAKPOINT 0xAD000102 -MKTC_ST(MKTC_3DEVENT_ISPBREAKPOINT) -#define MKTC_3DEVENT_END 0xAD000104 -MKTC_ST(MKTC_3DEVENT_END) -#define MKTC_3DLB_3DMEMFREE 0xAD000180 -MKTC_ST(MKTC_3DLB_3DMEMFREE) -#define MKTC_3DLB_PIXELENDRENDER 0xAD000181 -MKTC_ST(MKTC_3DLB_PIXELENDRENDER) -#define MKTC_3DLB_ISPBREAKPOINT 0xAD000182 -MKTC_ST(MKTC_3DLB_ISPBREAKPOINT) -#define MKTC_3DLB_FIND3D 0xAD000183 -MKTC_ST(MKTC_3DLB_FIND3D) -#define MKTC_3DLB_END 0xAD000184 -MKTC_ST(MKTC_3DLB_END) - -#define MKTC_TAEVENT_TAFINISHED 0xAD000200 -MKTC_ST(MKTC_TAEVENT_TAFINISHED) -#define MKTC_TAEVENT_END 0xAD000202 -MKTC_ST(MKTC_TAEVENT_END) -#define MKTC_TALB_TAFINISHED 0xAD000280 -MKTC_ST(MKTC_TALB_TAFINISHED) -#define MKTC_TALB_FINDTA 0xAD000281 -MKTC_ST(MKTC_TALB_FINDTA) -#define MKTC_TALB_END 0xAD000282 -MKTC_ST(MKTC_TALB_END) - -#define MKTC_CRRL_WRITEOPSBLOCKED 0xAD000300 -MKTC_ST(MKTC_CRRL_WRITEOPSBLOCKED) -#define MKTC_CRRL_READOPSBLOCKED 0xAD000301 -MKTC_ST(MKTC_CRRL_READOPSBLOCKED) -#define MKTC_CRRL_FOUNDRENDER 0xAD000302 -MKTC_ST(MKTC_CRRL_FOUNDRENDER) -#define MKTC_CRRL_NORENDER 0xAD000303 -MKTC_ST(MKTC_CRRL_NORENDER) -#define MKTC_CRRL_TARC_DIFFERENT 0xAD000304 -MKTC_ST(MKTC_CRRL_TARC_DIFFERENT) -#define MKTC_CRRL_BLOCKEDRC 0xAD000309 -MKTC_ST(MKTC_CRRL_BLOCKEDRC) -#define MKTC_CRRL_BLOCKEDRTDATA 0xAD00030A -MKTC_ST(MKTC_CRRL_BLOCKEDRTDATA) -#define MKTC_CRRL_CONTEXT_SUSPENDED 0xAD00030B -MKTC_ST(MKTC_CRRL_CONTEXT_SUSPENDED) -#define MKTC_CRRL_TAWAITINGFORMEM 0xAD00030C -MKTC_ST(MKTC_CRRL_TAWAITINGFORMEM) -#define MKTC_CRRL_TAOOMBUTPRIOINV 0xAD00030D -MKTC_ST(MKTC_CRRL_TAOOMBUTPRIOINV) -#define MKTC_CRRL_READOPS2BLOCKED 0xAD00030E -MKTC_ST(MKTC_CRRL_READOPS2BLOCKED) -#define MKTC_CRRL_SRC_WRITEOPSBLOCKED 0xAD00030F -MKTC_ST(MKTC_CRRL_SRC_WRITEOPSBLOCKED) -#define MKTC_CRRL_SRC_READOPSBLOCKED 0xAD000310 -MKTC_ST(MKTC_CRRL_SRC_READOPSBLOCKED) -#define MKTC_CRRL_TQ_WRITEOPSBLOCKED 0xAD000311 -MKTC_ST(MKTC_CRRL_TQ_WRITEOPSBLOCKED) -#define MKTC_CRRL_TQ_READOPSBLOCKED 0xAD000312 -MKTC_ST(MKTC_CRRL_TQ_READOPSBLOCKED) - -#define MKTC_KICKRENDER_START 0xAD000400 -MKTC_ST(MKTC_KICKRENDER_START) -#define MKTC_KICKRENDER_OVERLAP 0xAD000401 -MKTC_ST(MKTC_KICKRENDER_OVERLAP) -#define MKTC_KICKRENDER_ISP_START 0xAD000402 -MKTC_ST(MKTC_KICKRENDER_ISP_START) -#define MKTC_KICKRENDER_RESUME 0xAD000403 -MKTC_ST(MKTC_KICKRENDER_RESUME) -#define MKTC_KICKRENDER_CONFIG_REGION_HDRS 0xAD000404 -MKTC_ST(MKTC_KICKRENDER_CONFIG_REGION_HDRS) -#define MKTC_KICKRENDER_END 0xAD000408 -MKTC_ST(MKTC_KICKRENDER_END) -#define MKTC_KICKRENDER_RENDERCONTEXT 0xAD000409 -MKTC_ST(MKTC_KICKRENDER_RENDERCONTEXT) -#define MKTC_KICKRENDER_RTDATA 0xAD00040A -MKTC_ST(MKTC_KICKRENDER_RTDATA) -#define MKTC_KICKRENDER_PID 0xAD00040B -MKTC_ST(MKTC_KICKRENDER_PID) - -#define MKTC_RENDERFINISHED_START 0xAD000500 -MKTC_ST(MKTC_RENDERFINISHED_START) -#define MKTC_RF_START_NEXT_MT 0xAD000501 -MKTC_ST(MKTC_RF_START_NEXT_MT) -#define MKTC_RF_ALL_MTS_DONE 0xAD000502 -MKTC_ST(MKTC_RF_ALL_MTS_DONE) -#define MKTC_RENDERFINISHED_END 0xAD000503 -MKTC_ST(MKTC_RENDERFINISHED_END) -#define MKTC_VISQUERY_START 0xAD000504 -MKTC_ST(MKTC_VISQUERY_START) -#define MKTC_VISQUERY_END 0xAD000505 -MKTC_ST(MKTC_VISQUERY_END) -#define MKTC_TRANSFERRENDERFINISHED_START 0xAD000508 -MKTC_ST(MKTC_TRANSFERRENDERFINISHED_START) -#define MKTC_TRANSFERRENDERFINISHED_END 0xAD000509 -MKTC_ST(MKTC_TRANSFERRENDERFINISHED_END) -#define MKTC_TRF_UPDATESTATUSVALS 0xAD00050A -MKTC_ST(MKTC_TRF_UPDATESTATUSVALS) -#define MKTC_TRF_UPDATESTATUSVALS_DONE 0xAD00050B -MKTC_ST(MKTC_TRF_UPDATESTATUSVALS_DONE) - -#define MKTC_PIXELENDRENDER_START 0xAD000600 -MKTC_ST(MKTC_PIXELENDRENDER_START) -#define MKTC_PIXELENDRENDER_AFTERLOCK 0xAD000601 -MKTC_ST(MKTC_PIXELENDRENDER_AFTERLOCK) -#define MKTC_PIXELENDRENDER_END 0xAD000602 -MKTC_ST(MKTC_PIXELENDRENDER_END) -#define MKTC_PIXELENDRENDER_TLQEND 0xAD000603 -MKTC_ST(MKTC_PIXELENDRENDER_TLQEND) - -#define MKTC_3DMEMFREE_START 0xAD000700 -MKTC_ST(MKTC_3DMEMFREE_START) -#define MKTC_3DMEMFREE_AFTERLOCK 0xAD000701 -MKTC_ST(MKTC_3DMEMFREE_AFTERLOCK) -#define MKTC_3DMEMFREE_TESTEOR 0xAD000702 -MKTC_ST(MKTC_3DMEMFREE_TESTEOR) -#define MKTC_3DMEMFREE_END 0xAD000703 -MKTC_ST(MKTC_3DMEMFREE_END) - -#define MKTC_KICKTA_START 0xAD000800 -MKTC_ST(MKTC_KICKTA_START) -#define MKTC_KICKTA_OVERLAP 0xAD000801 -MKTC_ST(MKTC_KICKTA_OVERLAP) -#define MKTC_KICKTA_RESETCONTEXT 0xAD000802 -MKTC_ST(MKTC_KICKTA_RESETCONTEXT) -#define MKTC_KICKTA_VDM_START 0xAD000803 -MKTC_ST(MKTC_KICKTA_VDM_START) -#define MKTC_KICKTA_END 0xAD000804 -MKTC_ST(MKTC_KICKTA_END) -#define MKTC_KICKTA_RENDERCONTEXT 0xAD000805 -MKTC_ST(MKTC_KICKTA_RENDERCONTEXT) -#define MKTC_KICKTA_RTDATA 0xAD000806 -MKTC_ST(MKTC_KICKTA_RTDATA) -#define MKTC_KICKTA_RESET_VDMCSSTATUS 0xAD000807 -MKTC_ST(MKTC_KICKTA_RESET_VDMCSSTATUS) -#define MKTC_KICKTA_RESET_BUFFERS 0xAD000808 -MKTC_ST(MKTC_KICKTA_RESET_BUFFERS) -#define MKTC_KICKTA_PID 0xAD000809 -MKTC_ST(MKTC_KICKTA_PID) -#define MKTC_KICKTA_TACMD_DEBUG 0xAD00080A -MKTC_ST(MKTC_KICKTA_TACMD_DEBUG) -#define MKTC_KICKTA_FREECONTEXT 0xAD00080B -MKTC_ST(MKTC_KICKTA_FREECONTEXT) -#define MKTC_KICKTA_PIM_PATCHING 0xAD00080C -MKTC_ST(MKTC_KICKTA_PIM_PATCHING) - -#define MKTC_KICKTA_CHKPT_START_DUMMY_CS 0xAD0008A1 -MKTC_ST(MKTC_KICKTA_CHKPT_START_DUMMY_CS) -#define MKTC_KICKTA_CHKPT_START_DUMMY_TAK 0xAD0008A2 -MKTC_ST(MKTC_KICKTA_CHKPT_START_DUMMY_TAK) -#define MKTC_KICKTA_CHKPT_WAIT_FOR_DUMMY_KICK 0xAD0008A3 -MKTC_ST(MKTC_KICKTA_CHKPT_WAIT_FOR_DUMMY_KICK) -#define MKTC_KICKTA_CHKPT_WAIT_NEXT_CORE 0xAD0008A4 -MKTC_ST(MKTC_KICKTA_CHKPT_WAIT_NEXT_CORE) -#define MKTC_KICKTA_CHKPT_RESET_COMPLETE 0xAD0008A5 -MKTC_ST(MKTC_KICKTA_CHKPT_RESET_COMPLETE) -#define MKTC_KICKTA_CHKPT_CHECK_SWITCH 0xAD0008A6 -MKTC_ST(MKTC_KICKTA_CHKPT_CHECK_SWITCH) - -#define MKTC_HOSTKICK_START 0xAD000900 -MKTC_ST(MKTC_HOSTKICK_START) -#define MKTC_HOSTKICK_END 0xAD000901 -MKTC_ST(MKTC_HOSTKICK_END) -#define MKTC_HOSTKICK_PROCESS_QUEUES_END 0xAD000902 -MKTC_ST(MKTC_HOSTKICK_PROCESS_QUEUES_END) -#define MKTC_HOSTKICK_2D 0xAD000903 -MKTC_ST(MKTC_HOSTKICK_2D) -#define MKTC_HOSTKICK_TRANSFER 0xAD000904 -MKTC_ST(MKTC_HOSTKICK_TRANSFER) -#define MKTC_HOSTKICK_TA 0xAD000905 -MKTC_ST(MKTC_HOSTKICK_TA) -#define MKTC_HOSTKICK_PROCESS_QUEUES 0xAD000906 -MKTC_ST(MKTC_HOSTKICK_PROCESS_QUEUES) -#define MKTC_HOSTKICK_RESUME 0xAD000908 -MKTC_ST(MKTC_HOSTKICK_RESUME) -#define MKTC_HOSTKICK_POWEROFF 0xAD000909 -MKTC_ST(MKTC_HOSTKICK_POWEROFF) -#define MKTC_HOSTKICK_IDLE 0xAD00090A -MKTC_ST(MKTC_HOSTKICK_IDLE) -#define MKTC_HOSTKICK_CTXSUSPEND 0xAD00090B -MKTC_ST(MKTC_HOSTKICK_CTXSUSPEND) -#define MKTC_HOSTKICK_CTXRESUME 0xAD00090C -MKTC_ST(MKTC_HOSTKICK_CTXRESUME) - -#define MKTC_TIMER_POTENTIAL_TA_LOCKUP 0xAD000A00 -MKTC_ST(MKTC_TIMER_POTENTIAL_TA_LOCKUP) -#define MKTC_TIMER_POTENTIAL_3D_LOCKUP 0xAD000A01 -MKTC_ST(MKTC_TIMER_POTENTIAL_3D_LOCKUP) -#define MKTC_TIMER_CTAL_START 0xAD000A02 -MKTC_ST(MKTC_TIMER_CTAL_START) -#define MKTC_TIMER_CTAL_END 0xAD000A03 -MKTC_ST(MKTC_TIMER_CTAL_END) -#define MKTC_TIMER_C3DL_START 0xAD000A04 -MKTC_ST(MKTC_TIMER_C3DL_START) -#define MKTC_TIMER_C3DL_END 0xAD000A05 -MKTC_ST(MKTC_TIMER_C3DL_END) -#define MKTC_TIMER_LOCKUP 0xAD000A0A -MKTC_ST(MKTC_TIMER_LOCKUP) -#define MKTC_TIMER_NOT_TA_LOCKUP 0xAD000A0B -MKTC_ST(MKTC_TIMER_NOT_TA_LOCKUP) -#define MKTC_TIMER_NOT_3D_LOCKUP 0xAD000A0C -MKTC_ST(MKTC_TIMER_NOT_3D_LOCKUP) -#define MKTC_TIMER_2D_LOCKUP 0xAD000A0D -MKTC_ST(MKTC_TIMER_2D_LOCKUP) -#define MKTC_TIMER_POTENTIAL_2D_LOCKUP 0xAD000A10 -MKTC_ST(MKTC_TIMER_POTENTIAL_2D_LOCKUP) -#define MKTC_TIMER_C2DL_START 0xAD000A11 -MKTC_ST(MKTC_TIMER_C2DL_START) -#define MKTC_TIMER_C2DL_END 0xAD000A12 -MKTC_ST(MKTC_TIMER_C2DL_END) -#define MKTC_TIMER_NOT_2D_LOCKUP 0xAD000A13 -MKTC_ST(MKTC_TIMER_NOT_2D_LOCKUP) -#define MKTC_TIMER_ABORTALL 0xAD000A0E -MKTC_ST(MKTC_TIMER_ABORTALL) -#define MKTC_TIMER_END 0xAD000A0F -MKTC_ST(MKTC_TIMER_END) - -#define MKTC_HWR_START 0xAD000B00 -MKTC_ST(MKTC_HWR_START) -#define MKTC_HWR_END 0xAD000B01 -MKTC_ST(MKTC_HWR_END) -#define MKTC_HWR_HKS 0xAD000B02 -MKTC_ST(MKTC_HWR_HKS) -#define MKTC_HWR_PRL 0xAD000B03 -MKTC_ST(MKTC_HWR_PRL) -#define MKTC_HWR_PRL_DP 0xAD000B04 -MKTC_ST(MKTC_HWR_PRL_DP) -#define MKTC_HWR_CRL 0xAD000B05 -MKTC_ST(MKTC_HWR_CRL) -#define MKTC_HWR_CRL_DP 0xAD000B06 -MKTC_ST(MKTC_HWR_CRL_DP) -#define MKTC_HWR_TRL 0xAD000B07 -MKTC_ST(MKTC_HWR_TRL) -#define MKTC_HWR_TRL_DP 0xAD000B08 -MKTC_ST(MKTC_HWR_TRL_DP) -#define MKTC_HWR_ISC 0xAD000B09 -MKTC_ST(MKTC_HWR_ISC) -#define MKTC_HWR_2DL 0xAD000B0A -MKTC_ST(MKTC_HWR_2DL) -#define MKTC_HWR_CLEANUP 0xAD000B0B -MKTC_ST(MKTC_HWR_CLEANUP) - -#define MKTC_URSV_START 0xAD000C00 -MKTC_ST(MKTC_URSV_START) -#define MKTC_URSV_UPDATEWRITEOPS 0xAD000C01 -MKTC_ST(MKTC_URSV_UPDATEWRITEOPS) -#define MKTC_URSV_UPDATESTATUSVALS 0xAD000C03 -MKTC_ST(MKTC_URSV_UPDATESTATUSVALS) -#define MKTC_URSV_UPDATESTATUSVALS_DONE 0xAD000C04 -MKTC_ST(MKTC_URSV_UPDATESTATUSVALS_DONE) -#define MKTC_URSV_END 0xAD000C05 -MKTC_ST(MKTC_URSV_END) - -#define MKTC_STORETACONTEXT_START 0xAD000D00 -MKTC_ST(MKTC_STORETACONTEXT_START) -#define MKTC_STORETACONTEXT_END 0xAD000D01 -MKTC_ST(MKTC_STORETACONTEXT_END) -#define MKTC_LOADTACONTEXT_START 0xAD000D02 -MKTC_ST(MKTC_LOADTACONTEXT_START) -#define MKTC_LOADTACONTEXT_END 0xAD000D03 -MKTC_ST(MKTC_LOADTACONTEXT_END) -#define MKTC_STORE3DCONTEXT_START 0xAD000D04 -MKTC_ST(MKTC_STORE3DCONTEXT_START) -#define MKTC_STORE3DCONTEXT_END 0xAD000D05 -MKTC_ST(MKTC_STORE3DCONTEXT_END) -#define MKTC_LOAD3DCONTEXT_START 0xAD000D06 -MKTC_ST(MKTC_LOAD3DCONTEXT_START) -#define MKTC_LOAD3DCONTEXT_END 0xAD000D07 -MKTC_ST(MKTC_LOAD3DCONTEXT_END) - -#define MKTC_FINDTA_POWERREQUEST 0xAD000E00 -MKTC_ST(MKTC_FINDTA_POWERREQUEST) -#define MKTC_FINDTA_TA3D_OVERLAP_BLOCKED 0xAD000E01 -MKTC_ST(MKTC_FINDTA_TA3D_OVERLAP_BLOCKED) -#define MKTC_FINDTA_RTDATA_RENDERING 0xAD000E02 -MKTC_ST(MKTC_FINDTA_RTDATA_RENDERING) -#define MKTC_FINDTA_3DRC_DIFFERENT 0xAD000E03 -MKTC_ST(MKTC_FINDTA_3DRC_DIFFERENT) -#define MKTC_FINDTA_WRITEOPSBLOCKED 0xAD000E04 -MKTC_ST(MKTC_FINDTA_WRITEOPSBLOCKED) -#define MKTC_FINDTA_READOPSBLOCKED 0xAD000E05 -MKTC_ST(MKTC_FINDTA_READOPSBLOCKED) -#define MKTC_FINDTA_RESIZE_PB 0xAD000E06 -MKTC_ST(MKTC_FINDTA_RESIZE_PB) -#define MKTC_FINDTA_RESIZE_PB_BLOCKED 0xAD000E07 -MKTC_ST(MKTC_FINDTA_RESIZE_PB_BLOCKED) -#define MKTC_FINDTA_SHRINK_PB 0xAD000E08 -MKTC_ST(MKTC_FINDTA_SHRINK_PB) -#define MKTC_FINDTA_TAPB_DIFFERENT 0xAD000E09 -MKTC_ST(MKTC_FINDTA_TAPB_DIFFERENT) -#define MKTC_FINDTA_TACONTEXT_DIFFERENT 0xAD000E0A -MKTC_ST(MKTC_FINDTA_TACONTEXT_DIFFERENT) -#define MKTC_FINDTA_TA2D_OVERLAP_BLOCKED 0xAD000E0B -MKTC_ST(MKTC_FINDTA_TA2D_OVERLAP_BLOCKED) -#define MKTC_FINDTA_CONTEXT_SUSPENDED 0xAD000E0C -MKTC_ST(MKTC_FINDTA_CONTEXT_SUSPENDED) -#define MKTC_FINDTA_SRC_READOPSBLOCKED 0xAD000E0D -MKTC_ST(MKTC_FINDTA_SRC_READOPSBLOCKED) -#define MKTC_FINDTA_SRC_WRITEOPSBLOCKED 0xAD000E0E -MKTC_ST(MKTC_FINDTA_SRC_WRITEOPSBLOCKED) -#define MKTC_FINDTA_READOPS2BLOCKED 0xAD000E0F -MKTC_ST(MKTC_FINDTA_READOPS2BLOCKED) - -#define MKTC_CTRL_SRCREADOPSBLOCKED 0xAD000F00 -MKTC_ST(MKTC_CTRL_SRCREADOPSBLOCKED) -#define MKTC_CTRL_SRCWRITEOPSBLOCKED 0xAD000F01 -MKTC_ST(MKTC_CTRL_SRCWRITEOPSBLOCKED) -#define MKTC_CTRL_DSTREADOPSBLOCKED 0xAD000F02 -MKTC_ST(MKTC_CTRL_DSTREADOPSBLOCKED) -#define MKTC_CTRL_DSTWRITEOPSBLOCKED 0xAD000F03 -MKTC_ST(MKTC_CTRL_DSTWRITEOPSBLOCKED) -#define MKTC_CTRL_TARC_DIFFERENT 0xAD000F04 -MKTC_ST(MKTC_CTRL_TARC_DIFFERENT) -#define MKTC_CTRL_CONTEXT_SUSPENDED 0xAD000F05 -MKTC_ST(MKTC_CTRL_CONTEXT_SUSPENDED) -#define MKTC_CTRL_SRCREADOPS2BLOCKED 0xAD000F06 -MKTC_ST(MKTC_CTRL_SRCREADOPS2BLOCKED) -#define MKTC_CTRL_3D_WRITEOPSBLOCKED 0xAD000F07 -MKTC_ST(MKTC_CTRL_3D_WRITEOPSBLOCKED) -#define MKTC_CTRL_3D_READOPSBLOCKED 0xAD000F08 -MKTC_ST(MKTC_CTRL_3D_READOPSBLOCKED) - -#define MKTC_DPTA_START 0xAD001000 -MKTC_ST(MKTC_DPTA_START) -#define MKTC_DPTA_UPDATESTATUSVALS 0xAD001001 -MKTC_ST(MKTC_DPTA_UPDATESTATUSVALS) -#define MKTC_DPTA_UPDATESTATUSVALS_DONE 0xAD001002 -MKTC_ST(MKTC_DPTA_UPDATESTATUSVALS_DONE) -#define MKTC_DPTA_NORENDER 0xAD001003 -MKTC_ST(MKTC_DPTA_NORENDER) -#define MKTC_DPTA_MEMFREE 0xAD001004 -MKTC_ST(MKTC_DPTA_MEMFREE) -#define MKTC_DPTA_INC_COMPLETECOUNT 0xAD001005 -MKTC_ST(MKTC_DPTA_INC_COMPLETECOUNT) - -#define MKTC_INVALDC 0xAD001100 -MKTC_ST(MKTC_INVALDC) -#define MKTC_INVALPT 0xAD001101 -MKTC_ST(MKTC_INVALPT) -#define MKTC_INVALSLC 0xAD001102 -MKTC_ST(MKTC_INVALSLC) -#define MKTC_INVALDATA 0xAD001103 -MKTC_ST(MKTC_INVALDATA) - -#define MKTC_RESTARTTA 0xAD001200 -MKTC_ST(MKTC_RESTARTTA) -#define MKTC_CSABORTNONGBL 0xAD001201 -MKTC_ST(MKTC_CSABORTNONGBL) -#define MKTC_CSABORTALL 0xAD001202 -MKTC_ST(MKTC_CSABORTALL) -#define MKTC_CSRENDERINPROGRESS 0xAD001203 -MKTC_ST(MKTC_CSRENDERINPROGRESS) -#define MKTC_TATERMRENDERINPROGRESS 0xAD001204 -MKTC_ST(MKTC_TATERMRENDERINPROGRESS) -#define MKTC_RESTARTTANORENDER 0xAD001205 -MKTC_ST(MKTC_RESTARTTANORENDER) -#define MKTC_SPM_KICKRENDER 0xAD001206 -MKTC_ST(MKTC_SPM_KICKRENDER) -#define MKTC_SPM_RESUME_ABORTCOMPLETE 0xAD001208 -MKTC_ST(MKTC_SPM_RESUME_ABORTCOMPLETE) -#define MKTC_RESUMEVDM 0xAD001209 -MKTC_ST(MKTC_RESUMEVDM) -#define MKTC_REMOVE_RESERVE_MEM 0xAD00120A -MKTC_ST(MKTC_REMOVE_RESERVE_MEM) -#define MKTC_INCREASEZLSTHRESHOLD 0xAD00120B -MKTC_ST(MKTC_INCREASEZLSTHRESHOLD) -#define MKTC_CSFORCEABORTALL 0xAD00120C -MKTC_ST(MKTC_CSFORCEABORTALL) - -#define MKTC_DUMMY_DEPTH 0xAD00120D -MKTC_ST(MKTC_DUMMY_DEPTH) -#define MKTC_DUMMY_DEPTH_CS 0xAD00120E -MKTC_ST(MKTC_DUMMY_DEPTH_CS) - -#define MKTC_MTETE_OOM 0xAD00120F -MKTC_ST(MKTC_MTETE_OOM) -#define MKTC_MTETE_OOM_FIRST_STORE_REF 0xAD001210 -MKTC_ST(MKTC_MTETE_OOM_FIRST_STORE_REF) -#define MKTC_MERGE_STATE_TABLES 0xAD001211 -MKTC_ST(MKTC_MERGE_STATE_TABLES) -#define MKTC_NO_PAGES_LEFT_FOR_23055 0xAD001212 -MKTC_ST(MKTC_NO_PAGES_LEFT_FOR_23055) -#define MKTC_NO_STATE_MODS 0xAD001213 -MKTC_ST(MKTC_NO_STATE_MODS) -#define MKTC_FIND_MTE_PAGE_IN_STATE 0xAD001214 -MKTC_ST(MKTC_FIND_MTE_PAGE_IN_STATE) -#define MKTC_MTE_PAGE_FOUND 0xAD001215 -MKTC_ST(MKTC_MTE_PAGE_FOUND) -#define MKTC_MOVE_MTE_PAGE_TO_TA_STATE 0xAD001216 -MKTC_ST(MKTC_MOVE_MTE_PAGE_TO_TA_STATE) -#define MKTC_MOVE_MTE_PAGE_TO_TA_STATE_END 0xAD001217 -MKTC_ST(MKTC_MOVE_MTE_PAGE_TO_TA_STATE_END) -#define MKTC_ZERO_ZLS_THRESHOLD 0xAD001218 -MKTC_ST(MKTC_ZERO_ZLS_THRESHOLD) -#define MKTC_RESTORE_ZLS_THRESHOLD 0xAD001219 -MKTC_ST(MKTC_RESTORE_ZLS_THRESHOLD) -#define MKTC_FIND_MTE_PAGE_IN_CSM 0xAD00121A -MKTC_ST(MKTC_FIND_MTE_PAGE_IN_CSM) -#define MKTC_REISSUE_MTE_PAGE 0xAD00121B -MKTC_ST(MKTC_REISSUE_MTE_PAGE) -#define MKTC_REISSUE_MTE_PAGE_REQUIRED 0xAD00121C -MKTC_ST(MKTC_REISSUE_MTE_PAGE_REQUIRED) -#define MKTC_REISSUE_MTE_PAGE_END 0xAD00121D -MKTC_ST(MKTC_REISSUE_MTE_PAGE_END) -#define MKTC_RESET_TE_PSG 0xAD00121E -MKTC_ST(MKTC_RESET_TE_PSG) - -#define MKTC_OOM_WRITEOPSBLOCKED 0xAD00121F -MKTC_ST(MKTC_OOM_WRITEOPSBLOCKED) -#define MKTC_OOM_READOPSBLOCKED 0xAD001220 -MKTC_ST(MKTC_OOM_READOPSBLOCKED) -#define MKTC_OOM_SRC_WRITEOPSBLOCKED 0xAD001221 -MKTC_ST(MKTC_OOM_SRC_WRITEOPSBLOCKED) -#define MKTC_OOM_SRC_READOPSBLOCKED 0xAD001222 -MKTC_ST(MKTC_OOM_SRC_READOPSBLOCKED) -#define MKTC_OOM_SPM_DEADLOCK 0xAD001223 -MKTC_ST(MKTC_OOM_SPM_DEADLOCK) -#define MKTC_OOM_SPM_DEADLOCK_MEM_ADDED 0xAD001224 -MKTC_ST(MKTC_OOM_SPM_DEADLOCK_MEM_ADDED) -#define MKTC_RESET 0xAD001225 -MKTC_ST(MKTC_RESET) -#define MKTC_SPM_INVALID_ZLSCONFIG 0xAD001226 -MKTC_ST(MKTC_SPM_INVALID_ZLSCONFIG) - -#define MKTC_OOM_TYPE_MT 0xAD00122A -MKTC_ST(MKTC_OOM_TYPE_MT) -#define MKTC_OOM_TYPE_GLOBAL 0xAD001230 -MKTC_ST(MKTC_OOM_TYPE_GLOBAL) -#define MKTC_OOM_CAUSE_GBL_OOM 0xAD001231 -MKTC_ST(MKTC_OOM_CAUSE_GBL_OOM) -#define MKTC_OOM_RESTORE_LIST_SIZE 0xAD001232 -MKTC_ST(MKTC_OOM_RESTORE_LIST_SIZE) - -#define MKTC_CHECK_MTE_PAGE_REISSUE 0xAD001240 -MKTC_ST(MKTC_CHECK_MTE_PAGE_REISSUE) -#define MKTC_CPRI_VALID_ENTRIES 0xAD001241 -MKTC_ST(MKTC_CPRI_VALID_ENTRIES) -#define MKTC_CPRI_STORE_DPLIST 0xAD001242 -MKTC_ST(MKTC_CPRI_STORE_DPLIST) -#define MKTC_CPRI_STORE_OTPM_CSM 0xAD001243 -MKTC_ST(MKTC_CPRI_STORE_OTPM_CSM) -#define MKTC_CPRI_ABORT_MT_IDX 0xAD001244 -MKTC_ST(MKTC_CPRI_ABORT_MT_IDX) -#define MKTC_CPRI_ABORT_CORE_IDX 0xAD001245 -MKTC_ST(MKTC_CPRI_ABORT_CORE_IDX) -#define MKTC_CPRI_CSM_TABLE_DATA 0xAD001246 -MKTC_ST(MKTC_CPRI_CSM_TABLE_DATA) -#define MKTC_CPRI_PIM_DATA 0xAD001247 -MKTC_ST(MKTC_CPRI_PIM_DATA) -#define MKTC_CPRI_DO_CIRCULAR_TEST 0xAD001248 -MKTC_ST(MKTC_CPRI_DO_CIRCULAR_TEST) -#define MKTC_CPRI_WRITE_ENTRIES 0xAD001249 -MKTC_ST(MKTC_CPRI_WRITE_ENTRIES) - -#define MKTC_MTE_ENTRY_NOT_IN_ANY_LIST 0xAD001250 -MKTC_ST(MKTC_MTE_ENTRY_NOT_IN_ANY_LIST) - -#define MKTC_SPMAC_IGNORE_TERMINATE 0xAD001251 -MKTC_ST(MKTC_SPMAC_IGNORE_TERMINATE) - -#define MKTC_SPMAC_REQUEST_3D_TIMEOUT 0xAD001252 -MKTC_ST(MKTC_SPMAC_REQUEST_3D_TIMEOUT) -#define MKTC_SPMAC_3D_TIMEOUT_COMPLETE 0xAD001253 -MKTC_ST(MKTC_SPMAC_3D_TIMEOUT_COMPLETE) -#define MKTC_OOM_READOPS2BLOCKED 0xAD001254 -MKTC_ST(MKTC_OOM_READOPS2BLOCKED) - -/* PB Load/store status */ -#define MKTC_LOADTAPB_START 0xAD001300 -MKTC_ST(MKTC_LOADTAPB_START) -#define MKTC_LOADTAPB_END 0xAD001301 -MKTC_ST(MKTC_LOADTAPB_END) -#define MKTC_STORETAPB_START 0xAD001302 -MKTC_ST(MKTC_STORETAPB_START) -#define MKTC_STORETAPB_END 0xAD001303 -MKTC_ST(MKTC_STORETAPB_END) -#define MKTC_LOAD3DPB_START 0xAD001304 -MKTC_ST(MKTC_LOAD3DPB_START) -#define MKTC_LOAD3DPB_END 0xAD001305 -MKTC_ST(MKTC_LOAD3DPB_END) -#define MKTC_STORE3DPB_START 0xAD001306 -MKTC_ST(MKTC_STORE3DPB_START) -#define MKTC_STORE3DPB_END 0xAD001307 -MKTC_ST(MKTC_STORE3DPB_END) -#define MKTC_LOADTAPB_PAGETABLE_DONE 0xAD001308 -MKTC_ST(MKTC_LOADTAPB_PAGETABLE_DONE) -#define MKTC_LOAD3DPB_PAGETABLE_DONE 0xAD001309 -MKTC_ST(MKTC_LOAD3DPB_PAGETABLE_DONE) - -#define MKTC_TIMER_RC_CLEANUP 0xAD001400 -MKTC_ST(MKTC_TIMER_RC_CLEANUP) -#define MKTC_TIMER_RC_CLEANUP_DONE 0xAD001401 -MKTC_ST(MKTC_TIMER_RC_CLEANUP_DONE) -#define MKTC_TIMER_RC_CLEANUP_BUSY 0xAD001402 -MKTC_ST(MKTC_TIMER_RC_CLEANUP_BUSY) -#define MKTC_TIMER_RT_CLEANUP 0xAD001410 -MKTC_ST(MKTC_TIMER_RT_CLEANUP) -#define MKTC_TIMER_RT_CLEANUP_DONE 0xAD001411 -MKTC_ST(MKTC_TIMER_RT_CLEANUP_DONE) -#define MKTC_TIMER_RT_CLEANUP_PENDING 0xAD001412 -MKTC_ST(MKTC_TIMER_RT_CLEANUP_PENDING) -#define MKTC_TIMER_RT_CLEANUP_TIDYPARTIALLIST 0xAD001413 -MKTC_ST(MKTC_TIMER_RT_CLEANUP_TIDYPARTIALLIST) -#define MKTC_TIMER_RT_CLEANUP_BUSY 0xAD001414 -MKTC_ST(MKTC_TIMER_RT_CLEANUP_BUSY) -#define MKTC_TIMER_TC_CLEANUP 0xAD001420 -MKTC_ST(MKTC_TIMER_TC_CLEANUP) -#define MKTC_TIMER_TC_CLEANUP_DONE 0xAD001421 -MKTC_ST(MKTC_TIMER_TC_CLEANUP_DONE) -#define MKTC_TIMER_TC_CLEANUP_BUSY 0xAD001422 -MKTC_ST(MKTC_TIMER_TC_CLEANUP_BUSY) -#define MKTC_TIMER_2DC_CLEANUP 0xAD001430 -MKTC_ST(MKTC_TIMER_2DC_CLEANUP) -#define MKTC_TIMER_2DC_CLEANUP_DONE 0xAD001431 -MKTC_ST(MKTC_TIMER_2DC_CLEANUP_DONE) -#define MKTC_TIMER_2DC_CLEANUP_BUSY 0xAD001432 -MKTC_ST(MKTC_TIMER_2DC_CLEANUP_BUSY) -#define MKTC_TIMER_SHAREDPBDESC_CLEANUP 0xAD001440 -MKTC_ST(MKTC_TIMER_SHAREDPBDESC_CLEANUP) - - -#define MKTC_TIMER_ISP_SWITCH_POTENTIAL_LOCKUP 0xAD001450 -MKTC_ST(MKTC_TIMER_ISP_SWITCH_POTENTIAL_LOCKUP) -#define MKTC_TIMER_ISP_SWITCH_FORCE_SWITCH 0xAD001451 -MKTC_ST(MKTC_TIMER_ISP_SWITCH_FORCE_SWITCH) - -#define MKTC_UTSO_UPDATEREADOPS 0xAD001600 -MKTC_ST(MKTC_UTSO_UPDATEREADOPS) -#define MKTC_UTSO_UPDATEWRITEOPS 0xAD001601 -MKTC_ST(MKTC_UTSO_UPDATEWRITEOPS) - -#define MKTC_TAFINISHED_UPDATESTATUSVALS 0xAD001700 -MKTC_ST(MKTC_TAFINISHED_UPDATESTATUSVALS) -#define MKTC_TAFINISHED_UPDATESTATUSVALS_DONE 0xAD001701 -MKTC_ST(MKTC_TAFINISHED_UPDATESTATUSVALS_DONE) -#define MKTC_TAFINISHED_NORENDER 0xAD001702 -MKTC_ST(MKTC_TAFINISHED_NORENDER) -#define MKTC_TAFINISHED_LASTKICK 0xAD001703 -MKTC_ST(MKTC_TAFINISHED_LASTKICK) -#define MKTC_TAFINISHED_FINDRENDER 0xAD001704 -MKTC_ST(MKTC_TAFINISHED_FINDRENDER) -#define MKTC_TAFINISHED_FINDTA 0xAD001705 -MKTC_ST(MKTC_TAFINISHED_FINDTA) -#define MKTC_TAFINISHED_END 0xAD001706 -MKTC_ST(MKTC_TAFINISHED_END) -#define MKTC_TAF_SPM_DEADLOCK_MEM_REMOVED 0xAD001707 -MKTC_ST(MKTC_TAF_SPM_DEADLOCK_MEM_REMOVED) -#define MKTC_TAF_RESERVE_MEM 0xAD001708 -MKTC_ST(MKTC_TAF_RESERVE_MEM) -#define MKTC_TAF_RESERVE_MEM_REQUEST_RENDER 0xAD001709 -MKTC_ST(MKTC_TAF_RESERVE_MEM_REQUEST_RENDER) -#define MKTC_TAF_RESERVE_FREE_RENDER_FINISHED 0xAD00170A -MKTC_ST(MKTC_TAF_RESERVE_FREE_RENDER_FINISHED) -#define MKTC_TAF_RESERVE_FREE_DUMMY_RENDER 0xAD00170B -MKTC_ST(MKTC_TAF_RESERVE_FREE_DUMMY_RENDER) -#define MKTC_TAF_DEBUG_SAS 0xAD00170C -MKTC_ST(MKTC_TAF_DEBUG_SAS) -#define MKTC_TAFINISHED_NOCONTEXTSWITCH 0xAD00170D -MKTC_ST(MKTC_TAFINISHED_NOCONTEXTSWITCH) - -#define MKTC_TAFINISHED_TERM_COMPLETE_START 0xAD001710 -MKTC_ST(MKTC_TAFINISHED_TERM_COMPLETE_START) -#define MKTC_TAFINISHED_TERM_COMPLETE_END 0xAD001711 -MKTC_ST(MKTC_TAFINISHED_TERM_COMPLETE_END) - -#define MKTC_TAFINISHED_DPMPAGERECYCLING 0xAD001720 -MKTC_ST(MKTC_TAFINISHED_DPMPAGERECYCLING) - -#define MKTC_2DEVENT_2DCOMPLETE 0xAD001800 -MKTC_ST(MKTC_2DEVENT_2DCOMPLETE) -#define MKTC_2DEVENT_END 0xAD001801 -MKTC_ST(MKTC_2DEVENT_END) -#define MKTC_2DLB_2DCOMPLETE 0xAD001802 -MKTC_ST(MKTC_2DLB_2DCOMPLETE) -#define MKTC_2DLB_FIND2D 0xAD001803 -MKTC_ST(MKTC_2DLB_FIND2D) -#define MKTC_2DLB_END 0xAD001804 -MKTC_ST(MKTC_2DLB_END) -#define MKTC_2DCOMPLETE_START 0xAD001805 -MKTC_ST(MKTC_2DCOMPLETE_START) -#define MKTC_2DCOMPLETE_END 0xAD001806 -MKTC_ST(MKTC_2DCOMPLETE_END) -#define MKTC_KICK2D_START 0xAD001807 -MKTC_ST(MKTC_KICK2D_START) -#define MKTC_KICK2D_END 0xAD001808 -MKTC_ST(MKTC_KICK2D_END) -#define MKTC_DUMMYPROC2D 0xAD001809 -MKTC_ST(MKTC_DUMMYPROC2D) -#define MKTC_FTD_SRCREADOPSBLOCKED 0xAD00180A -MKTC_ST(MKTC_FTD_SRCREADOPSBLOCKED) -#define MKTC_FTD_SRCWRITEOPSBLOCKED 0xAD00180B -MKTC_ST(MKTC_FTD_SRCWRITEOPSBLOCKED) -#define MKTC_FTD_DSTREADOPSBLOCKED 0xAD00180C -MKTC_ST(MKTC_FTD_DSTREADOPSBLOCKED) -#define MKTC_FTD_DSTWRITEOPSBLOCKED 0xAD00180D -MKTC_ST(MKTC_FTD_DSTWRITEOPSBLOCKED) -#define MKTC_FTD_TA2D_OVERLAP_BLOCKED 0xAD00180E -MKTC_ST(MKTC_FTD_TA2D_OVERLAP_BLOCKED) -#define MKTC_U2DSO_UPDATEREADOPS 0xAD00180F -MKTC_ST(MKTC_U2DSO_UPDATEREADOPS) -#define MKTC_U2DSO_UPDATEWRITEOPS 0xAD001810 -MKTC_ST(MKTC_U2DSO_UPDATEWRITEOPS) -#define MKTC_FTD_TAOPSBLOCKED 0xAD001811 -MKTC_ST(MKTC_FTD_TAOPSBLOCKED) -#define MKTC_KICK2D_2DSLAVEPORT 0xAD001812 -MKTC_ST(MKTC_KICK2D_2DSLAVEPORT) -#define MKTC_KICK2D_2DSLAVEPORT_DONE 0xAD001813 -MKTC_ST(MKTC_KICK2D_2DSLAVEPORT_DONE) -#define MKTC_FTD_CONTEXT_SUSPENDED 0xAD001814 -MKTC_ST(MKTC_FTD_CONTEXT_SUSPENDED) -#define MKTC_KICK2D_PID 0xAD001815 -MKTC_ST(MKTC_KICK2D_PID) -#define MKTC_FIND2D_ADDR_SPACE_DIFFERENT 0xAD001816 -MKTC_ST(MKTC_FIND2D_ADDR_SPACE_DIFFERENT) -#define MKTC_FTD_3DOPSBLOCKED 0xAD001817 -MKTC_ST(MKTC_FTD_3DOPSBLOCKED) -#define MKTC_FTD_DSTREADOPS2BLOCKED 0xAD001818 -MKTC_ST(MKTC_FTD_DSTREADOPS2BLOCKED) - -#define MKTC_FCM_START 0xAD001900 -MKTC_ST(MKTC_FCM_START) -#define MKTC_FCM_END 0xAD001901 -MKTC_ST(MKTC_FCM_END) - -#define MKTC_TIMER_ACTIVE_POWER 0xAD001A00 -MKTC_ST(MKTC_TIMER_ACTIVE_POWER) -#define MKTC_TIMER_POWER_3D_ACTIVE 0xAD001A01 -MKTC_ST(MKTC_TIMER_POWER_3D_ACTIVE) -#define MKTC_TIMER_POWER_TA_ACTIVE 0xAD001A02 -MKTC_ST(MKTC_TIMER_POWER_TA_ACTIVE) -#define MKTC_TIMER_POWER_2D_ACTIVE 0xAD001A03 -MKTC_ST(MKTC_TIMER_POWER_2D_ACTIVE) -#define MKTC_TIMER_POWER_PENDING_EVENTS 0xAD001A04 -MKTC_ST(MKTC_TIMER_POWER_PENDING_EVENTS) -#define MKTC_TIMER_POWER_IDLE 0xAD001A05 -MKTC_ST(MKTC_TIMER_POWER_IDLE) -#define MKTC_TIMER_POWER_OFF 0xAD001A06 -MKTC_ST(MKTC_TIMER_POWER_OFF) -#define MKTC_TIMER_POWER_CCB_ERROR 0xAD001A07 -MKTC_ST(MKTC_TIMER_POWER_CCB_ERROR) -#define MKTC_TIMER_POWER_RESTART_IMMEDIATE 0xAD001A08 -MKTC_ST(MKTC_TIMER_POWER_RESTART_IMMEDIATE) - -#define MKTC_3DCONTEXT_SWITCH 0xAD001B00 -MKTC_ST(MKTC_3DCONTEXT_SWITCH) -#define MKTC_3DCONTEXT_SWITCH_END 0xAD001B01 -MKTC_ST(MKTC_3DCONTEXT_SWITCH_END) - -#define MKTC_TACONTEXT_SWITCH 0xAD001C00 -MKTC_ST(MKTC_TACONTEXT_SWITCH) -#define MKTC_TACONTEXT_SWITCH_END 0xAD001C02 -MKTC_ST(MKTC_TACONTEXT_SWITCH_END) - -#define MKTC_GETMISCINFO_MEMREAD_START 0xAD001D00 -MKTC_ST(MKTC_GETMISCINFO_MEMREAD_START) -#define MKTC_GETMISCINFO_MEMREAD_END 0xAD001D01 -MKTC_ST(MKTC_GETMISCINFO_MEMREAD_END) -#define MKTC_GETMISCINFO_MEMWRITE_START 0xAD001D02 -MKTC_ST(MKTC_GETMISCINFO_MEMWRITE_START) -#define MKTC_GETMISCINFO_MEMWRITE_END 0xAD001D03 -MKTC_ST(MKTC_GETMISCINFO_MEMWRITE_END) - -#define MKTC_HALTTA 0xAD001E00 -MKTC_ST(MKTC_HALTTA) -#define MKTC_HTA_SET_FLAG 0xAD001E01 -MKTC_ST(MKTC_HTA_SET_FLAG) -#define MKTC_HTA_SAVE_COMPLEX_PTR 0xAD001E02 -MKTC_ST(MKTC_HTA_SAVE_COMPLEX_PTR) -#define MKTC_HALTTA_END 0xAD001E03 -MKTC_ST(MKTC_HALTTA_END) - -#define MKTC_RESUMETA 0xAD001F00 -MKTC_ST(MKTC_RESUMETA) -#define MKTC_RTA_CONTEXT_LOADED 0xAD001F01 -MKTC_ST(MKTC_RTA_CONTEXT_LOADED) -#define MKTC_RTA_MTE_STATE_KICKED 0xAD001F02 -MKTC_ST(MKTC_RTA_MTE_STATE_KICKED) -#define MKTC_RTA_CMPLX_GEOM_PRESENT 0xAD001F03 -MKTC_ST(MKTC_RTA_CMPLX_GEOM_PRESENT) -#define MKTC_RTA_CMPLX_STATE_KICKED 0xAD001F04 -MKTC_ST(MKTC_RTA_CMPLX_STATE_KICKED) -#define MKTC_RTA_CHECK_NEXT_SA_PROG 0xAD001F05 -MKTC_ST(MKTC_RTA_CHECK_NEXT_SA_PROG) -#define MKTC_RTA_CORE_COMPLETED 0xAD001F06 -MKTC_ST(MKTC_RTA_CORE_COMPLETED) -#define MKTC_RTA_DEBUG_SAS 0xAD001F07 -MKTC_ST(MKTC_RTA_DEBUG_SAS) -#define MKTC_RESUMETA_END 0xAD001F0F -MKTC_ST(MKTC_RESUMETA_END) - -#define MKTC_RENDERHALT 0xAD002000 -MKTC_ST(MKTC_RENDERHALT) -#define MKTC_RH_CLEARFLAGS 0xAD002001 -MKTC_ST(MKTC_RH_CLEARFLAGS) -#define MKTC_RH_CTRL_ADDR 0xAD002002 -MKTC_ST(MKTC_RH_CTRL_ADDR) -#define MKTC_RH_RGN_ADDR 0xAD002003 -MKTC_ST(MKTC_RH_RGN_ADDR) -#define MKTC_RH_EMPTY_TILE 0xAD002004 -MKTC_ST(MKTC_RH_EMPTY_TILE) -#define MKTC_RH_EMPTY_LAST_TILE 0xAD002005 -MKTC_ST(MKTC_RH_EMPTY_LAST_TILE) -#define MKTC_RH_3D_TIMEOUT 0xAD002006 -MKTC_ST(MKTC_RH_3D_TIMEOUT) -#define MKTC_RH_NOT_EMPTY 0xAD002007 -MKTC_ST(MKTC_RH_NOT_EMPTY) -#define MKTC_RH_OBJECT_COMPLETE 0xAD002008 -MKTC_ST(MKTC_RH_OBJECT_COMPLETE) -#define MKTC_RH_STREAM_LINK 0xAD002009 -MKTC_ST(MKTC_RH_STREAM_LINK) -#define MKTC_RH_OBJECT_INCOMPLETE 0xAD00200A -MKTC_ST(MKTC_RH_OBJECT_INCOMPLETE) -#define MKTC_RH_PRIM_MASK_PRESENT 0xAD00200B -MKTC_ST(MKTC_RH_PRIM_MASK_PRESENT) -#define MKTC_RH_BYTE_MASK_PRESENT 0xAD00200C -MKTC_ST(MKTC_RH_BYTE_MASK_PRESENT) -#define MKTC_RH_BYTE_MASK_ZERO 0xAD00200D -MKTC_ST(MKTC_RH_BYTE_MASK_ZERO) -#define MKTC_RH_PRIM_MASK_ZERO 0xAD00200E -MKTC_ST(MKTC_RH_PRIM_MASK_ZERO) -#define MKTC_RH_INVALIDATE_OBJECTS 0xAD00200F -MKTC_ST(MKTC_RH_INVALIDATE_OBJECTS) -#define MKTC_RH_OBJECTS_INVALIDATED 0xAD002010 -MKTC_ST(MKTC_RH_OBJECTS_INVALIDATED) -#define MKTC_RH_DPM_RGN_PARSER_IDLE 0xAD002011 -MKTC_ST(MKTC_RH_DPM_RGN_PARSER_IDLE) -#define MKTC_RH_NEXT_RGN_BASE 0xAD002012 -MKTC_ST(MKTC_RH_NEXT_RGN_BASE) -#define MKTC_RH_OCC_EXIT 0xAD002013 -MKTC_ST(MKTC_RH_OCC_EXIT) -#define MKTC_RH_STILL_RUNNING 0xAD002020 -MKTC_ST(MKTC_RH_STILL_RUNNING) -#define MKTC_RH_CLEARMCI 0xAD002021 -MKTC_ST(MKTC_RH_CLEARMCI) -#define MKTC_RH_EOR 0xAD002022 -MKTC_ST(MKTC_RH_EOR) -#define MKTC_RENDERHALT_END 0xAD002030 -MKTC_ST(MKTC_RENDERHALT_END) - -#define MKTC_FIND3D_POWERREQUEST 0xAD002100 -MKTC_ST(MKTC_FIND3D_POWERREQUEST) - -#define MKTC_FIND2D_POWERREQUEST 0xAD002200 -MKTC_ST(MKTC_FIND2D_POWERREQUEST) - -#define MKTC_UKERNEL_INIT 0xAD002300 -MKTC_ST(MKTC_UKERNEL_INIT) -#define MKTC_UKERNEL_INIT_DCS_COMPLETE 0xAD002301 -MKTC_ST(MKTC_UKERNEL_INIT_DCS_COMPLETE) -#define MKTC_UKERNEL_INIT_VDMKICK_COMPLETE 0xAD002303 -MKTC_ST(MKTC_UKERNEL_INIT_VDMKICK_COMPLETE) - -#define MKTC_KICKTRANSFERRENDER_START 0xAD002400 -MKTC_ST(MKTC_KICKTRANSFERRENDER_START) -#define MKTC_KICKTRANSFERRENDER_ISP_START 0xAD002401 -MKTC_ST(MKTC_KICKTRANSFERRENDER_ISP_START) -#define MKTC_KICKTRANSFERRENDER_END 0xAD002402 -MKTC_ST(MKTC_KICKTRANSFERRENDER_END) -#define MKTC_DUMMYPROCTRANSFER 0xAD002403 -MKTC_ST(MKTC_DUMMYPROCTRANSFER) -#define MKTC_KTR_TQFENCE 0xAD002404 -MKTC_ST(MKTC_KTR_TQFENCE) -#define MKTC_KICKTRANSFERRENDER_PID 0xAD002405 -MKTC_ST(MKTC_KICKTRANSFERRENDER_PID) - -#define MKTC_HOSTKICK_CLEANUP_RT 0xAD002500 -MKTC_ST(MKTC_HOSTKICK_CLEANUP_RT) -#define MKTC_HOSTKICK_CLEANUP_RC 0xAD002501 -MKTC_ST(MKTC_HOSTKICK_CLEANUP_RC) -#define MKTC_HOSTKICK_CLEANUP_TC 0xAD002502 -MKTC_ST(MKTC_HOSTKICK_CLEANUP_TC) -#define MKTC_HOSTKICK_CLEANUP_2DC 0xAD002503 -MKTC_ST(MKTC_HOSTKICK_CLEANUP_2DC) -#define MKTC_HOSTKICK_CLEANUP_PB 0xAD002504 -MKTC_ST(MKTC_HOSTKICK_CLEANUP_PB) -#define MKTC_HOSTKICK_GETMISCINFO 0xAD002505 -MKTC_ST(MKTC_HOSTKICK_GETMISCINFO) -#define MKTC_HOSTKICK_DATABREAKPOINT 0xAD002506 -MKTC_ST(MKTC_HOSTKICK_DATABREAKPOINT) -#define MKTC_HOSTKICK_SETHWPERFSTATUS 0xAD002507 -MKTC_ST(MKTC_HOSTKICK_SETHWPERFSTATUS) - -#define MKTC_ZEROPC 0xAD002600 -MKTC_ST(MKTC_ZEROPC) - -#define MKTC_ASSERT_FAIL 0xAD002700 -MKTC_ST(MKTC_ASSERT_FAIL) - -#define MKTC_SDLB_ILLEGAL 0xAD002800 -MKTC_ST(MKTC_SDLB_ILLEGAL) - -#define MKTC_SPMEVENT_OUTOFMEM 0xAD002901 -MKTC_ST(MKTC_SPMEVENT_OUTOFMEM) -#define MKTC_SPMEVENT_TATERMINATE 0xAD002902 -MKTC_ST(MKTC_SPMEVENT_TATERMINATE) -#define MKTC_SPMEVENT_END 0xAD002904 -MKTC_ST(MKTC_SPMEVENT_END) - -#define MKTC_SPMLB_OUTOFMEM 0xAD002981 -MKTC_ST(MKTC_SPMLB_OUTOFMEM) -#define MKTC_SPMLB_TATERMINATE 0xAD002982 -MKTC_ST(MKTC_SPMLB_TATERMINATE) -#define MKTC_SPMLB_SPMRENDERFINSHED 0xAD002983 -MKTC_ST(MKTC_SPMLB_SPMRENDERFINSHED) -#define MKTC_SPMLB_END 0xAD002985 -MKTC_ST(MKTC_SPMLB_END) - -#define MKTC_SPM_CHECK_MT_DEADLOCK 0xAD002991 -MKTC_ST(MKTC_SPM_CHECK_MT_DEADLOCK) -#define MKTC_SPM_CHECK_GLOBAL_DEADLOCK 0xAD002992 -MKTC_ST(MKTC_SPM_CHECK_GLOBAL_DEADLOCK) -#define MKTC_SPM_RESERVE_ADDED 0xAD002993 -MKTC_ST(MKTC_SPM_RESERVE_ADDED) -#define MKTC_SPM_FORCE_GLOBAL_OOM_FAILED 0xAD00299E -MKTC_ST(MKTC_SPM_FORCE_GLOBAL_OOM_FAILED) -#define MKTC_SPM_DEADLOCK_MEM_FAILED 0xAD00299F -MKTC_ST(MKTC_SPM_DEADLOCK_MEM_FAILED) - -#define MKTC_IBC_ILLEGAL 0xAD002A00 -MKTC_ST(MKTC_IBC_ILLEGAL) - -#define MKTC_HWP_CLEARCOUNTERS 0xAD002B00 -MKTC_ST(MKTC_HWP_CLEARCOUNTERS) - -#define MKTC_TA_FRAMENUM 0xAD002C00 -MKTC_ST(MKTC_TA_FRAMENUM) -#define MKTC_3D_FRAMENUM 0xAD002C01 -MKTC_ST(MKTC_3D_FRAMENUM) -#define MKTC_SPM3D_FRAMENUM 0xAD002C02 -MKTC_ST(MKTC_SPM3D_FRAMENUM) - -#define MKTC_HKTA_RENDERCONTEXT 0xAD002D00 -MKTC_ST(MKTC_HKTA_RENDERCONTEXT) -#define MKTC_IDLECORE_REFCOUNT_FAIL 0xAD002E00 -MKTC_ST(MKTC_IDLECORE_REFCOUNT_FAIL) - -#define MKTC_MCISTATE_NOT_CLEARED 0xAD002F00 -MKTC_ST(MKTC_MCISTATE_NOT_CLEARED) - -#define MKTC_LOWERED_TO_PDS_THRESHOLD 0xAD003000 -MKTC_ST(MKTC_LOWERED_TO_PDS_THRESHOLD) -#define MKTC_REDUCE_MAX_VTX_PARTITIONS 0xAD003001 -MKTC_ST(MKTC_REDUCE_MAX_VTX_PARTITIONS) -#define MKTC_KTAOVERRIDE_MAX_VTX_PARTITIONS 0xAD003002 -MKTC_ST(MKTC_KTAOVERRIDE_MAX_VTX_PARTITIONS) -#define MKTC_KTANOOVERRIDE_MAX_VTX_PARTITIONS 0xAD003003 -MKTC_ST(MKTC_KTANOOVERRIDE_MAX_VTX_PARTITIONS) - -#define MKTC_IPRB_NORENDERDETAILS 0xAD003010 -MKTC_ST(MKTC_IPRB_NORENDERDETAILS) -#define MKTC_IPRB_HAVERENDERDETAILS 0xAD003011 -MKTC_ST(MKTC_IPRB_HAVERENDERDETAILS) - -#define MKTC_RENDER_OUT_OF_ORDER 0xAD003020 -MKTC_ST(MKTC_RENDER_OUT_OF_ORDER) -#define MKTC_RENDER_NOT_OUT_OF_ORDER 0xAD003021 -MKTC_ST(MKTC_RENDER_NOT_OUT_OF_ORDER) - -#define MKTC_ZLS_IDLE_BEGIN 0xAD003030 -MKTC_ST(MKTC_ZLS_IDLE_BEGIN) -#define MKTC_ZLS_ISP_CLK_GATING_EN 0xAD003031 -MKTC_ST(MKTC_ZLS_ISP_CLK_GATING_EN) -#define MKTC_ZLS_IDLE_END 0xAD003032 -MKTC_ST(MKTC_ZLS_IDLE_END) - -#endif /* __SGX_UKERNEL_STATUS_CODES_H__ */ - -/****************************************************************************** - End of file (sgx_ukernel_status_codes.h) -******************************************************************************/ diff --git a/pvr-source/services4/include/sgxinfo.h b/pvr-source/services4/include/sgxinfo.h deleted file mode 100755 index 3f888cb..0000000 --- a/pvr-source/services4/include/sgxinfo.h +++ /dev/null @@ -1,489 +0,0 @@ -/*************************************************************************/ /*! -@Title sgx services structures/functions -@Copyright Copyright (c) Imagination Technologies Ltd. All Rights Reserved -@Description inline functions/structures shared across UM and KM services components -@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. -*/ /**************************************************************************/ -#if !defined (__SGXINFO_H__) -#define __SGXINFO_H__ - -#include "sgxscript.h" -#include "servicesint.h" -#include "services.h" -#if !defined (SUPPORT_SID_INTERFACE) -#include "sgxapi_km.h" -#endif -#include "sgx_mkif_km.h" - - -#define SGX_MAX_DEV_DATA 24 -#define SGX_MAX_INIT_MEM_HANDLES 18 - - -typedef struct _SGX_BRIDGE_INFO_FOR_SRVINIT -{ - IMG_DEV_PHYADDR sPDDevPAddr; - PVRSRV_HEAP_INFO asHeapInfo[PVRSRV_MAX_CLIENT_HEAPS]; -} SGX_BRIDGE_INFO_FOR_SRVINIT; - - -typedef enum _SGXMKIF_CMD_TYPE_ -{ - SGXMKIF_CMD_TA = 0, - SGXMKIF_CMD_TRANSFER = 1, - SGXMKIF_CMD_2D = 2, - SGXMKIF_CMD_POWER = 3, - SGXMKIF_CMD_CONTEXTSUSPEND = 4, - SGXMKIF_CMD_CLEANUP = 5, - SGXMKIF_CMD_GETMISCINFO = 6, - SGXMKIF_CMD_PROCESS_QUEUES = 7, - SGXMKIF_CMD_DATABREAKPOINT = 8, - SGXMKIF_CMD_SETHWPERFSTATUS = 9, - SGXMKIF_CMD_FLUSHPDCACHE = 10, - SGXMKIF_CMD_MAX = 11, - - SGXMKIF_CMD_FORCE_I32 = -1, - -} SGXMKIF_CMD_TYPE; - - -typedef struct _SGX_BRIDGE_INIT_INFO_ -{ -#if defined (SUPPORT_SID_INTERFACE) - IMG_SID hKernelCCBMemInfo; - IMG_SID hKernelCCBCtlMemInfo; - IMG_SID hKernelCCBEventKickerMemInfo; - IMG_SID hKernelSGXHostCtlMemInfo; - IMG_SID hKernelSGXTA3DCtlMemInfo; -#if defined(FIX_HW_BRN_31272) || defined(FIX_HW_BRN_31780) || defined(FIX_HW_BRN_33920) - IMG_SID hKernelSGXPTLAWriteBackMemInfo; -#endif - IMG_SID hKernelSGXMiscMemInfo; -#else - IMG_HANDLE hKernelCCBMemInfo; - IMG_HANDLE hKernelCCBCtlMemInfo; - IMG_HANDLE hKernelCCBEventKickerMemInfo; - IMG_HANDLE hKernelSGXHostCtlMemInfo; - IMG_HANDLE hKernelSGXTA3DCtlMemInfo; -#if defined(FIX_HW_BRN_31272) || defined(FIX_HW_BRN_31780) || defined(FIX_HW_BRN_33920) - IMG_HANDLE hKernelSGXPTLAWriteBackMemInfo; -#endif - IMG_HANDLE hKernelSGXMiscMemInfo; -#endif - - IMG_UINT32 aui32HostKickAddr[SGXMKIF_CMD_MAX]; - - SGX_INIT_SCRIPTS sScripts; - - IMG_UINT32 ui32ClientBuildOptions; - SGX_MISCINFO_STRUCT_SIZES sSGXStructSizes; - -#if defined(SGX_SUPPORT_HWPROFILING) -#if defined (SUPPORT_SID_INTERFACE) - IMG_SID hKernelHWProfilingMemInfo; -#else - IMG_HANDLE hKernelHWProfilingMemInfo; -#endif -#endif -#if defined(SUPPORT_SGX_HWPERF) -#if defined (SUPPORT_SID_INTERFACE) - IMG_SID hKernelHWPerfCBMemInfo; -#else - IMG_HANDLE hKernelHWPerfCBMemInfo; -#endif -#endif -#if defined (SUPPORT_SID_INTERFACE) - IMG_SID hKernelTASigBufferMemInfo; - IMG_SID hKernel3DSigBufferMemInfo; -#else - IMG_HANDLE hKernelTASigBufferMemInfo; - IMG_HANDLE hKernel3DSigBufferMemInfo; -#endif - -#if defined(FIX_HW_BRN_29702) -#if defined (SUPPORT_SID_INTERFACE) - IMG_SID hKernelCFIMemInfo; -#else - IMG_HANDLE hKernelCFIMemInfo; -#endif -#endif -#if defined(FIX_HW_BRN_29823) -#if defined (SUPPORT_SID_INTERFACE) - IMG_SID hKernelDummyTermStreamMemInfo; -#else - IMG_HANDLE hKernelDummyTermStreamMemInfo; -#endif -#endif - -#if defined(FIX_HW_BRN_31542) || defined(FIX_HW_BRN_36513) -#if defined (SUPPORT_SID_INTERFACE) - IMG_SID hKernelClearClipWAVDMStreamMemInfo; - IMG_SID hKernelClearClipWAIndexStreamMemInfo; - IMG_SID hKernelClearClipWAPDSMemInfo; - IMG_SID hKernelClearClipWAUSEMemInfo; - IMG_SID hKernelClearClipWAParamMemInfo; - IMG_SID hKernelClearClipWAPMPTMemInfo; - IMG_SID hKernelClearClipWATPCMemInfo; - IMG_SID hKernelClearClipWAPSGRgnHdrMemInfo; -#else - IMG_HANDLE hKernelClearClipWAVDMStreamMemInfo; - IMG_HANDLE hKernelClearClipWAIndexStreamMemInfo; - IMG_HANDLE hKernelClearClipWAPDSMemInfo; - IMG_HANDLE hKernelClearClipWAUSEMemInfo; - IMG_HANDLE hKernelClearClipWAParamMemInfo; - IMG_HANDLE hKernelClearClipWAPMPTMemInfo; - IMG_HANDLE hKernelClearClipWATPCMemInfo; - IMG_HANDLE hKernelClearClipWAPSGRgnHdrMemInfo; -#endif -#endif - -#if defined(SGX_FEATURE_VDM_CONTEXT_SWITCH) && \ - defined(FIX_HW_BRN_33657) && defined(SUPPORT_SECURE_33657_FIX) - IMG_HANDLE hKernelVDMStateUpdateBufferMemInfo; -#endif -#if defined(PVRSRV_USSE_EDM_STATUS_DEBUG) -#if defined (SUPPORT_SID_INTERFACE) - IMG_SID hKernelEDMStatusBufferMemInfo; -#else - IMG_HANDLE hKernelEDMStatusBufferMemInfo; -#endif -#endif - - IMG_UINT32 ui32EDMTaskReg0; - IMG_UINT32 ui32EDMTaskReg1; - - IMG_UINT32 ui32ClkGateCtl; - IMG_UINT32 ui32ClkGateCtl2; - IMG_UINT32 ui32ClkGateStatusReg; - IMG_UINT32 ui32ClkGateStatusMask; -#if defined(SGX_FEATURE_MP) - IMG_UINT32 ui32MasterClkGateStatusReg; - IMG_UINT32 ui32MasterClkGateStatusMask; - IMG_UINT32 ui32MasterClkGateStatus2Reg; - IMG_UINT32 ui32MasterClkGateStatus2Mask; -#endif /* SGX_FEATURE_MP */ - - IMG_UINT32 ui32CacheControl; - - IMG_UINT32 asInitDevData[SGX_MAX_DEV_DATA]; -#if defined (SUPPORT_SID_INTERFACE) - IMG_SID asInitMemHandles[SGX_MAX_INIT_MEM_HANDLES]; -#else - IMG_HANDLE asInitMemHandles[SGX_MAX_INIT_MEM_HANDLES]; -#endif - -} SGX_BRIDGE_INIT_INFO; - - -typedef struct _SGX_DEVICE_SYNC_LIST_ -{ - PSGXMKIF_HWDEVICE_SYNC_LIST psHWDeviceSyncList; - -#if defined (SUPPORT_SID_INTERFACE) - IMG_SID hKernelHWSyncListMemInfo; -#else - IMG_HANDLE hKernelHWSyncListMemInfo; -#endif - PVRSRV_CLIENT_MEM_INFO *psHWDeviceSyncListClientMemInfo; - PVRSRV_CLIENT_MEM_INFO *psAccessResourceClientMemInfo; - - volatile IMG_UINT32 *pui32Lock; - - struct _SGX_DEVICE_SYNC_LIST_ *psNext; - - /* Must be the last variable in the structure */ - IMG_UINT32 ui32NumSyncObjects; -#if defined (SUPPORT_SID_INTERFACE) - IMG_SID ahSyncHandles[1]; -#else - IMG_HANDLE ahSyncHandles[1]; -#endif -} SGX_DEVICE_SYNC_LIST, *PSGX_DEVICE_SYNC_LIST; - - -typedef struct _SGX_INTERNEL_STATUS_UPDATE_ -{ - CTL_STATUS sCtlStatus; -#if defined (SUPPORT_SID_INTERFACE) - IMG_SID hKernelMemInfo; -#else - IMG_HANDLE hKernelMemInfo; -#endif -} SGX_INTERNEL_STATUS_UPDATE; - - -typedef struct _SGX_CCB_KICK_ -{ - SGXMKIF_COMMAND sCommand; -#if defined (SUPPORT_SID_INTERFACE) - IMG_SID hCCBKernelMemInfo; -#else - IMG_HANDLE hCCBKernelMemInfo; -#endif - - IMG_UINT32 ui32NumDstSyncObjects; -#if defined (SUPPORT_SID_INTERFACE) - IMG_SID hKernelHWSyncListMemInfo; -#else - IMG_HANDLE hKernelHWSyncListMemInfo; -#endif - - /* DST syncs */ -#if defined (SUPPORT_SID_INTERFACE) - IMG_SID *pahDstSyncHandles; -#else - IMG_HANDLE *pahDstSyncHandles; -#endif - - IMG_UINT32 ui32NumTAStatusVals; - IMG_UINT32 ui32Num3DStatusVals; - -#if defined(SUPPORT_SGX_NEW_STATUS_VALS) - SGX_INTERNEL_STATUS_UPDATE asTAStatusUpdate[SGX_MAX_TA_STATUS_VALS]; - SGX_INTERNEL_STATUS_UPDATE as3DStatusUpdate[SGX_MAX_3D_STATUS_VALS]; -#else -#if defined (SUPPORT_SID_INTERFACE) - IMG_SID ahTAStatusSyncInfo[SGX_MAX_TA_STATUS_VALS]; - IMG_SID ah3DStatusSyncInfo[SGX_MAX_3D_STATUS_VALS]; -#else - IMG_HANDLE ahTAStatusSyncInfo[SGX_MAX_TA_STATUS_VALS]; - IMG_HANDLE ah3DStatusSyncInfo[SGX_MAX_3D_STATUS_VALS]; -#endif -#endif - - IMG_BOOL bFirstKickOrResume; -#if defined(NO_HARDWARE) || defined(PDUMP) - IMG_BOOL bTerminateOrAbort; -#endif - IMG_BOOL bLastInScene; - - /* CCB offset of data structure associated with this kick */ - IMG_UINT32 ui32CCBOffset; - -#if defined(SUPPORT_SGX_GENERALISED_SYNCOBJECTS) - /* SRC and DST syncs */ - IMG_UINT32 ui32NumTASrcSyncs; -#if defined (SUPPORT_SID_INTERFACE) - IMG_SID ahTASrcKernelSyncInfo[SGX_MAX_TA_SRC_SYNCS]; -#else - IMG_HANDLE ahTASrcKernelSyncInfo[SGX_MAX_TA_SRC_SYNCS]; -#endif - IMG_UINT32 ui32NumTADstSyncs; -#if defined (SUPPORT_SID_INTERFACE) - IMG_SID ahTADstKernelSyncInfo[SGX_MAX_TA_DST_SYNCS]; -#else - IMG_HANDLE ahTADstKernelSyncInfo[SGX_MAX_TA_DST_SYNCS]; -#endif - IMG_UINT32 ui32Num3DSrcSyncs; -#if defined (SUPPORT_SID_INTERFACE) - IMG_SID ah3DSrcKernelSyncInfo[SGX_MAX_3D_SRC_SYNCS]; -#else - IMG_HANDLE ah3DSrcKernelSyncInfo[SGX_MAX_3D_SRC_SYNCS]; -#endif -#else - /* SRC syncs */ - IMG_UINT32 ui32NumSrcSyncs; -#if defined (SUPPORT_SID_INTERFACE) - IMG_SID ahSrcKernelSyncInfo[SGX_MAX_SRC_SYNCS_TA]; -#else - IMG_HANDLE ahSrcKernelSyncInfo[SGX_MAX_SRC_SYNCS_TA]; -#endif -#endif - - /* TA/3D dependency data */ - IMG_BOOL bTADependency; -#if defined (SUPPORT_SID_INTERFACE) - IMG_SID hTA3DSyncInfo; - - IMG_SID hTASyncInfo; - IMG_SID h3DSyncInfo; -#else - IMG_HANDLE hTA3DSyncInfo; - - IMG_HANDLE hTASyncInfo; - IMG_HANDLE h3DSyncInfo; -#endif -#if defined(PDUMP) - IMG_UINT32 ui32CCBDumpWOff; -#endif -#if defined(NO_HARDWARE) - IMG_UINT32 ui32WriteOpsPendingVal; -#endif - IMG_HANDLE hDevMemContext; -} SGX_CCB_KICK; - - -/*! - ****************************************************************************** - * shared client/kernel device information structure for SGX - *****************************************************************************/ -#define SGX_KERNEL_USE_CODE_BASE_INDEX 15 - - -/*! - ****************************************************************************** - * Client device information structure for SGX - *****************************************************************************/ -typedef struct _SGX_CLIENT_INFO_ -{ - IMG_UINT32 ui32ProcessID; /*!< ID of process controlling SGX device */ - IMG_VOID *pvProcess; /*!< pointer to OS specific 'process' structure */ - PVRSRV_MISC_INFO sMiscInfo; /*!< Misc. Information, inc. SOC specifics */ - - IMG_UINT32 asDevData[SGX_MAX_DEV_DATA]; - -} SGX_CLIENT_INFO; - -/*! - ****************************************************************************** - * Internal device information structure for SGX - *****************************************************************************/ -typedef struct _SGX_INTERNAL_DEVINFO_ -{ - IMG_UINT32 ui32Flags; -#if defined (SUPPORT_SID_INTERFACE) - IMG_SID hHostCtlKernelMemInfoHandle; -#else - IMG_HANDLE hHostCtlKernelMemInfoHandle; -#endif - IMG_BOOL bForcePTOff; -} SGX_INTERNAL_DEVINFO; - - -typedef struct _SGX_INTERNAL_DEVINFO_KM_ -{ - IMG_UINT32 ui32Flags; - IMG_HANDLE hHostCtlKernelMemInfoHandle; - IMG_BOOL bForcePTOff; -} SGX_INTERNAL_DEVINFO_KM; - - -#if defined(TRANSFER_QUEUE) -typedef struct _PVRSRV_TRANSFER_SGX_KICK_ -{ -#if defined (SUPPORT_SID_INTERFACE) - IMG_SID hCCBMemInfo; -#else - IMG_HANDLE hCCBMemInfo; -#endif - IMG_UINT32 ui32SharedCmdCCBOffset; - - IMG_DEV_VIRTADDR sHWTransferContextDevVAddr; - -#if defined (SUPPORT_SID_INTERFACE) - IMG_SID hTASyncInfo; - IMG_SID h3DSyncInfo; -#else - IMG_HANDLE hTASyncInfo; - IMG_HANDLE h3DSyncInfo; -#endif - - IMG_UINT32 ui32NumSrcSync; -#if defined (SUPPORT_SID_INTERFACE) - IMG_SID ahSrcSyncInfo[SGX_MAX_TRANSFER_SYNC_OPS]; -#else - IMG_HANDLE ahSrcSyncInfo[SGX_MAX_TRANSFER_SYNC_OPS]; -#endif - - IMG_UINT32 ui32NumDstSync; -#if defined (SUPPORT_SID_INTERFACE) - IMG_SID ahDstSyncInfo[SGX_MAX_TRANSFER_SYNC_OPS]; -#else - IMG_HANDLE ahDstSyncInfo[SGX_MAX_TRANSFER_SYNC_OPS]; -#endif - - IMG_UINT32 ui32Flags; - - IMG_UINT32 ui32PDumpFlags; -#if defined(PDUMP) - IMG_UINT32 ui32CCBDumpWOff; -#endif - IMG_HANDLE hDevMemContext; -} PVRSRV_TRANSFER_SGX_KICK, *PPVRSRV_TRANSFER_SGX_KICK; - -#if defined(SGX_FEATURE_2D_HARDWARE) -typedef struct _PVRSRV_2D_SGX_KICK_ -{ -#if defined (SUPPORT_SID_INTERFACE) - IMG_SID hCCBMemInfo; -#else - IMG_HANDLE hCCBMemInfo; -#endif - IMG_UINT32 ui32SharedCmdCCBOffset; - - IMG_DEV_VIRTADDR sHW2DContextDevVAddr; - - IMG_UINT32 ui32NumSrcSync; -#if defined (SUPPORT_SID_INTERFACE) - IMG_SID ahSrcSyncInfo[SGX_MAX_2D_SRC_SYNC_OPS]; - - /* need to be able to check reads and writes on dest, and update writes */ - IMG_SID hDstSyncInfo; - - /* need to be able to check reads and writes on TA ops, and update writes */ - IMG_SID hTASyncInfo; - - /* need to be able to check reads and writes on 2D ops, and update writes */ - IMG_SID h3DSyncInfo; -#else - IMG_HANDLE ahSrcSyncInfo[SGX_MAX_2D_SRC_SYNC_OPS]; - - /* need to be able to check reads and writes on dest, and update writes */ - IMG_HANDLE hDstSyncInfo; - - /* need to be able to check reads and writes on TA ops, and update writes */ - IMG_HANDLE hTASyncInfo; - - /* need to be able to check reads and writes on 2D ops, and update writes */ - IMG_HANDLE h3DSyncInfo; -#endif - - IMG_UINT32 ui32PDumpFlags; -#if defined(PDUMP) - IMG_UINT32 ui32CCBDumpWOff; -#endif - IMG_HANDLE hDevMemContext; -} PVRSRV_2D_SGX_KICK, *PPVRSRV_2D_SGX_KICK; -#endif /* defined(SGX_FEATURE_2D_HARDWARE) */ -#endif /* defined(TRANSFER_QUEUE) */ - - -#endif /* __SGXINFO_H__ */ -/****************************************************************************** - End of file (sgxinfo.h) -******************************************************************************/ |