/********************************************************************** * * Copyright (C) Imagination Technologies Ltd. All rights reserved. * * This program is free software; you can redistribute it and/or modify it * under the terms and conditions of the GNU General Public License, * version 2, as published by the Free Software Foundation. * * This program is distributed in the hope it will be useful but, except * as otherwise stated in writing, without any warranty; without even the * implied warranty of merchantability or fitness for a particular purpose. * See the GNU General Public License for more details. * * You should have received a copy of the GNU General Public License along with * this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA. * * The full GNU General Public License is included in this distribution in * the file called "COPYING". * * Contact Information: * Imagination Technologies Ltd. * Home Park Estate, Kings Langley, Herts, WD4 8LZ, UK * ******************************************************************************/ #if !defined(__SGX_BRIDGE_KM_H__) #define __SGX_BRIDGE_KM_H__ #include "sgxapi_km.h" #include "sgxinfo.h" #include "sgxinfokm.h" #include "sgx_bridge.h" #include "pvr_bridge.h" #include "perproc.h" #if defined (__cplusplus) extern "C" { #endif IMG_IMPORT #if defined (SUPPORT_SID_INTERFACE) PVRSRV_ERROR SGXSubmitTransferKM(IMG_HANDLE hDevHandle, PVRSRV_TRANSFER_SGX_KICK_KM *psKick); #else PVRSRV_ERROR SGXSubmitTransferKM(IMG_HANDLE hDevHandle, PVRSRV_TRANSFER_SGX_KICK *psKick); #endif #if defined(SGX_FEATURE_2D_HARDWARE) IMG_IMPORT #if defined (SUPPORT_SID_INTERFACE) PVRSRV_ERROR SGXSubmit2DKM(IMG_HANDLE hDevHandle, PVRSRV_2D_SGX_KICK_KM *psKick); #else PVRSRV_ERROR SGXSubmit2DKM(IMG_HANDLE hDevHandle, PVRSRV_2D_SGX_KICK *psKick); #endif #endif IMG_IMPORT PVRSRV_ERROR SGXDoKickKM(IMG_HANDLE hDevHandle, #if defined (SUPPORT_SID_INTERFACE) SGX_CCB_KICK_KM *psCCBKick); #else SGX_CCB_KICK *psCCBKick); #endif IMG_IMPORT PVRSRV_ERROR SGXGetPhysPageAddrKM(IMG_HANDLE hDevMemHeap, IMG_DEV_VIRTADDR sDevVAddr, IMG_DEV_PHYADDR *pDevPAddr, IMG_CPU_PHYADDR *pCpuPAddr); IMG_IMPORT PVRSRV_ERROR IMG_CALLCONV SGXGetMMUPDAddrKM(IMG_HANDLE hDevCookie, IMG_HANDLE hDevMemContext, IMG_DEV_PHYADDR *psPDDevPAddr); IMG_IMPORT PVRSRV_ERROR SGXGetClientInfoKM(IMG_HANDLE hDevCookie, SGX_CLIENT_INFO* psClientInfo); IMG_IMPORT PVRSRV_ERROR SGXGetMiscInfoKM(PVRSRV_SGXDEV_INFO *psDevInfo, SGX_MISC_INFO *psMiscInfo, PVRSRV_DEVICE_NODE *psDeviceNode, IMG_HANDLE hDevMemContext); IMG_IMPORT PVRSRV_ERROR SGXReadHWPerfCBKM(IMG_HANDLE hDevHandle, IMG_UINT32 ui32ArraySize, PVRSRV_SGX_HWPERF_CB_ENTRY *psHWPerfCBData, IMG_UINT32 *pui32DataCount, IMG_UINT32 *pui32ClockSpeed, IMG_UINT32 *pui32HostTimeStamp); IMG_IMPORT PVRSRV_ERROR SGX2DQueryBlitsCompleteKM(PVRSRV_SGXDEV_INFO *psDevInfo, PVRSRV_KERNEL_SYNC_INFO *psSyncInfo, IMG_BOOL bWaitForComplete); IMG_IMPORT PVRSRV_ERROR SGXGetInfoForSrvinitKM(IMG_HANDLE hDevHandle, #if defined (SUPPORT_SID_INTERFACE) PVRSRV_HEAP_INFO_KM *pasHeapInfo, IMG_DEV_PHYADDR *psPDDevPAddr); #else SGX_BRIDGE_INFO_FOR_SRVINIT *psInitInfo); #endif IMG_IMPORT PVRSRV_ERROR DevInitSGXPart2KM(PVRSRV_PER_PROCESS_DATA *psPerProc, IMG_HANDLE hDevHandle, #if defined (SUPPORT_SID_INTERFACE) SGX_BRIDGE_INIT_INFO_KM *psInitInfo); #else SGX_BRIDGE_INIT_INFO *psInitInfo); #endif IMG_IMPORT PVRSRV_ERROR SGXFindSharedPBDescKM(PVRSRV_PER_PROCESS_DATA *psPerProc, IMG_HANDLE hDevCookie, IMG_BOOL bLockOnFailure, IMG_UINT32 ui32TotalPBSize, IMG_HANDLE *phSharedPBDesc, PVRSRV_KERNEL_MEM_INFO **ppsSharedPBDescKernelMemInfo, PVRSRV_KERNEL_MEM_INFO **ppsHWPBDescKernelMemInfo, PVRSRV_KERNEL_MEM_INFO **ppsBlockKernelMemInfo, PVRSRV_KERNEL_MEM_INFO **ppsHWBlockKernelMemInfo, PVRSRV_KERNEL_MEM_INFO ***pppsSharedPBDescSubKernelMemInfos, IMG_UINT32 *ui32SharedPBDescSubKernelMemInfosCount); IMG_IMPORT PVRSRV_ERROR SGXUnrefSharedPBDescKM(IMG_HANDLE hSharedPBDesc); IMG_IMPORT PVRSRV_ERROR SGXAddSharedPBDescKM(PVRSRV_PER_PROCESS_DATA *psPerProc, IMG_HANDLE hDevCookie, PVRSRV_KERNEL_MEM_INFO *psSharedPBDescKernelMemInfo, PVRSRV_KERNEL_MEM_INFO *psHWPBDescKernelMemInfo, PVRSRV_KERNEL_MEM_INFO *psBlockKernelMemInfo, PVRSRV_KERNEL_MEM_INFO *psHWBlockKernelMemInfo, IMG_UINT32 ui32TotalPBSize, IMG_HANDLE *phSharedPBDesc, PVRSRV_KERNEL_MEM_INFO **psSharedPBDescSubKernelMemInfos, IMG_UINT32 ui32SharedPBDescSubKernelMemInfosCount, IMG_DEV_VIRTADDR sHWPBDescDevVAddr); IMG_IMPORT PVRSRV_ERROR SGXGetInternalDevInfoKM(IMG_HANDLE hDevCookie, #if defined (SUPPORT_SID_INTERFACE) SGX_INTERNAL_DEVINFO_KM *psSGXInternalDevInfo); #else SGX_INTERNAL_DEVINFO *psSGXInternalDevInfo); #endif #if defined (__cplusplus) } #endif #endif