From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1LrJCU-0001EC-U1 for qemu-devel@nongnu.org; Tue, 07 Apr 2009 17:51:23 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1LrJCQ-0001DV-S6 for qemu-devel@nongnu.org; Tue, 07 Apr 2009 17:51:22 -0400 Received: from [199.232.76.173] (port=50113 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1LrJCQ-0001DQ-OV for qemu-devel@nongnu.org; Tue, 07 Apr 2009 17:51:18 -0400 Received: from smtp1-g21.free.fr ([212.27.42.1]:48595) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1LrJCP-0003d1-LJ for qemu-devel@nongnu.org; Tue, 07 Apr 2009 17:51:18 -0400 Received: from smtp1-g21.free.fr (localhost [127.0.0.1]) by smtp1-g21.free.fr (Postfix) with ESMTP id 7AE959400C0 for ; Tue, 7 Apr 2009 23:51:12 +0200 (CEST) Received: from [192.168.0.32] (rob92-10-88-171-126-33.fbx.proxad.net [88.171.126.33]) by smtp1-g21.free.fr (Postfix) with ESMTP id 2A59F9400FD for ; Tue, 7 Apr 2009 23:51:10 +0200 (CEST) Message-ID: <49DBCACD.1070909@reactos.org> Date: Tue, 07 Apr 2009 23:51:09 +0200 From: =?ISO-8859-1?Q?Herv=E9_Poussineau?= MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="------------030708080506040607080503" Subject: [Qemu-devel] [PATCH] rc4030 registers improvements Reply-To: qemu-devel@nongnu.org List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org This is a multi-part message in MIME format. --------------030708080506040607080503 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: quoted-printable Hi, Attached patch documents some registers and simplifies one hack. Signed-off-by: Herv=E9 Poussineau Changes have been tested on Linux, NetBSD, and Windows NT/MIPS. Herv=E9 --------------030708080506040607080503 Content-Type: plain/text; name="rc4030_regs.diff" Content-Transfer-Encoding: base64 Content-Disposition: inline; filename="rc4030_regs.diff" SW5kZXg6IHJjNDAzMC5jDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gcmM0MDMwLmMJKHJldmlzaW9u IDcwMDUpDQorKysgcmM0MDMwLmMJKHdvcmtpbmcgY29weSkNCkBAIC0xLDcgKzEsNyBAQA0K IC8qCiAgKiBRRU1VIEpBWlogUkM0MDMwIGNoaXBzZXQKICAqCi0gKiBDb3B5cmlnaHQgKGMp IDIwMDctMjAwOCBIZXJ2w6kgUG91c3NpbmVhdQorICogQ29weXJpZ2h0IChjKSAyMDA3LTIw MDkgSGVydmUgUG91c3NpbmVhdQogICoKICAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50 ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHkKICAq IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAo dGhlICJTb2Z0d2FyZSIpLCB0byBkZWFsCkBAIC02Niw2ICs2Niw3IEBADQogdHlwZWRlZiBz dHJ1Y3QgcmM0MDMwU3RhdGUKIHsKICAgICB1aW50MzJfdCBjb25maWc7IC8qIDB4MDAwMDog UkM0MDMwIGNvbmZpZyByZWdpc3RlciAqLworICAgIHVpbnQzMl90IHJldmlzaW9uOyAvKiAw eDAwMDg6IFJDNDAzMCBSZXZpc2lvbiByZWdpc3RlciAqLwogICAgIHVpbnQzMl90IGludmFs aWRfYWRkcmVzc19yZWdpc3RlcjsgLyogMHgwMDEwOiBJbnZhbGlkIEFkZHJlc3MgcmVnaXN0 ZXIgKi8KIAogICAgIC8qIERNQSAqLwpAQCAtNzQsMTcgKzc1LDE3IEBADQogICAgIHVpbnQz Ml90IGRtYV90bF9saW1pdDsgLyogMHgwMDIwOiBETUEgdHJhbnNsLiB0YWJsZSBsaW1pdCAq LwogCiAgICAgLyogY2FjaGUgKi8KKyAgICB1aW50MzJfdCBjYWNoZV9tYWludDsgLyogMHgw MDMwOiBDYWNoZSBNYWludGVuYW5jZSAqLwogICAgIHVpbnQzMl90IHJlbW90ZV9mYWlsZWRf YWRkcmVzczsgLyogMHgwMDM4OiBSZW1vdGUgRmFpbGVkIEFkZHJlc3MgKi8KICAgICB1aW50 MzJfdCBtZW1vcnlfZmFpbGVkX2FkZHJlc3M7IC8qIDB4MDA0MDogTWVtb3J5IEZhaWxlZCBB ZGRyZXNzICovCiAgICAgdWludDMyX3QgY2FjaGVfcHRhZzsgLyogMHgwMDQ4OiBJL08gQ2Fj aGUgUGh5c2ljYWwgVGFnICovCiAgICAgdWludDMyX3QgY2FjaGVfbHRhZzsgLyogMHgwMDUw OiBJL08gQ2FjaGUgTG9naWNhbCBUYWcgKi8KICAgICB1aW50MzJfdCBjYWNoZV9ibWFzazsg LyogMHgwMDU4OiBJL08gQ2FjaGUgQnl0ZSBNYXNrICovCi0gICAgdWludDMyX3QgY2FjaGVf YndpbjsgLyogMHgwMDYwOiBJL08gQ2FjaGUgQnVmZmVyIFdpbmRvdyAqLwogCisgICAgdWlu dDMyX3Qgbm1pX2ludGVycnVwdDsgLyogMHgwMjAwOiBpbnRlcnJ1cHQgc291cmNlICovCiAg ICAgdWludDMyX3Qgb2Zmc2V0MjEwOwogICAgIHVpbnQzMl90IG52cmFtX3Byb3RlY3Q7IC8q IDB4MDIyMDogTlYgcmFtIHByb3RlY3QgcmVnaXN0ZXIgKi8KLSAgICB1aW50MzJfdCBvZmZz ZXQyMzg7Ci0gICAgdWludDMyX3QgcmVtX3NwZWVkWzE1XTsKKyAgICB1aW50MzJfdCByZW1f c3BlZWRbMTZdOwogICAgIHVpbnQzMl90IGltcl9qYXp6OyAvKiBMb2NhbCBidXMgaW50IGVu YWJsZSBtYXNrICovCiAgICAgdWludDMyX3QgaXNyX2pheno7IC8qIExvY2FsIGJ1cyBpbnQg c291cmNlICovCiAKQEAgLTExOCw2ICsxMTksMTAgQEANCiAgICAgY2FzZSAweDAwMDA6CiAg ICAgICAgIHZhbCA9IHMtPmNvbmZpZzsKICAgICAgICAgYnJlYWs7CisgICAgLyogUmV2aXNp b24gcmVnaXN0ZXIgKi8KKyAgICBjYXNlIDB4MDAwODoKKyAgICAgICAgdmFsID0gcy0+cmV2 aXNpb247CisgICAgICAgIGJyZWFrOwogICAgIC8qIEludmFsaWQgQWRkcmVzcyByZWdpc3Rl ciAqLwogICAgIGNhc2UgMHgwMDEwOgogICAgICAgICB2YWwgPSBzLT5pbnZhbGlkX2FkZHJl c3NfcmVnaXN0ZXI7CkBAIC0xNjEsNiArMTY2LDcgQEANCiAgICAgY2FzZSAweDAwZDA6CiAg ICAgY2FzZSAweDAwZDg6CiAgICAgY2FzZSAweDAwZTA6CisgICAgY2FzZSAweDAwZTg6CiAg ICAgICAgIHZhbCA9IHMtPnJlbV9zcGVlZFsoYWRkciAtIDB4MDA3MCkgPj4gM107CiAgICAg ICAgIGJyZWFrOwogICAgIC8qIERNQSBjaGFubmVsIGJhc2UgYWRkcmVzcyAqLwpAQCAtMjAy LDcgKzIwOCwxMSBAQA0KICAgICAgICAgICAgIHZhbCA9IHMtPmRtYV9yZWdzW2VudHJ5XVtp ZHhdOwogICAgICAgICB9CiAgICAgICAgIGJyZWFrOwotICAgIC8qIE9mZnNldCAweDAyMDgg Ki8KKyAgICAvKiBJbnRlcnJ1cHQgc291cmNlICovCisgICAgY2FzZSAweDAyMDA6CisgICAg ICAgIHZhbCA9IHMtPm5taV9pbnRlcnJ1cHQ7CisgICAgICAgIGJyZWFrOworICAgIC8qIEVy cm9yIHR5cGUgKi8KICAgICBjYXNlIDB4MDIwODoKICAgICAgICAgdmFsID0gMDsKICAgICAg ICAgYnJlYWs7CkBAIC0yMTksOSArMjI5LDkgQEANCiAgICAgICAgIHZhbCA9IDA7CiAgICAg ICAgIHFlbXVfaXJxX2xvd2VyKHMtPnRpbWVyX2lycSk7CiAgICAgICAgIGJyZWFrOwotICAg IC8qIE9mZnNldCAweDAyMzggKi8KKyAgICAvKiBFSVNBIGludGVycnVwdCAqLwogICAgIGNh c2UgMHgwMjM4OgotICAgICAgICB2YWwgPSBzLT5vZmZzZXQyMzg7CisgICAgICAgIHZhbCA9 IDc7IC8qIEZJWE1FOiBzaG91bGQgYmUgcmVhZCBmcm9tIEVJU0EgY29udHJvbGxlciAqLwog ICAgICAgICBicmVhazsKICAgICBkZWZhdWx0OgogICAgICAgICBSQzQwMzBfRVJST1IoImlu dmFsaWQgcmVhZCBbIiBUQVJHRVRfRk1UX3BseCAiXVxuIiwgYWRkcik7CkBAIC0yNzUsNyAr Mjg1LDcgQEANCiAgICAgICAgIGJyZWFrOwogICAgIC8qIENhY2hlIE1haW50ZW5hbmNlICov CiAgICAgY2FzZSAweDAwMzA6Ci0gICAgICAgIFJDNDAzMF9FUlJPUigiQ2FjaGUgbWFpbnRl bmFuY2Ugbm90IGhhbmRsZWQgeWV0ICh2YWwgMHglMDJ4KVxuIiwgdmFsKTsKKyAgICAgICAg cy0+Y2FjaGVfbWFpbnQgPSB2YWw7CiAgICAgICAgIGJyZWFrOwogICAgIC8qIEkvTyBDYWNo ZSBQaHlzaWNhbCBUYWcgKi8KICAgICBjYXNlIDB4MDA0ODoKQEAgLTI5MSwxNiArMzAxLDEx IEBADQogICAgICAgICBicmVhazsKICAgICAvKiBJL08gQ2FjaGUgQnVmZmVyIFdpbmRvdyAq LwogICAgIGNhc2UgMHgwMDYwOgotICAgICAgICBzLT5jYWNoZV9id2luID0gdmFsOwogICAg ICAgICAvKiBIQUNLICovCiAgICAgICAgIGlmIChzLT5jYWNoZV9sdGFnID09IDB4ODAwMDAw MDEgJiYgcy0+Y2FjaGVfYm1hc2sgPT0gMHhmMGYwZjBmKSB7Ci0gICAgICAgICAgICB0YXJn ZXRfcGh5c19hZGRyX3QgZGVzdHNbXSA9IHsgNCwgMCwgOCwgMHgxMCB9OwotICAgICAgICAg ICAgc3RhdGljIGludCBjdXJyZW50ID0gMDsKLSAgICAgICAgICAgIHRhcmdldF9waHlzX2Fk ZHJfdCBkZXN0ID0gMCArIGRlc3RzW2N1cnJlbnRdOwotICAgICAgICAgICAgdWludDhfdCBi dWY7Ci0gICAgICAgICAgICBjdXJyZW50ID0gKGN1cnJlbnQgKyAxKSAlIChBUlJBWV9TSVpF KGRlc3RzKSk7Ci0gICAgICAgICAgICBidWYgPSBzLT5jYWNoZV9id2luIC0gMTsKLSAgICAg ICAgICAgIGNwdV9waHlzaWNhbF9tZW1vcnlfcncoZGVzdCwgJmJ1ZiwgMSwgMSk7CisgICAg ICAgICAgICB0YXJnZXRfcGh5c19hZGRyX3QgZGVzdCA9IHMtPmNhY2hlX3B0YWcgJiB+MHgx OworICAgICAgICAgICAgZGVzdCArPSAocy0+Y2FjaGVfbWFpbnQgJiAweDMpIDw8IDM7Cisg ICAgICAgICAgICBjcHVfcGh5c2ljYWxfbWVtb3J5X3J3KGRlc3QsICh1aW50OF90KikmdmFs LCA0LCAxKTsKICAgICAgICAgfQogICAgICAgICBicmVhazsKICAgICAvKiBSZW1vdGUgU3Bl ZWQgUmVnaXN0ZXJzICovCkBAIC0zMTksNiArMzI0LDcgQEANCiAgICAgY2FzZSAweDAwZDA6 CiAgICAgY2FzZSAweDAwZDg6CiAgICAgY2FzZSAweDAwZTA6CisgICAgY2FzZSAweDAwZTg6 CiAgICAgICAgIHMtPnJlbV9zcGVlZFsoYWRkciAtIDB4MDA3MCkgPj4gM10gPSB2YWw7CiAg ICAgICAgIGJyZWFrOwogICAgIC8qIERNQSBjaGFubmVsIGJhc2UgYWRkcmVzcyAqLwpAQCAt MzcwLDYgKzM3Niw5IEBADQogICAgICAgICBxZW11X2lycV9sb3dlcihzLT50aW1lcl9pcnEp OwogICAgICAgICBzZXRfbmV4dF90aWNrKHMpOwogICAgICAgICBicmVhazsKKyAgICAvKiBF SVNBIGludGVycnVwdCAqLworICAgIGNhc2UgMHgwMjM4OgorICAgICAgICBicmVhazsKICAg ICBkZWZhdWx0OgogICAgICAgICBSQzQwMzBfRVJST1IoImludmFsaWQgd3JpdGUgb2YgMHgl MDJ4IGF0IFsiIFRBUkdFVF9GTVRfcGx4ICJdXG4iLCB2YWwsIGFkZHIpOwogICAgICAgICBi cmVhazsKQEAgLTU4MCwyMSArNTg5LDIzIEBADQogICAgIGludCBpOwogCiAgICAgcy0+Y29u ZmlnID0gMHg0MTA7IC8qIHNvbWUgYm9hcmRzIHNlZW0gdG8gYWNjZXB0IDB4MTA0IHRvbyAq LworICAgIHMtPnJldmlzaW9uID0gMTsKICAgICBzLT5pbnZhbGlkX2FkZHJlc3NfcmVnaXN0 ZXIgPSAwOwogCiAgICAgbWVtc2V0KHMtPmRtYV9yZWdzLCAwLCBzaXplb2Yocy0+ZG1hX3Jl Z3MpKTsKICAgICBzLT5kbWFfdGxfYmFzZSA9IHMtPmRtYV90bF9saW1pdCA9IDA7CiAKICAg ICBzLT5yZW1vdGVfZmFpbGVkX2FkZHJlc3MgPSBzLT5tZW1vcnlfZmFpbGVkX2FkZHJlc3Mg PSAwOworICAgIHMtPmNhY2hlX21haW50ID0gMDsKICAgICBzLT5jYWNoZV9wdGFnID0gcy0+ Y2FjaGVfbHRhZyA9IDA7Ci0gICAgcy0+Y2FjaGVfYm1hc2sgPSBzLT5jYWNoZV9id2luID0g MDsKKyAgICBzLT5jYWNoZV9ibWFzayA9IDA7CiAKICAgICBzLT5vZmZzZXQyMTAgPSAweDE4 MTg2OwogICAgIHMtPm52cmFtX3Byb3RlY3QgPSA3OwotICAgIHMtPm9mZnNldDIzOCA9IDc7 CiAgICAgZm9yIChpID0gMDsgaSA8IDE1OyBpKyspCiAgICAgICAgIHMtPnJlbV9zcGVlZFtp XSA9IDc7Ci0gICAgcy0+aW1yX2phenogPSBzLT5pc3JfamF6eiA9IDA7CisgICAgcy0+aW1y X2phenogPSAweDEwOyAvKiBYWFg6IHJlcXVpcmVkIGJ5IGZpcm13YXJlLCBidXQgd2h5PyAq LworICAgIHMtPmlzcl9qYXp6ID0gMDsKIAogICAgIHMtPml0ciA9IDA7CiAKQEAgLTYwNyw3 ICs2MTgsNyBAQA0KICAgICByYzQwMzBTdGF0ZSogcyA9IG9wYXF1ZTsKICAgICBpbnQgaSwg ajsKIAotICAgIGlmICh2ZXJzaW9uX2lkICE9IDEpCisgICAgaWYgKHZlcnNpb25faWQgIT0g MikKICAgICAgICAgcmV0dXJuIC1FSU5WQUw7CiAKICAgICBzLT5jb25maWcgPSBxZW11X2dl dF9iZTMyKGYpOwpAQCAtNjE3LDE1ICs2MjgsMTQgQEANCiAgICAgICAgICAgICBzLT5kbWFf cmVnc1tpXVtqXSA9IHFlbXVfZ2V0X2JlMzIoZik7CiAgICAgcy0+ZG1hX3RsX2Jhc2UgPSBx ZW11X2dldF9iZTMyKGYpOwogICAgIHMtPmRtYV90bF9saW1pdCA9IHFlbXVfZ2V0X2JlMzIo Zik7CisgICAgcy0+Y2FjaGVfbWFpbnQgPSBxZW11X2dldF9iZTMyKGYpOwogICAgIHMtPnJl bW90ZV9mYWlsZWRfYWRkcmVzcyA9IHFlbXVfZ2V0X2JlMzIoZik7CiAgICAgcy0+bWVtb3J5 X2ZhaWxlZF9hZGRyZXNzID0gcWVtdV9nZXRfYmUzMihmKTsKICAgICBzLT5jYWNoZV9wdGFn ID0gcWVtdV9nZXRfYmUzMihmKTsKICAgICBzLT5jYWNoZV9sdGFnID0gcWVtdV9nZXRfYmUz MihmKTsKICAgICBzLT5jYWNoZV9ibWFzayA9IHFlbXVfZ2V0X2JlMzIoZik7Ci0gICAgcy0+ Y2FjaGVfYndpbiA9IHFlbXVfZ2V0X2JlMzIoZik7CiAgICAgcy0+b2Zmc2V0MjEwID0gcWVt dV9nZXRfYmUzMihmKTsKICAgICBzLT5udnJhbV9wcm90ZWN0ID0gcWVtdV9nZXRfYmUzMihm KTsKLSAgICBzLT5vZmZzZXQyMzggPSBxZW11X2dldF9iZTMyKGYpOwogICAgIGZvciAoaSA9 IDA7IGkgPCAxNTsgaSsrKQogICAgICAgICBzLT5yZW1fc3BlZWRbaV0gPSBxZW11X2dldF9i ZTMyKGYpOwogICAgIHMtPmltcl9qYXp6ID0gcWVtdV9nZXRfYmUzMihmKTsKQEAgLTY1MCwx NSArNjYwLDE0IEBADQogICAgICAgICAgICAgcWVtdV9wdXRfYmUzMihmLCBzLT5kbWFfcmVn c1tpXVtqXSk7CiAgICAgcWVtdV9wdXRfYmUzMihmLCBzLT5kbWFfdGxfYmFzZSk7CiAgICAg cWVtdV9wdXRfYmUzMihmLCBzLT5kbWFfdGxfbGltaXQpOworICAgIHFlbXVfcHV0X2JlMzIo Ziwgcy0+Y2FjaGVfbWFpbnQpOwogICAgIHFlbXVfcHV0X2JlMzIoZiwgcy0+cmVtb3RlX2Zh aWxlZF9hZGRyZXNzKTsKICAgICBxZW11X3B1dF9iZTMyKGYsIHMtPm1lbW9yeV9mYWlsZWRf YWRkcmVzcyk7CiAgICAgcWVtdV9wdXRfYmUzMihmLCBzLT5jYWNoZV9wdGFnKTsKICAgICBx ZW11X3B1dF9iZTMyKGYsIHMtPmNhY2hlX2x0YWcpOwogICAgIHFlbXVfcHV0X2JlMzIoZiwg cy0+Y2FjaGVfYm1hc2spOwotICAgIHFlbXVfcHV0X2JlMzIoZiwgcy0+Y2FjaGVfYndpbik7 CiAgICAgcWVtdV9wdXRfYmUzMihmLCBzLT5vZmZzZXQyMTApOwogICAgIHFlbXVfcHV0X2Jl MzIoZiwgcy0+bnZyYW1fcHJvdGVjdCk7Ci0gICAgcWVtdV9wdXRfYmUzMihmLCBzLT5vZmZz ZXQyMzgpOwogICAgIGZvciAoaSA9IDA7IGkgPCAxNTsgaSsrKQogICAgICAgICBxZW11X3B1 dF9iZTMyKGYsIHMtPnJlbV9zcGVlZFtpXSk7CiAgICAgcWVtdV9wdXRfYmUzMihmLCBzLT5p bXJfamF6eik7CkBAIC02NjYsNDQgKzY3NSwyOCBAQA0KICAgICBxZW11X3B1dF9iZTMyKGYs IHMtPml0cik7CiB9CiAKLXN0YXRpYyB2b2lkIHJjNDAzMF9kb19kbWEodm9pZCAqb3BhcXVl LCBpbnQgbiwgdWludDhfdCAqYnVmLCBpbnQgbGVuLCBpbnQgaXNfd3JpdGUpCitzdGF0aWMg dm9pZCByYzQwMzBfZG1hX21lbW9yeV9ydyh2b2lkICpvcGFxdWUsIHRhcmdldF9waHlzX2Fk ZHJfdCBhZGRyLCB1aW50OF90ICpidWYsIGludCBsZW4sIGludCBpc193cml0ZSkKIHsKICAg ICByYzQwMzBTdGF0ZSAqcyA9IG9wYXF1ZTsKICAgICB0YXJnZXRfcGh5c19hZGRyX3QgZW50 cnlfYWRkcjsKLSAgICB0YXJnZXRfcGh5c19hZGRyX3QgZG1hX2FkZHIsIHBoeXNfYWRkcjsK KyAgICB0YXJnZXRfcGh5c19hZGRyX3QgcGh5c19hZGRyOwogICAgIGRtYV9wYWdldGFibGVf ZW50cnkgZW50cnk7Ci0gICAgaW50IGluZGV4LCBkZXZfdG9fbWVtOworICAgIGludCBpbmRl eDsKICAgICBpbnQgbmNweSwgaTsKIAotICAgIHMtPmRtYV9yZWdzW25dW0RNQV9SRUdfRU5B QkxFXSAmPSB+KERNQV9GTEFHX1RDX0lOVFIgfCBETUFfRkxBR19NRU1fSU5UUiB8IERNQV9G TEFHX0FERFJfSU5UUik7Ci0KLSAgICAvKiBDaGVjayBETUEgY2hhbm5lbCBjb25zaXN0ZW5j eSAqLwotICAgIGRldl90b19tZW0gPSAocy0+ZG1hX3JlZ3Nbbl1bRE1BX1JFR19FTkFCTEVd ICYgRE1BX0ZMQUdfTUVNX1RPX0RFVikgPyAwIDogMTsKLSAgICBpZiAoIShzLT5kbWFfcmVn c1tuXVtETUFfUkVHX0VOQUJMRV0gJiBETUFfRkxBR19FTkFCTEUpIHx8Ci0gICAgICAgIChp c193cml0ZSAhPSBkZXZfdG9fbWVtKSkgewotICAgICAgICBzLT5kbWFfcmVnc1tuXVtETUFf UkVHX0VOQUJMRV0gfD0gRE1BX0ZMQUdfTUVNX0lOVFI7Ci0gICAgICAgIHJldHVybjsKLSAg ICB9Ci0KLSAgICBpZiAobGVuID4gcy0+ZG1hX3JlZ3Nbbl1bRE1BX1JFR19DT1VOVF0pCi0g ICAgICAgIGxlbiA9IHMtPmRtYV9yZWdzW25dW0RNQV9SRUdfQ09VTlRdOwotCi0gICAgZG1h X2FkZHIgPSBzLT5kbWFfcmVnc1tuXVtETUFfUkVHX0FERFJFU1NdOwogICAgIGkgPSAwOwog ICAgIGZvciAoOzspIHsKICAgICAgICAgaWYgKGkgPT0gbGVuKSB7Ci0gICAgICAgICAgICBz LT5kbWFfcmVnc1tuXVtETUFfUkVHX0VOQUJMRV0gfD0gRE1BX0ZMQUdfVENfSU5UUjsKICAg ICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAKLSAgICAgICAgbmNweSA9IERNQV9QQUdF U0laRSAtIChkbWFfYWRkciAmIChETUFfUEFHRVNJWkUgLSAxKSk7CisgICAgICAgIG5jcHkg PSBETUFfUEFHRVNJWkUgLSAoYWRkciAmIChETUFfUEFHRVNJWkUgLSAxKSk7CiAgICAgICAg IGlmIChuY3B5ID4gbGVuIC0gaSkKICAgICAgICAgICAgIG5jcHkgPSBsZW4gLSBpOwogCiAg ICAgICAgIC8qIEdldCBETUEgdHJhbnNsYXRpb24gdGFibGUgZW50cnkgKi8KLSAgICAgICAg aW5kZXggPSBkbWFfYWRkciAvIERNQV9QQUdFU0laRTsKKyAgICAgICAgaW5kZXggPSBhZGRy IC8gRE1BX1BBR0VTSVpFOwogICAgICAgICBpZiAoaW5kZXggPj0gcy0+ZG1hX3RsX2xpbWl0 IC8gc2l6ZW9mKGRtYV9wYWdldGFibGVfZW50cnkpKSB7Ci0gICAgICAgICAgICBzLT5kbWFf cmVnc1tuXVtETUFfUkVHX0VOQUJMRV0gfD0gRE1BX0ZMQUdfTUVNX0lOVFI7CiAgICAgICAg ICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICBlbnRyeV9hZGRyID0gcy0+ZG1hX3Rs X2Jhc2UgKyBpbmRleCAqIHNpemVvZihkbWFfcGFnZXRhYmxlX2VudHJ5KTsKQEAgLTcxMiwx NCArNzA1LDQyIEBADQogICAgICAgICBjcHVfcGh5c2ljYWxfbWVtb3J5X3J3KGVudHJ5X2Fk ZHIsICh1aW50OF90ICopJmVudHJ5LCBzaXplb2YoZW50cnkpLCAwKTsKIAogICAgICAgICAv KiBSZWFkL3dyaXRlIGRhdGEgYXQgcmlnaHQgcGxhY2UgKi8KLSAgICAgICAgcGh5c19hZGRy ID0gZW50cnkuZnJhbWUgKyAoZG1hX2FkZHIgJiAoRE1BX1BBR0VTSVpFIC0gMSkpOworICAg ICAgICBwaHlzX2FkZHIgPSBlbnRyeS5mcmFtZSArIChhZGRyICYgKERNQV9QQUdFU0laRSAt IDEpKTsKICAgICAgICAgY3B1X3BoeXNpY2FsX21lbW9yeV9ydyhwaHlzX2FkZHIsICZidWZb aV0sIG5jcHksIGlzX3dyaXRlKTsKIAogICAgICAgICBpICs9IG5jcHk7Ci0gICAgICAgIGRt YV9hZGRyICs9IG5jcHk7Ci0gICAgICAgIHMtPmRtYV9yZWdzW25dW0RNQV9SRUdfQ09VTlRd IC09IG5jcHk7CisgICAgICAgIGFkZHIgKz0gbmNweTsKICAgICB9Cit9CiAKK3N0YXRpYyB2 b2lkIHJjNDAzMF9kb19kbWEodm9pZCAqb3BhcXVlLCBpbnQgbiwgdWludDhfdCAqYnVmLCBp bnQgbGVuLCBpbnQgaXNfd3JpdGUpCit7CisgICAgcmM0MDMwU3RhdGUgKnMgPSBvcGFxdWU7 CisgICAgdGFyZ2V0X3BoeXNfYWRkcl90IGRtYV9hZGRyOworICAgIGludCBkZXZfdG9fbWVt OworCisgICAgcy0+ZG1hX3JlZ3Nbbl1bRE1BX1JFR19FTkFCTEVdICY9IH4oRE1BX0ZMQUdf VENfSU5UUiB8IERNQV9GTEFHX01FTV9JTlRSIHwgRE1BX0ZMQUdfQUREUl9JTlRSKTsKKwor ICAgIC8qIENoZWNrIERNQSBjaGFubmVsIGNvbnNpc3RlbmN5ICovCisgICAgZGV2X3RvX21l bSA9IChzLT5kbWFfcmVnc1tuXVtETUFfUkVHX0VOQUJMRV0gJiBETUFfRkxBR19NRU1fVE9f REVWKSA/IDAgOiAxOworICAgIGlmICghKHMtPmRtYV9yZWdzW25dW0RNQV9SRUdfRU5BQkxF XSAmIERNQV9GTEFHX0VOQUJMRSkgfHwKKyAgICAgICAgKGlzX3dyaXRlICE9IGRldl90b19t ZW0pKSB7CisgICAgICAgIHMtPmRtYV9yZWdzW25dW0RNQV9SRUdfRU5BQkxFXSB8PSBETUFf RkxBR19NRU1fSU5UUjsKKyAgICAgICAgcy0+bm1pX2ludGVycnVwdCB8PSAxIDw8IG47Cisg ICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICAvKiBHZXQgc3RhcnQgYWRkcmVzcyBhbmQg bGVuICovCisgICAgaWYgKGxlbiA+IHMtPmRtYV9yZWdzW25dW0RNQV9SRUdfQ09VTlRdKQor ICAgICAgICBsZW4gPSBzLT5kbWFfcmVnc1tuXVtETUFfUkVHX0NPVU5UXTsKKyAgICBkbWFf YWRkciA9IHMtPmRtYV9yZWdzW25dW0RNQV9SRUdfQUREUkVTU107CisKKyAgICAvKiBSZWFk L3dyaXRlIGRhdGEgYXQgcmlnaHQgcGxhY2UgKi8KKyAgICByYzQwMzBfZG1hX21lbW9yeV9y dyhvcGFxdWUsIGRtYV9hZGRyLCBidWYsIGxlbiwgaXNfd3JpdGUpOworCisgICAgcy0+ZG1h X3JlZ3Nbbl1bRE1BX1JFR19FTkFCTEVdIHw9IERNQV9GTEFHX1RDX0lOVFI7CisgICAgcy0+ ZG1hX3JlZ3Nbbl1bRE1BX1JFR19DT1VOVF0gLT0gbGVuOworCiAjaWZkZWYgREVCVUdfUkM0 MDMwX0RNQQogICAgIHsKICAgICAgICAgaW50IGksIGo7CkBAIC03OTIsNyArODEzLDcgQEAN CiAgICAgcy0+amF6el9idXNfaXJxID0gamF6el9idXM7CiAKICAgICBxZW11X3JlZ2lzdGVy X3Jlc2V0KHJjNDAzMF9yZXNldCwgcyk7Ci0gICAgcmVnaXN0ZXJfc2F2ZXZtKCJyYzQwMzAi LCAwLCAxLCByYzQwMzBfc2F2ZSwgcmM0MDMwX2xvYWQsIHMpOworICAgIHJlZ2lzdGVyX3Nh dmV2bSgicmM0MDMwIiwgMCwgMiwgcmM0MDMwX3NhdmUsIHJjNDAzMF9sb2FkLCBzKTsKICAg ICByYzQwMzBfcmVzZXQocyk7CiAKICAgICBzX2NoaXBzZXQgPSBjcHVfcmVnaXN0ZXJfaW9f bWVtb3J5KDAsIHJjNDAzMF9yZWFkLCByYzQwMzBfd3JpdGUsIHMpOwo= --------------030708080506040607080503--