NAME
apm
—
power management interface
SYNOPSIS
apm0 at mainbus?
DESCRIPTION
The apm
driver provides an interface which
simulates the Advanced Power Management (APM) BIOS functions.
Suspend/resume and other power events are NOT YET SUPPORTED.
The apm
driver implements the following
ioctl(2) calls. They are defined in
<machine/apmvar.h>
.
APM_IOC_REJECT
- Not implemented. DO NOT USE.
APM_IOC_STANDBY
- NOT YET SUPPORTED
on arm64.
(
no parameters
) Request “standby” mode. APM_IOC_SUSPEND
- NOT YET
SUPPORTED on arm64.
(
no parameters
) Request “suspend” mode. APM_IOC_HIBERNATE
- NOT YET
SUPPORTED on arm64.
(
no parameters
) Request “hibernate” mode. APM_IOC_GETPOWER
- (
struct apm_power_info
) Request the current power state. The argument structure is as follows:struct apm_power_info { u_char battery_state; u_char ac_state; u_char battery_life; u_char spare1; u_int minutes_left; u_int spare2[6]; };
The following values are defined for battery_state:
APM_BATT_HIGH
- Battery has a high state of charge.
APM_BATT_LOW
- Battery has a low state of charge.
APM_BATT_CRITICAL
- Battery has a critical state of charge.
APM_BATT_CHARGING
- Battery is not high, low, or critical and is currently charging.
APM_BATT_UNKNOWN
- Cannot read the current battery state.
APM_BATTERY_ABSENT
- No battery installed.
The following values are defined for ac_state:
APM_AC_OFF
- External power not detected.
APM_AC_ON
- External power detected.
APM_AC_BACKUP
- Backup power in use.
APM_AC_UNKNOWN
- External power state unknown.
The battery_life value contains the estimated percentage of battery life available. 100% indicates a full charge.
The minutes_left value contains the estimated number of minutes of battery life remaining.
APM_IOC_NEXTEVENT
- (
struct apm_event_info
) The APM driver stores up toAPM_NEVENTS
events. This was defined as 16 at the time this documentation was written. If the event list is full when a new event is detected the new event is lost.APM_IOC_NEXTEVENT
ioctl returns the next event on the list orEAGAIN
if the event list is empty. The format of the returned event is:struct apm_event_info { u_int type; u_int index; u_int spare[8]; };
APM_IOC_DEV_CTL
- NOT YET
SUPPORTED on arm64.
(
struct apm_ctl
) Allows an application to directly set the APM operating mode. The argument structure is as follows:struct apm_ctl { u_int dev; u_int mode; };
dev indicates the device, typically
APM_DEV_ALLDEVS
.mode indicates the desired operating mode. Possible values are
APM_IOC_PRN_CTL
- (
int
) This ioctl(2) controls message output by the APM driver when a power change event is detected. The integer parameter is one of:APM_PRINT_ON
- All power change events result in a message. This is the normal operating mode for the driver.
APM_PRINT_OFF
- Power change event messages are suppressed.
APM_PRINT_PCT
- Power change event messages are suppressed unless the estimated battery life percentage changes.
FILES
- /dev/apm
- Power management data device. May only be opened read-only. May be opened by multiple concurrent users.
- /dev/apmctl
- Power management control device. May be opened read-write or write-only.
May only be opened by one user at a time. An attempt to open the file when
in use will fail, returning
EBUSY
.