From owner-acpi-jp@jp.FreeBSD.org Sun Dec 28 01:35:04 2003
Received: (from daemon@localhost)
	by castle.jp.FreeBSD.org (8.11.6p2+3.4W/8.11.3) id hBRGZ4I10597;
	Sun, 28 Dec 2003 01:35:04 +0900 (JST)
	(envelope-from owner-acpi-jp@jp.FreeBSD.org)
Received: from st68.arena.ne.jp (st68.arena.ne.jp [203.138.213.2])
	by castle.jp.FreeBSD.org (8.11.6p2+3.4W/8.11.3) with SMTP/inet id hBRGZ4C10590
	for <acpi-jp@jp.FreeBSD.org>; Sun, 28 Dec 2003 01:35:04 +0900 (JST)
	(envelope-from aizu@navi.org)
Received: (qmail 25776 invoked by SAV 20031121.8); 28 Dec 2003 01:35:03 +0900
Received: from unknown (HELO localhost) (219.167.192.150)
  by st68.arena.ne.jp with SMTP; 28 Dec 2003 01:35:03 +0900
From: Hiroyuki Aizu <aizu@navi.org>
To: nate@root.org
Cc: acpi-jp@jp.FreeBSD.org
Message-Id: <20031228013543.49144197.aizu@navi.org>
In-Reply-To: <20031225011834.45840753.aizu@navi.org>
References: <20031223205856.N93778@root.org>
	<20031225011834.45840753.aizu@navi.org>
Organization: navi.org
X-Mailer: Sylpheed version 0.9.5-gtk2-20030906 (GTK+ 2.2.4; i386-portbld-freebsd5.1)
Mime-Version: 1.0
Content-Type: multipart/mixed;
 boundary="Multipart_Sun__28_Dec_2003_01_35_43_+0900_086ea800"
Reply-To: acpi-jp@jp.FreeBSD.org
Precedence: list
Date: Sun, 28 Dec 2003 01:35:43 +0900
X-Sequence: acpi-jp 2939
Subject: [acpi-jp 2939] Re: Updated acpi_toshiba driver
Sender: owner-acpi-jp@jp.FreeBSD.org
X-Originator: aizu@navi.org
X-Distribute: distribute version 2.1 (Alpha) patchlevel 24e+031216

This is a multi-part message in MIME format.

--Multipart_Sun__28_Dec_2003_01_35_43_+0900_086ea800
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 7bit

Hi.

On Thu, 25 Dec 2003 01:18:34 +0900
Hiroyuki Aizu <aizu@navi.org> wrote:

> 
> I tried your patch on Libretto L5. But unfortunately, it doesn't work at all.
> 
> Problems is below
> 1. problem is sysctl values does not appear like hw.acpi.toshiba.*
>    Of cource driver module load is success like this.
>    acpi_toshiba0: <Toshiba Extra HCI> on acpi0
> 2. Press Fn+ESC, Fn+F5,Fn+F6 and Fn+F7 never happen anything.
> 3. Press Fn+F8 is blackout backlight forever.

These trouble caused by range checking of sysctl value.
It is no need to check arg value at do HCI_GET operation. It return error
and sysctl operation failed. (It looks like disappear from sysctl tree.)

I try to repair your code. But it makes dirty code like this.

-----------------------------------
hci_foo()
{
    if (op == HCI_GET) {
	/* do GET operation */
    } else if (op == HCI_SET){
	/* do SET operation */
    }

    hci_call()

    if (op == HCI_GET) {
	/* do GET operation */
    } else if (op == HCI_SET){
	/* do SET operation */
    }
}
-----------------------------------
If we use the code like above, it is better separate to set/get function
that my original code using style. 
(But you dislike that style, I suppose...)

So I take a step forward. I think over again and I sort out these code.
Please see attached file "acpi_toshiba.c".

I thkns it is better all Fn-key handling leave it to devd. So I remove the code
of Hot-key handling from in the kernel.
(If you want revival the in-kernel handling, you should create tunable value
 for disable/enable it.)
I am using with devd + /etc/acpi_toshiba shell script that attached this mail.

I'm looking forward to you commit this :-)
Thanks.

--Multipart_Sun__28_Dec_2003_01_35_43_+0900_086ea800
Content-Type: application/octet-stream;
 name="acpi_toshiba.c"
Content-Disposition: attachment;
 filename="acpi_toshiba.c"
Content-Transfer-Encoding: base64

