From owner-acpi-jp@jp.freebsd.org  Fri Jun 16 02:44:16 2000
Received: (from daemon@localhost)
	by castle.jp.freebsd.org (8.9.3+3.2W/8.7.3) id CAA66530;
	Fri, 16 Jun 2000 02:44:16 +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 CAA66525
	for <acpi-jp@jp.freebsd.org>; Fri, 16 Jun 2000 02:44:15 +0900 (JST)
	(envelope-from iwasaki@jp.FreeBSD.org)
Received: from localhost (isdn52.imasy.or.jp [202.227.24.244])
	by tasogare.imasy.or.jp (8.10.1+3.3W/3.7W-tasogare/smtpfeed 1.07) with ESMTP id e5FHiE213524
	for <acpi-jp@jp.freebsd.org>; Fri, 16 Jun 2000 02:44:14 +0900 (JST)
	(envelope-from iwasaki@jp.FreeBSD.org)
To: acpi-jp@jp.freebsd.org
X-Mailer: Mew version 1.94.1 on Emacs 19.34 / Mule 2.3 (SUETSUMUHANA)
Mime-Version: 1.0
Content-Type: Text/Plain; charset=iso-2022-jp
Content-Transfer-Encoding: 7bit
Message-Id: <20000616024413D.iwasaki@jp.FreeBSD.org>
Date: Fri, 16 Jun 2000 02:44:13 +0900
From: Mitsuru IWASAKI <iwasaki@jp.freebsd.org>
X-Dispatcher: imput version 20000228(IM140)
Lines: 91
Reply-To: acpi-jp@jp.freebsd.org
Precedence: list
X-Distribute: distribute version 2.1 (Alpha) patchlevel 24e+000315
X-Sequence: acpi-jp 403
Subject: [acpi-jp 403] new debugger command: find named objects
Errors-To: owner-acpi-jp@jp.freebsd.org
Sender: owner-acpi-jp@jp.freebsd.org
X-Originator: iwasaki@jp.freebsd.org

amldb $B$N%3%^%s%I(B `f' $B$rDI2C$7$F$_$^$7$?!#(B
$BFCDj$NL>A0$r;}$D%*%V%8%'%/%H$9$Y$F$r8!:w$7$FI=<($7$^$9!#(B
20 $B;~4V8e$/$i$$$K(B commit $B$7$^$9!#(B

AML>f _PS3
\_SB_.PCI0.ISA_.SIO_.FIR_._PS3.
\_SB_.PCI0.ETHR._PS3.
\_SB_.PCI0.CRD0._PS3.
\_SB_.PCI0.SD94._PS3.
\_SB_.PCI0.AUD0._PS3.
\_SB_.PCI0.IDE_._PS3.
\_SB_.PCI0.USB0._PS3.

Index: sys/i386/acpi/aml/aml_common.c
===================================================================
RCS file: /home/cvs/ACPI/sys/i386/acpi/aml/aml_common.c,v
retrieving revision 1.3
diff -u -r1.3 aml_common.c
--- sys/i386/acpi/aml/aml_common.c	2000/06/15 14:34:51	1.3
+++ sys/i386/acpi/aml/aml_common.c	2000/06/15 17:28:19
@@ -65,11 +65,11 @@
 	if (dp[3] != '_') {
 		AML_PRINTF("%c%c%c%c", dp[0], dp[1], dp[2], dp[3]);
 	} else if (dp[2] != '_') {
-		AML_PRINTF("%c%c%c", dp[0], dp[1], dp[2]);
+		AML_PRINTF("%c%c%c_", dp[0], dp[1], dp[2]);
 	} else if (dp[1] != '_') {
-		AML_PRINTF("%c%c", dp[0], dp[1]);
+		AML_PRINTF("%c%c__", dp[0], dp[1]);
 	} else if (dp[0] != '_') {
-		AML_PRINTF("%c", dp[0]);
+		AML_PRINTF("%c___", dp[0]);
 	}
 }
 
Index: usr.sbin/acpi/amldb/debug.c
===================================================================
RCS file: /home/cvs/ACPI/usr.sbin/acpi/amldb/debug.c,v
retrieving revision 1.13
diff -u -r1.13 debug.c
--- usr.sbin/acpi/amldb/debug.c	2000/06/15 14:35:20	1.13
+++ usr.sbin/acpi/amldb/debug.c	2000/06/15 17:24:09
@@ -49,6 +49,19 @@
 
 #include "debug.h"
 
+static void
+find_named_objects(struct aml_name *parent, char *name)
+{
+	struct	aml_name *child, *ptr;
+
+	if ((child = aml_find_from_namespace(parent, name)) != NULL) {
+		aml_print_curname(child);
+		printf("\n");
+	}
+	for (ptr = parent->child; ptr; ptr = ptr->brother)
+		find_named_objects(ptr, name);
+}
+
 void 
 aml_dbgr(struct aml_environ *env1, struct aml_environ *env2)
 {
@@ -266,6 +279,20 @@
 			fprintf(stderr, "==== %s finished. ====\n", method);
 finish_execution:
 			break;
+		case 'f':
+			/* NULL terminate */
+			ptr = &commandline[1];
+			while (ptr[0] != '\n')
+				ptr++;
+			ptr[0] = '\0';
+
+			/* move pointer to object name */
+			ptr = &commandline[1];
+			while (ptr[0] == ' ')
+				ptr++;
+
+			find_named_objects(aml_get_rootname(), ptr);
+			break;
 		case 'h':
 			fputs("s	Single step\n"
 			      "n	Step program\n"
@@ -276,6 +303,7 @@
 			      "o	Toggle region output prompt\n"
 			      "m	Show memory management statistics\n"
 			      "r	Run specified method\n"
+			      "f	Find named objects from namespace.\n"
 			      "h	Show this messsage\n", stderr);
 			break;
 		}
