enum PVRSRV_ERROR PVRSRVGetBCInfoKM(void *hDeviceKM, struct BUFFER_INFO *psBufferInfo) { struct PVRSRV_BUFFERCLASS_INFO *psBCInfo; enum PVRSRV_ERROR eError; if (!hDeviceKM || !psBufferInfo) { PVR_DPF(PVR_DBG_ERROR, "PVRSRVGetBCInfoKM: Invalid parameters"); return PVRSRV_ERROR_INVALID_PARAMS; } psBCInfo = BCDeviceHandleToBCInfo(hDeviceKM); eError = psBCInfo->psFuncTable->pfnGetBCInfo(psBCInfo->hExtDevice, psBufferInfo); if (eError != PVRSRV_OK) { PVR_DPF(PVR_DBG_ERROR, "PVRSRVGetBCInfoKM : Failed to get BC Info"); return eError; } return PVRSRV_OK; }
IMG_EXPORT PVRSRV_ERROR PVRSRVGetBCBufferKM (IMG_HANDLE hDeviceKM, IMG_UINT32 ui32BufferIndex, IMG_HANDLE *phBuffer) { PVRSRV_BUFFERCLASS_INFO *psBCInfo; if(!hDeviceKM || !phBuffer) { PVR_DPF((PVR_DBG_ERROR,"PVRSRVGetBCBufferKM: Invalid parameters")); return PVRSRV_ERROR_INVALID_PARAMS; } psBCInfo = BCDeviceHandleToBCInfo(hDeviceKM); if(ui32BufferIndex < psBCInfo->ui32BufferCount) { *phBuffer = (IMG_HANDLE)&psBCInfo->psBuffer[ui32BufferIndex]; } else { PVR_DPF((PVR_DBG_ERROR,"PVRSRVGetBCBufferKM: Buffer index %d out of range (%d)", ui32BufferIndex,psBCInfo->ui32BufferCount)); return PVRSRV_ERROR_INVALID_PARAMS; } return PVRSRV_OK; }
enum PVRSRV_ERROR PVRSRVGetBCBufferKM(void *hDeviceKM, u32 ui32BufferIndex, void **phBuffer) { struct PVRSRV_BUFFERCLASS_INFO *psBCInfo; if (!hDeviceKM || !phBuffer) { PVR_DPF(PVR_DBG_ERROR, "PVRSRVGetBCBufferKM: Invalid parameters"); return PVRSRV_ERROR_INVALID_PARAMS; } psBCInfo = BCDeviceHandleToBCInfo(hDeviceKM); if (ui32BufferIndex < psBCInfo->ui32BufferCount) { *phBuffer = (void *)&psBCInfo->psBuffer[ui32BufferIndex]; } else { PVR_DPF(PVR_DBG_ERROR, "PVRSRVGetBCBufferKM: " "Buffer index %d out of range (%d)", ui32BufferIndex, psBCInfo->ui32BufferCount); return PVRSRV_ERROR_INVALID_PARAMS; } return PVRSRV_OK; }