include/linux/apm-emulation.h
changeset 0 aa628870c1d3
equal deleted inserted replaced
-1:000000000000 0:aa628870c1d3
       
     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  */
       
    20 struct 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  */
       
    55 extern void (*apm_get_power_status)(struct apm_power_info *);
       
    56 
       
    57 /*
       
    58  * Queue an event (APM_SYS_SUSPEND or APM_CRITICAL_SUSPEND)
       
    59  */
       
    60 void apm_queue_event(apm_event_t event);
       
    61 
       
    62 #endif /* __LINUX_APM_EMULATION_H */