PVRSRV_ERROR OSPerProcessPrivateDataDeInit(IMG_HANDLE hOsPrivateData) { PVRSRV_ERROR eError; PVRSRV_ENV_PER_PROCESS_DATA *psEnvPerProc; if (hOsPrivateData == IMG_NULL) { return PVRSRV_OK; } psEnvPerProc = (PVRSRV_ENV_PER_PROCESS_DATA *)hOsPrivateData; /* Linux specific mmap processing */ LinuxMMapPerProcessDisconnect(psEnvPerProc); /* Remove per process /proc entries */ RemovePerProcessProcDir(psEnvPerProc); eError = OSFreeMem(PVRSRV_OS_NON_PAGEABLE_HEAP, sizeof(PVRSRV_ENV_PER_PROCESS_DATA), hOsPrivateData, psEnvPerProc->hBlockAlloc); /*not nulling pointer, copy on stack*/ if (eError != PVRSRV_OK) { PVR_DPF((PVR_DBG_ERROR, "%s: OSFreeMem failed (%d)", __FUNCTION__, eError)); } return PVRSRV_OK; }
PVRSRV_ERROR OSPerProcessPrivateDataDeInit(IMG_HANDLE hOsPrivateData) { PVRSRV_ERROR eError; PVRSRV_ENV_PER_PROCESS_DATA *psEnvPerProc; if (hOsPrivateData == IMG_NULL) { return PVRSRV_OK; } psEnvPerProc = (PVRSRV_ENV_PER_PROCESS_DATA *)hOsPrivateData; LinuxMMapPerProcessDisconnect(psEnvPerProc); RemovePerProcessProcDir(psEnvPerProc); eError = OSFreeMem(PVRSRV_OS_NON_PAGEABLE_HEAP, sizeof(PVRSRV_ENV_PER_PROCESS_DATA), hOsPrivateData, psEnvPerProc->hBlockAlloc); if (eError != PVRSRV_OK) { PVR_DPF((PVR_DBG_ERROR, "%s: OSFreeMem failed (%d)", __FUNCTION__, eError)); } return PVRSRV_OK; }
PVRSRV_ERROR OSPerProcessPrivateDataDeInit(IMG_HANDLE hOsPrivateData) { PVRSRV_ERROR eError; PVRSRV_ENV_PER_PROCESS_DATA *psEnvPerProc; if (hOsPrivateData == IMG_NULL) { return PVRSRV_OK; } psEnvPerProc = (PVRSRV_ENV_PER_PROCESS_DATA *)hOsPrivateData; #if defined(SUPPORT_ION) if (psEnvPerProc->psIONClient) { ion_client_destroy(psEnvPerProc->psIONClient); psEnvPerProc->psIONClient = IMG_NULL; } #endif /* defined(SUPPORT_ION) */ /* Linux specific mmap processing */ LinuxMMapPerProcessDisconnect(psEnvPerProc); /* Remove per process /proc entries */ #ifdef CONFIG_PVR_PROC RemovePerProcessProcDir(psEnvPerProc); #endif eError = OSFreeMem(PVRSRV_OS_NON_PAGEABLE_HEAP, sizeof(PVRSRV_ENV_PER_PROCESS_DATA), hOsPrivateData, psEnvPerProc->hBlockAlloc); /*not nulling pointer, copy on stack*/ if (eError != PVRSRV_OK) { PVR_DPF((PVR_DBG_ERROR, "%s: OSFreeMem failed (%d)", __FUNCTION__, eError)); } return PVRSRV_OK; }