From owner-acpi-jp@jp.freebsd.org  Tue May  2 14:20:00 2000
Received: (from daemon@localhost)
	by castle.jp.freebsd.org (8.9.3+3.2W/8.7.3) id OAA59327;
	Tue, 2 May 2000 14:20:00 +0900 (JST)
	(envelope-from owner-acpi-jp@jp.FreeBSD.org)
Received: from mail.ogis-ri.co.jp (ns.ogis-ri.co.jp [158.201.127.1])
	by castle.jp.freebsd.org (8.9.3+3.2W/8.7.3) with ESMTP id OAA59313
	for <acpi-jp@jp.freebsd.org>; Tue, 2 May 2000 14:19:59 +0900 (JST)
	(envelope-from yokoyama@o3.otc.ogis-ri.co.jp)
Received: from nozomi.icc.ogis-ri.co.jp (nozomi.icc.ogis-ri.co.jp [158.201.123.33])
	by mail.ogis-ri.co.jp (8.9.2+3.1W/3.7W0002211103) with ESMTP id OAA11068
	for <acpi-jp@jp.freebsd.org>; Tue, 2 May 2000 14:19:22 +0900 (JST)
Received: from o3.otc.ogis-ri.co.jp (o3.otc.ogis-ri.co.jp [158.201.73.1]) by nozomi.icc.ogis-ri.co.jp (8.9.3+3.2W/3.5Wpl2-ogismail1.0) with ESMTP id OAA05235 for <acpi-jp@jp.freebsd.org>; Tue, 2 May 2000 14:19:22 +0900 (JST)
Received: from localhost (test2.o3.otc.ogis-ri.co.jp [158.201.73.97]) by o3.otc.ogis-ri.co.jp (8.8.4/3.5Wpl597042212) with ESMTP id OAA25077; Tue, 2 May 2000 14:19:21 +0900 (JST)
To: acpi-jp@jp.freebsd.org
Cc: yokoyama@o3.otc.ogis-ri.co.jp
In-Reply-To: <20000317163346N.yokoyama@o3.otc.ogis-ri.co.jp>
References: <200002071409.XAA04436@tasogare.imasy.or.jp>
	<200002080652.PAA09798@o3.otc.ogis-ri.co.jp>
	<20000317163346N.yokoyama@o3.otc.ogis-ri.co.jp>
X-Mailer: Mew version 1.94.1 on XEmacs 21.1 (Canyonlands)
Mime-Version: 1.0
Content-Type: Multipart/Mixed;
 boundary="--Next_Part(Tue_May__2_14:22:17_2000_809)--"
Content-Transfer-Encoding: 7bit
Message-Id: <20000502142220W.yokoyama@o3.otc.ogis-ri.co.jp>
Date: Tue, 02 May 2000 14:22:20 +0900
From: Yasuo Yokoyama <yokoyama@o3.otc.ogis-ri.co.jp>
X-Dispatcher: imput version 20000228(IM140)
Lines: 157
Reply-To: acpi-jp@jp.freebsd.org
Precedence: list
X-Distribute: distribute version 2.1 (Alpha) patchlevel 24e+000315
X-Sequence: acpi-jp 293
Subject: [acpi-jp 293] Re: ...
Errors-To: owner-acpi-jp@jp.freebsd.org
Sender: owner-acpi-jp@jp.freebsd.org
X-Originator: yokoyama@o3.otc.ogis-ri.co.jp

----Next_Part(Tue_May__2_14:22:17_2000_809)--
Content-Type: Text/Plain; charset=iso-2022-jp
Content-Transfer-Encoding: 7bit

$B2#;3$G$9!#$?$$$X$s8fL5:;BA$7$F$$$^$9!#(B

In [acpi-jp 279] <20000317163346N.yokoyama@o3.otc.ogis-ri.co.jp>
	Yasuo Yokoyama / $B2#;3BYIW(B <yokoyama@o3.otc.ogis-ri.co.jp> wrote:

