diff options
author | Imagination Technologies Ltd <gpl-support@imgtec.com> | 2011-06-14 16:16:32 +0100 |
---|---|---|
committer | Rebecca Schultz Zavin <rebecca@android.com> | 2011-07-11 17:00:30 -0700 |
commit | ec45c8c302de71829ce72fea64f0da2b3c87d5e7 (patch) | |
tree | 3040b64dd30f23b89cca5f54320e131f8db77a89 | |
parent | bddc977e5146498c7d8c7c8acf130b90627ffd85 (diff) | |
download | kernel_samsung_espresso10-ec45c8c302de71829ce72fea64f0da2b3c87d5e7.tar.gz kernel_samsung_espresso10-ec45c8c302de71829ce72fea64f0da2b3c87d5e7.tar.bz2 kernel_samsung_espresso10-ec45c8c302de71829ce72fea64f0da2b3c87d5e7.zip |
gpu: pvr: Update to DDK 1.8.18.571 Signed-off-by: Imagination Technologies Ltd <gpl-support@imgtec.com> Signed-off-by: Imagination Technologies Ltd <gpl-support@imgtec.com>
-rw-r--r-- | drivers/gpu/pvr/bridged_pvr_bridge.c | 6614 | ||||
-rw-r--r-- | drivers/gpu/pvr/deviceclass.c | 105 | ||||
-rw-r--r-- | drivers/gpu/pvr/kerneldisplay.h | 17 | ||||
-rw-r--r-- | drivers/gpu/pvr/mmap.c | 64 | ||||
-rw-r--r-- | drivers/gpu/pvr/omaplfb/omaplfb.h | 8 | ||||
-rw-r--r-- | drivers/gpu/pvr/omaplfb/omaplfb_displayclass.c | 8 | ||||
-rw-r--r-- | drivers/gpu/pvr/omaplfb/omaplfb_linux.c | 27 | ||||
-rw-r--r-- | drivers/gpu/pvr/osfunc.c | 11 | ||||
-rw-r--r-- | drivers/gpu/pvr/pvr_bridge.h | 20 | ||||
-rw-r--r-- | drivers/gpu/pvr/pvr_bridge_km.h | 15 | ||||
-rw-r--r-- | drivers/gpu/pvr/pvr_debug.c | 28 | ||||
-rw-r--r-- | drivers/gpu/pvr/pvrversion.h | 4 | ||||
-rw-r--r-- | drivers/gpu/pvr/services.h | 13 | ||||
-rw-r--r-- | drivers/gpu/pvr/sgx545defs.h | 1180 |
14 files changed, 4839 insertions, 3275 deletions
diff --git a/drivers/gpu/pvr/bridged_pvr_bridge.c b/drivers/gpu/pvr/bridged_pvr_bridge.c index ee0fb12fb2f..169514d7109 100644 --- a/drivers/gpu/pvr/bridged_pvr_bridge.c +++ b/drivers/gpu/pvr/bridged_pvr_bridge.c @@ -68,7 +68,7 @@ #endif -#include "srvkm.h" +#include "srvkm.h" PVRSRV_BRIDGE_DISPATCH_TABLE_ENTRY g_BridgeDispatchTable[BRIDGE_DISPATCH_TABLE_ENTRY_COUNT]; @@ -87,1440 +87,1440 @@ static IMG_BOOL *pbSharedDeviceMemHeap = (IMG_BOOL*)IMG_NULL; #if defined(DEBUG_BRIDGE_KM) PVRSRV_ERROR CopyFromUserWrapper(PVRSRV_PER_PROCESS_DATA *pProcData, - IMG_UINT32 ui32BridgeID, - IMG_VOID *pvDest, - IMG_VOID *pvSrc, - IMG_UINT32 ui32Size) + IMG_UINT32 ui32BridgeID, + IMG_VOID *pvDest, + IMG_VOID *pvSrc, + IMG_UINT32 ui32Size) { - g_BridgeDispatchTable[ui32BridgeID].ui32CopyFromUserTotalBytes+=ui32Size; - g_BridgeGlobalStats.ui32TotalCopyFromUserBytes+=ui32Size; - return OSCopyFromUser(pProcData, pvDest, pvSrc, ui32Size); + g_BridgeDispatchTable[ui32BridgeID].ui32CopyFromUserTotalBytes+=ui32Size; + g_BridgeGlobalStats.ui32TotalCopyFromUserBytes+=ui32Size; + return OSCopyFromUser(pProcData, pvDest, pvSrc, ui32Size); } PVRSRV_ERROR CopyToUserWrapper(PVRSRV_PER_PROCESS_DATA *pProcData, - IMG_UINT32 ui32BridgeID, - IMG_VOID *pvDest, - IMG_VOID *pvSrc, - IMG_UINT32 ui32Size) + IMG_UINT32 ui32BridgeID, + IMG_VOID *pvDest, + IMG_VOID *pvSrc, + IMG_UINT32 ui32Size) { - g_BridgeDispatchTable[ui32BridgeID].ui32CopyToUserTotalBytes+=ui32Size; - g_BridgeGlobalStats.ui32TotalCopyToUserBytes+=ui32Size; - return OSCopyToUser(pProcData, pvDest, pvSrc, ui32Size); + g_BridgeDispatchTable[ui32BridgeID].ui32CopyToUserTotalBytes+=ui32Size; + g_BridgeGlobalStats.ui32TotalCopyToUserBytes+=ui32Size; + return OSCopyToUser(pProcData, pvDest, pvSrc, ui32Size); } #endif static IMG_INT PVRSRVEnumerateDevicesBW(IMG_UINT32 ui32BridgeID, - IMG_VOID *psBridgeIn, - PVRSRV_BRIDGE_OUT_ENUMDEVICE *psEnumDeviceOUT, - PVRSRV_PER_PROCESS_DATA *psPerProc) + IMG_VOID *psBridgeIn, + PVRSRV_BRIDGE_OUT_ENUMDEVICE *psEnumDeviceOUT, + PVRSRV_PER_PROCESS_DATA *psPerProc) { - PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_ENUM_DEVICES); + PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_ENUM_DEVICES); - PVR_UNREFERENCED_PARAMETER(psPerProc); - PVR_UNREFERENCED_PARAMETER(psBridgeIn); + PVR_UNREFERENCED_PARAMETER(psPerProc); + PVR_UNREFERENCED_PARAMETER(psBridgeIn); - psEnumDeviceOUT->eError = - PVRSRVEnumerateDevicesKM(&psEnumDeviceOUT->ui32NumDevices, - psEnumDeviceOUT->asDeviceIdentifier); + psEnumDeviceOUT->eError = + PVRSRVEnumerateDevicesKM(&psEnumDeviceOUT->ui32NumDevices, + psEnumDeviceOUT->asDeviceIdentifier); - return 0; + return 0; } static IMG_INT PVRSRVAcquireDeviceDataBW(IMG_UINT32 ui32BridgeID, - PVRSRV_BRIDGE_IN_ACQUIRE_DEVICEINFO *psAcquireDevInfoIN, - PVRSRV_BRIDGE_OUT_ACQUIRE_DEVICEINFO *psAcquireDevInfoOUT, - PVRSRV_PER_PROCESS_DATA *psPerProc) + PVRSRV_BRIDGE_IN_ACQUIRE_DEVICEINFO *psAcquireDevInfoIN, + PVRSRV_BRIDGE_OUT_ACQUIRE_DEVICEINFO *psAcquireDevInfoOUT, + PVRSRV_PER_PROCESS_DATA *psPerProc) { - IMG_HANDLE hDevCookieInt; + IMG_HANDLE hDevCookieInt; - PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_ACQUIRE_DEVICEINFO); + PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_ACQUIRE_DEVICEINFO); - psAcquireDevInfoOUT->eError = - PVRSRVAcquireDeviceDataKM(psAcquireDevInfoIN->uiDevIndex, - psAcquireDevInfoIN->eDeviceType, - &hDevCookieInt); - if(psAcquireDevInfoOUT->eError != PVRSRV_OK) - { - return 0; - } + psAcquireDevInfoOUT->eError = + PVRSRVAcquireDeviceDataKM(psAcquireDevInfoIN->uiDevIndex, + psAcquireDevInfoIN->eDeviceType, + &hDevCookieInt); + if(psAcquireDevInfoOUT->eError != PVRSRV_OK) + { + return 0; + } - - psAcquireDevInfoOUT->eError = - PVRSRVAllocHandle(psPerProc->psHandleBase, - &psAcquireDevInfoOUT->hDevCookie, - hDevCookieInt, - PVRSRV_HANDLE_TYPE_DEV_NODE, - PVRSRV_HANDLE_ALLOC_FLAG_SHARED); + + psAcquireDevInfoOUT->eError = + PVRSRVAllocHandle(psPerProc->psHandleBase, + &psAcquireDevInfoOUT->hDevCookie, + hDevCookieInt, + PVRSRV_HANDLE_TYPE_DEV_NODE, + PVRSRV_HANDLE_ALLOC_FLAG_SHARED); - return 0; + return 0; } static IMG_INT PVRSRVCreateDeviceMemContextBW(IMG_UINT32 ui32BridgeID, - PVRSRV_BRIDGE_IN_CREATE_DEVMEMCONTEXT *psCreateDevMemContextIN, - PVRSRV_BRIDGE_OUT_CREATE_DEVMEMCONTEXT *psCreateDevMemContextOUT, - PVRSRV_PER_PROCESS_DATA *psPerProc) + PVRSRV_BRIDGE_IN_CREATE_DEVMEMCONTEXT *psCreateDevMemContextIN, + PVRSRV_BRIDGE_OUT_CREATE_DEVMEMCONTEXT *psCreateDevMemContextOUT, + PVRSRV_PER_PROCESS_DATA *psPerProc) { - IMG_HANDLE hDevCookieInt; - IMG_HANDLE hDevMemContextInt; - IMG_UINT32 i; - IMG_BOOL bCreated; + IMG_HANDLE hDevCookieInt; + IMG_HANDLE hDevMemContextInt; + IMG_UINT32 i; + IMG_BOOL bCreated; #if defined (SUPPORT_SID_INTERFACE) - PVRSRV_HEAP_INFO_KM asHeapInfo[PVRSRV_MAX_CLIENT_HEAPS]; + PVRSRV_HEAP_INFO_KM asHeapInfo[PVRSRV_MAX_CLIENT_HEAPS]; #endif - PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_CREATE_DEVMEMCONTEXT); + PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_CREATE_DEVMEMCONTEXT); - - NEW_HANDLE_BATCH_OR_ERROR(psCreateDevMemContextOUT->eError, psPerProc, PVRSRV_MAX_CLIENT_HEAPS + 1) + + NEW_HANDLE_BATCH_OR_ERROR(psCreateDevMemContextOUT->eError, psPerProc, PVRSRV_MAX_CLIENT_HEAPS + 1) - psCreateDevMemContextOUT->eError = - PVRSRVLookupHandle(psPerProc->psHandleBase, &hDevCookieInt, - psCreateDevMemContextIN->hDevCookie, - PVRSRV_HANDLE_TYPE_DEV_NODE); + psCreateDevMemContextOUT->eError = + PVRSRVLookupHandle(psPerProc->psHandleBase, &hDevCookieInt, + psCreateDevMemContextIN->hDevCookie, + PVRSRV_HANDLE_TYPE_DEV_NODE); - if(psCreateDevMemContextOUT->eError != PVRSRV_OK) - { - return 0; - } + if(psCreateDevMemContextOUT->eError != PVRSRV_OK) + { + return 0; + } - psCreateDevMemContextOUT->eError = - PVRSRVCreateDeviceMemContextKM(hDevCookieInt, - psPerProc, - &hDevMemContextInt, - &psCreateDevMemContextOUT->ui32ClientHeapCount, + psCreateDevMemContextOUT->eError = + PVRSRVCreateDeviceMemContextKM(hDevCookieInt, + psPerProc, + &hDevMemContextInt, + &psCreateDevMemContextOUT->ui32ClientHeapCount, #if defined (SUPPORT_SID_INTERFACE) - &asHeapInfo[0], + &asHeapInfo[0], #else - &psCreateDevMemContextOUT->sHeapInfo[0], + &psCreateDevMemContextOUT->sHeapInfo[0], #endif - &bCreated, - pbSharedDeviceMemHeap); + &bCreated, + pbSharedDeviceMemHeap); - if(psCreateDevMemContextOUT->eError != PVRSRV_OK) - { - return 0; - } + if(psCreateDevMemContextOUT->eError != PVRSRV_OK) + { + return 0; + } - - if(bCreated) - { - PVRSRVAllocHandleNR(psPerProc->psHandleBase, - &psCreateDevMemContextOUT->hDevMemContext, - hDevMemContextInt, - PVRSRV_HANDLE_TYPE_DEV_MEM_CONTEXT, - PVRSRV_HANDLE_ALLOC_FLAG_NONE); - } - else - { - psCreateDevMemContextOUT->eError = - PVRSRVFindHandle(psPerProc->psHandleBase, - &psCreateDevMemContextOUT->hDevMemContext, - hDevMemContextInt, - PVRSRV_HANDLE_TYPE_DEV_MEM_CONTEXT); - if(psCreateDevMemContextOUT->eError != PVRSRV_OK) - { - return 0; - } - } + + if(bCreated) + { + PVRSRVAllocHandleNR(psPerProc->psHandleBase, + &psCreateDevMemContextOUT->hDevMemContext, + hDevMemContextInt, + PVRSRV_HANDLE_TYPE_DEV_MEM_CONTEXT, + PVRSRV_HANDLE_ALLOC_FLAG_NONE); + } + else + { + psCreateDevMemContextOUT->eError = + PVRSRVFindHandle(psPerProc->psHandleBase, + &psCreateDevMemContextOUT->hDevMemContext, + hDevMemContextInt, + PVRSRV_HANDLE_TYPE_DEV_MEM_CONTEXT); + if(psCreateDevMemContextOUT->eError != PVRSRV_OK) + { + return 0; + } + } - for(i = 0; i < psCreateDevMemContextOUT->ui32ClientHeapCount; i++) - { + for(i = 0; i < psCreateDevMemContextOUT->ui32ClientHeapCount; i++) + { #if defined (SUPPORT_SID_INTERFACE) - IMG_SID hDevMemHeapExt; + IMG_SID hDevMemHeapExt; #else - IMG_HANDLE hDevMemHeapExt; + IMG_HANDLE hDevMemHeapExt; #endif #if defined(PVR_SECURE_HANDLES) || defined (SUPPORT_SID_INTERFACE) - if(abSharedDeviceMemHeap[i]) + if(abSharedDeviceMemHeap[i]) #endif - { - + { + #if defined (SUPPORT_SID_INTERFACE) - PVRSRVAllocHandleNR(psPerProc->psHandleBase, - &hDevMemHeapExt, - asHeapInfo[i].hDevMemHeap, - PVRSRV_HANDLE_TYPE_DEV_MEM_HEAP, - PVRSRV_HANDLE_ALLOC_FLAG_SHARED); + PVRSRVAllocHandleNR(psPerProc->psHandleBase, + &hDevMemHeapExt, + asHeapInfo[i].hDevMemHeap, + PVRSRV_HANDLE_TYPE_DEV_MEM_HEAP, + PVRSRV_HANDLE_ALLOC_FLAG_SHARED); #else - PVRSRVAllocHandleNR(psPerProc->psHandleBase, &hDevMemHeapExt, - psCreateDevMemContextOUT->sHeapInfo[i].hDevMemHeap, - PVRSRV_HANDLE_TYPE_DEV_MEM_HEAP, - PVRSRV_HANDLE_ALLOC_FLAG_SHARED); + PVRSRVAllocHandleNR(psPerProc->psHandleBase, &hDevMemHeapExt, + psCreateDevMemContextOUT->sHeapInfo[i].hDevMemHeap, + PVRSRV_HANDLE_TYPE_DEV_MEM_HEAP, + PVRSRV_HANDLE_ALLOC_FLAG_SHARED); #endif - } + } #if defined(PVR_SECURE_HANDLES) || defined (SUPPORT_SID_INTERFACE) - else - { - - if(bCreated) - { + else + { + + if(bCreated) + { #if defined (SUPPORT_SID_INTERFACE) - PVRSRVAllocSubHandleNR(psPerProc->psHandleBase, - &hDevMemHeapExt, - asHeapInfo[i].hDevMemHeap, - PVRSRV_HANDLE_TYPE_DEV_MEM_HEAP, - PVRSRV_HANDLE_ALLOC_FLAG_NONE, - psCreateDevMemContextOUT->hDevMemContext); + PVRSRVAllocSubHandleNR(psPerProc->psHandleBase, + &hDevMemHeapExt, + asHeapInfo[i].hDevMemHeap, + PVRSRV_HANDLE_TYPE_DEV_MEM_HEAP, + PVRSRV_HANDLE_ALLOC_FLAG_NONE, + psCreateDevMemContextOUT->hDevMemContext); #else - PVRSRVAllocSubHandleNR(psPerProc->psHandleBase, &hDevMemHeapExt, - psCreateDevMemContextOUT->sHeapInfo[i].hDevMemHeap, - PVRSRV_HANDLE_TYPE_DEV_MEM_HEAP, - PVRSRV_HANDLE_ALLOC_FLAG_NONE, - psCreateDevMemContextOUT->hDevMemContext); + PVRSRVAllocSubHandleNR(psPerProc->psHandleBase, &hDevMemHeapExt, + psCreateDevMemContextOUT->sHeapInfo[i].hDevMemHeap, + PVRSRV_HANDLE_TYPE_DEV_MEM_HEAP, + PVRSRV_HANDLE_ALLOC_FLAG_NONE, + psCreateDevMemContextOUT->hDevMemContext); #endif - } - else - { - psCreateDevMemContextOUT->eError = - PVRSRVFindHandle(psPerProc->psHandleBase, - &hDevMemHeapExt, + } + else + { + psCreateDevMemContextOUT->eError = + PVRSRVFindHandle(psPerProc->psHandleBase, + &hDevMemHeapExt, #if defined (SUPPORT_SID_INTERFACE) - asHeapInfo[i].hDevMemHeap, + asHeapInfo[i].hDevMemHeap, #else - psCreateDevMemContextOUT->sHeapInfo[i].hDevMemHeap, + psCreateDevMemContextOUT->sHeapInfo[i].hDevMemHeap, #endif - PVRSRV_HANDLE_TYPE_DEV_MEM_HEAP); - if(psCreateDevMemContextOUT->eError != PVRSRV_OK) - { - return 0; - } - } - } + PVRSRV_HANDLE_TYPE_DEV_MEM_HEAP); + if(psCreateDevMemContextOUT->eError != PVRSRV_OK) + { + return 0; + } + } + } #endif - psCreateDevMemContextOUT->sHeapInfo[i].hDevMemHeap = hDevMemHeapExt; + psCreateDevMemContextOUT->sHeapInfo[i].hDevMemHeap = hDevMemHeapExt; #if defined (SUPPORT_SID_INTERFACE) - psCreateDevMemContextOUT->sHeapInfo[i].ui32HeapID = asHeapInfo[i].ui32HeapID; - psCreateDevMemContextOUT->sHeapInfo[i].sDevVAddrBase = asHeapInfo[i].sDevVAddrBase; - psCreateDevMemContextOUT->sHeapInfo[i].ui32HeapByteSize = asHeapInfo[i].ui32HeapByteSize; - psCreateDevMemContextOUT->sHeapInfo[i].ui32Attribs = asHeapInfo[i].ui32Attribs; - psCreateDevMemContextOUT->sHeapInfo[i].ui32XTileStride = asHeapInfo[i].ui32XTileStride; + psCreateDevMemContextOUT->sHeapInfo[i].ui32HeapID = asHeapInfo[i].ui32HeapID; + psCreateDevMemContextOUT->sHeapInfo[i].sDevVAddrBase = asHeapInfo[i].sDevVAddrBase; + psCreateDevMemContextOUT->sHeapInfo[i].ui32HeapByteSize = asHeapInfo[i].ui32HeapByteSize; + psCreateDevMemContextOUT->sHeapInfo[i].ui32Attribs = asHeapInfo[i].ui32Attribs; + psCreateDevMemContextOUT->sHeapInfo[i].ui32XTileStride = asHeapInfo[i].ui32XTileStride; #endif - } + } - COMMIT_HANDLE_BATCH_OR_ERROR(psCreateDevMemContextOUT->eError, psPerProc) + COMMIT_HANDLE_BATCH_OR_ERROR(psCreateDevMemContextOUT->eError, psPerProc) - return 0; + return 0; } static IMG_INT PVRSRVDestroyDeviceMemContextBW(IMG_UINT32 ui32BridgeID, - PVRSRV_BRIDGE_IN_DESTROY_DEVMEMCONTEXT *psDestroyDevMemContextIN, - PVRSRV_BRIDGE_RETURN *psRetOUT, - PVRSRV_PER_PROCESS_DATA *psPerProc) + PVRSRV_BRIDGE_IN_DESTROY_DEVMEMCONTEXT *psDestroyDevMemContextIN, + PVRSRV_BRIDGE_RETURN *psRetOUT, + PVRSRV_PER_PROCESS_DATA *psPerProc) { - IMG_HANDLE hDevCookieInt; - IMG_HANDLE hDevMemContextInt; - IMG_BOOL bDestroyed; + IMG_HANDLE hDevCookieInt; + IMG_HANDLE hDevMemContextInt; + IMG_BOOL bDestroyed; - PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_DESTROY_DEVMEMCONTEXT); + PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_DESTROY_DEVMEMCONTEXT); - psRetOUT->eError = - PVRSRVLookupHandle(psPerProc->psHandleBase, &hDevCookieInt, - psDestroyDevMemContextIN->hDevCookie, - PVRSRV_HANDLE_TYPE_DEV_NODE); + psRetOUT->eError = + PVRSRVLookupHandle(psPerProc->psHandleBase, &hDevCookieInt, + psDestroyDevMemContextIN->hDevCookie, + PVRSRV_HANDLE_TYPE_DEV_NODE); - if(psRetOUT->eError != PVRSRV_OK) - { - return 0; - } + if(psRetOUT->eError != PVRSRV_OK) + { + return 0; + } - psRetOUT->eError = - PVRSRVLookupHandle(psPerProc->psHandleBase, &hDevMemContextInt, - psDestroyDevMemContextIN->hDevMemContext, - PVRSRV_HANDLE_TYPE_DEV_MEM_CONTEXT); + psRetOUT->eError = + PVRSRVLookupHandle(psPerProc->psHandleBase, &hDevMemContextInt, + psDestroyDevMemContextIN->hDevMemContext, + PVRSRV_HANDLE_TYPE_DEV_MEM_CONTEXT); - if(psRetOUT->eError != PVRSRV_OK) - { - return 0; - } + if(psRetOUT->eError != PVRSRV_OK) + { + return 0; + } - psRetOUT->eError = - PVRSRVDestroyDeviceMemContextKM(hDevCookieInt, hDevMemContextInt, &bDestroyed); + psRetOUT->eError = + PVRSRVDestroyDeviceMemContextKM(hDevCookieInt, hDevMemContextInt, &bDestroyed); - if(psRetOUT->eError != PVRSRV_OK) - { - return 0; - } + if(psRetOUT->eError != PVRSRV_OK) + { + return 0; + } - if(bDestroyed) - { - psRetOUT->eError = - PVRSRVReleaseHandle(psPerProc->psHandleBase, - psDestroyDevMemContextIN->hDevMemContext, - PVRSRV_HANDLE_TYPE_DEV_MEM_CONTEXT); - } + if(bDestroyed) + { + psRetOUT->eError = + PVRSRVReleaseHandle(psPerProc->psHandleBase, + psDestroyDevMemContextIN->hDevMemContext, + PVRSRV_HANDLE_TYPE_DEV_MEM_CONTEXT); + } - return 0; + return 0; } static IMG_INT PVRSRVGetDeviceMemHeapInfoBW(IMG_UINT32 ui32BridgeID, - PVRSRV_BRIDGE_IN_GET_DEVMEM_HEAPINFO *psGetDevMemHeapInfoIN, - PVRSRV_BRIDGE_OUT_GET_DEVMEM_HEAPINFO *psGetDevMemHeapInfoOUT, - PVRSRV_PER_PROCESS_DATA *psPerProc) + PVRSRV_BRIDGE_IN_GET_DEVMEM_HEAPINFO *psGetDevMemHeapInfoIN, + PVRSRV_BRIDGE_OUT_GET_DEVMEM_HEAPINFO *psGetDevMemHeapInfoOUT, + PVRSRV_PER_PROCESS_DATA *psPerProc) { - IMG_HANDLE hDevCookieInt; - IMG_HANDLE hDevMemContextInt; - IMG_UINT32 i; + IMG_HANDLE hDevCookieInt; + IMG_HANDLE hDevMemContextInt; + IMG_UINT32 i; #if defined (SUPPORT_SID_INTERFACE) - PVRSRV_HEAP_INFO_KM asHeapInfo[PVRSRV_MAX_CLIENT_HEAPS]; + PVRSRV_HEAP_INFO_KM asHeapInfo[PVRSRV_MAX_CLIENT_HEAPS]; #endif - PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_GET_DEVMEM_HEAPINFO); + PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_GET_DEVMEM_HEAPINFO); - NEW_HANDLE_BATCH_OR_ERROR(psGetDevMemHeapInfoOUT->eError, psPerProc, PVRSRV_MAX_CLIENT_HEAPS) + NEW_HANDLE_BATCH_OR_ERROR(psGetDevMemHeapInfoOUT->eError, psPerProc, PVRSRV_MAX_CLIENT_HEAPS) - psGetDevMemHeapInfoOUT->eError = - PVRSRVLookupHandle(psPerProc->psHandleBase, &hDevCookieInt, - psGetDevMemHeapInfoIN->hDevCookie, - PVRSRV_HANDLE_TYPE_DEV_NODE); + psGetDevMemHeapInfoOUT->eError = + PVRSRVLookupHandle(psPerProc->psHandleBase, &hDevCookieInt, + psGetDevMemHeapInfoIN->hDevCookie, + PVRSRV_HANDLE_TYPE_DEV_NODE); - if(psGetDevMemHeapInfoOUT->eError != PVRSRV_OK) - { - return 0; - } + if(psGetDevMemHeapInfoOUT->eError != PVRSRV_OK) + { + return 0; + } - psGetDevMemHeapInfoOUT->eError = - PVRSRVLookupHandle(psPerProc->psHandleBase, &hDevMemContextInt, - psGetDevMemHeapInfoIN->hDevMemContext, - PVRSRV_HANDLE_TYPE_DEV_MEM_CONTEXT); + psGetDevMemHeapInfoOUT->eError = + PVRSRVLookupHandle(psPerProc->psHandleBase, &hDevMemContextInt, + psGetDevMemHeapInfoIN->hDevMemContext, + PVRSRV_HANDLE_TYPE_DEV_MEM_CONTEXT); - if(psGetDevMemHeapInfoOUT->eError != PVRSRV_OK) - { - return 0; - } + if(psGetDevMemHeapInfoOUT->eError != PVRSRV_OK) + { + return 0; + } - psGetDevMemHeapInfoOUT->eError = - PVRSRVGetDeviceMemHeapInfoKM(hDevCookieInt, - hDevMemContextInt, - &psGetDevMemHeapInfoOUT->ui32ClientHeapCount, + psGetDevMemHeapInfoOUT->eError = + PVRSRVGetDeviceMemHeapInfoKM(hDevCookieInt, + hDevMemContextInt, + &psGetDevMemHeapInfoOUT->ui32ClientHeapCount, #if defined (SUPPORT_SID_INTERFACE) &asHeapInfo[0], #else - &psGetDevMemHeapInfoOUT->sHeapInfo[0], + &psGetDevMemHeapInfoOUT->sHeapInfo[0], #endif - pbSharedDeviceMemHeap); + pbSharedDeviceMemHeap); - if(psGetDevMemHeapInfoOUT->eError != PVRSRV_OK) - { - return 0; - } + if(psGetDevMemHeapInfoOUT->eError != PVRSRV_OK) + { + return 0; + } - for(i = 0; i < psGetDevMemHeapInfoOUT->ui32ClientHeapCount; i++) - { + for(i = 0; i < psGetDevMemHeapInfoOUT->ui32ClientHeapCount; i++) + { #if defined (SUPPORT_SID_INTERFACE) - IMG_SID hDevMemHeapExt; + IMG_SID hDevMemHeapExt; #else - IMG_HANDLE hDevMemHeapExt; + IMG_HANDLE hDevMemHeapExt; #endif #if defined(PVR_SECURE_HANDLES) || defined (SUPPORT_SID_INTERFACE) - if(abSharedDeviceMemHeap[i]) + if(abSharedDeviceMemHeap[i]) #endif - { - + { + #if defined (SUPPORT_SID_INTERFACE) - PVRSRVAllocHandleNR(psPerProc->psHandleBase, - &hDevMemHeapExt, - asHeapInfo[i].hDevMemHeap, - PVRSRV_HANDLE_TYPE_DEV_MEM_HEAP, - PVRSRV_HANDLE_ALLOC_FLAG_SHARED); + PVRSRVAllocHandleNR(psPerProc->psHandleBase, + &hDevMemHeapExt, + asHeapInfo[i].hDevMemHeap, + PVRSRV_HANDLE_TYPE_DEV_MEM_HEAP, + PVRSRV_HANDLE_ALLOC_FLAG_SHARED); #else - PVRSRVAllocHandleNR(psPerProc->psHandleBase, &hDevMemHeapExt, - psGetDevMemHeapInfoOUT->sHeapInfo[i].hDevMemHeap, - PVRSRV_HANDLE_TYPE_DEV_MEM_HEAP, - PVRSRV_HANDLE_ALLOC_FLAG_SHARED); + PVRSRVAllocHandleNR(psPerProc->psHandleBase, &hDevMemHeapExt, + psGetDevMemHeapInfoOUT->sHeapInfo[i].hDevMemHeap, + PVRSRV_HANDLE_TYPE_DEV_MEM_HEAP, + PVRSRV_HANDLE_ALLOC_FLAG_SHARED); #endif - } + } #if defined(PVR_SECURE_HANDLES) || defined (SUPPORT_SID_INTERFACE) - else - { - - psGetDevMemHeapInfoOUT->eError = - PVRSRVFindHandle(psPerProc->psHandleBase, - &hDevMemHeapExt, + else + { + + psGetDevMemHeapInfoOUT->eError = + PVRSRVFindHandle(psPerProc->psHandleBase, + &hDevMemHeapExt, #if defined (SUPPORT_SID_INTERFACE) - asHeapInfo[i].hDevMemHeap, + asHeapInfo[i].hDevMemHeap, #else - psGetDevMemHeapInfoOUT->sHeapInfo[i].hDevMemHeap, + psGetDevMemHeapInfoOUT->sHeapInfo[i].hDevMemHeap, #endif - PVRSRV_HANDLE_TYPE_DEV_MEM_HEAP); - if(psGetDevMemHeapInfoOUT->eError != PVRSRV_OK) - { - return 0; - } - } + PVRSRV_HANDLE_TYPE_DEV_MEM_HEAP); + if(psGetDevMemHeapInfoOUT->eError != PVRSRV_OK) + { + return 0; + } + } #endif - psGetDevMemHeapInfoOUT->sHeapInfo[i].hDevMemHeap = hDevMemHeapExt; + psGetDevMemHeapInfoOUT->sHeapInfo[i].hDevMemHeap = hDevMemHeapExt; #if defined (SUPPORT_SID_INTERFACE) - psGetDevMemHeapInfoOUT->sHeapInfo[i].ui32HeapID = asHeapInfo[i].ui32HeapID; - psGetDevMemHeapInfoOUT->sHeapInfo[i].sDevVAddrBase = asHeapInfo[i].sDevVAddrBase; - psGetDevMemHeapInfoOUT->sHeapInfo[i].ui32HeapByteSize = asHeapInfo[i].ui32HeapByteSize; - psGetDevMemHeapInfoOUT->sHeapInfo[i].ui32Attribs = asHeapInfo[i].ui32Attribs; - psGetDevMemHeapInfoOUT->sHeapInfo[i].ui32XTileStride = asHeapInfo[i].ui32XTileStride; + psGetDevMemHeapInfoOUT->sHeapInfo[i].ui32HeapID = asHeapInfo[i].ui32HeapID; + psGetDevMemHeapInfoOUT->sHeapInfo[i].sDevVAddrBase = asHeapInfo[i].sDevVAddrBase; + psGetDevMemHeapInfoOUT->sHeapInfo[i].ui32HeapByteSize = asHeapInfo[i].ui32HeapByteSize; + psGetDevMemHeapInfoOUT->sHeapInfo[i].ui32Attribs = asHeapInfo[i].ui32Attribs; + psGetDevMemHeapInfoOUT->sHeapInfo[i].ui32XTileStride = asHeapInfo[i].ui32XTileStride; #endif - } + } - COMMIT_HANDLE_BATCH_OR_ERROR(psGetDevMemHeapInfoOUT->eError, psPerProc) + COMMIT_HANDLE_BATCH_OR_ERROR(psGetDevMemHeapInfoOUT->eError, psPerProc) - return 0; + return 0; } #if defined(OS_PVRSRV_ALLOC_DEVICE_MEM_BW) IMG_INT PVRSRVAllocDeviceMemBW(IMG_UINT32 ui32BridgeID, - PVRSRV_BRIDGE_IN_ALLOCDEVICEMEM *psAllocDeviceMemIN, - PVRSRV_BRIDGE_OUT_ALLOCDEVICEMEM *psAllocDeviceMemOUT, - PVRSRV_PER_PROCESS_DATA *psPerProc); + PVRSRV_BRIDGE_IN_ALLOCDEVICEMEM *psAllocDeviceMemIN, + PVRSRV_BRIDGE_OUT_ALLOCDEVICEMEM *psAllocDeviceMemOUT, + PVRSRV_PER_PROCESS_DATA *psPerProc); #else static IMG_INT PVRSRVAllocDeviceMemBW(IMG_UINT32 ui32BridgeID, - PVRSRV_BRIDGE_IN_ALLOCDEVICEMEM *psAllocDeviceMemIN, - PVRSRV_BRIDGE_OUT_ALLOCDEVICEMEM *psAllocDeviceMemOUT, - PVRSRV_PER_PROCESS_DATA *psPerProc) + PVRSRV_BRIDGE_IN_ALLOCDEVICEMEM *psAllocDeviceMemIN, + PVRSRV_BRIDGE_OUT_ALLOCDEVICEMEM *psAllocDeviceMemOUT, + PVRSRV_PER_PROCESS_DATA *psPerProc) { - PVRSRV_KERNEL_MEM_INFO *psMemInfo; - IMG_HANDLE hDevCookieInt; - IMG_HANDLE hDevMemHeapInt; - IMG_UINT32 ui32ShareIndex; - IMG_BOOL bUseShareMemWorkaround; - - PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_ALLOC_DEVICEMEM); + PVRSRV_KERNEL_MEM_INFO *psMemInfo; + IMG_HANDLE hDevCookieInt; + IMG_HANDLE hDevMemHeapInt; + IMG_UINT32 ui32ShareIndex; + IMG_BOOL bUseShareMemWorkaround; - NEW_HANDLE_BATCH_OR_ERROR(psAllocDeviceMemOUT->eError, psPerProc, 2) + PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_ALLOC_DEVICEMEM); - psAllocDeviceMemOUT->eError = - PVRSRVLookupHandle(psPerProc->psHandleBase, &hDevCookieInt, - psAllocDeviceMemIN->hDevCookie, - PVRSRV_HANDLE_TYPE_DEV_NODE); + NEW_HANDLE_BATCH_OR_ERROR(psAllocDeviceMemOUT->eError, psPerProc, 2) - if(psAllocDeviceMemOUT->eError != PVRSRV_OK) - { - return 0; - } + psAllocDeviceMemOUT->eError = + PVRSRVLookupHandle(psPerProc->psHandleBase, &hDevCookieInt, + psAllocDeviceMemIN->hDevCookie, + PVRSRV_HANDLE_TYPE_DEV_NODE); - psAllocDeviceMemOUT->eError = - PVRSRVLookupHandle(psPerProc->psHandleBase, &hDevMemHeapInt, - psAllocDeviceMemIN->hDevMemHeap, - PVRSRV_HANDLE_TYPE_DEV_MEM_HEAP); + if(psAllocDeviceMemOUT->eError != PVRSRV_OK) + { + return 0; + } - if(psAllocDeviceMemOUT->eError != PVRSRV_OK) - { - return 0; - } + psAllocDeviceMemOUT->eError = + PVRSRVLookupHandle(psPerProc->psHandleBase, &hDevMemHeapInt, + psAllocDeviceMemIN->hDevMemHeap, + PVRSRV_HANDLE_TYPE_DEV_MEM_HEAP); - + if(psAllocDeviceMemOUT->eError != PVRSRV_OK) + { + return 0; + } - bUseShareMemWorkaround = ((psAllocDeviceMemIN->ui32Attribs & PVRSRV_MEM_XPROC) != 0) ? IMG_TRUE : IMG_FALSE; - ui32ShareIndex = 7654321; + - if (bUseShareMemWorkaround) - { - - + bUseShareMemWorkaround = ((psAllocDeviceMemIN->ui32Attribs & PVRSRV_MEM_XPROC) != 0) ? IMG_TRUE : IMG_FALSE; + ui32ShareIndex = 7654321; - psAllocDeviceMemOUT->eError = - BM_XProcWorkaroundFindNewBufferAndSetShareIndex(&ui32ShareIndex); - if(psAllocDeviceMemOUT->eError != PVRSRV_OK) - { - return 0; - } - } + if (bUseShareMemWorkaround) + { + + + + psAllocDeviceMemOUT->eError = + BM_XProcWorkaroundFindNewBufferAndSetShareIndex(&ui32ShareIndex); + if(psAllocDeviceMemOUT->eError != PVRSRV_OK) + { + return 0; + } + } - psAllocDeviceMemOUT->eError = - PVRSRVAllocDeviceMemKM(hDevCookieInt, - psPerProc, - hDevMemHeapInt, - psAllocDeviceMemIN->ui32Attribs, - psAllocDeviceMemIN->ui32Size, - psAllocDeviceMemIN->ui32Alignment, - &psMemInfo, - "" ); - - if (bUseShareMemWorkaround) - { + psAllocDeviceMemOUT->eError = + PVRSRVAllocDeviceMemKM(hDevCookieInt, + psPerProc, + hDevMemHeapInt, + psAllocDeviceMemIN->ui32Attribs, + psAllocDeviceMemIN->ui32Size, + psAllocDeviceMemIN->ui32Alignment, + &psMemInfo, + "" ); + + if (bUseShareMemWorkaround) + { PVR_ASSERT(ui32ShareIndex != 7654321); - BM_XProcWorkaroundUnsetShareIndex(ui32ShareIndex); - } + BM_XProcWorkaroundUnsetShareIndex(ui32ShareIndex); + } - if(psAllocDeviceMemOUT->eError != PVRSRV_OK) - { - return 0; - } + if(psAllocDeviceMemOUT->eError != PVRSRV_OK) + { + return 0; + } - psMemInfo->sShareMemWorkaround.bInUse = bUseShareMemWorkaround; - if (bUseShareMemWorkaround) - { - PVR_ASSERT(ui32ShareIndex != 7654321); - psMemInfo->sShareMemWorkaround.ui32ShareIndex = ui32ShareIndex; - psMemInfo->sShareMemWorkaround.hDevCookieInt = hDevCookieInt; - psMemInfo->sShareMemWorkaround.ui32OrigReqAttribs = psAllocDeviceMemIN->ui32Attribs; - psMemInfo->sShareMemWorkaround.ui32OrigReqSize = (IMG_UINT32)psAllocDeviceMemIN->ui32Size; - psMemInfo->sShareMemWorkaround.ui32OrigReqAlignment = (IMG_UINT32)psAllocDeviceMemIN->ui32Alignment; - } + psMemInfo->sShareMemWorkaround.bInUse = bUseShareMemWorkaround; + if (bUseShareMemWorkaround) + { + PVR_ASSERT(ui32ShareIndex != 7654321); + psMemInfo->sShareMemWorkaround.ui32ShareIndex = ui32ShareIndex; + psMemInfo->sShareMemWorkaround.hDevCookieInt = hDevCookieInt; + psMemInfo->sShareMemWorkaround.ui32OrigReqAttribs = psAllocDeviceMemIN->ui32Attribs; + psMemInfo->sShareMemWorkaround.ui32OrigReqSize = (IMG_UINT32)psAllocDeviceMemIN->ui32Size; + psMemInfo->sShareMemWorkaround.ui32OrigReqAlignment = (IMG_UINT32)psAllocDeviceMemIN->ui32Alignment; + } - OSMemSet(&psAllocDeviceMemOUT->sClientMemInfo, - 0, - sizeof(psAllocDeviceMemOUT->sClientMemInfo)); + OSMemSet(&psAllocDeviceMemOUT->sClientMemInfo, + 0, + sizeof(psAllocDeviceMemOUT->sClientMemInfo)); - psAllocDeviceMemOUT->sClientMemInfo.pvLinAddrKM = - psMemInfo->pvLinAddrKM; + psAllocDeviceMemOUT->sClientMemInfo.pvLinAddrKM = + psMemInfo->pvLinAddrKM; #if defined (__linux__) - psAllocDeviceMemOUT->sClientMemInfo.pvLinAddr = 0; + psAllocDeviceMemOUT->sClientMemInfo.pvLinAddr = 0; #else - psAllocDeviceMemOUT->sClientMemInfo.pvLinAddr = psMemInfo->pvLinAddrKM; + psAllocDeviceMemOUT->sClientMemInfo.pvLinAddr = psMemInfo->pvLinAddrKM; #endif - psAllocDeviceMemOUT->sClientMemInfo.sDevVAddr = psMemInfo->sDevVAddr; - psAllocDeviceMemOUT->sClientMemInfo.ui32Flags = psMemInfo->ui32Flags; - psAllocDeviceMemOUT->sClientMemInfo.uAllocSize = psMemInfo->uAllocSize; + psAllocDeviceMemOUT->sClientMemInfo.sDevVAddr = psMemInfo->sDevVAddr; + psAllocDeviceMemOUT->sClientMemInfo.ui32Flags = psMemInfo->ui32Flags; + psAllocDeviceMemOUT->sClientMemInfo.uAllocSize = psMemInfo->uAllocSize; #if defined (SUPPORT_SID_INTERFACE) + #else - psAllocDeviceMemOUT->sClientMemInfo.hMappingInfo = psMemInfo->sMemBlk.hOSMemHandle; + psAllocDeviceMemOUT->sClientMemInfo.hMappingInfo = psMemInfo->sMemBlk.hOSMemHandle; #endif - PVRSRVAllocHandleNR(psPerProc->psHandleBase, - &psAllocDeviceMemOUT->sClientMemInfo.hKernelMemInfo, - psMemInfo, - PVRSRV_HANDLE_TYPE_MEM_INFO, - PVRSRV_HANDLE_ALLOC_FLAG_NONE); + PVRSRVAllocHandleNR(psPerProc->psHandleBase, + &psAllocDeviceMemOUT->sClientMemInfo.hKernelMemInfo, + psMemInfo, + PVRSRV_HANDLE_TYPE_MEM_INFO, + PVRSRV_HANDLE_ALLOC_FLAG_NONE); - #if defined (SUPPORT_SID_INTERFACE) - PVR_ASSERT(psAllocDeviceMemOUT->sClientMemInfo.hKernelMemInfo != 0); +#if defined (SUPPORT_SID_INTERFACE) + PVR_ASSERT(psAllocDeviceMemOUT->sClientMemInfo.hKernelMemInfo != 0); - if (psMemInfo->sMemBlk.hOSMemHandle != IMG_NULL) - { - PVRSRVAllocSubHandleNR(psPerProc->psHandleBase, - &psAllocDeviceMemOUT->sClientMemInfo.hMappingInfo, - psMemInfo->sMemBlk.hOSMemHandle, - PVRSRV_HANDLE_TYPE_MEM_INFO, - PVRSRV_HANDLE_ALLOC_FLAG_NONE, - psAllocDeviceMemOUT->sClientMemInfo.hKernelMemInfo); - } - else - { - psAllocDeviceMemOUT->sClientMemInfo.hMappingInfo = 0; - } + if (psMemInfo->sMemBlk.hOSMemHandle != IMG_NULL) + { + PVRSRVAllocSubHandleNR(psPerProc->psHandleBase, + &psAllocDeviceMemOUT->sClientMemInfo.hMappingInfo, + psMemInfo->sMemBlk.hOSMemHandle, + PVRSRV_HANDLE_TYPE_MEM_INFO, + PVRSRV_HANDLE_ALLOC_FLAG_NONE, + psAllocDeviceMemOUT->sClientMemInfo.hKernelMemInfo); + } + else + { + psAllocDeviceMemOUT->sClientMemInfo.hMappingInfo = 0; + } #endif - if(psAllocDeviceMemIN->ui32Attribs & PVRSRV_MEM_NO_SYNCOBJ) - { - - OSMemSet(&psAllocDeviceMemOUT->sClientSyncInfo, - 0, - sizeof (PVRSRV_CLIENT_SYNC_INFO)); - psAllocDeviceMemOUT->sClientMemInfo.psClientSyncInfo = IMG_NULL; - } - else - { - + if(psAllocDeviceMemIN->ui32Attribs & PVRSRV_MEM_NO_SYNCOBJ) + { + + OSMemSet(&psAllocDeviceMemOUT->sClientSyncInfo, + 0, + sizeof (PVRSRV_CLIENT_SYNC_INFO)); + psAllocDeviceMemOUT->sClientMemInfo.psClientSyncInfo = IMG_NULL; + } + else + { + #if !defined(PVRSRV_DISABLE_UM_SYNCOBJ_MAPPINGS) - psAllocDeviceMemOUT->sClientSyncInfo.psSyncData = - psMemInfo->psKernelSyncInfo->psSyncData; - psAllocDeviceMemOUT->sClientSyncInfo.sWriteOpsCompleteDevVAddr = - psMemInfo->psKernelSyncInfo->sWriteOpsCompleteDevVAddr; - psAllocDeviceMemOUT->sClientSyncInfo.sReadOpsCompleteDevVAddr = - psMemInfo->psKernelSyncInfo->sReadOpsCompleteDevVAddr; + psAllocDeviceMemOUT->sClientSyncInfo.psSyncData = + psMemInfo->psKernelSyncInfo->psSyncData; + psAllocDeviceMemOUT->sClientSyncInfo.sWriteOpsCompleteDevVAddr = + psMemInfo->psKernelSyncInfo->sWriteOpsCompleteDevVAddr; + psAllocDeviceMemOUT->sClientSyncInfo.sReadOpsCompleteDevVAddr = + psMemInfo->psKernelSyncInfo->sReadOpsCompleteDevVAddr; #if defined (SUPPORT_SID_INTERFACE) - if (psMemInfo->psKernelSyncInfo->psSyncDataMemInfoKM->sMemBlk.hOSMemHandle != IMG_NULL) - { - PVRSRVAllocSubHandleNR(psPerProc->psHandleBase, - &psAllocDeviceMemOUT->sClientSyncInfo.hMappingInfo, - psMemInfo->psKernelSyncInfo->psSyncDataMemInfoKM->sMemBlk.hOSMemHandle, - PVRSRV_HANDLE_TYPE_SYNC_INFO, - PVRSRV_HANDLE_ALLOC_FLAG_NONE, - psAllocDeviceMemOUT->sClientMemInfo.hKernelMemInfo); - } - else - { - psAllocDeviceMemOUT->sClientSyncInfo.hMappingInfo = 0; - } + if (psMemInfo->psKernelSyncInfo->psSyncDataMemInfoKM->sMemBlk.hOSMemHandle != IMG_NULL) + { + PVRSRVAllocSubHandleNR(psPerProc->psHandleBase, + &psAllocDeviceMemOUT->sClientSyncInfo.hMappingInfo, + psMemInfo->psKernelSyncInfo->psSyncDataMemInfoKM->sMemBlk.hOSMemHandle, + PVRSRV_HANDLE_TYPE_SYNC_INFO, + PVRSRV_HANDLE_ALLOC_FLAG_NONE, + psAllocDeviceMemOUT->sClientMemInfo.hKernelMemInfo); + } + else + { + psAllocDeviceMemOUT->sClientSyncInfo.hMappingInfo = 0; + } #else - psAllocDeviceMemOUT->sClientSyncInfo.hMappingInfo = - psMemInfo->psKernelSyncInfo->psSyncDataMemInfoKM->sMemBlk.hOSMemHandle; + psAllocDeviceMemOUT->sClientSyncInfo.hMappingInfo = + psMemInfo->psKernelSyncInfo->psSyncDataMemInfoKM->sMemBlk.hOSMemHandle; #endif #endif - PVRSRVAllocSubHandleNR(psPerProc->psHandleBase, - &psAllocDeviceMemOUT->sClientSyncInfo.hKernelSyncInfo, - psMemInfo->psKernelSyncInfo, - PVRSRV_HANDLE_TYPE_SYNC_INFO, - PVRSRV_HANDLE_ALLOC_FLAG_NONE, - psAllocDeviceMemOUT->sClientMemInfo.hKernelMemInfo); + PVRSRVAllocSubHandleNR(psPerProc->psHandleBase, + &psAllocDeviceMemOUT->sClientSyncInfo.hKernelSyncInfo, + psMemInfo->psKernelSyncInfo, + PVRSRV_HANDLE_TYPE_SYNC_INFO, + PVRSRV_HANDLE_ALLOC_FLAG_NONE, + psAllocDeviceMemOUT->sClientMemInfo.hKernelMemInfo); - psAllocDeviceMemOUT->sClientMemInfo.psClientSyncInfo = - &psAllocDeviceMemOUT->sClientSyncInfo; - - } + psAllocDeviceMemOUT->sClientMemInfo.psClientSyncInfo = + &psAllocDeviceMemOUT->sClientSyncInfo; + } - COMMIT_HANDLE_BATCH_OR_ERROR(psAllocDeviceMemOUT->eError, psPerProc) + COMMIT_HANDLE_BATCH_OR_ERROR(psAllocDeviceMemOUT->eError, psPerProc) - return 0; + return 0; } #endif static IMG_INT PVRSRVFreeDeviceMemBW(IMG_UINT32 ui32BridgeID, - PVRSRV_BRIDGE_IN_FREEDEVICEMEM *psFreeDeviceMemIN, - PVRSRV_BRIDGE_RETURN *psRetOUT, - PVRSRV_PER_PROCESS_DATA *psPerProc) + PVRSRV_BRIDGE_IN_FREEDEVICEMEM *psFreeDeviceMemIN, + PVRSRV_BRIDGE_RETURN *psRetOUT, + PVRSRV_PER_PROCESS_DATA *psPerProc) { - IMG_HANDLE hDevCookieInt; - IMG_VOID *pvKernelMemInfo; + IMG_HANDLE hDevCookieInt; + IMG_VOID *pvKernelMemInfo; + PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_FREE_DEVICEMEM); - PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_FREE_DEVICEMEM); + psRetOUT->eError = + PVRSRVLookupHandle(psPerProc->psHandleBase, &hDevCookieInt, + psFreeDeviceMemIN->hDevCookie, + PVRSRV_HANDLE_TYPE_DEV_NODE); - psRetOUT->eError = - PVRSRVLookupHandle(psPerProc->psHandleBase, &hDevCookieInt, - psFreeDeviceMemIN->hDevCookie, - PVRSRV_HANDLE_TYPE_DEV_NODE); - - if(psRetOUT->eError != PVRSRV_OK) - { - return 0; - } + if(psRetOUT->eError != PVRSRV_OK) + { + return 0; + } - psRetOUT->eError = + psRetOUT->eError = PVRSRVLookupHandle(psPerProc->psHandleBase, &pvKernelMemInfo, #if defined (SUPPORT_SID_INTERFACE) - psFreeDeviceMemIN->hKernelMemInfo, + psFreeDeviceMemIN->hKernelMemInfo, #else - psFreeDeviceMemIN->psKernelMemInfo, + psFreeDeviceMemIN->psKernelMemInfo, #endif - PVRSRV_HANDLE_TYPE_MEM_INFO); + PVRSRV_HANDLE_TYPE_MEM_INFO); - if(psRetOUT->eError != PVRSRV_OK) - { - return 0; - } + if(psRetOUT->eError != PVRSRV_OK) + { + return 0; + } - psRetOUT->eError = PVRSRVFreeDeviceMemKM(hDevCookieInt, pvKernelMemInfo); + psRetOUT->eError = PVRSRVFreeDeviceMemKM(hDevCookieInt, pvKernelMemInfo); - if(psRetOUT->eError != PVRSRV_OK) - { - return 0; - } + if(psRetOUT->eError != PVRSRV_OK) + { + return 0; + } - psRetOUT->eError = - PVRSRVReleaseHandle(psPerProc->psHandleBase, + psRetOUT->eError = + PVRSRVReleaseHandle(psPerProc->psHandleBase, #if defined (SUPPORT_SID_INTERFACE) - psFreeDeviceMemIN->hKernelMemInfo, + psFreeDeviceMemIN->hKernelMemInfo, #else - psFreeDeviceMemIN->psKernelMemInfo, + psFreeDeviceMemIN->psKernelMemInfo, #endif - PVRSRV_HANDLE_TYPE_MEM_INFO); + PVRSRV_HANDLE_TYPE_MEM_INFO); - return 0; + return 0; } static IMG_INT PVRSRVExportDeviceMemBW(IMG_UINT32 ui32BridgeID, - PVRSRV_BRIDGE_IN_EXPORTDEVICEMEM *psExportDeviceMemIN, - PVRSRV_BRIDGE_OUT_EXPORTDEVICEMEM *psExportDeviceMemOUT, - PVRSRV_PER_PROCESS_DATA *psPerProc) + PVRSRV_BRIDGE_IN_EXPORTDEVICEMEM *psExportDeviceMemIN, + PVRSRV_BRIDGE_OUT_EXPORTDEVICEMEM *psExportDeviceMemOUT, + PVRSRV_PER_PROCESS_DATA *psPerProc) { - IMG_HANDLE hDevCookieInt; + IMG_HANDLE hDevCookieInt; #if defined (SUPPORT_SID_INTERFACE) - PVRSRV_KERNEL_MEM_INFO *psKernelMemInfo = IMG_NULL; + PVRSRV_KERNEL_MEM_INFO *psKernelMemInfo = IMG_NULL; #else - PVRSRV_KERNEL_MEM_INFO *psKernelMemInfo; + PVRSRV_KERNEL_MEM_INFO *psKernelMemInfo; #endif - PVR_ASSERT(ui32BridgeID == PVRSRV_GET_BRIDGE_ID(PVRSRV_BRIDGE_EXPORT_DEVICEMEM) || - ui32BridgeID == PVRSRV_GET_BRIDGE_ID(PVRSRV_BRIDGE_EXPORT_DEVICEMEM_2)); - PVR_UNREFERENCED_PARAMETER(ui32BridgeID); + PVR_ASSERT(ui32BridgeID == PVRSRV_GET_BRIDGE_ID(PVRSRV_BRIDGE_EXPORT_DEVICEMEM) || + ui32BridgeID == PVRSRV_GET_BRIDGE_ID(PVRSRV_BRIDGE_EXPORT_DEVICEMEM_2)); + PVR_UNREFERENCED_PARAMETER(ui32BridgeID); - - psExportDeviceMemOUT->eError = + + psExportDeviceMemOUT->eError = PVRSRVLookupHandle(psPerProc->psHandleBase, &hDevCookieInt, - psExportDeviceMemIN->hDevCookie, - PVRSRV_HANDLE_TYPE_DEV_NODE); + psExportDeviceMemIN->hDevCookie, + PVRSRV_HANDLE_TYPE_DEV_NODE); - if(psExportDeviceMemOUT->eError != PVRSRV_OK) - { - PVR_DPF((PVR_DBG_ERROR, "PVRSRVExportDeviceMemBW: can't find devcookie")); - return 0; - } + if(psExportDeviceMemOUT->eError != PVRSRV_OK) + { + PVR_DPF((PVR_DBG_ERROR, "PVRSRVExportDeviceMemBW: can't find devcookie")); + return 0; + } - - psExportDeviceMemOUT->eError = - PVRSRVLookupHandle(psPerProc->psHandleBase, - (IMG_PVOID *)&psKernelMemInfo, + + psExportDeviceMemOUT->eError = + PVRSRVLookupHandle(psPerProc->psHandleBase, + (IMG_PVOID *)&psKernelMemInfo, #if defined (SUPPORT_SID_INTERFACE) - psExportDeviceMemIN->hKernelMemInfo, + psExportDeviceMemIN->hKernelMemInfo, #else - psExportDeviceMemIN->psKernelMemInfo, + psExportDeviceMemIN->psKernelMemInfo, #endif - PVRSRV_HANDLE_TYPE_MEM_INFO); + PVRSRV_HANDLE_TYPE_MEM_INFO); - if(psExportDeviceMemOUT->eError != PVRSRV_OK) - { - PVR_DPF((PVR_DBG_ERROR, "PVRSRVExportDeviceMemBW: can't find kernel meminfo")); - return 0; - } + if(psExportDeviceMemOUT->eError != PVRSRV_OK) + { + PVR_DPF((PVR_DBG_ERROR, "PVRSRVExportDeviceMemBW: can't find kernel meminfo")); + return 0; + } - - psExportDeviceMemOUT->eError = - PVRSRVFindHandle(KERNEL_HANDLE_BASE, - &psExportDeviceMemOUT->hMemInfo, - psKernelMemInfo, - PVRSRV_HANDLE_TYPE_MEM_INFO); - if(psExportDeviceMemOUT->eError == PVRSRV_OK) - { - - PVR_DPF((PVR_DBG_MESSAGE, "PVRSRVExportDeviceMemBW: allocation is already exported")); - return 0; - } + + psExportDeviceMemOUT->eError = + PVRSRVFindHandle(KERNEL_HANDLE_BASE, + &psExportDeviceMemOUT->hMemInfo, + psKernelMemInfo, + PVRSRV_HANDLE_TYPE_MEM_INFO); + if(psExportDeviceMemOUT->eError == PVRSRV_OK) + { + + PVR_DPF((PVR_DBG_MESSAGE, "PVRSRVExportDeviceMemBW: allocation is already exported")); + return 0; + } - - psExportDeviceMemOUT->eError = PVRSRVAllocHandle(KERNEL_HANDLE_BASE, - &psExportDeviceMemOUT->hMemInfo, - psKernelMemInfo, - PVRSRV_HANDLE_TYPE_MEM_INFO, - PVRSRV_HANDLE_ALLOC_FLAG_NONE); - if (psExportDeviceMemOUT->eError != PVRSRV_OK) - { - PVR_DPF((PVR_DBG_ERROR, "PVRSRVExportDeviceMemBW: failed to allocate handle from global handle list")); - return 0; - } + + psExportDeviceMemOUT->eError = PVRSRVAllocHandle(KERNEL_HANDLE_BASE, + &psExportDeviceMemOUT->hMemInfo, + psKernelMemInfo, + PVRSRV_HANDLE_TYPE_MEM_INFO, + PVRSRV_HANDLE_ALLOC_FLAG_NONE); + if (psExportDeviceMemOUT->eError != PVRSRV_OK) + { + PVR_DPF((PVR_DBG_ERROR, "PVRSRVExportDeviceMemBW: failed to allocate handle from global handle list")); + return 0; + } - - psKernelMemInfo->ui32Flags |= PVRSRV_MEM_EXPORTED; + + psKernelMemInfo->ui32Flags |= PVRSRV_MEM_EXPORTED; - return 0; + return 0; } static IMG_INT PVRSRVMapDeviceMemoryBW(IMG_UINT32 ui32BridgeID, - PVRSRV_BRIDGE_IN_MAP_DEV_MEMORY *psMapDevMemIN, - PVRSRV_BRIDGE_OUT_MAP_DEV_MEMORY *psMapDevMemOUT, - PVRSRV_PER_PROCESS_DATA *psPerProc) + PVRSRV_BRIDGE_IN_MAP_DEV_MEMORY *psMapDevMemIN, + PVRSRV_BRIDGE_OUT_MAP_DEV_MEMORY *psMapDevMemOUT, + PVRSRV_PER_PROCESS_DATA *psPerProc) { - PVRSRV_KERNEL_MEM_INFO *psSrcKernelMemInfo = IMG_NULL; - PVRSRV_KERNEL_MEM_INFO *psDstKernelMemInfo = IMG_NULL; - IMG_HANDLE hDstDevMemHeap = IMG_NULL; - - PVR_ASSERT(ui32BridgeID == PVRSRV_GET_BRIDGE_ID(PVRSRV_BRIDGE_MAP_DEV_MEMORY) || - ui32BridgeID == PVRSRV_GET_BRIDGE_ID(PVRSRV_BRIDGE_MAP_DEV_MEMORY_2)); - PVR_UNREFERENCED_PARAMETER(ui32BridgeID); - - NEW_HANDLE_BATCH_OR_ERROR(psMapDevMemOUT->eError, psPerProc, 2) + PVRSRV_KERNEL_MEM_INFO *psSrcKernelMemInfo = IMG_NULL; + PVRSRV_KERNEL_MEM_INFO *psDstKernelMemInfo = IMG_NULL; + IMG_HANDLE hDstDevMemHeap = IMG_NULL; + + PVR_ASSERT(ui32BridgeID == PVRSRV_GET_BRIDGE_ID(PVRSRV_BRIDGE_MAP_DEV_MEMORY) || + ui32BridgeID == PVRSRV_GET_BRIDGE_ID(PVRSRV_BRIDGE_MAP_DEV_MEMORY_2)); + PVR_UNREFERENCED_PARAMETER(ui32BridgeID); + + NEW_HANDLE_BATCH_OR_ERROR(psMapDevMemOUT->eError, psPerProc, 2) + + + psMapDevMemOUT->eError = PVRSRVLookupHandle(KERNEL_HANDLE_BASE, + (IMG_VOID**)&psSrcKernelMemInfo, + psMapDevMemIN->hKernelMemInfo, + PVRSRV_HANDLE_TYPE_MEM_INFO); + if(psMapDevMemOUT->eError != PVRSRV_OK) + { + return 0; + } - - psMapDevMemOUT->eError = PVRSRVLookupHandle(KERNEL_HANDLE_BASE, - (IMG_VOID**)&psSrcKernelMemInfo, - psMapDevMemIN->hKernelMemInfo, - PVRSRV_HANDLE_TYPE_MEM_INFO); - if(psMapDevMemOUT->eError != PVRSRV_OK) - { - return 0; - } + + psMapDevMemOUT->eError = PVRSRVLookupHandle(psPerProc->psHandleBase, + &hDstDevMemHeap, + psMapDevMemIN->hDstDevMemHeap, + PVRSRV_HANDLE_TYPE_DEV_MEM_HEAP); + if(psMapDevMemOUT->eError != PVRSRV_OK) + { + return 0; + } - - psMapDevMemOUT->eError = PVRSRVLookupHandle(psPerProc->psHandleBase, - &hDstDevMemHeap, - psMapDevMemIN->hDstDevMemHeap, - PVRSRV_HANDLE_TYPE_DEV_MEM_HEAP); - if(psMapDevMemOUT->eError != PVRSRV_OK) - { - return 0; - } + + if (psSrcKernelMemInfo->sShareMemWorkaround.bInUse) + { + PVR_DPF((PVR_DBG_MESSAGE, "using the mem wrap workaround.")); - - if (psSrcKernelMemInfo->sShareMemWorkaround.bInUse) - { - PVR_DPF((PVR_DBG_MESSAGE, "using the mem wrap workaround.")); + - + psMapDevMemOUT->eError = BM_XProcWorkaroundSetShareIndex(psSrcKernelMemInfo->sShareMemWorkaround.ui32ShareIndex); + if(psMapDevMemOUT->eError != PVRSRV_OK) + { + PVR_DPF((PVR_DBG_ERROR, "PVRSRVMapDeviceMemoryBW(): failed to recycle shared buffer")); + return 0; + } - psMapDevMemOUT->eError = BM_XProcWorkaroundSetShareIndex(psSrcKernelMemInfo->sShareMemWorkaround.ui32ShareIndex); - if(psMapDevMemOUT->eError != PVRSRV_OK) - { - PVR_DPF((PVR_DBG_ERROR, "PVRSRVMapDeviceMemoryBW(): failed to recycle shared buffer")); - return 0; - } + psMapDevMemOUT->eError = + PVRSRVAllocDeviceMemKM(psSrcKernelMemInfo->sShareMemWorkaround.hDevCookieInt, + psPerProc, + hDstDevMemHeap, + psSrcKernelMemInfo->sShareMemWorkaround.ui32OrigReqAttribs | PVRSRV_MEM_NO_SYNCOBJ, + psSrcKernelMemInfo->sShareMemWorkaround.ui32OrigReqSize, + psSrcKernelMemInfo->sShareMemWorkaround.ui32OrigReqAlignment, + &psDstKernelMemInfo, + "" ); + - psMapDevMemOUT->eError = - PVRSRVAllocDeviceMemKM(psSrcKernelMemInfo->sShareMemWorkaround.hDevCookieInt, - psPerProc, - hDstDevMemHeap, - psSrcKernelMemInfo->sShareMemWorkaround.ui32OrigReqAttribs | PVRSRV_MEM_NO_SYNCOBJ, - psSrcKernelMemInfo->sShareMemWorkaround.ui32OrigReqSize, - psSrcKernelMemInfo->sShareMemWorkaround.ui32OrigReqAlignment, - &psDstKernelMemInfo, - "" ); - - - BM_XProcWorkaroundUnsetShareIndex(psSrcKernelMemInfo->sShareMemWorkaround.ui32ShareIndex); - if(psMapDevMemOUT->eError != PVRSRV_OK) - { - PVR_DPF((PVR_DBG_ERROR, "lakjgfgewjlrgebhe")); - return 0; - } + BM_XProcWorkaroundUnsetShareIndex(psSrcKernelMemInfo->sShareMemWorkaround.ui32ShareIndex); + if(psMapDevMemOUT->eError != PVRSRV_OK) + { + PVR_DPF((PVR_DBG_ERROR, "lakjgfgewjlrgebhe")); + return 0; + } - if(psSrcKernelMemInfo->psKernelSyncInfo) - { - psSrcKernelMemInfo->psKernelSyncInfo->ui32RefCount++; - } + if(psSrcKernelMemInfo->psKernelSyncInfo) + { + psSrcKernelMemInfo->psKernelSyncInfo->ui32RefCount++; + } - psDstKernelMemInfo->psKernelSyncInfo = psSrcKernelMemInfo->psKernelSyncInfo; - } - else - { - - psMapDevMemOUT->eError = PVRSRVMapDeviceMemoryKM(psPerProc, - psSrcKernelMemInfo, - hDstDevMemHeap, - &psDstKernelMemInfo); - if(psMapDevMemOUT->eError != PVRSRV_OK) - { - return 0; - } - } + psDstKernelMemInfo->psKernelSyncInfo = psSrcKernelMemInfo->psKernelSyncInfo; + } + else + { + + psMapDevMemOUT->eError = PVRSRVMapDeviceMemoryKM(psPerProc, + psSrcKernelMemInfo, + hDstDevMemHeap, + &psDstKernelMemInfo); + if(psMapDevMemOUT->eError != PVRSRV_OK) + { + return 0; + } + } - - psDstKernelMemInfo->sShareMemWorkaround = psSrcKernelMemInfo->sShareMemWorkaround; + + psDstKernelMemInfo->sShareMemWorkaround = psSrcKernelMemInfo->sShareMemWorkaround; - OSMemSet(&psMapDevMemOUT->sDstClientMemInfo, - 0, - sizeof(psMapDevMemOUT->sDstClientMemInfo)); - OSMemSet(&psMapDevMemOUT->sDstClientSyncInfo, - 0, - sizeof(psMapDevMemOUT->sDstClientSyncInfo)); + OSMemSet(&psMapDevMemOUT->sDstClientMemInfo, + 0, + sizeof(psMapDevMemOUT->sDstClientMemInfo)); + OSMemSet(&psMapDevMemOUT->sDstClientSyncInfo, + 0, + sizeof(psMapDevMemOUT->sDstClientSyncInfo)); - psMapDevMemOUT->sDstClientMemInfo.pvLinAddrKM = - psDstKernelMemInfo->pvLinAddrKM; + psMapDevMemOUT->sDstClientMemInfo.pvLinAddrKM = + psDstKernelMemInfo->pvLinAddrKM; - psMapDevMemOUT->sDstClientMemInfo.pvLinAddr = 0; - psMapDevMemOUT->sDstClientMemInfo.sDevVAddr = psDstKernelMemInfo->sDevVAddr; - psMapDevMemOUT->sDstClientMemInfo.ui32Flags = psDstKernelMemInfo->ui32Flags; + psMapDevMemOUT->sDstClientMemInfo.pvLinAddr = 0; + psMapDevMemOUT->sDstClientMemInfo.sDevVAddr = psDstKernelMemInfo->sDevVAddr; + psMapDevMemOUT->sDstClientMemInfo.ui32Flags = psDstKernelMemInfo->ui32Flags; psMapDevMemOUT->sDstClientMemInfo.uAllocSize = psDstKernelMemInfo->uAllocSize; #if defined (SUPPORT_SID_INTERFACE) + #else - psMapDevMemOUT->sDstClientMemInfo.hMappingInfo = psDstKernelMemInfo->sMemBlk.hOSMemHandle; + psMapDevMemOUT->sDstClientMemInfo.hMappingInfo = psDstKernelMemInfo->sMemBlk.hOSMemHandle; #endif - - PVRSRVAllocHandleNR(psPerProc->psHandleBase, - &psMapDevMemOUT->sDstClientMemInfo.hKernelMemInfo, - psDstKernelMemInfo, - PVRSRV_HANDLE_TYPE_MEM_INFO, - PVRSRV_HANDLE_ALLOC_FLAG_NONE); - psMapDevMemOUT->sDstClientSyncInfo.hKernelSyncInfo = IMG_NULL; + + PVRSRVAllocHandleNR(psPerProc->psHandleBase, + &psMapDevMemOUT->sDstClientMemInfo.hKernelMemInfo, + psDstKernelMemInfo, + PVRSRV_HANDLE_TYPE_MEM_INFO, + PVRSRV_HANDLE_ALLOC_FLAG_NONE); + psMapDevMemOUT->sDstClientSyncInfo.hKernelSyncInfo = IMG_NULL; #if defined (SUPPORT_SID_INTERFACE) - - if (psDstKernelMemInfo->sMemBlk.hOSMemHandle != IMG_NULL) - { - PVRSRVAllocSubHandleNR(psPerProc->psHandleBase, - &psMapDevMemOUT->sDstClientMemInfo.hMappingInfo, - psDstKernelMemInfo->sMemBlk.hOSMemHandle, - PVRSRV_HANDLE_TYPE_MEM_INFO, - PVRSRV_HANDLE_ALLOC_FLAG_NONE, - psMapDevMemOUT->sDstClientMemInfo.hKernelMemInfo); - } - else - { - psMapDevMemOUT->sDstClientMemInfo.hMappingInfo = 0; - } + + if (psDstKernelMemInfo->sMemBlk.hOSMemHandle != IMG_NULL) + { + PVRSRVAllocSubHandleNR(psPerProc->psHandleBase, + &psMapDevMemOUT->sDstClientMemInfo.hMappingInfo, + psDstKernelMemInfo->sMemBlk.hOSMemHandle, + PVRSRV_HANDLE_TYPE_MEM_INFO, + PVRSRV_HANDLE_ALLOC_FLAG_NONE, + psMapDevMemOUT->sDstClientMemInfo.hKernelMemInfo); + } + else + { + psMapDevMemOUT->sDstClientMemInfo.hMappingInfo = 0; + } #endif - - if(psDstKernelMemInfo->psKernelSyncInfo) - { + + if(psDstKernelMemInfo->psKernelSyncInfo) + { #if !defined(PVRSRV_DISABLE_UM_SYNCOBJ_MAPPINGS) - psMapDevMemOUT->sDstClientSyncInfo.psSyncData = - psDstKernelMemInfo->psKernelSyncInfo->psSyncData; - psMapDevMemOUT->sDstClientSyncInfo.sWriteOpsCompleteDevVAddr = - psDstKernelMemInfo->psKernelSyncInfo->sWriteOpsCompleteDevVAddr; - psMapDevMemOUT->sDstClientSyncInfo.sReadOpsCompleteDevVAddr = - psDstKernelMemInfo->psKernelSyncInfo->sReadOpsCompleteDevVAddr; + psMapDevMemOUT->sDstClientSyncInfo.psSyncData = + psDstKernelMemInfo->psKernelSyncInfo->psSyncData; + psMapDevMemOUT->sDstClientSyncInfo.sWriteOpsCompleteDevVAddr = + psDstKernelMemInfo->psKernelSyncInfo->sWriteOpsCompleteDevVAddr; + psMapDevMemOUT->sDstClientSyncInfo.sReadOpsCompleteDevVAddr = + psDstKernelMemInfo->psKernelSyncInfo->sReadOpsCompleteDevVAddr; #if defined (SUPPORT_SID_INTERFACE) - - if (psDstKernelMemInfo->psKernelSyncInfo->psSyncDataMemInfoKM->sMemBlk.hOSMemHandle != IMG_NULL) - { - PVRSRVAllocSubHandleNR(psPerProc->psHandleBase, - &psMapDevMemOUT->sDstClientSyncInfo.hMappingInfo, - psDstKernelMemInfo->psKernelSyncInfo->psSyncDataMemInfoKM->sMemBlk.hOSMemHandle, - PVRSRV_HANDLE_TYPE_MEM_INFO, - PVRSRV_HANDLE_ALLOC_FLAG_NONE, - psMapDevMemOUT->sDstClientMemInfo.hKernelMemInfo); - } - else - { - psMapDevMemOUT->sDstClientSyncInfo.hMappingInfo = 0; - } + + if (psDstKernelMemInfo->psKernelSyncInfo->psSyncDataMemInfoKM->sMemBlk.hOSMemHandle != IMG_NULL) + { + PVRSRVAllocSubHandleNR(psPerProc->psHandleBase, + &psMapDevMemOUT->sDstClientSyncInfo.hMappingInfo, + psDstKernelMemInfo->psKernelSyncInfo->psSyncDataMemInfoKM->sMemBlk.hOSMemHandle, + PVRSRV_HANDLE_TYPE_MEM_INFO, + PVRSRV_HANDLE_ALLOC_FLAG_NONE, + psMapDevMemOUT->sDstClientMemInfo.hKernelMemInfo); + } + else + { + psMapDevMemOUT->sDstClientSyncInfo.hMappingInfo = 0; + } #else - psMapDevMemOUT->sDstClientSyncInfo.hMappingInfo = - psDstKernelMemInfo->psKernelSyncInfo->psSyncDataMemInfoKM->sMemBlk.hOSMemHandle; + psMapDevMemOUT->sDstClientSyncInfo.hMappingInfo = + psDstKernelMemInfo->psKernelSyncInfo->psSyncDataMemInfoKM->sMemBlk.hOSMemHandle; #endif #endif - psMapDevMemOUT->sDstClientMemInfo.psClientSyncInfo = &psMapDevMemOUT->sDstClientSyncInfo; - - PVRSRVAllocSubHandleNR(psPerProc->psHandleBase, - &psMapDevMemOUT->sDstClientSyncInfo.hKernelSyncInfo, - psDstKernelMemInfo->psKernelSyncInfo, - PVRSRV_HANDLE_TYPE_SYNC_INFO, - PVRSRV_HANDLE_ALLOC_FLAG_MULTI, - psMapDevMemOUT->sDstClientMemInfo.hKernelMemInfo); - } + psMapDevMemOUT->sDstClientMemInfo.psClientSyncInfo = &psMapDevMemOUT->sDstClientSyncInfo; + + PVRSRVAllocSubHandleNR(psPerProc->psHandleBase, + &psMapDevMemOUT->sDstClientSyncInfo.hKernelSyncInfo, + psDstKernelMemInfo->psKernelSyncInfo, + PVRSRV_HANDLE_TYPE_SYNC_INFO, + PVRSRV_HANDLE_ALLOC_FLAG_MULTI, + psMapDevMemOUT->sDstClientMemInfo.hKernelMemInfo); + } - COMMIT_HANDLE_BATCH_OR_ERROR(psMapDevMemOUT->eError, psPerProc) + COMMIT_HANDLE_BATCH_OR_ERROR(psMapDevMemOUT->eError, psPerProc) - return 0; + return 0; } static IMG_INT PVRSRVUnmapDeviceMemoryBW(IMG_UINT32 ui32BridgeID, - PVRSRV_BRIDGE_IN_UNMAP_DEV_MEMORY *psUnmapDevMemIN, - PVRSRV_BRIDGE_RETURN *psRetOUT, - PVRSRV_PER_PROCESS_DATA *psPerProc) + PVRSRV_BRIDGE_IN_UNMAP_DEV_MEMORY *psUnmapDevMemIN, + PVRSRV_BRIDGE_RETURN *psRetOUT, + PVRSRV_PER_PROCESS_DATA *psPerProc) { - PVRSRV_KERNEL_MEM_INFO *psKernelMemInfo = IMG_NULL; + PVRSRV_KERNEL_MEM_INFO *psKernelMemInfo = IMG_NULL; - PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_UNMAP_DEV_MEMORY); + PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_UNMAP_DEV_MEMORY); - psRetOUT->eError = PVRSRVLookupHandle(psPerProc->psHandleBase, - (IMG_VOID**)&psKernelMemInfo, + psRetOUT->eError = PVRSRVLookupHandle(psPerProc->psHandleBase, + (IMG_VOID**)&psKernelMemInfo, #if defined (SUPPORT_SID_INTERFACE) - psUnmapDevMemIN->hKernelMemInfo, + psUnmapDevMemIN->hKernelMemInfo, #else - psUnmapDevMemIN->psKernelMemInfo, + psUnmapDevMemIN->psKernelMemInfo, #endif - PVRSRV_HANDLE_TYPE_MEM_INFO); - if(psRetOUT->eError != PVRSRV_OK) - { - return 0; - } + PVRSRV_HANDLE_TYPE_MEM_INFO); + if(psRetOUT->eError != PVRSRV_OK) + { + return 0; + } - if (psKernelMemInfo->sShareMemWorkaround.bInUse) - { - psRetOUT->eError = PVRSRVFreeDeviceMemKM(psKernelMemInfo->sShareMemWorkaround.hDevCookieInt, psKernelMemInfo); - if(psRetOUT->eError != PVRSRV_OK) - { - PVR_DPF((PVR_DBG_ERROR, "PVRSRVUnmapDeviceMemoryBW: internal error, should expect FreeDeviceMem to fail")); - return 0; - } - } - else - { - psRetOUT->eError = PVRSRVUnmapDeviceMemoryKM(psKernelMemInfo); - if(psRetOUT->eError != PVRSRV_OK) - { - return 0; - } - } + if (psKernelMemInfo->sShareMemWorkaround.bInUse) + { + psRetOUT->eError = PVRSRVFreeDeviceMemKM(psKernelMemInfo->sShareMemWorkaround.hDevCookieInt, psKernelMemInfo); + if(psRetOUT->eError != PVRSRV_OK) + { + PVR_DPF((PVR_DBG_ERROR, "PVRSRVUnmapDeviceMemoryBW: internal error, should expect FreeDeviceMem to fail")); + return 0; + } + } + else + { + psRetOUT->eError = PVRSRVUnmapDeviceMemoryKM(psKernelMemInfo); + if(psRetOUT->eError != PVRSRV_OK) + { + return 0; + } + } - psRetOUT->eError = PVRSRVReleaseHandle(psPerProc->psHandleBase, + psRetOUT->eError = PVRSRVReleaseHandle(psPerProc->psHandleBase, #if defined (SUPPORT_SID_INTERFACE) - psUnmapDevMemIN->hKernelMemInfo, + psUnmapDevMemIN->hKernelMemInfo, #else - psUnmapDevMemIN->psKernelMemInfo, + psUnmapDevMemIN->psKernelMemInfo, #endif - PVRSRV_HANDLE_TYPE_MEM_INFO); + PVRSRV_HANDLE_TYPE_MEM_INFO); - return 0; + return 0; } static IMG_INT PVRSRVMapDeviceClassMemoryBW(IMG_UINT32 ui32BridgeID, - PVRSRV_BRIDGE_IN_MAP_DEVICECLASS_MEMORY *psMapDevClassMemIN, - PVRSRV_BRIDGE_OUT_MAP_DEVICECLASS_MEMORY *psMapDevClassMemOUT, - PVRSRV_PER_PROCESS_DATA *psPerProc) + PVRSRV_BRIDGE_IN_MAP_DEVICECLASS_MEMORY *psMapDevClassMemIN, + PVRSRV_BRIDGE_OUT_MAP_DEVICECLASS_MEMORY *psMapDevClassMemOUT, + PVRSRV_PER_PROCESS_DATA *psPerProc) { - PVRSRV_KERNEL_MEM_INFO *psMemInfo; - IMG_HANDLE hOSMapInfo; - IMG_HANDLE hDeviceClassBufferInt; - IMG_HANDLE hDevMemContextInt; - PVRSRV_HANDLE_TYPE eHandleType; + PVRSRV_KERNEL_MEM_INFO *psMemInfo; + IMG_HANDLE hOSMapInfo; + IMG_HANDLE hDeviceClassBufferInt; + IMG_HANDLE hDevMemContextInt; + PVRSRV_HANDLE_TYPE eHandleType; - PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_MAP_DEVICECLASS_MEMORY); + PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_MAP_DEVICECLASS_MEMORY); - NEW_HANDLE_BATCH_OR_ERROR(psMapDevClassMemOUT->eError, psPerProc, 2) + NEW_HANDLE_BATCH_OR_ERROR(psMapDevClassMemOUT->eError, psPerProc, 2) - - psMapDevClassMemOUT->eError = + + psMapDevClassMemOUT->eError = PVRSRVLookupHandleAnyType(psPerProc->psHandleBase, - &hDeviceClassBufferInt, - &eHandleType, - psMapDevClassMemIN->hDeviceClassBuffer); + &hDeviceClassBufferInt, + &eHandleType, + psMapDevClassMemIN->hDeviceClassBuffer); - if(psMapDevClassMemOUT->eError != PVRSRV_OK) - { - return 0; - } + if(psMapDevClassMemOUT->eError != PVRSRV_OK) + { + return 0; + } - - psMapDevClassMemOUT->eError = - PVRSRVLookupHandle(psPerProc->psHandleBase, - &hDevMemContextInt, - psMapDevClassMemIN->hDevMemContext, - PVRSRV_HANDLE_TYPE_DEV_MEM_CONTEXT); + + psMapDevClassMemOUT->eError = + PVRSRVLookupHandle(psPerProc->psHandleBase, + &hDevMemContextInt, + psMapDevClassMemIN->hDevMemContext, + PVRSRV_HANDLE_TYPE_DEV_MEM_CONTEXT); - if(psMapDevClassMemOUT->eError != PVRSRV_OK) - { - return 0; - } + if(psMapDevClassMemOUT->eError != PVRSRV_OK) + { + return 0; + } - - switch(eHandleType) - { + + switch(eHandleType) + { #if defined(PVR_SECURE_HANDLES) || defined (SUPPORT_SID_INTERFACE) - case PVRSRV_HANDLE_TYPE_DISP_BUFFER: - case PVRSRV_HANDLE_TYPE_BUF_BUFFER: + case PVRSRV_HANDLE_TYPE_DISP_BUFFER: + case PVRSRV_HANDLE_TYPE_BUF_BUFFER: #else - case PVRSRV_HANDLE_TYPE_NONE: + case PVRSRV_HANDLE_TYPE_NONE: #endif - break; - default: - psMapDevClassMemOUT->eError = PVRSRV_ERROR_INVALID_HANDLE_TYPE; - return 0; - } + break; + default: + psMapDevClassMemOUT->eError = PVRSRV_ERROR_INVALID_HANDLE_TYPE; + return 0; + } - psMapDevClassMemOUT->eError = - PVRSRVMapDeviceClassMemoryKM(psPerProc, - hDevMemContextInt, - hDeviceClassBufferInt, - &psMemInfo, - &hOSMapInfo); - if(psMapDevClassMemOUT->eError != PVRSRV_OK) - { - return 0; - } + psMapDevClassMemOUT->eError = + PVRSRVMapDeviceClassMemoryKM(psPerProc, + hDevMemContextInt, + hDeviceClassBufferInt, + &psMemInfo, + &hOSMapInfo); + if(psMapDevClassMemOUT->eError != PVRSRV_OK) + { + return 0; + } - OSMemSet(&psMapDevClassMemOUT->sClientMemInfo, - 0, - sizeof(psMapDevClassMemOUT->sClientMemInfo)); - OSMemSet(&psMapDevClassMemOUT->sClientSyncInfo, - 0, - sizeof(psMapDevClassMemOUT->sClientSyncInfo)); + OSMemSet(&psMapDevClassMemOUT->sClientMemInfo, + 0, + sizeof(psMapDevClassMemOUT->sClientMemInfo)); + OSMemSet(&psMapDevClassMemOUT->sClientSyncInfo, + 0, + sizeof(psMapDevClassMemOUT->sClientSyncInfo)); - psMapDevClassMemOUT->sClientMemInfo.pvLinAddrKM = - psMemInfo->pvLinAddrKM; + psMapDevClassMemOUT->sClientMemInfo.pvLinAddrKM = + psMemInfo->pvLinAddrKM; - psMapDevClassMemOUT->sClientMemInfo.pvLinAddr = 0; - psMapDevClassMemOUT->sClientMemInfo.sDevVAddr = psMemInfo->sDevVAddr; - psMapDevClassMemOUT->sClientMemInfo.ui32Flags = psMemInfo->ui32Flags; + psMapDevClassMemOUT->sClientMemInfo.pvLinAddr = 0; + psMapDevClassMemOUT->sClientMemInfo.sDevVAddr = psMemInfo->sDevVAddr; + psMapDevClassMemOUT->sClientMemInfo.ui32Flags = psMemInfo->ui32Flags; psMapDevClassMemOUT->sClientMemInfo.uAllocSize = psMemInfo->uAllocSize; #if defined (SUPPORT_SID_INTERFACE) - if (psMemInfo->sMemBlk.hOSMemHandle != 0) - { - PVRSRVAllocSubHandleNR(psPerProc->psHandleBase, - &psMapDevClassMemOUT->sClientMemInfo.hMappingInfo, - psMemInfo->sMemBlk.hOSMemHandle, - PVRSRV_HANDLE_TYPE_MEM_INFO, - PVRSRV_HANDLE_ALLOC_FLAG_NONE, - psMapDevClassMemIN->hDeviceClassBuffer); - } - else - { - psMapDevClassMemOUT->sClientMemInfo.hMappingInfo = 0; - } + if (psMemInfo->sMemBlk.hOSMemHandle != 0) + { + PVRSRVAllocSubHandleNR(psPerProc->psHandleBase, + &psMapDevClassMemOUT->sClientMemInfo.hMappingInfo, + psMemInfo->sMemBlk.hOSMemHandle, + PVRSRV_HANDLE_TYPE_MEM_INFO, + PVRSRV_HANDLE_ALLOC_FLAG_NONE, + psMapDevClassMemIN->hDeviceClassBuffer); + } + else + { + psMapDevClassMemOUT->sClientMemInfo.hMappingInfo = 0; + } #else - psMapDevClassMemOUT->sClientMemInfo.hMappingInfo = psMemInfo->sMemBlk.hOSMemHandle; + psMapDevClassMemOUT->sClientMemInfo.hMappingInfo = psMemInfo->sMemBlk.hOSMemHandle; #endif - PVRSRVAllocSubHandleNR(psPerProc->psHandleBase, - &psMapDevClassMemOUT->sClientMemInfo.hKernelMemInfo, - psMemInfo, - PVRSRV_HANDLE_TYPE_MEM_INFO, - PVRSRV_HANDLE_ALLOC_FLAG_NONE, - psMapDevClassMemIN->hDeviceClassBuffer); + PVRSRVAllocSubHandleNR(psPerProc->psHandleBase, + &psMapDevClassMemOUT->sClientMemInfo.hKernelMemInfo, + psMemInfo, + PVRSRV_HANDLE_TYPE_MEM_INFO, + PVRSRV_HANDLE_ALLOC_FLAG_NONE, + psMapDevClassMemIN->hDeviceClassBuffer); - psMapDevClassMemOUT->sClientSyncInfo.hKernelSyncInfo = IMG_NULL; + psMapDevClassMemOUT->sClientSyncInfo.hKernelSyncInfo = IMG_NULL; - - if(psMemInfo->psKernelSyncInfo) - { + + if(psMemInfo->psKernelSyncInfo) + { #if !defined(PVRSRV_DISABLE_UM_SYNCOBJ_MAPPINGS) - psMapDevClassMemOUT->sClientSyncInfo.psSyncData = - psMemInfo->psKernelSyncInfo->psSyncData; - psMapDevClassMemOUT->sClientSyncInfo.sWriteOpsCompleteDevVAddr = - psMemInfo->psKernelSyncInfo->sWriteOpsCompleteDevVAddr; - psMapDevClassMemOUT->sClientSyncInfo.sReadOpsCompleteDevVAddr = - psMemInfo->psKernelSyncInfo->sReadOpsCompleteDevVAddr; + psMapDevClassMemOUT->sClientSyncInfo.psSyncData = + psMemInfo->psKernelSyncInfo->psSyncData; + psMapDevClassMemOUT->sClientSyncInfo.sWriteOpsCompleteDevVAddr = + psMemInfo->psKernelSyncInfo->sWriteOpsCompleteDevVAddr; + psMapDevClassMemOUT->sClientSyncInfo.sReadOpsCompleteDevVAddr = + psMemInfo->psKernelSyncInfo->sReadOpsCompleteDevVAddr; #if defined (SUPPORT_SID_INTERFACE) - if (psMemInfo->psKernelSyncInfo->psSyncDataMemInfoKM->sMemBlk.hOSMemHandle != 0) - { - PVRSRVAllocSubHandleNR(psPerProc->psHandleBase, - &psMapDevClassMemOUT->sClientSyncInfo.hMappingInfo, - psMemInfo->psKernelSyncInfo->psSyncDataMemInfoKM->sMemBlk.hOSMemHandle, - PVRSRV_HANDLE_TYPE_SYNC_INFO, - PVRSRV_HANDLE_ALLOC_FLAG_MULTI, - psMapDevClassMemOUT->sClientMemInfo.hKernelMemInfo); - } - else - { - psMapDevClassMemOUT->sClientSyncInfo.hMappingInfo = 0; - } + if (psMemInfo->psKernelSyncInfo->psSyncDataMemInfoKM->sMemBlk.hOSMemHandle != 0) + { + PVRSRVAllocSubHandleNR(psPerProc->psHandleBase, + &psMapDevClassMemOUT->sClientSyncInfo.hMappingInfo, + psMemInfo->psKernelSyncInfo->psSyncDataMemInfoKM->sMemBlk.hOSMemHandle, + PVRSRV_HANDLE_TYPE_SYNC_INFO, + PVRSRV_HANDLE_ALLOC_FLAG_MULTI, + psMapDevClassMemOUT->sClientMemInfo.hKernelMemInfo); + } + else + { + psMapDevClassMemOUT->sClientSyncInfo.hMappingInfo = 0; + } #else - psMapDevClassMemOUT->sClientSyncInfo.hMappingInfo = - psMemInfo->psKernelSyncInfo->psSyncDataMemInfoKM->sMemBlk.hOSMemHandle; + psMapDevClassMemOUT->sClientSyncInfo.hMappingInfo = + psMemInfo->psKernelSyncInfo->psSyncDataMemInfoKM->sMemBlk.hOSMemHandle; #endif #endif - psMapDevClassMemOUT->sClientMemInfo.psClientSyncInfo = &psMapDevClassMemOUT->sClientSyncInfo; - - PVRSRVAllocSubHandleNR(psPerProc->psHandleBase, - &psMapDevClassMemOUT->sClientSyncInfo.hKernelSyncInfo, - psMemInfo->psKernelSyncInfo, - PVRSRV_HANDLE_TYPE_SYNC_INFO, - PVRSRV_HANDLE_ALLOC_FLAG_MULTI, - psMapDevClassMemOUT->sClientMemInfo.hKernelMemInfo); - } + psMapDevClassMemOUT->sClientMemInfo.psClientSyncInfo = &psMapDevClassMemOUT->sClientSyncInfo; + + PVRSRVAllocSubHandleNR(psPerProc->psHandleBase, + &psMapDevClassMemOUT->sClientSyncInfo.hKernelSyncInfo, + psMemInfo->psKernelSyncInfo, + PVRSRV_HANDLE_TYPE_SYNC_INFO, + PVRSRV_HANDLE_ALLOC_FLAG_MULTI, + psMapDevClassMemOUT->sClientMemInfo.hKernelMemInfo); + } - COMMIT_HANDLE_BATCH_OR_ERROR(psMapDevClassMemOUT->eError, psPerProc) + COMMIT_HANDLE_BATCH_OR_ERROR(psMapDevClassMemOUT->eError, psPerProc) - return 0; + return 0; } static IMG_INT PVRSRVUnmapDeviceClassMemoryBW(IMG_UINT32 ui32BridgeID, - PVRSRV_BRIDGE_IN_UNMAP_DEVICECLASS_MEMORY *psUnmapDevClassMemIN, - PVRSRV_BRIDGE_RETURN *psRetOUT, - PVRSRV_PER_PROCESS_DATA *psPerProc) + PVRSRV_BRIDGE_IN_UNMAP_DEVICECLASS_MEMORY *psUnmapDevClassMemIN, + PVRSRV_BRIDGE_RETURN *psRetOUT, + PVRSRV_PER_PROCESS_DATA *psPerProc) { - IMG_VOID *pvKernelMemInfo; + IMG_VOID *pvKernelMemInfo; - PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_UNMAP_DEVICECLASS_MEMORY); + PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_UNMAP_DEVICECLASS_MEMORY); - psRetOUT->eError = - PVRSRVLookupHandle(psPerProc->psHandleBase, &pvKernelMemInfo, + psRetOUT->eError = + PVRSRVLookupHandle(psPerProc->psHandleBase, &pvKernelMemInfo, #if defined (SUPPORT_SID_INTERFACE) - psUnmapDevClassMemIN->hKernelMemInfo, + psUnmapDevClassMemIN->hKernelMemInfo, #else - psUnmapDevClassMemIN->psKernelMemInfo, + psUnmapDevClassMemIN->psKernelMemInfo, #endif - PVRSRV_HANDLE_TYPE_MEM_INFO); - if(psRetOUT->eError != PVRSRV_OK) - { - return 0; - } + PVRSRV_HANDLE_TYPE_MEM_INFO); + if(psRetOUT->eError != PVRSRV_OK) + { + return 0; + } - psRetOUT->eError = PVRSRVUnmapDeviceClassMemoryKM(pvKernelMemInfo); + psRetOUT->eError = PVRSRVUnmapDeviceClassMemoryKM(pvKernelMemInfo); - if(psRetOUT->eError != PVRSRV_OK) - { - return 0; - } + if(psRetOUT->eError != PVRSRV_OK) + { + return 0; + } - psRetOUT->eError = - PVRSRVReleaseHandle(psPerProc->psHandleBase, + psRetOUT->eError = + PVRSRVReleaseHandle(psPerProc->psHandleBase, #if defined (SUPPORT_SID_INTERFACE) - psUnmapDevClassMemIN->hKernelMemInfo, + psUnmapDevClassMemIN->hKernelMemInfo, #else - psUnmapDevClassMemIN->psKernelMemInfo, + psUnmapDevClassMemIN->psKernelMemInfo, #endif - PVRSRV_HANDLE_TYPE_MEM_INFO); + PVRSRV_HANDLE_TYPE_MEM_INFO); - return 0; + return 0; } #if defined(OS_PVRSRV_WRAP_EXT_MEM_BW) IMG_INT PVRSRVWrapExtMemoryBW(IMG_UINT32 ui32BridgeID, - PVRSRV_BRIDGE_IN_WRAP_EXT_MEMORY *psWrapExtMemIN, - PVRSRV_BRIDGE_OUT_WRAP_EXT_MEMORY *psWrapExtMemOUT, - PVRSRV_PER_PROCESS_DATA *psPerProc); + PVRSRV_BRIDGE_IN_WRAP_EXT_MEMORY *psWrapExtMemIN, + PVRSRV_BRIDGE_OUT_WRAP_EXT_MEMORY *psWrapExtMemOUT, + PVRSRV_PER_PROCESS_DATA *psPerProc); #else static IMG_INT PVRSRVWrapExtMemoryBW(IMG_UINT32 ui32BridgeID, - PVRSRV_BRIDGE_IN_WRAP_EXT_MEMORY *psWrapExtMemIN, - PVRSRV_BRIDGE_OUT_WRAP_EXT_MEMORY *psWrapExtMemOUT, - PVRSRV_PER_PROCESS_DATA *psPerProc) + PVRSRV_BRIDGE_IN_WRAP_EXT_MEMORY *psWrapExtMemIN, + PVRSRV_BRIDGE_OUT_WRAP_EXT_MEMORY *psWrapExtMemOUT, + PVRSRV_PER_PROCESS_DATA *psPerProc) { - IMG_HANDLE hDevCookieInt; - IMG_HANDLE hDevMemContextInt; - PVRSRV_KERNEL_MEM_INFO *psMemInfo; - IMG_SYS_PHYADDR *psSysPAddr = IMG_NULL; + IMG_HANDLE hDevCookieInt; + IMG_HANDLE hDevMemContextInt; + PVRSRV_KERNEL_MEM_INFO *psMemInfo; + IMG_SYS_PHYADDR *psSysPAddr = IMG_NULL; IMG_UINT32 ui32PageTableSize = 0; - PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_WRAP_EXT_MEMORY); + PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_WRAP_EXT_MEMORY); - NEW_HANDLE_BATCH_OR_ERROR(psWrapExtMemOUT->eError, psPerProc, 2) + NEW_HANDLE_BATCH_OR_ERROR(psWrapExtMemOUT->eError, psPerProc, 2) - - psWrapExtMemOUT->eError = - PVRSRVLookupHandle(psPerProc->psHandleBase, &hDevCookieInt, - psWrapExtMemIN->hDevCookie, - PVRSRV_HANDLE_TYPE_DEV_NODE); - if(psWrapExtMemOUT->eError != PVRSRV_OK) - { - return 0; - } + + psWrapExtMemOUT->eError = + PVRSRVLookupHandle(psPerProc->psHandleBase, &hDevCookieInt, + psWrapExtMemIN->hDevCookie, + PVRSRV_HANDLE_TYPE_DEV_NODE); + if(psWrapExtMemOUT->eError != PVRSRV_OK) + { + return 0; + } - - psWrapExtMemOUT->eError = - PVRSRVLookupHandle(psPerProc->psHandleBase, &hDevMemContextInt, - psWrapExtMemIN->hDevMemContext, - PVRSRV_HANDLE_TYPE_DEV_MEM_CONTEXT); + + psWrapExtMemOUT->eError = + PVRSRVLookupHandle(psPerProc->psHandleBase, &hDevMemContextInt, + psWrapExtMemIN->hDevMemContext, + PVRSRV_HANDLE_TYPE_DEV_MEM_CONTEXT); - if(psWrapExtMemOUT->eError != PVRSRV_OK) - { - return 0; - } + if(psWrapExtMemOUT->eError != PVRSRV_OK) + { + return 0; + } - if(psWrapExtMemIN->ui32NumPageTableEntries) - { - ui32PageTableSize = psWrapExtMemIN->ui32NumPageTableEntries - * sizeof(IMG_SYS_PHYADDR); - - ASSIGN_AND_EXIT_ON_ERROR(psWrapExtMemOUT->eError, - OSAllocMem(PVRSRV_OS_PAGEABLE_HEAP, - ui32PageTableSize, - (IMG_VOID **)&psSysPAddr, 0, - "Page Table")); - - if(CopyFromUserWrapper(psPerProc, - ui32BridgeID, - psSysPAddr, - psWrapExtMemIN->psSysPAddr, - ui32PageTableSize) != PVRSRV_OK) - { - OSFreeMem(PVRSRV_OS_PAGEABLE_HEAP, ui32PageTableSize, (IMG_VOID *)psSysPAddr, 0); - - return -EFAULT; - } - } + if(psWrapExtMemIN->ui32NumPageTableEntries) + { + ui32PageTableSize = psWrapExtMemIN->ui32NumPageTableEntries + * sizeof(IMG_SYS_PHYADDR); + + ASSIGN_AND_EXIT_ON_ERROR(psWrapExtMemOUT->eError, + OSAllocMem(PVRSRV_OS_PAGEABLE_HEAP, + ui32PageTableSize, + (IMG_VOID **)&psSysPAddr, 0, + "Page Table")); + + if(CopyFromUserWrapper(psPerProc, + ui32BridgeID, + psSysPAddr, + psWrapExtMemIN->psSysPAddr, + ui32PageTableSize) != PVRSRV_OK) + { + OSFreeMem(PVRSRV_OS_PAGEABLE_HEAP, ui32PageTableSize, (IMG_VOID *)psSysPAddr, 0); + + return -EFAULT; + } + } - psWrapExtMemOUT->eError = - PVRSRVWrapExtMemoryKM(hDevCookieInt, - psPerProc, - hDevMemContextInt, - psWrapExtMemIN->ui32ByteSize, - psWrapExtMemIN->ui32PageOffset, - psWrapExtMemIN->bPhysContig, - psSysPAddr, - psWrapExtMemIN->pvLinAddr, - psWrapExtMemIN->ui32Flags, - &psMemInfo); - - if(psWrapExtMemIN->ui32NumPageTableEntries) - { - OSFreeMem(PVRSRV_OS_PAGEABLE_HEAP, - ui32PageTableSize, - (IMG_VOID *)psSysPAddr, 0); - - } + psWrapExtMemOUT->eError = + PVRSRVWrapExtMemoryKM(hDevCookieInt, + psPerProc, + hDevMemContextInt, + psWrapExtMemIN->ui32ByteSize, + psWrapExtMemIN->ui32PageOffset, + psWrapExtMemIN->bPhysContig, + psSysPAddr, + psWrapExtMemIN->pvLinAddr, + psWrapExtMemIN->ui32Flags, + &psMemInfo); + + if(psWrapExtMemIN->ui32NumPageTableEntries) + { + OSFreeMem(PVRSRV_OS_PAGEABLE_HEAP, + ui32PageTableSize, + (IMG_VOID *)psSysPAddr, 0); + + } - if(psWrapExtMemOUT->eError != PVRSRV_OK) - { - return 0; - } + if(psWrapExtMemOUT->eError != PVRSRV_OK) + { + return 0; + } - psWrapExtMemOUT->sClientMemInfo.pvLinAddrKM = - psMemInfo->pvLinAddrKM; + psWrapExtMemOUT->sClientMemInfo.pvLinAddrKM = + psMemInfo->pvLinAddrKM; - - psWrapExtMemOUT->sClientMemInfo.pvLinAddr = 0; - psWrapExtMemOUT->sClientMemInfo.sDevVAddr = psMemInfo->sDevVAddr; - psWrapExtMemOUT->sClientMemInfo.ui32Flags = psMemInfo->ui32Flags; + + psWrapExtMemOUT->sClientMemInfo.pvLinAddr = 0; + psWrapExtMemOUT->sClientMemInfo.sDevVAddr = psMemInfo->sDevVAddr; + psWrapExtMemOUT->sClientMemInfo.ui32Flags = psMemInfo->ui32Flags; psWrapExtMemOUT->sClientMemInfo.uAllocSize = psMemInfo->uAllocSize; #if defined (SUPPORT_SID_INTERFACE) #else - psWrapExtMemOUT->sClientMemInfo.hMappingInfo = psMemInfo->sMemBlk.hOSMemHandle; + psWrapExtMemOUT->sClientMemInfo.hMappingInfo = psMemInfo->sMemBlk.hOSMemHandle; #endif - PVRSRVAllocHandleNR(psPerProc->psHandleBase, - &psWrapExtMemOUT->sClientMemInfo.hKernelMemInfo, - psMemInfo, - PVRSRV_HANDLE_TYPE_MEM_INFO, - PVRSRV_HANDLE_ALLOC_FLAG_NONE); + PVRSRVAllocHandleNR(psPerProc->psHandleBase, + &psWrapExtMemOUT->sClientMemInfo.hKernelMemInfo, + psMemInfo, + PVRSRV_HANDLE_TYPE_MEM_INFO, + PVRSRV_HANDLE_ALLOC_FLAG_NONE); #if defined (SUPPORT_SID_INTERFACE) - - if (psMemInfo->sMemBlk.hOSMemHandle != IMG_NULL) - { - PVRSRVAllocSubHandleNR(psPerProc->psHandleBase, - &psWrapExtMemOUT->sClientMemInfo.hMappingInfo, - psMemInfo->sMemBlk.hOSMemHandle, - PVRSRV_HANDLE_TYPE_MEM_INFO, - PVRSRV_HANDLE_ALLOC_FLAG_NONE, - psWrapExtMemOUT->sClientMemInfo.hKernelMemInfo); - } - else - { - psWrapExtMemOUT->sClientMemInfo.hMappingInfo = 0; - } + + if (psMemInfo->sMemBlk.hOSMemHandle != IMG_NULL) + { + PVRSRVAllocSubHandleNR(psPerProc->psHandleBase, + &psWrapExtMemOUT->sClientMemInfo.hMappingInfo, + psMemInfo->sMemBlk.hOSMemHandle, + PVRSRV_HANDLE_TYPE_MEM_INFO, + PVRSRV_HANDLE_ALLOC_FLAG_NONE, + psWrapExtMemOUT->sClientMemInfo.hKernelMemInfo); + } + else + { + psWrapExtMemOUT->sClientMemInfo.hMappingInfo = 0; + } #endif - + #if !defined(PVRSRV_DISABLE_UM_SYNCOBJ_MAPPINGS) - psWrapExtMemOUT->sClientSyncInfo.psSyncData = - psMemInfo->psKernelSyncInfo->psSyncData; - psWrapExtMemOUT->sClientSyncInfo.sWriteOpsCompleteDevVAddr = - psMemInfo->psKernelSyncInfo->sWriteOpsCompleteDevVAddr; - psWrapExtMemOUT->sClientSyncInfo.sReadOpsCompleteDevVAddr = - psMemInfo->psKernelSyncInfo->sReadOpsCompleteDevVAddr; + psWrapExtMemOUT->sClientSyncInfo.psSyncData = + psMemInfo->psKernelSyncInfo->psSyncData; + psWrapExtMemOUT->sClientSyncInfo.sWriteOpsCompleteDevVAddr = + psMemInfo->psKernelSyncInfo->sWriteOpsCompleteDevVAddr; + psWrapExtMemOUT->sClientSyncInfo.sReadOpsCompleteDevVAddr = + psMemInfo->psKernelSyncInfo->sReadOpsCompleteDevVAddr; #if defined (SUPPORT_SID_INTERFACE) - - if (psMemInfo->psKernelSyncInfo->psSyncDataMemInfoKM->sMemBlk.hOSMemHandle != IMG_NULL) - { - PVRSRVAllocSubHandleNR(psPerProc->psHandleBase, - &psWrapExtMemOUT->sClientSyncInfo.hMappingInfo, - psMemInfo->psKernelSyncInfo->psSyncDataMemInfoKM->sMemBlk.hOSMemHandle, - PVRSRV_HANDLE_TYPE_MEM_INFO, - PVRSRV_HANDLE_ALLOC_FLAG_NONE, - psWrapExtMemOUT->sClientMemInfo.hKernelMemInfo); - } - else - { - psWrapExtMemOUT->sClientSyncInfo.hMappingInfo = 0; - } + + if (psMemInfo->psKernelSyncInfo->psSyncDataMemInfoKM->sMemBlk.hOSMemHandle != IMG_NULL) + { + PVRSRVAllocSubHandleNR(psPerProc->psHandleBase, + &psWrapExtMemOUT->sClientSyncInfo.hMappingInfo, + psMemInfo->psKernelSyncInfo->psSyncDataMemInfoKM->sMemBlk.hOSMemHandle, + PVRSRV_HANDLE_TYPE_MEM_INFO, + PVRSRV_HANDLE_ALLOC_FLAG_NONE, + psWrapExtMemOUT->sClientMemInfo.hKernelMemInfo); + } + else + { + psWrapExtMemOUT->sClientSyncInfo.hMappingInfo = 0; + } #else - psWrapExtMemOUT->sClientSyncInfo.hMappingInfo = - psMemInfo->psKernelSyncInfo->psSyncDataMemInfoKM->sMemBlk.hOSMemHandle; + psWrapExtMemOUT->sClientSyncInfo.hMappingInfo = + psMemInfo->psKernelSyncInfo->psSyncDataMemInfoKM->sMemBlk.hOSMemHandle; #endif #endif - psWrapExtMemOUT->sClientMemInfo.psClientSyncInfo = &psWrapExtMemOUT->sClientSyncInfo; + psWrapExtMemOUT->sClientMemInfo.psClientSyncInfo = &psWrapExtMemOUT->sClientSyncInfo; - PVRSRVAllocSubHandleNR(psPerProc->psHandleBase, - &psWrapExtMemOUT->sClientSyncInfo.hKernelSyncInfo, - (IMG_HANDLE)psMemInfo->psKernelSyncInfo, - PVRSRV_HANDLE_TYPE_SYNC_INFO, - PVRSRV_HANDLE_ALLOC_FLAG_NONE, - psWrapExtMemOUT->sClientMemInfo.hKernelMemInfo); + PVRSRVAllocSubHandleNR(psPerProc->psHandleBase, + &psWrapExtMemOUT->sClientSyncInfo.hKernelSyncInfo, + (IMG_HANDLE)psMemInfo->psKernelSyncInfo, + PVRSRV_HANDLE_TYPE_SYNC_INFO, + PVRSRV_HANDLE_ALLOC_FLAG_NONE, + psWrapExtMemOUT->sClientMemInfo.hKernelMemInfo); - COMMIT_HANDLE_BATCH_OR_ERROR(psWrapExtMemOUT->eError, psPerProc) + COMMIT_HANDLE_BATCH_OR_ERROR(psWrapExtMemOUT->eError, psPerProc) - return 0; + return 0; } #endif static IMG_INT PVRSRVUnwrapExtMemoryBW(IMG_UINT32 ui32BridgeID, - PVRSRV_BRIDGE_IN_UNWRAP_EXT_MEMORY *psUnwrapExtMemIN, - PVRSRV_BRIDGE_RETURN *psRetOUT, - PVRSRV_PER_PROCESS_DATA *psPerProc) + PVRSRV_BRIDGE_IN_UNWRAP_EXT_MEMORY *psUnwrapExtMemIN, + PVRSRV_BRIDGE_RETURN *psRetOUT, + PVRSRV_PER_PROCESS_DATA *psPerProc) { - IMG_VOID *pvMemInfo; + IMG_VOID *pvMemInfo; - PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_UNWRAP_EXT_MEMORY); + PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_UNWRAP_EXT_MEMORY); - psRetOUT->eError = - PVRSRVLookupHandle(psPerProc->psHandleBase, - &pvMemInfo, - psUnwrapExtMemIN->hKernelMemInfo, - PVRSRV_HANDLE_TYPE_MEM_INFO); - if(psRetOUT->eError != PVRSRV_OK) - { - return 0; - } + psRetOUT->eError = + PVRSRVLookupHandle(psPerProc->psHandleBase, + &pvMemInfo, + psUnwrapExtMemIN->hKernelMemInfo, + PVRSRV_HANDLE_TYPE_MEM_INFO); + if(psRetOUT->eError != PVRSRV_OK) + { + return 0; + } - psRetOUT->eError = - PVRSRVUnwrapExtMemoryKM((PVRSRV_KERNEL_MEM_INFO *)pvMemInfo); - if(psRetOUT->eError != PVRSRV_OK) - { - return 0; - } + psRetOUT->eError = + PVRSRVUnwrapExtMemoryKM((PVRSRV_KERNEL_MEM_INFO *)pvMemInfo); + if(psRetOUT->eError != PVRSRV_OK) + { + return 0; + } - psRetOUT->eError = - PVRSRVReleaseHandle(psPerProc->psHandleBase, - psUnwrapExtMemIN->hKernelMemInfo, - PVRSRV_HANDLE_TYPE_MEM_INFO); + psRetOUT->eError = + PVRSRVReleaseHandle(psPerProc->psHandleBase, + psUnwrapExtMemIN->hKernelMemInfo, + PVRSRV_HANDLE_TYPE_MEM_INFO); - return 0; + return 0; } static IMG_INT PVRSRVGetFreeDeviceMemBW(IMG_UINT32 ui32BridgeID, - PVRSRV_BRIDGE_IN_GETFREEDEVICEMEM *psGetFreeDeviceMemIN, - PVRSRV_BRIDGE_OUT_GETFREEDEVICEMEM *psGetFreeDeviceMemOUT, - PVRSRV_PER_PROCESS_DATA *psPerProc) + PVRSRV_BRIDGE_IN_GETFREEDEVICEMEM *psGetFreeDeviceMemIN, + PVRSRV_BRIDGE_OUT_GETFREEDEVICEMEM *psGetFreeDeviceMemOUT, + PVRSRV_PER_PROCESS_DATA *psPerProc) { - PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_GETFREE_DEVICEMEM); + PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_GETFREE_DEVICEMEM); - PVR_UNREFERENCED_PARAMETER(psPerProc); + PVR_UNREFERENCED_PARAMETER(psPerProc); - psGetFreeDeviceMemOUT->eError = - PVRSRVGetFreeDeviceMemKM(psGetFreeDeviceMemIN->ui32Flags, - &psGetFreeDeviceMemOUT->ui32Total, - &psGetFreeDeviceMemOUT->ui32Free, - &psGetFreeDeviceMemOUT->ui32LargestBlock); + psGetFreeDeviceMemOUT->eError = + PVRSRVGetFreeDeviceMemKM(psGetFreeDeviceMemIN->ui32Flags, + &psGetFreeDeviceMemOUT->ui32Total, + &psGetFreeDeviceMemOUT->ui32Free, + &psGetFreeDeviceMemOUT->ui32LargestBlock); - return 0; + return 0; } static IMG_INT PVRMMapOSMemHandleToMMapDataBW(IMG_UINT32 ui32BridgeID, - PVRSRV_BRIDGE_IN_MHANDLE_TO_MMAP_DATA *psMMapDataIN, - PVRSRV_BRIDGE_OUT_MHANDLE_TO_MMAP_DATA *psMMapDataOUT, - PVRSRV_PER_PROCESS_DATA *psPerProc) + PVRSRV_BRIDGE_IN_MHANDLE_TO_MMAP_DATA *psMMapDataIN, + PVRSRV_BRIDGE_OUT_MHANDLE_TO_MMAP_DATA *psMMapDataOUT, + PVRSRV_PER_PROCESS_DATA *psPerProc) { - PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_MHANDLE_TO_MMAP_DATA); + PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_MHANDLE_TO_MMAP_DATA); #if defined (__linux__) - psMMapDataOUT->eError = - PVRMMapOSMemHandleToMMapData(psPerProc, - psMMapDataIN->hMHandle, - &psMMapDataOUT->ui32MMapOffset, - &psMMapDataOUT->ui32ByteOffset, - &psMMapDataOUT->ui32RealByteSize, - &psMMapDataOUT->ui32UserVAddr); + psMMapDataOUT->eError = + PVRMMapOSMemHandleToMMapData(psPerProc, + psMMapDataIN->hMHandle, + &psMMapDataOUT->ui32MMapOffset, + &psMMapDataOUT->ui32ByteOffset, + &psMMapDataOUT->ui32RealByteSize, + &psMMapDataOUT->ui32UserVAddr); #else - PVR_UNREFERENCED_PARAMETER(psPerProc); - PVR_UNREFERENCED_PARAMETER(psMMapDataIN); + PVR_UNREFERENCED_PARAMETER(psPerProc); + PVR_UNREFERENCED_PARAMETER(psMMapDataIN); - psMMapDataOUT->eError = PVRSRV_ERROR_NOT_SUPPORTED; + psMMapDataOUT->eError = PVRSRV_ERROR_NOT_SUPPORTED; #endif - return 0; + return 0; } static IMG_INT PVRMMapReleaseMMapDataBW(IMG_UINT32 ui32BridgeID, - PVRSRV_BRIDGE_IN_RELEASE_MMAP_DATA *psMMapDataIN, - PVRSRV_BRIDGE_OUT_RELEASE_MMAP_DATA *psMMapDataOUT, - PVRSRV_PER_PROCESS_DATA *psPerProc) + PVRSRV_BRIDGE_IN_RELEASE_MMAP_DATA *psMMapDataIN, + PVRSRV_BRIDGE_OUT_RELEASE_MMAP_DATA *psMMapDataOUT, + PVRSRV_PER_PROCESS_DATA *psPerProc) { - PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_RELEASE_MMAP_DATA); + PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_RELEASE_MMAP_DATA); #if defined (__linux__) - psMMapDataOUT->eError = - PVRMMapReleaseMMapData(psPerProc, - psMMapDataIN->hMHandle, - &psMMapDataOUT->bMUnmap, - &psMMapDataOUT->ui32RealByteSize, - &psMMapDataOUT->ui32UserVAddr); + psMMapDataOUT->eError = + PVRMMapReleaseMMapData(psPerProc, + psMMapDataIN->hMHandle, + &psMMapDataOUT->bMUnmap, + &psMMapDataOUT->ui32RealByteSize, + &psMMapDataOUT->ui32UserVAddr); #else - PVR_UNREFERENCED_PARAMETER(psPerProc); - PVR_UNREFERENCED_PARAMETER(psMMapDataIN); + PVR_UNREFERENCED_PARAMETER(psPerProc); + PVR_UNREFERENCED_PARAMETER(psMMapDataIN); - psMMapDataOUT->eError = PVRSRV_ERROR_NOT_SUPPORTED; + psMMapDataOUT->eError = PVRSRV_ERROR_NOT_SUPPORTED; #endif - return 0; + return 0; } @@ -1531,25 +1531,25 @@ PVRSRVChangeDeviceMemoryAttributesBW(IMG_UINT32 ui32BridgeID, PVRSRV_BRIDGE_RETURN *psRetOUT, PVRSRV_PER_PROCESS_DATA *psPerProc) { - IMG_HANDLE hKernelMemInfo; + IMG_HANDLE hKernelMemInfo; - PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_CHG_DEV_MEM_ATTRIBS); + PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_CHG_DEV_MEM_ATTRIBS); - psRetOUT->eError = - PVRSRVLookupHandle(psPerProc->psHandleBase, - &hKernelMemInfo, - psChgMemAttribIN->hKernelMemInfo, - PVRSRV_HANDLE_TYPE_MEM_INFO); + psRetOUT->eError = + PVRSRVLookupHandle(psPerProc->psHandleBase, + &hKernelMemInfo, + psChgMemAttribIN->hKernelMemInfo, + PVRSRV_HANDLE_TYPE_MEM_INFO); - if(psRetOUT->eError != PVRSRV_OK) - { - return 0; - } + if(psRetOUT->eError != PVRSRV_OK) + { + return 0; + } - psRetOUT->eError = - PVRSRVChangeDeviceMemoryAttributesKM(hKernelMemInfo, psChgMemAttribIN->ui32Attribs); + psRetOUT->eError = + PVRSRVChangeDeviceMemoryAttributesKM(hKernelMemInfo, psChgMemAttribIN->ui32Attribs); - return 0; + return 0; } #else static IMG_INT @@ -1558,501 +1558,501 @@ PVRSRVChangeDeviceMemoryAttributesBW(IMG_UINT32 ui32BridgeID, PVRSRV_BRIDGE_RETURN *psRetOUT, PVRSRV_PER_PROCESS_DATA *psPerProc) { - PVR_UNREFERENCED_PARAMETER(ui32BridgeID); - PVR_UNREFERENCED_PARAMETER(psChgMemAttribIN); - PVR_UNREFERENCED_PARAMETER(psRetOUT); - PVR_UNREFERENCED_PARAMETER(psPerProc); + PVR_UNREFERENCED_PARAMETER(ui32BridgeID); + PVR_UNREFERENCED_PARAMETER(psChgMemAttribIN); + PVR_UNREFERENCED_PARAMETER(psRetOUT); + PVR_UNREFERENCED_PARAMETER(psPerProc); - return 0; + return 0; } #endif #ifdef PDUMP static IMG_INT PDumpIsCaptureFrameBW(IMG_UINT32 ui32BridgeID, - IMG_VOID *psBridgeIn, - PVRSRV_BRIDGE_OUT_PDUMP_ISCAPTURING *psPDumpIsCapturingOUT, - PVRSRV_PER_PROCESS_DATA *psPerProc) + IMG_VOID *psBridgeIn, + PVRSRV_BRIDGE_OUT_PDUMP_ISCAPTURING *psPDumpIsCapturingOUT, + PVRSRV_PER_PROCESS_DATA *psPerProc) { - PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_PDUMP_ISCAPTURING); - PVR_UNREFERENCED_PARAMETER(psBridgeIn); - PVR_UNREFERENCED_PARAMETER(psPerProc); + PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_PDUMP_ISCAPTURING); + PVR_UNREFERENCED_PARAMETER(psBridgeIn); + PVR_UNREFERENCED_PARAMETER(psPerProc); - psPDumpIsCapturingOUT->bIsCapturing = PDumpIsCaptureFrameKM(); - psPDumpIsCapturingOUT->eError = PVRSRV_OK; + psPDumpIsCapturingOUT->bIsCapturing = PDumpIsCaptureFrameKM(); + psPDumpIsCapturingOUT->eError = PVRSRV_OK; - return 0; + return 0; } static IMG_INT PDumpCommentBW(IMG_UINT32 ui32BridgeID, - PVRSRV_BRIDGE_IN_PDUMP_COMMENT *psPDumpCommentIN, - PVRSRV_BRIDGE_RETURN *psRetOUT, - PVRSRV_PER_PROCESS_DATA *psPerProc) + PVRSRV_BRIDGE_IN_PDUMP_COMMENT *psPDumpCommentIN, + PVRSRV_BRIDGE_RETURN *psRetOUT, + PVRSRV_PER_PROCESS_DATA *psPerProc) { - PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_PDUMP_COMMENT); - PVR_UNREFERENCED_PARAMETER(psPerProc); + PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_PDUMP_COMMENT); + PVR_UNREFERENCED_PARAMETER(psPerProc); - psRetOUT->eError = PDumpCommentKM(&psPDumpCommentIN->szComment[0], - psPDumpCommentIN->ui32Flags); - return 0; + psRetOUT->eError = PDumpCommentKM(&psPDumpCommentIN->szComment[0], + psPDumpCommentIN->ui32Flags); + return 0; } static IMG_INT PDumpSetFrameBW(IMG_UINT32 ui32BridgeID, - PVRSRV_BRIDGE_IN_PDUMP_SETFRAME *psPDumpSetFrameIN, - PVRSRV_BRIDGE_RETURN *psRetOUT, - PVRSRV_PER_PROCESS_DATA *psPerProc) + PVRSRV_BRIDGE_IN_PDUMP_SETFRAME *psPDumpSetFrameIN, + PVRSRV_BRIDGE_RETURN *psRetOUT, + PVRSRV_PER_PROCESS_DATA *psPerProc) { - PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_PDUMP_SETFRAME); - PVR_UNREFERENCED_PARAMETER(psPerProc); + PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_PDUMP_SETFRAME); + PVR_UNREFERENCED_PARAMETER(psPerProc); - psRetOUT->eError = PDumpSetFrameKM(psPDumpSetFrameIN->ui32Frame); + psRetOUT->eError = PDumpSetFrameKM(psPDumpSetFrameIN->ui32Frame); - return 0; + return 0; } static IMG_INT PDumpRegWithFlagsBW(IMG_UINT32 ui32BridgeID, - PVRSRV_BRIDGE_IN_PDUMP_DUMPREG *psPDumpRegDumpIN, - PVRSRV_BRIDGE_RETURN *psRetOUT, - PVRSRV_PER_PROCESS_DATA *psPerProc) + PVRSRV_BRIDGE_IN_PDUMP_DUMPREG *psPDumpRegDumpIN, + PVRSRV_BRIDGE_RETURN *psRetOUT, + PVRSRV_PER_PROCESS_DATA *psPerProc) { - PVRSRV_DEVICE_NODE *psDeviceNode; + PVRSRV_DEVICE_NODE *psDeviceNode; - PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_PDUMP_REG); + PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_PDUMP_REG); - psRetOUT->eError = - PVRSRVLookupHandle(psPerProc->psHandleBase, - (IMG_VOID **)&psDeviceNode, - psPDumpRegDumpIN->hDevCookie, - PVRSRV_HANDLE_TYPE_DEV_NODE); - if(psRetOUT->eError != PVRSRV_OK) - { - return 0; - } + psRetOUT->eError = + PVRSRVLookupHandle(psPerProc->psHandleBase, + (IMG_VOID **)&psDeviceNode, + psPDumpRegDumpIN->hDevCookie, + PVRSRV_HANDLE_TYPE_DEV_NODE); + if(psRetOUT->eError != PVRSRV_OK) + { + return 0; + } - psRetOUT->eError = PDumpRegWithFlagsKM (psPDumpRegDumpIN->szRegRegion, - psPDumpRegDumpIN->sHWReg.ui32RegAddr, - psPDumpRegDumpIN->sHWReg.ui32RegVal, - psPDumpRegDumpIN->ui32Flags); + psRetOUT->eError = PDumpRegWithFlagsKM (psPDumpRegDumpIN->szRegRegion, + psPDumpRegDumpIN->sHWReg.ui32RegAddr, + psPDumpRegDumpIN->sHWReg.ui32RegVal, + psPDumpRegDumpIN->ui32Flags); - return 0; + return 0; } static IMG_INT PDumpRegPolBW(IMG_UINT32 ui32BridgeID, - PVRSRV_BRIDGE_IN_PDUMP_REGPOL *psPDumpRegPolIN, - PVRSRV_BRIDGE_RETURN *psRetOUT, - PVRSRV_PER_PROCESS_DATA *psPerProc) + PVRSRV_BRIDGE_IN_PDUMP_REGPOL *psPDumpRegPolIN, + PVRSRV_BRIDGE_RETURN *psRetOUT, + PVRSRV_PER_PROCESS_DATA *psPerProc) { - PVRSRV_DEVICE_NODE *psDeviceNode; + PVRSRV_DEVICE_NODE *psDeviceNode; - PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_PDUMP_REGPOL); + PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_PDUMP_REGPOL); - psRetOUT->eError = - PVRSRVLookupHandle(psPerProc->psHandleBase, - (IMG_VOID **)&psDeviceNode, - psPDumpRegPolIN->hDevCookie, - PVRSRV_HANDLE_TYPE_DEV_NODE); - if(psRetOUT->eError != PVRSRV_OK) - { - return 0; - } + psRetOUT->eError = + PVRSRVLookupHandle(psPerProc->psHandleBase, + (IMG_VOID **)&psDeviceNode, + psPDumpRegPolIN->hDevCookie, + PVRSRV_HANDLE_TYPE_DEV_NODE); + if(psRetOUT->eError != PVRSRV_OK) + { + return 0; + } - psRetOUT->eError = - PDumpRegPolWithFlagsKM(psPDumpRegPolIN->szRegRegion, - psPDumpRegPolIN->sHWReg.ui32RegAddr, - psPDumpRegPolIN->sHWReg.ui32RegVal, - psPDumpRegPolIN->ui32Mask, - psPDumpRegPolIN->ui32Flags, - PDUMP_POLL_OPERATOR_EQUAL); + psRetOUT->eError = + PDumpRegPolWithFlagsKM(psPDumpRegPolIN->szRegRegion, + psPDumpRegPolIN->sHWReg.ui32RegAddr, + psPDumpRegPolIN->sHWReg.ui32RegVal, + psPDumpRegPolIN->ui32Mask, + psPDumpRegPolIN->ui32Flags, + PDUMP_POLL_OPERATOR_EQUAL); - return 0; + return 0; } static IMG_INT PDumpMemPolBW(IMG_UINT32 ui32BridgeID, - PVRSRV_BRIDGE_IN_PDUMP_MEMPOL *psPDumpMemPolIN, - PVRSRV_BRIDGE_RETURN *psRetOUT, - PVRSRV_PER_PROCESS_DATA *psPerProc) + PVRSRV_BRIDGE_IN_PDUMP_MEMPOL *psPDumpMemPolIN, + PVRSRV_BRIDGE_RETURN *psRetOUT, + PVRSRV_PER_PROCESS_DATA *psPerProc) { - IMG_VOID *pvMemInfo; + IMG_VOID *pvMemInfo; - PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_PDUMP_MEMPOL); + PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_PDUMP_MEMPOL); - psRetOUT->eError = - PVRSRVLookupHandle(psPerProc->psHandleBase, - &pvMemInfo, + psRetOUT->eError = + PVRSRVLookupHandle(psPerProc->psHandleBase, + &pvMemInfo, #if defined (SUPPORT_SID_INTERFACE) psPDumpMemPolIN->hKernelMemInfo, #else - psPDumpMemPolIN->psKernelMemInfo, + psPDumpMemPolIN->psKernelMemInfo, #endif - PVRSRV_HANDLE_TYPE_MEM_INFO); - if(psRetOUT->eError != PVRSRV_OK) - { - return 0; - } + PVRSRV_HANDLE_TYPE_MEM_INFO); + if(psRetOUT->eError != PVRSRV_OK) + { + return 0; + } - psRetOUT->eError = - PDumpMemPolKM(((PVRSRV_KERNEL_MEM_INFO *)pvMemInfo), - psPDumpMemPolIN->ui32Offset, - psPDumpMemPolIN->ui32Value, - psPDumpMemPolIN->ui32Mask, - psPDumpMemPolIN->eOperator, - psPDumpMemPolIN->ui32Flags, - MAKEUNIQUETAG(pvMemInfo)); + psRetOUT->eError = + PDumpMemPolKM(((PVRSRV_KERNEL_MEM_INFO *)pvMemInfo), + psPDumpMemPolIN->ui32Offset, + psPDumpMemPolIN->ui32Value, + psPDumpMemPolIN->ui32Mask, + psPDumpMemPolIN->eOperator, + psPDumpMemPolIN->ui32Flags, + MAKEUNIQUETAG(pvMemInfo)); - return 0; + return 0; } static IMG_INT PDumpMemBW(IMG_UINT32 ui32BridgeID, - PVRSRV_BRIDGE_IN_PDUMP_DUMPMEM *psPDumpMemDumpIN, - PVRSRV_BRIDGE_RETURN *psRetOUT, - PVRSRV_PER_PROCESS_DATA *psPerProc) + PVRSRV_BRIDGE_IN_PDUMP_DUMPMEM *psPDumpMemDumpIN, + PVRSRV_BRIDGE_RETURN *psRetOUT, + PVRSRV_PER_PROCESS_DATA *psPerProc) { - IMG_VOID *pvMemInfo; + IMG_VOID *pvMemInfo; - PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_PDUMP_DUMPMEM); + PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_PDUMP_DUMPMEM); - psRetOUT->eError = - PVRSRVLookupHandle(psPerProc->psHandleBase, - &pvMemInfo, + psRetOUT->eError = + PVRSRVLookupHandle(psPerProc->psHandleBase, + &pvMemInfo, #if defined (SUPPORT_SID_INTERFACE) - psPDumpMemDumpIN->hKernelMemInfo, + psPDumpMemDumpIN->hKernelMemInfo, #else - psPDumpMemDumpIN->psKernelMemInfo, + psPDumpMemDumpIN->psKernelMemInfo, #endif - PVRSRV_HANDLE_TYPE_MEM_INFO); - if(psRetOUT->eError != PVRSRV_OK) - { - return 0; - } - - psRetOUT->eError = - PDumpMemUM(psPerProc, - psPDumpMemDumpIN->pvAltLinAddr, - psPDumpMemDumpIN->pvLinAddr, - pvMemInfo, - psPDumpMemDumpIN->ui32Offset, - psPDumpMemDumpIN->ui32Bytes, - psPDumpMemDumpIN->ui32Flags, - MAKEUNIQUETAG(pvMemInfo)); + PVRSRV_HANDLE_TYPE_MEM_INFO); + if(psRetOUT->eError != PVRSRV_OK) + { + return 0; + } - return 0; + psRetOUT->eError = + PDumpMemUM(psPerProc, + psPDumpMemDumpIN->pvAltLinAddr, + psPDumpMemDumpIN->pvLinAddr, + pvMemInfo, + psPDumpMemDumpIN->ui32Offset, + psPDumpMemDumpIN->ui32Bytes, + psPDumpMemDumpIN->ui32Flags, + MAKEUNIQUETAG(pvMemInfo)); + + return 0; } static IMG_INT PDumpBitmapBW(IMG_UINT32 ui32BridgeID, - PVRSRV_BRIDGE_IN_PDUMP_BITMAP *psPDumpBitmapIN, - PVRSRV_BRIDGE_RETURN *psRetOUT, - PVRSRV_PER_PROCESS_DATA *psPerProc) + PVRSRV_BRIDGE_IN_PDUMP_BITMAP *psPDumpBitmapIN, + PVRSRV_BRIDGE_RETURN *psRetOUT, + PVRSRV_PER_PROCESS_DATA *psPerProc) { - PVRSRV_DEVICE_NODE *psDeviceNode; - IMG_HANDLE hDevMemContextInt; + PVRSRV_DEVICE_NODE *psDeviceNode; + IMG_HANDLE hDevMemContextInt; - PVR_UNREFERENCED_PARAMETER(ui32BridgeID); + PVR_UNREFERENCED_PARAMETER(ui32BridgeID); - psRetOUT->eError = - PVRSRVLookupHandle(psPerProc->psHandleBase, (IMG_VOID **)&psDeviceNode, - psPDumpBitmapIN->hDevCookie, - PVRSRV_HANDLE_TYPE_DEV_NODE); + psRetOUT->eError = + PVRSRVLookupHandle(psPerProc->psHandleBase, (IMG_VOID **)&psDeviceNode, + psPDumpBitmapIN->hDevCookie, + PVRSRV_HANDLE_TYPE_DEV_NODE); - psRetOUT->eError = - PVRSRVLookupHandle( psPerProc->psHandleBase, - &hDevMemContextInt, - psPDumpBitmapIN->hDevMemContext, - PVRSRV_HANDLE_TYPE_DEV_MEM_CONTEXT); + psRetOUT->eError = + PVRSRVLookupHandle( psPerProc->psHandleBase, + &hDevMemContextInt, + psPDumpBitmapIN->hDevMemContext, + PVRSRV_HANDLE_TYPE_DEV_MEM_CONTEXT); - if(psRetOUT->eError != PVRSRV_OK) - { - return 0; - } - - psRetOUT->eError = - PDumpBitmapKM(psDeviceNode, - &psPDumpBitmapIN->szFileName[0], - psPDumpBitmapIN->ui32FileOffset, - psPDumpBitmapIN->ui32Width, - psPDumpBitmapIN->ui32Height, - psPDumpBitmapIN->ui32StrideInBytes, - psPDumpBitmapIN->sDevBaseAddr, - hDevMemContextInt, - psPDumpBitmapIN->ui32Size, - psPDumpBitmapIN->ePixelFormat, - psPDumpBitmapIN->eMemFormat, - psPDumpBitmapIN->ui32Flags); + if(psRetOUT->eError != PVRSRV_OK) + { + return 0; + } - return 0; + psRetOUT->eError = + PDumpBitmapKM(psDeviceNode, + &psPDumpBitmapIN->szFileName[0], + psPDumpBitmapIN->ui32FileOffset, + psPDumpBitmapIN->ui32Width, + psPDumpBitmapIN->ui32Height, + psPDumpBitmapIN->ui32StrideInBytes, + psPDumpBitmapIN->sDevBaseAddr, + hDevMemContextInt, + psPDumpBitmapIN->ui32Size, + psPDumpBitmapIN->ePixelFormat, + psPDumpBitmapIN->eMemFormat, + psPDumpBitmapIN->ui32Flags); + + return 0; } static IMG_INT PDumpReadRegBW(IMG_UINT32 ui32BridgeID, - PVRSRV_BRIDGE_IN_PDUMP_READREG *psPDumpReadRegIN, - PVRSRV_BRIDGE_RETURN *psRetOUT, - PVRSRV_PER_PROCESS_DATA *psPerProc) + PVRSRV_BRIDGE_IN_PDUMP_READREG *psPDumpReadRegIN, + PVRSRV_BRIDGE_RETURN *psRetOUT, + PVRSRV_PER_PROCESS_DATA *psPerProc) { - PVRSRV_DEVICE_NODE *psDeviceNode; + PVRSRV_DEVICE_NODE *psDeviceNode; - PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_PDUMP_DUMPREADREG); + PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_PDUMP_DUMPREADREG); - psRetOUT->eError = - PVRSRVLookupHandle(psPerProc->psHandleBase, (IMG_VOID **)&psDeviceNode, - psPDumpReadRegIN->hDevCookie, - PVRSRV_HANDLE_TYPE_DEV_NODE); + psRetOUT->eError = + PVRSRVLookupHandle(psPerProc->psHandleBase, (IMG_VOID **)&psDeviceNode, + psPDumpReadRegIN->hDevCookie, + PVRSRV_HANDLE_TYPE_DEV_NODE); - psRetOUT->eError = - PDumpReadRegKM(&psPDumpReadRegIN->szRegRegion[0], - &psPDumpReadRegIN->szFileName[0], - psPDumpReadRegIN->ui32FileOffset, - psPDumpReadRegIN->ui32Address, - psPDumpReadRegIN->ui32Size, - psPDumpReadRegIN->ui32Flags); + psRetOUT->eError = + PDumpReadRegKM(&psPDumpReadRegIN->szRegRegion[0], + &psPDumpReadRegIN->szFileName[0], + psPDumpReadRegIN->ui32FileOffset, + psPDumpReadRegIN->ui32Address, + psPDumpReadRegIN->ui32Size, + psPDumpReadRegIN->ui32Flags); - return 0; + return 0; } static IMG_INT PDumpMemPagesBW(IMG_UINT32 ui32BridgeID, - PVRSRV_BRIDGE_IN_PDUMP_MEMPAGES *psPDumpMemPagesIN, - PVRSRV_BRIDGE_RETURN *psRetOUT, - PVRSRV_PER_PROCESS_DATA *psPerProc) + PVRSRV_BRIDGE_IN_PDUMP_MEMPAGES *psPDumpMemPagesIN, + PVRSRV_BRIDGE_RETURN *psRetOUT, + PVRSRV_PER_PROCESS_DATA *psPerProc) { - PVRSRV_DEVICE_NODE *psDeviceNode; + PVRSRV_DEVICE_NODE *psDeviceNode; - PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_PDUMP_MEMPAGES); + PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_PDUMP_MEMPAGES); - psRetOUT->eError = - PVRSRVLookupHandle(psPerProc->psHandleBase, - (IMG_VOID **)&psDeviceNode, - psPDumpMemPagesIN->hDevCookie, - PVRSRV_HANDLE_TYPE_DEV_NODE); + psRetOUT->eError = + PVRSRVLookupHandle(psPerProc->psHandleBase, + (IMG_VOID **)&psDeviceNode, + psPDumpMemPagesIN->hDevCookie, + PVRSRV_HANDLE_TYPE_DEV_NODE); - if(psRetOUT->eError != PVRSRV_OK) - { - return 0; - } + if(psRetOUT->eError != PVRSRV_OK) + { + return 0; + } - return 0; + return 0; } static IMG_INT PDumpDriverInfoBW(IMG_UINT32 ui32BridgeID, - PVRSRV_BRIDGE_IN_PDUMP_DRIVERINFO *psPDumpDriverInfoIN, - PVRSRV_BRIDGE_RETURN *psRetOUT, - PVRSRV_PER_PROCESS_DATA *psPerProc) + PVRSRV_BRIDGE_IN_PDUMP_DRIVERINFO *psPDumpDriverInfoIN, + PVRSRV_BRIDGE_RETURN *psRetOUT, + PVRSRV_PER_PROCESS_DATA *psPerProc) { - IMG_UINT32 ui32PDumpFlags; + IMG_UINT32 ui32PDumpFlags; - PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_PDUMP_DRIVERINFO); - PVR_UNREFERENCED_PARAMETER(psPerProc); + PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_PDUMP_DRIVERINFO); + PVR_UNREFERENCED_PARAMETER(psPerProc); - ui32PDumpFlags = 0; - if(psPDumpDriverInfoIN->bContinuous) - { - ui32PDumpFlags |= PDUMP_FLAGS_CONTINUOUS; - } - psRetOUT->eError = - PDumpDriverInfoKM(&psPDumpDriverInfoIN->szString[0], - ui32PDumpFlags); + ui32PDumpFlags = 0; + if(psPDumpDriverInfoIN->bContinuous) + { + ui32PDumpFlags |= PDUMP_FLAGS_CONTINUOUS; + } + psRetOUT->eError = + PDumpDriverInfoKM(&psPDumpDriverInfoIN->szString[0], + ui32PDumpFlags); - return 0; + return 0; } static IMG_INT PDumpSyncDumpBW(IMG_UINT32 ui32BridgeID, - PVRSRV_BRIDGE_IN_PDUMP_DUMPSYNC *psPDumpSyncDumpIN, - PVRSRV_BRIDGE_RETURN *psRetOUT, - PVRSRV_PER_PROCESS_DATA *psPerProc) + PVRSRV_BRIDGE_IN_PDUMP_DUMPSYNC *psPDumpSyncDumpIN, + PVRSRV_BRIDGE_RETURN *psRetOUT, + PVRSRV_PER_PROCESS_DATA *psPerProc) { - IMG_UINT32 ui32Bytes = psPDumpSyncDumpIN->ui32Bytes; - IMG_VOID *pvSyncInfo; + IMG_UINT32 ui32Bytes = psPDumpSyncDumpIN->ui32Bytes; + IMG_VOID *pvSyncInfo; - PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_PDUMP_DUMPSYNC); + PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_PDUMP_DUMPSYNC); - psRetOUT->eError = - PVRSRVLookupHandle(psPerProc->psHandleBase, &pvSyncInfo, + psRetOUT->eError = + PVRSRVLookupHandle(psPerProc->psHandleBase, &pvSyncInfo, #if defined (SUPPORT_SID_INTERFACE) psPDumpSyncDumpIN->hKernelSyncInfo, #else - psPDumpSyncDumpIN->psKernelSyncInfo, + psPDumpSyncDumpIN->psKernelSyncInfo, #endif - PVRSRV_HANDLE_TYPE_SYNC_INFO); - if(psRetOUT->eError != PVRSRV_OK) - { - return 0; - } - - psRetOUT->eError = - PDumpMemUM(psPerProc, - psPDumpSyncDumpIN->pvAltLinAddr, - IMG_NULL, - ((PVRSRV_KERNEL_SYNC_INFO *)pvSyncInfo)->psSyncDataMemInfoKM, - psPDumpSyncDumpIN->ui32Offset, - ui32Bytes, - 0, - MAKEUNIQUETAG(((PVRSRV_KERNEL_SYNC_INFO *)pvSyncInfo)->psSyncDataMemInfoKM)); + PVRSRV_HANDLE_TYPE_SYNC_INFO); + if(psRetOUT->eError != PVRSRV_OK) + { + return 0; + } - return 0; + psRetOUT->eError = + PDumpMemUM(psPerProc, + psPDumpSyncDumpIN->pvAltLinAddr, + IMG_NULL, + ((PVRSRV_KERNEL_SYNC_INFO *)pvSyncInfo)->psSyncDataMemInfoKM, + psPDumpSyncDumpIN->ui32Offset, + ui32Bytes, + 0, + MAKEUNIQUETAG(((PVRSRV_KERNEL_SYNC_INFO *)pvSyncInfo)->psSyncDataMemInfoKM)); + + return 0; } static IMG_INT PDumpSyncPolBW(IMG_UINT32 ui32BridgeID, - PVRSRV_BRIDGE_IN_PDUMP_SYNCPOL *psPDumpSyncPolIN, - PVRSRV_BRIDGE_RETURN *psRetOUT, - PVRSRV_PER_PROCESS_DATA *psPerProc) + PVRSRV_BRIDGE_IN_PDUMP_SYNCPOL *psPDumpSyncPolIN, + PVRSRV_BRIDGE_RETURN *psRetOUT, + PVRSRV_PER_PROCESS_DATA *psPerProc) { - IMG_UINT32 ui32Offset; - IMG_VOID *pvSyncInfo; - IMG_UINT32 ui32Value; - IMG_UINT32 ui32Mask; + IMG_UINT32 ui32Offset; + IMG_VOID *pvSyncInfo; + IMG_UINT32 ui32Value; + IMG_UINT32 ui32Mask; - PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_PDUMP_SYNCPOL); + PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_PDUMP_SYNCPOL); - psRetOUT->eError = + psRetOUT->eError = PVRSRVLookupHandle(psPerProc->psHandleBase, &pvSyncInfo, #if defined (SUPPORT_SID_INTERFACE) - psPDumpSyncPolIN->hKernelSyncInfo, + psPDumpSyncPolIN->hKernelSyncInfo, #else - psPDumpSyncPolIN->psKernelSyncInfo, + psPDumpSyncPolIN->psKernelSyncInfo, #endif - PVRSRV_HANDLE_TYPE_SYNC_INFO); - if(psRetOUT->eError != PVRSRV_OK) - { - return 0; - } + PVRSRV_HANDLE_TYPE_SYNC_INFO); + if(psRetOUT->eError != PVRSRV_OK) + { + return 0; + } - if(psPDumpSyncPolIN->bIsRead) - { - ui32Offset = offsetof(PVRSRV_SYNC_DATA, ui32ReadOpsComplete); - } - else - { - ui32Offset = offsetof(PVRSRV_SYNC_DATA, ui32WriteOpsComplete); - } + if(psPDumpSyncPolIN->bIsRead) + { + ui32Offset = offsetof(PVRSRV_SYNC_DATA, ui32ReadOpsComplete); + } + else + { + ui32Offset = offsetof(PVRSRV_SYNC_DATA, ui32WriteOpsComplete); + } - - if (psPDumpSyncPolIN->bUseLastOpDumpVal) - { - if(psPDumpSyncPolIN->bIsRead) - { - ui32Value = ((PVRSRV_KERNEL_SYNC_INFO *)pvSyncInfo)->psSyncData->ui32LastReadOpDumpVal; - } - else - { - ui32Value = ((PVRSRV_KERNEL_SYNC_INFO *)pvSyncInfo)->psSyncData->ui32LastOpDumpVal; - } - ui32Mask = 0xffffffff; - } - else - { - ui32Value = psPDumpSyncPolIN->ui32Value; - ui32Mask = psPDumpSyncPolIN->ui32Mask; - } + + if (psPDumpSyncPolIN->bUseLastOpDumpVal) + { + if(psPDumpSyncPolIN->bIsRead) + { + ui32Value = ((PVRSRV_KERNEL_SYNC_INFO *)pvSyncInfo)->psSyncData->ui32LastReadOpDumpVal; + } + else + { + ui32Value = ((PVRSRV_KERNEL_SYNC_INFO *)pvSyncInfo)->psSyncData->ui32LastOpDumpVal; + } + ui32Mask = 0xffffffff; + } + else + { + ui32Value = psPDumpSyncPolIN->ui32Value; + ui32Mask = psPDumpSyncPolIN->ui32Mask; + } - psRetOUT->eError = - PDumpMemPolKM(((PVRSRV_KERNEL_SYNC_INFO *)pvSyncInfo)->psSyncDataMemInfoKM, - ui32Offset, - ui32Value, - ui32Mask, - PDUMP_POLL_OPERATOR_EQUAL, - 0, - MAKEUNIQUETAG(((PVRSRV_KERNEL_SYNC_INFO *)pvSyncInfo)->psSyncDataMemInfoKM)); + psRetOUT->eError = + PDumpMemPolKM(((PVRSRV_KERNEL_SYNC_INFO *)pvSyncInfo)->psSyncDataMemInfoKM, + ui32Offset, + ui32Value, + ui32Mask, + PDUMP_POLL_OPERATOR_EQUAL, + 0, + MAKEUNIQUETAG(((PVRSRV_KERNEL_SYNC_INFO *)pvSyncInfo)->psSyncDataMemInfoKM)); - return 0; + return 0; } static IMG_INT PDumpCycleCountRegReadBW(IMG_UINT32 ui32BridgeID, - PVRSRV_BRIDGE_IN_PDUMP_CYCLE_COUNT_REG_READ *psPDumpCycleCountRegReadIN, - PVRSRV_BRIDGE_RETURN *psRetOUT, - PVRSRV_PER_PROCESS_DATA *psPerProc) + PVRSRV_BRIDGE_IN_PDUMP_CYCLE_COUNT_REG_READ *psPDumpCycleCountRegReadIN, + PVRSRV_BRIDGE_RETURN *psRetOUT, + PVRSRV_PER_PROCESS_DATA *psPerProc) { - PVRSRV_DEVICE_NODE *psDeviceNode; + PVRSRV_DEVICE_NODE *psDeviceNode; - PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_PDUMP_CYCLE_COUNT_REG_READ); + PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_PDUMP_CYCLE_COUNT_REG_READ); - psRetOUT->eError = - PVRSRVLookupHandle(psPerProc->psHandleBase, - (IMG_VOID **)&psDeviceNode, - psPDumpCycleCountRegReadIN->hDevCookie, - PVRSRV_HANDLE_TYPE_DEV_NODE); - if(psRetOUT->eError != PVRSRV_OK) - { - return 0; - } + psRetOUT->eError = + PVRSRVLookupHandle(psPerProc->psHandleBase, + (IMG_VOID **)&psDeviceNode, + psPDumpCycleCountRegReadIN->hDevCookie, + PVRSRV_HANDLE_TYPE_DEV_NODE); + if(psRetOUT->eError != PVRSRV_OK) + { + return 0; + } - PDumpCycleCountRegRead(&psDeviceNode->sDevId, - psPDumpCycleCountRegReadIN->ui32RegOffset, - psPDumpCycleCountRegReadIN->bLastFrame); + PDumpCycleCountRegRead(&psDeviceNode->sDevId, + psPDumpCycleCountRegReadIN->ui32RegOffset, + psPDumpCycleCountRegReadIN->bLastFrame); - psRetOUT->eError = PVRSRV_OK; + psRetOUT->eError = PVRSRV_OK; - return 0; + return 0; } static IMG_INT PDumpPDDevPAddrBW(IMG_UINT32 ui32BridgeID, - PVRSRV_BRIDGE_IN_PDUMP_DUMPPDDEVPADDR *psPDumpPDDevPAddrIN, - PVRSRV_BRIDGE_RETURN *psRetOUT, - PVRSRV_PER_PROCESS_DATA *psPerProc) + PVRSRV_BRIDGE_IN_PDUMP_DUMPPDDEVPADDR *psPDumpPDDevPAddrIN, + PVRSRV_BRIDGE_RETURN *psRetOUT, + PVRSRV_PER_PROCESS_DATA *psPerProc) { - IMG_VOID *pvMemInfo; + IMG_VOID *pvMemInfo; - PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_PDUMP_DUMPPDDEVPADDR); + PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_PDUMP_DUMPPDDEVPADDR); - psRetOUT->eError = - PVRSRVLookupHandle(psPerProc->psHandleBase, &pvMemInfo, - psPDumpPDDevPAddrIN->hKernelMemInfo, - PVRSRV_HANDLE_TYPE_MEM_INFO); - if(psRetOUT->eError != PVRSRV_OK) - { - return 0; - } + psRetOUT->eError = + PVRSRVLookupHandle(psPerProc->psHandleBase, &pvMemInfo, + psPDumpPDDevPAddrIN->hKernelMemInfo, + PVRSRV_HANDLE_TYPE_MEM_INFO); + if(psRetOUT->eError != PVRSRV_OK) + { + return 0; + } - psRetOUT->eError = - PDumpPDDevPAddrKM((PVRSRV_KERNEL_MEM_INFO *)pvMemInfo, - psPDumpPDDevPAddrIN->ui32Offset, - psPDumpPDDevPAddrIN->sPDDevPAddr, - MAKEUNIQUETAG(pvMemInfo), - PDUMP_PD_UNIQUETAG); - return 0; + psRetOUT->eError = + PDumpPDDevPAddrKM((PVRSRV_KERNEL_MEM_INFO *)pvMemInfo, + psPDumpPDDevPAddrIN->ui32Offset, + psPDumpPDDevPAddrIN->sPDDevPAddr, + MAKEUNIQUETAG(pvMemInfo), + PDUMP_PD_UNIQUETAG); + return 0; } static IMG_INT PDumpStartInitPhaseBW(IMG_UINT32 ui32BridgeID, - IMG_VOID *psBridgeIn, - PVRSRV_BRIDGE_RETURN *psRetOUT, - PVRSRV_PER_PROCESS_DATA *psPerProc) + IMG_VOID *psBridgeIn, + PVRSRV_BRIDGE_RETURN *psRetOUT, + PVRSRV_PER_PROCESS_DATA *psPerProc) { - PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_PDUMP_STARTINITPHASE); - PVR_UNREFERENCED_PARAMETER(psBridgeIn); - PVR_UNREFERENCED_PARAMETER(psPerProc); + PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_PDUMP_STARTINITPHASE); + PVR_UNREFERENCED_PARAMETER(psBridgeIn); + PVR_UNREFERENCED_PARAMETER(psPerProc); - psRetOUT->eError = PDumpStartInitPhaseKM(); + psRetOUT->eError = PDumpStartInitPhaseKM(); - return 0; + return 0; } static IMG_INT PDumpStopInitPhaseBW(IMG_UINT32 ui32BridgeID, - IMG_VOID *psBridgeIn, - PVRSRV_BRIDGE_RETURN *psRetOUT, - PVRSRV_PER_PROCESS_DATA *psPerProc) + IMG_VOID *psBridgeIn, + PVRSRV_BRIDGE_RETURN *psRetOUT, + PVRSRV_PER_PROCESS_DATA *psPerProc) { - PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_PDUMP_STOPINITPHASE); - PVR_UNREFERENCED_PARAMETER(psBridgeIn); - PVR_UNREFERENCED_PARAMETER(psPerProc); + PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_PDUMP_STOPINITPHASE); + PVR_UNREFERENCED_PARAMETER(psBridgeIn); + PVR_UNREFERENCED_PARAMETER(psPerProc); - psRetOUT->eError = PDumpStopInitPhaseKM(); + psRetOUT->eError = PDumpStopInitPhaseKM(); - return 0; + return 0; } #endif @@ -2060,889 +2060,1019 @@ PDumpStopInitPhaseBW(IMG_UINT32 ui32BridgeID, static IMG_INT PVRSRVGetMiscInfoBW(IMG_UINT32 ui32BridgeID, - PVRSRV_BRIDGE_IN_GET_MISC_INFO *psGetMiscInfoIN, - PVRSRV_BRIDGE_OUT_GET_MISC_INFO *psGetMiscInfoOUT, - PVRSRV_PER_PROCESS_DATA *psPerProc) + PVRSRV_BRIDGE_IN_GET_MISC_INFO *psGetMiscInfoIN, + PVRSRV_BRIDGE_OUT_GET_MISC_INFO *psGetMiscInfoOUT, + PVRSRV_PER_PROCESS_DATA *psPerProc) { #if defined (SUPPORT_SID_INTERFACE) PVRSRV_MISC_INFO_KM sMiscInfo = {0}; #endif - PVRSRV_ERROR eError; + PVRSRV_ERROR eError; - PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_GET_MISC_INFO); + PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_GET_MISC_INFO); #if defined (SUPPORT_SID_INTERFACE) - sMiscInfo.ui32StateRequest = psGetMiscInfoIN->sMiscInfo.ui32StateRequest; - sMiscInfo.ui32StatePresent = psGetMiscInfoIN->sMiscInfo.ui32StatePresent; - sMiscInfo.ui32MemoryStrLen = psGetMiscInfoIN->sMiscInfo.ui32MemoryStrLen; - sMiscInfo.pszMemoryStr = psGetMiscInfoIN->sMiscInfo.pszMemoryStr; - - OSMemCopy(&sMiscInfo.sCacheOpCtl, - &psGetMiscInfoIN->sMiscInfo.sCacheOpCtl, - sizeof(sMiscInfo.sCacheOpCtl)); + sMiscInfo.ui32StateRequest = psGetMiscInfoIN->sMiscInfo.ui32StateRequest; + sMiscInfo.ui32StatePresent = psGetMiscInfoIN->sMiscInfo.ui32StatePresent; + sMiscInfo.ui32MemoryStrLen = psGetMiscInfoIN->sMiscInfo.ui32MemoryStrLen; + sMiscInfo.pszMemoryStr = psGetMiscInfoIN->sMiscInfo.pszMemoryStr; + + OSMemCopy(&sMiscInfo.sCacheOpCtl, + &psGetMiscInfoIN->sMiscInfo.sCacheOpCtl, + sizeof(sMiscInfo.sCacheOpCtl)); #else - OSMemCopy(&psGetMiscInfoOUT->sMiscInfo, - &psGetMiscInfoIN->sMiscInfo, - sizeof(PVRSRV_MISC_INFO)); + OSMemCopy(&psGetMiscInfoOUT->sMiscInfo, + &psGetMiscInfoIN->sMiscInfo, + sizeof(PVRSRV_MISC_INFO)); #endif - if (((psGetMiscInfoIN->sMiscInfo.ui32StateRequest & PVRSRV_MISC_INFO_MEMSTATS_PRESENT) != 0) && - ((psGetMiscInfoIN->sMiscInfo.ui32StateRequest & PVRSRV_MISC_INFO_DDKVERSION_PRESENT) != 0) && - ((psGetMiscInfoIN->sMiscInfo.ui32StateRequest & PVRSRV_MISC_INFO_FREEMEM_PRESENT) != 0)) - { - - psGetMiscInfoOUT->eError = PVRSRV_ERROR_INVALID_PARAMS; - return 0; - } + if (((psGetMiscInfoIN->sMiscInfo.ui32StateRequest & PVRSRV_MISC_INFO_MEMSTATS_PRESENT) != 0) && + ((psGetMiscInfoIN->sMiscInfo.ui32StateRequest & PVRSRV_MISC_INFO_DDKVERSION_PRESENT) != 0) && + ((psGetMiscInfoIN->sMiscInfo.ui32StateRequest & PVRSRV_MISC_INFO_FREEMEM_PRESENT) != 0)) + { + + psGetMiscInfoOUT->eError = PVRSRV_ERROR_INVALID_PARAMS; + return 0; + } - if (((psGetMiscInfoIN->sMiscInfo.ui32StateRequest & PVRSRV_MISC_INFO_MEMSTATS_PRESENT) != 0) || - ((psGetMiscInfoIN->sMiscInfo.ui32StateRequest & PVRSRV_MISC_INFO_DDKVERSION_PRESENT) != 0) || - ((psGetMiscInfoIN->sMiscInfo.ui32StateRequest & PVRSRV_MISC_INFO_FREEMEM_PRESENT) != 0)) - { - + if (((psGetMiscInfoIN->sMiscInfo.ui32StateRequest & PVRSRV_MISC_INFO_MEMSTATS_PRESENT) != 0) || + ((psGetMiscInfoIN->sMiscInfo.ui32StateRequest & PVRSRV_MISC_INFO_DDKVERSION_PRESENT) != 0) || + ((psGetMiscInfoIN->sMiscInfo.ui32StateRequest & PVRSRV_MISC_INFO_FREEMEM_PRESENT) != 0)) + { + #if defined (SUPPORT_SID_INTERFACE) - ASSIGN_AND_EXIT_ON_ERROR(psGetMiscInfoOUT->eError, - OSAllocMem(PVRSRV_OS_PAGEABLE_HEAP, - psGetMiscInfoOUT->sMiscInfo.ui32MemoryStrLen, - (IMG_VOID **)&sMiscInfo.pszMemoryStr, 0, - "Output string buffer")); - psGetMiscInfoOUT->eError = PVRSRVGetMiscInfoKM(&sMiscInfo); - - - eError = CopyToUserWrapper(psPerProc, ui32BridgeID, - psGetMiscInfoIN->sMiscInfo.pszMemoryStr, - sMiscInfo.pszMemoryStr, - sMiscInfo.ui32MemoryStrLen); + ASSIGN_AND_EXIT_ON_ERROR(psGetMiscInfoOUT->eError, + OSAllocMem(PVRSRV_OS_PAGEABLE_HEAP, + psGetMiscInfoOUT->sMiscInfo.ui32MemoryStrLen, + (IMG_VOID **)&sMiscInfo.pszMemoryStr, 0, + "Output string buffer")); + psGetMiscInfoOUT->eError = PVRSRVGetMiscInfoKM(&sMiscInfo); + + + eError = CopyToUserWrapper(psPerProc, ui32BridgeID, + psGetMiscInfoIN->sMiscInfo.pszMemoryStr, + sMiscInfo.pszMemoryStr, + sMiscInfo.ui32MemoryStrLen); #else - ASSIGN_AND_EXIT_ON_ERROR(psGetMiscInfoOUT->eError, - OSAllocMem(PVRSRV_OS_PAGEABLE_HEAP, - psGetMiscInfoOUT->sMiscInfo.ui32MemoryStrLen, - (IMG_VOID **)&psGetMiscInfoOUT->sMiscInfo.pszMemoryStr, 0, - "Output string buffer")); - - psGetMiscInfoOUT->eError = PVRSRVGetMiscInfoKM(&psGetMiscInfoOUT->sMiscInfo); - - - eError = CopyToUserWrapper(psPerProc, ui32BridgeID, - psGetMiscInfoIN->sMiscInfo.pszMemoryStr, - psGetMiscInfoOUT->sMiscInfo.pszMemoryStr, - psGetMiscInfoOUT->sMiscInfo.ui32MemoryStrLen); + ASSIGN_AND_EXIT_ON_ERROR(psGetMiscInfoOUT->eError, + OSAllocMem(PVRSRV_OS_PAGEABLE_HEAP, + psGetMiscInfoOUT->sMiscInfo.ui32MemoryStrLen, + (IMG_VOID **)&psGetMiscInfoOUT->sMiscInfo.pszMemoryStr, 0, + "Output string buffer")); + + psGetMiscInfoOUT->eError = PVRSRVGetMiscInfoKM(&psGetMiscInfoOUT->sMiscInfo); + + + eError = CopyToUserWrapper(psPerProc, ui32BridgeID, + psGetMiscInfoIN->sMiscInfo.pszMemoryStr, + psGetMiscInfoOUT->sMiscInfo.pszMemoryStr, + psGetMiscInfoOUT->sMiscInfo.ui32MemoryStrLen); #endif - + #if defined (SUPPORT_SID_INTERFACE) - OSFreeMem(PVRSRV_OS_PAGEABLE_HEAP, - sMiscInfo.ui32MemoryStrLen, - (IMG_VOID *)sMiscInfo.pszMemoryStr, 0); + OSFreeMem(PVRSRV_OS_PAGEABLE_HEAP, + sMiscInfo.ui32MemoryStrLen, + (IMG_VOID *)sMiscInfo.pszMemoryStr, 0); #else - OSFreeMem(PVRSRV_OS_PAGEABLE_HEAP, - psGetMiscInfoOUT->sMiscInfo.ui32MemoryStrLen, - (IMG_VOID *)psGetMiscInfoOUT->sMiscInfo.pszMemoryStr, 0); + OSFreeMem(PVRSRV_OS_PAGEABLE_HEAP, + psGetMiscInfoOUT->sMiscInfo.ui32MemoryStrLen, + (IMG_VOID *)psGetMiscInfoOUT->sMiscInfo.pszMemoryStr, 0); #endif - - psGetMiscInfoOUT->sMiscInfo.pszMemoryStr = psGetMiscInfoIN->sMiscInfo.pszMemoryStr; + + psGetMiscInfoOUT->sMiscInfo.pszMemoryStr = psGetMiscInfoIN->sMiscInfo.pszMemoryStr; - if(eError != PVRSRV_OK) - { - - PVR_DPF((PVR_DBG_ERROR, "PVRSRVGetMiscInfoBW Error copy to user")); - return -EFAULT; - } - } - else - { + if(eError != PVRSRV_OK) + { + + PVR_DPF((PVR_DBG_ERROR, "PVRSRVGetMiscInfoBW Error copy to user")); + return -EFAULT; + } + } + else + { #if defined (SUPPORT_SID_INTERFACE) - psGetMiscInfoOUT->eError = PVRSRVGetMiscInfoKM(&sMiscInfo); + psGetMiscInfoOUT->eError = PVRSRVGetMiscInfoKM(&sMiscInfo); #else - psGetMiscInfoOUT->eError = PVRSRVGetMiscInfoKM(&psGetMiscInfoOUT->sMiscInfo); + psGetMiscInfoOUT->eError = PVRSRVGetMiscInfoKM(&psGetMiscInfoOUT->sMiscInfo); #endif - } + } - - if (psGetMiscInfoOUT->eError != PVRSRV_OK) - { - return 0; - } + + if (psGetMiscInfoOUT->eError != PVRSRV_OK) + { + return 0; + } - + #if defined (SUPPORT_SID_INTERFACE) - if (sMiscInfo.ui32StateRequest & PVRSRV_MISC_INFO_GLOBALEVENTOBJECT_PRESENT) + if (sMiscInfo.ui32StateRequest & PVRSRV_MISC_INFO_GLOBALEVENTOBJECT_PRESENT) #else - if (psGetMiscInfoIN->sMiscInfo.ui32StateRequest & PVRSRV_MISC_INFO_GLOBALEVENTOBJECT_PRESENT) + if (psGetMiscInfoIN->sMiscInfo.ui32StateRequest & PVRSRV_MISC_INFO_GLOBALEVENTOBJECT_PRESENT) #endif - { - psGetMiscInfoOUT->eError = PVRSRVAllocHandle(psPerProc->psHandleBase, - &psGetMiscInfoOUT->sMiscInfo.sGlobalEventObject.hOSEventKM, + { + psGetMiscInfoOUT->eError = PVRSRVAllocHandle(psPerProc->psHandleBase, + &psGetMiscInfoOUT->sMiscInfo.sGlobalEventObject.hOSEventKM, #if defined (SUPPORT_SID_INTERFACE) sMiscInfo.sGlobalEventObject.hOSEventKM, #else - psGetMiscInfoOUT->sMiscInfo.sGlobalEventObject.hOSEventKM, + psGetMiscInfoOUT->sMiscInfo.sGlobalEventObject.hOSEventKM, #endif - PVRSRV_HANDLE_TYPE_SHARED_EVENT_OBJECT, - PVRSRV_HANDLE_ALLOC_FLAG_SHARED); + PVRSRV_HANDLE_TYPE_SHARED_EVENT_OBJECT, + PVRSRV_HANDLE_ALLOC_FLAG_SHARED); - if (psGetMiscInfoOUT->eError != PVRSRV_OK) - { - return 0; - } + if (psGetMiscInfoOUT->eError != PVRSRV_OK) + { + return 0; + } #if defined (SUPPORT_SID_INTERFACE) - OSMemCopy(&psGetMiscInfoOUT->sMiscInfo.sGlobalEventObject.szName, - sMiscInfo.sGlobalEventObject.szName, - EVENTOBJNAME_MAXLENGTH); - + OSMemCopy(&psGetMiscInfoOUT->sMiscInfo.sGlobalEventObject.szName, + sMiscInfo.sGlobalEventObject.szName, + EVENTOBJNAME_MAXLENGTH); #endif - } + } #if defined (SUPPORT_SID_INTERFACE) - if (sMiscInfo.hSOCTimerRegisterOSMemHandle) + if (sMiscInfo.hSOCTimerRegisterOSMemHandle) #else - if (psGetMiscInfoOUT->sMiscInfo.hSOCTimerRegisterOSMemHandle) + if (psGetMiscInfoOUT->sMiscInfo.hSOCTimerRegisterOSMemHandle) #endif - { - - psGetMiscInfoOUT->eError = PVRSRVAllocHandle(psPerProc->psHandleBase, - &psGetMiscInfoOUT->sMiscInfo.hSOCTimerRegisterOSMemHandle, + { + + psGetMiscInfoOUT->eError = PVRSRVAllocHandle(psPerProc->psHandleBase, + &psGetMiscInfoOUT->sMiscInfo.hSOCTimerRegisterOSMemHandle, #if defined (SUPPORT_SID_INTERFACE) sMiscInfo.hSOCTimerRegisterOSMemHandle, #else - psGetMiscInfoOUT->sMiscInfo.hSOCTimerRegisterOSMemHandle, + psGetMiscInfoOUT->sMiscInfo.hSOCTimerRegisterOSMemHandle, #endif - PVRSRV_HANDLE_TYPE_SOC_TIMER, - PVRSRV_HANDLE_ALLOC_FLAG_SHARED); + PVRSRV_HANDLE_TYPE_SOC_TIMER, + PVRSRV_HANDLE_ALLOC_FLAG_SHARED); - if (psGetMiscInfoOUT->eError != PVRSRV_OK) - { - return 0; - } - } + if (psGetMiscInfoOUT->eError != PVRSRV_OK) + { + return 0; + } + } #if defined (SUPPORT_SID_INTERFACE) - else - { - psGetMiscInfoOUT->sMiscInfo.hSOCTimerRegisterOSMemHandle = 0; - } + else + { + psGetMiscInfoOUT->sMiscInfo.hSOCTimerRegisterOSMemHandle = 0; + } - - psGetMiscInfoOUT->sMiscInfo.ui32StateRequest = sMiscInfo.ui32StateRequest; - psGetMiscInfoOUT->sMiscInfo.ui32StatePresent = sMiscInfo.ui32StatePresent; + + psGetMiscInfoOUT->sMiscInfo.ui32StateRequest = sMiscInfo.ui32StateRequest; + psGetMiscInfoOUT->sMiscInfo.ui32StatePresent = sMiscInfo.ui32StatePresent; - psGetMiscInfoOUT->sMiscInfo.pvSOCTimerRegisterKM = sMiscInfo.pvSOCTimerRegisterKM; - psGetMiscInfoOUT->sMiscInfo.pvSOCTimerRegisterUM = sMiscInfo.pvSOCTimerRegisterUM; - psGetMiscInfoOUT->sMiscInfo.pvSOCClockGateRegs = sMiscInfo.pvSOCClockGateRegs; + psGetMiscInfoOUT->sMiscInfo.pvSOCTimerRegisterKM = sMiscInfo.pvSOCTimerRegisterKM; + psGetMiscInfoOUT->sMiscInfo.pvSOCTimerRegisterUM = sMiscInfo.pvSOCTimerRegisterUM; + psGetMiscInfoOUT->sMiscInfo.pvSOCClockGateRegs = sMiscInfo.pvSOCClockGateRegs; - psGetMiscInfoOUT->sMiscInfo.ui32SOCClockGateRegsSize = sMiscInfo.ui32SOCClockGateRegsSize; + psGetMiscInfoOUT->sMiscInfo.ui32SOCClockGateRegsSize = sMiscInfo.ui32SOCClockGateRegsSize; - OSMemCopy(&psGetMiscInfoOUT->sMiscInfo.aui32DDKVersion, - &sMiscInfo.aui32DDKVersion, - sizeof(psGetMiscInfoOUT->sMiscInfo.aui32DDKVersion)); - OSMemCopy(&psGetMiscInfoOUT->sMiscInfo.sCacheOpCtl, - &sMiscInfo.sCacheOpCtl, - sizeof(psGetMiscInfoOUT->sMiscInfo.sCacheOpCtl)); + OSMemCopy(&psGetMiscInfoOUT->sMiscInfo.aui32DDKVersion, + &sMiscInfo.aui32DDKVersion, + sizeof(psGetMiscInfoOUT->sMiscInfo.aui32DDKVersion)); + OSMemCopy(&psGetMiscInfoOUT->sMiscInfo.sCacheOpCtl, + &sMiscInfo.sCacheOpCtl, + sizeof(psGetMiscInfoOUT->sMiscInfo.sCacheOpCtl)); #endif - return 0; + return 0; } static IMG_INT PVRSRVConnectBW(IMG_UINT32 ui32BridgeID, - PVRSRV_BRIDGE_IN_CONNECT_SERVICES *psConnectServicesIN, - PVRSRV_BRIDGE_OUT_CONNECT_SERVICES *psConnectServicesOUT, - PVRSRV_PER_PROCESS_DATA *psPerProc) + PVRSRV_BRIDGE_IN_CONNECT_SERVICES *psConnectServicesIN, + PVRSRV_BRIDGE_OUT_CONNECT_SERVICES *psConnectServicesOUT, + PVRSRV_PER_PROCESS_DATA *psPerProc) { - PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_CONNECT_SERVICES); + PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_CONNECT_SERVICES); #if defined(PDUMP) - + if ((psConnectServicesIN->ui32Flags & SRV_FLAGS_PERSIST) != 0) { psPerProc->bPDumpPersistent = IMG_TRUE; } #if defined(SUPPORT_PDUMP_MULTI_PROCESS) - + if ((psConnectServicesIN->ui32Flags & SRV_FLAGS_PDUMP_ACTIVE) != 0) { psPerProc->bPDumpActive = IMG_TRUE; } #endif #else - PVR_UNREFERENCED_PARAMETER(psConnectServicesIN); + PVR_UNREFERENCED_PARAMETER(psConnectServicesIN); #endif - psConnectServicesOUT->hKernelServices = psPerProc->hPerProcData; - psConnectServicesOUT->eError = PVRSRV_OK; + psConnectServicesOUT->hKernelServices = psPerProc->hPerProcData; + psConnectServicesOUT->eError = PVRSRV_OK; - return 0; + return 0; } static IMG_INT PVRSRVDisconnectBW(IMG_UINT32 ui32BridgeID, - IMG_VOID *psBridgeIn, - PVRSRV_BRIDGE_RETURN *psRetOUT, - PVRSRV_PER_PROCESS_DATA *psPerProc) + IMG_VOID *psBridgeIn, + PVRSRV_BRIDGE_RETURN *psRetOUT, + PVRSRV_PER_PROCESS_DATA *psPerProc) { - PVR_UNREFERENCED_PARAMETER(psPerProc); - PVR_UNREFERENCED_PARAMETER(psBridgeIn); + PVR_UNREFERENCED_PARAMETER(psPerProc); + PVR_UNREFERENCED_PARAMETER(psBridgeIn); - PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_DISCONNECT_SERVICES); + PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_DISCONNECT_SERVICES); - - psRetOUT->eError = PVRSRV_OK; + + psRetOUT->eError = PVRSRV_OK; - return 0; + return 0; } static IMG_INT PVRSRVEnumerateDCBW(IMG_UINT32 ui32BridgeID, - PVRSRV_BRIDGE_IN_ENUMCLASS *psEnumDispClassIN, - PVRSRV_BRIDGE_OUT_ENUMCLASS *psEnumDispClassOUT, - PVRSRV_PER_PROCESS_DATA *psPerProc) + PVRSRV_BRIDGE_IN_ENUMCLASS *psEnumDispClassIN, + PVRSRV_BRIDGE_OUT_ENUMCLASS *psEnumDispClassOUT, + PVRSRV_PER_PROCESS_DATA *psPerProc) { - PVR_UNREFERENCED_PARAMETER(psPerProc); + PVR_UNREFERENCED_PARAMETER(psPerProc); - PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_ENUM_CLASS); + PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_ENUM_CLASS); - psEnumDispClassOUT->eError = - PVRSRVEnumerateDCKM(psEnumDispClassIN->sDeviceClass, - &psEnumDispClassOUT->ui32NumDevices, - &psEnumDispClassOUT->ui32DevID[0]); + psEnumDispClassOUT->eError = + PVRSRVEnumerateDCKM(psEnumDispClassIN->sDeviceClass, + &psEnumDispClassOUT->ui32NumDevices, + &psEnumDispClassOUT->ui32DevID[0]); - return 0; + return 0; } static IMG_INT PVRSRVOpenDCDeviceBW(IMG_UINT32 ui32BridgeID, - PVRSRV_BRIDGE_IN_OPEN_DISPCLASS_DEVICE *psOpenDispClassDeviceIN, - PVRSRV_BRIDGE_OUT_OPEN_DISPCLASS_DEVICE *psOpenDispClassDeviceOUT, - PVRSRV_PER_PROCESS_DATA *psPerProc) + PVRSRV_BRIDGE_IN_OPEN_DISPCLASS_DEVICE *psOpenDispClassDeviceIN, + PVRSRV_BRIDGE_OUT_OPEN_DISPCLASS_DEVICE *psOpenDispClassDeviceOUT, + PVRSRV_PER_PROCESS_DATA *psPerProc) { - IMG_HANDLE hDevCookieInt; - IMG_HANDLE hDispClassInfoInt; + IMG_HANDLE hDevCookieInt; + IMG_HANDLE hDispClassInfoInt; - PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_OPEN_DISPCLASS_DEVICE); + PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_OPEN_DISPCLASS_DEVICE); - NEW_HANDLE_BATCH_OR_ERROR(psOpenDispClassDeviceOUT->eError, psPerProc, 1) + NEW_HANDLE_BATCH_OR_ERROR(psOpenDispClassDeviceOUT->eError, psPerProc, 1) - psOpenDispClassDeviceOUT->eError = - PVRSRVLookupHandle(psPerProc->psHandleBase, - &hDevCookieInt, - psOpenDispClassDeviceIN->hDevCookie, - PVRSRV_HANDLE_TYPE_DEV_NODE); - if(psOpenDispClassDeviceOUT->eError != PVRSRV_OK) - { - return 0; - } + psOpenDispClassDeviceOUT->eError = + PVRSRVLookupHandle(psPerProc->psHandleBase, + &hDevCookieInt, + psOpenDispClassDeviceIN->hDevCookie, + PVRSRV_HANDLE_TYPE_DEV_NODE); + if(psOpenDispClassDeviceOUT->eError != PVRSRV_OK) + { + return 0; + } - psOpenDispClassDeviceOUT->eError = - PVRSRVOpenDCDeviceKM(psPerProc, - psOpenDispClassDeviceIN->ui32DeviceID, - hDevCookieInt, - &hDispClassInfoInt); + psOpenDispClassDeviceOUT->eError = + PVRSRVOpenDCDeviceKM(psPerProc, + psOpenDispClassDeviceIN->ui32DeviceID, + hDevCookieInt, + &hDispClassInfoInt); - if(psOpenDispClassDeviceOUT->eError != PVRSRV_OK) - { - return 0; - } + if(psOpenDispClassDeviceOUT->eError != PVRSRV_OK) + { + return 0; + } - PVRSRVAllocHandleNR(psPerProc->psHandleBase, - &psOpenDispClassDeviceOUT->hDeviceKM, - hDispClassInfoInt, - PVRSRV_HANDLE_TYPE_DISP_INFO, - PVRSRV_HANDLE_ALLOC_FLAG_NONE); - COMMIT_HANDLE_BATCH_OR_ERROR(psOpenDispClassDeviceOUT->eError, psPerProc) + PVRSRVAllocHandleNR(psPerProc->psHandleBase, + &psOpenDispClassDeviceOUT->hDeviceKM, + hDispClassInfoInt, + PVRSRV_HANDLE_TYPE_DISP_INFO, + PVRSRV_HANDLE_ALLOC_FLAG_NONE); + COMMIT_HANDLE_BATCH_OR_ERROR(psOpenDispClassDeviceOUT->eError, psPerProc) - return 0; + return 0; } static IMG_INT PVRSRVCloseDCDeviceBW(IMG_UINT32 ui32BridgeID, - PVRSRV_BRIDGE_IN_CLOSE_DISPCLASS_DEVICE *psCloseDispClassDeviceIN, - PVRSRV_BRIDGE_RETURN *psRetOUT, - PVRSRV_PER_PROCESS_DATA *psPerProc) + PVRSRV_BRIDGE_IN_CLOSE_DISPCLASS_DEVICE *psCloseDispClassDeviceIN, + PVRSRV_BRIDGE_RETURN *psRetOUT, + PVRSRV_PER_PROCESS_DATA *psPerProc) { - IMG_VOID *pvDispClassInfoInt; + IMG_VOID *pvDispClassInfoInt; - PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_CLOSE_DISPCLASS_DEVICE); + PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_CLOSE_DISPCLASS_DEVICE); - psRetOUT->eError = - PVRSRVLookupHandle(psPerProc->psHandleBase, - &pvDispClassInfoInt, - psCloseDispClassDeviceIN->hDeviceKM, - PVRSRV_HANDLE_TYPE_DISP_INFO); + psRetOUT->eError = + PVRSRVLookupHandle(psPerProc->psHandleBase, + &pvDispClassInfoInt, + psCloseDispClassDeviceIN->hDeviceKM, + PVRSRV_HANDLE_TYPE_DISP_INFO); - if(psRetOUT->eError != PVRSRV_OK) - { - return 0; - } + if(psRetOUT->eError != PVRSRV_OK) + { + return 0; + } - psRetOUT->eError = PVRSRVCloseDCDeviceKM(pvDispClassInfoInt, IMG_FALSE); - if(psRetOUT->eError != PVRSRV_OK) - { - return 0; - } + psRetOUT->eError = PVRSRVCloseDCDeviceKM(pvDispClassInfoInt, IMG_FALSE); + if(psRetOUT->eError != PVRSRV_OK) + { + return 0; + } - psRetOUT->eError = - PVRSRVReleaseHandle(psPerProc->psHandleBase, - psCloseDispClassDeviceIN->hDeviceKM, - PVRSRV_HANDLE_TYPE_DISP_INFO); - return 0; + psRetOUT->eError = + PVRSRVReleaseHandle(psPerProc->psHandleBase, + psCloseDispClassDeviceIN->hDeviceKM, + PVRSRV_HANDLE_TYPE_DISP_INFO); + return 0; } static IMG_INT PVRSRVEnumDCFormatsBW(IMG_UINT32 ui32BridgeID, - PVRSRV_BRIDGE_IN_ENUM_DISPCLASS_FORMATS *psEnumDispClassFormatsIN, - PVRSRV_BRIDGE_OUT_ENUM_DISPCLASS_FORMATS *psEnumDispClassFormatsOUT, - PVRSRV_PER_PROCESS_DATA *psPerProc) + PVRSRV_BRIDGE_IN_ENUM_DISPCLASS_FORMATS *psEnumDispClassFormatsIN, + PVRSRV_BRIDGE_OUT_ENUM_DISPCLASS_FORMATS *psEnumDispClassFormatsOUT, + PVRSRV_PER_PROCESS_DATA *psPerProc) { - IMG_VOID *pvDispClassInfoInt; + IMG_VOID *pvDispClassInfoInt; - PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_ENUM_DISPCLASS_FORMATS); + PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_ENUM_DISPCLASS_FORMATS); - psEnumDispClassFormatsOUT->eError = - PVRSRVLookupHandle(psPerProc->psHandleBase, - &pvDispClassInfoInt, - psEnumDispClassFormatsIN->hDeviceKM, - PVRSRV_HANDLE_TYPE_DISP_INFO); - if(psEnumDispClassFormatsOUT->eError != PVRSRV_OK) - { - return 0; - } + psEnumDispClassFormatsOUT->eError = + PVRSRVLookupHandle(psPerProc->psHandleBase, + &pvDispClassInfoInt, + psEnumDispClassFormatsIN->hDeviceKM, + PVRSRV_HANDLE_TYPE_DISP_INFO); + if(psEnumDispClassFormatsOUT->eError != PVRSRV_OK) + { + return 0; + } - psEnumDispClassFormatsOUT->eError = - PVRSRVEnumDCFormatsKM(pvDispClassInfoInt, - &psEnumDispClassFormatsOUT->ui32Count, - psEnumDispClassFormatsOUT->asFormat); + psEnumDispClassFormatsOUT->eError = + PVRSRVEnumDCFormatsKM(pvDispClassInfoInt, + &psEnumDispClassFormatsOUT->ui32Count, + psEnumDispClassFormatsOUT->asFormat); - return 0; + return 0; } static IMG_INT PVRSRVEnumDCDimsBW(IMG_UINT32 ui32BridgeID, - PVRSRV_BRIDGE_IN_ENUM_DISPCLASS_DIMS *psEnumDispClassDimsIN, - PVRSRV_BRIDGE_OUT_ENUM_DISPCLASS_DIMS *psEnumDispClassDimsOUT, - PVRSRV_PER_PROCESS_DATA *psPerProc) + PVRSRV_BRIDGE_IN_ENUM_DISPCLASS_DIMS *psEnumDispClassDimsIN, + PVRSRV_BRIDGE_OUT_ENUM_DISPCLASS_DIMS *psEnumDispClassDimsOUT, + PVRSRV_PER_PROCESS_DATA *psPerProc) { - IMG_VOID *pvDispClassInfoInt; + IMG_VOID *pvDispClassInfoInt; - PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_ENUM_DISPCLASS_DIMS); + PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_ENUM_DISPCLASS_DIMS); - psEnumDispClassDimsOUT->eError = - PVRSRVLookupHandle(psPerProc->psHandleBase, - &pvDispClassInfoInt, - psEnumDispClassDimsIN->hDeviceKM, - PVRSRV_HANDLE_TYPE_DISP_INFO); + psEnumDispClassDimsOUT->eError = + PVRSRVLookupHandle(psPerProc->psHandleBase, + &pvDispClassInfoInt, + psEnumDispClassDimsIN->hDeviceKM, + PVRSRV_HANDLE_TYPE_DISP_INFO); - if(psEnumDispClassDimsOUT->eError != PVRSRV_OK) - { - return 0; - } + if(psEnumDispClassDimsOUT->eError != PVRSRV_OK) + { + return 0; + } - psEnumDispClassDimsOUT->eError = - PVRSRVEnumDCDimsKM(pvDispClassInfoInt, - &psEnumDispClassDimsIN->sFormat, - &psEnumDispClassDimsOUT->ui32Count, - psEnumDispClassDimsOUT->asDim); + psEnumDispClassDimsOUT->eError = + PVRSRVEnumDCDimsKM(pvDispClassInfoInt, + &psEnumDispClassDimsIN->sFormat, + &psEnumDispClassDimsOUT->ui32Count, + psEnumDispClassDimsOUT->asDim); - return 0; + return 0; } static IMG_INT PVRSRVGetDCSystemBufferBW(IMG_UINT32 ui32BridgeID, - PVRSRV_BRIDGE_IN_GET_DISPCLASS_SYSBUFFER *psGetDispClassSysBufferIN, - PVRSRV_BRIDGE_OUT_GET_DISPCLASS_SYSBUFFER *psGetDispClassSysBufferOUT, - PVRSRV_PER_PROCESS_DATA *psPerProc) + PVRSRV_BRIDGE_IN_GET_DISPCLASS_SYSBUFFER *psGetDispClassSysBufferIN, + PVRSRV_BRIDGE_OUT_GET_DISPCLASS_SYSBUFFER *psGetDispClassSysBufferOUT, + PVRSRV_PER_PROCESS_DATA *psPerProc) { - IMG_HANDLE hBufferInt; - IMG_VOID *pvDispClassInfoInt; + IMG_HANDLE hBufferInt; + IMG_VOID *pvDispClassInfoInt; - PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_GET_DISPCLASS_SYSBUFFER); + PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_GET_DISPCLASS_SYSBUFFER); - NEW_HANDLE_BATCH_OR_ERROR(psGetDispClassSysBufferOUT->eError, psPerProc, 1) + NEW_HANDLE_BATCH_OR_ERROR(psGetDispClassSysBufferOUT->eError, psPerProc, 1) - psGetDispClassSysBufferOUT->eError = - PVRSRVLookupHandle(psPerProc->psHandleBase, - &pvDispClassInfoInt, - psGetDispClassSysBufferIN->hDeviceKM, - PVRSRV_HANDLE_TYPE_DISP_INFO); - if(psGetDispClassSysBufferOUT->eError != PVRSRV_OK) - { - return 0; - } + psGetDispClassSysBufferOUT->eError = + PVRSRVLookupHandle(psPerProc->psHandleBase, + &pvDispClassInfoInt, + psGetDispClassSysBufferIN->hDeviceKM, + PVRSRV_HANDLE_TYPE_DISP_INFO); + if(psGetDispClassSysBufferOUT->eError != PVRSRV_OK) + { + return 0; + } - psGetDispClassSysBufferOUT->eError = - PVRSRVGetDCSystemBufferKM(pvDispClassInfoInt, - &hBufferInt); + psGetDispClassSysBufferOUT->eError = + PVRSRVGetDCSystemBufferKM(pvDispClassInfoInt, + &hBufferInt); - if(psGetDispClassSysBufferOUT->eError != PVRSRV_OK) - { - return 0; - } + if(psGetDispClassSysBufferOUT->eError != PVRSRV_OK) + { + return 0; + } - - PVRSRVAllocSubHandleNR(psPerProc->psHandleBase, - &psGetDispClassSysBufferOUT->hBuffer, - hBufferInt, - PVRSRV_HANDLE_TYPE_DISP_BUFFER, - (PVRSRV_HANDLE_ALLOC_FLAG)(PVRSRV_HANDLE_ALLOC_FLAG_PRIVATE | PVRSRV_HANDLE_ALLOC_FLAG_SHARED), - psGetDispClassSysBufferIN->hDeviceKM); + + PVRSRVAllocSubHandleNR(psPerProc->psHandleBase, + &psGetDispClassSysBufferOUT->hBuffer, + hBufferInt, + PVRSRV_HANDLE_TYPE_DISP_BUFFER, + (PVRSRV_HANDLE_ALLOC_FLAG)(PVRSRV_HANDLE_ALLOC_FLAG_PRIVATE | PVRSRV_HANDLE_ALLOC_FLAG_SHARED), + psGetDispClassSysBufferIN->hDeviceKM); - COMMIT_HANDLE_BATCH_OR_ERROR(psGetDispClassSysBufferOUT->eError, psPerProc) + COMMIT_HANDLE_BATCH_OR_ERROR(psGetDispClassSysBufferOUT->eError, psPerProc) - return 0; + return 0; } static IMG_INT PVRSRVGetDCInfoBW(IMG_UINT32 ui32BridgeID, - PVRSRV_BRIDGE_IN_GET_DISPCLASS_INFO *psGetDispClassInfoIN, - PVRSRV_BRIDGE_OUT_GET_DISPCLASS_INFO *psGetDispClassInfoOUT, - PVRSRV_PER_PROCESS_DATA *psPerProc) + PVRSRV_BRIDGE_IN_GET_DISPCLASS_INFO *psGetDispClassInfoIN, + PVRSRV_BRIDGE_OUT_GET_DISPCLASS_INFO *psGetDispClassInfoOUT, + PVRSRV_PER_PROCESS_DATA *psPerProc) { - IMG_VOID *pvDispClassInfo; + IMG_VOID *pvDispClassInfo; - PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_GET_DISPCLASS_INFO); + PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_GET_DISPCLASS_INFO); - psGetDispClassInfoOUT->eError = - PVRSRVLookupHandle(psPerProc->psHandleBase, - &pvDispClassInfo, - psGetDispClassInfoIN->hDeviceKM, - PVRSRV_HANDLE_TYPE_DISP_INFO); - if(psGetDispClassInfoOUT->eError != PVRSRV_OK) - { - return 0; - } + psGetDispClassInfoOUT->eError = + PVRSRVLookupHandle(psPerProc->psHandleBase, + &pvDispClassInfo, + psGetDispClassInfoIN->hDeviceKM, + PVRSRV_HANDLE_TYPE_DISP_INFO); + if(psGetDispClassInfoOUT->eError != PVRSRV_OK) + { + return 0; + } - psGetDispClassInfoOUT->eError = - PVRSRVGetDCInfoKM(pvDispClassInfo, - &psGetDispClassInfoOUT->sDisplayInfo); + psGetDispClassInfoOUT->eError = + PVRSRVGetDCInfoKM(pvDispClassInfo, + &psGetDispClassInfoOUT->sDisplayInfo); - return 0; + return 0; } static IMG_INT PVRSRVCreateDCSwapChainBW(IMG_UINT32 ui32BridgeID, - PVRSRV_BRIDGE_IN_CREATE_DISPCLASS_SWAPCHAIN *psCreateDispClassSwapChainIN, - PVRSRV_BRIDGE_OUT_CREATE_DISPCLASS_SWAPCHAIN *psCreateDispClassSwapChainOUT, - PVRSRV_PER_PROCESS_DATA *psPerProc) + PVRSRV_BRIDGE_IN_CREATE_DISPCLASS_SWAPCHAIN *psCreateDispClassSwapChainIN, + PVRSRV_BRIDGE_OUT_CREATE_DISPCLASS_SWAPCHAIN *psCreateDispClassSwapChainOUT, + PVRSRV_PER_PROCESS_DATA *psPerProc) { - IMG_VOID *pvDispClassInfo; - IMG_HANDLE hSwapChainInt; - IMG_UINT32 ui32SwapChainID; + IMG_VOID *pvDispClassInfo; + IMG_HANDLE hSwapChainInt; + IMG_UINT32 ui32SwapChainID; - PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_CREATE_DISPCLASS_SWAPCHAIN); + PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_CREATE_DISPCLASS_SWAPCHAIN); - NEW_HANDLE_BATCH_OR_ERROR(psCreateDispClassSwapChainOUT->eError, psPerProc, 1) + NEW_HANDLE_BATCH_OR_ERROR(psCreateDispClassSwapChainOUT->eError, psPerProc, 1) - psCreateDispClassSwapChainOUT->eError = - PVRSRVLookupHandle(psPerProc->psHandleBase, - &pvDispClassInfo, - psCreateDispClassSwapChainIN->hDeviceKM, - PVRSRV_HANDLE_TYPE_DISP_INFO); + psCreateDispClassSwapChainOUT->eError = + PVRSRVLookupHandle(psPerProc->psHandleBase, + &pvDispClassInfo, + psCreateDispClassSwapChainIN->hDeviceKM, + PVRSRV_HANDLE_TYPE_DISP_INFO); - if(psCreateDispClassSwapChainOUT->eError != PVRSRV_OK) - { - return 0; - } + if(psCreateDispClassSwapChainOUT->eError != PVRSRV_OK) + { + return 0; + } - - ui32SwapChainID = psCreateDispClassSwapChainIN->ui32SwapChainID; - - psCreateDispClassSwapChainOUT->eError = - PVRSRVCreateDCSwapChainKM(psPerProc, pvDispClassInfo, - psCreateDispClassSwapChainIN->ui32Flags, - &psCreateDispClassSwapChainIN->sDstSurfAttrib, - &psCreateDispClassSwapChainIN->sSrcSurfAttrib, - psCreateDispClassSwapChainIN->ui32BufferCount, - psCreateDispClassSwapChainIN->ui32OEMFlags, - &hSwapChainInt, - &ui32SwapChainID); - - if(psCreateDispClassSwapChainOUT->eError != PVRSRV_OK) - { - return 0; - } + + ui32SwapChainID = psCreateDispClassSwapChainIN->ui32SwapChainID; - - psCreateDispClassSwapChainOUT->ui32SwapChainID = ui32SwapChainID; + psCreateDispClassSwapChainOUT->eError = + PVRSRVCreateDCSwapChainKM(psPerProc, pvDispClassInfo, + psCreateDispClassSwapChainIN->ui32Flags, + &psCreateDispClassSwapChainIN->sDstSurfAttrib, + &psCreateDispClassSwapChainIN->sSrcSurfAttrib, + psCreateDispClassSwapChainIN->ui32BufferCount, + psCreateDispClassSwapChainIN->ui32OEMFlags, + &hSwapChainInt, + &ui32SwapChainID); - PVRSRVAllocSubHandleNR(psPerProc->psHandleBase, - &psCreateDispClassSwapChainOUT->hSwapChain, - hSwapChainInt, - PVRSRV_HANDLE_TYPE_DISP_SWAP_CHAIN, - PVRSRV_HANDLE_ALLOC_FLAG_NONE, - psCreateDispClassSwapChainIN->hDeviceKM); + if(psCreateDispClassSwapChainOUT->eError != PVRSRV_OK) + { + return 0; + } - COMMIT_HANDLE_BATCH_OR_ERROR(psCreateDispClassSwapChainOUT->eError, psPerProc) + + psCreateDispClassSwapChainOUT->ui32SwapChainID = ui32SwapChainID; - return 0; + PVRSRVAllocSubHandleNR(psPerProc->psHandleBase, + &psCreateDispClassSwapChainOUT->hSwapChain, + hSwapChainInt, + PVRSRV_HANDLE_TYPE_DISP_SWAP_CHAIN, + PVRSRV_HANDLE_ALLOC_FLAG_NONE, + psCreateDispClassSwapChainIN->hDeviceKM); + + COMMIT_HANDLE_BATCH_OR_ERROR(psCreateDispClassSwapChainOUT->eError, psPerProc) + + return 0; } static IMG_INT PVRSRVDestroyDCSwapChainBW(IMG_UINT32 ui32BridgeID, - PVRSRV_BRIDGE_IN_DESTROY_DISPCLASS_SWAPCHAIN *psDestroyDispClassSwapChainIN, - PVRSRV_BRIDGE_RETURN *psRetOUT, - PVRSRV_PER_PROCESS_DATA *psPerProc) + PVRSRV_BRIDGE_IN_DESTROY_DISPCLASS_SWAPCHAIN *psDestroyDispClassSwapChainIN, + PVRSRV_BRIDGE_RETURN *psRetOUT, + PVRSRV_PER_PROCESS_DATA *psPerProc) { - IMG_VOID *pvSwapChain; + IMG_VOID *pvSwapChain; - PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_DESTROY_DISPCLASS_SWAPCHAIN); + PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_DESTROY_DISPCLASS_SWAPCHAIN); - psRetOUT->eError = - PVRSRVLookupHandle(psPerProc->psHandleBase, &pvSwapChain, - psDestroyDispClassSwapChainIN->hSwapChain, - PVRSRV_HANDLE_TYPE_DISP_SWAP_CHAIN); - if(psRetOUT->eError != PVRSRV_OK) - { - return 0; - } + psRetOUT->eError = + PVRSRVLookupHandle(psPerProc->psHandleBase, &pvSwapChain, + psDestroyDispClassSwapChainIN->hSwapChain, + PVRSRV_HANDLE_TYPE_DISP_SWAP_CHAIN); + if(psRetOUT->eError != PVRSRV_OK) + { + return 0; + } - psRetOUT->eError = - PVRSRVDestroyDCSwapChainKM(pvSwapChain); + psRetOUT->eError = + PVRSRVDestroyDCSwapChainKM(pvSwapChain); - if(psRetOUT->eError != PVRSRV_OK) - { - return 0; - } + if(psRetOUT->eError != PVRSRV_OK) + { + return 0; + } - psRetOUT->eError = - PVRSRVReleaseHandle(psPerProc->psHandleBase, - psDestroyDispClassSwapChainIN->hSwapChain, - PVRSRV_HANDLE_TYPE_DISP_SWAP_CHAIN); + psRetOUT->eError = + PVRSRVReleaseHandle(psPerProc->psHandleBase, + psDestroyDispClassSwapChainIN->hSwapChain, + PVRSRV_HANDLE_TYPE_DISP_SWAP_CHAIN); - return 0; + return 0; } static IMG_INT PVRSRVSetDCDstRectBW(IMG_UINT32 ui32BridgeID, - PVRSRV_BRIDGE_IN_SET_DISPCLASS_RECT *psSetDispClassDstRectIN, - PVRSRV_BRIDGE_RETURN *psRetOUT, - PVRSRV_PER_PROCESS_DATA *psPerProc) + PVRSRV_BRIDGE_IN_SET_DISPCLASS_RECT *psSetDispClassDstRectIN, + PVRSRV_BRIDGE_RETURN *psRetOUT, + PVRSRV_PER_PROCESS_DATA *psPerProc) { - IMG_VOID *pvDispClassInfo; - IMG_VOID *pvSwapChain; + IMG_VOID *pvDispClassInfo; + IMG_VOID *pvSwapChain; - PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_SET_DISPCLASS_DSTRECT); + PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_SET_DISPCLASS_DSTRECT); - psRetOUT->eError = - PVRSRVLookupHandle(psPerProc->psHandleBase, - &pvDispClassInfo, - psSetDispClassDstRectIN->hDeviceKM, - PVRSRV_HANDLE_TYPE_DISP_INFO); - if(psRetOUT->eError != PVRSRV_OK) - { - return 0; - } + psRetOUT->eError = + PVRSRVLookupHandle(psPerProc->psHandleBase, + &pvDispClassInfo, + psSetDispClassDstRectIN->hDeviceKM, + PVRSRV_HANDLE_TYPE_DISP_INFO); + if(psRetOUT->eError != PVRSRV_OK) + { + return 0; + } - psRetOUT->eError = - PVRSRVLookupHandle(psPerProc->psHandleBase, - &pvSwapChain, - psSetDispClassDstRectIN->hSwapChain, - PVRSRV_HANDLE_TYPE_DISP_SWAP_CHAIN); + psRetOUT->eError = + PVRSRVLookupHandle(psPerProc->psHandleBase, + &pvSwapChain, + psSetDispClassDstRectIN->hSwapChain, + PVRSRV_HANDLE_TYPE_DISP_SWAP_CHAIN); - if(psRetOUT->eError != PVRSRV_OK) - { - return 0; - } + if(psRetOUT->eError != PVRSRV_OK) + { + return 0; + } - psRetOUT->eError = - PVRSRVSetDCDstRectKM(pvDispClassInfo, - pvSwapChain, - &psSetDispClassDstRectIN->sRect); + psRetOUT->eError = + PVRSRVSetDCDstRectKM(pvDispClassInfo, + pvSwapChain, + &psSetDispClassDstRectIN->sRect); - return 0; + return 0; } static IMG_INT PVRSRVSetDCSrcRectBW(IMG_UINT32 ui32BridgeID, - PVRSRV_BRIDGE_IN_SET_DISPCLASS_RECT *psSetDispClassSrcRectIN, - PVRSRV_BRIDGE_RETURN *psRetOUT, - PVRSRV_PER_PROCESS_DATA *psPerProc) + PVRSRV_BRIDGE_IN_SET_DISPCLASS_RECT *psSetDispClassSrcRectIN, + PVRSRV_BRIDGE_RETURN *psRetOUT, + PVRSRV_PER_PROCESS_DATA *psPerProc) { - IMG_VOID *pvDispClassInfo; - IMG_VOID *pvSwapChain; + IMG_VOID *pvDispClassInfo; + IMG_VOID *pvSwapChain; - PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_SET_DISPCLASS_SRCRECT); + PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_SET_DISPCLASS_SRCRECT); - psRetOUT->eError = - PVRSRVLookupHandle(psPerProc->psHandleBase, - &pvDispClassInfo, - psSetDispClassSrcRectIN->hDeviceKM, - PVRSRV_HANDLE_TYPE_DISP_INFO); - if(psRetOUT->eError != PVRSRV_OK) - { - return 0; - } + psRetOUT->eError = + PVRSRVLookupHandle(psPerProc->psHandleBase, + &pvDispClassInfo, + psSetDispClassSrcRectIN->hDeviceKM, + PVRSRV_HANDLE_TYPE_DISP_INFO); + if(psRetOUT->eError != PVRSRV_OK) + { + return 0; + } - psRetOUT->eError = - PVRSRVLookupHandle(psPerProc->psHandleBase, - &pvSwapChain, - psSetDispClassSrcRectIN->hSwapChain, - PVRSRV_HANDLE_TYPE_DISP_SWAP_CHAIN); - if(psRetOUT->eError != PVRSRV_OK) - { - return 0; - } + psRetOUT->eError = + PVRSRVLookupHandle(psPerProc->psHandleBase, + &pvSwapChain, + psSetDispClassSrcRectIN->hSwapChain, + PVRSRV_HANDLE_TYPE_DISP_SWAP_CHAIN); + if(psRetOUT->eError != PVRSRV_OK) + { + return 0; + } - psRetOUT->eError = - PVRSRVSetDCSrcRectKM(pvDispClassInfo, - pvSwapChain, - &psSetDispClassSrcRectIN->sRect); + psRetOUT->eError = + PVRSRVSetDCSrcRectKM(pvDispClassInfo, + pvSwapChain, + &psSetDispClassSrcRectIN->sRect); - return 0; + return 0; } static IMG_INT PVRSRVSetDCDstColourKeyBW(IMG_UINT32 ui32BridgeID, - PVRSRV_BRIDGE_IN_SET_DISPCLASS_COLOURKEY *psSetDispClassColKeyIN, - PVRSRV_BRIDGE_RETURN *psRetOUT, - PVRSRV_PER_PROCESS_DATA *psPerProc) + PVRSRV_BRIDGE_IN_SET_DISPCLASS_COLOURKEY *psSetDispClassColKeyIN, + PVRSRV_BRIDGE_RETURN *psRetOUT, + PVRSRV_PER_PROCESS_DATA *psPerProc) { - IMG_VOID *pvDispClassInfo; - IMG_VOID *pvSwapChain; + IMG_VOID *pvDispClassInfo; + IMG_VOID *pvSwapChain; - PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_SET_DISPCLASS_DSTCOLOURKEY); + PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_SET_DISPCLASS_DSTCOLOURKEY); - psRetOUT->eError = - PVRSRVLookupHandle(psPerProc->psHandleBase, - &pvDispClassInfo, - psSetDispClassColKeyIN->hDeviceKM, - PVRSRV_HANDLE_TYPE_DISP_INFO); - if(psRetOUT->eError != PVRSRV_OK) - { - return 0; - } + psRetOUT->eError = + PVRSRVLookupHandle(psPerProc->psHandleBase, + &pvDispClassInfo, + psSetDispClassColKeyIN->hDeviceKM, + PVRSRV_HANDLE_TYPE_DISP_INFO); + if(psRetOUT->eError != PVRSRV_OK) + { + return 0; + } - psRetOUT->eError = - PVRSRVLookupHandle(psPerProc->psHandleBase, - &pvSwapChain, - psSetDispClassColKeyIN->hSwapChain, - PVRSRV_HANDLE_TYPE_DISP_SWAP_CHAIN); - if(psRetOUT->eError != PVRSRV_OK) - { - return 0; - } + psRetOUT->eError = + PVRSRVLookupHandle(psPerProc->psHandleBase, + &pvSwapChain, + psSetDispClassColKeyIN->hSwapChain, + PVRSRV_HANDLE_TYPE_DISP_SWAP_CHAIN); + if(psRetOUT->eError != PVRSRV_OK) + { + return 0; + } - psRetOUT->eError = - PVRSRVSetDCDstColourKeyKM(pvDispClassInfo, - pvSwapChain, - psSetDispClassColKeyIN->ui32CKColour); + psRetOUT->eError = + PVRSRVSetDCDstColourKeyKM(pvDispClassInfo, + pvSwapChain, + psSetDispClassColKeyIN->ui32CKColour); - return 0; + return 0; } static IMG_INT PVRSRVSetDCSrcColourKeyBW(IMG_UINT32 ui32BridgeID, - PVRSRV_BRIDGE_IN_SET_DISPCLASS_COLOURKEY *psSetDispClassColKeyIN, - PVRSRV_BRIDGE_RETURN *psRetOUT, - PVRSRV_PER_PROCESS_DATA *psPerProc) + PVRSRV_BRIDGE_IN_SET_DISPCLASS_COLOURKEY *psSetDispClassColKeyIN, + PVRSRV_BRIDGE_RETURN *psRetOUT, + PVRSRV_PER_PROCESS_DATA *psPerProc) { - IMG_VOID *pvDispClassInfo; - IMG_VOID *pvSwapChain; + IMG_VOID *pvDispClassInfo; + IMG_VOID *pvSwapChain; - PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_SET_DISPCLASS_SRCCOLOURKEY); + PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_SET_DISPCLASS_SRCCOLOURKEY); - psRetOUT->eError = - PVRSRVLookupHandle(psPerProc->psHandleBase, - &pvDispClassInfo, - psSetDispClassColKeyIN->hDeviceKM, - PVRSRV_HANDLE_TYPE_DISP_INFO); - if(psRetOUT->eError != PVRSRV_OK) - { - return 0; - } + psRetOUT->eError = + PVRSRVLookupHandle(psPerProc->psHandleBase, + &pvDispClassInfo, + psSetDispClassColKeyIN->hDeviceKM, + PVRSRV_HANDLE_TYPE_DISP_INFO); + if(psRetOUT->eError != PVRSRV_OK) + { + return 0; + } - psRetOUT->eError = - PVRSRVLookupHandle(psPerProc->psHandleBase, - &pvSwapChain, - psSetDispClassColKeyIN->hSwapChain, - PVRSRV_HANDLE_TYPE_DISP_SWAP_CHAIN); - if(psRetOUT->eError != PVRSRV_OK) - { - return 0; - } + psRetOUT->eError = + PVRSRVLookupHandle(psPerProc->psHandleBase, + &pvSwapChain, + psSetDispClassColKeyIN->hSwapChain, + PVRSRV_HANDLE_TYPE_DISP_SWAP_CHAIN); + if(psRetOUT->eError != PVRSRV_OK) + { + return 0; + } - psRetOUT->eError = - PVRSRVSetDCSrcColourKeyKM(pvDispClassInfo, - pvSwapChain, - psSetDispClassColKeyIN->ui32CKColour); + psRetOUT->eError = + PVRSRVSetDCSrcColourKeyKM(pvDispClassInfo, + pvSwapChain, + psSetDispClassColKeyIN->ui32CKColour); - return 0; + return 0; } static IMG_INT PVRSRVGetDCBuffersBW(IMG_UINT32 ui32BridgeID, - PVRSRV_BRIDGE_IN_GET_DISPCLASS_BUFFERS *psGetDispClassBuffersIN, - PVRSRV_BRIDGE_OUT_GET_DISPCLASS_BUFFERS *psGetDispClassBuffersOUT, - PVRSRV_PER_PROCESS_DATA *psPerProc) + PVRSRV_BRIDGE_IN_GET_DISPCLASS_BUFFERS *psGetDispClassBuffersIN, + PVRSRV_BRIDGE_OUT_GET_DISPCLASS_BUFFERS *psGetDispClassBuffersOUT, + PVRSRV_PER_PROCESS_DATA *psPerProc) { - IMG_VOID *pvDispClassInfo; - IMG_VOID *pvSwapChain; - IMG_UINT32 i; + IMG_VOID *pvDispClassInfo; + IMG_VOID *pvSwapChain; + IMG_UINT32 i; #if defined (SUPPORT_SID_INTERFACE) - IMG_HANDLE *pahBuffer; + IMG_HANDLE *pahBuffer; #endif - PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_GET_DISPCLASS_BUFFERS); + PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_GET_DISPCLASS_BUFFERS); - NEW_HANDLE_BATCH_OR_ERROR(psGetDispClassBuffersOUT->eError, psPerProc, PVRSRV_MAX_DC_SWAPCHAIN_BUFFERS) + NEW_HANDLE_BATCH_OR_ERROR(psGetDispClassBuffersOUT->eError, psPerProc, PVRSRV_MAX_DC_SWAPCHAIN_BUFFERS) - psGetDispClassBuffersOUT->eError = - PVRSRVLookupHandle(psPerProc->psHandleBase, - &pvDispClassInfo, - psGetDispClassBuffersIN->hDeviceKM, - PVRSRV_HANDLE_TYPE_DISP_INFO); - if(psGetDispClassBuffersOUT->eError != PVRSRV_OK) - { - return 0; - } + psGetDispClassBuffersOUT->eError = + PVRSRVLookupHandle(psPerProc->psHandleBase, + &pvDispClassInfo, + psGetDispClassBuffersIN->hDeviceKM, + PVRSRV_HANDLE_TYPE_DISP_INFO); + if(psGetDispClassBuffersOUT->eError != PVRSRV_OK) + { + return 0; + } - psGetDispClassBuffersOUT->eError = - PVRSRVLookupHandle(psPerProc->psHandleBase, - &pvSwapChain, - psGetDispClassBuffersIN->hSwapChain, - PVRSRV_HANDLE_TYPE_DISP_SWAP_CHAIN); - if(psGetDispClassBuffersOUT->eError != PVRSRV_OK) - { - return 0; - } + psGetDispClassBuffersOUT->eError = + PVRSRVLookupHandle(psPerProc->psHandleBase, + &pvSwapChain, + psGetDispClassBuffersIN->hSwapChain, + PVRSRV_HANDLE_TYPE_DISP_SWAP_CHAIN); + if(psGetDispClassBuffersOUT->eError != PVRSRV_OK) + { + return 0; + } #if defined (SUPPORT_SID_INTERFACE) - psGetDispClassBuffersOUT->eError = OSAllocMem(PVRSRV_OS_PAGEABLE_HEAP, - sizeof(IMG_HANDLE) * PVRSRV_MAX_DC_SWAPCHAIN_BUFFERS, - (IMG_PVOID *)&pahBuffer, 0, - "Temp Swapchain Buffers"); + psGetDispClassBuffersOUT->eError = OSAllocMem(PVRSRV_OS_PAGEABLE_HEAP, + sizeof(IMG_HANDLE) * PVRSRV_MAX_DC_SWAPCHAIN_BUFFERS, + (IMG_PVOID *)&pahBuffer, 0, + "Temp Swapchain Buffers"); - if (psGetDispClassBuffersOUT->eError != PVRSRV_OK) - { - return 0; - } + if (psGetDispClassBuffersOUT->eError != PVRSRV_OK) + { + return 0; + } #endif - psGetDispClassBuffersOUT->eError = - PVRSRVGetDCBuffersKM(pvDispClassInfo, - pvSwapChain, - &psGetDispClassBuffersOUT->ui32BufferCount, + psGetDispClassBuffersOUT->eError = + PVRSRVGetDCBuffersKM(pvDispClassInfo, + pvSwapChain, + &psGetDispClassBuffersOUT->ui32BufferCount, #if defined (SUPPORT_SID_INTERFACE) - pahBuffer); + pahBuffer); #else - psGetDispClassBuffersOUT->ahBuffer); + psGetDispClassBuffersOUT->ahBuffer); #endif - if (psGetDispClassBuffersOUT->eError != PVRSRV_OK) - { - return 0; - } + if (psGetDispClassBuffersOUT->eError != PVRSRV_OK) + { + return 0; + } - PVR_ASSERT(psGetDispClassBuffersOUT->ui32BufferCount <= PVRSRV_MAX_DC_SWAPCHAIN_BUFFERS); + PVR_ASSERT(psGetDispClassBuffersOUT->ui32BufferCount <= PVRSRV_MAX_DC_SWAPCHAIN_BUFFERS); - for(i = 0; i < psGetDispClassBuffersOUT->ui32BufferCount; i++) - { + for(i = 0; i < psGetDispClassBuffersOUT->ui32BufferCount; i++) + { #if defined (SUPPORT_SID_INTERFACE) - IMG_SID hBufferExt; + IMG_SID hBufferExt; #else - IMG_HANDLE hBufferExt; + IMG_HANDLE hBufferExt; #endif - + #if defined (SUPPORT_SID_INTERFACE) - PVRSRVAllocSubHandleNR(psPerProc->psHandleBase, - &hBufferExt, - pahBuffer[i], - PVRSRV_HANDLE_TYPE_DISP_BUFFER, - (PVRSRV_HANDLE_ALLOC_FLAG)(PVRSRV_HANDLE_ALLOC_FLAG_PRIVATE | PVRSRV_HANDLE_ALLOC_FLAG_SHARED), - psGetDispClassBuffersIN->hSwapChain); + PVRSRVAllocSubHandleNR(psPerProc->psHandleBase, + &hBufferExt, + pahBuffer[i], + PVRSRV_HANDLE_TYPE_DISP_BUFFER, + (PVRSRV_HANDLE_ALLOC_FLAG)(PVRSRV_HANDLE_ALLOC_FLAG_PRIVATE | PVRSRV_HANDLE_ALLOC_FLAG_SHARED), + psGetDispClassBuffersIN->hSwapChain); #else - PVRSRVAllocSubHandleNR(psPerProc->psHandleBase, - &hBufferExt, - psGetDispClassBuffersOUT->ahBuffer[i], - PVRSRV_HANDLE_TYPE_DISP_BUFFER, - (PVRSRV_HANDLE_ALLOC_FLAG)(PVRSRV_HANDLE_ALLOC_FLAG_PRIVATE | PVRSRV_HANDLE_ALLOC_FLAG_SHARED), - psGetDispClassBuffersIN->hSwapChain); + PVRSRVAllocSubHandleNR(psPerProc->psHandleBase, + &hBufferExt, + psGetDispClassBuffersOUT->ahBuffer[i], + PVRSRV_HANDLE_TYPE_DISP_BUFFER, + (PVRSRV_HANDLE_ALLOC_FLAG)(PVRSRV_HANDLE_ALLOC_FLAG_PRIVATE | PVRSRV_HANDLE_ALLOC_FLAG_SHARED), + psGetDispClassBuffersIN->hSwapChain); #endif - psGetDispClassBuffersOUT->ahBuffer[i] = hBufferExt; - } + psGetDispClassBuffersOUT->ahBuffer[i] = hBufferExt; + } #if defined (SUPPORT_SID_INTERFACE) - OSFreeMem(PVRSRV_OS_PAGEABLE_HEAP, - sizeof(IMG_HANDLE) * PVRSRV_MAX_DC_SWAPCHAIN_BUFFERS, - (IMG_PVOID)pahBuffer, 0); + OSFreeMem(PVRSRV_OS_PAGEABLE_HEAP, + sizeof(IMG_HANDLE) * PVRSRV_MAX_DC_SWAPCHAIN_BUFFERS, + (IMG_PVOID)pahBuffer, 0); #endif - COMMIT_HANDLE_BATCH_OR_ERROR(psGetDispClassBuffersOUT->eError, psPerProc) + COMMIT_HANDLE_BATCH_OR_ERROR(psGetDispClassBuffersOUT->eError, psPerProc) - return 0; + return 0; } static IMG_INT PVRSRVSwapToDCBufferBW(IMG_UINT32 ui32BridgeID, - PVRSRV_BRIDGE_IN_SWAP_DISPCLASS_TO_BUFFER *psSwapDispClassBufferIN, - PVRSRV_BRIDGE_RETURN *psRetOUT, - PVRSRV_PER_PROCESS_DATA *psPerProc) + PVRSRV_BRIDGE_IN_SWAP_DISPCLASS_TO_BUFFER *psSwapDispClassBufferIN, + PVRSRV_BRIDGE_RETURN *psRetOUT, + PVRSRV_PER_PROCESS_DATA *psPerProc) { - IMG_VOID *pvDispClassInfo; - IMG_VOID *pvSwapChainBuf; + IMG_VOID *pvDispClassInfo; + IMG_VOID *pvSwapChainBuf; #if defined (SUPPORT_SID_INTERFACE) - IMG_HANDLE hPrivateTag; + IMG_HANDLE hPrivateTag; #endif - PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_SWAP_DISPCLASS_TO_BUFFER); + PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_SWAP_DISPCLASS_TO_BUFFER); - psRetOUT->eError = - PVRSRVLookupHandle(psPerProc->psHandleBase, - &pvDispClassInfo, - psSwapDispClassBufferIN->hDeviceKM, - PVRSRV_HANDLE_TYPE_DISP_INFO); - if(psRetOUT->eError != PVRSRV_OK) - { - return 0; - } + psRetOUT->eError = + PVRSRVLookupHandle(psPerProc->psHandleBase, + &pvDispClassInfo, + psSwapDispClassBufferIN->hDeviceKM, + PVRSRV_HANDLE_TYPE_DISP_INFO); + if(psRetOUT->eError != PVRSRV_OK) + { + return 0; + } - psRetOUT->eError = - PVRSRVLookupSubHandle(psPerProc->psHandleBase, - &pvSwapChainBuf, - psSwapDispClassBufferIN->hBuffer, - PVRSRV_HANDLE_TYPE_DISP_BUFFER, - psSwapDispClassBufferIN->hDeviceKM); - if(psRetOUT->eError != PVRSRV_OK) - { - return 0; - } + psRetOUT->eError = + PVRSRVLookupSubHandle(psPerProc->psHandleBase, + &pvSwapChainBuf, + psSwapDispClassBufferIN->hBuffer, + PVRSRV_HANDLE_TYPE_DISP_BUFFER, + psSwapDispClassBufferIN->hDeviceKM); + if(psRetOUT->eError != PVRSRV_OK) + { + return 0; + } #if defined (SUPPORT_SID_INTERFACE) - if (psSwapDispClassBufferIN->hPrivateTag != 0) - { - psRetOUT->eError = - PVRSRVLookupSubHandle(psPerProc->psHandleBase, - &hPrivateTag, - psSwapDispClassBufferIN->hPrivateTag, - PVRSRV_HANDLE_TYPE_DISP_BUFFER, - psSwapDispClassBufferIN->hDeviceKM); - if(psRetOUT->eError != PVRSRV_OK) - { - return 0; - } - } - else - { - hPrivateTag = IMG_NULL; - } + if (psSwapDispClassBufferIN->hPrivateTag != 0) + { + psRetOUT->eError = + PVRSRVLookupSubHandle(psPerProc->psHandleBase, + &hPrivateTag, + psSwapDispClassBufferIN->hPrivateTag, + PVRSRV_HANDLE_TYPE_DISP_BUFFER, + psSwapDispClassBufferIN->hDeviceKM); + if(psRetOUT->eError != PVRSRV_OK) + { + return 0; + } + } + else + { + hPrivateTag = IMG_NULL; + } #endif - - psRetOUT->eError = - PVRSRVSwapToDCBufferKM(pvDispClassInfo, - pvSwapChainBuf, - psSwapDispClassBufferIN->ui32SwapInterval, + psRetOUT->eError = + PVRSRVSwapToDCBufferKM(pvDispClassInfo, + pvSwapChainBuf, + psSwapDispClassBufferIN->ui32SwapInterval, #if defined (SUPPORT_SID_INTERFACE) hPrivateTag, #else - psSwapDispClassBufferIN->hPrivateTag, + psSwapDispClassBufferIN->hPrivateTag, #endif - psSwapDispClassBufferIN->ui32ClipRectCount, - psSwapDispClassBufferIN->sClipRect); + psSwapDispClassBufferIN->ui32ClipRectCount, + psSwapDispClassBufferIN->sClipRect); + + return 0; +} + +static IMG_INT +PVRSRVSwapToDCBuffer2BW(IMG_UINT32 ui32BridgeID, + PVRSRV_BRIDGE_IN_SWAP_DISPCLASS_TO_BUFFER2 *psSwapDispClassBufferIN, + PVRSRV_BRIDGE_RETURN *psRetOUT, + PVRSRV_PER_PROCESS_DATA *psPerProc) +{ + IMG_VOID *pvPrivData = IMG_NULL; + IMG_VOID *pvDispClassInfo; + IMG_VOID *pvSwapChainBuf; + IMG_UINT32 i; + + PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_SWAP_DISPCLASS_TO_BUFFER2); + + psRetOUT->eError = + PVRSRVLookupHandle(psPerProc->psHandleBase, + &pvDispClassInfo, + psSwapDispClassBufferIN->hDeviceKM, + PVRSRV_HANDLE_TYPE_DISP_INFO); + if(psRetOUT->eError != PVRSRV_OK) + { + PVR_DPF((PVR_DBG_ERROR, "PVRSRVSwapToDCBuffer2BW: Failed to look up DISP_INFO handle")); + return 0; + } + + psRetOUT->eError = + PVRSRVLookupSubHandle(psPerProc->psHandleBase, + &pvSwapChainBuf, + psSwapDispClassBufferIN->hBuffer, + PVRSRV_HANDLE_TYPE_DISP_BUFFER, + psSwapDispClassBufferIN->hDeviceKM); + if(psRetOUT->eError != PVRSRV_OK) + { + PVR_DPF((PVR_DBG_ERROR, "PVRSRVSwapToDCBuffer2BW: Failed to look up DISP_BUFFER handle")); + return 0; + } + + if(!OSAccessOK(PVR_VERIFY_WRITE, + psSwapDispClassBufferIN->ppsKernelMemInfos, + sizeof(IMG_HANDLE) * psSwapDispClassBufferIN->ui32NumMemInfos)) + { + PVR_DPF((PVR_DBG_ERROR, "PVRSRVSwapToDCBuffer2BW: Access check failed for ppsKernelMemInfos")); + return -EFAULT; + } + + if(!OSAccessOK(PVR_VERIFY_WRITE, + psSwapDispClassBufferIN->ppsKernelSyncInfos, + sizeof(IMG_HANDLE) * psSwapDispClassBufferIN->ui32NumMemInfos)) + { + PVR_DPF((PVR_DBG_ERROR, "PVRSRVSwapToDCBuffer2BW: Access check failed for ppsKernelSyncInfos")); + return -EFAULT; + } + + for (i = 0; i < psSwapDispClassBufferIN->ui32NumMemInfos; i++) + { + PVRSRV_KERNEL_SYNC_INFO *psKernelSyncInfo; + PVRSRV_KERNEL_MEM_INFO *psKernelMemInfo; + + psRetOUT->eError = + PVRSRVLookupHandle(psPerProc->psHandleBase, + (IMG_PVOID *)&psKernelMemInfo, + psSwapDispClassBufferIN->ppsKernelMemInfos[i], + PVRSRV_HANDLE_TYPE_MEM_INFO); + if(psRetOUT->eError != PVRSRV_OK) + { + PVR_DPF((PVR_DBG_ERROR, "PVRSRVSwapToDCBuffer2BW: Failed to look up MEM_INFO handle")); + return 0; + } + + psRetOUT->eError = + PVRSRVLookupHandle(psPerProc->psHandleBase, + (IMG_PVOID *)&psKernelSyncInfo, + psSwapDispClassBufferIN->ppsKernelSyncInfos[i], + PVRSRV_HANDLE_TYPE_SYNC_INFO); + if(psRetOUT->eError != PVRSRV_OK) + { + PVR_DPF((PVR_DBG_ERROR, "PVRSRVSwapToDCBuffer2BW: Failed to look up SYNC_INFO handle")); + return 0; + } + + psSwapDispClassBufferIN->ppsKernelMemInfos[i] = psKernelMemInfo; + psSwapDispClassBufferIN->ppsKernelSyncInfos[i] = psKernelSyncInfo; + } + + if(psSwapDispClassBufferIN->ui32PrivDataLength > 0) + { + + + if(OSAllocMem(PVRSRV_OS_PAGEABLE_HEAP, + psSwapDispClassBufferIN->ui32PrivDataLength, + (IMG_VOID **)&pvPrivData, IMG_NULL, + "Swap Command Private Data") != PVRSRV_OK) + { + PVR_DPF((PVR_DBG_ERROR,"PVRSRVSwapToDCBuffer2BW: Failed to allocate private data space")); + return -ENOMEM; + } + + if(CopyFromUserWrapper(psPerProc, + ui32BridgeID, + pvPrivData, + psSwapDispClassBufferIN->pvPrivData, + psSwapDispClassBufferIN->ui32PrivDataLength) != PVRSRV_OK) + { + PVR_DPF((PVR_DBG_ERROR, "PVRSRVSwapToDCBuffer2BW: Failed to copy private data")); + OSFreeMem(PVRSRV_OS_PAGEABLE_HEAP, + psSwapDispClassBufferIN->ui32PrivDataLength, + pvPrivData, IMG_NULL); + return -EFAULT; + } + } + + psRetOUT->eError = + PVRSRVSwapToDCBuffer2KM(pvDispClassInfo, + pvSwapChainBuf, + psSwapDispClassBufferIN->ui32SwapInterval, + psSwapDispClassBufferIN->ppsKernelMemInfos, + psSwapDispClassBufferIN->ppsKernelSyncInfos, + psSwapDispClassBufferIN->ui32NumMemInfos, + pvPrivData, + psSwapDispClassBufferIN->ui32PrivDataLength); + + if(psRetOUT->eError != PVRSRV_OK) + { + OSFreeMem(PVRSRV_OS_PAGEABLE_HEAP, + psSwapDispClassBufferIN->ui32PrivDataLength, + pvPrivData, IMG_NULL); + } return 0; } + + static IMG_INT PVRSRVSwapToDCBuffer2BW(IMG_UINT32 ui32BridgeID, PVRSRV_BRIDGE_IN_SWAP_DISPCLASS_TO_BUFFER2 *psSwapDispClassBufferIN, @@ -3022,817 +3152,817 @@ PVRSRVSwapToDCBuffer2BW(IMG_UINT32 ui32BridgeID, static IMG_INT PVRSRVSwapToDCSystemBW(IMG_UINT32 ui32BridgeID, - PVRSRV_BRIDGE_IN_SWAP_DISPCLASS_TO_SYSTEM *psSwapDispClassSystemIN, - PVRSRV_BRIDGE_RETURN *psRetOUT, - PVRSRV_PER_PROCESS_DATA *psPerProc) + PVRSRV_BRIDGE_IN_SWAP_DISPCLASS_TO_SYSTEM *psSwapDispClassSystemIN, + PVRSRV_BRIDGE_RETURN *psRetOUT, + PVRSRV_PER_PROCESS_DATA *psPerProc) { - IMG_VOID *pvDispClassInfo; - IMG_VOID *pvSwapChain; + IMG_VOID *pvDispClassInfo; + IMG_VOID *pvSwapChain; - PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_SWAP_DISPCLASS_TO_SYSTEM); + PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_SWAP_DISPCLASS_TO_SYSTEM); - psRetOUT->eError = - PVRSRVLookupHandle(psPerProc->psHandleBase, - &pvDispClassInfo, - psSwapDispClassSystemIN->hDeviceKM, - PVRSRV_HANDLE_TYPE_DISP_INFO); - if(psRetOUT->eError != PVRSRV_OK) - { - return 0; - } + psRetOUT->eError = + PVRSRVLookupHandle(psPerProc->psHandleBase, + &pvDispClassInfo, + psSwapDispClassSystemIN->hDeviceKM, + PVRSRV_HANDLE_TYPE_DISP_INFO); + if(psRetOUT->eError != PVRSRV_OK) + { + return 0; + } - psRetOUT->eError = - PVRSRVLookupSubHandle(psPerProc->psHandleBase, - &pvSwapChain, - psSwapDispClassSystemIN->hSwapChain, - PVRSRV_HANDLE_TYPE_DISP_SWAP_CHAIN, - psSwapDispClassSystemIN->hDeviceKM); - if(psRetOUT->eError != PVRSRV_OK) - { - return 0; - } - psRetOUT->eError = - PVRSRVSwapToDCSystemKM(pvDispClassInfo, - pvSwapChain); + psRetOUT->eError = + PVRSRVLookupSubHandle(psPerProc->psHandleBase, + &pvSwapChain, + psSwapDispClassSystemIN->hSwapChain, + PVRSRV_HANDLE_TYPE_DISP_SWAP_CHAIN, + psSwapDispClassSystemIN->hDeviceKM); + if(psRetOUT->eError != PVRSRV_OK) + { + return 0; + } + psRetOUT->eError = + PVRSRVSwapToDCSystemKM(pvDispClassInfo, + pvSwapChain); - return 0; + return 0; } static IMG_INT PVRSRVOpenBCDeviceBW(IMG_UINT32 ui32BridgeID, - PVRSRV_BRIDGE_IN_OPEN_BUFFERCLASS_DEVICE *psOpenBufferClassDeviceIN, - PVRSRV_BRIDGE_OUT_OPEN_BUFFERCLASS_DEVICE *psOpenBufferClassDeviceOUT, - PVRSRV_PER_PROCESS_DATA *psPerProc) + PVRSRV_BRIDGE_IN_OPEN_BUFFERCLASS_DEVICE *psOpenBufferClassDeviceIN, + PVRSRV_BRIDGE_OUT_OPEN_BUFFERCLASS_DEVICE *psOpenBufferClassDeviceOUT, + PVRSRV_PER_PROCESS_DATA *psPerProc) { - IMG_HANDLE hDevCookieInt; - IMG_HANDLE hBufClassInfo; + IMG_HANDLE hDevCookieInt; + IMG_HANDLE hBufClassInfo; - PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_OPEN_BUFFERCLASS_DEVICE); + PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_OPEN_BUFFERCLASS_DEVICE); - NEW_HANDLE_BATCH_OR_ERROR(psOpenBufferClassDeviceOUT->eError, psPerProc, 1) + NEW_HANDLE_BATCH_OR_ERROR(psOpenBufferClassDeviceOUT->eError, psPerProc, 1) - psOpenBufferClassDeviceOUT->eError = - PVRSRVLookupHandle(psPerProc->psHandleBase, - &hDevCookieInt, - psOpenBufferClassDeviceIN->hDevCookie, - PVRSRV_HANDLE_TYPE_DEV_NODE); - if(psOpenBufferClassDeviceOUT->eError != PVRSRV_OK) - { - return 0; - } + psOpenBufferClassDeviceOUT->eError = + PVRSRVLookupHandle(psPerProc->psHandleBase, + &hDevCookieInt, + psOpenBufferClassDeviceIN->hDevCookie, + PVRSRV_HANDLE_TYPE_DEV_NODE); + if(psOpenBufferClassDeviceOUT->eError != PVRSRV_OK) + { + return 0; + } - psOpenBufferClassDeviceOUT->eError = - PVRSRVOpenBCDeviceKM(psPerProc, - psOpenBufferClassDeviceIN->ui32DeviceID, - hDevCookieInt, - &hBufClassInfo); - if(psOpenBufferClassDeviceOUT->eError != PVRSRV_OK) - { - return 0; - } + psOpenBufferClassDeviceOUT->eError = + PVRSRVOpenBCDeviceKM(psPerProc, + psOpenBufferClassDeviceIN->ui32DeviceID, + hDevCookieInt, + &hBufClassInfo); + if(psOpenBufferClassDeviceOUT->eError != PVRSRV_OK) + { + return 0; + } - PVRSRVAllocHandleNR(psPerProc->psHandleBase, - &psOpenBufferClassDeviceOUT->hDeviceKM, - hBufClassInfo, - PVRSRV_HANDLE_TYPE_BUF_INFO, - PVRSRV_HANDLE_ALLOC_FLAG_NONE); + PVRSRVAllocHandleNR(psPerProc->psHandleBase, + &psOpenBufferClassDeviceOUT->hDeviceKM, + hBufClassInfo, + PVRSRV_HANDLE_TYPE_BUF_INFO, + PVRSRV_HANDLE_ALLOC_FLAG_NONE); - COMMIT_HANDLE_BATCH_OR_ERROR(psOpenBufferClassDeviceOUT->eError, psPerProc) + COMMIT_HANDLE_BATCH_OR_ERROR(psOpenBufferClassDeviceOUT->eError, psPerProc) - return 0; + return 0; } static IMG_INT PVRSRVCloseBCDeviceBW(IMG_UINT32 ui32BridgeID, - PVRSRV_BRIDGE_IN_CLOSE_BUFFERCLASS_DEVICE *psCloseBufferClassDeviceIN, - PVRSRV_BRIDGE_RETURN *psRetOUT, - PVRSRV_PER_PROCESS_DATA *psPerProc) + PVRSRV_BRIDGE_IN_CLOSE_BUFFERCLASS_DEVICE *psCloseBufferClassDeviceIN, + PVRSRV_BRIDGE_RETURN *psRetOUT, + PVRSRV_PER_PROCESS_DATA *psPerProc) { - IMG_VOID *pvBufClassInfo; + IMG_VOID *pvBufClassInfo; - PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_CLOSE_BUFFERCLASS_DEVICE); + PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_CLOSE_BUFFERCLASS_DEVICE); - psRetOUT->eError = - PVRSRVLookupHandle(psPerProc->psHandleBase, - &pvBufClassInfo, - psCloseBufferClassDeviceIN->hDeviceKM, - PVRSRV_HANDLE_TYPE_BUF_INFO); - if(psRetOUT->eError != PVRSRV_OK) - { - return 0; - } + psRetOUT->eError = + PVRSRVLookupHandle(psPerProc->psHandleBase, + &pvBufClassInfo, + psCloseBufferClassDeviceIN->hDeviceKM, + PVRSRV_HANDLE_TYPE_BUF_INFO); + if(psRetOUT->eError != PVRSRV_OK) + { + return 0; + } - psRetOUT->eError = - PVRSRVCloseBCDeviceKM(pvBufClassInfo, IMG_FALSE); + psRetOUT->eError = + PVRSRVCloseBCDeviceKM(pvBufClassInfo, IMG_FALSE); - if(psRetOUT->eError != PVRSRV_OK) - { - return 0; - } + if(psRetOUT->eError != PVRSRV_OK) + { + return 0; + } - psRetOUT->eError = PVRSRVReleaseHandle(psPerProc->psHandleBase, - psCloseBufferClassDeviceIN->hDeviceKM, - PVRSRV_HANDLE_TYPE_BUF_INFO); + psRetOUT->eError = PVRSRVReleaseHandle(psPerProc->psHandleBase, + psCloseBufferClassDeviceIN->hDeviceKM, + PVRSRV_HANDLE_TYPE_BUF_INFO); - return 0; + return 0; } static IMG_INT PVRSRVGetBCInfoBW(IMG_UINT32 ui32BridgeID, - PVRSRV_BRIDGE_IN_GET_BUFFERCLASS_INFO *psGetBufferClassInfoIN, - PVRSRV_BRIDGE_OUT_GET_BUFFERCLASS_INFO *psGetBufferClassInfoOUT, - PVRSRV_PER_PROCESS_DATA *psPerProc) + PVRSRV_BRIDGE_IN_GET_BUFFERCLASS_INFO *psGetBufferClassInfoIN, + PVRSRV_BRIDGE_OUT_GET_BUFFERCLASS_INFO *psGetBufferClassInfoOUT, + PVRSRV_PER_PROCESS_DATA *psPerProc) { - IMG_VOID *pvBufClassInfo; + IMG_VOID *pvBufClassInfo; - PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_GET_BUFFERCLASS_INFO); + PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_GET_BUFFERCLASS_INFO); - psGetBufferClassInfoOUT->eError = - PVRSRVLookupHandle(psPerProc->psHandleBase, - &pvBufClassInfo, - psGetBufferClassInfoIN->hDeviceKM, - PVRSRV_HANDLE_TYPE_BUF_INFO); - if(psGetBufferClassInfoOUT->eError != PVRSRV_OK) - { - return 0; - } + psGetBufferClassInfoOUT->eError = + PVRSRVLookupHandle(psPerProc->psHandleBase, + &pvBufClassInfo, + psGetBufferClassInfoIN->hDeviceKM, + PVRSRV_HANDLE_TYPE_BUF_INFO); + if(psGetBufferClassInfoOUT->eError != PVRSRV_OK) + { + return 0; + } - psGetBufferClassInfoOUT->eError = - PVRSRVGetBCInfoKM(pvBufClassInfo, - &psGetBufferClassInfoOUT->sBufferInfo); - return 0; + psGetBufferClassInfoOUT->eError = + PVRSRVGetBCInfoKM(pvBufClassInfo, + &psGetBufferClassInfoOUT->sBufferInfo); + return 0; } static IMG_INT PVRSRVGetBCBufferBW(IMG_UINT32 ui32BridgeID, - PVRSRV_BRIDGE_IN_GET_BUFFERCLASS_BUFFER *psGetBufferClassBufferIN, - PVRSRV_BRIDGE_OUT_GET_BUFFERCLASS_BUFFER *psGetBufferClassBufferOUT, - PVRSRV_PER_PROCESS_DATA *psPerProc) + PVRSRV_BRIDGE_IN_GET_BUFFERCLASS_BUFFER *psGetBufferClassBufferIN, + PVRSRV_BRIDGE_OUT_GET_BUFFERCLASS_BUFFER *psGetBufferClassBufferOUT, + PVRSRV_PER_PROCESS_DATA *psPerProc) { - IMG_VOID *pvBufClassInfo; - IMG_HANDLE hBufferInt; + IMG_VOID *pvBufClassInfo; + IMG_HANDLE hBufferInt; - PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_GET_BUFFERCLASS_BUFFER); + PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_GET_BUFFERCLASS_BUFFER); - NEW_HANDLE_BATCH_OR_ERROR(psGetBufferClassBufferOUT->eError, psPerProc, 1) + NEW_HANDLE_BATCH_OR_ERROR(psGetBufferClassBufferOUT->eError, psPerProc, 1) - psGetBufferClassBufferOUT->eError = - PVRSRVLookupHandle(psPerProc->psHandleBase, - &pvBufClassInfo, - psGetBufferClassBufferIN->hDeviceKM, - PVRSRV_HANDLE_TYPE_BUF_INFO); - if(psGetBufferClassBufferOUT->eError != PVRSRV_OK) - { - return 0; - } + psGetBufferClassBufferOUT->eError = + PVRSRVLookupHandle(psPerProc->psHandleBase, + &pvBufClassInfo, + psGetBufferClassBufferIN->hDeviceKM, + PVRSRV_HANDLE_TYPE_BUF_INFO); + if(psGetBufferClassBufferOUT->eError != PVRSRV_OK) + { + return 0; + } - psGetBufferClassBufferOUT->eError = - PVRSRVGetBCBufferKM(pvBufClassInfo, - psGetBufferClassBufferIN->ui32BufferIndex, - &hBufferInt); + psGetBufferClassBufferOUT->eError = + PVRSRVGetBCBufferKM(pvBufClassInfo, + psGetBufferClassBufferIN->ui32BufferIndex, + &hBufferInt); - if(psGetBufferClassBufferOUT->eError != PVRSRV_OK) - { - return 0; - } + if(psGetBufferClassBufferOUT->eError != PVRSRV_OK) + { + return 0; + } - - PVRSRVAllocSubHandleNR(psPerProc->psHandleBase, - &psGetBufferClassBufferOUT->hBuffer, - hBufferInt, - PVRSRV_HANDLE_TYPE_BUF_BUFFER, - (PVRSRV_HANDLE_ALLOC_FLAG)(PVRSRV_HANDLE_ALLOC_FLAG_PRIVATE | PVRSRV_HANDLE_ALLOC_FLAG_SHARED), - psGetBufferClassBufferIN->hDeviceKM); + + PVRSRVAllocSubHandleNR(psPerProc->psHandleBase, + &psGetBufferClassBufferOUT->hBuffer, + hBufferInt, + PVRSRV_HANDLE_TYPE_BUF_BUFFER, + (PVRSRV_HANDLE_ALLOC_FLAG)(PVRSRV_HANDLE_ALLOC_FLAG_PRIVATE | PVRSRV_HANDLE_ALLOC_FLAG_SHARED), + psGetBufferClassBufferIN->hDeviceKM); - COMMIT_HANDLE_BATCH_OR_ERROR(psGetBufferClassBufferOUT->eError, psPerProc) + COMMIT_HANDLE_BATCH_OR_ERROR(psGetBufferClassBufferOUT->eError, psPerProc) - return 0; + return 0; } static IMG_INT PVRSRVAllocSharedSysMemoryBW(IMG_UINT32 ui32BridgeID, - PVRSRV_BRIDGE_IN_ALLOC_SHARED_SYS_MEM *psAllocSharedSysMemIN, - PVRSRV_BRIDGE_OUT_ALLOC_SHARED_SYS_MEM *psAllocSharedSysMemOUT, - PVRSRV_PER_PROCESS_DATA *psPerProc) + PVRSRV_BRIDGE_IN_ALLOC_SHARED_SYS_MEM *psAllocSharedSysMemIN, + PVRSRV_BRIDGE_OUT_ALLOC_SHARED_SYS_MEM *psAllocSharedSysMemOUT, + PVRSRV_PER_PROCESS_DATA *psPerProc) { - PVRSRV_KERNEL_MEM_INFO *psKernelMemInfo; + PVRSRV_KERNEL_MEM_INFO *psKernelMemInfo; - PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_ALLOC_SHARED_SYS_MEM); + PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_ALLOC_SHARED_SYS_MEM); - NEW_HANDLE_BATCH_OR_ERROR(psAllocSharedSysMemOUT->eError, psPerProc, 1) + NEW_HANDLE_BATCH_OR_ERROR(psAllocSharedSysMemOUT->eError, psPerProc, 1) - psAllocSharedSysMemOUT->eError = - PVRSRVAllocSharedSysMemoryKM(psPerProc, - psAllocSharedSysMemIN->ui32Flags, - psAllocSharedSysMemIN->ui32Size, - &psKernelMemInfo); - if(psAllocSharedSysMemOUT->eError != PVRSRV_OK) - { - return 0; - } + psAllocSharedSysMemOUT->eError = + PVRSRVAllocSharedSysMemoryKM(psPerProc, + psAllocSharedSysMemIN->ui32Flags, + psAllocSharedSysMemIN->ui32Size, + &psKernelMemInfo); + if(psAllocSharedSysMemOUT->eError != PVRSRV_OK) + { + return 0; + } - OSMemSet(&psAllocSharedSysMemOUT->sClientMemInfo, - 0, - sizeof(psAllocSharedSysMemOUT->sClientMemInfo)); + OSMemSet(&psAllocSharedSysMemOUT->sClientMemInfo, + 0, + sizeof(psAllocSharedSysMemOUT->sClientMemInfo)); - psAllocSharedSysMemOUT->sClientMemInfo.pvLinAddrKM = - psKernelMemInfo->pvLinAddrKM; + psAllocSharedSysMemOUT->sClientMemInfo.pvLinAddrKM = + psKernelMemInfo->pvLinAddrKM; - psAllocSharedSysMemOUT->sClientMemInfo.pvLinAddr = 0; - psAllocSharedSysMemOUT->sClientMemInfo.ui32Flags = - psKernelMemInfo->ui32Flags; + psAllocSharedSysMemOUT->sClientMemInfo.pvLinAddr = 0; + psAllocSharedSysMemOUT->sClientMemInfo.ui32Flags = + psKernelMemInfo->ui32Flags; psAllocSharedSysMemOUT->sClientMemInfo.uAllocSize = psKernelMemInfo->uAllocSize; #if defined (SUPPORT_SID_INTERFACE) - if (psKernelMemInfo->sMemBlk.hOSMemHandle != IMG_NULL) - { - PVRSRVAllocHandleNR(psPerProc->psHandleBase, - &psAllocSharedSysMemOUT->sClientMemInfo.hMappingInfo, - psKernelMemInfo->sMemBlk.hOSMemHandle, - PVRSRV_HANDLE_TYPE_SHARED_SYS_MEM_INFO, - PVRSRV_HANDLE_ALLOC_FLAG_NONE); - } - else - { - psAllocSharedSysMemOUT->sClientMemInfo.hMappingInfo = 0; - } + if (psKernelMemInfo->sMemBlk.hOSMemHandle != IMG_NULL) + { + PVRSRVAllocHandleNR(psPerProc->psHandleBase, + &psAllocSharedSysMemOUT->sClientMemInfo.hMappingInfo, + psKernelMemInfo->sMemBlk.hOSMemHandle, + PVRSRV_HANDLE_TYPE_SHARED_SYS_MEM_INFO, + PVRSRV_HANDLE_ALLOC_FLAG_NONE); + } + else + { + psAllocSharedSysMemOUT->sClientMemInfo.hMappingInfo = 0; + } #else - psAllocSharedSysMemOUT->sClientMemInfo.hMappingInfo = psKernelMemInfo->sMemBlk.hOSMemHandle; + psAllocSharedSysMemOUT->sClientMemInfo.hMappingInfo = psKernelMemInfo->sMemBlk.hOSMemHandle; #endif - PVRSRVAllocHandleNR(psPerProc->psHandleBase, - &psAllocSharedSysMemOUT->sClientMemInfo.hKernelMemInfo, - psKernelMemInfo, - PVRSRV_HANDLE_TYPE_SHARED_SYS_MEM_INFO, - PVRSRV_HANDLE_ALLOC_FLAG_NONE); + PVRSRVAllocHandleNR(psPerProc->psHandleBase, + &psAllocSharedSysMemOUT->sClientMemInfo.hKernelMemInfo, + psKernelMemInfo, + PVRSRV_HANDLE_TYPE_SHARED_SYS_MEM_INFO, + PVRSRV_HANDLE_ALLOC_FLAG_NONE); - COMMIT_HANDLE_BATCH_OR_ERROR(psAllocSharedSysMemOUT->eError, psPerProc) + COMMIT_HANDLE_BATCH_OR_ERROR(psAllocSharedSysMemOUT->eError, psPerProc) - return 0; + return 0; } static IMG_INT PVRSRVFreeSharedSysMemoryBW(IMG_UINT32 ui32BridgeID, - PVRSRV_BRIDGE_IN_FREE_SHARED_SYS_MEM *psFreeSharedSysMemIN, - PVRSRV_BRIDGE_OUT_FREE_SHARED_SYS_MEM *psFreeSharedSysMemOUT, - PVRSRV_PER_PROCESS_DATA *psPerProc) + PVRSRV_BRIDGE_IN_FREE_SHARED_SYS_MEM *psFreeSharedSysMemIN, + PVRSRV_BRIDGE_OUT_FREE_SHARED_SYS_MEM *psFreeSharedSysMemOUT, + PVRSRV_PER_PROCESS_DATA *psPerProc) { - PVRSRV_KERNEL_MEM_INFO *psKernelMemInfo; + PVRSRV_KERNEL_MEM_INFO *psKernelMemInfo; - PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_FREE_SHARED_SYS_MEM); + PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_FREE_SHARED_SYS_MEM); - psFreeSharedSysMemOUT->eError = - PVRSRVLookupHandle(psPerProc->psHandleBase, - (IMG_VOID **)&psKernelMemInfo, + psFreeSharedSysMemOUT->eError = + PVRSRVLookupHandle(psPerProc->psHandleBase, + (IMG_VOID **)&psKernelMemInfo, #if defined (SUPPORT_SID_INTERFACE) - psFreeSharedSysMemIN->hKernelMemInfo, + psFreeSharedSysMemIN->hKernelMemInfo, #else - psFreeSharedSysMemIN->psKernelMemInfo, + psFreeSharedSysMemIN->psKernelMemInfo, #endif - PVRSRV_HANDLE_TYPE_SHARED_SYS_MEM_INFO); + PVRSRV_HANDLE_TYPE_SHARED_SYS_MEM_INFO); - if(psFreeSharedSysMemOUT->eError != PVRSRV_OK) - return 0; + if(psFreeSharedSysMemOUT->eError != PVRSRV_OK) + return 0; - psFreeSharedSysMemOUT->eError = - PVRSRVFreeSharedSysMemoryKM(psKernelMemInfo); - if(psFreeSharedSysMemOUT->eError != PVRSRV_OK) - return 0; + psFreeSharedSysMemOUT->eError = + PVRSRVFreeSharedSysMemoryKM(psKernelMemInfo); + if(psFreeSharedSysMemOUT->eError != PVRSRV_OK) + return 0; #if defined (SUPPORT_SID_INTERFACE) - if (psFreeSharedSysMemIN->hMappingInfo != 0) - { - psFreeSharedSysMemOUT->eError = - PVRSRVReleaseHandle(psPerProc->psHandleBase, - psFreeSharedSysMemIN->hMappingInfo, - PVRSRV_HANDLE_TYPE_SHARED_SYS_MEM_INFO); - if(psFreeSharedSysMemOUT->eError != PVRSRV_OK) - { - return 0; - } - } + if (psFreeSharedSysMemIN->hMappingInfo != 0) + { + psFreeSharedSysMemOUT->eError = + PVRSRVReleaseHandle(psPerProc->psHandleBase, + psFreeSharedSysMemIN->hMappingInfo, + PVRSRV_HANDLE_TYPE_SHARED_SYS_MEM_INFO); + if(psFreeSharedSysMemOUT->eError != PVRSRV_OK) + { + return 0; + } + } #endif - psFreeSharedSysMemOUT->eError = - PVRSRVReleaseHandle(psPerProc->psHandleBase, + psFreeSharedSysMemOUT->eError = + PVRSRVReleaseHandle(psPerProc->psHandleBase, #if defined (SUPPORT_SID_INTERFACE) - psFreeSharedSysMemIN->hKernelMemInfo, + psFreeSharedSysMemIN->hKernelMemInfo, #else - psFreeSharedSysMemIN->psKernelMemInfo, + psFreeSharedSysMemIN->psKernelMemInfo, #endif - PVRSRV_HANDLE_TYPE_SHARED_SYS_MEM_INFO); - return 0; + PVRSRV_HANDLE_TYPE_SHARED_SYS_MEM_INFO); + return 0; } static IMG_INT PVRSRVMapMemInfoMemBW(IMG_UINT32 ui32BridgeID, - PVRSRV_BRIDGE_IN_MAP_MEMINFO_MEM *psMapMemInfoMemIN, - PVRSRV_BRIDGE_OUT_MAP_MEMINFO_MEM *psMapMemInfoMemOUT, - PVRSRV_PER_PROCESS_DATA *psPerProc) + PVRSRV_BRIDGE_IN_MAP_MEMINFO_MEM *psMapMemInfoMemIN, + PVRSRV_BRIDGE_OUT_MAP_MEMINFO_MEM *psMapMemInfoMemOUT, + PVRSRV_PER_PROCESS_DATA *psPerProc) { - PVRSRV_KERNEL_MEM_INFO *psKernelMemInfo; - PVRSRV_HANDLE_TYPE eHandleType; + PVRSRV_KERNEL_MEM_INFO *psKernelMemInfo; + PVRSRV_HANDLE_TYPE eHandleType; #if defined (SUPPORT_SID_INTERFACE) - IMG_SID hParent; + IMG_SID hParent; #else - IMG_HANDLE hParent; + IMG_HANDLE hParent; #endif - PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_MAP_MEMINFO_MEM); + PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_MAP_MEMINFO_MEM); - NEW_HANDLE_BATCH_OR_ERROR(psMapMemInfoMemOUT->eError, psPerProc, 2) + NEW_HANDLE_BATCH_OR_ERROR(psMapMemInfoMemOUT->eError, psPerProc, 2) - psMapMemInfoMemOUT->eError = - PVRSRVLookupHandleAnyType(psPerProc->psHandleBase, - (IMG_VOID **)&psKernelMemInfo, - &eHandleType, - psMapMemInfoMemIN->hKernelMemInfo); - if(psMapMemInfoMemOUT->eError != PVRSRV_OK) - { - return 0; - } + psMapMemInfoMemOUT->eError = + PVRSRVLookupHandleAnyType(psPerProc->psHandleBase, + (IMG_VOID **)&psKernelMemInfo, + &eHandleType, + psMapMemInfoMemIN->hKernelMemInfo); + if(psMapMemInfoMemOUT->eError != PVRSRV_OK) + { + return 0; + } - switch (eHandleType) - { + switch (eHandleType) + { #if defined(PVR_SECURE_HANDLES) || defined (SUPPORT_SID_INTERFACE) - case PVRSRV_HANDLE_TYPE_MEM_INFO: - case PVRSRV_HANDLE_TYPE_MEM_INFO_REF: - case PVRSRV_HANDLE_TYPE_SHARED_SYS_MEM_INFO: + case PVRSRV_HANDLE_TYPE_MEM_INFO: + case PVRSRV_HANDLE_TYPE_MEM_INFO_REF: + case PVRSRV_HANDLE_TYPE_SHARED_SYS_MEM_INFO: #else - case PVRSRV_HANDLE_TYPE_NONE: + case PVRSRV_HANDLE_TYPE_NONE: #endif - break; - default: - psMapMemInfoMemOUT->eError = PVRSRV_ERROR_INVALID_HANDLE_TYPE; - return 0; - } + break; + default: + psMapMemInfoMemOUT->eError = PVRSRV_ERROR_INVALID_HANDLE_TYPE; + return 0; + } - - psMapMemInfoMemOUT->eError = - PVRSRVGetParentHandle(psPerProc->psHandleBase, - &hParent, - psMapMemInfoMemIN->hKernelMemInfo, - eHandleType); - if (psMapMemInfoMemOUT->eError != PVRSRV_OK) - { - return 0; - } + + psMapMemInfoMemOUT->eError = + PVRSRVGetParentHandle(psPerProc->psHandleBase, + &hParent, + psMapMemInfoMemIN->hKernelMemInfo, + eHandleType); + if (psMapMemInfoMemOUT->eError != PVRSRV_OK) + { + return 0; + } #if defined (SUPPORT_SID_INTERFACE) - if (hParent == 0) + if (hParent == 0) #else - if (hParent == IMG_NULL) + if (hParent == IMG_NULL) #endif - { - hParent = psMapMemInfoMemIN->hKernelMemInfo; - } + { + hParent = psMapMemInfoMemIN->hKernelMemInfo; + } - OSMemSet(&psMapMemInfoMemOUT->sClientMemInfo, - 0, - sizeof(psMapMemInfoMemOUT->sClientMemInfo)); + OSMemSet(&psMapMemInfoMemOUT->sClientMemInfo, + 0, + sizeof(psMapMemInfoMemOUT->sClientMemInfo)); - psMapMemInfoMemOUT->sClientMemInfo.pvLinAddrKM = - psKernelMemInfo->pvLinAddrKM; + psMapMemInfoMemOUT->sClientMemInfo.pvLinAddrKM = + psKernelMemInfo->pvLinAddrKM; - psMapMemInfoMemOUT->sClientMemInfo.pvLinAddr = 0; - psMapMemInfoMemOUT->sClientMemInfo.sDevVAddr = - psKernelMemInfo->sDevVAddr; - psMapMemInfoMemOUT->sClientMemInfo.ui32Flags = - psKernelMemInfo->ui32Flags; + psMapMemInfoMemOUT->sClientMemInfo.pvLinAddr = 0; + psMapMemInfoMemOUT->sClientMemInfo.sDevVAddr = + psKernelMemInfo->sDevVAddr; + psMapMemInfoMemOUT->sClientMemInfo.ui32Flags = + psKernelMemInfo->ui32Flags; psMapMemInfoMemOUT->sClientMemInfo.uAllocSize = psKernelMemInfo->uAllocSize; #if defined (SUPPORT_SID_INTERFACE) - if (psKernelMemInfo->sMemBlk.hOSMemHandle != IMG_NULL) - { - PVRSRVAllocSubHandleNR(psPerProc->psHandleBase, - &psMapMemInfoMemOUT->sClientMemInfo.hMappingInfo, - psKernelMemInfo->sMemBlk.hOSMemHandle, - PVRSRV_HANDLE_TYPE_MEM_INFO_REF, - PVRSRV_HANDLE_ALLOC_FLAG_MULTI, - hParent); - } - else - { - psMapMemInfoMemOUT->sClientMemInfo.hMappingInfo = 0; - } + if (psKernelMemInfo->sMemBlk.hOSMemHandle != IMG_NULL) + { + PVRSRVAllocSubHandleNR(psPerProc->psHandleBase, + &psMapMemInfoMemOUT->sClientMemInfo.hMappingInfo, + psKernelMemInfo->sMemBlk.hOSMemHandle, + PVRSRV_HANDLE_TYPE_MEM_INFO_REF, + PVRSRV_HANDLE_ALLOC_FLAG_MULTI, + hParent); + } + else + { + psMapMemInfoMemOUT->sClientMemInfo.hMappingInfo = 0; + } #else - psMapMemInfoMemOUT->sClientMemInfo.hMappingInfo = psKernelMemInfo->sMemBlk.hOSMemHandle; + psMapMemInfoMemOUT->sClientMemInfo.hMappingInfo = psKernelMemInfo->sMemBlk.hOSMemHandle; #endif - PVRSRVAllocSubHandleNR(psPerProc->psHandleBase, - &psMapMemInfoMemOUT->sClientMemInfo.hKernelMemInfo, - psKernelMemInfo, - PVRSRV_HANDLE_TYPE_MEM_INFO_REF, - PVRSRV_HANDLE_ALLOC_FLAG_MULTI, - hParent); + PVRSRVAllocSubHandleNR(psPerProc->psHandleBase, + &psMapMemInfoMemOUT->sClientMemInfo.hKernelMemInfo, + psKernelMemInfo, + PVRSRV_HANDLE_TYPE_MEM_INFO_REF, + PVRSRV_HANDLE_ALLOC_FLAG_MULTI, + hParent); - if(psKernelMemInfo->ui32Flags & PVRSRV_MEM_NO_SYNCOBJ) - { - - OSMemSet(&psMapMemInfoMemOUT->sClientSyncInfo, - 0, - sizeof (PVRSRV_CLIENT_SYNC_INFO)); - } - else - { - + if(psKernelMemInfo->ui32Flags & PVRSRV_MEM_NO_SYNCOBJ) + { + + OSMemSet(&psMapMemInfoMemOUT->sClientSyncInfo, + 0, + sizeof (PVRSRV_CLIENT_SYNC_INFO)); + } + else + { + #if !defined(PVRSRV_DISABLE_UM_SYNCOBJ_MAPPINGS) - psMapMemInfoMemOUT->sClientSyncInfo.psSyncData = - psKernelMemInfo->psKernelSyncInfo->psSyncData; - psMapMemInfoMemOUT->sClientSyncInfo.sWriteOpsCompleteDevVAddr = - psKernelMemInfo->psKernelSyncInfo->sWriteOpsCompleteDevVAddr; - psMapMemInfoMemOUT->sClientSyncInfo.sReadOpsCompleteDevVAddr = - psKernelMemInfo->psKernelSyncInfo->sReadOpsCompleteDevVAddr; + psMapMemInfoMemOUT->sClientSyncInfo.psSyncData = + psKernelMemInfo->psKernelSyncInfo->psSyncData; + psMapMemInfoMemOUT->sClientSyncInfo.sWriteOpsCompleteDevVAddr = + psKernelMemInfo->psKernelSyncInfo->sWriteOpsCompleteDevVAddr; + psMapMemInfoMemOUT->sClientSyncInfo.sReadOpsCompleteDevVAddr = + psKernelMemInfo->psKernelSyncInfo->sReadOpsCompleteDevVAddr; #if defined (SUPPORT_SID_INTERFACE) - if (psKernelMemInfo->psKernelSyncInfo->psSyncDataMemInfoKM->sMemBlk.hOSMemHandle != IMG_NULL) - { - PVRSRVAllocSubHandleNR(psPerProc->psHandleBase, - &psMapMemInfoMemOUT->sClientSyncInfo.hMappingInfo, - psKernelMemInfo->psKernelSyncInfo->psSyncDataMemInfoKM->sMemBlk.hOSMemHandle, - PVRSRV_HANDLE_TYPE_SYNC_INFO, - PVRSRV_HANDLE_ALLOC_FLAG_MULTI, - psMapMemInfoMemOUT->sClientMemInfo.hKernelMemInfo); - } - else - { - psMapMemInfoMemOUT->sClientSyncInfo.hMappingInfo = 0; - } + if (psKernelMemInfo->psKernelSyncInfo->psSyncDataMemInfoKM->sMemBlk.hOSMemHandle != IMG_NULL) + { + PVRSRVAllocSubHandleNR(psPerProc->psHandleBase, + &psMapMemInfoMemOUT->sClientSyncInfo.hMappingInfo, + psKernelMemInfo->psKernelSyncInfo->psSyncDataMemInfoKM->sMemBlk.hOSMemHandle, + PVRSRV_HANDLE_TYPE_SYNC_INFO, + PVRSRV_HANDLE_ALLOC_FLAG_MULTI, + psMapMemInfoMemOUT->sClientMemInfo.hKernelMemInfo); + } + else + { + psMapMemInfoMemOUT->sClientSyncInfo.hMappingInfo = 0; + } #else - psMapMemInfoMemOUT->sClientSyncInfo.hMappingInfo = - psKernelMemInfo->psKernelSyncInfo->psSyncDataMemInfoKM->sMemBlk.hOSMemHandle; + psMapMemInfoMemOUT->sClientSyncInfo.hMappingInfo = + psKernelMemInfo->psKernelSyncInfo->psSyncDataMemInfoKM->sMemBlk.hOSMemHandle; #endif #endif - psMapMemInfoMemOUT->sClientMemInfo.psClientSyncInfo = &psMapMemInfoMemOUT->sClientSyncInfo; + psMapMemInfoMemOUT->sClientMemInfo.psClientSyncInfo = &psMapMemInfoMemOUT->sClientSyncInfo; - PVRSRVAllocSubHandleNR(psPerProc->psHandleBase, - &psMapMemInfoMemOUT->sClientSyncInfo.hKernelSyncInfo, - psKernelMemInfo->psKernelSyncInfo, - PVRSRV_HANDLE_TYPE_SYNC_INFO, - PVRSRV_HANDLE_ALLOC_FLAG_MULTI, - psMapMemInfoMemOUT->sClientMemInfo.hKernelMemInfo); - } + PVRSRVAllocSubHandleNR(psPerProc->psHandleBase, + &psMapMemInfoMemOUT->sClientSyncInfo.hKernelSyncInfo, + psKernelMemInfo->psKernelSyncInfo, + PVRSRV_HANDLE_TYPE_SYNC_INFO, + PVRSRV_HANDLE_ALLOC_FLAG_MULTI, + psMapMemInfoMemOUT->sClientMemInfo.hKernelMemInfo); + } - COMMIT_HANDLE_BATCH_OR_ERROR(psMapMemInfoMemOUT->eError, psPerProc) + COMMIT_HANDLE_BATCH_OR_ERROR(psMapMemInfoMemOUT->eError, psPerProc) - return 0; + return 0; } static IMG_INT MMU_GetPDDevPAddrBW(IMG_UINT32 ui32BridgeID, - PVRSRV_BRIDGE_IN_GETMMU_PD_DEVPADDR *psGetMmuPDDevPAddrIN, - PVRSRV_BRIDGE_OUT_GETMMU_PD_DEVPADDR *psGetMmuPDDevPAddrOUT, - PVRSRV_PER_PROCESS_DATA *psPerProc) + PVRSRV_BRIDGE_IN_GETMMU_PD_DEVPADDR *psGetMmuPDDevPAddrIN, + PVRSRV_BRIDGE_OUT_GETMMU_PD_DEVPADDR *psGetMmuPDDevPAddrOUT, + PVRSRV_PER_PROCESS_DATA *psPerProc) { - IMG_HANDLE hDevMemContextInt; + IMG_HANDLE hDevMemContextInt; - PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_GETMMU_PD_DEVPADDR); + PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_GETMMU_PD_DEVPADDR); - psGetMmuPDDevPAddrOUT->eError = - PVRSRVLookupHandle(psPerProc->psHandleBase, &hDevMemContextInt, - psGetMmuPDDevPAddrIN->hDevMemContext, - PVRSRV_HANDLE_TYPE_DEV_MEM_CONTEXT); - if(psGetMmuPDDevPAddrOUT->eError != PVRSRV_OK) - { - return 0; - } + psGetMmuPDDevPAddrOUT->eError = + PVRSRVLookupHandle(psPerProc->psHandleBase, &hDevMemContextInt, + psGetMmuPDDevPAddrIN->hDevMemContext, + PVRSRV_HANDLE_TYPE_DEV_MEM_CONTEXT); + if(psGetMmuPDDevPAddrOUT->eError != PVRSRV_OK) + { + return 0; + } - psGetMmuPDDevPAddrOUT->sPDDevPAddr = - BM_GetDeviceNode(hDevMemContextInt)->pfnMMUGetPDDevPAddr(BM_GetMMUContextFromMemContext(hDevMemContextInt)); - if(psGetMmuPDDevPAddrOUT->sPDDevPAddr.uiAddr) - { - psGetMmuPDDevPAddrOUT->eError = PVRSRV_OK; - } - else - { - psGetMmuPDDevPAddrOUT->eError = PVRSRV_ERROR_INVALID_PHYS_ADDR; - } - return 0; + psGetMmuPDDevPAddrOUT->sPDDevPAddr = + BM_GetDeviceNode(hDevMemContextInt)->pfnMMUGetPDDevPAddr(BM_GetMMUContextFromMemContext(hDevMemContextInt)); + if(psGetMmuPDDevPAddrOUT->sPDDevPAddr.uiAddr) + { + psGetMmuPDDevPAddrOUT->eError = PVRSRV_OK; + } + else + { + psGetMmuPDDevPAddrOUT->eError = PVRSRV_ERROR_INVALID_PHYS_ADDR; + } + return 0; } IMG_INT DummyBW(IMG_UINT32 ui32BridgeID, - IMG_VOID *psBridgeIn, - IMG_VOID *psBridgeOut, - PVRSRV_PER_PROCESS_DATA *psPerProc) + IMG_VOID *psBridgeIn, + IMG_VOID *psBridgeOut, + PVRSRV_PER_PROCESS_DATA *psPerProc) { #if !defined(DEBUG) - PVR_UNREFERENCED_PARAMETER(ui32BridgeID); + PVR_UNREFERENCED_PARAMETER(ui32BridgeID); #endif - PVR_UNREFERENCED_PARAMETER(psBridgeIn); - PVR_UNREFERENCED_PARAMETER(psBridgeOut); - PVR_UNREFERENCED_PARAMETER(psPerProc); + PVR_UNREFERENCED_PARAMETER(psBridgeIn); + PVR_UNREFERENCED_PARAMETER(psBridgeOut); + PVR_UNREFERENCED_PARAMETER(psPerProc); #if defined(DEBUG_BRIDGE_KM) - PVR_DPF((PVR_DBG_ERROR, "%s: BRIDGE ERROR: BridgeID %u (%s) mapped to " - "Dummy Wrapper (probably not what you want!)", - __FUNCTION__, ui32BridgeID, g_BridgeDispatchTable[ui32BridgeID].pszIOCName)); + PVR_DPF((PVR_DBG_ERROR, "%s: BRIDGE ERROR: BridgeID %u (%s) mapped to " + "Dummy Wrapper (probably not what you want!)", + __FUNCTION__, ui32BridgeID, g_BridgeDispatchTable[ui32BridgeID].pszIOCName)); #else - PVR_DPF((PVR_DBG_ERROR, "%s: BRIDGE ERROR: BridgeID %u mapped to " - "Dummy Wrapper (probably not what you want!)", - __FUNCTION__, ui32BridgeID)); + PVR_DPF((PVR_DBG_ERROR, "%s: BRIDGE ERROR: BridgeID %u mapped to " + "Dummy Wrapper (probably not what you want!)", + __FUNCTION__, ui32BridgeID)); #endif - return -ENOTTY; + return -ENOTTY; } IMG_VOID _SetDispatchTableEntry(IMG_UINT32 ui32Index, - const IMG_CHAR *pszIOCName, - BridgeWrapperFunction pfFunction, - const IMG_CHAR *pszFunctionName) + const IMG_CHAR *pszIOCName, + BridgeWrapperFunction pfFunction, + const IMG_CHAR *pszFunctionName) { - static IMG_UINT32 ui32PrevIndex = ~0UL; + static IMG_UINT32 ui32PrevIndex = ~0UL; #if !defined(DEBUG) - PVR_UNREFERENCED_PARAMETER(pszIOCName); + PVR_UNREFERENCED_PARAMETER(pszIOCName); #endif #if !defined(DEBUG_BRIDGE_KM_DISPATCH_TABLE) && !defined(DEBUG_BRIDGE_KM) - PVR_UNREFERENCED_PARAMETER(pszFunctionName); + PVR_UNREFERENCED_PARAMETER(pszFunctionName); #endif #if defined(DEBUG_BRIDGE_KM_DISPATCH_TABLE) - - PVR_DPF((PVR_DBG_WARNING, "%s: %d %s %s", __FUNCTION__, ui32Index, pszIOCName, pszFunctionName)); + + PVR_DPF((PVR_DBG_WARNING, "%s: %d %s %s", __FUNCTION__, ui32Index, pszIOCName, pszFunctionName)); #endif - - if(g_BridgeDispatchTable[ui32Index].pfFunction) - { + + if(g_BridgeDispatchTable[ui32Index].pfFunction) + { #if defined(DEBUG_BRIDGE_KM) - PVR_DPF((PVR_DBG_ERROR, - "%s: BUG!: Adding dispatch table entry for %s clobbers an existing entry for %s", - __FUNCTION__, pszIOCName, g_BridgeDispatchTable[ui32Index].pszIOCName)); + PVR_DPF((PVR_DBG_ERROR, + "%s: BUG!: Adding dispatch table entry for %s clobbers an existing entry for %s", + __FUNCTION__, pszIOCName, g_BridgeDispatchTable[ui32Index].pszIOCName)); #else - PVR_DPF((PVR_DBG_ERROR, - "%s: BUG!: Adding dispatch table entry for %s clobbers an existing entry (index=%u)", - __FUNCTION__, pszIOCName, ui32Index)); + PVR_DPF((PVR_DBG_ERROR, + "%s: BUG!: Adding dispatch table entry for %s clobbers an existing entry (index=%u)", + __FUNCTION__, pszIOCName, ui32Index)); #endif - PVR_DPF((PVR_DBG_ERROR, "NOTE: Enabling DEBUG_BRIDGE_KM_DISPATCH_TABLE may help debug this issue.")); - } + PVR_DPF((PVR_DBG_ERROR, "NOTE: Enabling DEBUG_BRIDGE_KM_DISPATCH_TABLE may help debug this issue.")); + } - - if((ui32PrevIndex != ~0UL) && - ((ui32Index >= ui32PrevIndex + DISPATCH_TABLE_GAP_THRESHOLD) || - (ui32Index <= ui32PrevIndex))) - { + + if((ui32PrevIndex != ~0UL) && + ((ui32Index >= ui32PrevIndex + DISPATCH_TABLE_GAP_THRESHOLD) || + (ui32Index <= ui32PrevIndex))) + { #if defined(DEBUG_BRIDGE_KM) - PVR_DPF((PVR_DBG_WARNING, - "%s: There is a gap in the dispatch table between indices %u (%s) and %u (%s)", - __FUNCTION__, ui32PrevIndex, g_BridgeDispatchTable[ui32PrevIndex].pszIOCName, - ui32Index, pszIOCName)); + PVR_DPF((PVR_DBG_WARNING, + "%s: There is a gap in the dispatch table between indices %u (%s) and %u (%s)", + __FUNCTION__, ui32PrevIndex, g_BridgeDispatchTable[ui32PrevIndex].pszIOCName, + ui32Index, pszIOCName)); #else - PVR_DPF((PVR_DBG_WARNING, - "%s: There is a gap in the dispatch table between indices %u and %u (%s)", - __FUNCTION__, (IMG_UINT)ui32PrevIndex, (IMG_UINT)ui32Index, pszIOCName)); + PVR_DPF((PVR_DBG_WARNING, + "%s: There is a gap in the dispatch table between indices %u and %u (%s)", + __FUNCTION__, (IMG_UINT)ui32PrevIndex, (IMG_UINT)ui32Index, pszIOCName)); #endif - PVR_DPF((PVR_DBG_ERROR, "NOTE: Enabling DEBUG_BRIDGE_KM_DISPATCH_TABLE may help debug this issue.")); - } + PVR_DPF((PVR_DBG_ERROR, "NOTE: Enabling DEBUG_BRIDGE_KM_DISPATCH_TABLE may help debug this issue.")); + } - g_BridgeDispatchTable[ui32Index].pfFunction = pfFunction; + g_BridgeDispatchTable[ui32Index].pfFunction = pfFunction; #if defined(DEBUG_BRIDGE_KM) - g_BridgeDispatchTable[ui32Index].pszIOCName = pszIOCName; - g_BridgeDispatchTable[ui32Index].pszFunctionName = pszFunctionName; - g_BridgeDispatchTable[ui32Index].ui32CallCount = 0; - g_BridgeDispatchTable[ui32Index].ui32CopyFromUserTotalBytes = 0; + g_BridgeDispatchTable[ui32Index].pszIOCName = pszIOCName; + g_BridgeDispatchTable[ui32Index].pszFunctionName = pszFunctionName; + g_BridgeDispatchTable[ui32Index].ui32CallCount = 0; + g_BridgeDispatchTable[ui32Index].ui32CopyFromUserTotalBytes = 0; #endif - ui32PrevIndex = ui32Index; + ui32PrevIndex = ui32Index; } static IMG_INT PVRSRVInitSrvConnectBW(IMG_UINT32 ui32BridgeID, - IMG_VOID *psBridgeIn, - PVRSRV_BRIDGE_RETURN *psRetOUT, - PVRSRV_PER_PROCESS_DATA *psPerProc) + IMG_VOID *psBridgeIn, + PVRSRV_BRIDGE_RETURN *psRetOUT, + PVRSRV_PER_PROCESS_DATA *psPerProc) { - PVR_UNREFERENCED_PARAMETER(psBridgeIn); + PVR_UNREFERENCED_PARAMETER(psBridgeIn); - PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_INITSRV_CONNECT); - PVR_UNREFERENCED_PARAMETER(psBridgeIn); + PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_INITSRV_CONNECT); + PVR_UNREFERENCED_PARAMETER(psBridgeIn); - - if((OSProcHasPrivSrvInit() == IMG_FALSE) || PVRSRVGetInitServerState(PVRSRV_INIT_SERVER_RUNNING) || PVRSRVGetInitServerState(PVRSRV_INIT_SERVER_RAN)) - { - psRetOUT->eError = PVRSRV_ERROR_SRV_CONNECT_FAILED; - return 0; - } + + if((OSProcHasPrivSrvInit() == IMG_FALSE) || PVRSRVGetInitServerState(PVRSRV_INIT_SERVER_RUNNING) || PVRSRVGetInitServerState(PVRSRV_INIT_SERVER_RAN)) + { + psRetOUT->eError = PVRSRV_ERROR_SRV_CONNECT_FAILED; + return 0; + } #if defined (__linux__) - PVRSRVSetInitServerState(PVRSRV_INIT_SERVER_RUNNING, IMG_TRUE); + PVRSRVSetInitServerState(PVRSRV_INIT_SERVER_RUNNING, IMG_TRUE); #endif - psPerProc->bInitProcess = IMG_TRUE; + psPerProc->bInitProcess = IMG_TRUE; - psRetOUT->eError = PVRSRV_OK; + psRetOUT->eError = PVRSRV_OK; - return 0; + return 0; } static IMG_INT PVRSRVInitSrvDisconnectBW(IMG_UINT32 ui32BridgeID, - PVRSRV_BRIDGE_IN_INITSRV_DISCONNECT *psInitSrvDisconnectIN, - PVRSRV_BRIDGE_RETURN *psRetOUT, - PVRSRV_PER_PROCESS_DATA *psPerProc) + PVRSRV_BRIDGE_IN_INITSRV_DISCONNECT *psInitSrvDisconnectIN, + PVRSRV_BRIDGE_RETURN *psRetOUT, + PVRSRV_PER_PROCESS_DATA *psPerProc) { - PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_INITSRV_DISCONNECT); + PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_INITSRV_DISCONNECT); - if(!psPerProc->bInitProcess) - { - psRetOUT->eError = PVRSRV_ERROR_SRV_DISCONNECT_FAILED; - return 0; - } + if(!psPerProc->bInitProcess) + { + psRetOUT->eError = PVRSRV_ERROR_SRV_DISCONNECT_FAILED; + return 0; + } - psPerProc->bInitProcess = IMG_FALSE; + psPerProc->bInitProcess = IMG_FALSE; - PVRSRVSetInitServerState(PVRSRV_INIT_SERVER_RUNNING, IMG_FALSE); - PVRSRVSetInitServerState(PVRSRV_INIT_SERVER_RAN, IMG_TRUE); + PVRSRVSetInitServerState(PVRSRV_INIT_SERVER_RUNNING, IMG_FALSE); + PVRSRVSetInitServerState(PVRSRV_INIT_SERVER_RAN, IMG_TRUE); - psRetOUT->eError = PVRSRVFinaliseSystem(psInitSrvDisconnectIN->bInitSuccesful); + psRetOUT->eError = PVRSRVFinaliseSystem(psInitSrvDisconnectIN->bInitSuccesful); - PVRSRVSetInitServerState( PVRSRV_INIT_SERVER_SUCCESSFUL , - ((psRetOUT->eError == PVRSRV_OK) && (psInitSrvDisconnectIN->bInitSuccesful)) - ? IMG_TRUE : IMG_FALSE); + PVRSRVSetInitServerState( PVRSRV_INIT_SERVER_SUCCESSFUL , + ((psRetOUT->eError == PVRSRV_OK) && (psInitSrvDisconnectIN->bInitSuccesful)) + ? IMG_TRUE : IMG_FALSE); - return 0; + return 0; } static IMG_INT PVRSRVEventObjectWaitBW(IMG_UINT32 ui32BridgeID, - PVRSRV_BRIDGE_IN_EVENT_OBJECT_WAIT *psEventObjectWaitIN, - PVRSRV_BRIDGE_RETURN *psRetOUT, - PVRSRV_PER_PROCESS_DATA *psPerProc) + PVRSRV_BRIDGE_IN_EVENT_OBJECT_WAIT *psEventObjectWaitIN, + PVRSRV_BRIDGE_RETURN *psRetOUT, + PVRSRV_PER_PROCESS_DATA *psPerProc) { - IMG_HANDLE hOSEventKM; + IMG_HANDLE hOSEventKM; - PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_EVENT_OBJECT_WAIT); + PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_EVENT_OBJECT_WAIT); - psRetOUT->eError = PVRSRVLookupHandle(psPerProc->psHandleBase, - &hOSEventKM, - psEventObjectWaitIN->hOSEventKM, - PVRSRV_HANDLE_TYPE_EVENT_OBJECT_CONNECT); + psRetOUT->eError = PVRSRVLookupHandle(psPerProc->psHandleBase, + &hOSEventKM, + psEventObjectWaitIN->hOSEventKM, + PVRSRV_HANDLE_TYPE_EVENT_OBJECT_CONNECT); - if(psRetOUT->eError != PVRSRV_OK) - { - return 0; - } + if(psRetOUT->eError != PVRSRV_OK) + { + return 0; + } - psRetOUT->eError = OSEventObjectWaitKM(hOSEventKM); + psRetOUT->eError = OSEventObjectWaitKM(hOSEventKM); - return 0; + return 0; } static IMG_INT PVRSRVEventObjectOpenBW(IMG_UINT32 ui32BridgeID, - PVRSRV_BRIDGE_IN_EVENT_OBJECT_OPEN *psEventObjectOpenIN, - PVRSRV_BRIDGE_OUT_EVENT_OBJECT_OPEN *psEventObjectOpenOUT, - PVRSRV_PER_PROCESS_DATA *psPerProc) + PVRSRV_BRIDGE_IN_EVENT_OBJECT_OPEN *psEventObjectOpenIN, + PVRSRV_BRIDGE_OUT_EVENT_OBJECT_OPEN *psEventObjectOpenOUT, + PVRSRV_PER_PROCESS_DATA *psPerProc) { #if defined (SUPPORT_SID_INTERFACE) - PVRSRV_EVENTOBJECT_KM sEventObject; - IMG_HANDLE hOSEvent; + PVRSRV_EVENTOBJECT_KM sEventObject; + IMG_HANDLE hOSEvent; #endif - PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_EVENT_OBJECT_OPEN); + PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_EVENT_OBJECT_OPEN); - NEW_HANDLE_BATCH_OR_ERROR(psEventObjectOpenOUT->eError, psPerProc, 1) + NEW_HANDLE_BATCH_OR_ERROR(psEventObjectOpenOUT->eError, psPerProc, 1) - psEventObjectOpenOUT->eError = - PVRSRVLookupHandle(psPerProc->psHandleBase, + psEventObjectOpenOUT->eError = + PVRSRVLookupHandle(psPerProc->psHandleBase, #if defined (SUPPORT_SID_INTERFACE) - &sEventObject.hOSEventKM, + &sEventObject.hOSEventKM, #else - &psEventObjectOpenIN->sEventObject.hOSEventKM, + &psEventObjectOpenIN->sEventObject.hOSEventKM, #endif - psEventObjectOpenIN->sEventObject.hOSEventKM, - PVRSRV_HANDLE_TYPE_SHARED_EVENT_OBJECT); + psEventObjectOpenIN->sEventObject.hOSEventKM, + PVRSRV_HANDLE_TYPE_SHARED_EVENT_OBJECT); - if(psEventObjectOpenOUT->eError != PVRSRV_OK) - { - return 0; - } + if(psEventObjectOpenOUT->eError != PVRSRV_OK) + { + return 0; + } #if defined (SUPPORT_SID_INTERFACE) - OSMemCopy(&sEventObject.szName, - &psEventObjectOpenIN->sEventObject.szName, - EVENTOBJNAME_MAXLENGTH); + OSMemCopy(&sEventObject.szName, + &psEventObjectOpenIN->sEventObject.szName, + EVENTOBJNAME_MAXLENGTH); - psEventObjectOpenOUT->eError = OSEventObjectOpenKM(&sEventObject, &hOSEvent); + psEventObjectOpenOUT->eError = OSEventObjectOpenKM(&sEventObject, &hOSEvent); #else - psEventObjectOpenOUT->eError = OSEventObjectOpenKM(&psEventObjectOpenIN->sEventObject, &psEventObjectOpenOUT->hOSEvent); + psEventObjectOpenOUT->eError = OSEventObjectOpenKM(&psEventObjectOpenIN->sEventObject, &psEventObjectOpenOUT->hOSEvent); #endif - if(psEventObjectOpenOUT->eError != PVRSRV_OK) - { - return 0; - } + if(psEventObjectOpenOUT->eError != PVRSRV_OK) + { + return 0; + } #if defined (SUPPORT_SID_INTERFACE) #if !defined (WINXP) && !defined(SUPPORT_VISTA) - PVRSRVAllocHandleNR(psPerProc->psHandleBase, - &psEventObjectOpenOUT->hOSEvent, - hOSEvent, - PVRSRV_HANDLE_TYPE_EVENT_OBJECT_CONNECT, - PVRSRV_HANDLE_ALLOC_FLAG_MULTI); + PVRSRVAllocHandleNR(psPerProc->psHandleBase, + &psEventObjectOpenOUT->hOSEvent, + hOSEvent, + PVRSRV_HANDLE_TYPE_EVENT_OBJECT_CONNECT, + PVRSRV_HANDLE_ALLOC_FLAG_MULTI); #endif #else - PVRSRVAllocHandleNR(psPerProc->psHandleBase, - &psEventObjectOpenOUT->hOSEvent, - psEventObjectOpenOUT->hOSEvent, - PVRSRV_HANDLE_TYPE_EVENT_OBJECT_CONNECT, - PVRSRV_HANDLE_ALLOC_FLAG_MULTI); + PVRSRVAllocHandleNR(psPerProc->psHandleBase, + &psEventObjectOpenOUT->hOSEvent, + psEventObjectOpenOUT->hOSEvent, + PVRSRV_HANDLE_TYPE_EVENT_OBJECT_CONNECT, + PVRSRV_HANDLE_ALLOC_FLAG_MULTI); #endif - COMMIT_HANDLE_BATCH_OR_ERROR(psEventObjectOpenOUT->eError, psPerProc) + COMMIT_HANDLE_BATCH_OR_ERROR(psEventObjectOpenOUT->eError, psPerProc) - return 0; + return 0; } static IMG_INT PVRSRVEventObjectCloseBW(IMG_UINT32 ui32BridgeID, - PVRSRV_BRIDGE_IN_EVENT_OBJECT_CLOSE *psEventObjectCloseIN, - PVRSRV_BRIDGE_RETURN *psRetOUT, - PVRSRV_PER_PROCESS_DATA *psPerProc) + PVRSRV_BRIDGE_IN_EVENT_OBJECT_CLOSE *psEventObjectCloseIN, + PVRSRV_BRIDGE_RETURN *psRetOUT, + PVRSRV_PER_PROCESS_DATA *psPerProc) { - IMG_HANDLE hOSEventKM; + IMG_HANDLE hOSEventKM; #if defined (SUPPORT_SID_INTERFACE) - PVRSRV_EVENTOBJECT_KM sEventObject; + PVRSRV_EVENTOBJECT_KM sEventObject; #endif - PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_EVENT_OBJECT_CLOSE); + PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_EVENT_OBJECT_CLOSE); - psRetOUT->eError = - PVRSRVLookupHandle(psPerProc->psHandleBase, + psRetOUT->eError = + PVRSRVLookupHandle(psPerProc->psHandleBase, #if defined (SUPPORT_SID_INTERFACE) - &sEventObject.hOSEventKM, + &sEventObject.hOSEventKM, #else - &psEventObjectCloseIN->sEventObject.hOSEventKM, + &psEventObjectCloseIN->sEventObject.hOSEventKM, #endif - psEventObjectCloseIN->sEventObject.hOSEventKM, - PVRSRV_HANDLE_TYPE_SHARED_EVENT_OBJECT); - if(psRetOUT->eError != PVRSRV_OK) - { - return 0; - } + psEventObjectCloseIN->sEventObject.hOSEventKM, + PVRSRV_HANDLE_TYPE_SHARED_EVENT_OBJECT); + if(psRetOUT->eError != PVRSRV_OK) + { + return 0; + } - psRetOUT->eError = PVRSRVLookupAndReleaseHandle(psPerProc->psHandleBase, - &hOSEventKM, - psEventObjectCloseIN->hOSEventKM, - PVRSRV_HANDLE_TYPE_EVENT_OBJECT_CONNECT); + psRetOUT->eError = PVRSRVLookupAndReleaseHandle(psPerProc->psHandleBase, + &hOSEventKM, + psEventObjectCloseIN->hOSEventKM, + PVRSRV_HANDLE_TYPE_EVENT_OBJECT_CONNECT); - if(psRetOUT->eError != PVRSRV_OK) - { - return 0; - } + if(psRetOUT->eError != PVRSRV_OK) + { + return 0; + } #if defined (SUPPORT_SID_INTERFACE) - if(CopyFromUserWrapper(psPerProc, ui32BridgeID, - &sEventObject.szName, - &psEventObjectCloseIN->sEventObject.szName, - EVENTOBJNAME_MAXLENGTH) != PVRSRV_OK) - { - - return -EFAULT; - } + if(CopyFromUserWrapper(psPerProc, ui32BridgeID, + &sEventObject.szName, + &psEventObjectCloseIN->sEventObject.szName, + EVENTOBJNAME_MAXLENGTH) != PVRSRV_OK) + { + + return -EFAULT; + } - psRetOUT->eError = OSEventObjectCloseKM(&sEventObject, hOSEventKM); + psRetOUT->eError = OSEventObjectCloseKM(&sEventObject, hOSEventKM); #else - psRetOUT->eError = OSEventObjectCloseKM(&psEventObjectCloseIN->sEventObject, hOSEventKM); + psRetOUT->eError = OSEventObjectCloseKM(&psEventObjectCloseIN->sEventObject, hOSEventKM); #endif - return 0; + return 0; } typedef struct _MODIFY_SYNC_OP_INFO { - IMG_HANDLE hResItem; - PVRSRV_KERNEL_SYNC_INFO *psKernelSyncInfo; - IMG_UINT32 ui32ModifyFlags; - IMG_UINT32 ui32ReadOpsPendingSnapShot; - IMG_UINT32 ui32WriteOpsPendingSnapShot; + IMG_HANDLE hResItem; + PVRSRV_KERNEL_SYNC_INFO *psKernelSyncInfo; + IMG_UINT32 ui32ModifyFlags; + IMG_UINT32 ui32ReadOpsPendingSnapShot; + IMG_UINT32 ui32WriteOpsPendingSnapShot; } MODIFY_SYNC_OP_INFO; static PVRSRV_ERROR DoQuerySyncOpsSatisfied(PVRSRV_KERNEL_SYNC_INFO *psKernelSyncInfo, - IMG_UINT32 ui32ReadOpsPendingSnapShot, - IMG_UINT32 ui32WriteOpsPendingSnapShot) + IMG_UINT32 ui32ReadOpsPendingSnapShot, + IMG_UINT32 ui32WriteOpsPendingSnapShot) { - IMG_UINT32 ui32WriteOpsPending; - IMG_UINT32 ui32ReadOpsPending; + IMG_UINT32 ui32WriteOpsPending; + IMG_UINT32 ui32ReadOpsPending; - - if (!psKernelSyncInfo) - { - return PVRSRV_ERROR_INVALID_PARAMS; - } + + if (!psKernelSyncInfo) + { + return PVRSRV_ERROR_INVALID_PARAMS; + } - + @@ -3842,977 +3972,971 @@ static PVRSRV_ERROR DoQuerySyncOpsSatisfied(PVRSRV_KERNEL_SYNC_INFO *psKernelSyn - ui32WriteOpsPending = psKernelSyncInfo->psSyncData->ui32WriteOpsPending; - ui32ReadOpsPending = psKernelSyncInfo->psSyncData->ui32ReadOpsPending; + ui32WriteOpsPending = psKernelSyncInfo->psSyncData->ui32WriteOpsPending; + ui32ReadOpsPending = psKernelSyncInfo->psSyncData->ui32ReadOpsPending; - if((ui32WriteOpsPending - ui32WriteOpsPendingSnapShot >= - ui32WriteOpsPending - psKernelSyncInfo->psSyncData->ui32WriteOpsComplete) && - (ui32ReadOpsPending - ui32ReadOpsPendingSnapShot >= - ui32ReadOpsPending - psKernelSyncInfo->psSyncData->ui32ReadOpsComplete)) - { + if((ui32WriteOpsPending - ui32WriteOpsPendingSnapShot >= + ui32WriteOpsPending - psKernelSyncInfo->psSyncData->ui32WriteOpsComplete) && + (ui32ReadOpsPending - ui32ReadOpsPendingSnapShot >= + ui32ReadOpsPending - psKernelSyncInfo->psSyncData->ui32ReadOpsComplete)) + { #if defined(PDUMP) && !defined(SUPPORT_VGX) - - PDumpComment("Poll for read ops complete to reach value (pdump: %u, actual snapshot: %u)", - psKernelSyncInfo->psSyncData->ui32LastReadOpDumpVal, - ui32ReadOpsPendingSnapShot); - PDumpMemPolKM(psKernelSyncInfo->psSyncDataMemInfoKM, - offsetof(PVRSRV_SYNC_DATA, ui32ReadOpsComplete), - psKernelSyncInfo->psSyncData->ui32LastReadOpDumpVal, - 0xFFFFFFFF, - PDUMP_POLL_OPERATOR_EQUAL, - 0, - MAKEUNIQUETAG(psKernelSyncInfo->psSyncDataMemInfoKM)); - - - PDumpComment("Poll for write ops complete to reach value (pdump: %u, actual snapshot: %u)", - psKernelSyncInfo->psSyncData->ui32LastOpDumpVal, - ui32WriteOpsPendingSnapShot); - PDumpMemPolKM(psKernelSyncInfo->psSyncDataMemInfoKM, - offsetof(PVRSRV_SYNC_DATA, ui32WriteOpsComplete), - psKernelSyncInfo->psSyncData->ui32LastOpDumpVal, - 0xFFFFFFFF, - PDUMP_POLL_OPERATOR_EQUAL, - 0, - MAKEUNIQUETAG(psKernelSyncInfo->psSyncDataMemInfoKM)); - + + PDumpComment("Poll for read ops complete to reach value (pdump: %u, actual snapshot: %u)", + psKernelSyncInfo->psSyncData->ui32LastReadOpDumpVal, + ui32ReadOpsPendingSnapShot); + PDumpMemPolKM(psKernelSyncInfo->psSyncDataMemInfoKM, + offsetof(PVRSRV_SYNC_DATA, ui32ReadOpsComplete), + psKernelSyncInfo->psSyncData->ui32LastReadOpDumpVal, + 0xFFFFFFFF, + PDUMP_POLL_OPERATOR_EQUAL, + 0, + MAKEUNIQUETAG(psKernelSyncInfo->psSyncDataMemInfoKM)); + + + PDumpComment("Poll for write ops complete to reach value (pdump: %u, actual snapshot: %u)", + psKernelSyncInfo->psSyncData->ui32LastOpDumpVal, + ui32WriteOpsPendingSnapShot); + PDumpMemPolKM(psKernelSyncInfo->psSyncDataMemInfoKM, + offsetof(PVRSRV_SYNC_DATA, ui32WriteOpsComplete), + psKernelSyncInfo->psSyncData->ui32LastOpDumpVal, + 0xFFFFFFFF, + PDUMP_POLL_OPERATOR_EQUAL, + 0, + MAKEUNIQUETAG(psKernelSyncInfo->psSyncDataMemInfoKM)); + #endif - return PVRSRV_OK; - } - else - { - return PVRSRV_ERROR_RETRY; - } + return PVRSRV_OK; + } + else + { + return PVRSRV_ERROR_RETRY; + } } static PVRSRV_ERROR DoModifyCompleteSyncOps(MODIFY_SYNC_OP_INFO *psModSyncOpInfo) { - PVRSRV_KERNEL_SYNC_INFO *psKernelSyncInfo; + PVRSRV_KERNEL_SYNC_INFO *psKernelSyncInfo; - psKernelSyncInfo = psModSyncOpInfo->psKernelSyncInfo; + psKernelSyncInfo = psModSyncOpInfo->psKernelSyncInfo; - if (!psKernelSyncInfo) - { - return PVRSRV_ERROR_INVALID_PARAMS; - } + if (!psKernelSyncInfo) + { + return PVRSRV_ERROR_INVALID_PARAMS; + } - - if((psModSyncOpInfo->ui32WriteOpsPendingSnapShot != psKernelSyncInfo->psSyncData->ui32WriteOpsComplete) - || (psModSyncOpInfo->ui32ReadOpsPendingSnapShot != psKernelSyncInfo->psSyncData->ui32ReadOpsComplete)) - { - return PVRSRV_ERROR_BAD_SYNC_STATE; - } + + if((psModSyncOpInfo->ui32WriteOpsPendingSnapShot != psKernelSyncInfo->psSyncData->ui32WriteOpsComplete) + || (psModSyncOpInfo->ui32ReadOpsPendingSnapShot != psKernelSyncInfo->psSyncData->ui32ReadOpsComplete)) + { + return PVRSRV_ERROR_BAD_SYNC_STATE; + } - - if(psModSyncOpInfo->ui32ModifyFlags & PVRSRV_MODIFYSYNCOPS_FLAGS_WO_INC) - { - psKernelSyncInfo->psSyncData->ui32WriteOpsComplete++; - } + + if(psModSyncOpInfo->ui32ModifyFlags & PVRSRV_MODIFYSYNCOPS_FLAGS_WO_INC) + { + psKernelSyncInfo->psSyncData->ui32WriteOpsComplete++; + } - - if(psModSyncOpInfo->ui32ModifyFlags & PVRSRV_MODIFYSYNCOPS_FLAGS_RO_INC) - { - psKernelSyncInfo->psSyncData->ui32ReadOpsComplete++; - } + + if(psModSyncOpInfo->ui32ModifyFlags & PVRSRV_MODIFYSYNCOPS_FLAGS_RO_INC) + { + psKernelSyncInfo->psSyncData->ui32ReadOpsComplete++; + } - return PVRSRV_OK; + return PVRSRV_OK; } -static PVRSRV_ERROR ModifyCompleteSyncOpsCallBack(IMG_PVOID pvParam, +static PVRSRV_ERROR ModifyCompleteSyncOpsCallBack(IMG_PVOID pvParam, IMG_UINT32 ui32Param, IMG_BOOL bDummy) { - MODIFY_SYNC_OP_INFO *psModSyncOpInfo; + MODIFY_SYNC_OP_INFO *psModSyncOpInfo; - PVR_UNREFERENCED_PARAMETER(ui32Param); - PVR_UNREFERENCED_PARAMETER(bDummy); + PVR_UNREFERENCED_PARAMETER(ui32Param); + PVR_UNREFERENCED_PARAMETER(bDummy); - if (!pvParam) - { - PVR_DPF((PVR_DBG_ERROR, "ModifyCompleteSyncOpsCallBack: invalid parameter")); - return PVRSRV_ERROR_INVALID_PARAMS; - } + if (!pvParam) + { + PVR_DPF((PVR_DBG_ERROR, "ModifyCompleteSyncOpsCallBack: invalid parameter")); + return PVRSRV_ERROR_INVALID_PARAMS; + } - psModSyncOpInfo = (MODIFY_SYNC_OP_INFO*)pvParam; + psModSyncOpInfo = (MODIFY_SYNC_OP_INFO*)pvParam; - if (psModSyncOpInfo->psKernelSyncInfo) - { - - LOOP_UNTIL_TIMEOUT(MAX_HW_TIME_US) - { - if (DoQuerySyncOpsSatisfied(psModSyncOpInfo->psKernelSyncInfo, - psModSyncOpInfo->ui32ReadOpsPendingSnapShot, - psModSyncOpInfo->ui32WriteOpsPendingSnapShot) == PVRSRV_OK) - { - goto OpFlushedComplete; - } - PVR_DPF((PVR_DBG_WARNING, "ModifyCompleteSyncOpsCallBack: waiting for current Ops to flush")); + if (psModSyncOpInfo->psKernelSyncInfo) + { + + LOOP_UNTIL_TIMEOUT(MAX_HW_TIME_US) + { + if (DoQuerySyncOpsSatisfied(psModSyncOpInfo->psKernelSyncInfo, + psModSyncOpInfo->ui32ReadOpsPendingSnapShot, + psModSyncOpInfo->ui32WriteOpsPendingSnapShot) == PVRSRV_OK) + { + goto OpFlushedComplete; + } + PVR_DPF((PVR_DBG_WARNING, "ModifyCompleteSyncOpsCallBack: waiting for current Ops to flush")); OSSleepms(1); - } END_LOOP_UNTIL_TIMEOUT(); + } END_LOOP_UNTIL_TIMEOUT(); - PVR_DPF((PVR_DBG_ERROR, "ModifyCompleteSyncOpsCallBack: timeout whilst waiting for current Ops to flush.")); - PVR_DPF((PVR_DBG_ERROR, " Write ops pending snapshot = %d, write ops complete = %d", - psModSyncOpInfo->ui32WriteOpsPendingSnapShot, - psModSyncOpInfo->psKernelSyncInfo->psSyncData->ui32WriteOpsComplete)); - PVR_DPF((PVR_DBG_ERROR, " Read ops pending snapshot = %d, write ops complete = %d", - psModSyncOpInfo->ui32ReadOpsPendingSnapShot, - psModSyncOpInfo->psKernelSyncInfo->psSyncData->ui32ReadOpsComplete)); + PVR_DPF((PVR_DBG_ERROR, "ModifyCompleteSyncOpsCallBack: timeout whilst waiting for current Ops to flush.")); + PVR_DPF((PVR_DBG_ERROR, " Write ops pending snapshot = %d, write ops complete = %d", + psModSyncOpInfo->ui32WriteOpsPendingSnapShot, + psModSyncOpInfo->psKernelSyncInfo->psSyncData->ui32WriteOpsComplete)); + PVR_DPF((PVR_DBG_ERROR, " Read ops pending snapshot = %d, write ops complete = %d", + psModSyncOpInfo->ui32ReadOpsPendingSnapShot, + psModSyncOpInfo->psKernelSyncInfo->psSyncData->ui32ReadOpsComplete)); - return PVRSRV_ERROR_TIMEOUT; + return PVRSRV_ERROR_TIMEOUT; - OpFlushedComplete: +OpFlushedComplete: + DoModifyCompleteSyncOps(psModSyncOpInfo); + } - DoModifyCompleteSyncOps(psModSyncOpInfo); - } + OSFreeMem(PVRSRV_OS_PAGEABLE_HEAP, sizeof(MODIFY_SYNC_OP_INFO), (IMG_VOID *)psModSyncOpInfo, 0); + - OSFreeMem(PVRSRV_OS_PAGEABLE_HEAP, sizeof(MODIFY_SYNC_OP_INFO), (IMG_VOID *)psModSyncOpInfo, 0); - + + PVRSRVScheduleDeviceCallbacks(); - - PVRSRVScheduleDeviceCallbacks(); - - return PVRSRV_OK; + return PVRSRV_OK; } static IMG_INT PVRSRVCreateSyncInfoModObjBW(IMG_UINT32 ui32BridgeID, - IMG_VOID *psBridgeIn, - PVRSRV_BRIDGE_OUT_CREATE_SYNC_INFO_MOD_OBJ *psCreateSyncInfoModObjOUT, - PVRSRV_PER_PROCESS_DATA *psPerProc) + IMG_VOID *psBridgeIn, + PVRSRV_BRIDGE_OUT_CREATE_SYNC_INFO_MOD_OBJ *psCreateSyncInfoModObjOUT, + PVRSRV_PER_PROCESS_DATA *psPerProc) { - MODIFY_SYNC_OP_INFO *psModSyncOpInfo; + MODIFY_SYNC_OP_INFO *psModSyncOpInfo; - PVR_UNREFERENCED_PARAMETER(psBridgeIn); + PVR_UNREFERENCED_PARAMETER(psBridgeIn); - PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_CREATE_SYNC_INFO_MOD_OBJ); + PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_CREATE_SYNC_INFO_MOD_OBJ); - NEW_HANDLE_BATCH_OR_ERROR(psCreateSyncInfoModObjOUT->eError, psPerProc, 1) + NEW_HANDLE_BATCH_OR_ERROR(psCreateSyncInfoModObjOUT->eError, psPerProc, 1) - ASSIGN_AND_EXIT_ON_ERROR(psCreateSyncInfoModObjOUT->eError, - OSAllocMem(PVRSRV_OS_PAGEABLE_HEAP, - sizeof(MODIFY_SYNC_OP_INFO), - (IMG_VOID **)&psModSyncOpInfo, 0, - "ModSyncOpInfo (MODIFY_SYNC_OP_INFO)")); + ASSIGN_AND_EXIT_ON_ERROR(psCreateSyncInfoModObjOUT->eError, + OSAllocMem(PVRSRV_OS_PAGEABLE_HEAP, + sizeof(MODIFY_SYNC_OP_INFO), + (IMG_VOID **)&psModSyncOpInfo, 0, + "ModSyncOpInfo (MODIFY_SYNC_OP_INFO)")); - psModSyncOpInfo->psKernelSyncInfo = IMG_NULL; + psModSyncOpInfo->psKernelSyncInfo = IMG_NULL; - psCreateSyncInfoModObjOUT->eError = PVRSRVAllocHandle(psPerProc->psHandleBase, - &psCreateSyncInfoModObjOUT->hKernelSyncInfoModObj, - psModSyncOpInfo, - PVRSRV_HANDLE_TYPE_SYNC_INFO_MOD_OBJ, - PVRSRV_HANDLE_ALLOC_FLAG_PRIVATE); + psCreateSyncInfoModObjOUT->eError = PVRSRVAllocHandle(psPerProc->psHandleBase, + &psCreateSyncInfoModObjOUT->hKernelSyncInfoModObj, + psModSyncOpInfo, + PVRSRV_HANDLE_TYPE_SYNC_INFO_MOD_OBJ, + PVRSRV_HANDLE_ALLOC_FLAG_PRIVATE); - if (psCreateSyncInfoModObjOUT->eError != PVRSRV_OK) - { - return 0; - } + if (psCreateSyncInfoModObjOUT->eError != PVRSRV_OK) + { + return 0; + } - psModSyncOpInfo->hResItem = ResManRegisterRes(psPerProc->hResManContext, - RESMAN_TYPE_MODIFY_SYNC_OPS, - psModSyncOpInfo, - 0, - &ModifyCompleteSyncOpsCallBack); + psModSyncOpInfo->hResItem = ResManRegisterRes(psPerProc->hResManContext, + RESMAN_TYPE_MODIFY_SYNC_OPS, + psModSyncOpInfo, + 0, + &ModifyCompleteSyncOpsCallBack); - COMMIT_HANDLE_BATCH_OR_ERROR(psCreateSyncInfoModObjOUT->eError, psPerProc) + COMMIT_HANDLE_BATCH_OR_ERROR(psCreateSyncInfoModObjOUT->eError, psPerProc) - return 0; + return 0; } static IMG_INT PVRSRVDestroySyncInfoModObjBW(IMG_UINT32 ui32BridgeID, - PVRSRV_BRIDGE_IN_DESTROY_SYNC_INFO_MOD_OBJ *psDestroySyncInfoModObjIN, - PVRSRV_BRIDGE_RETURN *psDestroySyncInfoModObjOUT, - PVRSRV_PER_PROCESS_DATA *psPerProc) + PVRSRV_BRIDGE_IN_DESTROY_SYNC_INFO_MOD_OBJ *psDestroySyncInfoModObjIN, + PVRSRV_BRIDGE_RETURN *psDestroySyncInfoModObjOUT, + PVRSRV_PER_PROCESS_DATA *psPerProc) { - MODIFY_SYNC_OP_INFO *psModSyncOpInfo; + MODIFY_SYNC_OP_INFO *psModSyncOpInfo; - PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_DESTROY_SYNC_INFO_MOD_OBJ); + PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_DESTROY_SYNC_INFO_MOD_OBJ); - psDestroySyncInfoModObjOUT->eError = PVRSRVLookupHandle(psPerProc->psHandleBase, - (IMG_VOID**)&psModSyncOpInfo, - psDestroySyncInfoModObjIN->hKernelSyncInfoModObj, - PVRSRV_HANDLE_TYPE_SYNC_INFO_MOD_OBJ); - if (psDestroySyncInfoModObjOUT->eError != PVRSRV_OK) - { - PVR_DPF((PVR_DBG_ERROR, "PVRSRVDestroySyncInfoModObjBW: PVRSRVLookupHandle failed")); - return 0; - } + psDestroySyncInfoModObjOUT->eError = PVRSRVLookupHandle(psPerProc->psHandleBase, + (IMG_VOID**)&psModSyncOpInfo, + psDestroySyncInfoModObjIN->hKernelSyncInfoModObj, + PVRSRV_HANDLE_TYPE_SYNC_INFO_MOD_OBJ); + if (psDestroySyncInfoModObjOUT->eError != PVRSRV_OK) + { + PVR_DPF((PVR_DBG_ERROR, "PVRSRVDestroySyncInfoModObjBW: PVRSRVLookupHandle failed")); + return 0; + } - if(psModSyncOpInfo->psKernelSyncInfo != IMG_NULL) - { - - psDestroySyncInfoModObjOUT->eError = PVRSRV_ERROR_INVALID_PARAMS; - return 0; - } + if(psModSyncOpInfo->psKernelSyncInfo != IMG_NULL) + { + + psDestroySyncInfoModObjOUT->eError = PVRSRV_ERROR_INVALID_PARAMS; + return 0; + } - psDestroySyncInfoModObjOUT->eError = PVRSRVReleaseHandle(psPerProc->psHandleBase, - psDestroySyncInfoModObjIN->hKernelSyncInfoModObj, - PVRSRV_HANDLE_TYPE_SYNC_INFO_MOD_OBJ); + psDestroySyncInfoModObjOUT->eError = PVRSRVReleaseHandle(psPerProc->psHandleBase, + psDestroySyncInfoModObjIN->hKernelSyncInfoModObj, + PVRSRV_HANDLE_TYPE_SYNC_INFO_MOD_OBJ); - if (psDestroySyncInfoModObjOUT->eError != PVRSRV_OK) - { - PVR_DPF((PVR_DBG_ERROR, "PVRSRVDestroySyncInfoModObjBW: PVRSRVReleaseHandle failed")); - return 0; - } + if (psDestroySyncInfoModObjOUT->eError != PVRSRV_OK) + { + PVR_DPF((PVR_DBG_ERROR, "PVRSRVDestroySyncInfoModObjBW: PVRSRVReleaseHandle failed")); + return 0; + } psDestroySyncInfoModObjOUT->eError = ResManFreeResByPtr(psModSyncOpInfo->hResItem, CLEANUP_WITH_POLL); - if (psDestroySyncInfoModObjOUT->eError != PVRSRV_OK) - { - PVR_DPF((PVR_DBG_ERROR, "PVRSRVDestroySyncInfoModObjBW: ResManFreeResByPtr failed")); - return 0; - } + if (psDestroySyncInfoModObjOUT->eError != PVRSRV_OK) + { + PVR_DPF((PVR_DBG_ERROR, "PVRSRVDestroySyncInfoModObjBW: ResManFreeResByPtr failed")); + return 0; + } - return 0; + return 0; } static IMG_INT -PVRSRVModifyPendingSyncOpsBW(IMG_UINT32 ui32BridgeID, - PVRSRV_BRIDGE_IN_MODIFY_PENDING_SYNC_OPS *psModifySyncOpsIN, - PVRSRV_BRIDGE_OUT_MODIFY_PENDING_SYNC_OPS *psModifySyncOpsOUT, - PVRSRV_PER_PROCESS_DATA *psPerProc) +PVRSRVModifyPendingSyncOpsBW(IMG_UINT32 ui32BridgeID, + PVRSRV_BRIDGE_IN_MODIFY_PENDING_SYNC_OPS *psModifySyncOpsIN, + PVRSRV_BRIDGE_OUT_MODIFY_PENDING_SYNC_OPS *psModifySyncOpsOUT, + PVRSRV_PER_PROCESS_DATA *psPerProc) { - PVRSRV_KERNEL_SYNC_INFO *psKernelSyncInfo; - MODIFY_SYNC_OP_INFO *psModSyncOpInfo; + PVRSRV_KERNEL_SYNC_INFO *psKernelSyncInfo; + MODIFY_SYNC_OP_INFO *psModSyncOpInfo; - PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_MODIFY_PENDING_SYNC_OPS); + PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_MODIFY_PENDING_SYNC_OPS); - psModifySyncOpsOUT->eError = PVRSRVLookupHandle(psPerProc->psHandleBase, - (IMG_VOID**)&psModSyncOpInfo, - psModifySyncOpsIN->hKernelSyncInfoModObj, - PVRSRV_HANDLE_TYPE_SYNC_INFO_MOD_OBJ); - if (psModifySyncOpsOUT->eError != PVRSRV_OK) - { - PVR_DPF((PVR_DBG_ERROR, "PVRSRVModifyPendingSyncOpsBW: PVRSRVLookupHandle failed")); - return 0; - } + psModifySyncOpsOUT->eError = PVRSRVLookupHandle(psPerProc->psHandleBase, + (IMG_VOID**)&psModSyncOpInfo, + psModifySyncOpsIN->hKernelSyncInfoModObj, + PVRSRV_HANDLE_TYPE_SYNC_INFO_MOD_OBJ); + if (psModifySyncOpsOUT->eError != PVRSRV_OK) + { + PVR_DPF((PVR_DBG_ERROR, "PVRSRVModifyPendingSyncOpsBW: PVRSRVLookupHandle failed")); + return 0; + } - psModifySyncOpsOUT->eError = PVRSRVLookupHandle(psPerProc->psHandleBase, - (IMG_VOID**)&psKernelSyncInfo, - psModifySyncOpsIN->hKernelSyncInfo, - PVRSRV_HANDLE_TYPE_SYNC_INFO); - if (psModifySyncOpsOUT->eError != PVRSRV_OK) - { - PVR_DPF((PVR_DBG_ERROR, "PVRSRVModifyPendingSyncOpsBW: PVRSRVLookupHandle failed")); - return 0; - } + psModifySyncOpsOUT->eError = PVRSRVLookupHandle(psPerProc->psHandleBase, + (IMG_VOID**)&psKernelSyncInfo, + psModifySyncOpsIN->hKernelSyncInfo, + PVRSRV_HANDLE_TYPE_SYNC_INFO); + if (psModifySyncOpsOUT->eError != PVRSRV_OK) + { + PVR_DPF((PVR_DBG_ERROR, "PVRSRVModifyPendingSyncOpsBW: PVRSRVLookupHandle failed")); + return 0; + } - if(psModSyncOpInfo->psKernelSyncInfo) - { - - psModifySyncOpsOUT->eError = PVRSRV_ERROR_RETRY; - PVR_DPF((PVR_DBG_VERBOSE, "PVRSRVModifyPendingSyncOpsBW: SyncInfo Modification object is not empty")); - return 0; - } + if(psModSyncOpInfo->psKernelSyncInfo) + { + + psModifySyncOpsOUT->eError = PVRSRV_ERROR_RETRY; + PVR_DPF((PVR_DBG_VERBOSE, "PVRSRVModifyPendingSyncOpsBW: SyncInfo Modification object is not empty")); + return 0; + } - - psModSyncOpInfo->psKernelSyncInfo = psKernelSyncInfo; - psModSyncOpInfo->ui32ModifyFlags = psModifySyncOpsIN->ui32ModifyFlags; - psModSyncOpInfo->ui32ReadOpsPendingSnapShot = psKernelSyncInfo->psSyncData->ui32ReadOpsPending; - psModSyncOpInfo->ui32WriteOpsPendingSnapShot = psKernelSyncInfo->psSyncData->ui32WriteOpsPending; + + psModSyncOpInfo->psKernelSyncInfo = psKernelSyncInfo; + psModSyncOpInfo->ui32ModifyFlags = psModifySyncOpsIN->ui32ModifyFlags; + psModSyncOpInfo->ui32ReadOpsPendingSnapShot = psKernelSyncInfo->psSyncData->ui32ReadOpsPending; + psModSyncOpInfo->ui32WriteOpsPendingSnapShot = psKernelSyncInfo->psSyncData->ui32WriteOpsPending; - + - psModifySyncOpsOUT->ui32ReadOpsPending = psKernelSyncInfo->psSyncData->ui32ReadOpsPending; - psModifySyncOpsOUT->ui32WriteOpsPending = psKernelSyncInfo->psSyncData->ui32WriteOpsPending; + psModifySyncOpsOUT->ui32ReadOpsPending = psKernelSyncInfo->psSyncData->ui32ReadOpsPending; + psModifySyncOpsOUT->ui32WriteOpsPending = psKernelSyncInfo->psSyncData->ui32WriteOpsPending; - if(psModifySyncOpsIN->ui32ModifyFlags & PVRSRV_MODIFYSYNCOPS_FLAGS_WO_INC) - { - psKernelSyncInfo->psSyncData->ui32WriteOpsPending++; - } + if(psModifySyncOpsIN->ui32ModifyFlags & PVRSRV_MODIFYSYNCOPS_FLAGS_WO_INC) + { + psKernelSyncInfo->psSyncData->ui32WriteOpsPending++; + } - if(psModifySyncOpsIN->ui32ModifyFlags & PVRSRV_MODIFYSYNCOPS_FLAGS_RO_INC) - { - psKernelSyncInfo->psSyncData->ui32ReadOpsPending++; - } + if(psModifySyncOpsIN->ui32ModifyFlags & PVRSRV_MODIFYSYNCOPS_FLAGS_RO_INC) + { + psKernelSyncInfo->psSyncData->ui32ReadOpsPending++; + } - - psModifySyncOpsOUT->eError = ResManDissociateRes(psModSyncOpInfo->hResItem, - psPerProc->hResManContext); + + psModifySyncOpsOUT->eError = ResManDissociateRes(psModSyncOpInfo->hResItem, + psPerProc->hResManContext); - if (psModifySyncOpsOUT->eError != PVRSRV_OK) - { - PVR_DPF((PVR_DBG_ERROR, "PVRSRVModifyPendingSyncOpsBW: PVRSRVLookupHandle failed")); - return 0; - } + if (psModifySyncOpsOUT->eError != PVRSRV_OK) + { + PVR_DPF((PVR_DBG_ERROR, "PVRSRVModifyPendingSyncOpsBW: PVRSRVLookupHandle failed")); + return 0; + } - return 0; + return 0; } static IMG_INT -PVRSRVModifyCompleteSyncOpsBW(IMG_UINT32 ui32BridgeID, - PVRSRV_BRIDGE_IN_MODIFY_COMPLETE_SYNC_OPS *psModifySyncOpsIN, - PVRSRV_BRIDGE_RETURN *psModifySyncOpsOUT, - PVRSRV_PER_PROCESS_DATA *psPerProc) +PVRSRVModifyCompleteSyncOpsBW(IMG_UINT32 ui32BridgeID, + PVRSRV_BRIDGE_IN_MODIFY_COMPLETE_SYNC_OPS *psModifySyncOpsIN, + PVRSRV_BRIDGE_RETURN *psModifySyncOpsOUT, + PVRSRV_PER_PROCESS_DATA *psPerProc) { - MODIFY_SYNC_OP_INFO *psModSyncOpInfo; + MODIFY_SYNC_OP_INFO *psModSyncOpInfo; - PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_MODIFY_COMPLETE_SYNC_OPS); + PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_MODIFY_COMPLETE_SYNC_OPS); - psModifySyncOpsOUT->eError = PVRSRVLookupHandle(psPerProc->psHandleBase, - (IMG_VOID**)&psModSyncOpInfo, - psModifySyncOpsIN->hKernelSyncInfoModObj, - PVRSRV_HANDLE_TYPE_SYNC_INFO_MOD_OBJ); - if (psModifySyncOpsOUT->eError != PVRSRV_OK) - { - PVR_DPF((PVR_DBG_ERROR, "PVRSRVModifyCompleteSyncOpsBW: PVRSRVLookupHandle failed")); - return 0; - } + psModifySyncOpsOUT->eError = PVRSRVLookupHandle(psPerProc->psHandleBase, + (IMG_VOID**)&psModSyncOpInfo, + psModifySyncOpsIN->hKernelSyncInfoModObj, + PVRSRV_HANDLE_TYPE_SYNC_INFO_MOD_OBJ); + if (psModifySyncOpsOUT->eError != PVRSRV_OK) + { + PVR_DPF((PVR_DBG_ERROR, "PVRSRVModifyCompleteSyncOpsBW: PVRSRVLookupHandle failed")); + return 0; + } - if(psModSyncOpInfo->psKernelSyncInfo == IMG_NULL) - { - - psModifySyncOpsOUT->eError = PVRSRV_ERROR_INVALID_PARAMS; - return 0; - } + if(psModSyncOpInfo->psKernelSyncInfo == IMG_NULL) + { + + psModifySyncOpsOUT->eError = PVRSRV_ERROR_INVALID_PARAMS; + return 0; + } - psModifySyncOpsOUT->eError = DoModifyCompleteSyncOps(psModSyncOpInfo); + psModifySyncOpsOUT->eError = DoModifyCompleteSyncOps(psModSyncOpInfo); - if (psModifySyncOpsOUT->eError != PVRSRV_OK) - { - PVR_DPF((PVR_DBG_ERROR, "PVRSRVModifyCompleteSyncOpsBW: DoModifyCompleteSyncOps failed")); - return 0; - } + if (psModifySyncOpsOUT->eError != PVRSRV_OK) + { + PVR_DPF((PVR_DBG_ERROR, "PVRSRVModifyCompleteSyncOpsBW: DoModifyCompleteSyncOps failed")); + return 0; + } - psModSyncOpInfo->psKernelSyncInfo = IMG_NULL; + psModSyncOpInfo->psKernelSyncInfo = IMG_NULL; - - PVRSRVScheduleDeviceCallbacks(); + + PVRSRVScheduleDeviceCallbacks(); - return 0; + return 0; } static IMG_INT -PVRSRVSyncOpsTakeTokenBW(IMG_UINT32 ui32BridgeID, - PVRSRV_BRIDGE_IN_SYNC_OPS_TAKE_TOKEN *psSyncOpsTakeTokenIN, - PVRSRV_BRIDGE_OUT_SYNC_OPS_TAKE_TOKEN *psSyncOpsTakeTokenOUT, - PVRSRV_PER_PROCESS_DATA *psPerProc) +PVRSRVSyncOpsTakeTokenBW(IMG_UINT32 ui32BridgeID, + PVRSRV_BRIDGE_IN_SYNC_OPS_TAKE_TOKEN *psSyncOpsTakeTokenIN, + PVRSRV_BRIDGE_OUT_SYNC_OPS_TAKE_TOKEN *psSyncOpsTakeTokenOUT, + PVRSRV_PER_PROCESS_DATA *psPerProc) { - PVRSRV_KERNEL_SYNC_INFO *psKernelSyncInfo; + PVRSRV_KERNEL_SYNC_INFO *psKernelSyncInfo; - PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_SYNC_OPS_TAKE_TOKEN); + PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_SYNC_OPS_TAKE_TOKEN); - psSyncOpsTakeTokenOUT->eError = PVRSRVLookupHandle(psPerProc->psHandleBase, - (IMG_VOID**)&psKernelSyncInfo, - psSyncOpsTakeTokenIN->hKernelSyncInfo, - PVRSRV_HANDLE_TYPE_SYNC_INFO); - if (psSyncOpsTakeTokenOUT->eError != PVRSRV_OK) - { - PVR_DPF((PVR_DBG_ERROR, "PVRSRVSyncOpsTakeTokenBW: PVRSRVLookupHandle failed")); - return 0; - } + psSyncOpsTakeTokenOUT->eError = PVRSRVLookupHandle(psPerProc->psHandleBase, + (IMG_VOID**)&psKernelSyncInfo, + psSyncOpsTakeTokenIN->hKernelSyncInfo, + PVRSRV_HANDLE_TYPE_SYNC_INFO); + if (psSyncOpsTakeTokenOUT->eError != PVRSRV_OK) + { + PVR_DPF((PVR_DBG_ERROR, "PVRSRVSyncOpsTakeTokenBW: PVRSRVLookupHandle failed")); + return 0; + } - + - psSyncOpsTakeTokenOUT->ui32ReadOpsPending = psKernelSyncInfo->psSyncData->ui32ReadOpsPending; - psSyncOpsTakeTokenOUT->ui32WriteOpsPending = psKernelSyncInfo->psSyncData->ui32WriteOpsPending; + psSyncOpsTakeTokenOUT->ui32ReadOpsPending = psKernelSyncInfo->psSyncData->ui32ReadOpsPending; + psSyncOpsTakeTokenOUT->ui32WriteOpsPending = psKernelSyncInfo->psSyncData->ui32WriteOpsPending; - return 0; + return 0; } static IMG_INT PVRSRVSyncOpsFlushToTokenBW(IMG_UINT32 ui32BridgeID, - PVRSRV_BRIDGE_IN_SYNC_OPS_FLUSH_TO_TOKEN *psSyncOpsFlushToTokenIN, - PVRSRV_BRIDGE_RETURN *psSyncOpsFlushToTokenOUT, - PVRSRV_PER_PROCESS_DATA *psPerProc) + PVRSRV_BRIDGE_IN_SYNC_OPS_FLUSH_TO_TOKEN *psSyncOpsFlushToTokenIN, + PVRSRV_BRIDGE_RETURN *psSyncOpsFlushToTokenOUT, + PVRSRV_PER_PROCESS_DATA *psPerProc) { - PVRSRV_KERNEL_SYNC_INFO *psKernelSyncInfo; - IMG_UINT32 ui32ReadOpsPendingSnapshot; - IMG_UINT32 ui32WriteOpsPendingSnapshot; + PVRSRV_KERNEL_SYNC_INFO *psKernelSyncInfo; + IMG_UINT32 ui32ReadOpsPendingSnapshot; + IMG_UINT32 ui32WriteOpsPendingSnapshot; - PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_SYNC_OPS_FLUSH_TO_TOKEN); + PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_SYNC_OPS_FLUSH_TO_TOKEN); - psSyncOpsFlushToTokenOUT->eError = PVRSRVLookupHandle(psPerProc->psHandleBase, - (IMG_VOID**)&psKernelSyncInfo, - psSyncOpsFlushToTokenIN->hKernelSyncInfo, - PVRSRV_HANDLE_TYPE_SYNC_INFO); - if (psSyncOpsFlushToTokenOUT->eError != PVRSRV_OK) - { - PVR_DPF((PVR_DBG_ERROR, "PVRSRVSyncOpsFlushToTokenBW: PVRSRVLookupHandle failed")); - return 0; - } + psSyncOpsFlushToTokenOUT->eError = PVRSRVLookupHandle(psPerProc->psHandleBase, + (IMG_VOID**)&psKernelSyncInfo, + psSyncOpsFlushToTokenIN->hKernelSyncInfo, + PVRSRV_HANDLE_TYPE_SYNC_INFO); + if (psSyncOpsFlushToTokenOUT->eError != PVRSRV_OK) + { + PVR_DPF((PVR_DBG_ERROR, "PVRSRVSyncOpsFlushToTokenBW: PVRSRVLookupHandle failed")); + return 0; + } - ui32ReadOpsPendingSnapshot = psSyncOpsFlushToTokenIN->ui32ReadOpsPendingSnapshot; - ui32WriteOpsPendingSnapshot = psSyncOpsFlushToTokenIN->ui32WriteOpsPendingSnapshot; + ui32ReadOpsPendingSnapshot = psSyncOpsFlushToTokenIN->ui32ReadOpsPendingSnapshot; + ui32WriteOpsPendingSnapshot = psSyncOpsFlushToTokenIN->ui32WriteOpsPendingSnapshot; - psSyncOpsFlushToTokenOUT->eError = DoQuerySyncOpsSatisfied(psKernelSyncInfo, - ui32ReadOpsPendingSnapshot, - ui32WriteOpsPendingSnapshot); + psSyncOpsFlushToTokenOUT->eError = DoQuerySyncOpsSatisfied(psKernelSyncInfo, + ui32ReadOpsPendingSnapshot, + ui32WriteOpsPendingSnapshot); - if (psSyncOpsFlushToTokenOUT->eError != PVRSRV_OK && psSyncOpsFlushToTokenOUT->eError != PVRSRV_ERROR_RETRY) - { - PVR_DPF((PVR_DBG_ERROR, "PVRSRVSyncOpsFlushToTokenBW: DoQuerySyncOpsSatisfied failed")); - return 0; - } + if (psSyncOpsFlushToTokenOUT->eError != PVRSRV_OK && psSyncOpsFlushToTokenOUT->eError != PVRSRV_ERROR_RETRY) + { + PVR_DPF((PVR_DBG_ERROR, "PVRSRVSyncOpsFlushToTokenBW: DoQuerySyncOpsSatisfied failed")); + return 0; + } - return 0; + return 0; } static IMG_INT PVRSRVSyncOpsFlushToModObjBW(IMG_UINT32 ui32BridgeID, - PVRSRV_BRIDGE_IN_SYNC_OPS_FLUSH_TO_MOD_OBJ *psSyncOpsFlushToModObjIN, - PVRSRV_BRIDGE_RETURN *psSyncOpsFlushToModObjOUT, - PVRSRV_PER_PROCESS_DATA *psPerProc) + PVRSRV_BRIDGE_IN_SYNC_OPS_FLUSH_TO_MOD_OBJ *psSyncOpsFlushToModObjIN, + PVRSRV_BRIDGE_RETURN *psSyncOpsFlushToModObjOUT, + PVRSRV_PER_PROCESS_DATA *psPerProc) { - MODIFY_SYNC_OP_INFO *psModSyncOpInfo; + MODIFY_SYNC_OP_INFO *psModSyncOpInfo; - PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_SYNC_OPS_FLUSH_TO_MOD_OBJ); + PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_SYNC_OPS_FLUSH_TO_MOD_OBJ); - psSyncOpsFlushToModObjOUT->eError = PVRSRVLookupHandle(psPerProc->psHandleBase, - (IMG_VOID**)&psModSyncOpInfo, - psSyncOpsFlushToModObjIN->hKernelSyncInfoModObj, - PVRSRV_HANDLE_TYPE_SYNC_INFO_MOD_OBJ); - if (psSyncOpsFlushToModObjOUT->eError != PVRSRV_OK) - { - PVR_DPF((PVR_DBG_ERROR, "PVRSRVSyncOpsFlushToModObjBW: PVRSRVLookupHandle failed")); - return 0; - } + psSyncOpsFlushToModObjOUT->eError = PVRSRVLookupHandle(psPerProc->psHandleBase, + (IMG_VOID**)&psModSyncOpInfo, + psSyncOpsFlushToModObjIN->hKernelSyncInfoModObj, + PVRSRV_HANDLE_TYPE_SYNC_INFO_MOD_OBJ); + if (psSyncOpsFlushToModObjOUT->eError != PVRSRV_OK) + { + PVR_DPF((PVR_DBG_ERROR, "PVRSRVSyncOpsFlushToModObjBW: PVRSRVLookupHandle failed")); + return 0; + } - if(psModSyncOpInfo->psKernelSyncInfo == IMG_NULL) - { - - psSyncOpsFlushToModObjOUT->eError = PVRSRV_ERROR_INVALID_PARAMS; - return 0; - } + if(psModSyncOpInfo->psKernelSyncInfo == IMG_NULL) + { + + psSyncOpsFlushToModObjOUT->eError = PVRSRV_ERROR_INVALID_PARAMS; + return 0; + } - psSyncOpsFlushToModObjOUT->eError = DoQuerySyncOpsSatisfied(psModSyncOpInfo->psKernelSyncInfo, - psModSyncOpInfo->ui32ReadOpsPendingSnapShot, - psModSyncOpInfo->ui32WriteOpsPendingSnapShot); + psSyncOpsFlushToModObjOUT->eError = DoQuerySyncOpsSatisfied(psModSyncOpInfo->psKernelSyncInfo, + psModSyncOpInfo->ui32ReadOpsPendingSnapShot, + psModSyncOpInfo->ui32WriteOpsPendingSnapShot); - if (psSyncOpsFlushToModObjOUT->eError != PVRSRV_OK && psSyncOpsFlushToModObjOUT->eError != PVRSRV_ERROR_RETRY) - { - PVR_DPF((PVR_DBG_ERROR, "PVRSRVSyncOpsFlushToModObjBW: DoQuerySyncOpsSatisfied failed")); - return 0; - } + if (psSyncOpsFlushToModObjOUT->eError != PVRSRV_OK && psSyncOpsFlushToModObjOUT->eError != PVRSRV_ERROR_RETRY) + { + PVR_DPF((PVR_DBG_ERROR, "PVRSRVSyncOpsFlushToModObjBW: DoQuerySyncOpsSatisfied failed")); + return 0; + } - return 0; + return 0; } static IMG_INT PVRSRVSyncOpsFlushToDeltaBW(IMG_UINT32 ui32BridgeID, - PVRSRV_BRIDGE_IN_SYNC_OPS_FLUSH_TO_DELTA *psSyncOpsFlushToDeltaIN, - PVRSRV_BRIDGE_RETURN *psSyncOpsFlushToDeltaOUT, - PVRSRV_PER_PROCESS_DATA *psPerProc) + PVRSRV_BRIDGE_IN_SYNC_OPS_FLUSH_TO_DELTA *psSyncOpsFlushToDeltaIN, + PVRSRV_BRIDGE_RETURN *psSyncOpsFlushToDeltaOUT, + PVRSRV_PER_PROCESS_DATA *psPerProc) { - PVRSRV_KERNEL_SYNC_INFO *psSyncInfo; - IMG_UINT32 ui32DeltaRead; - IMG_UINT32 ui32DeltaWrite; + PVRSRV_KERNEL_SYNC_INFO *psSyncInfo; + IMG_UINT32 ui32DeltaRead; + IMG_UINT32 ui32DeltaWrite; - PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_SYNC_OPS_FLUSH_TO_DELTA); + PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_SYNC_OPS_FLUSH_TO_DELTA); - psSyncOpsFlushToDeltaOUT->eError = PVRSRVLookupHandle(psPerProc->psHandleBase, - (IMG_VOID**)&psSyncInfo, - psSyncOpsFlushToDeltaIN->hKernelSyncInfo, - PVRSRV_HANDLE_TYPE_SYNC_INFO); - if (psSyncOpsFlushToDeltaOUT->eError != PVRSRV_OK) - { - PVR_DPF((PVR_DBG_ERROR, "PVRSRVSyncOpsFlushToDeltaBW: PVRSRVLookupHandle failed")); - return 0; - } + psSyncOpsFlushToDeltaOUT->eError = PVRSRVLookupHandle(psPerProc->psHandleBase, + (IMG_VOID**)&psSyncInfo, + psSyncOpsFlushToDeltaIN->hKernelSyncInfo, + PVRSRV_HANDLE_TYPE_SYNC_INFO); + if (psSyncOpsFlushToDeltaOUT->eError != PVRSRV_OK) + { + PVR_DPF((PVR_DBG_ERROR, "PVRSRVSyncOpsFlushToDeltaBW: PVRSRVLookupHandle failed")); + return 0; + } - - ui32DeltaRead = psSyncInfo->psSyncData->ui32ReadOpsPending - psSyncInfo->psSyncData->ui32ReadOpsComplete; - ui32DeltaWrite = psSyncInfo->psSyncData->ui32WriteOpsPending - psSyncInfo->psSyncData->ui32WriteOpsComplete; + + ui32DeltaRead = psSyncInfo->psSyncData->ui32ReadOpsPending - psSyncInfo->psSyncData->ui32ReadOpsComplete; + ui32DeltaWrite = psSyncInfo->psSyncData->ui32WriteOpsPending - psSyncInfo->psSyncData->ui32WriteOpsComplete; - if (ui32DeltaRead <= psSyncOpsFlushToDeltaIN->ui32Delta && ui32DeltaWrite <= psSyncOpsFlushToDeltaIN->ui32Delta) - { + if (ui32DeltaRead <= psSyncOpsFlushToDeltaIN->ui32Delta && ui32DeltaWrite <= psSyncOpsFlushToDeltaIN->ui32Delta) + { #if defined(PDUMP) && !defined(SUPPORT_VGX) - - PDumpComment("Poll for read ops complete to delta (%u)", - psSyncOpsFlushToDeltaIN->ui32Delta); - psSyncOpsFlushToDeltaOUT->eError = - PDumpMemPolKM(psSyncInfo->psSyncDataMemInfoKM, - offsetof(PVRSRV_SYNC_DATA, ui32ReadOpsComplete), - psSyncInfo->psSyncData->ui32LastReadOpDumpVal, - 0xFFFFFFFF, - PDUMP_POLL_OPERATOR_GREATEREQUAL, - 0, - MAKEUNIQUETAG(psSyncInfo->psSyncDataMemInfoKM)); - - - PDumpComment("Poll for write ops complete to delta (%u)", - psSyncOpsFlushToDeltaIN->ui32Delta); - psSyncOpsFlushToDeltaOUT->eError = - PDumpMemPolKM(psSyncInfo->psSyncDataMemInfoKM, - offsetof(PVRSRV_SYNC_DATA, ui32WriteOpsComplete), - psSyncInfo->psSyncData->ui32LastOpDumpVal, - 0xFFFFFFFF, - PDUMP_POLL_OPERATOR_GREATEREQUAL, - 0, - MAKEUNIQUETAG(psSyncInfo->psSyncDataMemInfoKM)); + + PDumpComment("Poll for read ops complete to delta (%u)", + psSyncOpsFlushToDeltaIN->ui32Delta); + psSyncOpsFlushToDeltaOUT->eError = + PDumpMemPolKM(psSyncInfo->psSyncDataMemInfoKM, + offsetof(PVRSRV_SYNC_DATA, ui32ReadOpsComplete), + psSyncInfo->psSyncData->ui32LastReadOpDumpVal, + 0xFFFFFFFF, + PDUMP_POLL_OPERATOR_GREATEREQUAL, + 0, + MAKEUNIQUETAG(psSyncInfo->psSyncDataMemInfoKM)); + + + PDumpComment("Poll for write ops complete to delta (%u)", + psSyncOpsFlushToDeltaIN->ui32Delta); + psSyncOpsFlushToDeltaOUT->eError = + PDumpMemPolKM(psSyncInfo->psSyncDataMemInfoKM, + offsetof(PVRSRV_SYNC_DATA, ui32WriteOpsComplete), + psSyncInfo->psSyncData->ui32LastOpDumpVal, + 0xFFFFFFFF, + PDUMP_POLL_OPERATOR_GREATEREQUAL, + 0, + MAKEUNIQUETAG(psSyncInfo->psSyncDataMemInfoKM)); #endif - psSyncOpsFlushToDeltaOUT->eError = PVRSRV_OK; - } - else - { - psSyncOpsFlushToDeltaOUT->eError = PVRSRV_ERROR_RETRY; - } + psSyncOpsFlushToDeltaOUT->eError = PVRSRV_OK; + } + else + { + psSyncOpsFlushToDeltaOUT->eError = PVRSRV_ERROR_RETRY; + } - return 0; + return 0; } static PVRSRV_ERROR -FreeSyncInfoCallback(IMG_PVOID pvParam, +FreeSyncInfoCallback(IMG_PVOID pvParam, IMG_UINT32 ui32Param, IMG_BOOL bDummy) { - PVRSRV_KERNEL_SYNC_INFO *psSyncInfo; - PVRSRV_ERROR eError; + PVRSRV_KERNEL_SYNC_INFO *psSyncInfo; + PVRSRV_ERROR eError; - PVR_UNREFERENCED_PARAMETER(ui32Param); + PVR_UNREFERENCED_PARAMETER(ui32Param); PVR_UNREFERENCED_PARAMETER(bDummy); - psSyncInfo = (PVRSRV_KERNEL_SYNC_INFO *)pvParam; + psSyncInfo = (PVRSRV_KERNEL_SYNC_INFO *)pvParam; - eError = PVRSRVFreeSyncInfoKM(psSyncInfo); - if (eError != PVRSRV_OK) - { - return eError; - } + eError = PVRSRVFreeSyncInfoKM(psSyncInfo); + if (eError != PVRSRV_OK) + { + return eError; + } - return PVRSRV_OK; + return PVRSRV_OK; } static IMG_INT PVRSRVAllocSyncInfoBW(IMG_UINT32 ui32BridgeID, - PVRSRV_BRIDGE_IN_ALLOC_SYNC_INFO *psAllocSyncInfoIN, - PVRSRV_BRIDGE_OUT_ALLOC_SYNC_INFO *psAllocSyncInfoOUT, - PVRSRV_PER_PROCESS_DATA *psPerProc) + PVRSRV_BRIDGE_IN_ALLOC_SYNC_INFO *psAllocSyncInfoIN, + PVRSRV_BRIDGE_OUT_ALLOC_SYNC_INFO *psAllocSyncInfoOUT, + PVRSRV_PER_PROCESS_DATA *psPerProc) { - PVRSRV_KERNEL_SYNC_INFO *psSyncInfo; - PVRSRV_ERROR eError; - PVRSRV_DEVICE_NODE *psDeviceNode; - IMG_HANDLE hDevMemContext; + PVRSRV_KERNEL_SYNC_INFO *psSyncInfo; + PVRSRV_ERROR eError; + PVRSRV_DEVICE_NODE *psDeviceNode; + IMG_HANDLE hDevMemContext; - PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_ALLOC_SYNC_INFO); + PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_ALLOC_SYNC_INFO); - NEW_HANDLE_BATCH_OR_ERROR(psAllocSyncInfoOUT->eError, psPerProc, 1) + NEW_HANDLE_BATCH_OR_ERROR(psAllocSyncInfoOUT->eError, psPerProc, 1) - eError = PVRSRVLookupHandle(psPerProc->psHandleBase, - (IMG_HANDLE *)&psDeviceNode, - psAllocSyncInfoIN->hDevCookie, - PVRSRV_HANDLE_TYPE_DEV_NODE); - if(eError != PVRSRV_OK) - { - goto allocsyncinfo_errorexit; - } + eError = PVRSRVLookupHandle(psPerProc->psHandleBase, + (IMG_HANDLE *)&psDeviceNode, + psAllocSyncInfoIN->hDevCookie, + PVRSRV_HANDLE_TYPE_DEV_NODE); + if(eError != PVRSRV_OK) + { + goto allocsyncinfo_errorexit; + } - hDevMemContext = psDeviceNode->sDevMemoryInfo.pBMKernelContext; + hDevMemContext = psDeviceNode->sDevMemoryInfo.pBMKernelContext; - eError = PVRSRVAllocSyncInfoKM(psDeviceNode, - hDevMemContext, - &psSyncInfo); + eError = PVRSRVAllocSyncInfoKM(psDeviceNode, + hDevMemContext, + &psSyncInfo); - if (eError != PVRSRV_OK) - { - goto allocsyncinfo_errorexit; - } + if (eError != PVRSRV_OK) + { + goto allocsyncinfo_errorexit; + } - eError = PVRSRVAllocHandle(psPerProc->psHandleBase, - &psAllocSyncInfoOUT->hKernelSyncInfo, - psSyncInfo, - PVRSRV_HANDLE_TYPE_SYNC_INFO, - PVRSRV_HANDLE_ALLOC_FLAG_PRIVATE); + eError = PVRSRVAllocHandle(psPerProc->psHandleBase, + &psAllocSyncInfoOUT->hKernelSyncInfo, + psSyncInfo, + PVRSRV_HANDLE_TYPE_SYNC_INFO, + PVRSRV_HANDLE_ALLOC_FLAG_PRIVATE); - if(eError != PVRSRV_OK) - { - goto allocsyncinfo_errorexit_freesyncinfo; - } + if(eError != PVRSRV_OK) + { + goto allocsyncinfo_errorexit_freesyncinfo; + } - psSyncInfo->hResItem = ResManRegisterRes(psPerProc->hResManContext, - RESMAN_TYPE_SYNC_INFO, - psSyncInfo, - 0, - FreeSyncInfoCallback); + psSyncInfo->hResItem = ResManRegisterRes(psPerProc->hResManContext, + RESMAN_TYPE_SYNC_INFO, + psSyncInfo, + 0, + FreeSyncInfoCallback); - - goto allocsyncinfo_commit; + + goto allocsyncinfo_commit; - + allocsyncinfo_errorexit_freesyncinfo: - PVRSRVFreeSyncInfoKM(psSyncInfo); + PVRSRVFreeSyncInfoKM(psSyncInfo); allocsyncinfo_errorexit: - + allocsyncinfo_commit: - psAllocSyncInfoOUT->eError = eError; - COMMIT_HANDLE_BATCH_OR_ERROR(eError, psPerProc); + psAllocSyncInfoOUT->eError = eError; + COMMIT_HANDLE_BATCH_OR_ERROR(eError, psPerProc); - return 0; + return 0; } static IMG_INT PVRSRVFreeSyncInfoBW(IMG_UINT32 ui32BridgeID, - PVRSRV_BRIDGE_IN_FREE_SYNC_INFO *psFreeSyncInfoIN, - PVRSRV_BRIDGE_RETURN *psFreeSyncInfoOUT, - PVRSRV_PER_PROCESS_DATA *psPerProc) + PVRSRV_BRIDGE_IN_FREE_SYNC_INFO *psFreeSyncInfoIN, + PVRSRV_BRIDGE_RETURN *psFreeSyncInfoOUT, + PVRSRV_PER_PROCESS_DATA *psPerProc) { - PVRSRV_KERNEL_SYNC_INFO *psSyncInfo; - PVRSRV_ERROR eError; + PVRSRV_KERNEL_SYNC_INFO *psSyncInfo; + PVRSRV_ERROR eError; - PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_FREE_SYNC_INFO); + PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_FREE_SYNC_INFO); - eError = PVRSRVLookupHandle(psPerProc->psHandleBase, - (IMG_VOID**)&psSyncInfo, - psFreeSyncInfoIN->hKernelSyncInfo, - PVRSRV_HANDLE_TYPE_SYNC_INFO); - if (eError != PVRSRV_OK) - { - PVR_DPF((PVR_DBG_ERROR, "PVRSRVFreeSyncInfoBW: PVRSRVLookupHandle failed")); - psFreeSyncInfoOUT->eError = eError; - return 0; - } + eError = PVRSRVLookupHandle(psPerProc->psHandleBase, + (IMG_VOID**)&psSyncInfo, + psFreeSyncInfoIN->hKernelSyncInfo, + PVRSRV_HANDLE_TYPE_SYNC_INFO); + if (eError != PVRSRV_OK) + { + PVR_DPF((PVR_DBG_ERROR, "PVRSRVFreeSyncInfoBW: PVRSRVLookupHandle failed")); + psFreeSyncInfoOUT->eError = eError; + return 0; + } - eError = PVRSRVReleaseHandle(psPerProc->psHandleBase, - psFreeSyncInfoIN->hKernelSyncInfo, - PVRSRV_HANDLE_TYPE_SYNC_INFO); + eError = PVRSRVReleaseHandle(psPerProc->psHandleBase, + psFreeSyncInfoIN->hKernelSyncInfo, + PVRSRV_HANDLE_TYPE_SYNC_INFO); - if (eError != PVRSRV_OK) - { - PVR_DPF((PVR_DBG_ERROR, "PVRSRVFreeSyncInfoBW: PVRSRVReleaseHandle failed")); - psFreeSyncInfoOUT->eError = eError; - return 0; - } + if (eError != PVRSRV_OK) + { + PVR_DPF((PVR_DBG_ERROR, "PVRSRVFreeSyncInfoBW: PVRSRVReleaseHandle failed")); + psFreeSyncInfoOUT->eError = eError; + return 0; + } eError = ResManFreeResByPtr(psSyncInfo->hResItem, CLEANUP_WITH_POLL); - if (eError != PVRSRV_OK) - { - PVR_DPF((PVR_DBG_ERROR, "PVRSRVFreeSyncInfoBW: ResManFreeResByPtr failed")); - psFreeSyncInfoOUT->eError = eError; - return 0; - } + if (eError != PVRSRV_OK) + { + PVR_DPF((PVR_DBG_ERROR, "PVRSRVFreeSyncInfoBW: ResManFreeResByPtr failed")); + psFreeSyncInfoOUT->eError = eError; + return 0; + } - return 0; + return 0; } PVRSRV_ERROR CommonBridgeInit(IMG_VOID) { - IMG_UINT32 i; - - SetDispatchTableEntry(PVRSRV_BRIDGE_ENUM_DEVICES, PVRSRVEnumerateDevicesBW); - SetDispatchTableEntry(PVRSRV_BRIDGE_ACQUIRE_DEVICEINFO, PVRSRVAcquireDeviceDataBW); - SetDispatchTableEntry(PVRSRV_BRIDGE_RELEASE_DEVICEINFO, DummyBW); - SetDispatchTableEntry(PVRSRV_BRIDGE_CREATE_DEVMEMCONTEXT, PVRSRVCreateDeviceMemContextBW); - SetDispatchTableEntry(PVRSRV_BRIDGE_DESTROY_DEVMEMCONTEXT, PVRSRVDestroyDeviceMemContextBW); - SetDispatchTableEntry(PVRSRV_BRIDGE_GET_DEVMEM_HEAPINFO, PVRSRVGetDeviceMemHeapInfoBW); - SetDispatchTableEntry(PVRSRV_BRIDGE_ALLOC_DEVICEMEM, PVRSRVAllocDeviceMemBW); - SetDispatchTableEntry(PVRSRV_BRIDGE_FREE_DEVICEMEM, PVRSRVFreeDeviceMemBW); - SetDispatchTableEntry(PVRSRV_BRIDGE_GETFREE_DEVICEMEM, PVRSRVGetFreeDeviceMemBW); - SetDispatchTableEntry(PVRSRV_BRIDGE_CREATE_COMMANDQUEUE, DummyBW); - SetDispatchTableEntry(PVRSRV_BRIDGE_DESTROY_COMMANDQUEUE, DummyBW); - SetDispatchTableEntry(PVRSRV_BRIDGE_MHANDLE_TO_MMAP_DATA, PVRMMapOSMemHandleToMMapDataBW); - SetDispatchTableEntry(PVRSRV_BRIDGE_CONNECT_SERVICES, PVRSRVConnectBW); - SetDispatchTableEntry(PVRSRV_BRIDGE_DISCONNECT_SERVICES, PVRSRVDisconnectBW); - SetDispatchTableEntry(PVRSRV_BRIDGE_WRAP_DEVICE_MEM, DummyBW); - SetDispatchTableEntry(PVRSRV_BRIDGE_GET_DEVICEMEMINFO, DummyBW); - SetDispatchTableEntry(PVRSRV_BRIDGE_RESERVE_DEV_VIRTMEM , DummyBW); - SetDispatchTableEntry(PVRSRV_BRIDGE_FREE_DEV_VIRTMEM, DummyBW); - SetDispatchTableEntry(PVRSRV_BRIDGE_MAP_EXT_MEMORY, DummyBW); - SetDispatchTableEntry(PVRSRV_BRIDGE_UNMAP_EXT_MEMORY, DummyBW); - SetDispatchTableEntry(PVRSRV_BRIDGE_MAP_DEV_MEMORY, PVRSRVMapDeviceMemoryBW); - SetDispatchTableEntry(PVRSRV_BRIDGE_UNMAP_DEV_MEMORY, PVRSRVUnmapDeviceMemoryBW); - SetDispatchTableEntry(PVRSRV_BRIDGE_MAP_DEVICECLASS_MEMORY, PVRSRVMapDeviceClassMemoryBW); - SetDispatchTableEntry(PVRSRV_BRIDGE_UNMAP_DEVICECLASS_MEMORY, PVRSRVUnmapDeviceClassMemoryBW); - SetDispatchTableEntry(PVRSRV_BRIDGE_MAP_MEM_INFO_TO_USER, DummyBW); - SetDispatchTableEntry(PVRSRV_BRIDGE_UNMAP_MEM_INFO_FROM_USER, DummyBW); - SetDispatchTableEntry(PVRSRV_BRIDGE_EXPORT_DEVICEMEM, PVRSRVExportDeviceMemBW); - SetDispatchTableEntry(PVRSRV_BRIDGE_RELEASE_MMAP_DATA, PVRMMapReleaseMMapDataBW); + IMG_UINT32 i; + + SetDispatchTableEntry(PVRSRV_BRIDGE_ENUM_DEVICES, PVRSRVEnumerateDevicesBW); + SetDispatchTableEntry(PVRSRV_BRIDGE_ACQUIRE_DEVICEINFO, PVRSRVAcquireDeviceDataBW); + SetDispatchTableEntry(PVRSRV_BRIDGE_RELEASE_DEVICEINFO, DummyBW); + SetDispatchTableEntry(PVRSRV_BRIDGE_CREATE_DEVMEMCONTEXT, PVRSRVCreateDeviceMemContextBW); + SetDispatchTableEntry(PVRSRV_BRIDGE_DESTROY_DEVMEMCONTEXT, PVRSRVDestroyDeviceMemContextBW); + SetDispatchTableEntry(PVRSRV_BRIDGE_GET_DEVMEM_HEAPINFO, PVRSRVGetDeviceMemHeapInfoBW); + SetDispatchTableEntry(PVRSRV_BRIDGE_ALLOC_DEVICEMEM, PVRSRVAllocDeviceMemBW); + SetDispatchTableEntry(PVRSRV_BRIDGE_FREE_DEVICEMEM, PVRSRVFreeDeviceMemBW); + SetDispatchTableEntry(PVRSRV_BRIDGE_GETFREE_DEVICEMEM, PVRSRVGetFreeDeviceMemBW); + SetDispatchTableEntry(PVRSRV_BRIDGE_CREATE_COMMANDQUEUE, DummyBW); + SetDispatchTableEntry(PVRSRV_BRIDGE_DESTROY_COMMANDQUEUE, DummyBW); + SetDispatchTableEntry(PVRSRV_BRIDGE_MHANDLE_TO_MMAP_DATA, PVRMMapOSMemHandleToMMapDataBW); + SetDispatchTableEntry(PVRSRV_BRIDGE_CONNECT_SERVICES, PVRSRVConnectBW); + SetDispatchTableEntry(PVRSRV_BRIDGE_DISCONNECT_SERVICES, PVRSRVDisconnectBW); + SetDispatchTableEntry(PVRSRV_BRIDGE_WRAP_DEVICE_MEM, DummyBW); + SetDispatchTableEntry(PVRSRV_BRIDGE_GET_DEVICEMEMINFO, DummyBW); + SetDispatchTableEntry(PVRSRV_BRIDGE_RESERVE_DEV_VIRTMEM , DummyBW); + SetDispatchTableEntry(PVRSRV_BRIDGE_FREE_DEV_VIRTMEM, DummyBW); + SetDispatchTableEntry(PVRSRV_BRIDGE_MAP_EXT_MEMORY, DummyBW); + SetDispatchTableEntry(PVRSRV_BRIDGE_UNMAP_EXT_MEMORY, DummyBW); + SetDispatchTableEntry(PVRSRV_BRIDGE_MAP_DEV_MEMORY, PVRSRVMapDeviceMemoryBW); + SetDispatchTableEntry(PVRSRV_BRIDGE_UNMAP_DEV_MEMORY, PVRSRVUnmapDeviceMemoryBW); + SetDispatchTableEntry(PVRSRV_BRIDGE_MAP_DEVICECLASS_MEMORY, PVRSRVMapDeviceClassMemoryBW); + SetDispatchTableEntry(PVRSRV_BRIDGE_UNMAP_DEVICECLASS_MEMORY, PVRSRVUnmapDeviceClassMemoryBW); + SetDispatchTableEntry(PVRSRV_BRIDGE_MAP_MEM_INFO_TO_USER, DummyBW); + SetDispatchTableEntry(PVRSRV_BRIDGE_UNMAP_MEM_INFO_FROM_USER, DummyBW); + SetDispatchTableEntry(PVRSRV_BRIDGE_EXPORT_DEVICEMEM, PVRSRVExportDeviceMemBW); + SetDispatchTableEntry(PVRSRV_BRIDGE_RELEASE_MMAP_DATA, PVRMMapReleaseMMapDataBW); SetDispatchTableEntry(PVRSRV_BRIDGE_CHG_DEV_MEM_ATTRIBS, PVRSRVChangeDeviceMemoryAttributesBW); SetDispatchTableEntry(PVRSRV_BRIDGE_MAP_DEV_MEMORY_2, PVRSRVMapDeviceMemoryBW); SetDispatchTableEntry(PVRSRV_BRIDGE_EXPORT_DEVICEMEM_2, PVRSRVExportDeviceMemBW); - - SetDispatchTableEntry(PVRSRV_BRIDGE_PROCESS_SIMISR_EVENT, DummyBW); - SetDispatchTableEntry(PVRSRV_BRIDGE_REGISTER_SIM_PROCESS, DummyBW); - SetDispatchTableEntry(PVRSRV_BRIDGE_UNREGISTER_SIM_PROCESS, DummyBW); + + SetDispatchTableEntry(PVRSRV_BRIDGE_PROCESS_SIMISR_EVENT, DummyBW); + SetDispatchTableEntry(PVRSRV_BRIDGE_REGISTER_SIM_PROCESS, DummyBW); + SetDispatchTableEntry(PVRSRV_BRIDGE_UNREGISTER_SIM_PROCESS, DummyBW); - - SetDispatchTableEntry(PVRSRV_BRIDGE_MAPPHYSTOUSERSPACE, DummyBW); - SetDispatchTableEntry(PVRSRV_BRIDGE_UNMAPPHYSTOUSERSPACE, DummyBW); - SetDispatchTableEntry(PVRSRV_BRIDGE_GETPHYSTOUSERSPACEMAP, DummyBW); + + SetDispatchTableEntry(PVRSRV_BRIDGE_MAPPHYSTOUSERSPACE, DummyBW); + SetDispatchTableEntry(PVRSRV_BRIDGE_UNMAPPHYSTOUSERSPACE, DummyBW); + SetDispatchTableEntry(PVRSRV_BRIDGE_GETPHYSTOUSERSPACEMAP, DummyBW); - SetDispatchTableEntry(PVRSRV_BRIDGE_GET_FB_STATS, DummyBW); + SetDispatchTableEntry(PVRSRV_BRIDGE_GET_FB_STATS, DummyBW); - - SetDispatchTableEntry(PVRSRV_BRIDGE_GET_MISC_INFO, PVRSRVGetMiscInfoBW); - SetDispatchTableEntry(PVRSRV_BRIDGE_RELEASE_MISC_INFO, DummyBW); + + SetDispatchTableEntry(PVRSRV_BRIDGE_GET_MISC_INFO, PVRSRVGetMiscInfoBW); + SetDispatchTableEntry(PVRSRV_BRIDGE_RELEASE_MISC_INFO, DummyBW); - + #if defined (SUPPORT_OVERLAY_ROTATE_BLIT) - SetDispatchTableEntry(PVRSRV_BRIDGE_INIT_3D_OVL_BLT_RES, DummyBW); - SetDispatchTableEntry(PVRSRV_BRIDGE_DEINIT_3D_OVL_BLT_RES, DummyBW); + SetDispatchTableEntry(PVRSRV_BRIDGE_INIT_3D_OVL_BLT_RES, DummyBW); + SetDispatchTableEntry(PVRSRV_BRIDGE_DEINIT_3D_OVL_BLT_RES, DummyBW); #endif - + #if defined(PDUMP) - SetDispatchTableEntry(PVRSRV_BRIDGE_PDUMP_INIT, DummyBW); - SetDispatchTableEntry(PVRSRV_BRIDGE_PDUMP_MEMPOL, PDumpMemPolBW); - SetDispatchTableEntry(PVRSRV_BRIDGE_PDUMP_DUMPMEM, PDumpMemBW); - SetDispatchTableEntry(PVRSRV_BRIDGE_PDUMP_REG, PDumpRegWithFlagsBW); - SetDispatchTableEntry(PVRSRV_BRIDGE_PDUMP_REGPOL, PDumpRegPolBW); - SetDispatchTableEntry(PVRSRV_BRIDGE_PDUMP_COMMENT, PDumpCommentBW); - SetDispatchTableEntry(PVRSRV_BRIDGE_PDUMP_SETFRAME, PDumpSetFrameBW); - SetDispatchTableEntry(PVRSRV_BRIDGE_PDUMP_ISCAPTURING, PDumpIsCaptureFrameBW); - SetDispatchTableEntry(PVRSRV_BRIDGE_PDUMP_DUMPBITMAP, PDumpBitmapBW); - SetDispatchTableEntry(PVRSRV_BRIDGE_PDUMP_DUMPREADREG, PDumpReadRegBW); - SetDispatchTableEntry(PVRSRV_BRIDGE_PDUMP_SYNCPOL, PDumpSyncPolBW); - SetDispatchTableEntry(PVRSRV_BRIDGE_PDUMP_DUMPSYNC, PDumpSyncDumpBW); - SetDispatchTableEntry(PVRSRV_BRIDGE_PDUMP_MEMPAGES, PDumpMemPagesBW); - SetDispatchTableEntry(PVRSRV_BRIDGE_PDUMP_DRIVERINFO, PDumpDriverInfoBW); - SetDispatchTableEntry(PVRSRV_BRIDGE_PDUMP_DUMPPDDEVPADDR, PDumpPDDevPAddrBW); - SetDispatchTableEntry(PVRSRV_BRIDGE_PDUMP_CYCLE_COUNT_REG_READ, PDumpCycleCountRegReadBW); - SetDispatchTableEntry(PVRSRV_BRIDGE_PDUMP_STARTINITPHASE, PDumpStartInitPhaseBW); - SetDispatchTableEntry(PVRSRV_BRIDGE_PDUMP_STOPINITPHASE, PDumpStopInitPhaseBW); + SetDispatchTableEntry(PVRSRV_BRIDGE_PDUMP_INIT, DummyBW); + SetDispatchTableEntry(PVRSRV_BRIDGE_PDUMP_MEMPOL, PDumpMemPolBW); + SetDispatchTableEntry(PVRSRV_BRIDGE_PDUMP_DUMPMEM, PDumpMemBW); + SetDispatchTableEntry(PVRSRV_BRIDGE_PDUMP_REG, PDumpRegWithFlagsBW); + SetDispatchTableEntry(PVRSRV_BRIDGE_PDUMP_REGPOL, PDumpRegPolBW); + SetDispatchTableEntry(PVRSRV_BRIDGE_PDUMP_COMMENT, PDumpCommentBW); + SetDispatchTableEntry(PVRSRV_BRIDGE_PDUMP_SETFRAME, PDumpSetFrameBW); + SetDispatchTableEntry(PVRSRV_BRIDGE_PDUMP_ISCAPTURING, PDumpIsCaptureFrameBW); + SetDispatchTableEntry(PVRSRV_BRIDGE_PDUMP_DUMPBITMAP, PDumpBitmapBW); + SetDispatchTableEntry(PVRSRV_BRIDGE_PDUMP_DUMPREADREG, PDumpReadRegBW); + SetDispatchTableEntry(PVRSRV_BRIDGE_PDUMP_SYNCPOL, PDumpSyncPolBW); + SetDispatchTableEntry(PVRSRV_BRIDGE_PDUMP_DUMPSYNC, PDumpSyncDumpBW); + SetDispatchTableEntry(PVRSRV_BRIDGE_PDUMP_MEMPAGES, PDumpMemPagesBW); + SetDispatchTableEntry(PVRSRV_BRIDGE_PDUMP_DRIVERINFO, PDumpDriverInfoBW); + SetDispatchTableEntry(PVRSRV_BRIDGE_PDUMP_DUMPPDDEVPADDR, PDumpPDDevPAddrBW); + SetDispatchTableEntry(PVRSRV_BRIDGE_PDUMP_CYCLE_COUNT_REG_READ, PDumpCycleCountRegReadBW); + SetDispatchTableEntry(PVRSRV_BRIDGE_PDUMP_STARTINITPHASE, PDumpStartInitPhaseBW); + SetDispatchTableEntry(PVRSRV_BRIDGE_PDUMP_STOPINITPHASE, PDumpStopInitPhaseBW); #endif - - SetDispatchTableEntry(PVRSRV_BRIDGE_GET_OEMJTABLE, DummyBW); - - - SetDispatchTableEntry(PVRSRV_BRIDGE_ENUM_CLASS, PVRSRVEnumerateDCBW); - - - SetDispatchTableEntry(PVRSRV_BRIDGE_OPEN_DISPCLASS_DEVICE, PVRSRVOpenDCDeviceBW); - SetDispatchTableEntry(PVRSRV_BRIDGE_CLOSE_DISPCLASS_DEVICE, PVRSRVCloseDCDeviceBW); - SetDispatchTableEntry(PVRSRV_BRIDGE_ENUM_DISPCLASS_FORMATS, PVRSRVEnumDCFormatsBW); - SetDispatchTableEntry(PVRSRV_BRIDGE_ENUM_DISPCLASS_DIMS, PVRSRVEnumDCDimsBW); - SetDispatchTableEntry(PVRSRV_BRIDGE_GET_DISPCLASS_SYSBUFFER, PVRSRVGetDCSystemBufferBW); - SetDispatchTableEntry(PVRSRV_BRIDGE_GET_DISPCLASS_INFO, PVRSRVGetDCInfoBW); - SetDispatchTableEntry(PVRSRV_BRIDGE_CREATE_DISPCLASS_SWAPCHAIN, PVRSRVCreateDCSwapChainBW); - SetDispatchTableEntry(PVRSRV_BRIDGE_DESTROY_DISPCLASS_SWAPCHAIN, PVRSRVDestroyDCSwapChainBW); - SetDispatchTableEntry(PVRSRV_BRIDGE_SET_DISPCLASS_DSTRECT, PVRSRVSetDCDstRectBW); - SetDispatchTableEntry(PVRSRV_BRIDGE_SET_DISPCLASS_SRCRECT, PVRSRVSetDCSrcRectBW); - SetDispatchTableEntry(PVRSRV_BRIDGE_SET_DISPCLASS_DSTCOLOURKEY, PVRSRVSetDCDstColourKeyBW); - SetDispatchTableEntry(PVRSRV_BRIDGE_SET_DISPCLASS_SRCCOLOURKEY, PVRSRVSetDCSrcColourKeyBW); - SetDispatchTableEntry(PVRSRV_BRIDGE_GET_DISPCLASS_BUFFERS, PVRSRVGetDCBuffersBW); - SetDispatchTableEntry(PVRSRV_BRIDGE_SWAP_DISPCLASS_TO_BUFFER, PVRSRVSwapToDCBufferBW); - SetDispatchTableEntry(PVRSRV_BRIDGE_SWAP_DISPCLASS_TO_BUFFER2, PVRSRVSwapToDCBuffer2BW); - SetDispatchTableEntry(PVRSRV_BRIDGE_SWAP_DISPCLASS_TO_SYSTEM, PVRSRVSwapToDCSystemBW); - - - SetDispatchTableEntry(PVRSRV_BRIDGE_OPEN_BUFFERCLASS_DEVICE, PVRSRVOpenBCDeviceBW); - SetDispatchTableEntry(PVRSRV_BRIDGE_CLOSE_BUFFERCLASS_DEVICE, PVRSRVCloseBCDeviceBW); - SetDispatchTableEntry(PVRSRV_BRIDGE_GET_BUFFERCLASS_INFO, PVRSRVGetBCInfoBW); - SetDispatchTableEntry(PVRSRV_BRIDGE_GET_BUFFERCLASS_BUFFER, PVRSRVGetBCBufferBW); - - - SetDispatchTableEntry(PVRSRV_BRIDGE_WRAP_EXT_MEMORY, PVRSRVWrapExtMemoryBW); - SetDispatchTableEntry(PVRSRV_BRIDGE_UNWRAP_EXT_MEMORY, PVRSRVUnwrapExtMemoryBW); - - - SetDispatchTableEntry(PVRSRV_BRIDGE_ALLOC_SHARED_SYS_MEM, PVRSRVAllocSharedSysMemoryBW); - SetDispatchTableEntry(PVRSRV_BRIDGE_FREE_SHARED_SYS_MEM, PVRSRVFreeSharedSysMemoryBW); - SetDispatchTableEntry(PVRSRV_BRIDGE_MAP_MEMINFO_MEM, PVRSRVMapMemInfoMemBW); - - - SetDispatchTableEntry(PVRSRV_BRIDGE_GETMMU_PD_DEVPADDR, MMU_GetPDDevPAddrBW); - - - SetDispatchTableEntry(PVRSRV_BRIDGE_INITSRV_CONNECT, &PVRSRVInitSrvConnectBW); - SetDispatchTableEntry(PVRSRV_BRIDGE_INITSRV_DISCONNECT, &PVRSRVInitSrvDisconnectBW); + + SetDispatchTableEntry(PVRSRV_BRIDGE_GET_OEMJTABLE, DummyBW); + + + SetDispatchTableEntry(PVRSRV_BRIDGE_ENUM_CLASS, PVRSRVEnumerateDCBW); + + + SetDispatchTableEntry(PVRSRV_BRIDGE_OPEN_DISPCLASS_DEVICE, PVRSRVOpenDCDeviceBW); + SetDispatchTableEntry(PVRSRV_BRIDGE_CLOSE_DISPCLASS_DEVICE, PVRSRVCloseDCDeviceBW); + SetDispatchTableEntry(PVRSRV_BRIDGE_ENUM_DISPCLASS_FORMATS, PVRSRVEnumDCFormatsBW); + SetDispatchTableEntry(PVRSRV_BRIDGE_ENUM_DISPCLASS_DIMS, PVRSRVEnumDCDimsBW); + SetDispatchTableEntry(PVRSRV_BRIDGE_GET_DISPCLASS_SYSBUFFER, PVRSRVGetDCSystemBufferBW); + SetDispatchTableEntry(PVRSRV_BRIDGE_GET_DISPCLASS_INFO, PVRSRVGetDCInfoBW); + SetDispatchTableEntry(PVRSRV_BRIDGE_CREATE_DISPCLASS_SWAPCHAIN, PVRSRVCreateDCSwapChainBW); + SetDispatchTableEntry(PVRSRV_BRIDGE_DESTROY_DISPCLASS_SWAPCHAIN, PVRSRVDestroyDCSwapChainBW); + SetDispatchTableEntry(PVRSRV_BRIDGE_SET_DISPCLASS_DSTRECT, PVRSRVSetDCDstRectBW); + SetDispatchTableEntry(PVRSRV_BRIDGE_SET_DISPCLASS_SRCRECT, PVRSRVSetDCSrcRectBW); + SetDispatchTableEntry(PVRSRV_BRIDGE_SET_DISPCLASS_DSTCOLOURKEY, PVRSRVSetDCDstColourKeyBW); + SetDispatchTableEntry(PVRSRV_BRIDGE_SET_DISPCLASS_SRCCOLOURKEY, PVRSRVSetDCSrcColourKeyBW); + SetDispatchTableEntry(PVRSRV_BRIDGE_GET_DISPCLASS_BUFFERS, PVRSRVGetDCBuffersBW); + SetDispatchTableEntry(PVRSRV_BRIDGE_SWAP_DISPCLASS_TO_BUFFER, PVRSRVSwapToDCBufferBW); + SetDispatchTableEntry(PVRSRV_BRIDGE_SWAP_DISPCLASS_TO_BUFFER2, PVRSRVSwapToDCBuffer2BW); + SetDispatchTableEntry(PVRSRV_BRIDGE_SWAP_DISPCLASS_TO_SYSTEM, PVRSRVSwapToDCSystemBW); + + + SetDispatchTableEntry(PVRSRV_BRIDGE_OPEN_BUFFERCLASS_DEVICE, PVRSRVOpenBCDeviceBW); + SetDispatchTableEntry(PVRSRV_BRIDGE_CLOSE_BUFFERCLASS_DEVICE, PVRSRVCloseBCDeviceBW); + SetDispatchTableEntry(PVRSRV_BRIDGE_GET_BUFFERCLASS_INFO, PVRSRVGetBCInfoBW); + SetDispatchTableEntry(PVRSRV_BRIDGE_GET_BUFFERCLASS_BUFFER, PVRSRVGetBCBufferBW); + + + SetDispatchTableEntry(PVRSRV_BRIDGE_WRAP_EXT_MEMORY, PVRSRVWrapExtMemoryBW); + SetDispatchTableEntry(PVRSRV_BRIDGE_UNWRAP_EXT_MEMORY, PVRSRVUnwrapExtMemoryBW); + + + SetDispatchTableEntry(PVRSRV_BRIDGE_ALLOC_SHARED_SYS_MEM, PVRSRVAllocSharedSysMemoryBW); + SetDispatchTableEntry(PVRSRV_BRIDGE_FREE_SHARED_SYS_MEM, PVRSRVFreeSharedSysMemoryBW); + SetDispatchTableEntry(PVRSRV_BRIDGE_MAP_MEMINFO_MEM, PVRSRVMapMemInfoMemBW); - SetDispatchTableEntry(PVRSRV_BRIDGE_EVENT_OBJECT_WAIT, &PVRSRVEventObjectWaitBW); - SetDispatchTableEntry(PVRSRV_BRIDGE_EVENT_OBJECT_OPEN, &PVRSRVEventObjectOpenBW); - SetDispatchTableEntry(PVRSRV_BRIDGE_EVENT_OBJECT_CLOSE, &PVRSRVEventObjectCloseBW); - - SetDispatchTableEntry(PVRSRV_BRIDGE_CREATE_SYNC_INFO_MOD_OBJ, PVRSRVCreateSyncInfoModObjBW); - SetDispatchTableEntry(PVRSRV_BRIDGE_DESTROY_SYNC_INFO_MOD_OBJ, PVRSRVDestroySyncInfoModObjBW); - SetDispatchTableEntry(PVRSRV_BRIDGE_MODIFY_PENDING_SYNC_OPS, PVRSRVModifyPendingSyncOpsBW); - SetDispatchTableEntry(PVRSRV_BRIDGE_MODIFY_COMPLETE_SYNC_OPS, PVRSRVModifyCompleteSyncOpsBW); - SetDispatchTableEntry(PVRSRV_BRIDGE_SYNC_OPS_TAKE_TOKEN, PVRSRVSyncOpsTakeTokenBW); - SetDispatchTableEntry(PVRSRV_BRIDGE_SYNC_OPS_FLUSH_TO_TOKEN, PVRSRVSyncOpsFlushToTokenBW); - SetDispatchTableEntry(PVRSRV_BRIDGE_SYNC_OPS_FLUSH_TO_MOD_OBJ, PVRSRVSyncOpsFlushToModObjBW); - SetDispatchTableEntry(PVRSRV_BRIDGE_SYNC_OPS_FLUSH_TO_DELTA, PVRSRVSyncOpsFlushToDeltaBW); - SetDispatchTableEntry(PVRSRV_BRIDGE_ALLOC_SYNC_INFO, PVRSRVAllocSyncInfoBW); - SetDispatchTableEntry(PVRSRV_BRIDGE_FREE_SYNC_INFO, PVRSRVFreeSyncInfoBW); + SetDispatchTableEntry(PVRSRV_BRIDGE_GETMMU_PD_DEVPADDR, MMU_GetPDDevPAddrBW); + + + SetDispatchTableEntry(PVRSRV_BRIDGE_INITSRV_CONNECT, &PVRSRVInitSrvConnectBW); + SetDispatchTableEntry(PVRSRV_BRIDGE_INITSRV_DISCONNECT, &PVRSRVInitSrvDisconnectBW); + + + SetDispatchTableEntry(PVRSRV_BRIDGE_EVENT_OBJECT_WAIT, &PVRSRVEventObjectWaitBW); + SetDispatchTableEntry(PVRSRV_BRIDGE_EVENT_OBJECT_OPEN, &PVRSRVEventObjectOpenBW); + SetDispatchTableEntry(PVRSRV_BRIDGE_EVENT_OBJECT_CLOSE, &PVRSRVEventObjectCloseBW); + + SetDispatchTableEntry(PVRSRV_BRIDGE_CREATE_SYNC_INFO_MOD_OBJ, PVRSRVCreateSyncInfoModObjBW); + SetDispatchTableEntry(PVRSRV_BRIDGE_DESTROY_SYNC_INFO_MOD_OBJ, PVRSRVDestroySyncInfoModObjBW); + SetDispatchTableEntry(PVRSRV_BRIDGE_MODIFY_PENDING_SYNC_OPS, PVRSRVModifyPendingSyncOpsBW); + SetDispatchTableEntry(PVRSRV_BRIDGE_MODIFY_COMPLETE_SYNC_OPS, PVRSRVModifyCompleteSyncOpsBW); + SetDispatchTableEntry(PVRSRV_BRIDGE_SYNC_OPS_TAKE_TOKEN, PVRSRVSyncOpsTakeTokenBW); + SetDispatchTableEntry(PVRSRV_BRIDGE_SYNC_OPS_FLUSH_TO_TOKEN, PVRSRVSyncOpsFlushToTokenBW); + SetDispatchTableEntry(PVRSRV_BRIDGE_SYNC_OPS_FLUSH_TO_MOD_OBJ, PVRSRVSyncOpsFlushToModObjBW); + SetDispatchTableEntry(PVRSRV_BRIDGE_SYNC_OPS_FLUSH_TO_DELTA, PVRSRVSyncOpsFlushToDeltaBW); + SetDispatchTableEntry(PVRSRV_BRIDGE_ALLOC_SYNC_INFO, PVRSRVAllocSyncInfoBW); + SetDispatchTableEntry(PVRSRV_BRIDGE_FREE_SYNC_INFO, PVRSRVFreeSyncInfoBW); #if defined (SUPPORT_SGX) - SetSGXDispatchTableEntry(); + SetSGXDispatchTableEntry(); #endif #if defined (SUPPORT_VGX) - SetVGXDispatchTableEntry(); + SetVGXDispatchTableEntry(); #endif #if defined (SUPPORT_MSVDX) - SetMSVDXDispatchTableEntry(); + SetMSVDXDispatchTableEntry(); #endif - - - - for(i=0;i<BRIDGE_DISPATCH_TABLE_ENTRY_COUNT;i++) - { - if(!g_BridgeDispatchTable[i].pfFunction) - { - g_BridgeDispatchTable[i].pfFunction = &DummyBW; + + + for(i=0;i<BRIDGE_DISPATCH_TABLE_ENTRY_COUNT;i++) + { + if(!g_BridgeDispatchTable[i].pfFunction) + { + g_BridgeDispatchTable[i].pfFunction = &DummyBW; #if defined(DEBUG_BRIDGE_KM) - g_BridgeDispatchTable[i].pszIOCName = "_PVRSRV_BRIDGE_DUMMY"; - g_BridgeDispatchTable[i].pszFunctionName = "DummyBW"; - g_BridgeDispatchTable[i].ui32CallCount = 0; - g_BridgeDispatchTable[i].ui32CopyFromUserTotalBytes = 0; - g_BridgeDispatchTable[i].ui32CopyToUserTotalBytes = 0; + g_BridgeDispatchTable[i].pszIOCName = "_PVRSRV_BRIDGE_DUMMY"; + g_BridgeDispatchTable[i].pszFunctionName = "DummyBW"; + g_BridgeDispatchTable[i].ui32CallCount = 0; + g_BridgeDispatchTable[i].ui32CopyFromUserTotalBytes = 0; + g_BridgeDispatchTable[i].ui32CopyToUserTotalBytes = 0; #endif - } - } + } + } - return PVRSRV_OK; + return PVRSRV_OK; } IMG_INT BridgedDispatchKM(PVRSRV_PER_PROCESS_DATA * psPerProc, - PVRSRV_BRIDGE_PACKAGE * psBridgePackageKM) + PVRSRV_BRIDGE_PACKAGE * psBridgePackageKM) { - - IMG_VOID * psBridgeIn; - IMG_VOID * psBridgeOut; - BridgeWrapperFunction pfBridgeHandler; - IMG_UINT32 ui32BridgeID = psBridgePackageKM->ui32BridgeID; - IMG_INT err = -EFAULT; + IMG_VOID * psBridgeIn; + IMG_VOID * psBridgeOut; + BridgeWrapperFunction pfBridgeHandler; + IMG_UINT32 ui32BridgeID = psBridgePackageKM->ui32BridgeID; + IMG_INT err = -EFAULT; #if defined(DEBUG_TRACE_BRIDGE_KM) - PVR_DPF((PVR_DBG_ERROR, "%s: %s", - __FUNCTION__, - g_BridgeDispatchTable[ui32BridgeID].pszIOCName)); + PVR_DPF((PVR_DBG_ERROR, "%s: %s", + __FUNCTION__, + g_BridgeDispatchTable[ui32BridgeID].pszIOCName)); #endif #if defined(DEBUG_BRIDGE_KM) - g_BridgeDispatchTable[ui32BridgeID].ui32CallCount++; - g_BridgeGlobalStats.ui32IOCTLCount++; + g_BridgeDispatchTable[ui32BridgeID].ui32CallCount++; + g_BridgeGlobalStats.ui32IOCTLCount++; #endif - if(!psPerProc->bInitProcess) - { - if(PVRSRVGetInitServerState(PVRSRV_INIT_SERVER_RAN)) - { - if(!PVRSRVGetInitServerState(PVRSRV_INIT_SERVER_SUCCESSFUL)) - { - PVR_DPF((PVR_DBG_ERROR, "%s: Initialisation failed. Driver unusable.", - __FUNCTION__)); - goto return_fault; - } - } - else - { - if(PVRSRVGetInitServerState(PVRSRV_INIT_SERVER_RUNNING)) - { - PVR_DPF((PVR_DBG_ERROR, "%s: Initialisation is in progress", - __FUNCTION__)); - goto return_fault; - } - else - { - - switch(ui32BridgeID) - { - case PVRSRV_GET_BRIDGE_ID(PVRSRV_BRIDGE_CONNECT_SERVICES): - case PVRSRV_GET_BRIDGE_ID(PVRSRV_BRIDGE_DISCONNECT_SERVICES): - case PVRSRV_GET_BRIDGE_ID(PVRSRV_BRIDGE_INITSRV_CONNECT): - case PVRSRV_GET_BRIDGE_ID(PVRSRV_BRIDGE_INITSRV_DISCONNECT): - break; - default: - PVR_DPF((PVR_DBG_ERROR, "%s: Driver initialisation not completed yet.", - __FUNCTION__)); - goto return_fault; - } - } - } - } - - + if(!psPerProc->bInitProcess) + { + if(PVRSRVGetInitServerState(PVRSRV_INIT_SERVER_RAN)) + { + if(!PVRSRVGetInitServerState(PVRSRV_INIT_SERVER_SUCCESSFUL)) + { + PVR_DPF((PVR_DBG_ERROR, "%s: Initialisation failed. Driver unusable.", + __FUNCTION__)); + goto return_fault; + } + } + else + { + if(PVRSRVGetInitServerState(PVRSRV_INIT_SERVER_RUNNING)) + { + PVR_DPF((PVR_DBG_ERROR, "%s: Initialisation is in progress", + __FUNCTION__)); + goto return_fault; + } + else + { + + switch(ui32BridgeID) + { + case PVRSRV_GET_BRIDGE_ID(PVRSRV_BRIDGE_CONNECT_SERVICES): + case PVRSRV_GET_BRIDGE_ID(PVRSRV_BRIDGE_DISCONNECT_SERVICES): + case PVRSRV_GET_BRIDGE_ID(PVRSRV_BRIDGE_INITSRV_CONNECT): + case PVRSRV_GET_BRIDGE_ID(PVRSRV_BRIDGE_INITSRV_DISCONNECT): + break; + default: + PVR_DPF((PVR_DBG_ERROR, "%s: Driver initialisation not completed yet.", + __FUNCTION__)); + goto return_fault; + } + } + } + } #if defined(__linux__) - { - - SYS_DATA *psSysData; + { + + SYS_DATA *psSysData; - SysAcquireData(&psSysData); + SysAcquireData(&psSysData); - - psBridgeIn = ((ENV_DATA *)psSysData->pvEnvSpecificData)->pvBridgeData; - psBridgeOut = (IMG_PVOID)((IMG_PBYTE)psBridgeIn + PVRSRV_MAX_BRIDGE_IN_SIZE); + + psBridgeIn = ((ENV_DATA *)psSysData->pvEnvSpecificData)->pvBridgeData; + psBridgeOut = (IMG_PVOID)((IMG_PBYTE)psBridgeIn + PVRSRV_MAX_BRIDGE_IN_SIZE); - + #if defined(DEBUG) - PVR_ASSERT(psBridgePackageKM->ui32InBufferSize < PVRSRV_MAX_BRIDGE_IN_SIZE); - PVR_ASSERT(psBridgePackageKM->ui32OutBufferSize < PVRSRV_MAX_BRIDGE_OUT_SIZE); + PVR_ASSERT(psBridgePackageKM->ui32InBufferSize < PVRSRV_MAX_BRIDGE_IN_SIZE); + PVR_ASSERT(psBridgePackageKM->ui32OutBufferSize < PVRSRV_MAX_BRIDGE_OUT_SIZE); #endif - if(psBridgePackageKM->ui32InBufferSize > 0) - { - if(!OSAccessOK(PVR_VERIFY_READ, - psBridgePackageKM->pvParamIn, - psBridgePackageKM->ui32InBufferSize)) - { - PVR_DPF((PVR_DBG_ERROR, "%s: Invalid pvParamIn pointer", __FUNCTION__)); - } - - if(CopyFromUserWrapper(psPerProc, - ui32BridgeID, - psBridgeIn, - psBridgePackageKM->pvParamIn, - psBridgePackageKM->ui32InBufferSize) - != PVRSRV_OK) - { - goto return_fault; - } - } - } + if(psBridgePackageKM->ui32InBufferSize > 0) + { + if(!OSAccessOK(PVR_VERIFY_READ, + psBridgePackageKM->pvParamIn, + psBridgePackageKM->ui32InBufferSize)) + { + PVR_DPF((PVR_DBG_ERROR, "%s: Invalid pvParamIn pointer", __FUNCTION__)); + } + + if(CopyFromUserWrapper(psPerProc, + ui32BridgeID, + psBridgeIn, + psBridgePackageKM->pvParamIn, + psBridgePackageKM->ui32InBufferSize) + != PVRSRV_OK) + { + goto return_fault; + } + } + } #else - psBridgeIn = psBridgePackageKM->pvParamIn; - psBridgeOut = psBridgePackageKM->pvParamOut; + psBridgeIn = psBridgePackageKM->pvParamIn; + psBridgeOut = psBridgePackageKM->pvParamOut; #endif - if(ui32BridgeID >= (BRIDGE_DISPATCH_TABLE_ENTRY_COUNT)) - { - PVR_DPF((PVR_DBG_ERROR, "%s: ui32BridgeID = %d is out if range!", - __FUNCTION__, ui32BridgeID)); - goto return_fault; - } - pfBridgeHandler = - (BridgeWrapperFunction)g_BridgeDispatchTable[ui32BridgeID].pfFunction; - err = pfBridgeHandler(ui32BridgeID, - psBridgeIn, - psBridgeOut, - psPerProc); - if(err < 0) - { - goto return_fault; - } - + if(ui32BridgeID >= (BRIDGE_DISPATCH_TABLE_ENTRY_COUNT)) + { + PVR_DPF((PVR_DBG_ERROR, "%s: ui32BridgeID = %d is out if range!", + __FUNCTION__, ui32BridgeID)); + goto return_fault; + } + pfBridgeHandler = + (BridgeWrapperFunction)g_BridgeDispatchTable[ui32BridgeID].pfFunction; + err = pfBridgeHandler(ui32BridgeID, + psBridgeIn, + psBridgeOut, + psPerProc); + if(err < 0) + { + goto return_fault; + } #if defined(__linux__) - - if(CopyToUserWrapper(psPerProc, - ui32BridgeID, - psBridgePackageKM->pvParamOut, - psBridgeOut, - psBridgePackageKM->ui32OutBufferSize) - != PVRSRV_OK) - { - goto return_fault; - } + + if(CopyToUserWrapper(psPerProc, + ui32BridgeID, + psBridgePackageKM->pvParamOut, + psBridgeOut, + psBridgePackageKM->ui32OutBufferSize) + != PVRSRV_OK) + { + goto return_fault; + } #endif - err = 0; + err = 0; return_fault: - ReleaseHandleBatch(psPerProc); - return err; + ReleaseHandleBatch(psPerProc); + return err; } diff --git a/drivers/gpu/pvr/deviceclass.c b/drivers/gpu/pvr/deviceclass.c index 155650ec296..50344e57e82 100644 --- a/drivers/gpu/pvr/deviceclass.c +++ b/drivers/gpu/pvr/deviceclass.c @@ -1599,6 +1599,111 @@ Exit: IMG_EXPORT +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) +{ + DISPLAYCLASS_FLIP_COMMAND2 *psFlipCmd; + PVRSRV_DISPLAYCLASS_INFO *psDCInfo; + PVRSRV_DC_BUFFER *psBuffer; + PVRSRV_QUEUE_INFO *psQueue; + PVRSRV_COMMAND *psCommand; + PVRSRV_ERROR eError; + SYS_DATA *psSysData; + + if(!hDeviceKM || !hBuffer || !ppsMemInfos || !ppsSyncInfos || ui32NumMemSyncInfos < 1) + { + PVR_DPF((PVR_DBG_ERROR,"PVRSRVSwapToDCBuffer2KM: Invalid parameters")); + return PVRSRV_ERROR_INVALID_PARAMS; + } + + psBuffer = (PVRSRV_DC_BUFFER*)hBuffer; + psDCInfo = DCDeviceHandleToDCInfo(hDeviceKM); + + + if(ui32SwapInterval < psBuffer->psSwapChain->ui32MinSwapInterval || + ui32SwapInterval > psBuffer->psSwapChain->ui32MaxSwapInterval) + { + PVR_DPF((PVR_DBG_ERROR,"PVRSRVSwapToDCBuffer2KM: Invalid swap interval. Requested %u, Allowed range %u-%u", + ui32SwapInterval, psBuffer->psSwapChain->ui32MinSwapInterval, psBuffer->psSwapChain->ui32MaxSwapInterval)); + return PVRSRV_ERROR_INVALID_SWAPINTERVAL; + } + + + psQueue = psBuffer->psSwapChain->psQueue; + + + eError = PVRSRVInsertCommandKM (psQueue, + &psCommand, + psDCInfo->ui32DeviceID, + DC_FLIP_COMMAND, + 0, + IMG_NULL, + ui32NumMemSyncInfos, + ppsSyncInfos, + sizeof(DISPLAYCLASS_FLIP_COMMAND2)); + if(eError != PVRSRV_OK) + { + PVR_DPF((PVR_DBG_ERROR,"PVRSRVSwapToDCBuffer2KM: Failed to get space in queue")); + goto Exit; + } + + + psFlipCmd = (DISPLAYCLASS_FLIP_COMMAND2*)psCommand->pvData; + + + psFlipCmd->hExtDevice = psDCInfo->hExtDevice; + + + psFlipCmd->hExtSwapChain = psBuffer->psSwapChain->hExtSwapChain; + + + psFlipCmd->hExtBuffer = psBuffer->sDeviceClassBuffer.hExtBuffer; + + + psFlipCmd->ui32SwapInterval = ui32SwapInterval; + + + + + psFlipCmd->pvPrivData = pvPrivData; + psFlipCmd->ui32PrivDataLength = ui32PrivDataLength; + + + eError = PVRSRVSubmitCommandKM (psQueue, psCommand); + if (eError != PVRSRV_OK) + { + PVR_DPF((PVR_DBG_ERROR,"PVRSRVSwapToDCBuffer2KM: Failed to submit command")); + goto Exit; + } + + + + SysAcquireData(&psSysData); + eError = OSScheduleMISR(psSysData); + + if (eError != PVRSRV_OK) + { + PVR_DPF((PVR_DBG_ERROR,"PVRSRVSwapToDCBuffer2KM: Failed to schedule MISR")); + goto Exit; + } + +Exit: + if(eError == PVRSRV_ERROR_CANNOT_GET_QUEUE_SPACE) + { + eError = PVRSRV_ERROR_RETRY; + } + + return eError; +} + + +IMG_EXPORT PVRSRV_ERROR PVRSRVSwapToDCSystemKM(IMG_HANDLE hDeviceKM, IMG_HANDLE hSwapChainRef) { diff --git a/drivers/gpu/pvr/kerneldisplay.h b/drivers/gpu/pvr/kerneldisplay.h index 8db5e604f28..2b2829400d5 100644 --- a/drivers/gpu/pvr/kerneldisplay.h +++ b/drivers/gpu/pvr/kerneldisplay.h @@ -148,25 +148,30 @@ typedef struct DISPLAYCLASS_FLIP_COMMAND_TAG } DISPLAYCLASS_FLIP_COMMAND; + typedef struct DISPLAYCLASS_FLIP_COMMAND2_TAG { + IMG_HANDLE hExtDevice; + + IMG_HANDLE hExtSwapChain; + + IMG_HANDLE hExtBuffer; - IMG_HANDLE hPrivateTag; + + IMG_UINT32 ui32SwapInterval; - PVRSRV_KERNEL_MEM_INFO *ppsKernelMemInfos[10]; - PVRSRV_KERNEL_SYNC_INFO *ppsKernelSyncInfos[10]; - IMG_UINT32 ui32NumMemInfos; + + IMG_PVOID pvPrivData; - IMG_CHAR acPrivData[508]; + IMG_UINT32 ui32PrivDataLength; } DISPLAYCLASS_FLIP_COMMAND2; #define DC_FLIP_COMMAND 0 -#define DC_FLIP_COMMAND 0 #define DC_STATE_NO_FLUSH_COMMANDS 0 #define DC_STATE_FLUSH_COMMANDS 1 diff --git a/drivers/gpu/pvr/mmap.c b/drivers/gpu/pvr/mmap.c index 00c8b9d3d3f..9945873a307 100644 --- a/drivers/gpu/pvr/mmap.c +++ b/drivers/gpu/pvr/mmap.c @@ -39,6 +39,9 @@ #include <linux/wrapper.h> #endif #include <linux/slab.h> +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,26)) +#include <linux/highmem.h> +#endif #include <asm/io.h> #include <asm/page.h> #include <asm/shmparam.h> @@ -672,11 +675,70 @@ MMapVClose(struct vm_area_struct* ps_vma) LinuxUnLockMutex(&g_sMMapMutex); } +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,26)) +static int MMapVAccess(struct vm_area_struct *ps_vma, unsigned long addr, + void *buf, int len, int write) +{ + PKV_OFFSET_STRUCT psOffsetStruct; + LinuxMemArea *psLinuxMemArea; + unsigned long ulOffset; + int iRetVal = -EINVAL; + IMG_VOID *pvKernelAddr; + + LinuxLockMutex(&g_sMMapMutex); + + psOffsetStruct = (PKV_OFFSET_STRUCT)ps_vma->vm_private_data; + psLinuxMemArea = psOffsetStruct->psLinuxMemArea; + ulOffset = addr - ps_vma->vm_start; + + if (ulOffset+len > psLinuxMemArea->ui32ByteSize) + + goto exit_unlock; + + pvKernelAddr = LinuxMemAreaToCpuVAddr(psLinuxMemArea); + + if (pvKernelAddr) + { + memcpy(buf, pvKernelAddr+ulOffset, len); + iRetVal = len; + } + else + { + IMG_UINT32 pfn, ui32OffsetInPage; + struct page *page; + + pfn = LinuxMemAreaToCpuPFN(psLinuxMemArea, ulOffset); + + if (!pfn_valid(pfn)) + goto exit_unlock; + + page = pfn_to_page(pfn); + ui32OffsetInPage = ADDR_TO_PAGE_OFFSET(ulOffset); + + if (ui32OffsetInPage+len > PAGE_SIZE) + + goto exit_unlock; + + pvKernelAddr = kmap(page); + memcpy(buf, pvKernelAddr+ui32OffsetInPage, len); + kunmap(page); + + iRetVal = len; + } + +exit_unlock: + LinuxUnLockMutex(&g_sMMapMutex); + return iRetVal; +} +#endif static struct vm_operations_struct MMapIOOps = { .open=MMapVOpen, - .close=MMapVClose + .close=MMapVClose, +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,26)) + .access=MMapVAccess, +#endif }; diff --git a/drivers/gpu/pvr/omaplfb/omaplfb.h b/drivers/gpu/pvr/omaplfb/omaplfb.h index b816772b402..1664788b253 100644 --- a/drivers/gpu/pvr/omaplfb/omaplfb.h +++ b/drivers/gpu/pvr/omaplfb/omaplfb.h @@ -43,6 +43,14 @@ #include <linux/earlysuspend.h> #endif +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,38)) +#define OMAPLFB_CONSOLE_LOCK() console_lock() +#define OMAPLFB_CONSOLE_UNLOCK() console_unlock() +#else +#define OMAPLFB_CONSOLE_LOCK() acquire_console_sem() +#define OMAPLFB_CONSOLE_UNLOCK() release_console_sem() +#endif + #define unref__ __attribute__ ((unused)) typedef void * OMAPLFB_HANDLE; diff --git a/drivers/gpu/pvr/omaplfb/omaplfb_displayclass.c b/drivers/gpu/pvr/omaplfb/omaplfb_displayclass.c index 962dc3047b2..47d8a306976 100644 --- a/drivers/gpu/pvr/omaplfb/omaplfb_displayclass.c +++ b/drivers/gpu/pvr/omaplfb/omaplfb_displayclass.c @@ -830,7 +830,7 @@ static OMAPLFB_ERROR OMAPLFBInitFBDev(OMAPLFB_DEVINFO *psDevInfo) unsigned long ulLCM; unsigned uiFBDevID = psDevInfo->uiFBDevID; - acquire_console_sem(); + OMAPLFB_CONSOLE_LOCK(); psLINFBInfo = registered_fb[uiFBDevID]; if (psLINFBInfo == NULL) @@ -975,7 +975,7 @@ static OMAPLFB_ERROR OMAPLFBInitFBDev(OMAPLFB_DEVINFO *psDevInfo) ErrorModPut: module_put(psLINFBOwner); ErrorRelSem: - release_console_sem(); + OMAPLFB_CONSOLE_UNLOCK(); return eError; } @@ -985,7 +985,7 @@ static void OMAPLFBDeInitFBDev(OMAPLFB_DEVINFO *psDevInfo) struct fb_info *psLINFBInfo = psDevInfo->psLINFBInfo; struct module *psLINFBOwner; - acquire_console_sem(); + OMAPLFB_CONSOLE_LOCK(); psLINFBOwner = psLINFBInfo->fbops->owner; @@ -996,7 +996,7 @@ static void OMAPLFBDeInitFBDev(OMAPLFB_DEVINFO *psDevInfo) module_put(psLINFBOwner); - release_console_sem(); + OMAPLFB_CONSOLE_UNLOCK(); } static OMAPLFB_DEVINFO *OMAPLFBInitDev(unsigned uiFBDevID) diff --git a/drivers/gpu/pvr/omaplfb/omaplfb_linux.c b/drivers/gpu/pvr/omaplfb/omaplfb_linux.c index 7e247f5cb16..91e7372834b 100644 --- a/drivers/gpu/pvr/omaplfb/omaplfb_linux.c +++ b/drivers/gpu/pvr/omaplfb/omaplfb_linux.c @@ -213,11 +213,20 @@ static void WorkQueueHandler(struct work_struct *psWork) OMAPLFB_ERROR OMAPLFBCreateSwapQueue(OMAPLFB_SWAPCHAIN *psSwapChain) { +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,37)) + + psSwapChain->psWorkQueue = alloc_ordered_workqueue(DEVNAME, WQ_FREEZABLE | WQ_MEM_RECLAIM); +#else +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,36)) + psSwapChain->psWorkQueue = create_freezable_workqueue(DEVNAME); +#else psSwapChain->psWorkQueue = __create_workqueue(DEVNAME, 1, 1, 1); +#endif +#endif if (psSwapChain->psWorkQueue == NULL) { - printk(KERN_ERR DRIVER_PREFIX ": %s: Device %u: create_singlethreaded_workqueue failed\n", __FUNCTION__, psSwapChain->uiFBDevID); + printk(KERN_ERR DRIVER_PREFIX ": %s: Device %u: Couldn't create workqueue\n", __FUNCTION__, psSwapChain->uiFBDevID); return (OMAPLFB_ERROR_INIT_FAILURE); } @@ -241,7 +250,7 @@ void OMAPLFBFlip(OMAPLFB_DEVINFO *psDevInfo, OMAPLFB_BUFFER *psBuffer) int res; unsigned long ulYResVirtual; - acquire_console_sem(); + OMAPLFB_CONSOLE_LOCK(); sFBVar = psDevInfo->psLINFBInfo->var; @@ -277,7 +286,7 @@ void OMAPLFBFlip(OMAPLFB_DEVINFO *psDevInfo, OMAPLFB_BUFFER *psBuffer) } } #endif - release_console_sem(); + OMAPLFB_CONSOLE_UNLOCK(); } #if !defined(PVR_OMAPLFB_DRM_FB) || defined(DEBUG) @@ -691,9 +700,9 @@ OMAPLFB_ERROR OMAPLFBUnblankDisplay(OMAPLFB_DEVINFO *psDevInfo) { int res; - acquire_console_sem(); + OMAPLFB_CONSOLE_LOCK(); res = fb_blank(psDevInfo->psLINFBInfo, 0); - release_console_sem(); + OMAPLFB_CONSOLE_UNLOCK(); if (res != 0 && res != -EINVAL) { printk(KERN_ERR DRIVER_PREFIX @@ -708,9 +717,9 @@ OMAPLFB_ERROR OMAPLFBUnblankDisplay(OMAPLFB_DEVINFO *psDevInfo) static void OMAPLFBBlankDisplay(OMAPLFB_DEVINFO *psDevInfo) { - acquire_console_sem(); + OMAPLFB_CONSOLE_LOCK(); fb_blank(psDevInfo->psLINFBInfo, 1); - release_console_sem(); + OMAPLFB_CONSOLE_UNLOCK(); } static void OMAPLFBEarlySuspendHandler(struct early_suspend *h) @@ -941,9 +950,9 @@ int PVR_DRM_MAKENAME(DISPLAY_CONTROLLER, _Ioctl)(struct drm_device unref__ *dev, flush_workqueue(psDevInfo->psSwapChain->psWorkQueue); } - acquire_console_sem(); + OMAPLFB_CONSOLE_LOCK(); ret = fb_blank(psDevInfo->psLINFBInfo, iFBMode); - release_console_sem(); + OMAPLFB_CONSOLE_UNLOCK(); OMAPLFBCreateSwapChainUnLock(psDevInfo); diff --git a/drivers/gpu/pvr/osfunc.c b/drivers/gpu/pvr/osfunc.c index 893af342441..2fc65c9dd39 100644 --- a/drivers/gpu/pvr/osfunc.c +++ b/drivers/gpu/pvr/osfunc.c @@ -1796,8 +1796,12 @@ static TIMER_CALLBACK_DATA sTimers[OS_MAX_TIMERS]; #if defined(PVR_LINUX_TIMERS_USING_WORKQUEUES) || defined(PVR_LINUX_TIMERS_USING_SHARED_WORKQUEUE) DEFINE_MUTEX(sTimerStructLock); #else +#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,39)) static spinlock_t sTimerStructLock = SPIN_LOCK_UNLOCKED; +#else +static DEFINE_SPINLOCK(sTimerStructLock); +#endif #endif static void OSTimerCallbackBody(TIMER_CALLBACK_DATA *psTimerCBData) @@ -2691,7 +2695,12 @@ error: } typedef void (*InnerCacheOp_t)(const void *pvStart, const void *pvEnd); + +#if defined(__arm__) && (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,39)) +typedef void (*OuterCacheOp_t)(phys_addr_t uStart, phys_addr_t uEnd); +#else typedef void (*OuterCacheOp_t)(unsigned long ulStart, unsigned long ulEnd); +#endif #if defined(CONFIG_OUTER_CACHE) @@ -3018,10 +3027,12 @@ IMG_VOID OSFlushCPUCacheKM(IMG_VOID) #endif } +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,34)) static inline size_t pvr_dmac_range_len(const void *pvStart, const void *pvEnd) { return (size_t)((char *)pvEnd - (char *)pvStart); } +#endif static void pvr_dmac_inv_range(const void *pvStart, const void *pvEnd) { diff --git a/drivers/gpu/pvr/pvr_bridge.h b/drivers/gpu/pvr/pvr_bridge.h index 3405c0c4319..4fdbd55ea05 100644 --- a/drivers/gpu/pvr/pvr_bridge.h +++ b/drivers/gpu/pvr/pvr_bridge.h @@ -1174,6 +1174,26 @@ typedef struct PVRSRV_BRIDGE_IN_SWAP_DISPCLASS_TO_BUFFER_TAG } PVRSRV_BRIDGE_IN_SWAP_DISPCLASS_TO_BUFFER; +typedef struct PVRSRV_BRIDGE_IN_SWAP_DISPCLASS_TO_BUFFER2_TAG +{ + IMG_UINT32 ui32BridgeFlags; +#if defined (SUPPORT_SID_INTERFACE) + IMG_SID hDeviceKM; + IMG_SID hBuffer; +#else + IMG_HANDLE hDeviceKM; + IMG_HANDLE hBuffer; +#endif + IMG_UINT32 ui32SwapInterval; + + IMG_UINT32 ui32NumMemInfos; + PVRSRV_KERNEL_MEM_INFO **ppsKernelMemInfos; + PVRSRV_KERNEL_SYNC_INFO **ppsKernelSyncInfos; + + IMG_UINT32 ui32PrivDataLength; + IMG_PVOID pvPrivData; + +} PVRSRV_BRIDGE_IN_SWAP_DISPCLASS_TO_BUFFER2; typedef struct PVRSRV_BRIDGE_IN_SWAP_DISPCLASS_TO_BUFFER2_TAG { diff --git a/drivers/gpu/pvr/pvr_bridge_km.h b/drivers/gpu/pvr/pvr_bridge_km.h index 4c5753b9376..d76e287c4bf 100644 --- a/drivers/gpu/pvr/pvr_bridge_km.h +++ b/drivers/gpu/pvr/pvr_bridge_km.h @@ -233,14 +233,13 @@ PVRSRV_ERROR PVRSRVSwapToDCBufferKM(IMG_HANDLE hDeviceKM, IMG_RECT *psClipRect); IMG_IMPORT PVRSRV_ERROR PVRSRVSwapToDCBuffer2KM(IMG_HANDLE hDeviceKM, - IMG_HANDLE hBuffer, - IMG_UINT32 ui32SwapInterval, - IMG_HANDLE hPrivateTag, - PVRSRV_KERNEL_MEM_INFO **ppsMemInfos, - PVRSRV_KERNEL_SYNC_INFO **ppsSyncInfos, - IMG_UINT32 ui32NumMemSyncInfos, - IMG_PVOID pvPrivData, - IMG_UINT32 ui32PrivDataLength); + 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); diff --git a/drivers/gpu/pvr/pvr_debug.c b/drivers/gpu/pvr/pvr_debug.c index c114e5f80de..9f0016f9a15 100644 --- a/drivers/gpu/pvr/pvr_debug.c +++ b/drivers/gpu/pvr/pvr_debug.c @@ -49,6 +49,10 @@ #include "linkage.h" #include "pvr_uaccess.h" +#if !defined(CONFIG_PREEMPT) +#define PVR_DEBUG_ALWAYS_USE_SPINLOCK +#endif + static IMG_BOOL VBAppend(IMG_CHAR *pszBuf, IMG_UINT32 ui32BufSiz, const IMG_CHAR* pszFormat, va_list VArgs) IMG_FORMAT_PRINTF(3, 0); @@ -69,55 +73,77 @@ IMG_UINT32 gPVRDebugLevel = #define PVR_MAX_MSG_LEN PVR_MAX_DEBUG_MESSAGE_LEN +#if !defined(PVR_DEBUG_ALWAYS_USE_SPINLOCK) static IMG_CHAR gszBufferNonIRQ[PVR_MAX_MSG_LEN + 1]; +#endif static IMG_CHAR gszBufferIRQ[PVR_MAX_MSG_LEN + 1]; +#if !defined(PVR_DEBUG_ALWAYS_USE_SPINLOCK) static PVRSRV_LINUX_MUTEX gsDebugMutexNonIRQ; +#endif +#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,39)) static spinlock_t gsDebugLockIRQ = SPIN_LOCK_UNLOCKED; +#else +static DEFINE_SPINLOCK(gsDebugLockIRQ); +#endif +#if !defined(PVR_DEBUG_ALWAYS_USE_SPINLOCK) #if !defined (USE_SPIN_LOCK) #define USE_SPIN_LOCK (in_interrupt() || !preemptible()) #endif +#endif static inline void GetBufferLock(unsigned long *pulLockFlags) { +#if !defined(PVR_DEBUG_ALWAYS_USE_SPINLOCK) if (USE_SPIN_LOCK) +#endif { spin_lock_irqsave(&gsDebugLockIRQ, *pulLockFlags); } +#if !defined(PVR_DEBUG_ALWAYS_USE_SPINLOCK) else { LinuxLockMutex(&gsDebugMutexNonIRQ); } +#endif } static inline void ReleaseBufferLock(unsigned long ulLockFlags) { +#if !defined(PVR_DEBUG_ALWAYS_USE_SPINLOCK) if (USE_SPIN_LOCK) +#endif { spin_unlock_irqrestore(&gsDebugLockIRQ, ulLockFlags); } +#if !defined(PVR_DEBUG_ALWAYS_USE_SPINLOCK) else { LinuxUnLockMutex(&gsDebugMutexNonIRQ); } +#endif } static inline void SelectBuffer(IMG_CHAR **ppszBuf, IMG_UINT32 *pui32BufSiz) { +#if !defined(PVR_DEBUG_ALWAYS_USE_SPINLOCK) if (USE_SPIN_LOCK) +#endif { *ppszBuf = gszBufferIRQ; *pui32BufSiz = sizeof(gszBufferIRQ); } +#if !defined(PVR_DEBUG_ALWAYS_USE_SPINLOCK) else { *ppszBuf = gszBufferNonIRQ; *pui32BufSiz = sizeof(gszBufferNonIRQ); } +#endif } static IMG_BOOL VBAppend(IMG_CHAR *pszBuf, IMG_UINT32 ui32BufSiz, const IMG_CHAR* pszFormat, va_list VArgs) @@ -139,7 +165,9 @@ static IMG_BOOL VBAppend(IMG_CHAR *pszBuf, IMG_UINT32 ui32BufSiz, const IMG_CHAR IMG_VOID PVRDPFInit(IMG_VOID) { +#if !defined(PVR_DEBUG_ALWAYS_USE_SPINLOCK) LinuxInitMutex(&gsDebugMutexNonIRQ); +#endif } IMG_VOID PVRSRVReleasePrintf(const IMG_CHAR *pszFormat, ...) diff --git a/drivers/gpu/pvr/pvrversion.h b/drivers/gpu/pvr/pvrversion.h index f5633486808..24c448690e4 100644 --- a/drivers/gpu/pvr/pvrversion.h +++ b/drivers/gpu/pvr/pvrversion.h @@ -30,8 +30,8 @@ #define PVRVERSION_MAJ 1 #define PVRVERSION_MIN 8 #define PVRVERSION_BRANCH 18 -#define PVRVERSION_BUILD 468 -#define PVRVERSION_STRING "1.8.18.468" +#define PVRVERSION_BUILD 571 +#define PVRVERSION_STRING "1.8.18.571" #define PVRVERSION_FILE "eurasiacon.pj" #endif diff --git a/drivers/gpu/pvr/services.h b/drivers/gpu/pvr/services.h index c61313a5f11..f48bfc43ed3 100644 --- a/drivers/gpu/pvr/services.h +++ b/drivers/gpu/pvr/services.h @@ -819,6 +819,19 @@ PVRSRV_ERROR IMG_CALLCONV PVRSRVSwapToDCBuffer (IMG_HANDLE hDevice, #endif IMG_IMPORT +PVRSRV_ERROR IMG_CALLCONV PVRSRVSwapToDCBuffer2 (IMG_HANDLE hDevice, +#if defined (SUPPORT_SID_INTERFACE) + IMG_SID hBuffer, +#else + IMG_HANDLE hBuffer, +#endif + IMG_UINT32 ui32SwapInterval, + PVRSRV_CLIENT_MEM_INFO **ppsMemInfos, + IMG_UINT32 ui32NumMemInfos, + IMG_PVOID pvPrivData, + IMG_UINT32 ui32PrivDataLength); + +IMG_IMPORT PVRSRV_ERROR IMG_CALLCONV PVRSRVSwapToDCSystem (IMG_HANDLE hDevice, #if defined (SUPPORT_SID_INTERFACE) IMG_SID hSwapChain); diff --git a/drivers/gpu/pvr/sgx545defs.h b/drivers/gpu/pvr/sgx545defs.h new file mode 100644 index 00000000000..4dc7f3caa23 --- /dev/null +++ b/drivers/gpu/pvr/sgx545defs.h @@ -0,0 +1,1180 @@ +/********************************************************************** + * + * Copyright (C) Imagination Technologies Ltd. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms and conditions of the GNU General Public License, + * version 2, as published by the Free Software Foundation. + * + * This program is distributed in the hope it will be useful but, except + * as otherwise stated in writing, without any warranty; without even the + * implied warranty of merchantability or fitness for a particular purpose. + * See the GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along with + * this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA. + * + * The full GNU General Public License is included in this distribution in + * the file called "COPYING". + * + * Contact Information: + * Imagination Technologies Ltd. <gpl-support@imgtec.com> + * Home Park Estate, Kings Langley, Herts, WD4 8LZ, UK + * + ******************************************************************************/ + +#ifndef _SGX545DEFS_KM_H_ +#define _SGX545DEFS_KM_H_ + +#define EUR_CR_CLKGATECTL 0x0000 +#define EUR_CR_CLKGATECTL_ISP_CLKG_MASK 0x00000003U +#define EUR_CR_CLKGATECTL_ISP_CLKG_SHIFT 0 +#define EUR_CR_CLKGATECTL_ISP_CLKG_SIGNED 0 +#define EUR_CR_CLKGATECTL_ISP2_CLKG_MASK 0x0000000CU +#define EUR_CR_CLKGATECTL_ISP2_CLKG_SHIFT 2 +#define EUR_CR_CLKGATECTL_ISP2_CLKG_SIGNED 0 +#define EUR_CR_CLKGATECTL_TSP_CLKG_MASK 0x00000030U +#define EUR_CR_CLKGATECTL_TSP_CLKG_SHIFT 4 +#define EUR_CR_CLKGATECTL_TSP_CLKG_SIGNED 0 +#define EUR_CR_CLKGATECTL_TE_CLKG_MASK 0x000000C0U +#define EUR_CR_CLKGATECTL_TE_CLKG_SHIFT 6 +#define EUR_CR_CLKGATECTL_TE_CLKG_SIGNED 0 +#define EUR_CR_CLKGATECTL_MTE_CLKG_MASK 0x00000300U +#define EUR_CR_CLKGATECTL_MTE_CLKG_SHIFT 8 +#define EUR_CR_CLKGATECTL_MTE_CLKG_SIGNED 0 +#define EUR_CR_CLKGATECTL_DPM_CLKG_MASK 0x00000C00U +#define EUR_CR_CLKGATECTL_DPM_CLKG_SHIFT 10 +#define EUR_CR_CLKGATECTL_DPM_CLKG_SIGNED 0 +#define EUR_CR_CLKGATECTL_VDM_CLKG_MASK 0x00003000U +#define EUR_CR_CLKGATECTL_VDM_CLKG_SHIFT 12 +#define EUR_CR_CLKGATECTL_VDM_CLKG_SIGNED 0 +#define EUR_CR_CLKGATECTL_PDS0_CLKG_MASK 0x0000C000U +#define EUR_CR_CLKGATECTL_PDS0_CLKG_SHIFT 14 +#define EUR_CR_CLKGATECTL_PDS0_CLKG_SIGNED 0 +#define EUR_CR_CLKGATECTL_AUTO_MAN_REG_MASK 0x01000000U +#define EUR_CR_CLKGATECTL_AUTO_MAN_REG_SHIFT 24 +#define EUR_CR_CLKGATECTL_AUTO_MAN_REG_SIGNED 0 +#define EUR_CR_CLKGATECTL2 0x0004 +#define EUR_CR_CLKGATECTL2_PBE_CLKG_MASK 0x00000003U +#define EUR_CR_CLKGATECTL2_PBE_CLKG_SHIFT 0 +#define EUR_CR_CLKGATECTL2_PBE_CLKG_SIGNED 0 +#define EUR_CR_CLKGATECTL2_CACHEL2_CLKG_MASK 0x0000000CU +#define EUR_CR_CLKGATECTL2_CACHEL2_CLKG_SHIFT 2 +#define EUR_CR_CLKGATECTL2_CACHEL2_CLKG_SIGNED 0 +#define EUR_CR_CLKGATECTL2_UCACHEL2_CLKG_MASK 0x00000030U +#define EUR_CR_CLKGATECTL2_UCACHEL2_CLKG_SHIFT 4 +#define EUR_CR_CLKGATECTL2_UCACHEL2_CLKG_SIGNED 0 +#define EUR_CR_CLKGATECTL2_USE0_CLKG_MASK 0x000000C0U +#define EUR_CR_CLKGATECTL2_USE0_CLKG_SHIFT 6 +#define EUR_CR_CLKGATECTL2_USE0_CLKG_SIGNED 0 +#define EUR_CR_CLKGATECTL2_ITR0_CLKG_MASK 0x00000300U +#define EUR_CR_CLKGATECTL2_ITR0_CLKG_SHIFT 8 +#define EUR_CR_CLKGATECTL2_ITR0_CLKG_SIGNED 0 +#define EUR_CR_CLKGATECTL2_TEX0_CLKG_MASK 0x00000C00U +#define EUR_CR_CLKGATECTL2_TEX0_CLKG_SHIFT 10 +#define EUR_CR_CLKGATECTL2_TEX0_CLKG_SIGNED 0 +#define EUR_CR_CLKGATECTL2_MADD0_CLKG_MASK 0x00003000U +#define EUR_CR_CLKGATECTL2_MADD0_CLKG_SHIFT 12 +#define EUR_CR_CLKGATECTL2_MADD0_CLKG_SIGNED 0 +#define EUR_CR_CLKGATECTL2_USE1_CLKG_MASK 0x0000C000U +#define EUR_CR_CLKGATECTL2_USE1_CLKG_SHIFT 14 +#define EUR_CR_CLKGATECTL2_USE1_CLKG_SIGNED 0 +#define EUR_CR_CLKGATECTL2_ITR1_CLKG_MASK 0x00030000U +#define EUR_CR_CLKGATECTL2_ITR1_CLKG_SHIFT 16 +#define EUR_CR_CLKGATECTL2_ITR1_CLKG_SIGNED 0 +#define EUR_CR_CLKGATECTL2_TEX1_CLKG_MASK 0x000C0000U +#define EUR_CR_CLKGATECTL2_TEX1_CLKG_SHIFT 18 +#define EUR_CR_CLKGATECTL2_TEX1_CLKG_SIGNED 0 +#define EUR_CR_CLKGATECTL2_MADD1_CLKG_MASK 0x00300000U +#define EUR_CR_CLKGATECTL2_MADD1_CLKG_SHIFT 20 +#define EUR_CR_CLKGATECTL2_MADD1_CLKG_SIGNED 0 +#define EUR_CR_CLKGATECTL2_PDS1_CLKG_MASK 0x00C00000U +#define EUR_CR_CLKGATECTL2_PDS1_CLKG_SHIFT 22 +#define EUR_CR_CLKGATECTL2_PDS1_CLKG_SIGNED 0 +#define EUR_CR_CLKGATESTATUS 0x0008 +#define EUR_CR_CLKGATESTATUS_ISP_CLKS_MASK 0x00000001U +#define EUR_CR_CLKGATESTATUS_ISP_CLKS_SHIFT 0 +#define EUR_CR_CLKGATESTATUS_ISP_CLKS_SIGNED 0 +#define EUR_CR_CLKGATESTATUS_ISP2_CLKS_MASK 0x00000002U +#define EUR_CR_CLKGATESTATUS_ISP2_CLKS_SHIFT 1 +#define EUR_CR_CLKGATESTATUS_ISP2_CLKS_SIGNED 0 +#define EUR_CR_CLKGATESTATUS_TSP_CLKS_MASK 0x00000004U +#define EUR_CR_CLKGATESTATUS_TSP_CLKS_SHIFT 2 +#define EUR_CR_CLKGATESTATUS_TSP_CLKS_SIGNED 0 +#define EUR_CR_CLKGATESTATUS_TE_CLKS_MASK 0x00000008U +#define EUR_CR_CLKGATESTATUS_TE_CLKS_SHIFT 3 +#define EUR_CR_CLKGATESTATUS_TE_CLKS_SIGNED 0 +#define EUR_CR_CLKGATESTATUS_MTE_CLKS_MASK 0x00000010U +#define EUR_CR_CLKGATESTATUS_MTE_CLKS_SHIFT 4 +#define EUR_CR_CLKGATESTATUS_MTE_CLKS_SIGNED 0 +#define EUR_CR_CLKGATESTATUS_DPM_CLKS_MASK 0x00000020U +#define EUR_CR_CLKGATESTATUS_DPM_CLKS_SHIFT 5 +#define EUR_CR_CLKGATESTATUS_DPM_CLKS_SIGNED 0 +#define EUR_CR_CLKGATESTATUS_VDM_CLKS_MASK 0x00000040U +#define EUR_CR_CLKGATESTATUS_VDM_CLKS_SHIFT 6 +#define EUR_CR_CLKGATESTATUS_VDM_CLKS_SIGNED 0 +#define EUR_CR_CLKGATESTATUS_PDS0_CLKS_MASK 0x00000080U +#define EUR_CR_CLKGATESTATUS_PDS0_CLKS_SHIFT 7 +#define EUR_CR_CLKGATESTATUS_PDS0_CLKS_SIGNED 0 +#define EUR_CR_CLKGATESTATUS_PBE_CLKS_MASK 0x00000100U +#define EUR_CR_CLKGATESTATUS_PBE_CLKS_SHIFT 8 +#define EUR_CR_CLKGATESTATUS_PBE_CLKS_SIGNED 0 +#define EUR_CR_CLKGATESTATUS_CACHEL2_CLKS_MASK 0x00000200U +#define EUR_CR_CLKGATESTATUS_CACHEL2_CLKS_SHIFT 9 +#define EUR_CR_CLKGATESTATUS_CACHEL2_CLKS_SIGNED 0 +#define EUR_CR_CLKGATESTATUS_UCACHEL2_CLKS_MASK 0x00000400U +#define EUR_CR_CLKGATESTATUS_UCACHEL2_CLKS_SHIFT 10 +#define EUR_CR_CLKGATESTATUS_UCACHEL2_CLKS_SIGNED 0 +#define EUR_CR_CLKGATESTATUS_USE0_CLKS_MASK 0x00000800U +#define EUR_CR_CLKGATESTATUS_USE0_CLKS_SHIFT 11 +#define EUR_CR_CLKGATESTATUS_USE0_CLKS_SIGNED 0 +#define EUR_CR_CLKGATESTATUS_ITR0_CLKS_MASK 0x00001000U +#define EUR_CR_CLKGATESTATUS_ITR0_CLKS_SHIFT 12 +#define EUR_CR_CLKGATESTATUS_ITR0_CLKS_SIGNED 0 +#define EUR_CR_CLKGATESTATUS_TEX0_CLKS_MASK 0x00002000U +#define EUR_CR_CLKGATESTATUS_TEX0_CLKS_SHIFT 13 +#define EUR_CR_CLKGATESTATUS_TEX0_CLKS_SIGNED 0 +#define EUR_CR_CLKGATESTATUS_MADD0_CLKS_MASK 0x00004000U +#define EUR_CR_CLKGATESTATUS_MADD0_CLKS_SHIFT 14 +#define EUR_CR_CLKGATESTATUS_MADD0_CLKS_SIGNED 0 +#define EUR_CR_CLKGATESTATUS_USE1_CLKS_MASK 0x00008000U +#define EUR_CR_CLKGATESTATUS_USE1_CLKS_SHIFT 15 +#define EUR_CR_CLKGATESTATUS_USE1_CLKS_SIGNED 0 +#define EUR_CR_CLKGATESTATUS_ITR1_CLKS_MASK 0x00010000U +#define EUR_CR_CLKGATESTATUS_ITR1_CLKS_SHIFT 16 +#define EUR_CR_CLKGATESTATUS_ITR1_CLKS_SIGNED 0 +#define EUR_CR_CLKGATESTATUS_TEX1_CLKS_MASK 0x00020000U +#define EUR_CR_CLKGATESTATUS_TEX1_CLKS_SHIFT 17 +#define EUR_CR_CLKGATESTATUS_TEX1_CLKS_SIGNED 0 +#define EUR_CR_CLKGATESTATUS_MADD1_CLKS_MASK 0x00040000U +#define EUR_CR_CLKGATESTATUS_MADD1_CLKS_SHIFT 18 +#define EUR_CR_CLKGATESTATUS_MADD1_CLKS_SIGNED 0 +#define EUR_CR_CLKGATESTATUS_PDS1_CLKS_MASK 0x00080000U +#define EUR_CR_CLKGATESTATUS_PDS1_CLKS_SHIFT 19 +#define EUR_CR_CLKGATESTATUS_PDS1_CLKS_SIGNED 0 +#define EUR_CR_CLKGATECTLOVR 0x000C +#define EUR_CR_CLKGATECTLOVR_ISP_CLKO_MASK 0x00000003U +#define EUR_CR_CLKGATECTLOVR_ISP_CLKO_SHIFT 0 +#define EUR_CR_CLKGATECTLOVR_ISP_CLKO_SIGNED 0 +#define EUR_CR_CLKGATECTLOVR_ISP2_CLKO_MASK 0x0000000CU +#define EUR_CR_CLKGATECTLOVR_ISP2_CLKO_SHIFT 2 +#define EUR_CR_CLKGATECTLOVR_ISP2_CLKO_SIGNED 0 +#define EUR_CR_CLKGATECTLOVR_TSP_CLKO_MASK 0x00000030U +#define EUR_CR_CLKGATECTLOVR_TSP_CLKO_SHIFT 4 +#define EUR_CR_CLKGATECTLOVR_TSP_CLKO_SIGNED 0 +#define EUR_CR_CLKGATECTLOVR_TE_CLKO_MASK 0x000000C0U +#define EUR_CR_CLKGATECTLOVR_TE_CLKO_SHIFT 6 +#define EUR_CR_CLKGATECTLOVR_TE_CLKO_SIGNED 0 +#define EUR_CR_CLKGATECTLOVR_MTE_CLKO_MASK 0x00000300U +#define EUR_CR_CLKGATECTLOVR_MTE_CLKO_SHIFT 8 +#define EUR_CR_CLKGATECTLOVR_MTE_CLKO_SIGNED 0 +#define EUR_CR_CLKGATECTLOVR_DPM_CLKO_MASK 0x00000C00U +#define EUR_CR_CLKGATECTLOVR_DPM_CLKO_SHIFT 10 +#define EUR_CR_CLKGATECTLOVR_DPM_CLKO_SIGNED 0 +#define EUR_CR_CLKGATECTLOVR_VDM_CLKO_MASK 0x00003000U +#define EUR_CR_CLKGATECTLOVR_VDM_CLKO_SHIFT 12 +#define EUR_CR_CLKGATECTLOVR_VDM_CLKO_SIGNED 0 +#define EUR_CR_CLKGATECTLOVR_PDS0_CLKO_MASK 0x0000C000U +#define EUR_CR_CLKGATECTLOVR_PDS0_CLKO_SHIFT 14 +#define EUR_CR_CLKGATECTLOVR_PDS0_CLKO_SIGNED 0 +#define EUR_CR_CORE_ID 0x001C +#define EUR_CR_CORE_ID_CONFIG_MASK 0x0000FFFFU +#define EUR_CR_CORE_ID_CONFIG_SHIFT 0 +#define EUR_CR_CORE_ID_CONFIG_SIGNED 0 +#define EUR_CR_CORE_ID_ID_MASK 0xFFFF0000U +#define EUR_CR_CORE_ID_ID_SHIFT 16 +#define EUR_CR_CORE_ID_ID_SIGNED 0 +#define EUR_CR_CORE_REVISION 0x0020 +#define EUR_CR_CORE_REVISION_MAINTENANCE_MASK 0x000000FFU +#define EUR_CR_CORE_REVISION_MAINTENANCE_SHIFT 0 +#define EUR_CR_CORE_REVISION_MAINTENANCE_SIGNED 0 +#define EUR_CR_CORE_REVISION_MINOR_MASK 0x0000FF00U +#define EUR_CR_CORE_REVISION_MINOR_SHIFT 8 +#define EUR_CR_CORE_REVISION_MINOR_SIGNED 0 +#define EUR_CR_CORE_REVISION_MAJOR_MASK 0x00FF0000U +#define EUR_CR_CORE_REVISION_MAJOR_SHIFT 16 +#define EUR_CR_CORE_REVISION_MAJOR_SIGNED 0 +#define EUR_CR_CORE_REVISION_DESIGNER_MASK 0xFF000000U +#define EUR_CR_CORE_REVISION_DESIGNER_SHIFT 24 +#define EUR_CR_CORE_REVISION_DESIGNER_SIGNED 0 +#define EUR_CR_DESIGNER_REV_FIELD1 0x0024 +#define EUR_CR_DESIGNER_REV_FIELD1_DESIGNER_REV_FIELD1_MASK 0xFFFFFFFFU +#define EUR_CR_DESIGNER_REV_FIELD1_DESIGNER_REV_FIELD1_SHIFT 0 +#define EUR_CR_DESIGNER_REV_FIELD1_DESIGNER_REV_FIELD1_SIGNED 0 +#define EUR_CR_DESIGNER_REV_FIELD2 0x002C +#define EUR_CR_DESIGNER_REV_FIELD2_DESIGNER_REV_FIELD2_MASK 0xFFFFFFFFU +#define EUR_CR_DESIGNER_REV_FIELD2_DESIGNER_REV_FIELD2_SHIFT 0 +#define EUR_CR_DESIGNER_REV_FIELD2_DESIGNER_REV_FIELD2_SIGNED 0 +#define EUR_CR_SOFT_RESET 0x0080 +#define EUR_CR_SOFT_RESET_BIF_RESET_MASK 0x00000001U +#define EUR_CR_SOFT_RESET_BIF_RESET_SHIFT 0 +#define EUR_CR_SOFT_RESET_BIF_RESET_SIGNED 0 +#define EUR_CR_SOFT_RESET_DPM_RESET_MASK 0x00000002U +#define EUR_CR_SOFT_RESET_DPM_RESET_SHIFT 1 +#define EUR_CR_SOFT_RESET_DPM_RESET_SIGNED 0 +#define EUR_CR_SOFT_RESET_TA_RESET_MASK 0x00000004U +#define EUR_CR_SOFT_RESET_TA_RESET_SHIFT 2 +#define EUR_CR_SOFT_RESET_TA_RESET_SIGNED 0 +#define EUR_CR_SOFT_RESET_USE_RESET_MASK 0x00000008U +#define EUR_CR_SOFT_RESET_USE_RESET_SHIFT 3 +#define EUR_CR_SOFT_RESET_USE_RESET_SIGNED 0 +#define EUR_CR_SOFT_RESET_ISP_RESET_MASK 0x00000010U +#define EUR_CR_SOFT_RESET_ISP_RESET_SHIFT 4 +#define EUR_CR_SOFT_RESET_ISP_RESET_SIGNED 0 +#define EUR_CR_SOFT_RESET_TSP_RESET_MASK 0x00000020U +#define EUR_CR_SOFT_RESET_TSP_RESET_SHIFT 5 +#define EUR_CR_SOFT_RESET_TSP_RESET_SIGNED 0 +#define EUR_CR_EVENT_HOST_ENABLE2 0x0110 +#define EUR_CR_EVENT_HOST_ENABLE2_MTE_STATE_FLUSHED_MASK 0x00008000U +#define EUR_CR_EVENT_HOST_ENABLE2_MTE_STATE_FLUSHED_SHIFT 15 +#define EUR_CR_EVENT_HOST_ENABLE2_MTE_STATE_FLUSHED_SIGNED 0 +#define EUR_CR_EVENT_HOST_ENABLE2_VDM_CONTEXT_LOAD_MASK 0x00004000U +#define EUR_CR_EVENT_HOST_ENABLE2_VDM_CONTEXT_LOAD_SHIFT 14 +#define EUR_CR_EVENT_HOST_ENABLE2_VDM_CONTEXT_LOAD_SIGNED 0 +#define EUR_CR_EVENT_HOST_ENABLE2_VDM_TASK_KICKED_MASK 0x00002000U +#define EUR_CR_EVENT_HOST_ENABLE2_VDM_TASK_KICKED_SHIFT 13 +#define EUR_CR_EVENT_HOST_ENABLE2_VDM_TASK_KICKED_SIGNED 0 +#define EUR_CR_EVENT_HOST_ENABLE2_OTPM_MEM_CLEARED_MASK 0x00001000U +#define EUR_CR_EVENT_HOST_ENABLE2_OTPM_MEM_CLEARED_SHIFT 12 +#define EUR_CR_EVENT_HOST_ENABLE2_OTPM_MEM_CLEARED_SIGNED 0 +#define EUR_CR_EVENT_HOST_ENABLE2_OTPM_FLUSHED_INV_MASK 0x00000800U +#define EUR_CR_EVENT_HOST_ENABLE2_OTPM_FLUSHED_INV_SHIFT 11 +#define EUR_CR_EVENT_HOST_ENABLE2_OTPM_FLUSHED_INV_SIGNED 0 +#define EUR_CR_EVENT_HOST_ENABLE2_DCU_INVALCOMPLETE_MASK 0x00000400U +#define EUR_CR_EVENT_HOST_ENABLE2_DCU_INVALCOMPLETE_SHIFT 10 +#define EUR_CR_EVENT_HOST_ENABLE2_DCU_INVALCOMPLETE_SIGNED 0 +#define EUR_CR_EVENT_HOST_ENABLE2_GSG_FLUSHED_MASK 0x00000200U +#define EUR_CR_EVENT_HOST_ENABLE2_GSG_FLUSHED_SHIFT 9 +#define EUR_CR_EVENT_HOST_ENABLE2_GSG_FLUSHED_SIGNED 0 +#define EUR_CR_EVENT_HOST_ENABLE2_GSG_LOADED_MASK 0x00000100U +#define EUR_CR_EVENT_HOST_ENABLE2_GSG_LOADED_SHIFT 8 +#define EUR_CR_EVENT_HOST_ENABLE2_GSG_LOADED_SIGNED 0 +#define EUR_CR_EVENT_HOST_ENABLE2_TRIG_TA_MASK 0x00000080U +#define EUR_CR_EVENT_HOST_ENABLE2_TRIG_TA_SHIFT 7 +#define EUR_CR_EVENT_HOST_ENABLE2_TRIG_TA_SIGNED 0 +#define EUR_CR_EVENT_HOST_ENABLE2_TRIG_3D_MASK 0x00000040U +#define EUR_CR_EVENT_HOST_ENABLE2_TRIG_3D_SHIFT 6 +#define EUR_CR_EVENT_HOST_ENABLE2_TRIG_3D_SIGNED 0 +#define EUR_CR_EVENT_HOST_ENABLE2_TRIG_DL_MASK 0x00000020U +#define EUR_CR_EVENT_HOST_ENABLE2_TRIG_DL_SHIFT 5 +#define EUR_CR_EVENT_HOST_ENABLE2_TRIG_DL_SIGNED 0 +#define EUR_CR_EVENT_HOST_ENABLE2_DPM_DHOST_FREE_LOAD_MASK 0x00000008U +#define EUR_CR_EVENT_HOST_ENABLE2_DPM_DHOST_FREE_LOAD_SHIFT 3 +#define EUR_CR_EVENT_HOST_ENABLE2_DPM_DHOST_FREE_LOAD_SIGNED 0 +#define EUR_CR_EVENT_HOST_ENABLE2_DPM_HOST_FREE_LOAD_MASK 0x00000004U +#define EUR_CR_EVENT_HOST_ENABLE2_DPM_HOST_FREE_LOAD_SHIFT 2 +#define EUR_CR_EVENT_HOST_ENABLE2_DPM_HOST_FREE_LOAD_SIGNED 0 +#define EUR_CR_EVENT_HOST_ENABLE2_DPM_3D_FREE_LOAD_MASK 0x00000002U +#define EUR_CR_EVENT_HOST_ENABLE2_DPM_3D_FREE_LOAD_SHIFT 1 +#define EUR_CR_EVENT_HOST_ENABLE2_DPM_3D_FREE_LOAD_SIGNED 0 +#define EUR_CR_EVENT_HOST_ENABLE2_DPM_TA_FREE_LOAD_MASK 0x00000001U +#define EUR_CR_EVENT_HOST_ENABLE2_DPM_TA_FREE_LOAD_SHIFT 0 +#define EUR_CR_EVENT_HOST_ENABLE2_DPM_TA_FREE_LOAD_SIGNED 0 +#define EUR_CR_EVENT_HOST_CLEAR2 0x0114 +#define EUR_CR_EVENT_HOST_CLEAR2_MTE_STATE_FLUSHED_MASK 0x00008000U +#define EUR_CR_EVENT_HOST_CLEAR2_MTE_STATE_FLUSHED_SHIFT 15 +#define EUR_CR_EVENT_HOST_CLEAR2_MTE_STATE_FLUSHED_SIGNED 0 +#define EUR_CR_EVENT_HOST_CLEAR2_VDM_CONTEXT_LOAD_MASK 0x00004000U +#define EUR_CR_EVENT_HOST_CLEAR2_VDM_CONTEXT_LOAD_SHIFT 14 +#define EUR_CR_EVENT_HOST_CLEAR2_VDM_CONTEXT_LOAD_SIGNED 0 +#define EUR_CR_EVENT_HOST_CLEAR2_VDM_TASK_KICKED_MASK 0x00002000U +#define EUR_CR_EVENT_HOST_CLEAR2_VDM_TASK_KICKED_SHIFT 13 +#define EUR_CR_EVENT_HOST_CLEAR2_VDM_TASK_KICKED_SIGNED 0 +#define EUR_CR_EVENT_HOST_CLEAR2_OTPM_MEM_CLEARED_MASK 0x00001000U +#define EUR_CR_EVENT_HOST_CLEAR2_OTPM_MEM_CLEARED_SHIFT 12 +#define EUR_CR_EVENT_HOST_CLEAR2_OTPM_MEM_CLEARED_SIGNED 0 +#define EUR_CR_EVENT_HOST_CLEAR2_OTPM_FLUSHED_INV_MASK 0x00000800U +#define EUR_CR_EVENT_HOST_CLEAR2_OTPM_FLUSHED_INV_SHIFT 11 +#define EUR_CR_EVENT_HOST_CLEAR2_OTPM_FLUSHED_INV_SIGNED 0 +#define EUR_CR_EVENT_HOST_CLEAR2_DCU_INVALCOMPLETE_MASK 0x00000400U +#define EUR_CR_EVENT_HOST_CLEAR2_DCU_INVALCOMPLETE_SHIFT 10 +#define EUR_CR_EVENT_HOST_CLEAR2_DCU_INVALCOMPLETE_SIGNED 0 +#define EUR_CR_EVENT_HOST_CLEAR2_GSG_FLUSHED_MASK 0x00000200U +#define EUR_CR_EVENT_HOST_CLEAR2_GSG_FLUSHED_SHIFT 9 +#define EUR_CR_EVENT_HOST_CLEAR2_GSG_FLUSHED_SIGNED 0 +#define EUR_CR_EVENT_HOST_CLEAR2_GSG_LOADED_MASK 0x00000100U +#define EUR_CR_EVENT_HOST_CLEAR2_GSG_LOADED_SHIFT 8 +#define EUR_CR_EVENT_HOST_CLEAR2_GSG_LOADED_SIGNED 0 +#define EUR_CR_EVENT_HOST_CLEAR2_TRIG_TA_MASK 0x00000080U +#define EUR_CR_EVENT_HOST_CLEAR2_TRIG_TA_SHIFT 7 +#define EUR_CR_EVENT_HOST_CLEAR2_TRIG_TA_SIGNED 0 +#define EUR_CR_EVENT_HOST_CLEAR2_TRIG_3D_MASK 0x00000040U +#define EUR_CR_EVENT_HOST_CLEAR2_TRIG_3D_SHIFT 6 +#define EUR_CR_EVENT_HOST_CLEAR2_TRIG_3D_SIGNED 0 +#define EUR_CR_EVENT_HOST_CLEAR2_TRIG_DL_MASK 0x00000020U +#define EUR_CR_EVENT_HOST_CLEAR2_TRIG_DL_SHIFT 5 +#define EUR_CR_EVENT_HOST_CLEAR2_TRIG_DL_SIGNED 0 +#define EUR_CR_EVENT_HOST_CLEAR2_DPM_DHOST_FREE_LOAD_MASK 0x00000008U +#define EUR_CR_EVENT_HOST_CLEAR2_DPM_DHOST_FREE_LOAD_SHIFT 3 +#define EUR_CR_EVENT_HOST_CLEAR2_DPM_DHOST_FREE_LOAD_SIGNED 0 +#define EUR_CR_EVENT_HOST_CLEAR2_DPM_HOST_FREE_LOAD_MASK 0x00000004U +#define EUR_CR_EVENT_HOST_CLEAR2_DPM_HOST_FREE_LOAD_SHIFT 2 +#define EUR_CR_EVENT_HOST_CLEAR2_DPM_HOST_FREE_LOAD_SIGNED 0 +#define EUR_CR_EVENT_HOST_CLEAR2_DPM_3D_FREE_LOAD_MASK 0x00000002U +#define EUR_CR_EVENT_HOST_CLEAR2_DPM_3D_FREE_LOAD_SHIFT 1 +#define EUR_CR_EVENT_HOST_CLEAR2_DPM_3D_FREE_LOAD_SIGNED 0 +#define EUR_CR_EVENT_HOST_CLEAR2_DPM_TA_FREE_LOAD_MASK 0x00000001U +#define EUR_CR_EVENT_HOST_CLEAR2_DPM_TA_FREE_LOAD_SHIFT 0 +#define EUR_CR_EVENT_HOST_CLEAR2_DPM_TA_FREE_LOAD_SIGNED 0 +#define EUR_CR_EVENT_STATUS2 0x0118 +#define EUR_CR_EVENT_STATUS2_MTE_STATE_FLUSHED_MASK 0x00008000U +#define EUR_CR_EVENT_STATUS2_MTE_STATE_FLUSHED_SHIFT 15 +#define EUR_CR_EVENT_STATUS2_MTE_STATE_FLUSHED_SIGNED 0 +#define EUR_CR_EVENT_STATUS2_VDM_CONTEXT_LOAD_MASK 0x00004000U +#define EUR_CR_EVENT_STATUS2_VDM_CONTEXT_LOAD_SHIFT 14 +#define EUR_CR_EVENT_STATUS2_VDM_CONTEXT_LOAD_SIGNED 0 +#define EUR_CR_EVENT_STATUS2_VDM_TASK_KICKED_MASK 0x00002000U +#define EUR_CR_EVENT_STATUS2_VDM_TASK_KICKED_SHIFT 13 +#define EUR_CR_EVENT_STATUS2_VDM_TASK_KICKED_SIGNED 0 +#define EUR_CR_EVENT_STATUS2_OTPM_MEM_CLEARED_MASK 0x00001000U +#define EUR_CR_EVENT_STATUS2_OTPM_MEM_CLEARED_SHIFT 12 +#define EUR_CR_EVENT_STATUS2_OTPM_MEM_CLEARED_SIGNED 0 +#define EUR_CR_EVENT_STATUS2_OTPM_FLUSHED_INV_MASK 0x00000800U +#define EUR_CR_EVENT_STATUS2_OTPM_FLUSHED_INV_SHIFT 11 +#define EUR_CR_EVENT_STATUS2_OTPM_FLUSHED_INV_SIGNED 0 +#define EUR_CR_EVENT_STATUS2_DCU_INVALCOMPLETE_MASK 0x00000400U +#define EUR_CR_EVENT_STATUS2_DCU_INVALCOMPLETE_SHIFT 10 +#define EUR_CR_EVENT_STATUS2_DCU_INVALCOMPLETE_SIGNED 0 +#define EUR_CR_EVENT_STATUS2_GSG_FLUSHED_MASK 0x00000200U +#define EUR_CR_EVENT_STATUS2_GSG_FLUSHED_SHIFT 9 +#define EUR_CR_EVENT_STATUS2_GSG_FLUSHED_SIGNED 0 +#define EUR_CR_EVENT_STATUS2_GSG_LOADED_MASK 0x00000100U +#define EUR_CR_EVENT_STATUS2_GSG_LOADED_SHIFT 8 +#define EUR_CR_EVENT_STATUS2_GSG_LOADED_SIGNED 0 +#define EUR_CR_EVENT_STATUS2_TRIG_TA_MASK 0x00000080U +#define EUR_CR_EVENT_STATUS2_TRIG_TA_SHIFT 7 +#define EUR_CR_EVENT_STATUS2_TRIG_TA_SIGNED 0 +#define EUR_CR_EVENT_STATUS2_TRIG_3D_MASK 0x00000040U +#define EUR_CR_EVENT_STATUS2_TRIG_3D_SHIFT 6 +#define EUR_CR_EVENT_STATUS2_TRIG_3D_SIGNED 0 +#define EUR_CR_EVENT_STATUS2_TRIG_DL_MASK 0x00000020U +#define EUR_CR_EVENT_STATUS2_TRIG_DL_SHIFT 5 +#define EUR_CR_EVENT_STATUS2_TRIG_DL_SIGNED 0 +#define EUR_CR_EVENT_STATUS2_DPM_DHOST_FREE_LOAD_MASK 0x00000008U +#define EUR_CR_EVENT_STATUS2_DPM_DHOST_FREE_LOAD_SHIFT 3 +#define EUR_CR_EVENT_STATUS2_DPM_DHOST_FREE_LOAD_SIGNED 0 +#define EUR_CR_EVENT_STATUS2_DPM_HOST_FREE_LOAD_MASK 0x00000004U +#define EUR_CR_EVENT_STATUS2_DPM_HOST_FREE_LOAD_SHIFT 2 +#define EUR_CR_EVENT_STATUS2_DPM_HOST_FREE_LOAD_SIGNED 0 +#define EUR_CR_EVENT_STATUS2_DPM_3D_FREE_LOAD_MASK 0x00000002U +#define EUR_CR_EVENT_STATUS2_DPM_3D_FREE_LOAD_SHIFT 1 +#define EUR_CR_EVENT_STATUS2_DPM_3D_FREE_LOAD_SIGNED 0 +#define EUR_CR_EVENT_STATUS2_DPM_TA_FREE_LOAD_MASK 0x00000001U +#define EUR_CR_EVENT_STATUS2_DPM_TA_FREE_LOAD_SHIFT 0 +#define EUR_CR_EVENT_STATUS2_DPM_TA_FREE_LOAD_SIGNED 0 +#define EUR_CR_EVENT_STATUS 0x012C +#define EUR_CR_EVENT_STATUS_MASTER_INTERRUPT_MASK 0x80000000U +#define EUR_CR_EVENT_STATUS_MASTER_INTERRUPT_SHIFT 31 +#define EUR_CR_EVENT_STATUS_MASTER_INTERRUPT_SIGNED 0 +#define EUR_CR_EVENT_STATUS_TIMER_MASK 0x20000000U +#define EUR_CR_EVENT_STATUS_TIMER_SHIFT 29 +#define EUR_CR_EVENT_STATUS_TIMER_SIGNED 0 +#define EUR_CR_EVENT_STATUS_TA_DPM_FAULT_MASK 0x10000000U +#define EUR_CR_EVENT_STATUS_TA_DPM_FAULT_SHIFT 28 +#define EUR_CR_EVENT_STATUS_TA_DPM_FAULT_SIGNED 0 +#define EUR_CR_EVENT_STATUS_MADD_CACHE_INVALCOMPLETE_MASK 0x04000000U +#define EUR_CR_EVENT_STATUS_MADD_CACHE_INVALCOMPLETE_SHIFT 26 +#define EUR_CR_EVENT_STATUS_MADD_CACHE_INVALCOMPLETE_SIGNED 0 +#define EUR_CR_EVENT_STATUS_DPM_OUT_OF_MEMORY_ZLS_MASK 0x02000000U +#define EUR_CR_EVENT_STATUS_DPM_OUT_OF_MEMORY_ZLS_SHIFT 25 +#define EUR_CR_EVENT_STATUS_DPM_OUT_OF_MEMORY_ZLS_SIGNED 0 +#define EUR_CR_EVENT_STATUS_DPM_TA_MEM_FREE_MASK 0x01000000U +#define EUR_CR_EVENT_STATUS_DPM_TA_MEM_FREE_SHIFT 24 +#define EUR_CR_EVENT_STATUS_DPM_TA_MEM_FREE_SIGNED 0 +#define EUR_CR_EVENT_STATUS_ISP_END_TILE_MASK 0x00800000U +#define EUR_CR_EVENT_STATUS_ISP_END_TILE_SHIFT 23 +#define EUR_CR_EVENT_STATUS_ISP_END_TILE_SIGNED 0 +#define EUR_CR_EVENT_STATUS_DPM_INITEND_MASK 0x00400000U +#define EUR_CR_EVENT_STATUS_DPM_INITEND_SHIFT 22 +#define EUR_CR_EVENT_STATUS_DPM_INITEND_SIGNED 0 +#define EUR_CR_EVENT_STATUS_ISP2_ZLS_CSW_FINISHED_MASK 0x00200000U +#define EUR_CR_EVENT_STATUS_ISP2_ZLS_CSW_FINISHED_SHIFT 21 +#define EUR_CR_EVENT_STATUS_ISP2_ZLS_CSW_FINISHED_SIGNED 0 +#define EUR_CR_EVENT_STATUS_OTPM_INV_MASK 0x00100000U +#define EUR_CR_EVENT_STATUS_OTPM_INV_SHIFT 20 +#define EUR_CR_EVENT_STATUS_OTPM_INV_SIGNED 0 +#define EUR_CR_EVENT_STATUS_OTPM_FLUSHED_MASK 0x00080000U +#define EUR_CR_EVENT_STATUS_OTPM_FLUSHED_SHIFT 19 +#define EUR_CR_EVENT_STATUS_OTPM_FLUSHED_SIGNED 0 +#define EUR_CR_EVENT_STATUS_PIXELBE_END_RENDER_MASK 0x00040000U +#define EUR_CR_EVENT_STATUS_PIXELBE_END_RENDER_SHIFT 18 +#define EUR_CR_EVENT_STATUS_PIXELBE_END_RENDER_SIGNED 0 +#define EUR_CR_EVENT_STATUS_ISP_VISIBILITY_FAIL_MASK 0x00010000U +#define EUR_CR_EVENT_STATUS_ISP_VISIBILITY_FAIL_SHIFT 16 +#define EUR_CR_EVENT_STATUS_ISP_VISIBILITY_FAIL_SIGNED 0 +#define EUR_CR_EVENT_STATUS_BREAKPOINT_MASK 0x00008000U +#define EUR_CR_EVENT_STATUS_BREAKPOINT_SHIFT 15 +#define EUR_CR_EVENT_STATUS_BREAKPOINT_SIGNED 0 +#define EUR_CR_EVENT_STATUS_SW_EVENT_MASK 0x00004000U +#define EUR_CR_EVENT_STATUS_SW_EVENT_SHIFT 14 +#define EUR_CR_EVENT_STATUS_SW_EVENT_SIGNED 0 +#define EUR_CR_EVENT_STATUS_TA_FINISHED_MASK 0x00002000U +#define EUR_CR_EVENT_STATUS_TA_FINISHED_SHIFT 13 +#define EUR_CR_EVENT_STATUS_TA_FINISHED_SIGNED 0 +#define EUR_CR_EVENT_STATUS_TA_TERMINATE_MASK 0x00001000U +#define EUR_CR_EVENT_STATUS_TA_TERMINATE_SHIFT 12 +#define EUR_CR_EVENT_STATUS_TA_TERMINATE_SIGNED 0 +#define EUR_CR_EVENT_STATUS_TPC_CLEAR_MASK 0x00000800U +#define EUR_CR_EVENT_STATUS_TPC_CLEAR_SHIFT 11 +#define EUR_CR_EVENT_STATUS_TPC_CLEAR_SIGNED 0 +#define EUR_CR_EVENT_STATUS_TPC_FLUSH_MASK 0x00000400U +#define EUR_CR_EVENT_STATUS_TPC_FLUSH_SHIFT 10 +#define EUR_CR_EVENT_STATUS_TPC_FLUSH_SIGNED 0 +#define EUR_CR_EVENT_STATUS_DPM_CONTROL_CLEAR_MASK 0x00000200U +#define EUR_CR_EVENT_STATUS_DPM_CONTROL_CLEAR_SHIFT 9 +#define EUR_CR_EVENT_STATUS_DPM_CONTROL_CLEAR_SIGNED 0 +#define EUR_CR_EVENT_STATUS_DPM_CONTROL_LOAD_MASK 0x00000100U +#define EUR_CR_EVENT_STATUS_DPM_CONTROL_LOAD_SHIFT 8 +#define EUR_CR_EVENT_STATUS_DPM_CONTROL_LOAD_SIGNED 0 +#define EUR_CR_EVENT_STATUS_DPM_CONTROL_STORE_MASK 0x00000080U +#define EUR_CR_EVENT_STATUS_DPM_CONTROL_STORE_SHIFT 7 +#define EUR_CR_EVENT_STATUS_DPM_CONTROL_STORE_SIGNED 0 +#define EUR_CR_EVENT_STATUS_DPM_STATE_CLEAR_MASK 0x00000040U +#define EUR_CR_EVENT_STATUS_DPM_STATE_CLEAR_SHIFT 6 +#define EUR_CR_EVENT_STATUS_DPM_STATE_CLEAR_SIGNED 0 +#define EUR_CR_EVENT_STATUS_DPM_STATE_LOAD_MASK 0x00000020U +#define EUR_CR_EVENT_STATUS_DPM_STATE_LOAD_SHIFT 5 +#define EUR_CR_EVENT_STATUS_DPM_STATE_LOAD_SIGNED 0 +#define EUR_CR_EVENT_STATUS_DPM_STATE_STORE_MASK 0x00000010U +#define EUR_CR_EVENT_STATUS_DPM_STATE_STORE_SHIFT 4 +#define EUR_CR_EVENT_STATUS_DPM_STATE_STORE_SIGNED 0 +#define EUR_CR_EVENT_STATUS_DPM_REACHED_MEM_THRESH_MASK 0x00000008U +#define EUR_CR_EVENT_STATUS_DPM_REACHED_MEM_THRESH_SHIFT 3 +#define EUR_CR_EVENT_STATUS_DPM_REACHED_MEM_THRESH_SIGNED 0 +#define EUR_CR_EVENT_STATUS_DPM_OUT_OF_MEMORY_GBL_MASK 0x00000004U +#define EUR_CR_EVENT_STATUS_DPM_OUT_OF_MEMORY_GBL_SHIFT 2 +#define EUR_CR_EVENT_STATUS_DPM_OUT_OF_MEMORY_GBL_SIGNED 0 +#define EUR_CR_EVENT_STATUS_DPM_OUT_OF_MEMORY_MT_MASK 0x00000002U +#define EUR_CR_EVENT_STATUS_DPM_OUT_OF_MEMORY_MT_SHIFT 1 +#define EUR_CR_EVENT_STATUS_DPM_OUT_OF_MEMORY_MT_SIGNED 0 +#define EUR_CR_EVENT_STATUS_DPM_3D_MEM_FREE_MASK 0x00000001U +#define EUR_CR_EVENT_STATUS_DPM_3D_MEM_FREE_SHIFT 0 +#define EUR_CR_EVENT_STATUS_DPM_3D_MEM_FREE_SIGNED 0 +#define EUR_CR_EVENT_HOST_ENABLE 0x0130 +#define EUR_CR_EVENT_HOST_ENABLE_MASTER_INTERRUPT_MASK 0x80000000U +#define EUR_CR_EVENT_HOST_ENABLE_MASTER_INTERRUPT_SHIFT 31 +#define EUR_CR_EVENT_HOST_ENABLE_MASTER_INTERRUPT_SIGNED 0 +#define EUR_CR_EVENT_HOST_ENABLE_TIMER_MASK 0x20000000U +#define EUR_CR_EVENT_HOST_ENABLE_TIMER_SHIFT 29 +#define EUR_CR_EVENT_HOST_ENABLE_TIMER_SIGNED 0 +#define EUR_CR_EVENT_HOST_ENABLE_TA_DPM_FAULT_MASK 0x10000000U +#define EUR_CR_EVENT_HOST_ENABLE_TA_DPM_FAULT_SHIFT 28 +#define EUR_CR_EVENT_HOST_ENABLE_TA_DPM_FAULT_SIGNED 0 +#define EUR_CR_EVENT_HOST_ENABLE_MADD_CACHE_INVALCOMPLETE_MASK 0x04000000U +#define EUR_CR_EVENT_HOST_ENABLE_MADD_CACHE_INVALCOMPLETE_SHIFT 26 +#define EUR_CR_EVENT_HOST_ENABLE_MADD_CACHE_INVALCOMPLETE_SIGNED 0 +#define EUR_CR_EVENT_HOST_ENABLE_DPM_OUT_OF_MEMORY_ZLS_MASK 0x02000000U +#define EUR_CR_EVENT_HOST_ENABLE_DPM_OUT_OF_MEMORY_ZLS_SHIFT 25 +#define EUR_CR_EVENT_HOST_ENABLE_DPM_OUT_OF_MEMORY_ZLS_SIGNED 0 +#define EUR_CR_EVENT_HOST_ENABLE_DPM_TA_MEM_FREE_MASK 0x01000000U +#define EUR_CR_EVENT_HOST_ENABLE_DPM_TA_MEM_FREE_SHIFT 24 +#define EUR_CR_EVENT_HOST_ENABLE_DPM_TA_MEM_FREE_SIGNED 0 +#define EUR_CR_EVENT_HOST_ENABLE_ISP_END_TILE_MASK 0x00800000U +#define EUR_CR_EVENT_HOST_ENABLE_ISP_END_TILE_SHIFT 23 +#define EUR_CR_EVENT_HOST_ENABLE_ISP_END_TILE_SIGNED 0 +#define EUR_CR_EVENT_HOST_ENABLE_DPM_INITEND_MASK 0x00400000U +#define EUR_CR_EVENT_HOST_ENABLE_DPM_INITEND_SHIFT 22 +#define EUR_CR_EVENT_HOST_ENABLE_DPM_INITEND_SIGNED 0 +#define EUR_CR_EVENT_HOST_ENABLE_ISP2_ZLS_CSW_FINISHED_MASK 0x00200000U +#define EUR_CR_EVENT_HOST_ENABLE_ISP2_ZLS_CSW_FINISHED_SHIFT 21 +#define EUR_CR_EVENT_HOST_ENABLE_ISP2_ZLS_CSW_FINISHED_SIGNED 0 +#define EUR_CR_EVENT_HOST_ENABLE_OTPM_INV_MASK 0x00100000U +#define EUR_CR_EVENT_HOST_ENABLE_OTPM_INV_SHIFT 20 +#define EUR_CR_EVENT_HOST_ENABLE_OTPM_INV_SIGNED 0 +#define EUR_CR_EVENT_HOST_ENABLE_OTPM_FLUSHED_MASK 0x00080000U +#define EUR_CR_EVENT_HOST_ENABLE_OTPM_FLUSHED_SHIFT 19 +#define EUR_CR_EVENT_HOST_ENABLE_OTPM_FLUSHED_SIGNED 0 +#define EUR_CR_EVENT_HOST_ENABLE_PIXELBE_END_RENDER_MASK 0x00040000U +#define EUR_CR_EVENT_HOST_ENABLE_PIXELBE_END_RENDER_SHIFT 18 +#define EUR_CR_EVENT_HOST_ENABLE_PIXELBE_END_RENDER_SIGNED 0 +#define EUR_CR_EVENT_HOST_ENABLE_ISP_VISIBILITY_FAIL_MASK 0x00010000U +#define EUR_CR_EVENT_HOST_ENABLE_ISP_VISIBILITY_FAIL_SHIFT 16 +#define EUR_CR_EVENT_HOST_ENABLE_ISP_VISIBILITY_FAIL_SIGNED 0 +#define EUR_CR_EVENT_HOST_ENABLE_BREAKPOINT_MASK 0x00008000U +#define EUR_CR_EVENT_HOST_ENABLE_BREAKPOINT_SHIFT 15 +#define EUR_CR_EVENT_HOST_ENABLE_BREAKPOINT_SIGNED 0 +#define EUR_CR_EVENT_HOST_ENABLE_SW_EVENT_MASK 0x00004000U +#define EUR_CR_EVENT_HOST_ENABLE_SW_EVENT_SHIFT 14 +#define EUR_CR_EVENT_HOST_ENABLE_SW_EVENT_SIGNED 0 +#define EUR_CR_EVENT_HOST_ENABLE_TA_FINISHED_MASK 0x00002000U +#define EUR_CR_EVENT_HOST_ENABLE_TA_FINISHED_SHIFT 13 +#define EUR_CR_EVENT_HOST_ENABLE_TA_FINISHED_SIGNED 0 +#define EUR_CR_EVENT_HOST_ENABLE_TA_TERMINATE_MASK 0x00001000U +#define EUR_CR_EVENT_HOST_ENABLE_TA_TERMINATE_SHIFT 12 +#define EUR_CR_EVENT_HOST_ENABLE_TA_TERMINATE_SIGNED 0 +#define EUR_CR_EVENT_HOST_ENABLE_TPC_CLEAR_MASK 0x00000800U +#define EUR_CR_EVENT_HOST_ENABLE_TPC_CLEAR_SHIFT 11 +#define EUR_CR_EVENT_HOST_ENABLE_TPC_CLEAR_SIGNED 0 +#define EUR_CR_EVENT_HOST_ENABLE_TPC_FLUSH_MASK 0x00000400U +#define EUR_CR_EVENT_HOST_ENABLE_TPC_FLUSH_SHIFT 10 +#define EUR_CR_EVENT_HOST_ENABLE_TPC_FLUSH_SIGNED 0 +#define EUR_CR_EVENT_HOST_ENABLE_DPM_CONTROL_CLEAR_MASK 0x00000200U +#define EUR_CR_EVENT_HOST_ENABLE_DPM_CONTROL_CLEAR_SHIFT 9 +#define EUR_CR_EVENT_HOST_ENABLE_DPM_CONTROL_CLEAR_SIGNED 0 +#define EUR_CR_EVENT_HOST_ENABLE_DPM_CONTROL_LOAD_MASK 0x00000100U +#define EUR_CR_EVENT_HOST_ENABLE_DPM_CONTROL_LOAD_SHIFT 8 +#define EUR_CR_EVENT_HOST_ENABLE_DPM_CONTROL_LOAD_SIGNED 0 +#define EUR_CR_EVENT_HOST_ENABLE_DPM_CONTROL_STORE_MASK 0x00000080U +#define EUR_CR_EVENT_HOST_ENABLE_DPM_CONTROL_STORE_SHIFT 7 +#define EUR_CR_EVENT_HOST_ENABLE_DPM_CONTROL_STORE_SIGNED 0 +#define EUR_CR_EVENT_HOST_ENABLE_DPM_STATE_CLEAR_MASK 0x00000040U +#define EUR_CR_EVENT_HOST_ENABLE_DPM_STATE_CLEAR_SHIFT 6 +#define EUR_CR_EVENT_HOST_ENABLE_DPM_STATE_CLEAR_SIGNED 0 +#define EUR_CR_EVENT_HOST_ENABLE_DPM_STATE_LOAD_MASK 0x00000020U +#define EUR_CR_EVENT_HOST_ENABLE_DPM_STATE_LOAD_SHIFT 5 +#define EUR_CR_EVENT_HOST_ENABLE_DPM_STATE_LOAD_SIGNED 0 +#define EUR_CR_EVENT_HOST_ENABLE_DPM_STATE_STORE_MASK 0x00000010U +#define EUR_CR_EVENT_HOST_ENABLE_DPM_STATE_STORE_SHIFT 4 +#define EUR_CR_EVENT_HOST_ENABLE_DPM_STATE_STORE_SIGNED 0 +#define EUR_CR_EVENT_HOST_ENABLE_DPM_REACHED_MEM_THRESH_MASK 0x00000008U +#define EUR_CR_EVENT_HOST_ENABLE_DPM_REACHED_MEM_THRESH_SHIFT 3 +#define EUR_CR_EVENT_HOST_ENABLE_DPM_REACHED_MEM_THRESH_SIGNED 0 +#define EUR_CR_EVENT_HOST_ENABLE_DPM_OUT_OF_MEMORY_GBL_MASK 0x00000004U +#define EUR_CR_EVENT_HOST_ENABLE_DPM_OUT_OF_MEMORY_GBL_SHIFT 2 +#define EUR_CR_EVENT_HOST_ENABLE_DPM_OUT_OF_MEMORY_GBL_SIGNED 0 +#define EUR_CR_EVENT_HOST_ENABLE_DPM_OUT_OF_MEMORY_MT_MASK 0x00000002U +#define EUR_CR_EVENT_HOST_ENABLE_DPM_OUT_OF_MEMORY_MT_SHIFT 1 +#define EUR_CR_EVENT_HOST_ENABLE_DPM_OUT_OF_MEMORY_MT_SIGNED 0 +#define EUR_CR_EVENT_HOST_ENABLE_DPM_3D_MEM_FREE_MASK 0x00000001U +#define EUR_CR_EVENT_HOST_ENABLE_DPM_3D_MEM_FREE_SHIFT 0 +#define EUR_CR_EVENT_HOST_ENABLE_DPM_3D_MEM_FREE_SIGNED 0 +#define EUR_CR_EVENT_HOST_CLEAR 0x0134 +#define EUR_CR_EVENT_HOST_CLEAR_MASTER_INTERRUPT_MASK 0x80000000U +#define EUR_CR_EVENT_HOST_CLEAR_MASTER_INTERRUPT_SHIFT 31 +#define EUR_CR_EVENT_HOST_CLEAR_MASTER_INTERRUPT_SIGNED 0 +#define EUR_CR_EVENT_HOST_CLEAR_TIMER_MASK 0x20000000U +#define EUR_CR_EVENT_HOST_CLEAR_TIMER_SHIFT 29 +#define EUR_CR_EVENT_HOST_CLEAR_TIMER_SIGNED 0 +#define EUR_CR_EVENT_HOST_CLEAR_TA_DPM_FAULT_MASK 0x10000000U +#define EUR_CR_EVENT_HOST_CLEAR_TA_DPM_FAULT_SHIFT 28 +#define EUR_CR_EVENT_HOST_CLEAR_TA_DPM_FAULT_SIGNED 0 +#define EUR_CR_EVENT_HOST_CLEAR_MADD_CACHE_INVALCOMPLETE_MASK 0x04000000U +#define EUR_CR_EVENT_HOST_CLEAR_MADD_CACHE_INVALCOMPLETE_SHIFT 26 +#define EUR_CR_EVENT_HOST_CLEAR_MADD_CACHE_INVALCOMPLETE_SIGNED 0 +#define EUR_CR_EVENT_HOST_CLEAR_DPM_OUT_OF_MEMORY_ZLS_MASK 0x02000000U +#define EUR_CR_EVENT_HOST_CLEAR_DPM_OUT_OF_MEMORY_ZLS_SHIFT 25 +#define EUR_CR_EVENT_HOST_CLEAR_DPM_OUT_OF_MEMORY_ZLS_SIGNED 0 +#define EUR_CR_EVENT_HOST_CLEAR_DPM_TA_MEM_FREE_MASK 0x01000000U +#define EUR_CR_EVENT_HOST_CLEAR_DPM_TA_MEM_FREE_SHIFT 24 +#define EUR_CR_EVENT_HOST_CLEAR_DPM_TA_MEM_FREE_SIGNED 0 +#define EUR_CR_EVENT_HOST_CLEAR_ISP_END_TILE_MASK 0x00800000U +#define EUR_CR_EVENT_HOST_CLEAR_ISP_END_TILE_SHIFT 23 +#define EUR_CR_EVENT_HOST_CLEAR_ISP_END_TILE_SIGNED 0 +#define EUR_CR_EVENT_HOST_CLEAR_DPM_INITEND_MASK 0x00400000U +#define EUR_CR_EVENT_HOST_CLEAR_DPM_INITEND_SHIFT 22 +#define EUR_CR_EVENT_HOST_CLEAR_DPM_INITEND_SIGNED 0 +#define EUR_CR_EVENT_HOST_CLEAR_ISP2_ZLS_CSW_FINISHED_MASK 0x00200000U +#define EUR_CR_EVENT_HOST_CLEAR_ISP2_ZLS_CSW_FINISHED_SHIFT 21 +#define EUR_CR_EVENT_HOST_CLEAR_ISP2_ZLS_CSW_FINISHED_SIGNED 0 +#define EUR_CR_EVENT_HOST_CLEAR_OTPM_INV_MASK 0x00100000U +#define EUR_CR_EVENT_HOST_CLEAR_OTPM_INV_SHIFT 20 +#define EUR_CR_EVENT_HOST_CLEAR_OTPM_INV_SIGNED 0 +#define EUR_CR_EVENT_HOST_CLEAR_OTPM_FLUSHED_MASK 0x00080000U +#define EUR_CR_EVENT_HOST_CLEAR_OTPM_FLUSHED_SHIFT 19 +#define EUR_CR_EVENT_HOST_CLEAR_OTPM_FLUSHED_SIGNED 0 +#define EUR_CR_EVENT_HOST_CLEAR_PIXELBE_END_RENDER_MASK 0x00040000U +#define EUR_CR_EVENT_HOST_CLEAR_PIXELBE_END_RENDER_SHIFT 18 +#define EUR_CR_EVENT_HOST_CLEAR_PIXELBE_END_RENDER_SIGNED 0 +#define EUR_CR_EVENT_HOST_CLEAR_ISP_VISIBILITY_FAIL_MASK 0x00010000U +#define EUR_CR_EVENT_HOST_CLEAR_ISP_VISIBILITY_FAIL_SHIFT 16 +#define EUR_CR_EVENT_HOST_CLEAR_ISP_VISIBILITY_FAIL_SIGNED 0 +#define EUR_CR_EVENT_HOST_CLEAR_BREAKPOINT_MASK 0x00008000U +#define EUR_CR_EVENT_HOST_CLEAR_BREAKPOINT_SHIFT 15 +#define EUR_CR_EVENT_HOST_CLEAR_BREAKPOINT_SIGNED 0 +#define EUR_CR_EVENT_HOST_CLEAR_SW_EVENT_MASK 0x00004000U +#define EUR_CR_EVENT_HOST_CLEAR_SW_EVENT_SHIFT 14 +#define EUR_CR_EVENT_HOST_CLEAR_SW_EVENT_SIGNED 0 +#define EUR_CR_EVENT_HOST_CLEAR_TA_FINISHED_MASK 0x00002000U +#define EUR_CR_EVENT_HOST_CLEAR_TA_FINISHED_SHIFT 13 +#define EUR_CR_EVENT_HOST_CLEAR_TA_FINISHED_SIGNED 0 +#define EUR_CR_EVENT_HOST_CLEAR_TA_TERMINATE_MASK 0x00001000U +#define EUR_CR_EVENT_HOST_CLEAR_TA_TERMINATE_SHIFT 12 +#define EUR_CR_EVENT_HOST_CLEAR_TA_TERMINATE_SIGNED 0 +#define EUR_CR_EVENT_HOST_CLEAR_TPC_CLEAR_MASK 0x00000800U +#define EUR_CR_EVENT_HOST_CLEAR_TPC_CLEAR_SHIFT 11 +#define EUR_CR_EVENT_HOST_CLEAR_TPC_CLEAR_SIGNED 0 +#define EUR_CR_EVENT_HOST_CLEAR_TPC_FLUSH_MASK 0x00000400U +#define EUR_CR_EVENT_HOST_CLEAR_TPC_FLUSH_SHIFT 10 +#define EUR_CR_EVENT_HOST_CLEAR_TPC_FLUSH_SIGNED 0 +#define EUR_CR_EVENT_HOST_CLEAR_DPM_CONTROL_CLEAR_MASK 0x00000200U +#define EUR_CR_EVENT_HOST_CLEAR_DPM_CONTROL_CLEAR_SHIFT 9 +#define EUR_CR_EVENT_HOST_CLEAR_DPM_CONTROL_CLEAR_SIGNED 0 +#define EUR_CR_EVENT_HOST_CLEAR_DPM_CONTROL_LOAD_MASK 0x00000100U +#define EUR_CR_EVENT_HOST_CLEAR_DPM_CONTROL_LOAD_SHIFT 8 +#define EUR_CR_EVENT_HOST_CLEAR_DPM_CONTROL_LOAD_SIGNED 0 +#define EUR_CR_EVENT_HOST_CLEAR_DPM_CONTROL_STORE_MASK 0x00000080U +#define EUR_CR_EVENT_HOST_CLEAR_DPM_CONTROL_STORE_SHIFT 7 +#define EUR_CR_EVENT_HOST_CLEAR_DPM_CONTROL_STORE_SIGNED 0 +#define EUR_CR_EVENT_HOST_CLEAR_DPM_STATE_CLEAR_MASK 0x00000040U +#define EUR_CR_EVENT_HOST_CLEAR_DPM_STATE_CLEAR_SHIFT 6 +#define EUR_CR_EVENT_HOST_CLEAR_DPM_STATE_CLEAR_SIGNED 0 +#define EUR_CR_EVENT_HOST_CLEAR_DPM_STATE_LOAD_MASK 0x00000020U +#define EUR_CR_EVENT_HOST_CLEAR_DPM_STATE_LOAD_SHIFT 5 +#define EUR_CR_EVENT_HOST_CLEAR_DPM_STATE_LOAD_SIGNED 0 +#define EUR_CR_EVENT_HOST_CLEAR_DPM_STATE_STORE_MASK 0x00000010U +#define EUR_CR_EVENT_HOST_CLEAR_DPM_STATE_STORE_SHIFT 4 +#define EUR_CR_EVENT_HOST_CLEAR_DPM_STATE_STORE_SIGNED 0 +#define EUR_CR_EVENT_HOST_CLEAR_DPM_REACHED_MEM_THRESH_MASK 0x00000008U +#define EUR_CR_EVENT_HOST_CLEAR_DPM_REACHED_MEM_THRESH_SHIFT 3 +#define EUR_CR_EVENT_HOST_CLEAR_DPM_REACHED_MEM_THRESH_SIGNED 0 +#define EUR_CR_EVENT_HOST_CLEAR_DPM_OUT_OF_MEMORY_GBL_MASK 0x00000004U +#define EUR_CR_EVENT_HOST_CLEAR_DPM_OUT_OF_MEMORY_GBL_SHIFT 2 +#define EUR_CR_EVENT_HOST_CLEAR_DPM_OUT_OF_MEMORY_GBL_SIGNED 0 +#define EUR_CR_EVENT_HOST_CLEAR_DPM_OUT_OF_MEMORY_MT_MASK 0x00000002U +#define EUR_CR_EVENT_HOST_CLEAR_DPM_OUT_OF_MEMORY_MT_SHIFT 1 +#define EUR_CR_EVENT_HOST_CLEAR_DPM_OUT_OF_MEMORY_MT_SIGNED 0 +#define EUR_CR_EVENT_HOST_CLEAR_DPM_3D_MEM_FREE_MASK 0x00000001U +#define EUR_CR_EVENT_HOST_CLEAR_DPM_3D_MEM_FREE_SHIFT 0 +#define EUR_CR_EVENT_HOST_CLEAR_DPM_3D_MEM_FREE_SIGNED 0 +#define EUR_CR_TIMER 0x0144 +#define EUR_CR_TIMER_VALUE_MASK 0xFFFFFFFFU +#define EUR_CR_TIMER_VALUE_SHIFT 0 +#define EUR_CR_TIMER_VALUE_SIGNED 0 +#define EUR_CR_USE_CODE_BASE_0 0x0A0C +#define EUR_CR_USE_CODE_BASE_ADDR_00_MASK 0x01FFFFFFU +#define EUR_CR_USE_CODE_BASE_ADDR_00_SHIFT 0 +#define EUR_CR_USE_CODE_BASE_ADDR_00_SIGNED 0 +#define EUR_CR_USE_CODE_BASE_DM_00_MASK 0x06000000U +#define EUR_CR_USE_CODE_BASE_DM_00_SHIFT 25 +#define EUR_CR_USE_CODE_BASE_DM_00_SIGNED 0 +#define EUR_CR_USE_CODE_BASE_1 0x0A10 +#define EUR_CR_USE_CODE_BASE_ADDR_01_MASK 0x01FFFFFFU +#define EUR_CR_USE_CODE_BASE_ADDR_01_SHIFT 0 +#define EUR_CR_USE_CODE_BASE_ADDR_01_SIGNED 0 +#define EUR_CR_USE_CODE_BASE_DM_01_MASK 0x06000000U +#define EUR_CR_USE_CODE_BASE_DM_01_SHIFT 25 +#define EUR_CR_USE_CODE_BASE_DM_01_SIGNED 0 +#define EUR_CR_USE_CODE_BASE_2 0x0A14 +#define EUR_CR_USE_CODE_BASE_ADDR_02_MASK 0x01FFFFFFU +#define EUR_CR_USE_CODE_BASE_ADDR_02_SHIFT 0 +#define EUR_CR_USE_CODE_BASE_ADDR_02_SIGNED 0 +#define EUR_CR_USE_CODE_BASE_DM_02_MASK 0x06000000U +#define EUR_CR_USE_CODE_BASE_DM_02_SHIFT 25 +#define EUR_CR_USE_CODE_BASE_DM_02_SIGNED 0 +#define EUR_CR_USE_CODE_BASE_3 0x0A18 +#define EUR_CR_USE_CODE_BASE_ADDR_03_MASK 0x01FFFFFFU +#define EUR_CR_USE_CODE_BASE_ADDR_03_SHIFT 0 +#define EUR_CR_USE_CODE_BASE_ADDR_03_SIGNED 0 +#define EUR_CR_USE_CODE_BASE_DM_03_MASK 0x06000000U +#define EUR_CR_USE_CODE_BASE_DM_03_SHIFT 25 +#define EUR_CR_USE_CODE_BASE_DM_03_SIGNED 0 +#define EUR_CR_USE_CODE_BASE_4 0x0A1C +#define EUR_CR_USE_CODE_BASE_ADDR_04_MASK 0x01FFFFFFU +#define EUR_CR_USE_CODE_BASE_ADDR_04_SHIFT 0 +#define EUR_CR_USE_CODE_BASE_ADDR_04_SIGNED 0 +#define EUR_CR_USE_CODE_BASE_DM_04_MASK 0x06000000U +#define EUR_CR_USE_CODE_BASE_DM_04_SHIFT 25 +#define EUR_CR_USE_CODE_BASE_DM_04_SIGNED 0 +#define EUR_CR_USE_CODE_BASE_5 0x0A20 +#define EUR_CR_USE_CODE_BASE_ADDR_05_MASK 0x01FFFFFFU +#define EUR_CR_USE_CODE_BASE_ADDR_05_SHIFT 0 +#define EUR_CR_USE_CODE_BASE_ADDR_05_SIGNED 0 +#define EUR_CR_USE_CODE_BASE_DM_05_MASK 0x06000000U +#define EUR_CR_USE_CODE_BASE_DM_05_SHIFT 25 +#define EUR_CR_USE_CODE_BASE_DM_05_SIGNED 0 +#define EUR_CR_USE_CODE_BASE_6 0x0A24 +#define EUR_CR_USE_CODE_BASE_ADDR_06_MASK 0x01FFFFFFU +#define EUR_CR_USE_CODE_BASE_ADDR_06_SHIFT 0 +#define EUR_CR_USE_CODE_BASE_ADDR_06_SIGNED 0 +#define EUR_CR_USE_CODE_BASE_DM_06_MASK 0x06000000U +#define EUR_CR_USE_CODE_BASE_DM_06_SHIFT 25 +#define EUR_CR_USE_CODE_BASE_DM_06_SIGNED 0 +#define EUR_CR_USE_CODE_BASE_7 0x0A28 +#define EUR_CR_USE_CODE_BASE_ADDR_07_MASK 0x01FFFFFFU +#define EUR_CR_USE_CODE_BASE_ADDR_07_SHIFT 0 +#define EUR_CR_USE_CODE_BASE_ADDR_07_SIGNED 0 +#define EUR_CR_USE_CODE_BASE_DM_07_MASK 0x06000000U +#define EUR_CR_USE_CODE_BASE_DM_07_SHIFT 25 +#define EUR_CR_USE_CODE_BASE_DM_07_SIGNED 0 +#define EUR_CR_USE_CODE_BASE_8 0x0A2C +#define EUR_CR_USE_CODE_BASE_ADDR_08_MASK 0x01FFFFFFU +#define EUR_CR_USE_CODE_BASE_ADDR_08_SHIFT 0 +#define EUR_CR_USE_CODE_BASE_ADDR_08_SIGNED 0 +#define EUR_CR_USE_CODE_BASE_DM_08_MASK 0x06000000U +#define EUR_CR_USE_CODE_BASE_DM_08_SHIFT 25 +#define EUR_CR_USE_CODE_BASE_DM_08_SIGNED 0 +#define EUR_CR_USE_CODE_BASE_9 0x0A30 +#define EUR_CR_USE_CODE_BASE_ADDR_09_MASK 0x01FFFFFFU +#define EUR_CR_USE_CODE_BASE_ADDR_09_SHIFT 0 +#define EUR_CR_USE_CODE_BASE_ADDR_09_SIGNED 0 +#define EUR_CR_USE_CODE_BASE_DM_09_MASK 0x06000000U +#define EUR_CR_USE_CODE_BASE_DM_09_SHIFT 25 +#define EUR_CR_USE_CODE_BASE_DM_09_SIGNED 0 +#define EUR_CR_USE_CODE_BASE_10 0x0A34 +#define EUR_CR_USE_CODE_BASE_ADDR_10_MASK 0x01FFFFFFU +#define EUR_CR_USE_CODE_BASE_ADDR_10_SHIFT 0 +#define EUR_CR_USE_CODE_BASE_ADDR_10_SIGNED 0 +#define EUR_CR_USE_CODE_BASE_DM_10_MASK 0x06000000U +#define EUR_CR_USE_CODE_BASE_DM_10_SHIFT 25 +#define EUR_CR_USE_CODE_BASE_DM_10_SIGNED 0 +#define EUR_CR_USE_CODE_BASE_11 0x0A38 +#define EUR_CR_USE_CODE_BASE_ADDR_11_MASK 0x01FFFFFFU +#define EUR_CR_USE_CODE_BASE_ADDR_11_SHIFT 0 +#define EUR_CR_USE_CODE_BASE_ADDR_11_SIGNED 0 +#define EUR_CR_USE_CODE_BASE_DM_11_MASK 0x06000000U +#define EUR_CR_USE_CODE_BASE_DM_11_SHIFT 25 +#define EUR_CR_USE_CODE_BASE_DM_11_SIGNED 0 +#define EUR_CR_USE_CODE_BASE_12 0x0A3C +#define EUR_CR_USE_CODE_BASE_ADDR_12_MASK 0x01FFFFFFU +#define EUR_CR_USE_CODE_BASE_ADDR_12_SHIFT 0 +#define EUR_CR_USE_CODE_BASE_ADDR_12_SIGNED 0 +#define EUR_CR_USE_CODE_BASE_DM_12_MASK 0x06000000U +#define EUR_CR_USE_CODE_BASE_DM_12_SHIFT 25 +#define EUR_CR_USE_CODE_BASE_DM_12_SIGNED 0 +#define EUR_CR_USE_CODE_BASE_13 0x0A40 +#define EUR_CR_USE_CODE_BASE_ADDR_13_MASK 0x01FFFFFFU +#define EUR_CR_USE_CODE_BASE_ADDR_13_SHIFT 0 +#define EUR_CR_USE_CODE_BASE_ADDR_13_SIGNED 0 +#define EUR_CR_USE_CODE_BASE_DM_13_MASK 0x06000000U +#define EUR_CR_USE_CODE_BASE_DM_13_SHIFT 25 +#define EUR_CR_USE_CODE_BASE_DM_13_SIGNED 0 +#define EUR_CR_USE_CODE_BASE_14 0x0A44 +#define EUR_CR_USE_CODE_BASE_ADDR_14_MASK 0x01FFFFFFU +#define EUR_CR_USE_CODE_BASE_ADDR_14_SHIFT 0 +#define EUR_CR_USE_CODE_BASE_ADDR_14_SIGNED 0 +#define EUR_CR_USE_CODE_BASE_DM_14_MASK 0x06000000U +#define EUR_CR_USE_CODE_BASE_DM_14_SHIFT 25 +#define EUR_CR_USE_CODE_BASE_DM_14_SIGNED 0 +#define EUR_CR_USE_CODE_BASE_15 0x0A48 +#define EUR_CR_USE_CODE_BASE_ADDR_15_MASK 0x01FFFFFFU +#define EUR_CR_USE_CODE_BASE_ADDR_15_SHIFT 0 +#define EUR_CR_USE_CODE_BASE_ADDR_15_SIGNED 0 +#define EUR_CR_USE_CODE_BASE_DM_15_MASK 0x06000000U +#define EUR_CR_USE_CODE_BASE_DM_15_SHIFT 25 +#define EUR_CR_USE_CODE_BASE_DM_15_SIGNED 0 +#define EUR_CR_PDS_EXEC_BASE 0x0AB8 +#define EUR_CR_PDS_EXEC_BASE_ADDR_MASK 0xFFF00000U +#define EUR_CR_PDS_EXEC_BASE_ADDR_SHIFT 20 +#define EUR_CR_PDS_EXEC_BASE_ADDR_SIGNED 0 +#define EUR_CR_EVENT_KICKER 0x0AC4 +#define EUR_CR_EVENT_KICKER_ADDRESS_MASK 0xFFFFFFF0U +#define EUR_CR_EVENT_KICKER_ADDRESS_SHIFT 4 +#define EUR_CR_EVENT_KICKER_ADDRESS_SIGNED 0 +#define EUR_CR_EVENT_KICK 0x0AC8 +#define EUR_CR_EVENT_KICK_NOW_MASK 0x00000001U +#define EUR_CR_EVENT_KICK_NOW_SHIFT 0 +#define EUR_CR_EVENT_KICK_NOW_SIGNED 0 +#define EUR_CR_EVENT_TIMER 0x0ACC +#define EUR_CR_EVENT_TIMER_ENABLE_MASK 0x01000000U +#define EUR_CR_EVENT_TIMER_ENABLE_SHIFT 24 +#define EUR_CR_EVENT_TIMER_ENABLE_SIGNED 0 +#define EUR_CR_EVENT_TIMER_VALUE_MASK 0x00FFFFFFU +#define EUR_CR_EVENT_TIMER_VALUE_SHIFT 0 +#define EUR_CR_EVENT_TIMER_VALUE_SIGNED 0 +#define EUR_CR_PDS_INV0 0x0AD0 +#define EUR_CR_PDS_INV0_DSC_MASK 0x00000001U +#define EUR_CR_PDS_INV0_DSC_SHIFT 0 +#define EUR_CR_PDS_INV0_DSC_SIGNED 0 +#define EUR_CR_PDS_INV1 0x0AD4 +#define EUR_CR_PDS_INV1_DSC_MASK 0x00000001U +#define EUR_CR_PDS_INV1_DSC_SHIFT 0 +#define EUR_CR_PDS_INV1_DSC_SIGNED 0 +#define EUR_CR_PDS_INV3 0x0AD8 +#define EUR_CR_PDS_INV3_DSC_MASK 0x00000001U +#define EUR_CR_PDS_INV3_DSC_SHIFT 0 +#define EUR_CR_PDS_INV3_DSC_SIGNED 0 +#define EUR_CR_PDS_INV_CSC 0x0AE0 +#define EUR_CR_PDS_INV_CSC_KICK_MASK 0x00000001U +#define EUR_CR_PDS_INV_CSC_KICK_SHIFT 0 +#define EUR_CR_PDS_INV_CSC_KICK_SIGNED 0 +#define EUR_CR_EVENT_KICK1 0x0AE4 +#define EUR_CR_EVENT_KICK1_NOW_MASK 0x000000FFU +#define EUR_CR_EVENT_KICK1_NOW_SHIFT 0 +#define EUR_CR_EVENT_KICK1_NOW_SIGNED 0 +#define EUR_CR_EVENT_KICK2 0x0AE8 +#define EUR_CR_EVENT_KICK2_NOW_MASK 0x00000001U +#define EUR_CR_EVENT_KICK2_NOW_SHIFT 0 +#define EUR_CR_EVENT_KICK2_NOW_SIGNED 0 +#define EUR_CR_EVENT_KICK3 0x0AEC +#define EUR_CR_EVENT_KICK3_NOW_MASK 0x00000001U +#define EUR_CR_EVENT_KICK3_NOW_SHIFT 0 +#define EUR_CR_EVENT_KICK3_NOW_SIGNED 0 +#define EUR_CR_BIF_CTRL 0x0C00 +#define EUR_CR_BIF_CTRL_NOREORDER_MASK 0x00000001U +#define EUR_CR_BIF_CTRL_NOREORDER_SHIFT 0 +#define EUR_CR_BIF_CTRL_NOREORDER_SIGNED 0 +#define EUR_CR_BIF_CTRL_PAUSE_MASK 0x00000002U +#define EUR_CR_BIF_CTRL_PAUSE_SHIFT 1 +#define EUR_CR_BIF_CTRL_PAUSE_SIGNED 0 +#define EUR_CR_BIF_CTRL_FLUSH_MASK 0x00000004U +#define EUR_CR_BIF_CTRL_FLUSH_SHIFT 2 +#define EUR_CR_BIF_CTRL_FLUSH_SIGNED 0 +#define EUR_CR_BIF_CTRL_INVALDC_MASK 0x00000008U +#define EUR_CR_BIF_CTRL_INVALDC_SHIFT 3 +#define EUR_CR_BIF_CTRL_INVALDC_SIGNED 0 +#define EUR_CR_BIF_CTRL_CLEAR_FAULT_MASK 0x00000010U +#define EUR_CR_BIF_CTRL_CLEAR_FAULT_SHIFT 4 +#define EUR_CR_BIF_CTRL_CLEAR_FAULT_SIGNED 0 +#define EUR_CR_BIF_CTRL_MMU_BYPASS_CACHE_MASK 0x00000100U +#define EUR_CR_BIF_CTRL_MMU_BYPASS_CACHE_SHIFT 8 +#define EUR_CR_BIF_CTRL_MMU_BYPASS_CACHE_SIGNED 0 +#define EUR_CR_BIF_CTRL_MMU_BYPASS_VDM_MASK 0x00000200U +#define EUR_CR_BIF_CTRL_MMU_BYPASS_VDM_SHIFT 9 +#define EUR_CR_BIF_CTRL_MMU_BYPASS_VDM_SIGNED 0 +#define EUR_CR_BIF_CTRL_MMU_BYPASS_TE_MASK 0x00000400U +#define EUR_CR_BIF_CTRL_MMU_BYPASS_TE_SHIFT 10 +#define EUR_CR_BIF_CTRL_MMU_BYPASS_TE_SIGNED 0 +#define EUR_CR_BIF_CTRL_MMU_BYPASS_PBE_MASK 0x00000800U +#define EUR_CR_BIF_CTRL_MMU_BYPASS_PBE_SHIFT 11 +#define EUR_CR_BIF_CTRL_MMU_BYPASS_PBE_SIGNED 0 +#define EUR_CR_BIF_CTRL_MMU_BYPASS_TSPP_MASK 0x00001000U +#define EUR_CR_BIF_CTRL_MMU_BYPASS_TSPP_SHIFT 12 +#define EUR_CR_BIF_CTRL_MMU_BYPASS_TSPP_SIGNED 0 +#define EUR_CR_BIF_CTRL_MMU_BYPASS_ISP_MASK 0x00002000U +#define EUR_CR_BIF_CTRL_MMU_BYPASS_ISP_SHIFT 13 +#define EUR_CR_BIF_CTRL_MMU_BYPASS_ISP_SIGNED 0 +#define EUR_CR_BIF_CTRL_MMU_BYPASS_USE_MASK 0x00004000U +#define EUR_CR_BIF_CTRL_MMU_BYPASS_USE_SHIFT 14 +#define EUR_CR_BIF_CTRL_MMU_BYPASS_USE_SIGNED 0 +#define EUR_CR_BIF_CTRL_MMU_BYPASS_HOST_MASK 0x00008000U +#define EUR_CR_BIF_CTRL_MMU_BYPASS_HOST_SHIFT 15 +#define EUR_CR_BIF_CTRL_MMU_BYPASS_HOST_SIGNED 0 +#define EUR_CR_BIF_INT_STAT 0x0C04 +#define EUR_CR_BIF_INT_STAT_FAULT_REQ_MASK 0x0000FFFFU +#define EUR_CR_BIF_INT_STAT_FAULT_REQ_SHIFT 0 +#define EUR_CR_BIF_INT_STAT_FAULT_REQ_SIGNED 0 +#define EUR_CR_BIF_INT_STAT_FAULT_TYPE_MASK 0x00070000U +#define EUR_CR_BIF_INT_STAT_FAULT_TYPE_SHIFT 16 +#define EUR_CR_BIF_INT_STAT_FAULT_TYPE_SIGNED 0 +#define EUR_CR_BIF_INT_STAT_FLUSH_COMPLETE_MASK 0x00080000U +#define EUR_CR_BIF_INT_STAT_FLUSH_COMPLETE_SHIFT 19 +#define EUR_CR_BIF_INT_STAT_FLUSH_COMPLETE_SIGNED 0 +#define EUR_CR_BIF_FAULT 0x0C08 +#define EUR_CR_BIF_FAULT_CID_MASK 0x0000000FU +#define EUR_CR_BIF_FAULT_CID_SHIFT 0 +#define EUR_CR_BIF_FAULT_CID_SIGNED 0 +#define EUR_CR_BIF_FAULT_SB_MASK 0x000001F0U +#define EUR_CR_BIF_FAULT_SB_SHIFT 4 +#define EUR_CR_BIF_FAULT_SB_SIGNED 0 +#define EUR_CR_BIF_FAULT_ADDR_MASK 0xFFFFF000U +#define EUR_CR_BIF_FAULT_ADDR_SHIFT 12 +#define EUR_CR_BIF_FAULT_ADDR_SIGNED 0 +#define EUR_CR_BIF_TILE0 0x0C0C +#define EUR_CR_BIF_TILE0_MIN_ADDRESS_MASK 0x00000FFFU +#define EUR_CR_BIF_TILE0_MIN_ADDRESS_SHIFT 0 +#define EUR_CR_BIF_TILE0_MIN_ADDRESS_SIGNED 0 +#define EUR_CR_BIF_TILE0_MAX_ADDRESS_MASK 0x00FFF000U +#define EUR_CR_BIF_TILE0_MAX_ADDRESS_SHIFT 12 +#define EUR_CR_BIF_TILE0_MAX_ADDRESS_SIGNED 0 +#define EUR_CR_BIF_TILE0_CFG_MASK 0x0F000000U +#define EUR_CR_BIF_TILE0_CFG_SHIFT 24 +#define EUR_CR_BIF_TILE0_CFG_SIGNED 0 +#define EUR_CR_BIF_TILE1 0x0C10 +#define EUR_CR_BIF_TILE1_MIN_ADDRESS_MASK 0x00000FFFU +#define EUR_CR_BIF_TILE1_MIN_ADDRESS_SHIFT 0 +#define EUR_CR_BIF_TILE1_MIN_ADDRESS_SIGNED 0 +#define EUR_CR_BIF_TILE1_MAX_ADDRESS_MASK 0x00FFF000U +#define EUR_CR_BIF_TILE1_MAX_ADDRESS_SHIFT 12 +#define EUR_CR_BIF_TILE1_MAX_ADDRESS_SIGNED 0 +#define EUR_CR_BIF_TILE1_CFG_MASK 0x0F000000U +#define EUR_CR_BIF_TILE1_CFG_SHIFT 24 +#define EUR_CR_BIF_TILE1_CFG_SIGNED 0 +#define EUR_CR_BIF_TILE2 0x0C14 +#define EUR_CR_BIF_TILE2_MIN_ADDRESS_MASK 0x00000FFFU +#define EUR_CR_BIF_TILE2_MIN_ADDRESS_SHIFT 0 +#define EUR_CR_BIF_TILE2_MIN_ADDRESS_SIGNED 0 +#define EUR_CR_BIF_TILE2_MAX_ADDRESS_MASK 0x00FFF000U +#define EUR_CR_BIF_TILE2_MAX_ADDRESS_SHIFT 12 +#define EUR_CR_BIF_TILE2_MAX_ADDRESS_SIGNED 0 +#define EUR_CR_BIF_TILE2_CFG_MASK 0x0F000000U +#define EUR_CR_BIF_TILE2_CFG_SHIFT 24 +#define EUR_CR_BIF_TILE2_CFG_SIGNED 0 +#define EUR_CR_BIF_TILE3 0x0C18 +#define EUR_CR_BIF_TILE3_MIN_ADDRESS_MASK 0x00000FFFU +#define EUR_CR_BIF_TILE3_MIN_ADDRESS_SHIFT 0 +#define EUR_CR_BIF_TILE3_MIN_ADDRESS_SIGNED 0 +#define EUR_CR_BIF_TILE3_MAX_ADDRESS_MASK 0x00FFF000U +#define EUR_CR_BIF_TILE3_MAX_ADDRESS_SHIFT 12 +#define EUR_CR_BIF_TILE3_MAX_ADDRESS_SIGNED 0 +#define EUR_CR_BIF_TILE3_CFG_MASK 0x0F000000U +#define EUR_CR_BIF_TILE3_CFG_SHIFT 24 +#define EUR_CR_BIF_TILE3_CFG_SIGNED 0 +#define EUR_CR_BIF_TILE4 0x0C1C +#define EUR_CR_BIF_TILE4_MIN_ADDRESS_MASK 0x00000FFFU +#define EUR_CR_BIF_TILE4_MIN_ADDRESS_SHIFT 0 +#define EUR_CR_BIF_TILE4_MIN_ADDRESS_SIGNED 0 +#define EUR_CR_BIF_TILE4_MAX_ADDRESS_MASK 0x00FFF000U +#define EUR_CR_BIF_TILE4_MAX_ADDRESS_SHIFT 12 +#define EUR_CR_BIF_TILE4_MAX_ADDRESS_SIGNED 0 +#define EUR_CR_BIF_TILE4_CFG_MASK 0x0F000000U +#define EUR_CR_BIF_TILE4_CFG_SHIFT 24 +#define EUR_CR_BIF_TILE4_CFG_SIGNED 0 +#define EUR_CR_BIF_TILE5 0x0C20 +#define EUR_CR_BIF_TILE5_MIN_ADDRESS_MASK 0x00000FFFU +#define EUR_CR_BIF_TILE5_MIN_ADDRESS_SHIFT 0 +#define EUR_CR_BIF_TILE5_MIN_ADDRESS_SIGNED 0 +#define EUR_CR_BIF_TILE5_MAX_ADDRESS_MASK 0x00FFF000U +#define EUR_CR_BIF_TILE5_MAX_ADDRESS_SHIFT 12 +#define EUR_CR_BIF_TILE5_MAX_ADDRESS_SIGNED 0 +#define EUR_CR_BIF_TILE5_CFG_MASK 0x0F000000U +#define EUR_CR_BIF_TILE5_CFG_SHIFT 24 +#define EUR_CR_BIF_TILE5_CFG_SIGNED 0 +#define EUR_CR_BIF_TILE6 0x0C24 +#define EUR_CR_BIF_TILE6_MIN_ADDRESS_MASK 0x00000FFFU +#define EUR_CR_BIF_TILE6_MIN_ADDRESS_SHIFT 0 +#define EUR_CR_BIF_TILE6_MIN_ADDRESS_SIGNED 0 +#define EUR_CR_BIF_TILE6_MAX_ADDRESS_MASK 0x00FFF000U +#define EUR_CR_BIF_TILE6_MAX_ADDRESS_SHIFT 12 +#define EUR_CR_BIF_TILE6_MAX_ADDRESS_SIGNED 0 +#define EUR_CR_BIF_TILE6_CFG_MASK 0x0F000000U +#define EUR_CR_BIF_TILE6_CFG_SHIFT 24 +#define EUR_CR_BIF_TILE6_CFG_SIGNED 0 +#define EUR_CR_BIF_TILE7 0x0C28 +#define EUR_CR_BIF_TILE7_MIN_ADDRESS_MASK 0x00000FFFU +#define EUR_CR_BIF_TILE7_MIN_ADDRESS_SHIFT 0 +#define EUR_CR_BIF_TILE7_MIN_ADDRESS_SIGNED 0 +#define EUR_CR_BIF_TILE7_MAX_ADDRESS_MASK 0x00FFF000U +#define EUR_CR_BIF_TILE7_MAX_ADDRESS_SHIFT 12 +#define EUR_CR_BIF_TILE7_MAX_ADDRESS_SIGNED 0 +#define EUR_CR_BIF_TILE7_CFG_MASK 0x0F000000U +#define EUR_CR_BIF_TILE7_CFG_SHIFT 24 +#define EUR_CR_BIF_TILE7_CFG_SIGNED 0 +#define EUR_CR_BIF_TILE8 0x0C2C +#define EUR_CR_BIF_TILE8_MIN_ADDRESS_MASK 0x00000FFFU +#define EUR_CR_BIF_TILE8_MIN_ADDRESS_SHIFT 0 +#define EUR_CR_BIF_TILE8_MIN_ADDRESS_SIGNED 0 +#define EUR_CR_BIF_TILE8_MAX_ADDRESS_MASK 0x00FFF000U +#define EUR_CR_BIF_TILE8_MAX_ADDRESS_SHIFT 12 +#define EUR_CR_BIF_TILE8_MAX_ADDRESS_SIGNED 0 +#define EUR_CR_BIF_TILE8_CFG_MASK 0x0F000000U +#define EUR_CR_BIF_TILE8_CFG_SHIFT 24 +#define EUR_CR_BIF_TILE8_CFG_SIGNED 0 +#define EUR_CR_BIF_TILE9 0x0C30 +#define EUR_CR_BIF_TILE9_MIN_ADDRESS_MASK 0x00000FFFU +#define EUR_CR_BIF_TILE9_MIN_ADDRESS_SHIFT 0 +#define EUR_CR_BIF_TILE9_MIN_ADDRESS_SIGNED 0 +#define EUR_CR_BIF_TILE9_MAX_ADDRESS_MASK 0x00FFF000U +#define EUR_CR_BIF_TILE9_MAX_ADDRESS_SHIFT 12 +#define EUR_CR_BIF_TILE9_MAX_ADDRESS_SIGNED 0 +#define EUR_CR_BIF_TILE9_CFG_MASK 0x0F000000U +#define EUR_CR_BIF_TILE9_CFG_SHIFT 24 +#define EUR_CR_BIF_TILE9_CFG_SIGNED 0 +#define EUR_CR_BIF_DIR_LIST_BASE1 0x0C38 +#define EUR_CR_BIF_DIR_LIST_BASE1_ADDR_MASK 0xFFFFFF00U +#define EUR_CR_BIF_DIR_LIST_BASE1_ADDR_SHIFT 8 +#define EUR_CR_BIF_DIR_LIST_BASE1_ADDR_SIGNED 0 +#define EUR_CR_BIF_DIR_LIST_BASE2 0x0C3C +#define EUR_CR_BIF_DIR_LIST_BASE2_ADDR_MASK 0xFFFFFF00U +#define EUR_CR_BIF_DIR_LIST_BASE2_ADDR_SHIFT 8 +#define EUR_CR_BIF_DIR_LIST_BASE2_ADDR_SIGNED 0 +#define EUR_CR_BIF_DIR_LIST_BASE3 0x0C40 +#define EUR_CR_BIF_DIR_LIST_BASE3_ADDR_MASK 0xFFFFFF00U +#define EUR_CR_BIF_DIR_LIST_BASE3_ADDR_SHIFT 8 +#define EUR_CR_BIF_DIR_LIST_BASE3_ADDR_SIGNED 0 +#define EUR_CR_BIF_DIR_LIST_BASE4 0x0C44 +#define EUR_CR_BIF_DIR_LIST_BASE4_ADDR_MASK 0xFFFFFF00U +#define EUR_CR_BIF_DIR_LIST_BASE4_ADDR_SHIFT 8 +#define EUR_CR_BIF_DIR_LIST_BASE4_ADDR_SIGNED 0 +#define EUR_CR_BIF_DIR_LIST_BASE5 0x0C48 +#define EUR_CR_BIF_DIR_LIST_BASE5_ADDR_MASK 0xFFFFFF00U +#define EUR_CR_BIF_DIR_LIST_BASE5_ADDR_SHIFT 8 +#define EUR_CR_BIF_DIR_LIST_BASE5_ADDR_SIGNED 0 +#define EUR_CR_BIF_DIR_LIST_BASE6 0x0C4C +#define EUR_CR_BIF_DIR_LIST_BASE6_ADDR_MASK 0xFFFFFF00U +#define EUR_CR_BIF_DIR_LIST_BASE6_ADDR_SHIFT 8 +#define EUR_CR_BIF_DIR_LIST_BASE6_ADDR_SIGNED 0 +#define EUR_CR_BIF_DIR_LIST_BASE7 0x0C50 +#define EUR_CR_BIF_DIR_LIST_BASE7_ADDR_MASK 0xFFFFFF00U +#define EUR_CR_BIF_DIR_LIST_BASE7_ADDR_SHIFT 8 +#define EUR_CR_BIF_DIR_LIST_BASE7_ADDR_SIGNED 0 +#define EUR_CR_BIF_DIR_LIST_BASE8 0x0C54 +#define EUR_CR_BIF_DIR_LIST_BASE8_ADDR_MASK 0xFFFFFF00U +#define EUR_CR_BIF_DIR_LIST_BASE8_ADDR_SHIFT 8 +#define EUR_CR_BIF_DIR_LIST_BASE8_ADDR_SIGNED 0 +#define EUR_CR_BIF_DIR_LIST_BASE9 0x0C58 +#define EUR_CR_BIF_DIR_LIST_BASE9_ADDR_MASK 0xFFFFFF00U +#define EUR_CR_BIF_DIR_LIST_BASE9_ADDR_SHIFT 8 +#define EUR_CR_BIF_DIR_LIST_BASE9_ADDR_SIGNED 0 +#define EUR_CR_BIF_DIR_LIST_BASE10 0x0C5C +#define EUR_CR_BIF_DIR_LIST_BASE10_ADDR_MASK 0xFFFFFF00U +#define EUR_CR_BIF_DIR_LIST_BASE10_ADDR_SHIFT 8 +#define EUR_CR_BIF_DIR_LIST_BASE10_ADDR_SIGNED 0 +#define EUR_CR_BIF_DIR_LIST_BASE11 0x0C60 +#define EUR_CR_BIF_DIR_LIST_BASE11_ADDR_MASK 0xFFFFFF00U +#define EUR_CR_BIF_DIR_LIST_BASE11_ADDR_SHIFT 8 +#define EUR_CR_BIF_DIR_LIST_BASE11_ADDR_SIGNED 0 +#define EUR_CR_BIF_DIR_LIST_BASE12 0x0C64 +#define EUR_CR_BIF_DIR_LIST_BASE12_ADDR_MASK 0xFFFFFF00U +#define EUR_CR_BIF_DIR_LIST_BASE12_ADDR_SHIFT 8 +#define EUR_CR_BIF_DIR_LIST_BASE12_ADDR_SIGNED 0 +#define EUR_CR_BIF_DIR_LIST_BASE13 0x0C68 +#define EUR_CR_BIF_DIR_LIST_BASE13_ADDR_MASK 0xFFFFFF00U +#define EUR_CR_BIF_DIR_LIST_BASE13_ADDR_SHIFT 8 +#define EUR_CR_BIF_DIR_LIST_BASE13_ADDR_SIGNED 0 +#define EUR_CR_BIF_DIR_LIST_BASE14 0x0C6C +#define EUR_CR_BIF_DIR_LIST_BASE14_ADDR_MASK 0xFFFFFF00U +#define EUR_CR_BIF_DIR_LIST_BASE14_ADDR_SHIFT 8 +#define EUR_CR_BIF_DIR_LIST_BASE14_ADDR_SIGNED 0 +#define EUR_CR_BIF_DIR_LIST_BASE15 0x0C70 +#define EUR_CR_BIF_DIR_LIST_BASE15_ADDR_MASK 0xFFFFFF00U +#define EUR_CR_BIF_DIR_LIST_BASE15_ADDR_SHIFT 8 +#define EUR_CR_BIF_DIR_LIST_BASE15_ADDR_SIGNED 0 +#define EUR_CR_BIF_BANK_SET 0x0C74 +#define EUR_CR_BIF_BANK_SET_SELECT_2D_MASK 0x00000001U +#define EUR_CR_BIF_BANK_SET_SELECT_2D_SHIFT 0 +#define EUR_CR_BIF_BANK_SET_SELECT_2D_SIGNED 0 +#define EUR_CR_BIF_BANK_SET_SELECT_3D_MASK 0x0000000CU +#define EUR_CR_BIF_BANK_SET_SELECT_3D_SHIFT 2 +#define EUR_CR_BIF_BANK_SET_SELECT_3D_SIGNED 0 +#define EUR_CR_BIF_BANK_SET_SELECT_HOST_MASK 0x00000010U +#define EUR_CR_BIF_BANK_SET_SELECT_HOST_SHIFT 4 +#define EUR_CR_BIF_BANK_SET_SELECT_HOST_SIGNED 0 +#define EUR_CR_BIF_BANK_SET_SELECT_TA_MASK 0x000000C0U +#define EUR_CR_BIF_BANK_SET_SELECT_TA_SHIFT 6 +#define EUR_CR_BIF_BANK_SET_SELECT_TA_SIGNED 0 +#define EUR_CR_BIF_BANK_SET_SELECT_EDM_MASK 0x00000100U +#define EUR_CR_BIF_BANK_SET_SELECT_EDM_SHIFT 8 +#define EUR_CR_BIF_BANK_SET_SELECT_EDM_SIGNED 0 +#define EUR_CR_BIF_BANK_SET_SELECT_DPM_LSS_MASK 0x00000200U +#define EUR_CR_BIF_BANK_SET_SELECT_DPM_LSS_SHIFT 9 +#define EUR_CR_BIF_BANK_SET_SELECT_DPM_LSS_SIGNED 0 +#define EUR_CR_BIF_BANK0 0x0C78 +#define EUR_CR_BIF_BANK0_INDEX_EDM_MASK 0x0000000FU +#define EUR_CR_BIF_BANK0_INDEX_EDM_SHIFT 0 +#define EUR_CR_BIF_BANK0_INDEX_EDM_SIGNED 0 +#define EUR_CR_BIF_BANK0_INDEX_TA_MASK 0x000000F0U +#define EUR_CR_BIF_BANK0_INDEX_TA_SHIFT 4 +#define EUR_CR_BIF_BANK0_INDEX_TA_SIGNED 0 +#define EUR_CR_BIF_BANK0_INDEX_HOST_MASK 0x00000F00U +#define EUR_CR_BIF_BANK0_INDEX_HOST_SHIFT 8 +#define EUR_CR_BIF_BANK0_INDEX_HOST_SIGNED 0 +#define EUR_CR_BIF_BANK0_INDEX_3D_MASK 0x0000F000U +#define EUR_CR_BIF_BANK0_INDEX_3D_SHIFT 12 +#define EUR_CR_BIF_BANK0_INDEX_3D_SIGNED 0 +#define EUR_CR_BIF_BANK0_INDEX_2D_MASK 0x000F0000U +#define EUR_CR_BIF_BANK0_INDEX_2D_SHIFT 16 +#define EUR_CR_BIF_BANK0_INDEX_2D_SIGNED 0 +#define EUR_CR_BIF_BANK1 0x0C7C +#define EUR_CR_BIF_BANK1_INDEX_EDM_MASK 0x0000000FU +#define EUR_CR_BIF_BANK1_INDEX_EDM_SHIFT 0 +#define EUR_CR_BIF_BANK1_INDEX_EDM_SIGNED 0 +#define EUR_CR_BIF_BANK1_INDEX_TA_MASK 0x000000F0U +#define EUR_CR_BIF_BANK1_INDEX_TA_SHIFT 4 +#define EUR_CR_BIF_BANK1_INDEX_TA_SIGNED 0 +#define EUR_CR_BIF_BANK1_INDEX_HOST_MASK 0x00000F00U +#define EUR_CR_BIF_BANK1_INDEX_HOST_SHIFT 8 +#define EUR_CR_BIF_BANK1_INDEX_HOST_SIGNED 0 +#define EUR_CR_BIF_BANK1_INDEX_3D_MASK 0x0000F000U +#define EUR_CR_BIF_BANK1_INDEX_3D_SHIFT 12 +#define EUR_CR_BIF_BANK1_INDEX_3D_SIGNED 0 +#define EUR_CR_BIF_BANK1_INDEX_2D_MASK 0x000F0000U +#define EUR_CR_BIF_BANK1_INDEX_2D_SHIFT 16 +#define EUR_CR_BIF_BANK1_INDEX_2D_SIGNED 0 +#define EUR_CR_BIF_DIR_LIST_BASE0 0x0C84 +#define EUR_CR_BIF_DIR_LIST_BASE0_ADDR_MASK 0xFFFFFF00U +#define EUR_CR_BIF_DIR_LIST_BASE0_ADDR_SHIFT 8 +#define EUR_CR_BIF_DIR_LIST_BASE0_ADDR_SIGNED 0 +#define EUR_CR_BIF_TA_REQ_BASE 0x0C90 +#define EUR_CR_BIF_TA_REQ_BASE_ADDR_MASK 0xFFF00000U +#define EUR_CR_BIF_TA_REQ_BASE_ADDR_SHIFT 20 +#define EUR_CR_BIF_TA_REQ_BASE_ADDR_SIGNED 0 +#define EUR_CR_BIF_MEM_REQ_STAT 0x0CA8 +#define EUR_CR_BIF_MEM_REQ_STAT_READS_MASK 0x000007FFU +#define EUR_CR_BIF_MEM_REQ_STAT_READS_SHIFT 0 +#define EUR_CR_BIF_MEM_REQ_STAT_READS_SIGNED 0 +#define EUR_CR_BIF_3D_REQ_BASE 0x0CAC +#define EUR_CR_BIF_3D_REQ_BASE_ADDR_MASK 0xFFF00000U +#define EUR_CR_BIF_3D_REQ_BASE_ADDR_SHIFT 20 +#define EUR_CR_BIF_3D_REQ_BASE_ADDR_SIGNED 0 +#define EUR_CR_BIF_ZLS_REQ_BASE 0x0CB0 +#define EUR_CR_BIF_ZLS_REQ_BASE_ADDR_MASK 0xFFF00000U +#define EUR_CR_BIF_ZLS_REQ_BASE_ADDR_SHIFT 20 +#define EUR_CR_BIF_ZLS_REQ_BASE_ADDR_SIGNED 0 +#define EUR_CR_BIF_BANK_STATUS 0x0CB4 +#define EUR_CR_BIF_BANK_STATUS_3D_CURRENT_BANK_MASK 0x00000001U +#define EUR_CR_BIF_BANK_STATUS_3D_CURRENT_BANK_SHIFT 0 +#define EUR_CR_BIF_BANK_STATUS_3D_CURRENT_BANK_SIGNED 0 +#define EUR_CR_BIF_BANK_STATUS_TA_CURRENT_BANK_MASK 0x00000002U +#define EUR_CR_BIF_BANK_STATUS_TA_CURRENT_BANK_SHIFT 1 +#define EUR_CR_BIF_BANK_STATUS_TA_CURRENT_BANK_SIGNED 0 +#define EUR_CR_BIF_36BIT_ADDRESSING 0x0CCC +#define EUR_CR_BIF_36BIT_ADDRESSING_ENABLE_MASK 0x00000001U +#define EUR_CR_BIF_36BIT_ADDRESSING_ENABLE_SHIFT 0 +#define EUR_CR_BIF_36BIT_ADDRESSING_ENABLE_SIGNED 0 +#define EUR_CR_BIF_TILE0_ADDR_EXT 0x0CD0 +#define EUR_CR_BIF_TILE0_ADDR_EXT_MIN_MASK 0x000000FFU +#define EUR_CR_BIF_TILE0_ADDR_EXT_MIN_SHIFT 0 +#define EUR_CR_BIF_TILE0_ADDR_EXT_MIN_SIGNED 0 +#define EUR_CR_BIF_TILE0_ADDR_EXT_MAX_MASK 0x0000FF00U +#define EUR_CR_BIF_TILE0_ADDR_EXT_MAX_SHIFT 8 +#define EUR_CR_BIF_TILE0_ADDR_EXT_MAX_SIGNED 0 +#define EUR_CR_BIF_TILE1_ADDR_EXT 0x0CD4 +#define EUR_CR_BIF_TILE1_ADDR_EXT_MIN_MASK 0x000000FFU +#define EUR_CR_BIF_TILE1_ADDR_EXT_MIN_SHIFT 0 +#define EUR_CR_BIF_TILE1_ADDR_EXT_MIN_SIGNED 0 +#define EUR_CR_BIF_TILE1_ADDR_EXT_MAX_MASK 0x0000FF00U +#define EUR_CR_BIF_TILE1_ADDR_EXT_MAX_SHIFT 8 +#define EUR_CR_BIF_TILE1_ADDR_EXT_MAX_SIGNED 0 +#define EUR_CR_BIF_TILE2_ADDR_EXT 0x0CD8 +#define EUR_CR_BIF_TILE2_ADDR_EXT_MIN_MASK 0x000000FFU +#define EUR_CR_BIF_TILE2_ADDR_EXT_MIN_SHIFT 0 +#define EUR_CR_BIF_TILE2_ADDR_EXT_MIN_SIGNED 0 +#define EUR_CR_BIF_TILE2_ADDR_EXT_MAX_MASK 0x0000FF00U +#define EUR_CR_BIF_TILE2_ADDR_EXT_MAX_SHIFT 8 +#define EUR_CR_BIF_TILE2_ADDR_EXT_MAX_SIGNED 0 +#define EUR_CR_BIF_TILE3_ADDR_EXT 0x0CDC +#define EUR_CR_BIF_TILE3_ADDR_EXT_MIN_MASK 0x000000FFU +#define EUR_CR_BIF_TILE3_ADDR_EXT_MIN_SHIFT 0 +#define EUR_CR_BIF_TILE3_ADDR_EXT_MIN_SIGNED 0 +#define EUR_CR_BIF_TILE3_ADDR_EXT_MAX_MASK 0x0000FF00U +#define EUR_CR_BIF_TILE3_ADDR_EXT_MAX_SHIFT 8 +#define EUR_CR_BIF_TILE3_ADDR_EXT_MAX_SIGNED 0 +#define EUR_CR_BIF_TILE4_ADDR_EXT 0x0CE0 +#define EUR_CR_BIF_TILE4_ADDR_EXT_MIN_MASK 0x000000FFU +#define EUR_CR_BIF_TILE4_ADDR_EXT_MIN_SHIFT 0 +#define EUR_CR_BIF_TILE4_ADDR_EXT_MIN_SIGNED 0 +#define EUR_CR_BIF_TILE4_ADDR_EXT_MAX_MASK 0x0000FF00U +#define EUR_CR_BIF_TILE4_ADDR_EXT_MAX_SHIFT 8 +#define EUR_CR_BIF_TILE4_ADDR_EXT_MAX_SIGNED 0 +#define EUR_CR_BIF_TILE5_ADDR_EXT 0x0CE4 +#define EUR_CR_BIF_TILE5_ADDR_EXT_MIN_MASK 0x000000FFU +#define EUR_CR_BIF_TILE5_ADDR_EXT_MIN_SHIFT 0 +#define EUR_CR_BIF_TILE5_ADDR_EXT_MIN_SIGNED 0 +#define EUR_CR_BIF_TILE5_ADDR_EXT_MAX_MASK 0x0000FF00U +#define EUR_CR_BIF_TILE5_ADDR_EXT_MAX_SHIFT 8 +#define EUR_CR_BIF_TILE5_ADDR_EXT_MAX_SIGNED 0 +#define EUR_CR_BIF_TILE6_ADDR_EXT 0x0CE8 +#define EUR_CR_BIF_TILE6_ADDR_EXT_MIN_MASK 0x000000FFU +#define EUR_CR_BIF_TILE6_ADDR_EXT_MIN_SHIFT 0 +#define EUR_CR_BIF_TILE6_ADDR_EXT_MIN_SIGNED 0 +#define EUR_CR_BIF_TILE6_ADDR_EXT_MAX_MASK 0x0000FF00U +#define EUR_CR_BIF_TILE6_ADDR_EXT_MAX_SHIFT 8 +#define EUR_CR_BIF_TILE6_ADDR_EXT_MAX_SIGNED 0 +#define EUR_CR_BIF_TILE7_ADDR_EXT 0x0CEC +#define EUR_CR_BIF_TILE7_ADDR_EXT_MIN_MASK 0x000000FFU +#define EUR_CR_BIF_TILE7_ADDR_EXT_MIN_SHIFT 0 +#define EUR_CR_BIF_TILE7_ADDR_EXT_MIN_SIGNED 0 +#define EUR_CR_BIF_TILE7_ADDR_EXT_MAX_MASK 0x0000FF00U +#define EUR_CR_BIF_TILE7_ADDR_EXT_MAX_SHIFT 8 +#define EUR_CR_BIF_TILE7_ADDR_EXT_MAX_SIGNED 0 +#define EUR_CR_BIF_TILE8_ADDR_EXT 0x0CF0 +#define EUR_CR_BIF_TILE8_ADDR_EXT_MIN_MASK 0x000000FFU +#define EUR_CR_BIF_TILE8_ADDR_EXT_MIN_SHIFT 0 +#define EUR_CR_BIF_TILE8_ADDR_EXT_MIN_SIGNED 0 +#define EUR_CR_BIF_TILE8_ADDR_EXT_MAX_MASK 0x0000FF00U +#define EUR_CR_BIF_TILE8_ADDR_EXT_MAX_SHIFT 8 +#define EUR_CR_BIF_TILE8_ADDR_EXT_MAX_SIGNED 0 +#define EUR_CR_BIF_TILE9_ADDR_EXT 0x0CF4 +#define EUR_CR_BIF_TILE9_ADDR_EXT_MIN_MASK 0x000000FFU +#define EUR_CR_BIF_TILE9_ADDR_EXT_MIN_SHIFT 0 +#define EUR_CR_BIF_TILE9_ADDR_EXT_MIN_SIGNED 0 +#define EUR_CR_BIF_TILE9_ADDR_EXT_MAX_MASK 0x0000FF00U +#define EUR_CR_BIF_TILE9_ADDR_EXT_MAX_SHIFT 8 +#define EUR_CR_BIF_TILE9_ADDR_EXT_MAX_SIGNED 0 +#define EUR_CR_BIF_CTRL_RDATA 0x0CF8 +#define EUR_CR_BIF_CTRL_RDATA_LIMIT_MASK 0x000003FFU +#define EUR_CR_BIF_CTRL_RDATA_LIMIT_SHIFT 0 +#define EUR_CR_BIF_CTRL_RDATA_LIMIT_SIGNED 0 +#define EUR_CR_USE_CODE_BASE(X) (0x0A0C + (4 * (X))) +#define EUR_CR_USE_CODE_BASE_ADDR_MASK 0x01FFFFFFU +#define EUR_CR_USE_CODE_BASE_ADDR_SHIFT 0 +#define EUR_CR_USE_CODE_BASE_ADDR_SIGNED 0 +#define EUR_CR_USE_CODE_BASE_DM_MASK 0x06000000U +#define EUR_CR_USE_CODE_BASE_DM_SHIFT 25 +#define EUR_CR_USE_CODE_BASE_DM_SIGNED 0 +#define EUR_CR_USE_CODE_BASE_SIZE_UINT32 16 +#define EUR_CR_USE_CODE_BASE_NUM_ENTRIES 16 + +#endif + |