APM(4)

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_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_SYS_READY
    APM_SYS_STANDBY
    APM_SYS_SUSPEND
    APM_SYS_OFF
    APM_LASTREQ_INPROG
    APM_LASTREQ_REJECTED

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.

SEE ALSO
acpi(4), intro(4), halt(8)