From owner-acpi-jp@jp.freebsd.org  Tue Dec  7 02:11:05 1999
Received: (from daemon@localhost)
	by castle.jp.freebsd.org (8.9.3+3.2W/8.7.3) id CAA40819;
	Tue, 7 Dec 1999 02:11:05 +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 CAA40814
	for <acpi-jp@jp.freebsd.org>; Tue, 7 Dec 1999 02:11:04 +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 CAA11130
	for <acpi-jp@jp.freebsd.org>; Tue, 7 Dec 1999 02:11:02 +0900 (JST)
	(envelope-from iwasaki@jp.FreeBSD.org)
Received: from localhost (isdn13.imasy.or.jp [202.227.24.205])
	by tasogare.imasy.or.jp (8.9.3+3.2W/3.7W-tasogare/smtpfeed 1.01) with ESMTP id CAA09572
	for <acpi-jp@jp.freebsd.org>; Tue, 7 Dec 1999 02:10:58 +0900 (JST)
	(envelope-from iwasaki@jp.FreeBSD.org)
Message-Id: <199912061710.CAA09572@tasogare.imasy.or.jp>
To: acpi-jp@jp.freebsd.org
In-Reply-To: Your message of "Mon, 06 Dec 1999 12:26:44 +0900"
	<199912060326.MAA11747@shidahara1.planet.sci.kobe-u.ac.jp>
References: <199912060326.MAA11747@shidahara1.planet.sci.kobe-u.ac.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: Tue, 07 Dec 1999 02:10:57 +0900
From: Mitsuru IWASAKI <iwasaki@jp.freebsd.org>
X-Dispatcher: imput version 980905(IM100)
Lines: 96
Reply-To: acpi-jp@jp.freebsd.org
Precedence: list
X-Distribute: distribute version 2.1 (Alpha) patchlevel 24e+990727
X-Sequence: acpi-jp 148
Subject: [acpi-jp 148] Re: AML Namaspece design 
Errors-To: owner-acpi-jp@jp.freebsd.org
Sender: owner-acpi-jp@jp.freebsd.org
X-Originator: iwasaki@jp.freebsd.org

> $B%a%=%C%I$N2<0J30$NL>A06u4V$K%a%=%C%I$NCf$G%*%V%8%'%/%H$r@8@.$7$?$H$7$?$i(B
> $B$=$N;~E@$G$7$P$-E]$7$?$/$J$k$N$O;d$@$1$G$7$g$&$+!#(B

$B:#$N$H$3$m(B util/dfr/acpitest/*.asl $B$K$O!"$=$&$$$&$d$D$O(B
$B$$$^$;$s$M!#$G$b!"(Bspec $B>e$"$j$&$k$H$$$&$3$H$G!"A[Dj$7$F$*$-$^$7$g$&!#(B

