brintos

brintos / linux-shallow public Read only

0
0
Text · 2.3 KiB · 7554192 Raw
93 lines · c
1/* SPDX-License-Identifier: GPL-2.0-or-later */2/*3 * Include file for the interface to an APM BIOS4 * Copyright 1994-2001 Stephen Rothwell (sfr@canb.auug.org.au)5 */6#ifndef _LINUX_APM_H7#define _LINUX_APM_H8 9#include <uapi/linux/apm_bios.h>10 11 12#define APM_CS		(GDT_ENTRY_APMBIOS_BASE * 8)13#define APM_CS_16	(APM_CS + 8)14#define APM_DS		(APM_CS_16 + 8)15 16/* Results of APM Installation Check */17#define APM_16_BIT_SUPPORT	0x000118#define APM_32_BIT_SUPPORT	0x000219#define APM_IDLE_SLOWS_CLOCK	0x000420#define APM_BIOS_DISABLED      	0x000821#define APM_BIOS_DISENGAGED     0x001022 23/*24 * Data for APM that is persistent across module unload/load25 */26struct apm_info {27	struct apm_bios_info	bios;28	unsigned short		connection_version;29	int			get_power_status_broken;30	int			get_power_status_swabinminutes;31	int			allow_ints;32	int			forbid_idle;33	int			realmode_power_off;34	int			disabled;35};36 37/*38 * The APM function codes39 */40#define	APM_FUNC_INST_CHECK	0x530041#define	APM_FUNC_REAL_CONN	0x530142#define	APM_FUNC_16BIT_CONN	0x530243#define	APM_FUNC_32BIT_CONN	0x530344#define	APM_FUNC_DISCONN	0x530445#define	APM_FUNC_IDLE		0x530546#define	APM_FUNC_BUSY		0x530647#define	APM_FUNC_SET_STATE	0x530748#define	APM_FUNC_ENABLE_PM	0x530849#define	APM_FUNC_RESTORE_BIOS	0x530950#define	APM_FUNC_GET_STATUS	0x530a51#define	APM_FUNC_GET_EVENT	0x530b52#define	APM_FUNC_GET_STATE	0x530c53#define	APM_FUNC_ENABLE_DEV_PM	0x530d54#define	APM_FUNC_VERSION	0x530e55#define	APM_FUNC_ENGAGE_PM	0x530f56#define	APM_FUNC_GET_CAP	0x531057#define	APM_FUNC_RESUME_TIMER	0x531158#define	APM_FUNC_RESUME_ON_RING	0x531259#define	APM_FUNC_TIMER		0x531360 61/*62 * Function code for APM_FUNC_RESUME_TIMER63 */64#define	APM_FUNC_DISABLE_TIMER	065#define	APM_FUNC_GET_TIMER	166#define	APM_FUNC_SET_TIMER	267 68/*69 * Function code for APM_FUNC_RESUME_ON_RING70 */71#define	APM_FUNC_DISABLE_RING	072#define	APM_FUNC_ENABLE_RING	173#define	APM_FUNC_GET_RING	274 75/*76 * Function code for APM_FUNC_TIMER_STATUS77 */78#define	APM_FUNC_TIMER_DISABLE	079#define	APM_FUNC_TIMER_ENABLE	180#define	APM_FUNC_TIMER_GET	281 82/*83 * in arch/i386/kernel/setup.c84 */85extern struct apm_info	apm_info;86 87/*88 * This is the "All Devices" ID communicated to the BIOS89 */90#define APM_DEVICE_BALL		((apm_info.connection_version > 0x0100) ? \91				 APM_DEVICE_ALL : APM_DEVICE_OLD_ALL)92#endif	/* LINUX_APM_H */93