mirror of
https://github.com/nillerusr/source-engine.git
synced 2024-12-22 22:27:05 +00:00
1959 lines
65 KiB
C
1959 lines
65 KiB
C
/*
|
|
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__ */
|
|
|