From owner-acpi-jp@jp.freebsd.org  Fri Dec  3 02:54:47 1999
Received: (from daemon@localhost)
	by castle.jp.freebsd.org (8.9.3+3.2W/8.7.3) id CAA35651;
	Fri, 3 Dec 1999 02:54:47 +0900 (JST)
	(envelope-from owner-acpi-jp@jp.FreeBSD.org)
Received: from light.imasy.or.jp (root@light.imasy.or.jp [202.227.24.4])
	by castle.jp.freebsd.org (8.9.3+3.2W/8.7.3) with ESMTP id CAA35646
	for <acpi-jp@jp.freebsd.org>; Fri, 3 Dec 1999 02:54:46 +0900 (JST)
	(envelope-from iwasaki@jp.FreeBSD.org)
Received: from tasogare.imasy.or.jp (daemon@tasogare.imasy.or.jp [202.227.24.5])
	by light.imasy.or.jp (8.9.3+3.2W/3.7W-light) with ESMTP id CAA13810
	for <acpi-jp@jp.freebsd.org>; Fri, 3 Dec 1999 02:54:46 +0900 (JST)
	(envelope-from iwasaki@jp.FreeBSD.org)
Received: from localhost (isdnb18.imasy.or.jp [202.227.24.146])
	by tasogare.imasy.or.jp (8.9.3+3.2W/3.7W-tasogare/smtpfeed 1.01) with ESMTP id CAA28795
	for <acpi-jp@jp.freebsd.org>; Fri, 3 Dec 1999 02:54:44 +0900 (JST)
	(envelope-from iwasaki@jp.FreeBSD.org)
Message-Id: <199912021754.CAA28795@tasogare.imasy.or.jp>
To: acpi-jp@jp.freebsd.org
In-Reply-To: Your message of "Fri, 03 Dec 1999 00:14:21 +0900"
	<199912021514.AAA16187@tasogare.imasy.or.jp>
References: <199912021514.AAA16187@tasogare.imasy.or.jp>
X-Mailer: Mew version 1.93 on Emacs 19.34 / Mule 2.3 (SUETSUMUHANA)
Mime-Version: 1.0
Content-Type: Text/Plain; charset=iso-2022-jp
Content-Transfer-Encoding: 7bit
Date: Fri, 03 Dec 1999 02:54:31 +0900
From: Mitsuru IWASAKI <iwasaki@jp.freebsd.org>
X-Dispatcher: imput version 980905(IM100)
Lines: 121
Reply-To: acpi-jp@jp.freebsd.org
Precedence: list
X-Distribute: distribute version 2.1 (Alpha) patchlevel 24e+990727
X-Sequence: acpi-jp 134
Subject: [acpi-jp 134] Re: acpiconf enhancement
Errors-To: owner-acpi-jp@jp.freebsd.org
Sender: owner-acpi-jp@jp.freebsd.org
X-Originator: iwasaki@jp.freebsd.org

> >  - $B%G%P%$%9%I%i%$%P$H$N%X%C%@%U%!%$%k$N6&M-(B
> 
> $B$3$3$r$^$:JRIU$1$h$&$H;W$$$^$9!#(B

$B$^$:$O!"(B/usr/include/machine/pc/acpi.h $B$+$i$G$9!#(B
# $B$H$O$$$C$F$b8=>u$O(B /usr/include/machine/pc/ $B$O$J$$$N$G!"(B
# $BE,Ev$K7!$C$F%3%T!<$7$F$/$@$5$$(B :-)

$BCm0U(B: sys/i386/include/pc/acpi.h $B$NJ}$OJQ99$7$J$$$G$/$@$5$$!#(B
      $B%3%s%Q%$%k$G$-$J$/$J$j$^$9!#(B

--- /usr/include/machine/pc/acpi.h~	Wed Nov 17 00:14:26 1999
+++ /usr/include/machine/pc/acpi.h	Fri Dec  3 02:43:22 1999
@@ -49,11 +49,11 @@
 	u_char          check;
 	u_char          oemid[6];
 	u_char          oemtblid[8];
-	u_char          oemrev[4];
+	u_int32_t       oemrev;
 	u_char          creator[4];
-	u_char          crerev[4];
+	u_int32_t       crerev;
 #define SIZEOF_SDT_HDR 36	/* struct size except body */
-	u_char          body[1];/* This member should be casted */
+	u_int32_t       body[1];/* This member should be casted */
 } __attribute__((packed));
 
 /* Fixed ACPI Description Table (body) */
@@ -61,13 +61,15 @@
 	u_int32_t       facs_ptr;
 	u_int32_t       dsdt_ptr;
 	u_int8_t        int_model;
