From owner-acpi-jp@jp.freebsd.org  Mon Dec 27 01:40:14 1999
Received: (from daemon@localhost)
	by castle.jp.freebsd.org (8.9.3+3.2W/8.7.3) id BAA85767;
	Mon, 27 Dec 1999 01:40:14 +0900 (JST)
	(envelope-from owner-acpi-jp@jp.FreeBSD.org)
Received: from tasogare.imasy.or.jp (daemon@tasogare.imasy.or.jp [202.227.24.5])
	by castle.jp.freebsd.org (8.9.3+3.2W/8.7.3) with ESMTP id BAA85762
	for <acpi-jp@jp.freebsd.org>; Mon, 27 Dec 1999 01:40:13 +0900 (JST)
	(envelope-from iwasaki@jp.FreeBSD.org)
Received: from localhost (isdn25.imasy.or.jp [202.227.24.217])
	by tasogare.imasy.or.jp (8.9.3+3.2W/3.7W-tasogare/smtpfeed 1.01) with ESMTP id BAA00560
	for <acpi-jp@jp.freebsd.org>; Mon, 27 Dec 1999 01:40:10 +0900 (JST)
	(envelope-from iwasaki@jp.FreeBSD.org)
Message-Id: <199912261640.BAA00560@tasogare.imasy.or.jp>
To: acpi-jp@jp.freebsd.org
In-Reply-To: Your message of "Sun, 26 Dec 1999 07:10:23 +0900"
	<199912252210.HAA06248@tasogare.imasy.or.jp>
References: <199912252210.HAA06248@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: Mon, 27 Dec 1999 01:40:05 +0900
From: Mitsuru IWASAKI <iwasaki@jp.freebsd.org>
X-Dispatcher: imput version 980905(IM100)
Lines: 78
Reply-To: acpi-jp@jp.freebsd.org
Precedence: list
X-Distribute: distribute version 2.1 (Alpha) patchlevel 24e+990727
X-Sequence: acpi-jp 175
Subject: [acpi-jp 175] Re: My local modification to 'acpiconf' 
Errors-To: owner-acpi-jp@jp.freebsd.org
Sender: owner-acpi-jp@jp.freebsd.org
X-Originator: iwasaki@jp.freebsd.org

commit $B$5$l$?$d$D$r$$$8$C$F!"(Bmethod $B$rL>A0$r;XDj$7$F<B9T(B 
($B:G=*E*$K$O$=$&$7$?$$$G$9$M(B...) $B$G$-$k$h$&$KJL4X?t$r$G$C$A$"$2$^$7$?!#(B
$B$3$l$O(B evalobj.c $B$NJ}$K0z$C1[$7$9$Y$-$G$7$g$&$+$M!#(B
$B$"$H!"$I$s$J$H$3$m$,;D:n6H$GB>$N?M$,;22C$G$-$^$9$+(B? > $BEOJU$5$s(B
$B$H$j$"$($:(B method $B<B9T8e$N%a%b%j2rJ|$b$l$,$"$j$=$&$J$N$G!"(B
$B$A$g$C$H8+$F$_$^$9!#(B

Index: main.c
===================================================================
RCS file: /home/cvs/ACPI/util/acpiconf/main.c,v
retrieving revision 1.1
diff -u -r1.1 main.c
--- main.c	1999/12/26 06:36:25	1.1
+++ main.c	1999/12/26 16:30:50
@@ -82,11 +82,40 @@
 	return 0;
 }
 
+struct aml_name *
+acpi_invoke_method_by_name(char *method, int argc, union aml_object *argv)
+{
+	struct aml_name *name;
+	struct aml_name *retval = NULL;
+	struct aml_environ env;
+	int	i;
+
+	bzero(&env, sizeof(env));
+	name = search_aml_name(get_rootname(), method);
+	
+	if (name != NULL && name->property != NULL &&
+	    name->property->type == aml_t_method) {
+		env.curname = name;
+		env.dp = name->property->meth.from;
+		env.end = name->property->meth.to;
+		for (i = 0; i < argc; i++) {
+			env.argumentvalue[i].property = acpi_alloc_object(argv[i].type, NULL);
+			*(env.argumentvalue[i].property) = argv[i];
+		}
+		retval = acpi_execute_method(&env);
+		for (i = 0; i < argc; i++) {
+			acpi_free_object(&env.argumentvalue[i].property);
+		}
+	}
+	return retval;
+}
+
 int
 load_dsdt(char *dsdtfile)
 {
 	struct aml_environ env;
-	struct aml_name *name;
+	union aml_object argv[1];
+	struct aml_name *retval;
 	u_int8_t       *code;
 	struct stat     sb;
 	int             fd;
@@ -117,17 +146,10 @@
 	showtree(env.curname, 0);
 #if 1
 	memman_statistics(aml_memman);
-	name=search_aml_name(env.curname,"_WAK");
-	
-	if(name!=NULL&&name->property!=NULL&&
-	    name->property->type==aml_t_method){
-		env.curname=name;
-		env.dp=name->property->meth.from;
-		env.end=name->property->meth.to;
-		env.argumentvalue[0].property=acpi_alloc_object(aml_t_num,NULL);
-		env.argumentvalue[0].property->num.number=1;
-		acpi_execute_method(&env);
-	}
+	argv[0].type = aml_t_num;
+	argv[0].num.number = 1;
+	retval = acpi_invoke_method_by_name("_PTS", 1, argv);
+	retval = acpi_invoke_method_by_name("_WAK", 1, argv);
 #endif
 	acpi_free_childname(get_rootname());
 	return 0;
