ADC Home > Reference Library > Reference > Hardware & Drivers > I/O Kit Framework Reference
|
IOPMLib.h |
Includes: |
IOPMLib provides access to common power management facilites, like initiating system sleep, getting current idle timer values, registering for sleep/wake notifications, and preventing system sleep.
- IOPMAssertionCreate
Dynamically requests a system behavior from the power management system.
- IOPMAssertionRelease
Releases the behavior requested in IOPMAssertionCreate
- IOPMCopyAssertionsByProcess
Returns a dictionary mapping processes to the assertions they are holding active.
- IOPMCopyAssertionsStatus
Returns a list of available assertions and their system-wide level.
- IOAllowPowerChange
The caller acknowledges notification of a power state change on a device it has registered for notifications for via IORegisterForSystemPower or IORegisterApp.
- IOCancelPowerChange
The caller negatively acknowledges notification of a power state change on a device it is interested in. This prevents the state change.
- IODeregisterForSystemPower
Disconnects the caller from the Root Power Domain IOService after receiving system power state change notifications. (Caller must also release IORegisterForSystemPower's return io_connect_t and returned IONotificationPortRef for complete clean-up).
- IODeregisterForSystemPower.
Disconnects the caller from the Root Power Domain IOService after receiving system power state change notifications. (Caller must also release IORegisterForSystemPower's return io_connect_t and returned IONotificationPortRef for complete clean-up).
- IORegisterApp
Connects the caller to an IOService for the purpose of receiving power state change notifications for the device controlled by the IOService.
- IORegisterForSystemPower
Connects the caller to the Root Power Domain IOService for the purpose of receiving Sleep, Wake, ShutDown, PowerUp notifications for the System.
Events
- IOPMCancelScheduledPowerEvent
Cancel a previously scheduled power event.
- IOPMCopyScheduledPowerEvents
List all scheduled system power events
- IOPMSchedulePowerEvent
Schedule the machine to wake from sleep, power on, go to sleep, or shutdown.
The caller acknowledges notification of a power state change on a device it has registered for notifications for via IORegisterForSystemPower or IORegisterApp.
The caller negatively acknowledges notification of a power state change on a device it is interested in. This prevents the state change.
Disconnects the caller from the Root Power Domain IOService after receiving system power state change notifications. (Caller must also release IORegisterForSystemPower's return io_connect_t and returned IONotificationPortRef for complete clean-up).
Disconnects the caller from the Root Power Domain IOService after receiving system power state change notifications. (Caller must also release IORegisterForSystemPower's return io_connect_t and returned IONotificationPortRef for complete clean-up).
Dynamically requests a system behavior from the power management system.
Releases the behavior requested in IOPMAssertionCreate
Cancel a previously scheduled power event.
Returns a dictionary mapping processes to the assertions they are holding active.
Returns a list of available assertions and their system-wide level.
Request raw battery data from the system.
List all scheduled system power events
Finds the Root Power Domain IOService.
Retrieves the current value of one of the aggressiveness factors in IOKit Power Management.
Schedule the machine to wake from sleep, power on, go to sleep, or shutdown.
Sets one of the aggressiveness factors in IOKit Power Management.
Tells whether the system supports full sleep, or just doze
Request that the system initiate sleep.
Connects the caller to an IOService for the purpose of receiving power state change notifications for the device controlled by the IOService.
Connects the caller to the Root Power Domain IOService for the purpose of receiving Sleep, Wake, ShutDown, PowerUp notifications for the System.
IOAllowPowerChange |
The caller acknowledges notification of a power state change on a device it has registered for notifications for via IORegisterForSystemPower or IORegisterApp.
IOReturn IOAllowPowerChange ( io_connect_t kernelPort, long notificationID );
kernelPort
Port used to communicate to the kernel, from IORegisterApp or IORegisterForSystemPower.
notificationID
A copy of the notification ID which came as part of the power state change notification being acknowledged.
Returns kIOReturnSuccess or an error condition if request failed.
Must be used when handling kIOMessageCanSystemSleep and kIOMessageSystemWillSleep messages from IOPMrootDomain system power.
IOCancelPowerChange |
The caller negatively acknowledges notification of a power state change on a device it is interested in. This prevents the state change.
IOReturn IOCancelPowerChange ( io_connect_t kernelPort, long notificationID );
kernelPort
Port used to communicate to the kernel, from IORegisterApp or IORegisterForSystemPower.
notificationID
A copy of the notification ID which came as part of the power state change notification being acknowledged.
Returns kIOReturnSuccess or an error condition if request failed.
Should only used when handling kIOMessageCanSystemSleep messages from IOPMrootDomain. IOCancelPowerChange() has no meaning for responding to kIOMessageSystemWillSleep (which is non-abortable) or any other messages.
IODeregisterForSystemPower |
Disconnects the caller from the Root Power Domain IOService after receiving system power state change notifications. (Caller must also release IORegisterForSystemPower's return io_connect_t and returned IONotificationPortRef for complete clean-up).
IOReturn IODeregisterForSystemPower ( io_object_t *notifier );
notifier
An object from IORegisterForSystemPower.
Returns kIOReturnSuccess or an error condition if request failed.
IODeregisterForSystemPower. |
Disconnects the caller from the Root Power Domain IOService after receiving system power state change notifications. (Caller must also release IORegisterForSystemPower's return io_connect_t and returned IONotificationPortRef for complete clean-up).
IOReturn IODeregisterForSystemPower ( io_object_t *notifier );
notifier
An object from IORegisterForSystemPower.
Returns kIOReturnSuccess or an error condition if request failed.
IOPMAssertionCreate |
Dynamically requests a system behavior from the power management system.
IOReturn IOPMAssertionCreate( CFStringRef AssertionType, IOPMAssertionLevel AssertionLevel, IOPMAssertionID *AssertionID);
AssertionType
The CFString assertion type to request from the PM system.
AssertionLevel
Pass kIOPMAssertionLevelOn or kIOPMAssertionLevelOff.
AssertionID
On success, a unique id will be returned in this parameter.
Returns kIOReturnSuccess on success, any other return indicates PM could not successfully activate the specified assertion.
No special privileges necessary to make this call - any process may activate a power assertion.
IOPMAssertionRelease |
Releases the behavior requested in IOPMAssertionCreate
IOReturn IOPMAssertionRelease( IOPMAssertionID AssertionID);
AssertionID
The assertion_id, returned from IOPMAssertionCreate, to cancel.
Returns kIOReturnSuccess on success
All calls to IOPMAssertionCreate must be paired with calls to IOPMAssertionRelease.
IOPMCancelScheduledPowerEvent |
Cancel a previously scheduled power event.
IOReturn IOPMCancelScheduledPowerEvent( CFDateRef time_to_wake, CFStringRef my_id, CFStringRef type);
time_to_wake
Cancel entry with this date and time.
my_id
Cancel entry with this name.
type
Type to cancel
kIOReturnSuccess on success, otherwise on failure
Arguments mirror those to IOPMSchedulePowerEvent. All arguments must match the original arguments from when the power on was scheduled. Must be called as root.
IOPMCopyAssertionsByProcess |
Returns a dictionary mapping processes to the assertions they are holding active.
IOReturn IOPMCopyAssertionsByProcess( CFDictionaryRef *AssertionsByPID);
AssertionsByPID
On success, this returns a dictionary of assertions per process. At the top level, keys to the CFDictionary are pids stored as CFNumbers (kCFNumberIntType). The value associated with each CFNumber pid is a CFArray of active assertions. Each entry in the CFArray is an assertion represented as a CFDictionary. See the keys kIOPMAssertionTypeKey and kIOPMAssertionLevelKey. Caller must CFRelease() this dictionary when done.
Returns kIOReturnSuccess on success.
Notes: One process may have multiple assertions. Several processes may have asserted the same assertion to different levels.
IOPMCopyAssertionsStatus |
Returns a list of available assertions and their system-wide level.
IOReturn IOPMCopyAssertionsStatus( CFDictionaryRef *AssertionsStatus);
AssertionsStatus
On success, this returns a CFDictionary of all assertions currently available. The keys in the dictionary are the assertion types, and the value of each is a CFNumber that represents the aggregate level for that assertion. Caller must CFRelease() this dictionary when done.
Returns kIOReturnSuccess on success.
Notes: One process may have multiple assertions. Several processes may have asserted the same assertion to different levels. The system-wide level is the maximum of these assertions' levels.
IOPMCopyBatteryInfo |
Request raw battery data from the system.
IOReturn IOPMCopyBatteryInfo( mach_port_t masterPort, CFArrayRef *info );
masterPort
The master port obtained from IOMasterPort(). Just pass MACH_PORT_NULL.
info
A CFArray of CFDictionaries containing raw battery data.
Returns kIOReturnSuccess or an error condition if request failed.
WARNING! IOPMCoyBatteryInfo is unsupported on ALL Intel CPU based systems. For PPC CPU based systems, it remains not recommended. For almost all purposes, developers should use the richer IOPowerSources API (with change notifications) instead of using IOPMCopyBatteryInfo. Keys to decipher IOPMCopyBatteryInfo's return CFArray exist in IOPM.h.
IOPMCopyScheduledPowerEvents |
List all scheduled system power events
CFArrayRef IOPMCopyScheduledPowerEvents( void);
A CFArray of CFDictionaries of power events. The CFArray must be released by the caller. NULL if there are no scheduled events.
Returns a CFArray of CFDictionaries of power events. Each CFDictionary contains keys for CFSTR(kIOPMPowerEventTimeKey), CFSTR(kIOPMPowerEventAppNameKey), and CFSTR(kIOPMPowerEventTypeKey).
IOPMFindPowerManagement |
Finds the Root Power Domain IOService.
io_connect_t IOPMFindPowerManagement( mach_port_t master_device_port );
master_device_port
Just pass in MACH_PORT_NULL for master device port.
Returns a io_connect_t handle on the root domain. Must be released with IOServiceClose() when done.
IOPMGetAggressiveness |
Retrieves the current value of one of the aggressiveness factors in IOKit Power Management.
IOReturn IOPMGetAggressiveness ( io_connect_t fb, unsigned long type, unsigned long *aggressiveness );
fb
Representation of the Root Power Domain from IOPMFindPowerManagement.
type
Specifies which aggressiveness factor is being retrieved.
type
Points to where to store the retrieved value of the aggressiveness factor.
Returns kIOReturnSuccess or an error condition if request failed.
IOPMSchedulePowerEvent |
Schedule the machine to wake from sleep, power on, go to sleep, or shutdown.
IOReturn IOPMSchedulePowerEvent( CFDateRef time_to_wake, CFStringRef my_id, CFStringRef type);
time_to_wake
Date and time that the system will power on/off.
my_id
A CFStringRef identifying the calling app by CFBundleIdentifier. May be NULL.
type
The type of power on you desire, either wake from sleep or power on. Choose from: CFSTR(kIOPMAutoWake) == wake machine, CFSTR(kIOPMAutoPowerOn) == power on machine, CFSTR(kIOPMAutoWakeOrPowerOn) == wake or power on, CFSTR(kIOPMAutoSleep) == sleep machine, CFSTR(kIOPMAutoShutdown) == power off machine, CFSTR(kIOPMAutoRestart) == restart the machine.
kIOReturnSuccess on success, otherwise on failure
This event will be added to the system's queue of power events and stored persistently on disk. The sleep and shutdown events present a graphical warning and allow a console user to cancel the event. Must be called as root.
IOPMSetAggressiveness |
Sets one of the aggressiveness factors in IOKit Power Management.
IOReturn IOPMSetAggressiveness ( io_connect_t fb, unsigned long type, unsigned long aggressiveness );
fb
Representation of the Root Power Domain from IOPMFindPowerManagement.
type
Specifies which aggressiveness factor is being set.
type
New value of the aggressiveness factor.
Returns kIOReturnSuccess or an error condition if request failed.
IOPMSleepEnabled |
Tells whether the system supports full sleep, or just doze
boolean_t IOPMSleepEnabled ( void );
Returns true if the system supports sleep, false if some hardware prevents full sleep.
IOPMSleepSystem |
Request that the system initiate sleep.
IOReturn IOPMSleepSystem ( io_connect_t fb );
fb
Port used to communicate to the kernel, from IOPMFindPowerManagement.
Returns kIOReturnSuccess or an error condition if request failed.
For security purposes, caller must be root or the console user.
IORegisterApp |
Connects the caller to an IOService for the purpose of receiving power state change notifications for the device controlled by the IOService.
io_connect_t IORegisterApp( void *refcon, io_service_t theDriver, IONotificationPortRef *thePortRef, IOServiceInterestCallback callback, io_object_t *notifier );
refcon
Data returned on power state change notifications and not used by the kernel.
theDriver
Representation of the IOService, probably from IOServiceGetMatchingService.
thePortRef
Pointer to a port on which the caller will receive power state change notifications. The port is allocated by the calling application.
callback
A c-function which is called during the notification.
notifier
Pointer to a notifier which caller must keep and pass to subsequent call to IODeregisterApp.
Returns a io_connect_t session for the IOService or MACH_PORT_NULL if request failed. Caller must close return value via IOServiceClose() after calling IODeregisterApp on the notifier argument.
IORegisterApp requires that the IOService of interest implement an IOUserClient. In addition, that IOUserClient must implement the allowPowerChange and cancelPowerChange methods defined in IOPMLibDefs.h. If you're interested in receiving power state notifications from a device without an IOUserClient, try using IOServiceAddInterestNotification with interest type gIOGeneralInterest instead.
IORegisterForSystemPower |
Connects the caller to the Root Power Domain IOService for the purpose of receiving Sleep, Wake, ShutDown, PowerUp notifications for the System.
io_connect_t IORegisterForSystemPower ( void *refcon, IONotificationPortRef *thePortRef, IOServiceInterestCallback callback, io_object_t *notifier );
refcon
Data returned on power state change notifications and not used by the kernel.
thePortRef
Pointer to a port on which the caller will receive power state change notifications. The port is allocated by this function and must be later released by the caller (after IODeregisterForSystemPower).
callback
A c-function which is called during the notification.
notifier
On success, returns a pointer to a unique notifier which caller must keep and pass to a subsequent call to IODeregisterForSystemPower.
Returns a io_connect_t session for the IOPMrootDomain or MACH_PORT_NULL if request failed. Caller must close return value via IOServiceClose() after calling IODeregisterForSystemPower on the notifier argument.
|
Last Updated: 2009-02-23