linux/include/linux/apm-emulation.h
<<
>>
Prefs
   1/* -*- linux-c -*-
   2 *
   3 * (C) 2003 zecke@handhelds.org
   4 *
   5 * GPL version 2
   6 *
   7 * based on arch/arm/kernel/apm.c
   8 * factor out the information needed by architectures to provide
   9 * apm status
  10 */
  11#ifndef __LINUX_APM_EMULATION_H
  12#define __LINUX_APM_EMULATION_H
  13
  14#include <linux/apm_bios.h>
  15
  16/*
  17 * This structure gets filled in by the machine specific 'get_power_status'
  18 * implementation.  Any fields which are not set default to a safe value.
  19 */
  20struct apm_power_info {
  21        unsigned char   ac_line_status;
  22#define APM_AC_OFFLINE                  0
  23#define APM_AC_ONLINE                   1
  24#define APM_AC_BACKUP                   2
  25#define APM_AC_UNKNOWN                  0xff
  26
  27        unsigned char   battery_status;
  28#define APM_BATTERY_STATUS_HIGH         0
  29#define APM_BATTERY_STATUS_LOW          1
  30#define APM_BATTERY_STATUS_CRITICAL     2
  31#define APM_BATTERY_STATUS_CHARGING     3
  32#define APM_BATTERY_STATUS_NOT_PRESENT  4
  33#define APM_BATTERY_STATUS_UNKNOWN      0xff
  34
  35        unsigned char   battery_flag;
  36#define APM_BATTERY_FLAG_HIGH           (1 << 0)
  37#define APM_BATTERY_FLAG_LOW            (1 << 1)
  38#define APM_BATTERY_FLAG_CRITICAL       (1 << 2)
  39#define APM_BATTERY_FLAG_CHARGING       (1 << 3)
  40#define APM_BATTERY_FLAG_NOT_PRESENT    (1 << 7)
  41#define APM_BATTERY_FLAG_UNKNOWN        0xff
  42
  43        int             battery_life;
  44        int             time;
  45        int             units;
  46#define APM_UNITS_MINS                  0
  47#define APM_UNITS_SECS                  1
  48#define APM_UNITS_UNKNOWN               -1
  49
  50};
  51
  52/*
  53 * This allows machines to provide their own "apm get power status" function.
  54 */
  55extern void (*apm_get_power_status)(struct apm_power_info *);
  56
  57/*
  58 * Queue an event (APM_SYS_SUSPEND or APM_CRITICAL_SUSPEND)
  59 */
  60void apm_queue_event(apm_event_t event);
  61
  62#endif /* __LINUX_APM_EMULATION_H */
  63