APM(4)

NAME
apm - power management interface

SYNOPSIS
acpi0 at mainbus?

DESCRIPTION
The apm driver provides a user interface to the acpi(4) driver.

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
    (no parameters) Request “standby” mode.

APM_IOC_SUSPEND
    (no parameters) Request “suspend” mode.

APM_IOC_HIBERNATE
    (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 to APM_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 or EAGAIN 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];
        };

    where index is a sequential count of events that can be used to check if any events were lost and type is one of:
    APM_STANDBY_REQ
    APM_SUSPEND_REQ
    APM_NORMAL_RESUME
    APM_CRIT_RESUME
    APM_BATTERY_LOW
    APM_POWER_CHANGE
    APM_UPDATE_TIME
    APM_CRIT_SUSPEND_REQ
    APM_USER_STANDBY_REQ
    APM_USER_SUSPEND_REQ
    APM_SYS_STANDBY_RESUME

APM_IOC_DEV_CTL
    (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)