mirror of
				https://git.kernel.org/pub/scm/linux/kernel/git/chenhuacai/linux-loongson
				synced 2025-10-31 01:24:43 +00:00 
			
		
		
		
	 7726942fb1
			
		
	
	
		7726942fb1
		
	
	
	
	
		
			
			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>
		
			
				
	
	
		
			63 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			63 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| /* -*- linux-c -*-
 | |
|  *
 | |
|  * (C) 2003 zecke@handhelds.org
 | |
|  *
 | |
|  * GPL version 2
 | |
|  *
 | |
|  * based on arch/arm/kernel/apm.c
 | |
|  * factor out the information needed by architectures to provide
 | |
|  * apm status
 | |
|  */
 | |
| #ifndef __LINUX_APM_EMULATION_H
 | |
| #define __LINUX_APM_EMULATION_H
 | |
| 
 | |
| #include <linux/apm_bios.h>
 | |
| 
 | |
| /*
 | |
|  * This structure gets filled in by the machine specific 'get_power_status'
 | |
|  * implementation.  Any fields which are not set default to a safe value.
 | |
|  */
 | |
| struct apm_power_info {
 | |
| 	unsigned char	ac_line_status;
 | |
| #define APM_AC_OFFLINE			0
 | |
| #define APM_AC_ONLINE			1
 | |
| #define APM_AC_BACKUP			2
 | |
| #define APM_AC_UNKNOWN			0xff
 | |
| 
 | |
| 	unsigned char	battery_status;
 | |
| #define APM_BATTERY_STATUS_HIGH		0
 | |
| #define APM_BATTERY_STATUS_LOW		1
 | |
| #define APM_BATTERY_STATUS_CRITICAL	2
 | |
| #define APM_BATTERY_STATUS_CHARGING	3
 | |
| #define APM_BATTERY_STATUS_NOT_PRESENT	4
 | |
| #define APM_BATTERY_STATUS_UNKNOWN	0xff
 | |
| 
 | |
| 	unsigned char	battery_flag;
 | |
| #define APM_BATTERY_FLAG_HIGH		(1 << 0)
 | |
| #define APM_BATTERY_FLAG_LOW		(1 << 1)
 | |
| #define APM_BATTERY_FLAG_CRITICAL	(1 << 2)
 | |
| #define APM_BATTERY_FLAG_CHARGING	(1 << 3)
 | |
| #define APM_BATTERY_FLAG_NOT_PRESENT	(1 << 7)
 | |
| #define APM_BATTERY_FLAG_UNKNOWN	0xff
 | |
| 
 | |
| 	int		battery_life;
 | |
| 	int		time;
 | |
| 	int		units;
 | |
| #define APM_UNITS_MINS			0
 | |
| #define APM_UNITS_SECS			1
 | |
| #define APM_UNITS_UNKNOWN		-1
 | |
| 
 | |
| };
 | |
| 
 | |
| /*
 | |
|  * This allows machines to provide their own "apm get power status" function.
 | |
|  */
 | |
| extern void (*apm_get_power_status)(struct apm_power_info *);
 | |
| 
 | |
| /*
 | |
|  * Queue an event (APM_SYS_SUSPEND or APM_CRITICAL_SUSPEND)
 | |
|  */
 | |
| void apm_queue_event(apm_event_t event);
 | |
| 
 | |
| #endif /* __LINUX_APM_EMULATION_H */
 |