LyotCiAqIENvcHlyaWdodCAoYykgMjAwMyBIaXJveXVraSBBaXp1IDxhaXp1QG5hdmkub3JnPgog
KiBDb3B5cmlnaHQgKGMpIDIwMDMgTmF0ZSBMYXdzb24gKFNERykKICoKICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucwogKiBhcmUgbWV0OgogKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAogKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCiAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CiAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KICoKICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBUSEUgQVVUSE9SIEFORCBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFO
RAogKiBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBUSEUKICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UKICogQVJFIERJU0NMQUlNRUQu
ICBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUK
ICogRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwKICogREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMKICogT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pCiAq
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUCiAqIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkKICogT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRgog
KiBTVUNIIERBTUFHRS4KICoKICovCiNpbmNsdWRlICJvcHRfYWNwaS5oIgojaW5jbHVkZSA8c3lz
L3BhcmFtLmg+CiNpbmNsdWRlIDxzeXMva2VybmVsLmg+CiNpbmNsdWRlIDxzeXMvYnVzLmg+Cgoj
aW5jbHVkZSAiYWNwaS5oIgojaW5jbHVkZSA8ZGV2L2FjcGljYS9hY3BpdmFyLmg+CgojZGVmaW5l
IF9DT01QT05FTlQgICAgICBBQ1BJX1RPU0hJQkEKQUNQSV9NT0RVTEVfTkFNRSgiVE9TSElCQSIp
CgovKgogKiBUb3NoaWJhIEhDSSBpbnRlcmZhY2UgZGVmaW5pdGlvbnMKICoKICogSENJIGlzIFRv
c2hpYmEncyAiSGFyZHdhcmUgQ29udHJvbCBJbnRlcmZhY2UiIHdoaWNoIGlzIHN1cHBvc2VkIHRv
CiAqIGJlIHVuaWZvcm0gYWNyb3NzIGFsbCB0aGVpciBtb2RlbHMuICBJZGVhbGx5IHdlIHdvdWxk
IGp1c3QgY2FsbAogKiBkZWRpY2F0ZWQgQUNQSSBtZXRob2RzIGluc3RlYWQgb2YgdXNpbmcgdGhp
cyBwcmltaXRpdmUgaW50ZXJmYWNlLgogKiBIb3dldmVyLCB0aGUgQUNQSSBtZXRob2RzIHNlZW0g
dG8gYmUgaW5jb21wbGV0ZSBpbiBzb21lIGFyZWFzIChmb3IKICogZXhhbXBsZSB0aGV5IGFsbG93
IHNldHRpbmcsIGJ1dCBub3QgcmVhZGluZywgdGhlIExDRCBicmlnaHRuZXNzCiAqIHZhbHVlKSwg
c28gdGhpcyBpcyBzdGlsbCB1c2VmdWwuCiAqLwoKI2RlZmluZSBNRVRIT0RfSENJCQkiR0hDSSIK
I2RlZmluZSBNRVRIT0RfSENJX0VOQUJMRQkiRU5BQiIKCi8qIE9wZXJhdGlvbnMgKi8KI2RlZmlu
ZSBIQ0lfU0VUCQkJCTB4RkYwMAojZGVmaW5lIEhDSV9HRVQJCQkJMHhGRTAwCgovKiBSZXR1cm4g
Y29kZXMgKi8KI2RlZmluZSBIQ0lfU1VDQ0VTUwkJCTB4MDAwMAojZGVmaW5lIEhDSV9GQUlMVVJF
CQkJMHgxMDAwCiNkZWZpbmUgSENJX05PVF9TVVBQT1JURUQJCTB4ODAwMAojZGVmaW5lIEhDSV9F
TVBUWQkJCTB4OEMwMAoKLyogRnVuY3Rpb25zICovCiNkZWZpbmUgSENJX1JFR19MQ0RfQkFDS0xJ
R0hUCQkweDAwMDIKI2RlZmluZSBIQ0lfUkVHX0ZBTgkJCTB4MDAwNAojZGVmaW5lIEhDSV9SRUdf
U1lTVEVNX0VWRU5UCQkweDAwMTYKI2RlZmluZSBIQ0lfUkVHX1ZJREVPX09VVFBVVAkJMHgwMDFD
CiNkZWZpbmUgSENJX1JFR19IT1RLRVlfRVZFTlQJCTB4MDAxRQojZGVmaW5lIEhDSV9SRUdfTENE
X0JSSUdIVE5FU1MJCTB4MDAyQQojZGVmaW5lIEhDSV9SRUdfQ1BVX1NQRUVECQkweDAwMzIKCi8q
IEZpZWxkIGRlZmluaXRpb25zICovCiNkZWZpbmUgSENJX0xDRF9CUklHSFRORVNTX0JJVFMJCTMK
I2RlZmluZSBIQ0lfTENEX0JSSUdIVE5FU1NfU0hJRlQJKDE2IC0gSENJX0xDRF9CUklHSFRORVNT
X0JJVFMpCiNkZWZpbmUgSENJX1ZJREVPX09VVFBVVF9GTEFHCQkweDAxMDAKI2RlZmluZSBIQ0lf
VklERU9fT1VUUFVUX0xDRAkJMHgxCiNkZWZpbmUgSENJX1ZJREVPX09VVFBVVF9DUlQJCTB4Mgoj
ZGVmaW5lIEhDSV9WSURFT19PVVRQVVRfVFYJCTB4NAojZGVmaW5lIEhDSV9DUFVfU1BFRURfQklU
UwkJMwojZGVmaW5lIEhDSV9DUFVfU1BFRURfU0hJRlQJCSgxNiAtIEhDSV9DUFVfU1BFRURfQklU
UykKCiNkZWZpbmUgU1lTQ1RMX0NQVV9TUEVFRF9NSU4JCTAKI2RlZmluZSBTWVNDVExfQ1BVX1NQ
RUVEX01BWAkJKDEgPDwgSENJX0NQVV9TUEVFRF9CSVRTKSAtIDEKI2RlZmluZSBTWVNDVExfTENE
X0JSSUdIVE5FU1NfTUlOCTAKI2RlZmluZSBTWVNDVExfTENEX0JSSUdIVE5FU1NfTUFYCSgxIDw8
IEhDSV9MQ0RfQlJJR0hUTkVTU19CSVRTKSAtIDEKI2RlZmluZSBTWVNDVExfVklERU9fT1VUUFVU
X01JTgkJMQojZGVmaW5lIFNZU0NUTF9WSURFT19PVVRQVVRfTUFYCQk3CgovKiBIQ0kgcmVnaXN0
ZXIgZGVmaW5pdGlvbnMuICovCiNkZWZpbmUgSENJX1dPUkRTCTYJCS8qIE51bWJlciBvZiByZWdp
c3RlcnMgKi8KI2RlZmluZSBIQ0lfUkVHX0FYCTAJCS8qIE9wZXJhdGlvbiwgdGhlbiByZXR1cm4g
dmFsdWUgKi8KI2RlZmluZSBIQ0lfUkVHX0JYCTEJCS8qIEZ1bmN0aW9uICovCiNkZWZpbmUgSENJ
X1JFR19DWAkyCQkvKiBBcmd1bWVudCAoaW4gb3Igb3V0KSAqLwojZGVmaW5lIEhDSV9SRUdfRFgJ
MwkJLyogVW51c2VkPyAqLwojZGVmaW5lIEhDSV9SRUdfU0kJNAkJLyogVW51c2VkPyAqLwojZGVm
aW5lIEhDSV9SRUdfREkJNQkJLyogVW51c2VkPyAqLwoKdHlwZWRlZiBVSU5UMzIgKCpzeXNjdGwy
aGNpX2Z1bmMpKGludCk7CnR5cGVkZWYgaW50ICgqaGNpMnN5c2N0bF9mdW5jKShVSU5UMzIpOwoK
VUlOVDMyIGZvcmNlX2Zhbl9zMmgoaW50IHNjdik7ClVJTlQzMiBjcHVfc3BlZWRfczJoKGludCBz
Y3YpOwpVSU5UMzIgdmlkZW9fb3V0cHV0X3MyaChpbnQgc2N2KTsKVUlOVDMyIGxjZF9iYWNrbGln
aHRfczJoKGludCBzY3YpOwpVSU5UMzIgbGNkX2JyaWdodG5lc3NfczJoKGludCBzY3YpOwoKaW50
IGZvcmNlX2Zhbl9oMnMoVUlOVDMyIGhjdik7CmludCBjcHVfc3BlZWRfaDJzKFVJTlQzMiBoY3Yp
OwppbnQgdmlkZW9fb3V0cHV0X2gycyhVSU5UMzIgaGN2KTsKaW50IGxjZF9iYWNrbGlnaHRfaDJz
KFVJTlQzMiBoY3YpOwppbnQgbGNkX2JyaWdodG5lc3NfaDJzKFVJTlQzMiBoY3YpOwoKdHlwZWRl
ZiBzdHJ1Y3Qgc3lzY3RsX2hjaV9tYXAgewoJY2hhcgkJKm5hbWU7CglVSU5UMzIJCXJlZzsKCXN5
c2N0bDJoY2lfZnVuYwlzMmg7CgloY2kyc3lzY3RsX2Z1bmMJaDJzOwp9IHN5c2N0bF9oY2lfbWFw
X3Q7CgpzdGF0aWMgc3lzY3RsX2hjaV9tYXBfdCBzeXNjdGxfdGFibGVbXSA9IHsKICAgLyogbmFt
ZSwgICAgICAgcmVnLCAgICAgICAgIHMyaCwgIGgycyAqLwogICAgeyJmb3JjZV9mYW4iLCBIQ0lf
UkVHX0ZBTiwgZm9yY2VfZmFuX3MyaCwgZm9yY2VfZmFuX2gyc30sCiAgICB7ImNwdV9zcGVlZCIs
IEhDSV9SRUdfQ1BVX1NQRUVELCBjcHVfc3BlZWRfczJoLCBjcHVfc3BlZWRfaDJzfSwKICAgIHsi
dmlkZW9fb3V0cHV0IiwgSENJX1JFR19WSURFT19PVVRQVVQsIHZpZGVvX291dHB1dF9zMmgsIHZp
ZGVvX291dHB1dF9oMnN9LAogICAgeyJsY2RfYmFja2xpZ2h0IiwgSENJX1JFR19MQ0RfQkFDS0xJ
R0hULCBsY2RfYmFja2xpZ2h0X3MyaCwgbGNkX2JhY2tsaWdodF9oMnN9LAogICAgeyJsY2RfYnJp
Z2h0bmVzcyIsIEhDSV9SRUdfTENEX0JSSUdIVE5FU1MsIGxjZF9icmlnaHRuZXNzX3MyaCwgbGNk
X2JyaWdodG5lc3NfaDJzfSwKICAgIHtOVUxMLCAwLCBOVUxMLCBOVUxMfQp9OwoKc3RydWN0IGFj
cGlfdG9zaGliYV9zb2Z0YyB7CglkZXZpY2VfdAlkZXY7CglBQ1BJX0hBTkRMRQloYW5kbGU7Cglz
dHJ1Y3QJCXN5c2N0bF9jdHhfbGlzdCBzeXNjdGxfY3R4OwoJc3RydWN0CQlzeXNjdGxfb2lkICpz
eXNjdGxfdHJlZTsKfTsKCnN0YXRpYyBpbnQJYWNwaV90b3NoaWJhX3Byb2JlKGRldmljZV90KTsK
c3RhdGljIGludAlhY3BpX3Rvc2hpYmFfYXR0YWNoKGRldmljZV90KTsKc3RhdGljIGludAlhY3Bp
X3Rvc2hpYmFfZGV0YWNoKGRldmljZV90KTsKCnN0YXRpYyBkZXZpY2VfbWV0aG9kX3QgYWNwaV90
b3NoaWJhX21ldGhvZHNbXSA9IHsKCURFVk1FVEhPRChkZXZpY2VfcHJvYmUsCQlhY3BpX3Rvc2hp
YmFfcHJvYmUpLAoJREVWTUVUSE9EKGRldmljZV9hdHRhY2gsCWFjcGlfdG9zaGliYV9hdHRhY2gp
LAoJREVWTUVUSE9EKGRldmljZV9kZXRhY2gsCWFjcGlfdG9zaGliYV9kZXRhY2gpLAoKCXswLCAw
fQp9OwoKc3RhdGljIGRyaXZlcl90IGFjcGlfdG9zaGliYV9kcml2ZXIgPSB7CgkiYWNwaV90b3No
aWJhIiwKCWFjcGlfdG9zaGliYV9tZXRob2RzLAoJc2l6ZW9mKHN0cnVjdCBhY3BpX3Rvc2hpYmFf
c29mdGMpLAp9OwoKc3RhdGljIGRldmNsYXNzX3QgYWNwaV90b3NoaWJhX2RldmNsYXNzOwpEUklW
RVJfTU9EVUxFKGFjcGlfdG9zaGliYSwgYWNwaSwgYWNwaV90b3NoaWJhX2RyaXZlciwgYWNwaV90
b3NoaWJhX2RldmNsYXNzLAoJICAgICAgMCwgMCk7Ck1PRFVMRV9ERVBFTkQoYWNwaV90b3NoaWJh
LCBhY3BpLCAxMDAsIDEwMCwgMTAwKTsKCnN0YXRpYyBpbnQJYWNwaV90b3NoaWJhX3N5c2N0bChT
WVNDVExfSEFORExFUl9BUkdTKTsKc3RhdGljIGludAloY2lfY2FsbChBQ1BJX0hBTkRMRSBoLCBp
bnQgb3AsIGludCBmdW5jdGlvbiwgVUlOVDMyICphcmcpOwpzdGF0aWMgdm9pZAlhY3BpX3Rvc2hp
YmFfbm90aWZ5KEFDUElfSEFORExFIGgsIFVJTlQzMiBub3RpZnksCgkJCQkgICAgdm9pZCAqY29u
dGV4dCk7CgpzdGF0aWMgaW50CWVuYWJsZV9mbl9rZXlzID0gMTsKVFVOQUJMRV9JTlQoImh3LmFj
cGkudG9zaGliYS5lbmFibGVfZm5fa2V5cyIsICZlbmFibGVfZm5fa2V5cyk7CgovKgogKiBISUQg
ICAgICBNb2RlbAogKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAqIFRP
UzYyMDAgIExpYnJldHRvIEwgU2VyaWVzCiAqICAgICAgICAgIER5bmFib29rIFNhdGVsbGl0ZSAy
NDU1CiAqICAgICAgICAgIER5bmFib29rIFNTIDM1MDAKICogVE9TNjIwNyAgRHluYWJvb2sgU1My
MTEwIFNlcmllcwogKi8Kc3RhdGljIGludAphY3BpX3Rvc2hpYmFfcHJvYmUoZGV2aWNlX3QgZGV2
KQp7CglpbnQgcmV0ID0gRU5YSU87CgoJaWYgKCFhY3BpX2Rpc2FibGVkKCJ0b3NoaWJhIikgJiYK
CSAgICBhY3BpX2dldF90eXBlKGRldikgPT0gQUNQSV9UWVBFX0RFVklDRSAmJgoJICAgIGRldmlj
ZV9nZXRfdW5pdChkZXYpID09IDAgJiYKCSAgICAoYWNwaV9NYXRjaEhpZChkZXYsICJUT1M2MjAw
IikgfHwKCSAgICAgYWNwaV9NYXRjaEhpZChkZXYsICJUT1M2MjA3IikpKSB7CgkJZGV2aWNlX3Nl
dF9kZXNjKGRldiwgIlRvc2hpYmEgRXh0cmEgSENJIik7CgkJcmV0ID0gMDsKCX0KCglyZXR1cm4g
KHJldCk7Cn0KCnN0YXRpYyBpbnQKYWNwaV90b3NoaWJhX2F0dGFjaChkZXZpY2VfdCBkZXYpCnsK
CWludCBpOwoJc3RydWN0CQlhY3BpX3Rvc2hpYmFfc29mdGMgKnNjOwoJc3RydWN0CQlhY3BpX3Nv
ZnRjICphY3BpX3NjOwoJQUNQSV9TVEFUVVMJc3RhdHVzOwoKCXNjID0gZGV2aWNlX2dldF9zb2Z0
YyhkZXYpOwoJc2MtPmRldiA9IGRldjsKCXNjLT5oYW5kbGUgPSBhY3BpX2dldF9oYW5kbGUoZGV2
KTsKCglhY3BpX3NjID0gYWNwaV9kZXZpY2VfZ2V0X3BhcmVudF9zb2Z0YyhkZXYpOwoJc3lzY3Rs
X2N0eF9pbml0KCZzYy0+c3lzY3RsX2N0eCk7CglzYy0+c3lzY3RsX3RyZWUgPSBTWVNDVExfQURE
X05PREUoJnNjLT5zeXNjdGxfY3R4LAoJICAgIFNZU0NUTF9DSElMRFJFTihhY3BpX3NjLT5hY3Bp
X3N5c2N0bF90cmVlKSwgT0lEX0FVVE8sCgkgICAgInRvc2hpYmEiLCBDVExGTEFHX1JELCAwLCAi
Iik7CgoJaSA9IDA7Cgl3aGlsZSAoc3lzY3RsX3RhYmxlW2ldLm5hbWUgIT0gTlVMTCkgewoJCVNZ
U0NUTF9BRERfUFJPQygmc2MtPnN5c2N0bF9jdHgsCgkJICAgIFNZU0NUTF9DSElMRFJFTihzYy0+
c3lzY3RsX3RyZWUpLCBPSURfQVVUTywKCQkgICAgc3lzY3RsX3RhYmxlW2ldLm5hbWUsCgkJICAg
IENUTFRZUEVfSU5UIHwgQ1RMRkxBR19SVyB8IENUTEZMQUdfQU5ZQk9EWSwKCQkgICAgc2MsIGks
IGFjcGlfdG9zaGliYV9zeXNjdGwsICJJIiwgIiIpOwoKCQlpKys7Cgl9CgkKCWlmIChlbmFibGVf
Zm5fa2V5cyAhPSAwKSB7CgkJc3RhdHVzID0gQWNwaUV2YWx1YXRlT2JqZWN0KHNjLT5oYW5kbGUs
IE1FVEhPRF9IQ0lfRU5BQkxFLAoJCQkJCSAgICBOVUxMLCBOVUxMKTsKCQlpZiAoQUNQSV9GQUlM
VVJFKHN0YXR1cykpIHsKCQkJZGV2aWNlX3ByaW50ZihkZXYsICJlbmFibGUgRk4ga2V5cyBmYWls
ZWRcbiIpOwoJCQlzeXNjdGxfY3R4X2ZyZWUoJnNjLT5zeXNjdGxfY3R4KTsKCQkJcmV0dXJuIChF
TlhJTyk7CgkJfQoJCUFjcGlJbnN0YWxsTm90aWZ5SGFuZGxlcihzYy0+aGFuZGxlLCBBQ1BJX0RF
VklDRV9OT1RJRlksCgkJCQkJIGFjcGlfdG9zaGliYV9ub3RpZnksIHNjKTsKCX0KCglyZXR1cm4g
KDApOwp9CgpzdGF0aWMgaW50CmFjcGlfdG9zaGliYV9kZXRhY2goZGV2aWNlX3QgZGV2KQp7Cglz
dHJ1Y3QJCWFjcGlfdG9zaGliYV9zb2Z0YyAqc2M7CgoJc2MgPSBkZXZpY2VfZ2V0X3NvZnRjKGRl
dik7CglBY3BpUmVtb3ZlTm90aWZ5SGFuZGxlcihzYy0+aGFuZGxlLCBBQ1BJX0RFVklDRV9OT1RJ
RlksCgkJCQlhY3BpX3Rvc2hpYmFfbm90aWZ5KTsKCXN5c2N0bF9jdHhfZnJlZSgmc2MtPnN5c2N0
bF9jdHgpOwoKCXJldHVybiAoMCk7Cn0KCnN0YXRpYyBpbnQKYWNwaV90b3NoaWJhX3N5c2N0bChT
WVNDVExfSEFORExFUl9BUkdTKQp7CglzdHJ1Y3QJCWFjcGlfdG9zaGliYV9zb2Z0YyAqc2M7CglV
SU5UMzIJCWhjdjsKCWludAkJc2N2OwoJaW50CQlpbmRleCwgZXJyb3IgPSAwOwoJc3lzY3RsX2hj
aV9tYXBfdCAqbWFwOwoKCXNjID0gKHN0cnVjdCBhY3BpX3Rvc2hpYmFfc29mdGMgKilvaWRwLT5v
aWRfYXJnMTsKCWluZGV4ID0gb2lkcC0+b2lkX2FyZzI7CgltYXAgPSAmc3lzY3RsX3RhYmxlW2lu
ZGV4XTsKCgkvKiBHZXQgdmFsdWUgZnJvbSBIQ0kgKi8KCWVycm9yID0gaGNpX2NhbGwoc2MtPmhh
bmRsZSwgSENJX0dFVCwgbWFwLT5yZWcsICZoY3YpOwoJaWYgKGVycm9yICE9IDApCgkJcmV0dXJu
IChlcnJvcik7CgoJc2N2ID0gbWFwLT5oMnMoaGN2KTsKCgkvKiBTZW5kIHRoZSBjdXJyZW50IHZh
bHVlIHRvIHRoZSB1c2VyIGFuZCByZXR1cm4gaWYgbm8gbmV3IHZhbHVlLiAqLwoJZXJyb3IgPSBz
eXNjdGxfaGFuZGxlX2ludChvaWRwLCAmc2N2LCAwLCByZXEpOwoJaWYgKGVycm9yICE9IDAgfHwg
cmVxLT5uZXdwdHIgPT0gTlVMTCkKCQlyZXR1cm4gKGVycm9yKTsKCgoJLyogU2V0IHZhbHVlIHRv
IEhDSSAqLwoJaGN2ID0gbWFwLT5zMmgoc2N2KTsKCWVycm9yID0gaGNpX2NhbGwoc2MtPmhhbmRs
ZSwgSENJX1NFVCwgbWFwLT5yZWcsICZoY3YpOwoKCXJldHVybiAoZXJyb3IpOwp9CgpVSU5UMzIK
Zm9yY2VfZmFuX3MyaChpbnQgc2N2KQp7CglpZiAoc2N2IDwgMCkKCQlzY3YgPSAwOwoJZWxzZSBp
ZiAoc2N2ID4gMSkKCQlzY3YgPSAxOwoKCXJldHVybiAoc2N2IDw8IDcpOwp9CgppbnQKZm9yY2Vf
ZmFuX2gycyhVSU5UMzIgaGN2KQp7CglyZXR1cm4gKGhjdiA+PiA3KTsKfQoKClVJTlQzMgpjcHVf
c3BlZWRfczJoKGludCBzY3YpCnsKCWlmIChzY3YgPCBTWVNDVExfQ1BVX1NQRUVEX01JTikKCQlz
Y3YgPSBTWVNDVExfQ1BVX1NQRUVEX01JTjsKCWVsc2UgaWYgKHNjdiA+IFNZU0NUTF9DUFVfU1BF
RURfTUFYKQoJCXNjdiA9IFNZU0NUTF9DUFVfU1BFRURfTUFYOwoKCXJldHVybiAoc2N2IDw8IEhD
SV9DUFVfU1BFRURfU0hJRlQpOwp9CgppbnQKY3B1X3NwZWVkX2gycyhVSU5UMzIgaGN2KQp7Cgly
ZXR1cm4gKGhjdiA+PiBIQ0lfQ1BVX1NQRUVEX1NISUZUKTsKfQoKVUlOVDMyCnZpZGVvX291dHB1
dF9zMmgoaW50IHNjdikKewoJaWYgKHNjdiA8IFNZU0NUTF9WSURFT19PVVRQVVRfTUlOKQoJCXNj
diA9IFNZU0NUTF9WSURFT19PVVRQVVRfTUlOOwoJZWxzZSBpZiAoc2N2ID4gU1lTQ1RMX1ZJREVP
X09VVFBVVF9NQVgpCgkJc2N2ID0gU1lTQ1RMX1ZJREVPX09VVFBVVF9NQVg7CgoJcmV0dXJuIChz
Y3YgfCBIQ0lfVklERU9fT1VUUFVUX0ZMQUcpOwp9CgppbnQKdmlkZW9fb3V0cHV0X2gycyhVSU5U
MzIgaGN2KQp7CglyZXR1cm4gKGhjdiAmIH5IQ0lfVklERU9fT1VUUFVUX0ZMQUcpOwp9CgpVSU5U
MzIKbGNkX2JhY2tsaWdodF9zMmgoaW50IHNjdikKewoJaWYgKHNjdiA8IDApCgkJc2N2ID0gMDsK
CWVsc2UgaWYgKHNjdiA+IDEpCgkJc2N2ID0gMTsKCglyZXR1cm4gKHNjdik7Cn0KCmludApsY2Rf
YmFja2xpZ2h0X2gycyhVSU5UMzIgaGN2KQp7CglyZXR1cm4gaGN2Owp9CgpVSU5UMzIKbGNkX2Jy
aWdodG5lc3NfczJoKGludCBzY3YpCnsKCWlmIChzY3YgPCBTWVNDVExfTENEX0JSSUdIVE5FU1Nf
TUlOKQoJCXNjdiA9IFNZU0NUTF9MQ0RfQlJJR0hUTkVTU19NSU47CgllbHNlIGlmIChzY3YgPiBT
WVNDVExfTENEX0JSSUdIVE5FU1NfTUFYKQoJCXNjdiA9IFNZU0NUTF9MQ0RfQlJJR0hUTkVTU19N
QVg7CgoJcmV0dXJuIChzY3YgPDwgSENJX0xDRF9CUklHSFRORVNTX1NISUZUKTsKfQoKaW50Cmxj
ZF9icmlnaHRuZXNzX2gycyhVSU5UMzIgaGN2KQp7CglyZXR1cm4gKGhjdiA+PiBIQ0lfTENEX0JS
SUdIVE5FU1NfU0hJRlQpOwp9CgpzdGF0aWMgaW50CmhjaV9jYWxsKEFDUElfSEFORExFIGgsIGlu
dCBvcCwgaW50IGZ1bmN0aW9uLCBVSU5UMzIgKmFyZykKewoJQUNQSV9PQkpFQ1RfTElTVCBhcmdz
OwoJQUNQSV9CVUZGRVIJcmVzdWx0czsKCUFDUElfT0JKRUNUCW9ialtIQ0lfV09SRFNdOwoJQUNQ
SV9PQkpFQ1QJKnJlczsKCWludAkJc3RhdHVzLCBpLCByZXQ7CgoJc3RhdHVzID0gRU5YSU87CgoJ
Zm9yIChpID0gMDsgaSA8IEhDSV9XT1JEUzsgaSsrKSB7CgkJb2JqW2ldLlR5cGUgPSBBQ1BJX1RZ
UEVfSU5URUdFUjsKCQlvYmpbaV0uSW50ZWdlci5WYWx1ZSA9IDA7Cgl9CglvYmpbSENJX1JFR19B
WF0uSW50ZWdlci5WYWx1ZSA9IG9wOwoJb2JqW0hDSV9SRUdfQlhdLkludGVnZXIuVmFsdWUgPSBm
dW5jdGlvbjsKCWlmIChvcCA9PSBIQ0lfU0VUKQoJCW9ialtIQ0lfUkVHX0NYXS5JbnRlZ2VyLlZh
bHVlID0gKmFyZzsKCglhcmdzLkNvdW50ID0gSENJX1dPUkRTOwoJYXJncy5Qb2ludGVyID0gb2Jq
OwoJcmVzdWx0cy5Qb2ludGVyID0gTlVMTDsKCXJlc3VsdHMuTGVuZ3RoID0gQUNQSV9BTExPQ0FU
RV9CVUZGRVI7CglpZiAoQUNQSV9GQUlMVVJFKEFjcGlFdmFsdWF0ZU9iamVjdChoLCBNRVRIT0Rf
SENJLCAmYXJncywgJnJlc3VsdHMpKSkKCQlnb3RvIGVuZDsKCXJlcyA9IChBQ1BJX09CSkVDVCAq
KXJlc3VsdHMuUG9pbnRlcjsKCWlmICghQUNQSV9QS0dfVkFMSUQocmVzLCBIQ0lfV09SRFMpKSB7
CgkJcHJpbnRmKCJ0b3NoaWJhOiBpbnZhbGlkIHBhY2thZ2UhXG4iKTsKCQlyZXR1cm4gKEVOWElP
KTsKCX0KCglhY3BpX1BrZ0ludDMyKHJlcywgSENJX1JFR19BWCwgJnJldCk7CglpZiAocmV0ID09
IEhDSV9TVUNDRVNTKSB7CgkJaWYgKG9wID09IEhDSV9HRVQpCgkJCWFjcGlfUGtnSW50MzIocmVz
LCBIQ0lfUkVHX0NYLCBhcmcpOwoJCXN0YXR1cyA9IDA7Cgl9IGVsc2UgaWYgKGZ1bmN0aW9uID09
IEhDSV9SRUdfU1lTVEVNX0VWRU5UICYmIG9wID09IEhDSV9HRVQgJiYKCSAgICByZXQgPT0gSENJ
X05PVF9TVVBQT1JURUQpIHsKCQkvKgoJCSAqIFNvbWV0aW1lcyBzeXN0ZW0gZXZlbnRzIGFyZSBk
aXNhYmxlZCB3aXRob3V0IHVzIHJlcXVlc3RpbmcKCQkgKiBpdC4gIFRoaXMgd29ya2Fyb3VuZCBh
dHRlbXB0cyB0byByZS1lbmFibGUgdGhlbS4KCQkgKi8KCQkgaSA9IDE7CgkJIGhjaV9jYWxsKGgs
IEhDSV9TRVQsIEhDSV9SRUdfU1lTVEVNX0VWRU5ULCAmaSk7Cgl9CgplbmQ6CglpZiAocmVzdWx0
cy5Qb2ludGVyICE9IE5VTEwpCgkJQWNwaU9zRnJlZShyZXN1bHRzLlBvaW50ZXIpOwoKCXJldHVy
biAoc3RhdHVzKTsKfQoKc3RhdGljIHZvaWQKYWNwaV90b3NoaWJhX25vdGlmeShBQ1BJX0hBTkRM
RSBoLCBVSU5UMzIgbm90aWZ5LCB2b2lkICpjb250ZXh0KQp7CglzdHJ1Y3QJCWFjcGlfdG9zaGli
YV9zb2Z0YyAqc2M7CglVSU5UMzIJCWtleTsKCglzYyA9IChzdHJ1Y3QgYWNwaV90b3NoaWJhX3Nv
ZnRjICopY29udGV4dDsKCglpZiAobm90aWZ5ID09IDB4ODApIHsKCQl3aGlsZSAoaGNpX2NhbGwo
aCwgSENJX0dFVCwgSENJX1JFR19TWVNURU1fRVZFTlQsICZrZXkpID09IDApIHsKCQkJYWNwaV9V
c2VyTm90aWZ5KCJUT1NISUJBIiwgaCwgKHVpbnQ4X3Qpa2V5KTsKCQl9Cgl9IGVsc2UgewoJCWRl
dmljZV9wcmludGYoc2MtPmRldiwgInVua25vd24gbm90aWZ5OiAweCV4XG4iLCBub3RpZnkpOwoJ
fQp9Cg==

