]> git.saurik.com Git - apple/xnu.git/blobdiff - iokit/IOKit/IOServicePM.h
xnu-2050.48.11.tar.gz
[apple/xnu.git] / iokit / IOKit / IOServicePM.h
index 940a75160abc509785ff2ff81b2d4028c5802548..2a2c4c4007e645301b9ec57c189f0311728b9c12 100644 (file)
 #ifndef _IOKIT_IOSERVICEPM_H
 #define _IOKIT_IOSERVICEPM_H
 
-#include <libkern/c++/OSObject.h>
-#include <IOKit/IOLocks.h>
 #include <IOKit/pwr_mgt/IOPM.h>
 
-extern "C" {
-#include <kern/thread_call.h>
-}
-
 class IOService;
 class IOServicePM;
 class IOPowerConnection;
-class IOPMinformee;
-class IOPMinformeeList;
 class IOWorkLoop;
 class IOCommandGate;
 class IOTimerEventSource;
 class IOPlatformExpert;
+
+#ifdef XNU_KERNEL_PRIVATE
+class IOPMinformee;
+class IOPMinformeeList;
 class IOPMWorkQueue;
 class IOPMRequest;
 class IOPMRequestQueue;
-struct changeNoteItem;
+class IOPMCompletionQueue;
 
-/* DEPRECATED */
-/*! @class IOPMprot
-    @abstract Protected power management instance variables for IOService objects.
-    @availability Mac OS X version 10.0. Deprecated in version 10.5.
-    @discussion IOPMprot is deprecated. Do not use it in any new code.
-    
-    Call IOService::getPowerState to query the current power state rather than access myCurrentState.
-*/
+typedef unsigned long       IOPMPowerStateIndex;
+typedef uint32_t            IOPMPowerChangeFlags;
+
+struct IOPMDriverCallEntry {
+    queue_chain_t   link;
+    thread_t        thread;
+    IOService *     target;
+};
+
+/* Binary compatibility with drivers that access pm_vars */
+#ifdef __LP64__
+#define PM_VARS_SUPPORT     0
+#else
+#define PM_VARS_SUPPORT     1
+#endif
+
+#if PM_VARS_SUPPORT
+/* Deprecated in version 10.5 */
 class IOPMprot : public OSObject
 {
     friend class IOService;
@@ -66,50 +72,16 @@ class IOPMprot : public OSObject
     OSDeclareDefaultStructors(IOPMprot)
 
 public:
-    /*! @var ourName
-        From getName(), used in logging.
-    */
     const char *            ourName;
-
-    /*! @var thePlatform
-        From getPlatform, used in logging and registering.
-    */
     IOPlatformExpert *      thePlatform;
-
-    /*! @var theNumberOfPowerStates
-        The number of states in the array.
-    */
     unsigned long           theNumberOfPowerStates;
-
-    /*! @var thePowerStates
-        The array.
-    */
     IOPMPowerState          thePowerStates[IOPMMaxPowerStates];
-
-    /*! @var theControllingDriver
-        Points to the controlling driver.
-    */
     IOService *             theControllingDriver;
-
-    /*! @var aggressiveness
-        Current value of power management aggressiveness.
-    */
     unsigned long           aggressiveness;
-
-    /*! @var current_aggressiveness_values
-        Array of aggressiveness values.
-    */
-    unsigned long           current_aggressiveness_values [kMaxType+1];
-
-    /*! @var current_aggressiveness_validity
-        True for values that are currently valid.
-    */
-    bool                    current_aggressiveness_valid [kMaxType+1];
-
-    /*! @var myCurrentState
-        The ordinal of our current power state.
-    */
+    unsigned long           current_aggressiveness_values[kMaxType+1];
+    bool                    current_aggressiveness_valid[kMaxType+1];
     unsigned long           myCurrentState;
 };
-
+#endif /* PM_VARS_SUPPORT */
+#endif /* XNU_KERNEL_PRIVATE */
 #endif /* !_IOKIT_IOSERVICEPM_H */