> >>method $B$N:F5"8F$S=P$7$O$"$k$s$G$7$?$C$1(B?  $B$"$k$H$9$l$P!"(B
> >>$B%*!<%HJQ?t$_$?$$$J07$$$G$9$+$M!#(B
> ($BN,(B)
> >$B$H$$$&$h$&$J>l9g$G$9$h$M!#(B
> 
> $B$3$N<j$N;v$G:.Mp$9$k;v$,$"$l$P$=$l$O(Basl$B$r=q$$$?E[$,0-$$$G$9!#(B
> $B$=$N$?$a$N(BMethod$B$N%U%i%0$N(B4bit$BL\$d(BMutex$B$G$9$+$i!#(B
> 15.2.3.3.1.11 $B$b;2>H!#(B

$B$J$k$[$I!#:G=i(B Mutex $B4X78$rFI$s$@$H$-$O%$%^%$%A$T$s$H$3$J$/$F!"(B
tsleep & wakeup $B$G$b$d$k$s$+(B? $B$H;W$$$^$7$?(B :-)

$B$H$$$&$o$1$G$*$^$1IU$-$G$9!#(B


15.2.3.3.1.11 Method - Declare Control Method
MethodTerm := Method(
		MethodName,	//NameString
		NumArgs,	//Nothing | ByteConst
		SerializeRule	//Nothing |
				//SerializeRuleKeyword
	) {TermList}

$B8F$S=P$72DG=$J<jB3$-$G$"$k(B control method $B$r=89gE*$KI=8=$9$k0lO"$N%*%V(B
$B%8%'%/%H;2>H$r4^$`(B named package $B$r@k8@$9$k!#(Bmethod $B$OL>A0%9%3!<%W$r3+(B
$B;O$9$k!#(B

$B%7%9%F%`%=%U%H%&%'%"$O!"(Bpackage $B$KB8:_$9$k%*%V%8%'%/%H$r=gHV$K;2>H$9$k(B
$B$3$H$G(B control method $B$r<B9T$9$k!#(Bcontrol method $B$N<B9T$N>\:Y$K$D$$$F(B
$B$O!"%;%/%7%g%s(B 5.5.3 $B$r;2>H!#(B

$BL>A0$N@8@.Cf$K;HMQ$5$l$k8=:_$N(B namespace $B$N%m%1!<%7%g%s$O!"(Bnamespace
tree $B>e$N8=:_$N%m%1!<%7%g%s$H$J$k$h$&$KD4@0$5$l$k!#$3$N%9%3!<%W$NHO0O(B
$BFb$G@8@.$5$l$k$9$Y$F$NL>A0$O!"$3$N(B package $B$NL>A0$N!V2<!W$K$"$k!#8=:_(B
$B$N(B namespace $B$N%m%1!<%7%g%s$O(B method package $B3d$jEv$F$i$l!"$3$N(B 
package $B$N(B control method $B$N<B9TCf$KH/@8$9$k$9$Y$F$N(B namespace $B$N;2>H(B
$B$O!"$=$N%m%1!<%7%g%s$H4XO"$7$F$$$k!#(B

method $B$,(B Serialized $B$H$7$F@k8@$5$l$k>l9g!"0EL[$N$&$A$K(B method $B%*%V%8%'(B
$B%/%H$H4XO"IU$1$i$l$?(B mutex $B$,(B SyncLevel 0$B$G3MF@$5$l$k!#(Bserialize-rule 
$B$O(B method $B$N%j%(%s%?%j%s%0$rK8$0$?$a$K;HMQ$9$k$3$H$,$G$-$k!#(Bmethod $B$,(B 
namespace $B%*%V%8%'%/%H$r@8@.$9$k>l9g!"FC$KM-8z$G$"$k!#(Bserialize-rule 
$B$N;XDjL5$7$G!"F1$8(B namespace $B%*%V%8%'%/%H$r@8@.$7$h$&$H$7$?;~E@$G!"(B
method $B$N%j%(%s%?%j%s%0$O<:GT$9$k!#(B

$B$^$?!"(Bmethod $B$,@8@.$9$k$9$Y$F$N(B namespace $B%*%V%8%'%/%H$,0l;~E*$J(B 
lifetime $B$r;}$DE@$KCm0U!#(Bmethod $B<B9T$r(B exit $B$9$k:]$K!"@8@.$5$l$?%*%V%8%'(B
$B%/%H$OGK2u$5$l$k!#(B

$B0J2<$N(B ASL $B%5%s%W%k%3!<%I$N%V%m%C%/$O!"%Q%o!<%j%=!<%9$r%*%s$K$9$k(B
control method $B$r(B Method $B$r;HMQ$7$FDj5A$7$F$$$k!#(B

	Method(_ON) {
		Store (One, GIO.IDEP)	// assert power
		Sleep (10)		// wait 10ms
		Store (One, GIO.IDER)	// de-assert reset#
		Stall (10)		// wait 10us
		Store (Zero, GIO.IDEI)	// de-assert isolation
	}

15.2.3.3.1.12 Mutex - Declare Synchronization / Mutex Object
MutexTerm := Mutex(
		MutexName,	//NameString
		SyncLevel	//ByteConst
	)

SyncLevel $B$G;XDj$5$l$k(B 0$B$+$i(B 15 $B$^$G$N%l%Y%k$G!"(BMutexName $B$HL>A0$N$D$1(B
$B$i$l$?%G!<%?(B mutex $BF14|%*%V%8%'%/%H$,@8@.$5$l$k!#(B

$BF14|%*%V%8%'%/%H$O!"(Bcontrol method $B$GFCDj$N%$%Y%s%H$rBT$D%a%+%K%:%`$r(B
$BDs6!$9$k!#%G%C%I%m%C%/$rKI$0$?$a$K!"J#?t$NF14|%*%V%8%'%/%H$r=jM-$9$kI,(B
$BMW$,$"$k>l9g$OI,$:!"$=$l$i$,3MF@$5$l$?=g=x$N5U=g$G!"F14|%*%V%8%'%/%H$r(B
$B%j%j!<%9$9$kI,MW$,$"$k!#(BSyncLevel $B%Q%i%a!<%?$O!"F14|%*%V%8%'%/%H$NO@M}(B
$BE*$J%M%9%F%#%s%0%l%Y%k$r@k8@$9$k!#$9$Y$F$N(B Acquire term $B$O8=:_$N%l%Y%k(B
$B0J>e$N(B SyncLevel $B$GF14|%*%V%8%'%/%H$r;XDj$7$J$1$l$P$J$i$J$:!"$9$Y$F$N(B 
Release term $B$O8=:_$N%l%Y%k0J2<$N(B SyncLevel $B$GF14|%*%V%8%'%/%H$r;XDj$7(B
$B$J$1$l$P$J$i$J$$!#(B

Mutex $B$NF14|$O!"8_$$$KGSB>E*$J%*!<%J!<%7%C%W$N$?$a$N<jCJ$rDs6!$9$k!#(B
$B%*!<%J!<%7%C%W$O!"(BAcquire term $B$r;H$C$F3MF@$5$l!"(BRelease term $B$r;H$C$F(B
$B%j%j!<%9$5$l$k!#(BMutex $B$N%*!<%J!<%7%C%W$O!"$9$Y$F$N8F=P$7$N40N;$NA0$KJ|(B
$B4~$5$l$J$1$l$P$J$i$J$$!#Nc$($P!"(BMutex $B$N%*!<%J!<%7%C%W$r$^$@J];}$7$F$$(B
$B$k4V$O!"%H%C%W%l$Y%k$N(B control method $B$O(B exit $B$9$k$3$H$,$G$-$J$$!#(B
Mutex $B$N%*!<%J!<%7%C%W$N3MF@$O!"%M%9%H$K$9$k$3$H$,$G$-$k!#%*!<%J!<%7%C(B
$B%W%+%&%s%H$,%M%9%H$K$J$C$F$$$k$H$-!"(BSyncLevel $B$N%A%'%C%/$O(B Mutex $B>e$G(B
$B<B9T$5$l$J$$!#(B

$B$9$Y$F$N(B mutex $B$r3MF@$9$kA0$N%9%l%C%I$N(B SyncLevel $B$O!"%<%m$G$"$k!#(B
global lock (\_GL) $B$N(B SyncLevel $B$O!"%<%m$G$"$k!#(Bserialized $B$G;XDj$5$l(B
$B$F$$$k(B method $B$O!"(BSyncLevel 0 $B$N8GM-$N(B mutex $B$r;}$D!#(B
