]> git.saurik.com Git - apple/xnu.git/blobdiff - iokit/IOKit/IOServicePM.h
xnu-6153.121.1.tar.gz
[apple/xnu.git] / iokit / IOKit / IOServicePM.h
index 27d871234588df5c93c5677d5c41126f921c6c29..d226255bcf04cf15cfdf7e3cf694fe9d885f90c6 100644 (file)
@@ -1,8 +1,8 @@
 /*
- * Copyright (c) 1998-2000 Apple Computer, Inc. All rights reserved.
+ * Copyright (c) 1998-2019 Apple Inc. All rights reserved.
  *
  * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
- * 
+ *
  * This file contains Original Code and/or Modifications of Original Code
  * as defined in and that are subject to the Apple Public Source License
  * Version 2.0 (the 'License'). You may not use this file except in
  * unlawful or unlicensed copies of an Apple operating system, or to
  * circumvent, violate, or enable the circumvention or violation of, any
  * terms of an Apple operating system software license agreement.
- * 
+ *
  * Please obtain a copy of the License at
  * http://www.opensource.apple.com/apsl/ and read it before using this file.
- * 
+ *
  * The Original Code and all software distributed under the License are
  * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
  * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
@@ -22,7 +22,7 @@
  * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
  * Please see the License for the specific language governing rights and
  * limitations under the License.
- * 
+ *
  * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
  */
 
@@ -47,6 +47,8 @@ class IOPMRequest;
 class IOPMRequestQueue;
 class IOPMCompletionQueue;
 
+typedef void (*IOPMCompletionAction)(void * target, void * param);
+
 // PM channels for IOReporting
 #ifndef kPMPowerStatesChID
 #define kPMPowerStatesChID  IOREPORT_MAKEID('P','M','S','t','H','i','s','t')
@@ -67,9 +69,10 @@ typedef uint32_t            IOPMPowerChangeFlags;
 typedef uint32_t            IOPMRequestTag;
 
 struct IOPMDriverCallEntry {
-    queue_chain_t   link;
-    thread_t        thread;
-    IOService *     target;
+       queue_chain_t   link;
+       thread_t        thread;
+       IOService *     target;
+       const void  *callMethod;
 };
 
 // Power clients (desires)
@@ -90,20 +93,20 @@ extern const OSSymbol *     gIOPMPowerClientRootDomain;
 /* Deprecated in version 10.5 */
 class IOPMprot : public OSObject
 {
-    friend class IOService;
-    
-    OSDeclareDefaultStructors(IOPMprot)
+       friend class IOService;
+
+       OSDeclareDefaultStructors(IOPMprot);
 
 public:
-    const char *            ourName;
-    IOPlatformExpert *      thePlatform;
-    unsigned long           theNumberOfPowerStates;
-    IOPMPowerState          thePowerStates[IOPMMaxPowerStates];
-    IOService *             theControllingDriver;
-    unsigned long           aggressiveness;
-    unsigned long           current_aggressiveness_values[kMaxType+1];
-    bool                    current_aggressiveness_valid[kMaxType+1];
-    unsigned long           myCurrentState;
+       const char *            ourName;
+       IOPlatformExpert *      thePlatform;
+       unsigned long           theNumberOfPowerStates;
+       IOPMPowerState          thePowerStates[IOPMMaxPowerStates];
+       IOService *             theControllingDriver;
+       unsigned long           aggressiveness;
+       unsigned long           current_aggressiveness_values[kMaxType + 1];
+       bool                    current_aggressiveness_valid[kMaxType + 1];
+       unsigned long           myCurrentState;
 };
 #endif /* PM_VARS_SUPPORT */
 #endif /* XNU_KERNEL_PRIVATE */