+#define ACPI_FACP_INTMODEL_PIC	0	/* Standard PC-AT PIC */
+#define ACPI_FACP_INTMODEL_APIC	1	/* Multiple APIC */
 	u_char          reserved1;
 	u_int16_t       sci_int;
 	u_int32_t       smi_cmd;
 	u_int8_t        acpi_enable;
 	u_int8_t        acpi_disable;
 	u_int8_t        s4biosreq;
-	u_int8_t        reserved15;
+	u_int8_t        reserved2;
 	u_int32_t       pm1a_evt_blk;
 	u_int32_t       pm1b_evt_blk;
 	u_int32_t       pm1a_cnt_blk;
@@ -83,18 +85,28 @@
 	u_int8_t        gpe0_len;
 	u_int8_t        gpe1_len;
 	u_int8_t        gpe1_base;
-	u_int8_t        reserved2;
+	u_int8_t        reserved3;
 	u_int16_t       p_lvl2_lat;
 	u_int16_t       p_lvl3_lat;
-	u_int16_t       flash_size;
-	u_int16_t       flash_stride;
+	u_int16_t       flush_size;
+	u_int16_t       flush_stride;
 	u_int8_t        duty_off;
 	u_int8_t        duty_width;
 	u_int8_t        day_alrm;
 	u_int8_t        mon_alrm;
 	u_int8_t        century;
-	u_char          reserved3[3];
-	u_char          flags[4];
+	u_char          reserved4[3];
+	u_int32_t       flags;
+#define ACPI_FACP_FLAG_WBINVD	0	/* WBINVD is correctly supported */
+#define ACPI_FACP_FLAG_WBINVD_FLUSH 2	/* WBINVD flushes caches */
+#define ACPI_FACP_FLAG_PROC_C1	4	/* C1 power state supported */
+#define ACPI_FACP_FLAG_P_LVL2_UP 8	/* C2 power state works on SMP */
+#define ACPI_FACP_FLAG_PWR_BUTTON 16	/* Power button uses control method */
+#define ACPI_FACP_FLAG_SLP_BUTTON 32	/* Sleep button uses control method */
+#define ACPI_FACP_FLAG_FIX_RTC	64	/* RTC wakeup not supported */
+#define ACPI_FACP_FLAG_RTC_S4	128	/* RTC can wakeup from S4 state */
+#define ACPI_FACP_FLAG_TMR_VAL_EXT 256	/* TMR_VAL is 32bit */
+#define ACPI_FACP_FLAG_DCK_CAP	512	/* Can support docking */
 } __attribute__((packed));
 
 /* Firmware ACPI Control Structure */
@@ -107,15 +119,21 @@
 	 * sigh....
 	 */
 	u_int32_t       firm_wake_vec;
-	char            g_lock[4];	/* bit field */
-	char            flags[4];	/* bit field */
+	u_int32_t       g_lock;		/* bit field */
+	/* 5.2.6.1 Global Lock */
+#define ACPI_GLOBAL_LOCK_PENDING 1
+#define ACPI_GLOBAL_LOCK_OWNED 2
+	u_int32_t       flags;		/* bit field */
+#define ACPI_FACS_FLAG_S4BIOS_F	1	/* Supports S4BIOS_SEQ */
 	char            reserved[40];
 } __attribute__((packed));
 
+#ifdef KERNEL
 extern struct ACPIrsdp *acpi_rsdp;	/* ACPI Root System Description Table */
 
 void            acpi_init_addr_range(void);
 void            acpi_register_addr_range(u_int64_t base, u_int64_t size, u_int32_t type);
+#endif	/* KERNEL */
 
 /*
  * Structure for System State Package (7.5.2).
@@ -145,5 +163,17 @@
 		_IOR('P', IOCPARM_MASK - 2, struct acpi_system_state_package)
 #define ACPIIO_SETSLPSTATEPKG	\
 		_IOW('P', IOCPARM_MASK - 1, struct acpi_system_state_package)
+
+#ifndef KERNEL
+void           *acpi_map_physical(vm_offset_t pa, size_t length);
+struct ACPIrsdp *acpi_find_rsd_ptr(void);
+int             acpi_checksum(void *p, size_t length);
+struct ACPIsdt *acpi_map_sdt(vm_offset_t pa);
+void            acpi_print_rsd_ptr(struct ACPIrsdp * rp);
+void            acpi_print_sdt(struct ACPIsdt * sdp);
+void            acpi_print_rsdt(struct ACPIsdt * rsdp);
+void            acpi_print_facp(struct FACPbody * facp);
+void            acpi_print_dsdt(struct ACPIsdt * dsdp);
+#endif	/* !KERNEL */
 
 #endif	/* _MACHINE_PC_ACPI_H_ */
