X-Git-Url: https://git.saurik.com/apple/xnu.git/blobdiff_plain/3903760236c30e3b5ace7a4eefac3a269d68957c..a39ff7e25e19b3a8c3020042a3872ca9ec9659f1:/iokit/Kernel/RootDomainUserClient.cpp diff --git a/iokit/Kernel/RootDomainUserClient.cpp b/iokit/Kernel/RootDomainUserClient.cpp index a7836f4c3..7a909d998 100644 --- a/iokit/Kernel/RootDomainUserClient.cpp +++ b/iokit/Kernel/RootDomainUserClient.cpp @@ -198,7 +198,7 @@ IOReturn RootDomainUserClient::secureSetUserAssertionLevels( } IOReturn RootDomainUserClient::secureGetSystemSleepType( - uint32_t *outSleepType) + uint32_t *outSleepType, uint32_t *sleepTimer) { int admin_priv = 0; IOReturn ret; @@ -207,7 +207,7 @@ IOReturn RootDomainUserClient::secureGetSystemSleepType( admin_priv = (kIOReturnSuccess == ret); if (admin_priv && fOwner) { - ret = fOwner->getSystemSleepType(outSleepType); + ret = fOwner->getSystemSleepType(outSleepType, sleepTimer); } else { ret = kIOReturnNotPrivileged; } @@ -216,14 +216,19 @@ IOReturn RootDomainUserClient::secureGetSystemSleepType( IOReturn RootDomainUserClient::clientClose( void ) { - detach(fOwner); + terminate(); + return kIOReturnSuccess; +} + +void RootDomainUserClient::stop( IOService *provider) +{ if(fOwningTask) { task_deallocate(fOwningTask); fOwningTask = 0; } - return kIOReturnSuccess; + super::stop(provider); } IOReturn RootDomainUserClient::externalMethod( @@ -328,10 +333,11 @@ IOReturn RootDomainUserClient::externalMethod( break; case kPMGetSystemSleepType: - if (1 == arguments->scalarOutputCount) + if (2 == arguments->scalarOutputCount) { ret = this->secureGetSystemSleepType( - (uint32_t *) &arguments->scalarOutput[0]); + (uint32_t *) &arguments->scalarOutput[0], + (uint32_t *) &arguments->scalarOutput[1]); } break;