ANSC_STATUS BwrmPmoCancel ( ANSC_HANDLE hThisObject ) { ANSC_STATUS returnStatus = ANSC_STATUS_SUCCESS; PBWRM_PAGE_MANAGER_OBJECT pMyObject = (PBWRM_PAGE_MANAGER_OBJECT )hThisObject; PBWRM_PAGE_MANAGER_PROPERTY pProperty = (PBWRM_PAGE_MANAGER_PROPERTY )&pMyObject->Property; PANSC_TIMER_DESCRIPTOR_OBJECT pCacheTimerObject = (PANSC_TIMER_DESCRIPTOR_OBJECT)pMyObject->hCacheTimerObject; if ( !pMyObject->bActive ) { return ANSC_STATUS_SUCCESS; } else { pMyObject->bActive = FALSE; } pCacheTimerObject->Stop((ANSC_HANDLE)pCacheTimerObject); pMyObject->DelAllPages((ANSC_HANDLE)pMyObject); return ANSC_STATUS_SUCCESS; }
ANSC_STATUS BwrmEcoRamControlCache ( ANSC_HANDLE hThisObject, ULONG ctrl_code ) { ANSC_STATUS returnStatus = ANSC_STATUS_SUCCESS; PBWRM_ENV_CONTROLLER_OBJECT pMyObject = (PBWRM_ENV_CONTROLLER_OBJECT )hThisObject; PBWRM_ENV_CONTROLLER_PROPERTY pProperty = (PBWRM_ENV_CONTROLLER_PROPERTY)&pMyObject->Property; PBWRM_PAGE_MANAGER_OBJECT pBwrmPageManager = (PBWRM_PAGE_MANAGER_OBJECT )pMyObject->hBwrmPageManager; switch ( ctrl_code ) { case BWRM_RAM_CTRL_CODE_enable : returnStatus = pBwrmPageManager->SetCacheEnabled ( (ANSC_HANDLE)pBwrmPageManager, TRUE ); break; case BWRM_RAM_CTRL_CODE_disable : returnStatus = pBwrmPageManager->SetCacheEnabled ( (ANSC_HANDLE)pBwrmPageManager, FALSE ); break; case BWRM_RAM_CTRL_CODE_reset : returnStatus = pBwrmPageManager->DelAllPages((ANSC_HANDLE)pBwrmPageManager); break; default : returnStatus = ANSC_STATUS_UNAPPLICABLE; break; } return returnStatus; }
ANSC_STATUS BwrmPmoCacheTimerInvoke ( ANSC_HANDLE hThisObject ) { ANSC_STATUS returnStatus = ANSC_STATUS_SUCCESS; PBWRM_PAGE_MANAGER_OBJECT pMyObject = (PBWRM_PAGE_MANAGER_OBJECT )hThisObject; PBWRM_PAGE_MANAGER_PROPERTY pProperty = (PBWRM_PAGE_MANAGER_PROPERTY )&pMyObject->Property; PANSC_TIMER_DESCRIPTOR_OBJECT pCacheTimerObject = (PANSC_TIMER_DESCRIPTOR_OBJECT)pMyObject->hCacheTimerObject; ULONG ulCurTime = AnscGetTickInSeconds(); if ( (ulCurTime - pMyObject->Timestamp) > pProperty->CacheTimeout ) { pMyObject->DelAllPages((ANSC_HANDLE)pMyObject); } return ANSC_STATUS_SUCCESS; }