-// DEFAULT public and private features for machines whose device tree
-// does NOT contain this information (pre-Core99).
-
-// For Cuda-based Desktops
-
-#define kStdDesktopPMFeatures kPMHasWakeupTimerMask |\
- kPMHasProcessorCyclingMask |\
- kPMHasDimmingSupportMask |\
- kPMHasStartupTimerMask |\
- kPMSupportsServerModeAPIMask |\
- kPMHasUPSIntegrationMask
-
-#define kStdDesktopPrivPMFeatures kPMHasExtdBattInfoMask |\
- kPMHasICTControlMask |\
- kPMHasLegacyDesktopSleepMask
-
-#define kStdDesktopNumBatteries 0
-
-// For Wallstreet (PowerBook G3 Series 1998)
-
-#define kWallstreetPMFeatures kPMHasWakeupTimerMask |\
- kPMHasProcessorCyclingMask |\
- kPMHasReducedSpeedMask |\
- kPMDynamicSpeedChangeMask |\
- kPMHasSCSIDiskModeMask |\
- kPMCanGetBatteryTimeMask |\
- kPMHasDimmingSupportMask |\
- kPMHasChargeNotificationMask |\
- kPMHasDimSuspendSupportMask |\
- kPMHasSleepMask
-
-#define kWallstreetPrivPMFeatures kPMHasExtdBattInfoMask |\
- kPMHasBatteryIDMask |\
- kPMCanSwitchPowerMask |\
- kPMHasADBButtonHandlersMask |\
- kPMHasSCSITermPowerMask |\
- kPMHasICTControlMask |\
- kPMClosedLidCausesSleepMask |\
- kPMEnvironEventsPolledMask
-
-#define kStdPowerBookPMFeatures kWallstreetPMFeatures
-#define kStdPowerBookPrivPMFeatures kWallstreetPrivPMFeatures
-
-#define kStdPowerBookNumBatteries 2
-
-// For 101 (PowerBook G3 Series 1999)
-
-#define k101PMFeatures kPMHasWakeupTimerMask |\
- kPMHasProcessorCyclingMask |\
- kPMHasReducedSpeedMask |\
- kPMDynamicSpeedChangeMask |\
- kPMHasSCSIDiskModeMask |\
- kPMCanGetBatteryTimeMask |\
- kPMHasDimmingSupportMask |\
- kPMHasChargeNotificationMask |\
- kPMHasDimSuspendSupportMask |\
- kPMHasSleepMask |\
- kPMHasUPSIntegrationMask
-
-#define k101PrivPMFeatures kPMHasExtdBattInfoMask |\
- kPMHasBatteryIDMask |\
- kPMCanSwitchPowerMask |\
- kPMHasADBButtonHandlersMask |\
- kPMHasSCSITermPowerMask |\
- kPMHasICTControlMask |\
- kPMClosedLidCausesSleepMask |\
- kPMEnvironEventsPolledMask
-
-#define IOPMNoErr 0 // normal return
-
- // returned by powerStateWillChange and powerStateDidChange:
-#define IOPMAckImplied 0 // acknowledgement of power state change is implied
-#define IOPMWillAckLater 1 // acknowledgement of power state change will come later
-
- // returned by requestDomainState
-#define IOPMBadSpecification 4 // unrecognized specification parameter
-#define IOPMNoSuchState 5 // no power state matches search specification
-
-#define IOPMCannotRaisePower 6 // a device cannot change its power for some reason
-
- // returned by changeStateTo
-#define IOPMParameterError 7 // requested state doesn't exist
-#define IOPMNotYetInitialized 8 // device not yet fully hooked into power management "graph"
-
-
- // used by Root Domain UserClient
+// Battery's time remaining estimate is invalid this long (seconds) after a wake
+#define kIOPMPSInvalidWakeSecondsKey "BatteryInvalidWakeSeconds"
+
+// Battery must wait this long (seconds) after being completely charged before
+// the battery is settled.
+#define kIOPMPSPostChargeWaitSecondsKey "PostChargeWaitSeconds"
+
+// Battery must wait this long (seconds) after being completely discharged
+// before the battery is settled.
+#define kIOPMPSPostDishargeWaitSecondsKey "PostDischargeWaitSeconds"
+
+
+
+// PM Settings Controller setting types
+// Settings types used primarily with:
+// IOPMrootDomain::registerPMSettingController
+// The values are identical to the similarly named keys for use in user space
+// PM settings work. Those keys are defined in IOPMLibPrivate.h.
+#define kIOPMSettingWakeOnRingKey "Wake On Modem Ring"
+#define kIOPMSettingRestartOnPowerLossKey "Automatic Restart On Power Loss"
+#define kIOPMSettingWakeOnACChangeKey "Wake On AC Change"
+#define kIOPMSettingSleepOnPowerButtonKey "Sleep On Power Button"
+#define kIOPMSettingWakeOnClamshellKey "Wake On Clamshell Open"
+#define kIOPMSettingReduceBrightnessKey "ReduceBrightness"
+#define kIOPMSettingDisplaySleepUsesDimKey "Display Sleep Uses Dim"
+#define kIOPMSettingTimeZoneOffsetKey "TimeZoneOffsetSeconds"
+#define kIOPMSettingMobileMotionModuleKey "MobileMotionModule"
+
+// Setting controlling drivers can register to receive scheduled wake data
+// Either in "CF seconds" type, or structured calendar data in a formatted
+// IOPMCalendarStruct defined below.
+#define kIOPMSettingAutoWakeSecondsKey "wake"
+#define kIOPMSettingAutoWakeCalendarKey "WakeByCalendarDate"
+#define kIOPMSettingAutoPowerSecondsKey "poweron"
+#define kIOPMSettingAutoPowerCalendarKey "PowerByCalendarDate"
+
+// Debug seconds auto wake
+// Used by sleep cycling debug tools
+#define kIOPMSettingDebugWakeRelativeKey "WakeRelativeToSleep"
+#define kIOPMSettingDebugPowerRelativeKey "PowerRelativeToShutdown"
+
+struct IOPMCalendarStruct {
+ UInt32 year;
+ UInt8 month;
+ UInt8 day;
+ UInt8 hour;
+ UInt8 minute;
+ UInt8 second;
+};
+typedef struct IOPMCalendarStruct IOPMCalendarStruct;