/* File: Power.h Contains: Power Manager Interfaces. Version: QuickTime 7.3 Copyright: (c) 2007 (c) 1990-2001 by Apple Computer, Inc. All rights reserved Bugs?: For bug reports, consult the following page on the World Wide Web: http://developer.apple.com/bugreporter/ */ #ifndef __POWER__ #define __POWER__ #ifndef __MACTYPES__ #include #endif #ifndef __MIXEDMODE__ #include #endif #ifndef __MULTIPROCESSING__ #include #endif #ifndef __NAMEREGISTRY__ #include #endif #ifndef __MACERRORS__ #include #endif #if PRAGMA_ONCE #pragma once #endif #ifdef __cplusplus extern "C" { #endif #if PRAGMA_IMPORT #pragma import on #endif #if PRAGMA_STRUCT_ALIGN #pragma options align=mac68k #elif PRAGMA_STRUCT_PACKPUSH #pragma pack(push, 2) #elif PRAGMA_STRUCT_PACK #pragma pack(2) #endif enum { /* Bit positions for ModemByte */ modemOnBit = 0, ringWakeUpBit = 2, modemInstalledBit = 3, ringDetectBit = 4, modemOnHookBit = 5 }; enum { /* masks for ModemByte */ modemOnMask = 0x01, ringWakeUpMask = 0x04, modemInstalledMask = 0x08, ringDetectMask = 0x10, modemOnHookMask = 0x20 }; enum { /* bit positions for BatteryByte */ chargerConnBit = 0, hiChargeBit = 1, chargeOverFlowBit = 2, batteryDeadBit = 3, batteryLowBit = 4, connChangedBit = 5 }; enum { /* masks for BatteryByte */ chargerConnMask = 0x01, hiChargeMask = 0x02, chargeOverFlowMask = 0x04, batteryDeadMask = 0x08, batteryLowMask = 0x10, connChangedMask = 0x20 }; enum { /* bit positions for SoundMixerByte */ MediaBaySndEnBit = 0, PCISndEnBit = 1, ZVSndEnBit = 2, PCCardSndEnBit = 3 }; enum { /* masks for SoundMixerByte */ MediaBaySndEnMask = 0x01, PCISndEnMask = 0x02, ZVSndEnMask = 0x04, PCCardSndEnMask = 0x08 }; enum { /* commands to SleepQRec sleepQProc */ kSleepRequest = 1, kSleepDemand = 2, kSleepWakeUp = 3, kSleepRevoke = 4, kSleepUnlock = 4, kSleepDeny = 5, /* A non-zero value clients can use to deny requests*/ kSleepNow = 6, kDozeDemand = 7, kDozeWakeUp = 8, kDozeRequest = 9, /* additional messages for Power Mgr 2.0*/ kEnterStandby = 10, /* Idle Queue Only*/ kEnterRun = 11, /* Idle Queue Only*/ kSuspendRequest = 12, kSuspendDemand = 13, kSuspendRevoke = 14, kSuspendWakeUp = 15, kGetPowerLevel = 16, kSetPowerLevel = 17, kDeviceInitiatedWake = 18, kWakeToDoze = 19, kDozeToFullWakeUp = 20, kGetPowerInfo = 21, kGetWakeOnNetInfo = 22, kSuspendWakeToDoze = 23, kEnterIdle = 24, /* Idle Queue Only*/ kStillIdle = 25, /* Idle Queue Only*/ kExitIdle = 26 /* Idle Queue Only*/ }; enum { /* depreciated commands to SleepQRec sleepQProc */ sleepRequest = kSleepRequest, sleepDemand = kSleepDemand, sleepWakeUp = kSleepWakeUp, sleepRevoke = kSleepRevoke, sleepUnlock = kSleepUnlock, sleepDeny = kSleepDeny, sleepNow = kSleepNow, dozeDemand = kDozeDemand, dozeWakeUp = kDozeWakeUp, dozeRequest = kDozeRequest, enterStandby = kEnterStandby, enterRun = kEnterRun, suspendRequestMsg = kSuspendRequest, suspendDemandMsg = kSuspendDemand, suspendRevokeMsg = kSuspendRevoke, suspendWakeUpMsg = kSuspendWakeUp, getPowerLevel = kGetPowerLevel, setPowerLevel = kSetPowerLevel }; /* Power Handler func messages */ typedef UInt32 PowerLevel; /* Power levels corresponding to PCI Bus Power Management Interface Spec (PMIS) */ enum { kPMDevicePowerLevel_On = 0, /* fully-powered 'On' state (D0 state) */ kPMDevicePowerLevel_D1 = 1, /* not used by Apple system SW */ kPMDevicePowerLevel_D2 = 2, /* not used by Apple system SW */ kPMDevicePowerLevel_Off = 3 /* main PCI bus power 'Off', but PCI standby power available (D3cold state) */ }; /* PowerHandlerProc definition */ typedef CALLBACK_API( OSStatus , PowerHandlerProcPtr )(UInt32 message, void *param, UInt32 refCon, RegEntryID *regEntryID); typedef STACK_UPP_TYPE(PowerHandlerProcPtr) PowerHandlerUPP; #if CALL_NOT_IN_CARBON /* * NewPowerHandlerUPP() * * Availability: * Non-Carbon CFM: available as macro/inline * CarbonLib: not available * Mac OS X: not available */ EXTERN_API_C( PowerHandlerUPP ) NewPowerHandlerUPP(PowerHandlerProcPtr userRoutine); #if !OPAQUE_UPP_TYPES enum { uppPowerHandlerProcInfo = 0x00003FF0 }; /* pascal 4_bytes Func(4_bytes, 4_bytes, 4_bytes, 4_bytes) */ #ifdef __cplusplus inline DEFINE_API_C(PowerHandlerUPP) NewPowerHandlerUPP(PowerHandlerProcPtr userRoutine) { return (PowerHandlerUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppPowerHandlerProcInfo, GetCurrentArchitecture()); } #else #define NewPowerHandlerUPP(userRoutine) (PowerHandlerUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppPowerHandlerProcInfo, GetCurrentArchitecture()) #endif #endif /* * DisposePowerHandlerUPP() * * Availability: * Non-Carbon CFM: available as macro/inline * CarbonLib: not available * Mac OS X: not available */ EXTERN_API_C( void ) DisposePowerHandlerUPP(PowerHandlerUPP userUPP); #if !OPAQUE_UPP_TYPES #ifdef __cplusplus inline DEFINE_API_C(void) DisposePowerHandlerUPP(PowerHandlerUPP userUPP) { DisposeRoutineDescriptor((UniversalProcPtr)userUPP); } #else #define DisposePowerHandlerUPP(userUPP) DisposeRoutineDescriptor(userUPP) #endif #endif /* * InvokePowerHandlerUPP() * * Availability: * Non-Carbon CFM: available as macro/inline * CarbonLib: not available * Mac OS X: not available */ EXTERN_API_C( OSStatus ) InvokePowerHandlerUPP( UInt32 message, void * param, UInt32 refCon, RegEntryID * regEntryID, PowerHandlerUPP userUPP); #if !OPAQUE_UPP_TYPES #ifdef __cplusplus inline DEFINE_API_C(OSStatus) InvokePowerHandlerUPP(UInt32 message, void * param, UInt32 refCon, RegEntryID * regEntryID, PowerHandlerUPP userUPP) { return (OSStatus)CALL_FOUR_PARAMETER_UPP(userUPP, uppPowerHandlerProcInfo, message, param, refCon, regEntryID); } #else #define InvokePowerHandlerUPP(message, param, refCon, regEntryID, userUPP) (OSStatus)CALL_FOUR_PARAMETER_UPP((userUPP), uppPowerHandlerProcInfo, (message), (param), (refCon), (regEntryID)) #endif #endif #endif /* CALL_NOT_IN_CARBON */ #if CALL_NOT_IN_CARBON || OLDROUTINENAMES /* support for pre-Carbon UPP routines: New...Proc and Call...Proc */ #define NewPowerHandlerProc(userRoutine) NewPowerHandlerUPP(userRoutine) #define CallPowerHandlerProc(userRoutine, message, param, refCon, regEntryID) InvokePowerHandlerUPP(message, param, refCon, regEntryID, userRoutine) #endif /* CALL_NOT_IN_CARBON */ /* Use kIdleQueueDeviceType as the deviceType argument to AddDevicePowerHandler() to get the handler into the idle queue instead of the device sleep queue. */ #define kIdleQueueDeviceType "idle-queue" /* PCI power management support*/ enum { kUseDefaultMinimumWakeTime = 0, /* Defaults to 5 minutes*/ kPowerSummaryVersion = 1, /* Version of PowerSummary structure.*/ kDevicePowerInfoVersion = 1 /* Version of DevicePowerInfo structure.*/ }; enum { /* PowerSummary flags*/ kPCIPowerOffAllowed = (1L << 0) /* PCI power off is allowed.*/ }; enum { /* DevicePowerInfo flags*/ kDevicePCIPowerOffAllowed = (1L << 0), /* PCI power off is allowed for device.*/ kDeviceSupportsPMIS = (1L << 1), /* Device supports Power Mgt Interface Spec.*/ kDeviceCanAssertPMEDuringSleep = (1L << 2), /* Device can assert PME# during sleep.*/ kDeviceUsesCommonLogicPower = (1L << 3), /* Device uses common-logic power*/ kDeviceDriverPresent = (1L << 4), /* Driver present for device.*/ kDeviceDriverSupportsPowerMgt = (1L << 5) /* Driver installed a power handler.*/ }; struct DevicePowerInfo { UInt32 version; /* Version of this structure.*/ RegEntryID regID; /* RegEntryID for device.*/ OptionBits flags; /* Flags*/ UInt32 minimumWakeTime; /* Minimum seconds before sleeping again.*/ UInt32 sleepPowerNeeded; /* Milliwatts needed in the sleep state.*/ }; typedef struct DevicePowerInfo DevicePowerInfo; struct PowerSummary { UInt32 version; /* Version of this structure.*/ OptionBits flags; /* Flags*/ UInt32 sleepPowerAvailable; /* Milliwatts available during sleep.*/ UInt32 sleepPowerNeeded; /* Milliwatts needed during sleep.*/ UInt32 minimumWakeTime; /* Minimum seconds before sleeping again.*/ ItemCount deviceCount; /* Number of device power info records.*/ DevicePowerInfo devices[1]; /* Array of device power info records.*/ }; typedef struct PowerSummary PowerSummary; enum { /* SleepQRec.sleepQFlags */ noCalls = 1, noRequest = 2, slpQType = 16, sleepQType = 16 }; /* Power Mgt Apple Event types and errors */ enum { /* power mgt class*/ kAEMacPowerMgtEvt = FOUR_CHAR_CODE('pmgt'), /* event ids*/ kAEMacToWake = FOUR_CHAR_CODE('wake'), kAEMacLowPowerSaveData = FOUR_CHAR_CODE('pmsd'), kAEMacEmergencySleep = FOUR_CHAR_CODE('emsl'), kAEMacEmergencyShutdown = FOUR_CHAR_CODE('emsd') }; /* These are result values returned by a Power Handler when queries by the Power Mgr if the device which that Power Handler represents woke the machine. */ enum { kDeviceDidNotWakeMachine = 0, /* device did NOT wake machine*/ kDeviceRequestsFullWake = 1, /* device did wake machine and requests full wakeup*/ kDeviceRequestsWakeToDoze = 2 /* device did wake machine and requests partial wakeup*/ }; /* bits in bitfield returned by PMFeatures */ enum { hasWakeupTimer = 0, /* 1=wakeup timer is supported */ hasSharedModemPort = 1, /* 1=modem port shared by SCC and internal modem */ hasProcessorCycling = 2, /* 1=processor cycling is supported */ mustProcessorCycle = 3, /* 1=processor cycling should not be turned off */ hasReducedSpeed = 4, /* 1=processor can be started up at reduced speed */ dynamicSpeedChange = 5, /* 1=processor speed can be switched dynamically */ hasSCSIDiskMode = 6, /* 1=SCSI Disk Mode is supported */ canGetBatteryTime = 7, /* 1=battery time can be calculated */ canWakeupOnRing = 8, /* 1=can wakeup when the modem detects a ring */ hasDimmingSupport = 9, /* 1=has dimming support built in (DPMS standby by default) */ hasStartupTimer = 10, /* 1=startup timer is supported */ hasChargeNotification = 11, /* 1=client can determine of charge connect status change notifications available */ hasDimSuspendSupport = 12, /* 1=supports dimming LCD and CRT to DPMS suspend state */ hasWakeOnNetActivity = 13, /* 1=hardware supports wake on network activity */ hasWakeOnLid = 14, /* 1=hardware can wake when opened */ canPowerOffPCIBus = 15, /* 1=hardware can power off PCI bus during sleep if cards allow */ hasDeepSleep = 16, /* 1=hardware supports deep sleep (hibernation) mode */ hasSleep = 17, /* 1=hardware supports normal (PowerBook-like) sleep */ supportsServerModeAPIs = 18, /* 1=hardware supports server mode API routines */ supportsUPSIntegration = 19, /* 1=hardware support UPS integration and reporting */ hasAggressiveIdling = 20, /* 1=Power Manager only resets OverallAct on UsrActvity */ supportsIdleQueue = 21 /* 1=Power Manager supports the idle queue */ }; /* bits in bitfield returned by GetIntModemInfo and set by SetIntModemState */ enum { hasInternalModem = 0, /* 1=internal modem installed */ intModemRingDetect = 1, /* 1=internal modem has detected a ring */ intModemOffHook = 2, /* 1=internal modem is off hook */ intModemRingWakeEnb = 3, /* 1=wakeup on ring is enabled */ extModemSelected = 4, /* 1=external modem selected */ modemSetBit = 15 /* 1=set bit, 0=clear bit (SetIntModemState) */ }; /* bits in BatteryInfo.flags */ /* ("chargerConnected" doesn't mean the charger is plugged in) */ enum { batteryInstalled = 7, /* 1=battery is currently connected */ batteryCharging = 6, /* 1=battery is being charged */ chargerConnected = 5, /* 1=charger is connected to the PowerBook */ upsConnected = 4, /* 1=there is a UPS connected */ upsIsPowerSource = 3 /* 1=UPS is source of power */ }; enum { HDPwrQType = 0x4844, /* 'HD' hard disk spindown queue element type */ PMgrStateQType = 0x504D /* 'PM' Power Manager state queue element type */ }; /* client notification bits in PMgrQueueElement.pmNotifyBits */ enum { pmSleepTimeoutChanged = 0, pmSleepEnableChanged = 1, pmHardDiskTimeoutChanged = 2, pmHardDiskSpindownChanged = 3, pmDimmingTimeoutChanged = 4, pmDimmingEnableChanged = 5, pmDiskModeAddressChanged = 6, pmProcessorCyclingChanged = 7, pmProcessorSpeedChanged = 8, pmWakeupTimerChanged = 9, pmStartupTimerChanged = 10, pmHardDiskPowerRemovedbyUser = 11, pmChargeStatusChanged = 12, pmPowerLevelChanged = 13, pmWakeOnNetActivityChanged = 14 }; enum { pmSleepTimeoutChangedMask = (1 << pmSleepTimeoutChanged), pmSleepEnableChangedMask = (1 << pmSleepEnableChanged), pmHardDiskTimeoutChangedMask = (1 << pmHardDiskTimeoutChanged), pmHardDiskSpindownChangedMask = (1 << pmHardDiskSpindownChanged), pmDimmingTimeoutChangedMask = (1 << pmDimmingTimeoutChanged), pmDimmingEnableChangedMask = (1 << pmDimmingEnableChanged), pmDiskModeAddressChangedMask = (1 << pmDiskModeAddressChanged), pmProcessorCyclingChangedMask = (1 << pmProcessorCyclingChanged), pmProcessorSpeedChangedMask = (1 << pmProcessorSpeedChanged), pmWakeupTimerChangedMask = (1 << pmWakeupTimerChanged), pmStartupTimerChangedMask = (1 << pmStartupTimerChanged), pmHardDiskPowerRemovedbyUserMask = (1 << pmHardDiskPowerRemovedbyUser), pmChargeStatusChangedMask = (1 << pmChargeStatusChanged), pmPowerLevelChangedMask = (1 << pmPowerLevelChanged), pmWakeOnNetActivityChangedMask = (1 << pmWakeOnNetActivityChanged) }; /* System Activity Selectors */ /* Notes: The IdleActivity selector is not available unless the hasAggressiveIdling PMFeatures bit is set. */ /* Use IdleActivity where you used to use OverallAct if necessary. OverallAct will only */ /* delay power cycling if it's enabled, and will delay sleep by a small amount when */ /* hasAggressiveIdling is set. Don't use IdleActivity unless hasAggressiveIdling is set; when */ /* hasAggressiveIdling is not set, the use of IdleActivity is undefined, and well do different */ /* things depending on which Power Manager is currently running. */ enum { OverallAct = 0, /* Delays idle sleep by small amount */ UsrActivity = 1, /* Delays idle sleep and dimming by timeout time */ NetActivity = 2, /* Delays idle sleep and power cycling by small amount */ HDActivity = 3, /* Delays hard drive spindown and idle sleep by small amount */ IdleActivity = 4 /* Delays idle sleep by timeout time */ }; /* Storage Media sleep mode defines */ enum { kMediaModeOn = 0, /* Media active (Drive spinning and at full power) */ kMediaModeStandBy = 1, /* Media standby (not implemented) */ kMediaModeSuspend = 2, /* Media Idle (not implemented) */ kMediaModeOff = 3 /* Media Sleep (Drive not spinning and at min power, max recovery time) */ }; enum { kMediaPowerCSCode = 70 }; /* definitions for HDQueueElement.hdFlags */ enum { kHDQueuePostBit = 0, /* 1 = call this routine on the second pass */ kHDQueuePostMask = (1 << kHDQueuePostBit) }; struct ActivityInfo { short ActivityType; /* Type of activity to be fetched. Same as UpdateSystemActivity Selectors */ unsigned long ActivityTime; /* Time of last activity (in ticks) of specified type. */ }; typedef struct ActivityInfo ActivityInfo; /* information returned by GetScaledBatteryInfo */ struct BatteryInfo { UInt8 flags; /* misc flags (see below) */ UInt8 warningLevel; /* scaled warning level (0-255) */ UInt8 reserved; /* reserved for internal use */ UInt8 batteryLevel; /* scaled battery level (0-255) */ }; typedef struct BatteryInfo BatteryInfo; typedef SInt8 ModemByte; typedef SInt8 BatteryByte; typedef SInt8 SoundMixerByte; typedef long PMResultCode; typedef struct SleepQRec SleepQRec; typedef SleepQRec * SleepQRecPtr; typedef struct HDQueueElement HDQueueElement; typedef struct PMgrQueueElement PMgrQueueElement; typedef CALLBACK_API_REGISTER68K( long , SleepQProcPtr, (long message, SleepQRecPtr qRecPtr) ); typedef CALLBACK_API( void , HDSpindownProcPtr )(HDQueueElement * theElement); typedef CALLBACK_API( void , PMgrStateChangeProcPtr )(PMgrQueueElement *theElement, long stateBits); typedef REGISTER_UPP_TYPE(SleepQProcPtr) SleepQUPP; typedef STACK_UPP_TYPE(HDSpindownProcPtr) HDSpindownUPP; typedef STACK_UPP_TYPE(PMgrStateChangeProcPtr) PMgrStateChangeUPP; struct SleepQRec { SleepQRecPtr sleepQLink; /* pointer to next queue element */ short sleepQType; /* queue element type (must be SleepQType) */ SleepQUPP sleepQProc; /* pointer to sleep universal proc ptr */ short sleepQFlags; /* flags */ }; struct HDQueueElement { struct HDQueueElement * hdQLink; /* pointer to next queue element */ short hdQType; /* queue element type (must be HDPwrQType) */ short hdFlags; /* miscellaneous flags */ HDSpindownUPP hdProc; /* pointer to routine to call */ long hdUser; /* user-defined (variable storage, etc.) */ }; struct PMgrQueueElement { struct PMgrQueueElement * pmQLink; /* pointer to next queue element */ short pmQType; /* queue element type (must be PMgrStateQType) */ short pmFlags; /* miscellaneous flags */ long pmNotifyBits; /* bitmap of which changes to be notified for */ PMgrStateChangeUPP pmProc; /* pointer to routine to call */ long pmUser; /* user-defined (variable storage, etc.) */ }; struct BatteryTimeRec { unsigned long expectedBatteryTime; /* estimated battery time remaining (seconds) */ unsigned long minimumBatteryTime; /* minimum battery time remaining (seconds) */ unsigned long maximumBatteryTime; /* maximum battery time remaining (seconds) */ unsigned long timeUntilCharged; /* time until battery is fully charged (seconds)*/ }; typedef struct BatteryTimeRec BatteryTimeRec; struct WakeupTime { unsigned long wakeTime; /* wakeup time (same format as current time) */ Boolean wakeEnabled; /* 1=enable wakeup timer, 0=disable wakeup timer */ SInt8 filler; }; typedef struct WakeupTime WakeupTime; struct StartupTime { unsigned long startTime; /* startup time (same format as current time) */ Boolean startEnabled; /* 1=enable startup timer, 0=disable startup timer */ SInt8 filler; }; typedef struct StartupTime StartupTime; /* PowerSource version*/ enum { kVersionOnePowerSource = 1, kVersionTwoPowerSource = 2, kCurrentPowerSourceVersion = kVersionTwoPowerSource }; /* PowerSourceAttrs bits*/ enum { bSourceIsBattery = 0, /* power source is battery*/ bSourceIsAC = 1, /* power source is AC*/ bSourceCanBeCharged = 2, /* power source can be charged*/ bSourceIsUPS = 3, /* power source is UPS. NOTE: software should set bSourceIsBattery and bSourceIsAC also, as appropriate*/ bSourceProvidesWarnLevels = 4, /* power source provides low power and dead battery warning levels*/ kSourceIsBatteryMask = (1 << bSourceIsBattery), kSourceIsACMask = (1 << bSourceIsAC), kSourceCanBeChargedMask = (1 << bSourceCanBeCharged), kSourceIsUPSMask = (1 << bSourceIsUPS), kSourceProvidesWarnLevelsMask = (1 << bSourceProvidesWarnLevels) }; /* PowerSourceFlags bits*/ enum { bSourceIsAvailable = 0, /* power source is installed*/ bSourceIsCharging = 1, /* power source being charged*/ bChargerIsAttached = 2, /* a charger is connected*/ kSourceIsAvailableMask = (1 << bSourceIsAvailable), kSourceIsChargingMask = (1 << bSourceIsCharging), kChargerIsAttachedMask = (1 << bChargerIsAttached) }; /* Power Capacity Types*/ enum { kCapacityIsActual = 0, /* current capacity is expessed as actual capacity in same units as max*/ kCapacityIsPercentOfMax = 1 /* current capacity is expressed as a percentage of maximumCapacity*/ }; /* Net Activity Wake Options*/ enum { kConfigSupportsWakeOnNetBit = 0, kWakeOnNetAdminAccessesBit = 1, kWakeOnAllNetAccessesBit = 2, kUnmountServersBeforeSleepingBit = 3, kConfigSupportsWakeOnNetMask = (1 << kConfigSupportsWakeOnNetBit), kWakeOnNetAdminAccessesMask = (1 << kWakeOnNetAdminAccessesBit), kWakeOnAllNetAccessesMask = (1 << kWakeOnAllNetAccessesBit), kUnmountServersBeforeSleepingMask = (1 << kUnmountServersBeforeSleepingBit) }; /* Power Source capacity usage types*/ enum { kCurrentCapacityIsActualValue = 0, /* currentCapacity is a real value in same units as maxCapacity*/ kCurrentCapacityIsPercentOfMax = 1 /* currentCapacity is expressed as a percentage of maxCapacity.*/ }; typedef SInt16 PowerSourceID; struct PowerSourceParamBlock { PowerSourceID sourceID; /* unique id assigned by Power Mgr*/ UInt16 sourceCapacityUsage; /* how currentCapacity is used*/ UInt32 sourceVersion; /* version of this record*/ OptionBits sourceAttr; /* attribute flags (see below)*/ OptionBits sourceState; /* state flags (see below)*/ UInt32 currentCapacity; /* current capacity, in*/ /* milliwatts or %*/ UInt32 maxCapacity; /* full capacity, in milliwatts*/ UInt32 timeRemaining; /* time left to deplete, */ /* in milliwatt-hours*/ UInt32 timeToFullCharge; /* time to charge, */ /* in milliwatt-hours*/ UInt32 voltage; /* voltage in millivolts*/ SInt32 current; /* current in milliamperes */ /* (negative if consuming, */ /* positive if charging)*/ UInt32 lowWarnLevel; /* low warning level in milliwatts (or % if sourceCapacityUsage is %)*/ UInt32 deadWarnLevel; /* dead warning level in milliwatts (or % if sourceCapacityUsage is %)*/ UInt32 reserved[16]; /* for future expansion*/ }; typedef struct PowerSourceParamBlock PowerSourceParamBlock; typedef PowerSourceParamBlock * PowerSourceParamBlockPtr; /* * DisableWUTime() * * Availability: * Non-Carbon CFM: in InterfaceLib 7.1 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSErr ) DisableWUTime(void); /* * SetWUTime() * * Availability: * Non-Carbon CFM: in InterfaceLib 7.1 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSErr ) SetWUTime(long wuTime); /* * GetWUTime() * * Availability: * Non-Carbon CFM: in InterfaceLib 7.1 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSErr ) GetWUTime( long * wuTime, Byte * wuFlag); /* * BatteryStatus() * * Availability: * Non-Carbon CFM: in InterfaceLib 7.1 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSErr ) BatteryStatus( Byte * status, Byte * power); /* * ModemStatus() * * Availability: * Non-Carbon CFM: in InterfaceLib 7.1 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSErr ) ModemStatus(Byte * status); /* * IdleUpdate() * * Availability: * Non-Carbon CFM: in InterfaceLib 7.1 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ #if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM #pragma parameter __D0 IdleUpdate #endif EXTERN_API( long ) IdleUpdate(void) ONEWORDINLINE(0xA285); /* * GetCPUSpeed() * * Availability: * Non-Carbon CFM: in InterfaceLib 7.1 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ #if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM #pragma parameter __D0 GetCPUSpeed #endif EXTERN_API( long ) GetCPUSpeed(void) TWOWORDINLINE(0x70FF, 0xA485); /* * EnableIdle() * * Availability: * Non-Carbon CFM: in InterfaceLib 7.1 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( void ) EnableIdle(void) TWOWORDINLINE(0x7000, 0xA485); /* * DisableIdle() * * Availability: * Non-Carbon CFM: in InterfaceLib 7.1 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( void ) DisableIdle(void) TWOWORDINLINE(0x7001, 0xA485); /* * SleepQInstall() * * Availability: * Non-Carbon CFM: in InterfaceLib 7.1 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ #if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM #pragma parameter SleepQInstall(__A0) #endif EXTERN_API( void ) SleepQInstall(SleepQRecPtr qRecPtr) ONEWORDINLINE(0xA28A); /* * SleepQRemove() * * Availability: * Non-Carbon CFM: in InterfaceLib 7.1 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ #if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM #pragma parameter SleepQRemove(__A0) #endif EXTERN_API( void ) SleepQRemove(SleepQRecPtr qRecPtr) ONEWORDINLINE(0xA48A); /* * AOn() * * Availability: * Non-Carbon CFM: in InterfaceLib 7.1 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( void ) AOn(void) TWOWORDINLINE(0x7004, 0xA685); /* * AOnIgnoreModem() * * Availability: * Non-Carbon CFM: in InterfaceLib 7.1 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( void ) AOnIgnoreModem(void) TWOWORDINLINE(0x7005, 0xA685); /* * BOn() * * Availability: * Non-Carbon CFM: in InterfaceLib 7.1 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( void ) BOn(void) TWOWORDINLINE(0x7000, 0xA685); /* * AOff() * * Availability: * Non-Carbon CFM: in InterfaceLib 7.1 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( void ) AOff(void) TWOWORDINLINE(0x7084, 0xA685); /* * BOff() * * Availability: * Non-Carbon CFM: in InterfaceLib 7.1 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( void ) BOff(void) TWOWORDINLINE(0x7080, 0xA685); /* Public Power Management API */ /* * PMSelectorCount() * * Availability: * Non-Carbon CFM: in PowerMgrLib 1.0 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ #if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM #pragma parameter __D0 PMSelectorCount #endif EXTERN_API( short ) PMSelectorCount(void) TWOWORDINLINE(0x7000, 0xA09E); /* * PMFeatures() * * Availability: * Non-Carbon CFM: in PowerMgrLib 1.0 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ #if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM #pragma parameter __D0 PMFeatures #endif EXTERN_API( UInt32 ) PMFeatures(void) TWOWORDINLINE(0x7001, 0xA09E); /* * GetSleepTimeout() * * Availability: * Non-Carbon CFM: in PowerMgrLib 1.0 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ #if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM #pragma parameter __D0 GetSleepTimeout #endif EXTERN_API( UInt8 ) GetSleepTimeout(void) TWOWORDINLINE(0x7002, 0xA09E); /* * SetSleepTimeout() * * Availability: * Non-Carbon CFM: in PowerMgrLib 1.0 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ #if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM #pragma parameter SetSleepTimeout(__D0) #endif EXTERN_API( void ) SetSleepTimeout(UInt8 timeout) FOURWORDINLINE(0x4840, 0x303C, 0x0003, 0xA09E); /* * GetHardDiskTimeout() * * Availability: * Non-Carbon CFM: in PowerMgrLib 1.0 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ #if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM #pragma parameter __D0 GetHardDiskTimeout #endif EXTERN_API( UInt8 ) GetHardDiskTimeout(void) TWOWORDINLINE(0x7004, 0xA09E); /* * SetHardDiskTimeout() * * Availability: * Non-Carbon CFM: in PowerMgrLib 1.0 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ #if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM #pragma parameter SetHardDiskTimeout(__D0) #endif EXTERN_API( void ) SetHardDiskTimeout(UInt8 timeout) FOURWORDINLINE(0x4840, 0x303C, 0x0005, 0xA09E); /* * HardDiskPowered() * * Availability: * Non-Carbon CFM: in PowerMgrLib 1.0 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ #if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM #pragma parameter __D0 HardDiskPowered #endif EXTERN_API( Boolean ) HardDiskPowered(void) TWOWORDINLINE(0x7006, 0xA09E); /* * SpinDownHardDisk() * * Availability: * Non-Carbon CFM: in PowerMgrLib 1.0 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ #if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM #pragma parameter SpinDownHardDisk #endif EXTERN_API( void ) SpinDownHardDisk(void) TWOWORDINLINE(0x7007, 0xA09E); /* * IsSpindownDisabled() * * Availability: * Non-Carbon CFM: in PowerMgrLib 1.0 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ #if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM #pragma parameter __D0 IsSpindownDisabled #endif EXTERN_API( Boolean ) IsSpindownDisabled(void) TWOWORDINLINE(0x7008, 0xA09E); /* * SetSpindownDisable() * * Availability: * Non-Carbon CFM: in PowerMgrLib 1.0 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ #if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM #pragma parameter SetSpindownDisable(__D0) #endif EXTERN_API( void ) SetSpindownDisable(Boolean setDisable) FOURWORDINLINE(0x4840, 0x303C, 0x0009, 0xA09E); /* * HardDiskQInstall() * * Availability: * Non-Carbon CFM: in PowerMgrLib 1.0 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ #if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM #pragma parameter __D0 HardDiskQInstall(__A0) #endif EXTERN_API( OSErr ) HardDiskQInstall(HDQueueElement * theElement) TWOWORDINLINE(0x700A, 0xA09E); /* * HardDiskQRemove() * * Availability: * Non-Carbon CFM: in PowerMgrLib 1.0 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ #if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM #pragma parameter __D0 HardDiskQRemove(__A0) #endif EXTERN_API( OSErr ) HardDiskQRemove(HDQueueElement * theElement) TWOWORDINLINE(0x700B, 0xA09E); /* * GetScaledBatteryInfo() * * Availability: * Non-Carbon CFM: in PowerMgrLib 1.0 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ #if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM #pragma parameter GetScaledBatteryInfo(__D0, __A0) #endif EXTERN_API( void ) GetScaledBatteryInfo( short whichBattery, BatteryInfo * theInfo) FIVEWORDINLINE(0x4840, 0x303C, 0x000C, 0xA09E, 0x2080); /* * AutoSleepControl() * * Availability: * Non-Carbon CFM: in PowerMgrLib 1.0 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ #if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM #pragma parameter AutoSleepControl(__D0) #endif EXTERN_API( void ) AutoSleepControl(Boolean enableSleep) FOURWORDINLINE(0x4840, 0x303C, 0x000D, 0xA09E); /* * GetIntModemInfo() * * Availability: * Non-Carbon CFM: in PowerMgrLib 1.0 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ #if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM #pragma parameter __D0 GetIntModemInfo #endif EXTERN_API( UInt32 ) GetIntModemInfo(void) TWOWORDINLINE(0x700E, 0xA09E); /* * SetIntModemState() * * Availability: * Non-Carbon CFM: in PowerMgrLib 1.0 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ #if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM #pragma parameter SetIntModemState(__D0) #endif EXTERN_API( void ) SetIntModemState(short theState) FOURWORDINLINE(0x4840, 0x303C, 0x000F, 0xA09E); /* * MaximumProcessorSpeed() * * Availability: * Non-Carbon CFM: in PowerMgrLib 1.0 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ #if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM #pragma parameter __D0 MaximumProcessorSpeed #endif EXTERN_API( short ) MaximumProcessorSpeed(void) TWOWORDINLINE(0x7010, 0xA09E); /* * MinimumProcessorSpeed() * * Availability: * Non-Carbon CFM: in PowerMgrLib 1.0 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.1 and later */ #if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM #pragma parameter __D0 MinimumProcessorSpeed #endif EXTERN_API( short ) MinimumProcessorSpeed(void) TWOWORDINLINE(0x7036, 0xA09E); /* * CurrentProcessorSpeed() * * Availability: * Non-Carbon CFM: in PowerMgrLib 1.0 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ #if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM #pragma parameter __D0 CurrentProcessorSpeed #endif EXTERN_API( short ) CurrentProcessorSpeed(void) TWOWORDINLINE(0x7011, 0xA09E); /* * FullProcessorSpeed() * * Availability: * Non-Carbon CFM: in PowerMgrLib 1.0 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ #if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM #pragma parameter __D0 FullProcessorSpeed #endif EXTERN_API( Boolean ) FullProcessorSpeed(void) TWOWORDINLINE(0x7012, 0xA09E); /* * SetProcessorSpeed() * * Availability: * Non-Carbon CFM: in PowerMgrLib 1.0 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ #if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM #pragma parameter __D0 SetProcessorSpeed(__D0) #endif EXTERN_API( Boolean ) SetProcessorSpeed(Boolean fullSpeed) FOURWORDINLINE(0x4840, 0x303C, 0x0013, 0xA09E); /* * GetSCSIDiskModeAddress() * * Availability: * Non-Carbon CFM: in PowerMgrLib 1.0 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ #if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM #pragma parameter __D0 GetSCSIDiskModeAddress #endif EXTERN_API( short ) GetSCSIDiskModeAddress(void) TWOWORDINLINE(0x7014, 0xA09E); /* * SetSCSIDiskModeAddress() * * Availability: * Non-Carbon CFM: in PowerMgrLib 1.0 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ #if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM #pragma parameter SetSCSIDiskModeAddress(__D0) #endif EXTERN_API( void ) SetSCSIDiskModeAddress(short scsiAddress) FOURWORDINLINE(0x4840, 0x303C, 0x0015, 0xA09E); /* * GetWakeupTimer() * * Availability: * Non-Carbon CFM: in PowerMgrLib 1.0 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ #if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM #pragma parameter GetWakeupTimer(__A0) #endif EXTERN_API( void ) GetWakeupTimer(WakeupTime * theTime) TWOWORDINLINE(0x7016, 0xA09E); /* * SetWakeupTimer() * * Availability: * Non-Carbon CFM: in PowerMgrLib 1.0 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ #if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM #pragma parameter SetWakeupTimer(__A0) #endif EXTERN_API( void ) SetWakeupTimer(WakeupTime * theTime) TWOWORDINLINE(0x7017, 0xA09E); /* * IsProcessorCyclingEnabled() * * Availability: * Non-Carbon CFM: in PowerMgrLib 1.0 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ #if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM #pragma parameter __D0 IsProcessorCyclingEnabled #endif EXTERN_API( Boolean ) IsProcessorCyclingEnabled(void) TWOWORDINLINE(0x7018, 0xA09E); /* * EnableProcessorCycling() * * Availability: * Non-Carbon CFM: in PowerMgrLib 1.0 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ #if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM #pragma parameter EnableProcessorCycling(__D0) #endif EXTERN_API( void ) EnableProcessorCycling(Boolean enable) FOURWORDINLINE(0x4840, 0x303C, 0x0019, 0xA09E); /* * BatteryCount() * * Availability: * Non-Carbon CFM: in PowerMgrLib 1.0 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ #if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM #pragma parameter __D0 BatteryCount #endif EXTERN_API( short ) BatteryCount(void) TWOWORDINLINE(0x701A, 0xA09E); /* * GetBatteryVoltage() * * Availability: * Non-Carbon CFM: in PowerMgrLib 1.0 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ #if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM #pragma parameter __D0 GetBatteryVoltage(__D0) #endif EXTERN_API( Fixed ) GetBatteryVoltage(short whichBattery) FOURWORDINLINE(0x4840, 0x303C, 0x001B, 0xA09E); /* * GetBatteryTimes() * * Availability: * Non-Carbon CFM: in PowerMgrLib 1.0 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ #if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM #pragma parameter GetBatteryTimes(__D0, __A0) #endif EXTERN_API( void ) GetBatteryTimes( short whichBattery, BatteryTimeRec * theTimes) FOURWORDINLINE(0x4840, 0x303C, 0x001C, 0xA09E); /* * GetDimmingTimeout() * * Availability: * Non-Carbon CFM: in PowerMgrLib 1.0 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ #if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM #pragma parameter __D0 GetDimmingTimeout #endif EXTERN_API( UInt8 ) GetDimmingTimeout(void) TWOWORDINLINE(0x701D, 0xA09E); /* * SetDimmingTimeout() * * Availability: * Non-Carbon CFM: in PowerMgrLib 1.0 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ #if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM #pragma parameter SetDimmingTimeout(__D0) #endif EXTERN_API( void ) SetDimmingTimeout(UInt8 timeout) FOURWORDINLINE(0x4840, 0x303C, 0x001E, 0xA09E); /* * DimmingControl() * * Availability: * Non-Carbon CFM: in PowerMgrLib 1.0 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ #if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM #pragma parameter DimmingControl(__D0) #endif EXTERN_API( void ) DimmingControl(Boolean enableSleep) FOURWORDINLINE(0x4840, 0x303C, 0x001F, 0xA09E); /* * IsDimmingControlDisabled() * * Availability: * Non-Carbon CFM: in PowerMgrLib 1.0 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ #if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM #pragma parameter __D0 IsDimmingControlDisabled #endif EXTERN_API( Boolean ) IsDimmingControlDisabled(void) TWOWORDINLINE(0x7020, 0xA09E); /* * IsAutoSlpControlDisabled() * * Availability: * Non-Carbon CFM: in PowerMgrLib 1.0 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ #if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM #pragma parameter __D0 IsAutoSlpControlDisabled #endif EXTERN_API( Boolean ) IsAutoSlpControlDisabled(void) TWOWORDINLINE(0x7021, 0xA09E); /* * PMgrStateQInstall() * * Availability: * Non-Carbon CFM: in PowerMgrLib 1.0 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ #if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM #pragma parameter __D0 PMgrStateQInstall(__A0) #endif EXTERN_API( OSErr ) PMgrStateQInstall(PMgrQueueElement * theElement) TWOWORDINLINE(0x7022, 0xA09E); /* * PMgrStateQRemove() * * Availability: * Non-Carbon CFM: in PowerMgrLib 1.0 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ #if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM #pragma parameter __D0 PMgrStateQRemove(__A0) #endif EXTERN_API( OSErr ) PMgrStateQRemove(PMgrQueueElement * theElement) TWOWORDINLINE(0x7023, 0xA09E); /* * UpdateSystemActivity() * * Availability: * Non-Carbon CFM: in PowerMgrLib 1.0 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ #if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM #pragma parameter __D0 UpdateSystemActivity(__D0) #endif EXTERN_API( OSErr ) UpdateSystemActivity(UInt8 activity) FOURWORDINLINE(0x4840, 0x303C, 0x0024, 0xA09E); /* * DelaySystemIdle() * * Availability: * Non-Carbon CFM: in PowerMgrLib 1.0 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ #if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM #pragma parameter __D0 DelaySystemIdle #endif EXTERN_API( OSErr ) DelaySystemIdle(void) TWOWORDINLINE(0x7025, 0xA09E); /* * GetStartupTimer() * * Availability: * Non-Carbon CFM: in PowerMgrLib 1.0 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ #if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM #pragma parameter __D0 GetStartupTimer(__A0) #endif EXTERN_API( OSErr ) GetStartupTimer(StartupTime * theTime) TWOWORDINLINE(0x7026, 0xA09E); /* * SetStartupTimer() * * Availability: * Non-Carbon CFM: in PowerMgrLib 1.0 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ #if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM #pragma parameter __D0 SetStartupTimer(__A0) #endif EXTERN_API( OSErr ) SetStartupTimer(StartupTime * theTime) TWOWORDINLINE(0x7027, 0xA09E); /* * GetLastActivity() * * Availability: * Non-Carbon CFM: in PowerMgrLib 1.0 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ #if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM #pragma parameter __D0 GetLastActivity(__A0) #endif EXTERN_API( OSErr ) GetLastActivity(ActivityInfo * theActivity) TWOWORDINLINE(0x7028, 0xA09E); /* * GetSoundMixerState() * * Availability: * Non-Carbon CFM: in PowerMgrLib 1.1 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ #if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM #pragma parameter __D0 GetSoundMixerState(__A0) #endif EXTERN_API( OSErr ) GetSoundMixerState(SoundMixerByte * theSoundMixerByte) TWOWORDINLINE(0x7029, 0xA09E); /* * SetSoundMixerState() * * Availability: * Non-Carbon CFM: in PowerMgrLib 1.1 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ #if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM #pragma parameter __D0 SetSoundMixerState(__A0) #endif EXTERN_API( OSErr ) SetSoundMixerState(SoundMixerByte * theSoundMixerByte) TWOWORDINLINE(0x702A, 0xA09E); /* * GetDimSuspendState() * * Availability: * Non-Carbon CFM: in PowerMgrLib 1.1 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ #if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM #pragma parameter __D0 GetDimSuspendState #endif EXTERN_API( Boolean ) GetDimSuspendState(void) TWOWORDINLINE(0x702B, 0xA09E); /* * SetDimSuspendState() * * Availability: * Non-Carbon CFM: in PowerMgrLib 1.1 and later * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ #if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM #pragma parameter SetDimSuspendState(__D0) #endif EXTERN_API( void ) SetDimSuspendState(Boolean dimSuspendState) FOURWORDINLINE(0x4840, 0x303C, 0x002C, 0xA09E); #if CALL_NOT_IN_CARBON /* * GetCoreProcessorTemperature() * * Availability: * Non-Carbon CFM: in PowerMgrLib 2.0 and later * CarbonLib: not available * Mac OS X: not available */ #if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM #pragma parameter __D0 GetCoreProcessorTemperature(__A0) #endif EXTERN_API( SInt32 ) GetCoreProcessorTemperature(MPCpuID inCpuID) TWOWORDINLINE(0x702D, 0xA09E); /* * GetWakeOnNetworkOptions() * * Availability: * Non-Carbon CFM: in PowerMgrLib 2.0 and later * CarbonLib: not available * Mac OS X: not available */ #if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM #pragma parameter __D0 GetWakeOnNetworkOptions #endif EXTERN_API( OptionBits ) GetWakeOnNetworkOptions(void) TWOWORDINLINE(0x702E, 0xA09E); /* * SetWakeOnNetworkOptions() * * Availability: * Non-Carbon CFM: in PowerMgrLib 2.0 and later * CarbonLib: not available * Mac OS X: not available */ #if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM #pragma parameter SetWakeOnNetworkOptions(__A0) #endif EXTERN_API( void ) SetWakeOnNetworkOptions(OptionBits inOptions) TWOWORDINLINE(0x702F, 0xA09E); /* * AddPowerSource() * * Availability: * Non-Carbon CFM: in PowerMgrLib 2.0 and later * CarbonLib: not available * Mac OS X: not available */ #if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM #pragma parameter __D0 AddPowerSource(__A0) #endif EXTERN_API( OSStatus ) AddPowerSource(PowerSourceParamBlock * ioPowerSource) TWOWORDINLINE(0x7030, 0xA09E); /* * RemovePowerSource() * * Availability: * Non-Carbon CFM: in PowerMgrLib 2.0 and later * CarbonLib: not available * Mac OS X: not available */ #if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM #pragma parameter __D0 RemovePowerSource(__D0) #endif EXTERN_API( OSStatus ) RemovePowerSource(PowerSourceID inSourceID) FOURWORDINLINE(0x4840, 0x303C, 0x0031, 0xA09E); /* * UpdatePowerSource() * * Availability: * Non-Carbon CFM: in PowerMgrLib 2.0 and later * CarbonLib: not available * Mac OS X: not available */ #if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM #pragma parameter __D0 UpdatePowerSource(__A0) #endif EXTERN_API( OSStatus ) UpdatePowerSource(PowerSourceParamBlock * ioSource) TWOWORDINLINE(0x7032, 0xA09E); /* * IsServerModeEnabled() * * Availability: * Non-Carbon CFM: in PowerMgrLib 2.0 and later * CarbonLib: not available * Mac OS X: not available */ #if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM #pragma parameter __D0 IsServerModeEnabled #endif EXTERN_API( Boolean ) IsServerModeEnabled(void) TWOWORDINLINE(0x7033, 0xA09E); /* * EnableServerMode() * * Availability: * Non-Carbon CFM: in PowerMgrLib 2.0 and later * CarbonLib: not available * Mac OS X: not available */ #if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM #pragma parameter EnableServerMode(__D0) #endif EXTERN_API( void ) EnableServerMode(Boolean inEnable) FOURWORDINLINE(0x4840, 0x303C, 0x0034, 0xA09E); /* NumBatteriesInstalled is different from BatteryCount in that it indicates how many batteries are actually available at the time it is called (including UPS batteries). BatteryCount shows a static number of batteries a machine is capable of holding which does NOT include UPS batteries. So, while a desktop might show a BatteryCount of zero, its NumBatteriesInstalled value might be 1 or more if a UPS is attached. */ /* * NumBatteriesInstalled() * * Availability: * Non-Carbon CFM: in PowerMgrLib 2.0 and later * CarbonLib: not available * Mac OS X: not available */ #if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM #pragma parameter __D0 NumBatteriesInstalled #endif EXTERN_API( UInt32 ) NumBatteriesInstalled(void) TWOWORDINLINE(0x7035, 0xA09E); /* Power Handler Management */ /* * IsPCIPowerOffDisabled() * * Availability: * Non-Carbon CFM: in DriverServicesLib 1.1 and later * CarbonLib: not available * Mac OS X: not available */ EXTERN_API_C( Boolean ) IsPCIPowerOffDisabled(void); /* * EnablePCIPowerOff() * * Availability: * Non-Carbon CFM: in DriverServicesLib 1.1 and later * CarbonLib: not available * Mac OS X: not available */ EXTERN_API_C( void ) EnablePCIPowerOff(Boolean inEnable); /* * AddDevicePowerHandler() * * Availability: * Non-Carbon CFM: in DriverServicesLib 1.1 and later * CarbonLib: not available * Mac OS X: not available */ EXTERN_API_C( OSStatus ) AddDevicePowerHandler( RegEntryIDPtr regEntryID, PowerHandlerProcPtr handler, UInt32 refCon, char * deviceType); /* * RemoveDevicePowerHandler() * * Availability: * Non-Carbon CFM: in DriverServicesLib 1.1 and later * CarbonLib: not available * Mac OS X: not available */ EXTERN_API_C( OSStatus ) RemoveDevicePowerHandler(RegEntryIDPtr regEntryID); /* * RemoveDevicePowerHandlerForProc() * * Availability: * Non-Carbon CFM: in DriverServicesLib 1.1 and later * CarbonLib: not available * Mac OS X: not available */ EXTERN_API_C( OSStatus ) RemoveDevicePowerHandlerForProc(PowerHandlerProcPtr proc); /* * GetDevicePowerLevel() * * Availability: * Non-Carbon CFM: in DriverServicesLib 1.1 and later * CarbonLib: not available * Mac OS X: not available */ EXTERN_API_C( OSStatus ) GetDevicePowerLevel( RegEntryIDPtr regEntryID, PowerLevel * devicePowerLevel); /* * SetDevicePowerLevel() * * Availability: * Non-Carbon CFM: in DriverServicesLib 1.1 and later * CarbonLib: not available * Mac OS X: not available */ EXTERN_API_C( OSStatus ) SetDevicePowerLevel( RegEntryIDPtr regEntryID, PowerLevel devicePowerLevel); #endif /* CALL_NOT_IN_CARBON */ /* * NewSleepQUPP() * * Availability: * Non-Carbon CFM: available as macro/inline * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API_C( SleepQUPP ) NewSleepQUPP(SleepQProcPtr userRoutine); #if !OPAQUE_UPP_TYPES enum { uppSleepQProcInfo = 0x00131832 }; /* register 4_bytes:D0 Func(4_bytes:D0, 4_bytes:A0) */ #ifdef __cplusplus inline DEFINE_API_C(SleepQUPP) NewSleepQUPP(SleepQProcPtr userRoutine) { return (SleepQUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppSleepQProcInfo, GetCurrentArchitecture()); } #else #define NewSleepQUPP(userRoutine) (SleepQUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppSleepQProcInfo, GetCurrentArchitecture()) #endif #endif /* * NewHDSpindownUPP() * * Availability: * Non-Carbon CFM: available as macro/inline * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API_C( HDSpindownUPP ) NewHDSpindownUPP(HDSpindownProcPtr userRoutine); #if !OPAQUE_UPP_TYPES enum { uppHDSpindownProcInfo = 0x000000C0 }; /* pascal no_return_value Func(4_bytes) */ #ifdef __cplusplus inline DEFINE_API_C(HDSpindownUPP) NewHDSpindownUPP(HDSpindownProcPtr userRoutine) { return (HDSpindownUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppHDSpindownProcInfo, GetCurrentArchitecture()); } #else #define NewHDSpindownUPP(userRoutine) (HDSpindownUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppHDSpindownProcInfo, GetCurrentArchitecture()) #endif #endif /* * NewPMgrStateChangeUPP() * * Availability: * Non-Carbon CFM: available as macro/inline * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API_C( PMgrStateChangeUPP ) NewPMgrStateChangeUPP(PMgrStateChangeProcPtr userRoutine); #if !OPAQUE_UPP_TYPES enum { uppPMgrStateChangeProcInfo = 0x000003C0 }; /* pascal no_return_value Func(4_bytes, 4_bytes) */ #ifdef __cplusplus inline DEFINE_API_C(PMgrStateChangeUPP) NewPMgrStateChangeUPP(PMgrStateChangeProcPtr userRoutine) { return (PMgrStateChangeUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppPMgrStateChangeProcInfo, GetCurrentArchitecture()); } #else #define NewPMgrStateChangeUPP(userRoutine) (PMgrStateChangeUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppPMgrStateChangeProcInfo, GetCurrentArchitecture()) #endif #endif /* * DisposeSleepQUPP() * * Availability: * Non-Carbon CFM: available as macro/inline * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API_C( void ) DisposeSleepQUPP(SleepQUPP userUPP); #if !OPAQUE_UPP_TYPES #ifdef __cplusplus inline DEFINE_API_C(void) DisposeSleepQUPP(SleepQUPP userUPP) { DisposeRoutineDescriptor((UniversalProcPtr)userUPP); } #else #define DisposeSleepQUPP(userUPP) DisposeRoutineDescriptor(userUPP) #endif #endif /* * DisposeHDSpindownUPP() * * Availability: * Non-Carbon CFM: available as macro/inline * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API_C( void ) DisposeHDSpindownUPP(HDSpindownUPP userUPP); #if !OPAQUE_UPP_TYPES #ifdef __cplusplus inline DEFINE_API_C(void) DisposeHDSpindownUPP(HDSpindownUPP userUPP) { DisposeRoutineDescriptor((UniversalProcPtr)userUPP); } #else #define DisposeHDSpindownUPP(userUPP) DisposeRoutineDescriptor(userUPP) #endif #endif /* * DisposePMgrStateChangeUPP() * * Availability: * Non-Carbon CFM: available as macro/inline * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API_C( void ) DisposePMgrStateChangeUPP(PMgrStateChangeUPP userUPP); #if !OPAQUE_UPP_TYPES #ifdef __cplusplus inline DEFINE_API_C(void) DisposePMgrStateChangeUPP(PMgrStateChangeUPP userUPP) { DisposeRoutineDescriptor((UniversalProcPtr)userUPP); } #else #define DisposePMgrStateChangeUPP(userUPP) DisposeRoutineDescriptor(userUPP) #endif #endif /* * InvokeSleepQUPP() * * Availability: * Non-Carbon CFM: available as macro/inline * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ #if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM #pragma parameter __D0 InvokeSleepQUPP(__D0, __A0, __A1) #endif EXTERN_API_C( long ) InvokeSleepQUPP( long message, SleepQRecPtr qRecPtr, SleepQUPP userUPP) ONEWORDINLINE(0x4E91); #if !OPAQUE_UPP_TYPES && (!TARGET_OS_MAC || !TARGET_CPU_68K || TARGET_RT_MAC_CFM) #ifdef __cplusplus inline DEFINE_API_C(long) InvokeSleepQUPP(long message, SleepQRecPtr qRecPtr, SleepQUPP userUPP) { return (long)CALL_TWO_PARAMETER_UPP(userUPP, uppSleepQProcInfo, message, qRecPtr); } #else #define InvokeSleepQUPP(message, qRecPtr, userUPP) (long)CALL_TWO_PARAMETER_UPP((userUPP), uppSleepQProcInfo, (message), (qRecPtr)) #endif #endif /* * InvokeHDSpindownUPP() * * Availability: * Non-Carbon CFM: available as macro/inline * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API_C( void ) InvokeHDSpindownUPP( HDQueueElement * theElement, HDSpindownUPP userUPP); #if !OPAQUE_UPP_TYPES #ifdef __cplusplus inline DEFINE_API_C(void) InvokeHDSpindownUPP(HDQueueElement * theElement, HDSpindownUPP userUPP) { CALL_ONE_PARAMETER_UPP(userUPP, uppHDSpindownProcInfo, theElement); } #else #define InvokeHDSpindownUPP(theElement, userUPP) CALL_ONE_PARAMETER_UPP((userUPP), uppHDSpindownProcInfo, (theElement)) #endif #endif /* * InvokePMgrStateChangeUPP() * * Availability: * Non-Carbon CFM: available as macro/inline * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API_C( void ) InvokePMgrStateChangeUPP( PMgrQueueElement * theElement, long stateBits, PMgrStateChangeUPP userUPP); #if !OPAQUE_UPP_TYPES #ifdef __cplusplus inline DEFINE_API_C(void) InvokePMgrStateChangeUPP(PMgrQueueElement * theElement, long stateBits, PMgrStateChangeUPP userUPP) { CALL_TWO_PARAMETER_UPP(userUPP, uppPMgrStateChangeProcInfo, theElement, stateBits); } #else #define InvokePMgrStateChangeUPP(theElement, stateBits, userUPP) CALL_TWO_PARAMETER_UPP((userUPP), uppPMgrStateChangeProcInfo, (theElement), (stateBits)) #endif #endif #if CALL_NOT_IN_CARBON || OLDROUTINENAMES /* support for pre-Carbon UPP routines: New...Proc and Call...Proc */ #define NewSleepQProc(userRoutine) NewSleepQUPP(userRoutine) #define NewHDSpindownProc(userRoutine) NewHDSpindownUPP(userRoutine) #define NewPMgrStateChangeProc(userRoutine) NewPMgrStateChangeUPP(userRoutine) #define CallSleepQProc(userRoutine, message, qRecPtr) InvokeSleepQUPP(message, qRecPtr, userRoutine) #define CallHDSpindownProc(userRoutine, theElement) InvokeHDSpindownUPP(theElement, userRoutine) #define CallPMgrStateChangeProc(userRoutine, theElement, stateBits) InvokePMgrStateChangeUPP(theElement, stateBits, userRoutine) #endif /* CALL_NOT_IN_CARBON */ #if PRAGMA_STRUCT_ALIGN #pragma options align=reset #elif PRAGMA_STRUCT_PACKPUSH #pragma pack(pop) #elif PRAGMA_STRUCT_PACK #pragma pack() #endif #ifdef PRAGMA_IMPORT_OFF #pragma import off #elif PRAGMA_IMPORT #pragma import reset #endif #ifdef __cplusplus } #endif #endif /* __POWER__ */