Exemple #1
0
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;
}
Exemple #3
0
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;
}