|
|
/*
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 <MacTypes.h>
#endif
#ifndef __MIXEDMODE__
#include <MixedMode.h>
#endif
#ifndef __MULTIPROCESSING__
#include <Multiprocessing.h>
#endif
#ifndef __NAMEREGISTRY__
#include <NameRegistry.h>
#endif
#ifndef __MACERRORS__
#include <MacErrors.h>
#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__ */
|