1/*-
2 * APM (Advanced Power Management) BIOS Device Driver
3 *
4 * Copyright (c) 1994 UKAI, Fumitoshi.
5 * Copyright (c) 1994-1995 by HOSOKAWA, Tatsumi <hosokawa@jp.FreeBSD.org>
6 * Copyright (c) 1996 Nate Williams <nate@FreeBSD.org>
7 * Copyright (c) 1997 Poul-Henning Kamp <phk@FreeBSD.org>
8 *
9 * This software may be used, modified, copied, and distributed, in
10 * both source and binary form provided that the above copyright and
11 * these terms are retained. Under no circumstances is the author
12 * responsible for the proper functioning of this software, nor does
13 * the author assume any responsibility for damages incurred with its
14 * use.
15 *
16 * Sep, 1994	Implemented on FreeBSD 1.1.5.1R (Toshiba AVS001WD)
17 *
18 * $FreeBSD$
19 */
20
21#ifndef __APM_H__
22#define	__APM_H__
23
24#define APM_NEVENTS 16
25#define APM_NPMEV   13
26#define APM_UNKNOWN	0xff
27
28/* static data */
29struct apm_softc {
30#ifdef PC98
31	bus_space_tag_t		sc_iot;
32	bus_space_handle_t	sc_ioh;
33	struct resource 	*sc_res;
34#endif
35	struct mtx	mtx;
36	struct cv	cv;
37	struct proc	*event_thread;
38	int	initialized, active, running, bios_busy;
39	int	always_halt_cpu, slow_idle_cpu;
40	int	disabled, disengaged;
41	int	suspending;
42	int	standby_countdown, suspend_countdown;
43	u_int	minorversion, majorversion;
44	u_int	intversion, connectmode;
45	u_int	standbys, suspends;
46	struct bios_args bios;
47	struct apmhook sc_suspend;
48	struct apmhook sc_resume;
49	struct selinfo sc_rsel;
50	int	sc_flags;
51	int	event_count;
52	int	event_ptr;
53	struct	apm_event_info event_list[APM_NEVENTS];
54	u_char	event_filter[APM_NPMEV];
55};
56
57#endif /* !__APM_H__ */
58