]> git.saurik.com Git - apple/xnu.git/blobdiff - iokit/Kernel/RootDomainUserClient.cpp
xnu-4570.61.1.tar.gz
[apple/xnu.git] / iokit / Kernel / RootDomainUserClient.cpp
index a7836f4c394dc65e1802c474fa909d4679cc9365..7a909d998e3c73927b112219e387bf27bd1f6767 100644 (file)
@@ -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;