APM(4) | Device Drivers Manual (amd64) | 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_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)

January 30, 2023 | Debian