--Multipart_Sun__28_Dec_2003_01_35_43_+0900_086ea800
Content-Type: application/octet-stream;
 name="acpi_toshiba"
Content-Disposition: attachment;
 filename="acpi_toshiba"
Content-Transfer-Encoding: base64

IyEvYmluL3NoIC0KCmZvcmNlX2ZhbigpCnsKCWZhbj1gL3NiaW4vc3lzY3RsIC1uIGh3LmFjcGku
dG9zaGliYS5mb3JjZV9mYW5gCgljYXNlICR7ZmFufSBpbgoJMSkKCQlmYW49MAoJCTs7CgkqKQoJ
CWZhbj0xCgkJOzsKCWVzYWMKCgkvc2Jpbi9zeXNjdGwgLW4gaHcuYWNwaS50b3NoaWJhLmZvcmNl
X2Zhbj0ke2Zhbn0KfQoKCmNydXNvZV9sb25ncnVuKCkgewoJbG9uZ3J1bj1gL3NiaW4vc3lzY3Rs
IC1uIGh3LmNydXNvZS5sb25ncnVuYAoJY2FzZSAke2xvbmdydW59IGluCgkwKQoJCWxvbmdydW49
MQoJCTs7CgkxKQoJCWxvbmdydW49MgoJCTs7CgkyKQoJCWxvbmdydW49MwoJCTs7CgkzKQoJCWxv
bmdydW49MAoJCTs7Cgllc2FjCgoJL3NiaW4vc3lzY3RsIC1uIGh3LmNydXNvZS5sb25ncnVuPSR7
bG9uZ3J1bn0KfQoKc3VzcGVuZCgpIHsKCSMgc2h1dGRvd25fbmV0d29yawoKCXN5bmM7c3luYztz
eW5jOyAvdXNyL3NiaW4vYWNwaWNvbmYgLXMgMwp9Cgp2aWRlb19vdXRwdXQoKQp7CglvdXRwdXQ9
YC9zYmluL3N5c2N0bCAtbiBody5hY3BpLnRvc2hpYmEudmlkZW9fb3V0cHV0YAoJY2FzZSAke291
dHB1dH0gaW4KCTEpCgkJb3V0cHV0PTIKCQk7OwoJMikKCQlvdXRwdXQ9MwoJCTs7CgkqKQoJCW91
dHB1dD0xCgkJOzsKCWVzYWMKCgkvc2Jpbi9zeXNjdGwgLW4gaHcuYWNwaS50b3NoaWJhLnZpZGVv
X291dHB1dD0ke291dHB1dH0KfQoKCmJyaWdodG5lc3NfZG93bigpIHsKCWxldmVsPWAvc2Jpbi9z
eXNjdGwgLW4gaHcuYWNwaS50b3NoaWJhLmxjZF9icmlnaHRuZXNzYAoJaWYgWyAkbGV2ZWwgIT0g
MCBdOyB0aGVuCgkJbGV2ZWw9YGV4cHIgJGxldmVsIC0gMWAKCQkvc2Jpbi9zeXNjdGwgLXcgaHcu
YWNwaS50b3NoaWJhLmxjZF9icmlnaHRuZXNzPSR7bGV2ZWx9CglmaQoJZWNobyAkbGV2ZWwKfQoK
YnJpZ2h0bmVzc191cCgpIHsKCWxldmVsPWAvc2Jpbi9zeXNjdGwgLW4gaHcuYWNwaS50b3NoaWJh
LmxjZF9icmlnaHRuZXNzYAoJaWYgWyAkbGV2ZWwgIT0gNyBdOyB0aGVuCgkJbGV2ZWw9YGV4cHIg
JGxldmVsICsgMWAKCQkvc2Jpbi9zeXNjdGwgLXcgaHcuYWNwaS50b3NoaWJhLmxjZF9icmlnaHRu
ZXNzPSR7bGV2ZWx9CglmaQoJZWNobyAkbGV2ZWwKfQoKbGNkX2JhY2tsaWdodCgpCnsKCWJhY2ts
aWdodD1gL3NiaW4vc3lzY3RsIC1uIGh3LmFjcGkudG9zaGliYS5sY2RfYmFja2xpZ2h0YAoJY2Fz
ZSAke2JhY2tsaWdodH0gaW4KCTEpCgkJYmFja2xpZ2h0PTAKCQk7OwoJKikKCQliYWNrbGlnaHQ9
MQoJCTs7Cgllc2FjCgoJL3NiaW4vc3lzY3RsIC1uIGh3LmFjcGkudG9zaGliYS5sY2RfYmFja2xp
Z2h0PSR7YmFja2xpZ2h0fQp9CgojCmtleT0kMQoKY2FzZSAke2tleX0gaW4KMHg4MSkJIyBGbitF
U0MKCWZvcmNlX2ZhbgoJOzsKMHhiYikJIyBGbitGMQoJOzsKMHhiYykJIyBGbitGMgoJY3J1c29l
X2xvbmdydW4KCTs7CjB4YmQpCSMgRm4rRjMKCXN1c3BlbmQKCTs7CjB4YmUpCSMgRm4rRjQKCTs7
CjB4YmYpCSMgRm4rRjUKCXZpZGVvX291dHB1dAoJOzsKMHhjMCkJIyBGbitGNgoJYnJpZ2h0bmVz
c19kb3duCgk7OwoweGMxKQkjIEZuK0Y3CglicmlnaHRuZXNzX3VwCgk7OwoweGMyKQkjIEZuK0Y4
CglsY2RfYmFja2xpZ2h0Cgk7OwoweGMzKQkjIEZuK0Y5Cgk7OwoqKQoJOzsKZXNhYwo=

--Multipart_Sun__28_Dec_2003_01_35_43_+0900_086ea800--
