aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorRalf Baechle <ralf@linux-mips.org>2007-02-09 12:08:57 -0500
committerRalf Baechle <ralf@linux-mips.org>2007-02-09 12:08:57 -0500
commit7726942fb15edd46e4fe8ab37f9a99795191e585 (patch)
tree08ce9b114d76f4247b353658bac43b8117609c0f /include
parent5986a2ec35836a878350c54af4bd91b1de6abc59 (diff)
[APM] Add shared version of APM emulation
Currently ARM and MIPS both have nearly identical copies of the APM emulation code in their arch code. Add yet another copy of it to drivers char and make it selectable through SYS_SUPPORTS_APM_EMULATION. Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
Diffstat (limited to 'include')
-rw-r--r--include/linux/apm-emulation.h62
1 files changed, 62 insertions, 0 deletions
diff --git a/include/linux/apm-emulation.h b/include/linux/apm-emulation.h
new file mode 100644
index 000000000000..e6d800358dd6
--- /dev/null
+++ b/include/linux/apm-emulation.h
@@ -0,0 +1,62 @@
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 */