#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;
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 */