Пример #1
0
/*****************************************************************************
 FUNCTION	:	DBGDrivCreateStream

 PURPOSE	:

 PARAMETERS	:

 RETURNS	:
*****************************************************************************/
static IMG_UINT32 DBGDIOCDrivCreateStream(IMG_VOID * pvInBuffer, IMG_VOID * pvOutBuffer)
{
	PDBG_IN_CREATESTREAM psIn;
	IMG_VOID * *ppvOut;
	#ifdef LINUX
	static IMG_CHAR name[32];
	#endif

	psIn = (PDBG_IN_CREATESTREAM) pvInBuffer;
	ppvOut = (IMG_VOID * *) pvOutBuffer;

	#ifdef LINUX

	if(pvr_copy_from_user(name, psIn->u.pszName, 32) != 0)
	{
		return IMG_FALSE;
	}

	*ppvOut = ExtDBGDrivCreateStream(name, psIn->ui32CapMode, psIn->ui32OutMode, 0, psIn->ui32Pages);

	#else
	*ppvOut = ExtDBGDrivCreateStream(psIn->u.pszName, psIn->ui32CapMode, psIn->ui32OutMode, DEBUG_FLAGS_NO_BUF_EXPANDSION, psIn->ui32Pages);
	#endif

	return(IMG_TRUE);
}
Пример #2
0
IMG_INT PVRDebugProcSetLevel(struct file *file, const IMG_CHAR *buffer, IMG_UINT32 count, IMG_VOID *data)
{
#define	_PROC_SET_BUFFER_SZ		2
	IMG_CHAR data_buffer[_PROC_SET_BUFFER_SZ];

	if (count != _PROC_SET_BUFFER_SZ)
	{
		return -EINVAL;
	}
	else
	{
		if (pvr_copy_from_user(data_buffer, buffer, count))
			return -EINVAL;
		if (data_buffer[count - 1] != '\n')
			return -EINVAL;
		gPVRDebugLevel = data_buffer[0] - '0';
	}
	return (count);
}
Пример #3
0
IMG_INT PVRDebugProcSetLevel(struct file *file, const IMG_CHAR *buffer, IMG_UINT32 count, IMG_VOID *data)
{
#define	_PROC_SET_BUFFER_SZ		6
	IMG_CHAR data_buffer[_PROC_SET_BUFFER_SZ];

	if (count > _PROC_SET_BUFFER_SZ)
	{
		return -EINVAL;
	}
	else
	{
		if (pvr_copy_from_user(data_buffer, buffer, count))
			return -EINVAL;
		if (data_buffer[count - 1] != '\n')
			return -EINVAL;
		if (sscanf(data_buffer, "%i", &gPVRDebugLevel) == 0)
			return -EINVAL;
		gPVRDebugLevel &= (1 << DBGPRIV_DBGLEVEL_COUNT) - 1;
	}
	return (count);
}
static IMG_INT GpuTracingSet(const IMG_CHAR *buffer, size_t count, loff_t uiPosition, void *data)
{
    IMG_CHAR cFirstChar;

    PVR_UNREFERENCED_PARAMETER(uiPosition);
    PVR_UNREFERENCED_PARAMETER(data);

    if (!count)
    {
        return -EINVAL;
    }

    if (pvr_copy_from_user(&cFirstChar, buffer, 1))
    {
        return -EFAULT;
    }

    switch (cFirstChar)
    {
    case '0':
    case 'n':
    case 'N':
    {
        PVRGpuTraceEnabledSet(IMG_FALSE);
        PVR_TRACE(("DISABLED GPU FTrace"));
        break;
    }
    case '1':
    case 'y':
    case 'Y':
    {
        PVRGpuTraceEnabledSet(IMG_TRUE);
        PVR_TRACE(("ENABLED GPU FTrace"));
        break;
    }
    }

    return count;
}