/***************************************************************************** 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); }
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); }
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; }