> $BBgJQCY$/$J$C$F?=$7Lu$J$$$G$9!#:#0l$D%F%9%H$,==J,$G$J$$$N$G$9$,(B
> $B3+H/$K;H$C$F$$$k(B NotePC $B$,(B HDD $B%/%i%C%7%e$G$7$P$i$/I|5l$7$=$&$K$J$$$N$G(B

$B$,D>$C$F!"3+H/$r:F3+$G$-$k>uBV$K$h$&$d$/$J$C$?$N$GI|3h$7$^$9!#(B

$B$G!"AaB.$G$9$,!"(B
acpiconf $B$r%*%W%7%g%s$r$D$1$:$K<B9T$9$k$H$J$s$@$+%a%b%j$N2rJ|1L$,$"$k$h$&$J$N$G!"$A$g$C$H<j$rF~$l$F$_$^$7$?!#(B
$B%Q%C%A$D$1$F$*$-$^$9!#(B

-- 
$B$h$3$d$^!w$*!<$8$9$=$&$1$s(B

----Next_Part(Tue_May__2_14:22:17_2000_809)--
Content-Type: Text/Plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment; filename="acpiconf.patch"

Index: main.c
===================================================================
RCS file: /home/ncvs/cvs-jp/ACPI/util/acpiconf/main.c,v
retrieving revision 1.11
diff -u -r1.11 main.c
--- main.c	2000/03/26 16:22:47	1.11
+++ main.c	2000/05/02 05:16:07
@@ -51,6 +51,7 @@
 static void     acpi_handle_facp(struct FACPbody * facp);
 static void     acpi_handle_dsdt(struct ACPIsdt * dsdp);
 static void acpi_handle_rsdt(struct ACPIsdt * rsdp);
+static void     acpi_init_namespace();
 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);
@@ -61,8 +62,6 @@
 void            acpi_print_facp(struct FACPbody * facp);
 void            acpi_print_dsdt(struct ACPIsdt * dsdp);
 
-
-
 int
 parse_dsdt()
 {
@@ -82,16 +81,27 @@
 	return 0;
 }
 
+void
+acpi_init_namespace()
+{
+	struct aml_environ env;
+	struct aml_name *newname;
+
+	new_aml_name_group(AML_NAME_GROUP_OS_DEFINED);
+	env.curname = get_rootname();
+	newname = acpi_create_name(&env, "\\_OS_");
+	newname->property = acpi_alloc_object(aml_t_string, NULL);
+	newname->property->str.needfree = 0;
+	newname->property->str.string = "Microsoft Windows NT";
+}
+
 int
 load_dsdt(char *dsdtfile)
 {
 	struct aml_environ env;
-	struct aml_name *newname;
-	struct aml_local_stack *lst;
 	u_int8_t       *code;
 	struct stat     sb;
 	int             fd;
-	struct aml_name_group *newgrp, *osdgrp;
 	
 	fd = open(dsdtfile, O_RDONLY, 0);
 	if (fd == -1) {
@@ -106,7 +116,10 @@
 		perror("mmap");
 		exit(-1);
 	}
-	newgrp = new_aml_name_group((int)code);
+
+	acpi_init_namespace();
+
+	new_aml_name_group((int)code);
 	bzero(&env, sizeof(env));
 	if (strncmp(code, "DSDT", 4) == 0) {
 		env.dp = code + 0x23;
@@ -115,19 +128,14 @@
 	}
 	env.end = code + sb.st_size;
 	env.curname = get_rootname();
-	lst=aml_local_stack_create();
-	aml_local_stack_push(lst);
+	
+	aml_local_stack_push(aml_local_stack_create());
 	acpi_parse_objectlist(&env, 0);
+	aml_local_stack_delete(aml_local_stack_pop());
+
 	assert(env.dp == env.end);
 	env.dp = code;
 	env.end = code + sb.st_size;
-	env.curname = get_rootname();
-	aml_local_stack_delete(lst);
-	osdgrp = new_aml_name_group(AML_NAME_GROUP_OS_DEFINED);
-	newname = acpi_create_name(&env, "\\_OS_");
-	newname->property = acpi_alloc_object(aml_t_string, NULL);
-	newname->property->str.needfree = 0;
-	newname->property->str.string = "Microsoft Windows NT";
 
 	showtree(env.curname, 0);
 
@@ -135,7 +143,6 @@
 		acpi_dbgr(&env,&env);
 	} while (env.stat != aml_stat_panic);
 	acpi_simulation_regdump("region.dmp");
-	delete_aml_name_group(osdgrp);
 
 	return 0;
 }
@@ -176,20 +183,25 @@
 acpi_handle_dsdt(struct ACPIsdt * dsdp)
 {
 	struct aml_environ env;	
-	struct aml_local_stack *lst;
 	bzero(&env, sizeof(env));
 	acpi_print_dsdt(dsdp);
+
+	acpi_init_namespace();
+
+	new_aml_name_group((int)dsdp);
+
 	env.dp = (u_int8_t *) dsdp->body;
 	env.end = (u_int8_t *) dsdp + dsdp->len;
 	env.curname = get_rootname();
-	lst=aml_local_stack_create();
-	aml_local_stack_push(lst);
+
+	aml_local_stack_push(aml_local_stack_create());
 	acpi_parse_objectlist(&env, 0);
+	aml_local_stack_delete(aml_local_stack_pop());
+
 	assert(env.dp == env.end);
 	env.dp = (u_int8_t *) dsdp->body;
 	env.end = (u_int8_t *) dsdp + dsdp->len;
 	env.curname = get_rootname();
-	aml_local_stack_pop(lst);
 	showtree(env.curname, 0);
 	memman_statistics(aml_memman);
 }

----Next_Part(Tue_May__2_14:22:17_2000_809)----
