You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
1958 lines
65 KiB
1958 lines
65 KiB
/* |
|
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__ */ |
|
|
|
|