DRI_DRM_STATIC IMG_INT PVRDRMUnprivCmd(struct drm_device *dev, IMG_VOID *arg, struct drm_file *pFile) { IMG_UINT32 *pui32Args = (IMG_UINT32 *)arg; IMG_UINT32 ui32Cmd = pui32Args[0]; IMG_UINT32 ui32Arg1 = pui32Args[1]; IMG_UINT32 *pui32OutArg = (IMG_UINT32 *)arg; switch (ui32Cmd) { case PVR_DRM_UNPRIV_INIT_SUCCESFUL: *pui32OutArg = PVRSRVGetInitServerState(PVRSRV_INIT_SERVER_SUCCESSFUL) ? 1 : 0; break; case PVR_DRM_UNPRIV_BUSID_TYPE: *pui32OutArg = PVR_DRM_BUS_TYPE_PCI; break; case PVR_DRM_UNPRIV_BUSID_FIELD: return PVRDRMPCIBusIDField(dev, pui32OutArg, ui32Arg1); default: return -EFAULT; } return 0; }
static int PVRDRMUnprivCmd(struct drm_device *dev, void *arg, struct drm_file *pFile) { u32 *pui32Args = (u32 *) arg; u32 ui32Cmd = pui32Args[0]; u32 ui32Arg1 = pui32Args[1]; u32 *pui32OutArg = (u32 *) arg; s32 ret = 0; mutex_lock(&gPVRSRVLock); switch (ui32Cmd) { case PVR_DRM_UNPRIV_INIT_SUCCESFUL: *pui32OutArg = PVRSRVGetInitServerState(PVRSRV_INIT_SERVER_SUCCESSFUL) ? 1 : 0; break; case PVR_DRM_UNPRIV_BUSID_TYPE: *pui32OutArg = PVR_DRM_BUS_TYPE_PCI; break; case PVR_DRM_UNPRIV_BUSID_FIELD: ret = PVRDRMPCIBusIDField(dev, pui32OutArg, ui32Arg1); default: ret = -EFAULT; } mutex_unlock(&gPVRSRVLock); return ret; }