From owner-acpi-jp@jp.freebsd.org  Fri May 26 22:59:43 2000
Received: (from daemon@localhost)
	by castle.jp.freebsd.org (8.9.3+3.2W/8.7.3) id WAA47123;
	Fri, 26 May 2000 22:59:43 +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 WAA47118
	for <acpi-jp@jp.freebsd.org>; Fri, 26 May 2000 22:59:42 +0900 (JST)
	(envelope-from iwasaki@jp.FreeBSD.org)
Received: from localhost (isdnb37.imasy.or.jp [202.227.24.165])
	by tasogare.imasy.or.jp (8.9.3+3.2W/3.7W-tasogare/smtpfeed 1.04) with ESMTP id WAA77969
	for <acpi-jp@jp.freebsd.org>; Fri, 26 May 2000 22:59:40 +0900 (JST)
	(envelope-from iwasaki@jp.FreeBSD.org)
To: acpi-jp@jp.freebsd.org
In-Reply-To: <20000526202406S.yokoyama@o3.otc.ogis-ri.co.jp>
References: <20000525220807K.iwasaki@jp.FreeBSD.org>
	<20000526164901U.yokoyama@o3.otc.ogis-ri.co.jp>
	<20000526202406S.yokoyama@o3.otc.ogis-ri.co.jp>
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: <20000526225938G.iwasaki@jp.FreeBSD.org>
Date: Fri, 26 May 2000 22:59:38 +0900
From: Mitsuru IWASAKI <iwasaki@jp.freebsd.org>
X-Dispatcher: imput version 20000228(IM140)
Lines: 110
Reply-To: acpi-jp@jp.freebsd.org
Precedence: list
X-Distribute: distribute version 2.1 (Alpha) patchlevel 24e+000315
X-Sequence: acpi-jp 328
Subject: [acpi-jp 328] Re: bugs...
Errors-To: owner-acpi-jp@jp.freebsd.org
Sender: owner-acpi-jp@jp.freebsd.org
X-Originator: iwasaki@jp.freebsd.org

> $B$H$$$$$D$D!"<j$r$D$1$A$c$C$?$b$N$r$D$1$F$7$^$C$?$N$G!"(B[acpi-jp:325] $B$N$s$O<N$F$F$b$i$C$F2~$a$F(B

destination $B$,(B DEBUG $B%*%V%8%'%/%H$@$C$?>l9g$N=hM}$r2C$($F!"(B
$BA4BN$N%Q%C%A$r:n$j$^$7$?!#$3$l$GLdBj$J$5$=$&$@$C$?$i!"0lC6(B
$BL@F|$"$?$j(B commit $B$7$^$9!#(B

$B$H$3$m$G!"(B[acpi-jp 325] $B$N%Q%C%A$G$bNI$5$=$&$K8+$($k$s$G$9$,!"(B
$B5sF0$,0c$C$A$c$$$^$9$M!#>\$7$/8+$F$$$J$$$s$G$9$,!":G=*E*$K$O(B
Source $BB&$N%3%T!<$O$7$J$$J}8~$G$d$j$^$7$g$&!#(B

Index: evalobj.c
===================================================================
RCS file: /home/cvs/ACPI/util/acpiconf/evalobj.c,v
retrieving revision 1.11
diff -u -r1.11 evalobj.c
--- evalobj.c	2000/05/21 15:51:05	1.11
+++ evalobj.c	2000/05/26 13:45:39
@@ -63,7 +63,7 @@
 	}
 	field=&name->property->field;
 	oname=env->curname;
-	if(field->bitlen>=32){
+	if(field->bitlen > 32){
 		env->wobj.type=aml_t_regfield;
 	}else{
 		env->wobj.type=aml_t_num;
@@ -152,6 +152,7 @@
 	case aml_t_string:
 	case aml_t_buffer:
 	case aml_t_package:
+	case aml_t_debug:
 		ret = aname->property;
 		goto out;
 		
Index: obj.c
===================================================================
RCS file: /home/cvs/ACPI/util/acpiconf/obj.c,v
retrieving revision 1.7
diff -u -r1.7 obj.c
--- obj.c	2000/05/21 15:51:05	1.7
+++ obj.c	2000/05/24 14:01:24
@@ -49,7 +49,20 @@
 	int i;
 	if(orig==NULL)
 		return NULL;
-	ret=acpi_alloc_object(0,orig);
+	switch (orig->type) {
+	case aml_t_regfield:
+		ret = acpi_alloc_object(aml_t_buffer, 0);
+		ret->buffer.size = (orig->regfield.bitlen / 8) +
+				   ((orig->regfield.bitlen % 8) ? 1 : 0);
+		ret->buffer.data = memman_alloc_flexsize(aml_memman, ret->buffer.size);
+		acpi_store_to_object(env, orig, ret);
+		break;
+
+	default:
+		ret = acpi_alloc_object(0,orig);
+		break;
+	}
+
 	if(1 || orig!=&env->wobj) { /* XXX */
 		if (orig->type == aml_t_buffer) {
 			ret->buffer.data = memman_alloc_flexsize(aml_memman,
@@ -65,8 +78,6 @@
 			ret->str.string = memman_alloc_flexsize(aml_memman,
 			    strlen(orig->str.string) + 1);
 			strcpy(orig->str.string, ret->str.string);	
-		} else if (orig->type == aml_t_regfield) {
- 			*ret = env->wobj;
 		}
 	}else{
 		printf ("%s:%d \n", __FILE__, __LINE__);
Index: parse.c
===================================================================
RCS file: /home/cvs/ACPI/util/acpiconf/parse.c,v
retrieving revision 1.19
diff -u -r1.19 parse.c
--- parse.c	2000/05/21 15:51:05	1.19
+++ parse.c	2000/05/26 13:51:22
@@ -1302,15 +1302,11 @@
 		distname1 = acpi_parse_termobj(env, indent);
 		DPRINT(")");
 		acpi_store_to_name(env,tmpobj,distname1);
+		aname = aml_create_local_object();
+		aname->property = tmpobj = acpi_copy_object(env,distname1->property);
 		if(tmpobj==NULL){
 			printf("???");
 			break;
-		}
-		if (tmpobj->type == aml_t_regfield) {
-			tmpobj->type=aml_t_null;
-			acpi_free_object(&tmpobj);
-			aname->property = tmpobj = acpi_copy_object(env,
-			    distname1->property);
 		}
 		break;
 
Index: store.h
===================================================================
RCS file: /home/cvs/ACPI/util/acpiconf/store.h,v
retrieving revision 1.2
diff -u -r1.2 store.h
--- store.h	2000/03/21 19:30:11	1.2
+++ store.h	2000/05/24 13:58:27
@@ -27,3 +27,4 @@
  */
 void 
 acpi_store_to_name(struct aml_environ *,union aml_object *,struct aml_name *);
+void	acpi_store_to_object(struct aml_environ *, union aml_object *, union aml_object *);

