From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1MGHar-0000Th-IM for qemu-devel@nongnu.org; Mon, 15 Jun 2009 15:11:45 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1MGHam-0000Og-Te for qemu-devel@nongnu.org; Mon, 15 Jun 2009 15:11:45 -0400 Received: from [199.232.76.173] (port=41595 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1MGHam-0000Od-JX for qemu-devel@nongnu.org; Mon, 15 Jun 2009 15:11:40 -0400 Received: from mail-fx0-f209.google.com ([209.85.220.209]:49960) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1MGHal-0001jQ-NS for qemu-devel@nongnu.org; Mon, 15 Jun 2009 15:11:40 -0400 Received: by fxm5 with SMTP id 5so920765fxm.34 for ; Mon, 15 Jun 2009 12:11:38 -0700 (PDT) MIME-Version: 1.0 In-Reply-To: <200707031645.51832.uli@suse.de> References: <200707021527.54435.uli@suse.de> <200707021440.25061.paul@codesourcery.com> <200707021814.44821.uli@suse.de> <200707031645.51832.uli@suse.de> Date: Mon, 15 Jun 2009 21:11:37 +0200 Message-ID: <5b31733c0906151211o1c95245ay38f2d09c123ea0c9@mail.gmail.com> Subject: Re: [Qemu-devel] [PATCH] ARM7TDMI emulation From: Filip Navara Content-Type: multipart/mixed; boundary=0016e655991acfef14046c67d345 List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: paul@codesourcery.com --0016e655991acfef14046c67d345 Content-Type: multipart/alternative; boundary=0016e655991acfef0b046c67d343 --0016e655991acfef0b046c67d343 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable On Tue, Jul 3, 2007 at 4:45 PM, Ulrich Hecht wrote: > On Monday 02 July 2007 18:14, Ulrich Hecht wrote: > > Anyway, here's the 920T version. The magic numbers may or may not be > > correct. > > And here's an even better version that implements both 920T and 7TDMI > (with base-updated aborts). > > CU > Uli > > -- > SUSE LINUX Products GmbH, GF: Markus Rex, HRB 16746 (AG N=FCrnberg) > Hello, this is a rewritten version of the original patch to work on the latest qem= u git. Anything that needs to be done to get this merged? ARM7TDMI emulation (ignore bit 0 on POP PC, no BLX, no CP15, base-updated data aborts). Based on patch by Ulrich Hecht . Best regards, Filip Navara --0016e655991acfef0b046c67d343 Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable
On Tue, Jul 3, 2007 at 4:45 PM, Ulrich Hecht <uli@suse.de> wrote:
On Monday 02 July 2007 18:14, Ulrich Hecht wrote:
> Anyway, here's the 920T version. The magic numbers may or may not = be
> correct.

And here's an even better version that implements both 920T and 7= TDMI
(with base-updated aborts).

CU
Uli

--
SUSE LINUX Products GmbH, GF: Markus Rex, HRB 16746 (AG N=FCrnberg)

Hello,

this is a rewritten version of the original patch to work on the la= test qemu git. Anything that needs to be done to get this merged?

ARM7TDMI emulation (ignore bit 0 on POP PC, no BLX, no = CP15, base-updated data aborts).
Based on patch by Ulrich Hecht &= lt;uli@suse.de>.

Best regards,
Filip Navara


--0016e655991acfef0b046c67d343-- --0016e655991acfef14046c67d345 Content-Type: application/octet-stream; name="0001-ARM7TDMI-emulation-ignore-bit-0-on-POP-PC-no-BLX-no-.patch" Content-Disposition: attachment; filename="0001-ARM7TDMI-emulation-ignore-bit-0-on-POP-PC-no-BLX-no-.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_fvzk6dfb1 RnJvbSBiNDlhMDFkODc2ZDY1ZDllZjQ1NmViYmNkOGFjMjE5ZTZkNDlhYjBhIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBGaWxpcCBOYXZhcmEgPGZpbGlwLm5hdmFyYUBnbWFpbC5jb20+ CkRhdGU6IE1vbiwgMTUgSnVuIDIwMDkgMjE6MDU6MTkgKzAyMDAKU3ViamVjdDogW1BBVENIXSBB Uk03VERNSSBlbXVsYXRpb24gKGlnbm9yZSBiaXQgMCBvbiBQT1AgUEMsIG5vIEJMWCwgbm8gQ1Ax NSwgYmFzZS11cGRhdGVkIGRhdGEgYWJvcnRzKS4KIEJhc2VkIG9uIHBhdGNoIGJ5IFVscmljaCBI ZWNodCA8dWxpQHN1c2UuZGU+LgoKLS0tCiB0YXJnZXQtYXJtL2NwdS5oICAgICAgIHwgICAgNiAr KystCiB0YXJnZXQtYXJtL2hlbHBlci5jICAgIHwgICAyNCArKysrKysrKysrKysrCiB0YXJnZXQt YXJtL3RyYW5zbGF0ZS5jIHwgICA4NyArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr LS0tLS0tLS0tLS0tLQogMyBmaWxlcyBjaGFuZ2VkLCA5MiBpbnNlcnRpb25zKCspLCAyNSBkZWxl dGlvbnMoLSkKCmRpZmYgLS1naXQgYS90YXJnZXQtYXJtL2NwdS5oIGIvdGFyZ2V0LWFybS9jcHUu aAppbmRleCBmOTg2NTVmLi5kMDA0Nzc3IDEwMDY0NAotLS0gYS90YXJnZXQtYXJtL2NwdS5oCisr KyBiL3RhcmdldC1hcm0vY3B1LmgKQEAgLTMzMSw2ICszMzEsNyBAQCBlbnVtIGFybV9mZWF0dXJl cyB7CiAgICAgQVJNX0ZFQVRVUkVfQVVYQ1IsICAvKiBBUk0xMDI2IEF1eGlsaWFyeSBjb250cm9s IHJlZ2lzdGVyLiAgKi8KICAgICBBUk1fRkVBVFVSRV9YU0NBTEUsIC8qIEludGVsIFhTY2FsZSBl eHRlbnNpb25zLiAgKi8KICAgICBBUk1fRkVBVFVSRV9JV01NWFQsIC8qIEludGVsIGl3TU1YdCBl eHRlbnNpb24uICAqLworICAgIEFSTV9GRUFUVVJFX1Y1LAogICAgIEFSTV9GRUFUVVJFX1Y2LAog ICAgIEFSTV9GRUFUVVJFX1Y2SywKICAgICBBUk1fRkVBVFVSRV9WNywKQEAgLTM0MSw3ICszNDIs OSBAQCBlbnVtIGFybV9mZWF0dXJlcyB7CiAgICAgQVJNX0ZFQVRVUkVfRElWLAogICAgIEFSTV9G RUFUVVJFX00sIC8qIE1pY3JvY29udHJvbGxlciBwcm9maWxlLiAgKi8KICAgICBBUk1fRkVBVFVS RV9PTUFQQ1AsIC8qIE9NQVAgc3BlY2lmaWMgQ1AxNSBvcHMgaGFuZGxpbmcuICAqLwotICAgIEFS TV9GRUFUVVJFX1RIVU1CMkVFCisgICAgQVJNX0ZFQVRVUkVfVEhVTUIyRUUsCisgICAgQVJNX0ZF QVRVUkVfQ1AxNSwgLyogQVJNN1RETUksIEFSTTdURE1JLVMsIEFSTTdFSi1TLCBhbmQgQVJNOVRE TUkgY29yZXMgZG8gbm90IGhhdmUgYSBDUDE1ICovCisgICAgQVJNX0ZFQVRVUkVfQUJPUlRfQlUg LyogYmFzZSB1cGRhdGVkIGFib3J0IG1vZGVsLCBlLmcuIEFSTXhURE1JICovCiB9OwogCiBzdGF0 aWMgaW5saW5lIGludCBhcm1fZmVhdHVyZShDUFVBUk1TdGF0ZSAqZW52LCBpbnQgZmVhdHVyZSkK QEAgLTM2Nyw2ICszNzAsNyBAQCB2b2lkIGNwdV9hcm1fc2V0X2NwX2lvKENQVUFSTVN0YXRlICpl bnYsIGludCBjcG51bSwKICNkZWZpbmUgSVNfTShlbnYpIGFybV9mZWF0dXJlKGVudiwgQVJNX0ZF QVRVUkVfTSkKICNkZWZpbmUgQVJNX0NQVUlEKGVudikgKGVudi0+Y3AxNS5jMF9jcHVpZCkKIAor I2RlZmluZSBBUk1fQ1BVSURfQVJNN1RETUkgICAgMHg0MTgwNzAwMCAvKiBndWVzczsgbm8gQ1Ax NSBvbiBBUk03VERNSSAqLwogI2RlZmluZSBBUk1fQ1BVSURfQVJNMTAyNiAgICAgMHg0MTA2YTI2 MgogI2RlZmluZSBBUk1fQ1BVSURfQVJNOTI2ICAgICAgMHg0MTA2OTI2NQogI2RlZmluZSBBUk1f Q1BVSURfQVJNOTQ2ICAgICAgMHg0MTA1OTQ2MQpkaWZmIC0tZ2l0IGEvdGFyZ2V0LWFybS9oZWxw ZXIuYyBiL3RhcmdldC1hcm0vaGVscGVyLmMKaW5kZXggNzAxNjI5YS4uMzg4NzVkNCAxMDA2NDQK LS0tIGEvdGFyZ2V0LWFybS9oZWxwZXIuYworKysgYi90YXJnZXQtYXJtL2hlbHBlci5jCkBAIC0z NywxOSArMzcsMjggQEAgc3RhdGljIHZvaWQgY3B1X3Jlc2V0X21vZGVsX2lkKENQVUFSTVN0YXRl ICplbnYsIHVpbnQzMl90IGlkKQogewogICAgIGVudi0+Y3AxNS5jMF9jcHVpZCA9IGlkOwogICAg IHN3aXRjaCAoaWQpIHsKKyAgICBjYXNlIEFSTV9DUFVJRF9BUk03VERNSToKKyAgICAgICAgc2V0 X2ZlYXR1cmUoZW52LCBBUk1fRkVBVFVSRV9BQk9SVF9CVSk7CisgICAgICAgIGJyZWFrOwogICAg IGNhc2UgQVJNX0NQVUlEX0FSTTkyNjoKKyAgICAgICAgc2V0X2ZlYXR1cmUoZW52LCBBUk1fRkVB VFVSRV9WNSk7CiAgICAgICAgIHNldF9mZWF0dXJlKGVudiwgQVJNX0ZFQVRVUkVfVkZQKTsKKyAg ICAgICAgc2V0X2ZlYXR1cmUoZW52LCBBUk1fRkVBVFVSRV9DUDE1KTsKICAgICAgICAgZW52LT52 ZnAueHJlZ3NbQVJNX1ZGUF9GUFNJRF0gPSAweDQxMDExMDkwOwogICAgICAgICBlbnYtPmNwMTUu YzBfY2FjaGV0eXBlID0gMHgxZGQyMGQyOwogICAgICAgICBlbnYtPmNwMTUuYzFfc3lzID0gMHgw MDA5MDA3ODsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBBUk1fQ1BVSURfQVJNOTQ2OgorICAg ICAgICBzZXRfZmVhdHVyZShlbnYsIEFSTV9GRUFUVVJFX1Y1KTsKKyAgICAgICAgc2V0X2ZlYXR1 cmUoZW52LCBBUk1fRkVBVFVSRV9DUDE1KTsKICAgICAgICAgc2V0X2ZlYXR1cmUoZW52LCBBUk1f RkVBVFVSRV9NUFUpOwogICAgICAgICBlbnYtPmNwMTUuYzBfY2FjaGV0eXBlID0gMHgwZjAwNDAw NjsKICAgICAgICAgZW52LT5jcDE1LmMxX3N5cyA9IDB4MDAwMDAwNzg7CiAgICAgICAgIGJyZWFr OwogICAgIGNhc2UgQVJNX0NQVUlEX0FSTTEwMjY6CisgICAgICAgIHNldF9mZWF0dXJlKGVudiwg QVJNX0ZFQVRVUkVfVjUpOwogICAgICAgICBzZXRfZmVhdHVyZShlbnYsIEFSTV9GRUFUVVJFX1ZG UCk7CisgICAgICAgIHNldF9mZWF0dXJlKGVudiwgQVJNX0ZFQVRVUkVfQ1AxNSk7CiAgICAgICAg IHNldF9mZWF0dXJlKGVudiwgQVJNX0ZFQVRVUkVfQVVYQ1IpOwogICAgICAgICBlbnYtPnZmcC54 cmVnc1tBUk1fVkZQX0ZQU0lEXSA9IDB4NDEwMTEwYTA7CiAgICAgICAgIGVudi0+Y3AxNS5jMF9j YWNoZXR5cGUgPSAweDFkZDIwZDI7CkBAIC01Nyw4ICs2NiwxMCBAQCBzdGF0aWMgdm9pZCBjcHVf cmVzZXRfbW9kZWxfaWQoQ1BVQVJNU3RhdGUgKmVudiwgdWludDMyX3QgaWQpCiAgICAgICAgIGJy ZWFrOwogICAgIGNhc2UgQVJNX0NQVUlEX0FSTTExMzZfUjI6CiAgICAgY2FzZSBBUk1fQ1BVSURf QVJNMTEzNjoKKyAgICAgICAgc2V0X2ZlYXR1cmUoZW52LCBBUk1fRkVBVFVSRV9WNSk7CiAgICAg ICAgIHNldF9mZWF0dXJlKGVudiwgQVJNX0ZFQVRVUkVfVjYpOwogICAgICAgICBzZXRfZmVhdHVy ZShlbnYsIEFSTV9GRUFUVVJFX1ZGUCk7CisgICAgICAgIHNldF9mZWF0dXJlKGVudiwgQVJNX0ZF QVRVUkVfQ1AxNSk7CiAgICAgICAgIHNldF9mZWF0dXJlKGVudiwgQVJNX0ZFQVRVUkVfQVVYQ1Ip OwogICAgICAgICBlbnYtPnZmcC54cmVnc1tBUk1fVkZQX0ZQU0lEXSA9IDB4NDEwMTIwYjQ7CiAg ICAgICAgIGVudi0+dmZwLnhyZWdzW0FSTV9WRlBfTVZGUjBdID0gMHgxMTExMTExMTsKQEAgLTY4 LDkgKzc5LDExIEBAIHN0YXRpYyB2b2lkIGNwdV9yZXNldF9tb2RlbF9pZChDUFVBUk1TdGF0ZSAq ZW52LCB1aW50MzJfdCBpZCkKICAgICAgICAgZW52LT5jcDE1LmMwX2NhY2hldHlwZSA9IDB4MWRk MjBkMjsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBBUk1fQ1BVSURfQVJNMTFNUENPUkU6Cisg ICAgICAgIHNldF9mZWF0dXJlKGVudiwgQVJNX0ZFQVRVUkVfVjUpOwogICAgICAgICBzZXRfZmVh dHVyZShlbnYsIEFSTV9GRUFUVVJFX1Y2KTsKICAgICAgICAgc2V0X2ZlYXR1cmUoZW52LCBBUk1f RkVBVFVSRV9WNkspOwogICAgICAgICBzZXRfZmVhdHVyZShlbnYsIEFSTV9GRUFUVVJFX1ZGUCk7 CisgICAgICAgIHNldF9mZWF0dXJlKGVudiwgQVJNX0ZFQVRVUkVfQ1AxNSk7CiAgICAgICAgIHNl dF9mZWF0dXJlKGVudiwgQVJNX0ZFQVRVUkVfQVVYQ1IpOwogICAgICAgICBlbnYtPnZmcC54cmVn c1tBUk1fVkZQX0ZQU0lEXSA9IDB4NDEwMTIwYjQ7CiAgICAgICAgIGVudi0+dmZwLnhyZWdzW0FS TV9WRlBfTVZGUjBdID0gMHgxMTExMTExMTsKQEAgLTgwLDkgKzkzLDExIEBAIHN0YXRpYyB2b2lk IGNwdV9yZXNldF9tb2RlbF9pZChDUFVBUk1TdGF0ZSAqZW52LCB1aW50MzJfdCBpZCkKICAgICAg ICAgZW52LT5jcDE1LmMwX2NhY2hldHlwZSA9IDB4MWRkMjBkMjsKICAgICAgICAgYnJlYWs7CiAg ICAgY2FzZSBBUk1fQ1BVSURfQ09SVEVYQTg6CisgICAgICAgIHNldF9mZWF0dXJlKGVudiwgQVJN X0ZFQVRVUkVfVjUpOwogICAgICAgICBzZXRfZmVhdHVyZShlbnYsIEFSTV9GRUFUVVJFX1Y2KTsK ICAgICAgICAgc2V0X2ZlYXR1cmUoZW52LCBBUk1fRkVBVFVSRV9WNkspOwogICAgICAgICBzZXRf ZmVhdHVyZShlbnYsIEFSTV9GRUFUVVJFX1Y3KTsKKyAgICAgICAgc2V0X2ZlYXR1cmUoZW52LCBB Uk1fRkVBVFVSRV9DUDE1KTsKICAgICAgICAgc2V0X2ZlYXR1cmUoZW52LCBBUk1fRkVBVFVSRV9B VVhDUik7CiAgICAgICAgIHNldF9mZWF0dXJlKGVudiwgQVJNX0ZFQVRVUkVfVEhVTUIyKTsKICAg ICAgICAgc2V0X2ZlYXR1cmUoZW52LCBBUk1fRkVBVFVSRV9WRlApOwpAQCAtMTAxLDYgKzExNiw3 IEBAIHN0YXRpYyB2b2lkIGNwdV9yZXNldF9tb2RlbF9pZChDUFVBUk1TdGF0ZSAqZW52LCB1aW50 MzJfdCBpZCkKICAgICAgICAgZW52LT5jcDE1LmMwX2Njc2lkWzJdID0gMHhmMDAwMDAwMDsgLyog Tm8gTDIgaWNhY2hlLiAqLwogICAgICAgICBicmVhazsKICAgICBjYXNlIEFSTV9DUFVJRF9DT1JU RVhNMzoKKyAgICAgICAgc2V0X2ZlYXR1cmUoZW52LCBBUk1fRkVBVFVSRV9WNSk7CiAgICAgICAg IHNldF9mZWF0dXJlKGVudiwgQVJNX0ZFQVRVUkVfVjYpOwogICAgICAgICBzZXRfZmVhdHVyZShl bnYsIEFSTV9GRUFUVVJFX1RIVU1CMik7CiAgICAgICAgIHNldF9mZWF0dXJlKGVudiwgQVJNX0ZF QVRVUkVfVjcpOwpAQCAtMTA4LDYgKzEyNCw3IEBAIHN0YXRpYyB2b2lkIGNwdV9yZXNldF9tb2Rl bF9pZChDUFVBUk1TdGF0ZSAqZW52LCB1aW50MzJfdCBpZCkKICAgICAgICAgc2V0X2ZlYXR1cmUo ZW52LCBBUk1fRkVBVFVSRV9ESVYpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIEFSTV9DUFVJ RF9BTlk6IC8qIEZvciB1c2Vyc3BhY2UgZW11bGF0aW9uLiAgKi8KKyAgICAgICAgc2V0X2ZlYXR1 cmUoZW52LCBBUk1fRkVBVFVSRV9WNSk7CiAgICAgICAgIHNldF9mZWF0dXJlKGVudiwgQVJNX0ZF QVRVUkVfVjYpOwogICAgICAgICBzZXRfZmVhdHVyZShlbnYsIEFSTV9GRUFUVVJFX1Y2Syk7CiAg ICAgICAgIHNldF9mZWF0dXJlKGVudiwgQVJNX0ZFQVRVUkVfVjcpOwpAQCAtMTIwLDYgKzEzNyw4 IEBAIHN0YXRpYyB2b2lkIGNwdV9yZXNldF9tb2RlbF9pZChDUFVBUk1TdGF0ZSAqZW52LCB1aW50 MzJfdCBpZCkKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBBUk1fQ1BVSURfVEk5MTVUOgogICAg IGNhc2UgQVJNX0NQVUlEX1RJOTI1VDoKKyAgICAgICAgc2V0X2ZlYXR1cmUoZW52LCBBUk1fRkVB VFVSRV9WNSk7CisgICAgICAgIHNldF9mZWF0dXJlKGVudiwgQVJNX0ZFQVRVUkVfQ1AxNSk7CiAg ICAgICAgIHNldF9mZWF0dXJlKGVudiwgQVJNX0ZFQVRVUkVfT01BUENQKTsKICAgICAgICAgZW52 LT5jcDE1LmMwX2NwdWlkID0gQVJNX0NQVUlEX1RJOTI1VDsgLyogRGVwZW5kcyBvbiB3aXJpbmcu ICAqLwogICAgICAgICBlbnYtPmNwMTUuYzBfY2FjaGV0eXBlID0gMHg1MTA5MTQ5OwpAQCAtMTMy LDYgKzE1MSw4IEBAIHN0YXRpYyB2b2lkIGNwdV9yZXNldF9tb2RlbF9pZChDUFVBUk1TdGF0ZSAq ZW52LCB1aW50MzJfdCBpZCkKICAgICBjYXNlIEFSTV9DUFVJRF9QWEEyNjA6CiAgICAgY2FzZSBB Uk1fQ1BVSURfUFhBMjYxOgogICAgIGNhc2UgQVJNX0NQVUlEX1BYQTI2MjoKKyAgICAgICAgc2V0 X2ZlYXR1cmUoZW52LCBBUk1fRkVBVFVSRV9WNSk7CisgICAgICAgIHNldF9mZWF0dXJlKGVudiwg QVJNX0ZFQVRVUkVfQ1AxNSk7CiAgICAgICAgIHNldF9mZWF0dXJlKGVudiwgQVJNX0ZFQVRVUkVf WFNDQUxFKTsKICAgICAgICAgLyogSlRBR19JRCBpcyAoKGlkIDw8IDI4KSB8IDB4MDkyNjUwMTMp ICovCiAgICAgICAgIGVudi0+Y3AxNS5jMF9jYWNoZXR5cGUgPSAweGQxNzIxNzI7CkBAIC0xNDMs NiArMTY0LDggQEAgc3RhdGljIHZvaWQgY3B1X3Jlc2V0X21vZGVsX2lkKENQVUFSTVN0YXRlICpl bnYsIHVpbnQzMl90IGlkKQogICAgIGNhc2UgQVJNX0NQVUlEX1BYQTI3MF9CMToKICAgICBjYXNl IEFSTV9DUFVJRF9QWEEyNzBfQzA6CiAgICAgY2FzZSBBUk1fQ1BVSURfUFhBMjcwX0M1OgorICAg ICAgICBzZXRfZmVhdHVyZShlbnYsIEFSTV9GRUFUVVJFX1Y1KTsKKyAgICAgICAgc2V0X2ZlYXR1 cmUoZW52LCBBUk1fRkVBVFVSRV9DUDE1KTsKICAgICAgICAgc2V0X2ZlYXR1cmUoZW52LCBBUk1f RkVBVFVSRV9YU0NBTEUpOwogICAgICAgICAvKiBKVEFHX0lEIGlzICgoaWQgPDwgMjgpIHwgMHgw OTI2NTAxMykgKi8KICAgICAgICAgc2V0X2ZlYXR1cmUoZW52LCBBUk1fRkVBVFVSRV9JV01NWFQp OwpAQCAtMjc3LDYgKzMwMCw3IEBAIHN0cnVjdCBhcm1fY3B1X3QgewogfTsKIAogc3RhdGljIGNv bnN0IHN0cnVjdCBhcm1fY3B1X3QgYXJtX2NwdV9uYW1lc1tdID0geworICAgIHsgQVJNX0NQVUlE X0FSTTdURE1JLCAiYXJtN3RkbWkifSwKICAgICB7IEFSTV9DUFVJRF9BUk05MjYsICJhcm05MjYi fSwKICAgICB7IEFSTV9DUFVJRF9BUk05NDYsICJhcm05NDYifSwKICAgICB7IEFSTV9DUFVJRF9B Uk0xMDI2LCAiYXJtMTAyNiJ9LApkaWZmIC0tZ2l0IGEvdGFyZ2V0LWFybS90cmFuc2xhdGUuYyBi L3RhcmdldC1hcm0vdHJhbnNsYXRlLmMKaW5kZXggYWRhYzE5YS4uYzFkOTA4YyAxMDA2NDQKLS0t IGEvdGFyZ2V0LWFybS90cmFuc2xhdGUuYworKysgYi90YXJnZXQtYXJtL3RyYW5zbGF0ZS5jCkBA IC0yNTk2LDggKzI1OTYsMTAgQEAgc3RhdGljIGludCBkaXNhc19jcDE1X2luc24oQ1BVU3RhdGUg KmVudiwgRGlzYXNDb250ZXh0ICpzLCB1aW50MzJfdCBpbnNuKQogICAgIFRDR3YgdG1wOwogCiAg ICAgLyogTSBwcm9maWxlIGNvcmVzIHVzZSBtZW1vcnkgbWFwcGVkIHJlZ2lzdGVycyBpbnN0ZWFk IG9mIGNwMTUuICAqLwotICAgIGlmIChhcm1fZmVhdHVyZShlbnYsIEFSTV9GRUFUVVJFX00pKQot CXJldHVybiAxOworICAgIGlmIChhcm1fZmVhdHVyZShlbnYsIEFSTV9GRUFUVVJFX00pIHx8Cisg ICAgICAgICFhcm1fZmVhdHVyZShlbnYsIEFSTV9GRUFUVVJFX0NQMTUpKSB7CisJICAgIHJldHVy biAxOworICAgIH0KIAogICAgIGlmICgoaW5zbiAmICgxIDw8IDI1KSkgPT0gMCkgewogICAgICAg ICBpZiAoaW5zbiAmICgxIDw8IDIwKSkgewpAQCAtNjc4Niw2ICs2Nzg4LDcgQEAgc3RhdGljIHZv aWQgZGlzYXNfYXJtX2luc24oQ1BVU3RhdGUgKiBlbnYsIERpc2FzQ29udGV4dCAqcykKICAgICAg ICAgY2FzZSAweDA5OgogICAgICAgICAgICAgewogICAgICAgICAgICAgICAgIGludCBqLCBuLCB1 c2VyLCBsb2FkZWRfYmFzZTsKKyAgICAgICAgICAgICAgICBpbnQgY3JlbWVudCA9IDA7CiAgICAg ICAgICAgICAgICAgVENHdiBsb2FkZWRfdmFyOwogICAgICAgICAgICAgICAgIC8qIGxvYWQvc3Rv cmUgbXVsdGlwbGUgd29yZHMgKi8KICAgICAgICAgICAgICAgICAvKiBYWFg6IHN0b3JlIGNvcnJl Y3QgYmFzZSBpZiB3cml0ZSBiYWNrICovCkBAIC02ODI2LDYgKzY4MjksMzcgQEAgc3RhdGljIHZv aWQgZGlzYXNfYXJtX2luc24oQ1BVU3RhdGUgKiBlbnYsIERpc2FzQ29udGV4dCAqcykKICAgICAg ICAgICAgICAgICAgICAgICAgIHRjZ19nZW5fYWRkaV9pMzIoYWRkciwgYWRkciwgLSgobiAtIDEp ICogNCkpOwogICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgfQorCisgICAg ICAgICAgICAgICAgaWYgKGluc24gJiAoMSA8PCAyMSkpIHsKKyAgICAgICAgICAgICAgICAgICAg Lyogd3JpdGUgYmFjayAqLworICAgICAgICAgICAgICAgICAgICBpZiAoaW5zbiAmICgxIDw8IDIz KSkgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGluc24gJiAoMSA8PCAyNCkpIHsKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBwcmUgaW5jcmVtZW50ICovCisgICAgICAgICAg ICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHBv c3QgaW5jcmVtZW50ICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3JlbWVudCA9IDQ7 CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7 CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaW5zbiAmICgxIDw8IDI0KSkgeworICAgICAg ICAgICAgICAgICAgICAgICAgICAgIC8qIHByZSBkZWNyZW1lbnQgKi8KKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICBpZiAobiAhPSAxKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGNyZW1lbnQgPSAtKChuIC0gMSkgKiA0KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICB9CisgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAg ICAgICAgICAgIC8qIHBvc3QgZGVjcmVtZW50ICovCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgY3JlbWVudCA9IC0obiAqIDQpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAg ICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGlmIChhcm1fZmVhdHVyZShlbnYs IEFSTV9GRUFUVVJFX0FCT1JUX0JVKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgLyogYmFz ZS11cGRhdGVkIGFib3J0IG1vZGVsOiB1cGRhdGUgYmFzZSByZWdpc3RlcgorICAgICAgICAgICAg ICAgICAgICAgICAgICAgYmVmb3JlIGFuIGFib3J0IGNhbiBoYXBwZW4gKi8KKyAgICAgICAgICAg ICAgICAgICAgICAgIGNyZW1lbnQgKz0gKG4gLSAxKSAqIDQ7CisgICAgICAgICAgICAgICAgICAg ICAgICB0bXAgPSBuZXdfdG1wKCk7CisgICAgICAgICAgICAgICAgICAgICAgICB0Y2dfZ2VuX2Fk ZGlfaTMyKHRtcCwgYWRkciwgY3JlbWVudCk7CisgICAgICAgICAgICAgICAgICAgICAgICBzdG9y ZV9yZWcocywgcm4sIHRtcCk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAg ICB9CisKICAgICAgICAgICAgICAgICBqID0gMDsKICAgICAgICAgICAgICAgICBmb3IoaT0wO2k8 MTY7aSsrKSB7CiAgICAgICAgICAgICAgICAgICAgIGlmIChpbnNuICYgKDEgPDwgaSkpIHsKQEAg LTY4NjQsMjUgKzY4OTgsOCBAQCBzdGF0aWMgdm9pZCBkaXNhc19hcm1faW5zbihDUFVTdGF0ZSAq IGVudiwgRGlzYXNDb250ZXh0ICpzKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRjZ19n ZW5fYWRkaV9pMzIoYWRkciwgYWRkciwgNCk7CiAgICAgICAgICAgICAgICAgICAgIH0KICAgICAg ICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgaWYgKGluc24gJiAoMSA8PCAyMSkpIHsKLSAg ICAgICAgICAgICAgICAgICAgLyogd3JpdGUgYmFjayAqLwotICAgICAgICAgICAgICAgICAgICBp ZiAoaW5zbiAmICgxIDw8IDIzKSkgewotICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGluc24g JiAoMSA8PCAyNCkpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBwcmUgaW5jcmVt ZW50ICovCi0gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAg ICAgICAgICAgICAgIC8qIHBvc3QgaW5jcmVtZW50ICovCi0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgdGNnX2dlbl9hZGRpX2kzMihhZGRyLCBhZGRyLCA0KTsKLSAgICAgICAgICAgICAgICAg ICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAg ICAgICAgIGlmIChpbnNuICYgKDEgPDwgMjQpKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgLyogcHJlIGRlY3JlbWVudCAqLwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChu ICE9IDEpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRjZ19nZW5fYWRkaV9pMzIo YWRkciwgYWRkciwgLSgobiAtIDEpICogNCkpOwotICAgICAgICAgICAgICAgICAgICAgICAgfSBl bHNlIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBwb3N0IGRlY3JlbWVudCAqLwot ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRjZ19nZW5fYWRkaV9pMzIoYWRkciwgYWRkciwg LShuICogNCkpOwotICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAg ICB9CisgICAgICAgICAgICAgICAgaWYgKCFhcm1fZmVhdHVyZShlbnYsIEFSTV9GRUFUVVJFX0FC T1JUX0JVKSAmJiAoaW5zbiAmICgxIDw8IDIxKSkpIHsKKyAgICAgICAgICAgICAgICAgICAgdGNn X2dlbl9hZGRpX2kzMihhZGRyLCBhZGRyLCBjcmVtZW50KTsKICAgICAgICAgICAgICAgICAgICAg c3RvcmVfcmVnKHMsIHJuLCBhZGRyKTsKICAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAg ICAgICAgICAgICAgICBkZWFkX3RtcChhZGRyKTsKQEAgLTgwNTAsNiArODA2Nyw3IEBAIHN0YXRp YyB2b2lkIGRpc2FzX3RodW1iX2luc24oQ1BVU3RhdGUgKmVudiwgRGlzYXNDb250ZXh0ICpzKQog ICAgIFRDR3YgdG1wOwogICAgIFRDR3YgdG1wMjsKICAgICBUQ0d2IGFkZHI7CisgICAgaW50IGNy ZW1lbnQ7CiAKICAgICBpZiAocy0+Y29uZGV4ZWNfbWFzaykgewogICAgICAgICBjb25kID0gcy0+ Y29uZGV4ZWNfY29uZDsKQEAgLTgxNzEsNiArODE4OSw5IEBAIHN0YXRpYyB2b2lkIGRpc2FzX3Ro dW1iX2luc24oQ1BVU3RhdGUgKmVudiwgRGlzYXNDb250ZXh0ICpzKQogICAgICAgICAgICAgY2Fz ZSAzOi8qIGJyYW5jaCBbYW5kIGxpbmtdIGV4Y2hhbmdlIHRodW1iIHJlZ2lzdGVyICovCiAgICAg ICAgICAgICAgICAgdG1wID0gbG9hZF9yZWcocywgcm0pOwogICAgICAgICAgICAgICAgIGlmIChp bnNuICYgKDEgPDwgNykpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCFhcm1fZmVhdHVyZShl bnYsIEFSTV9GRUFUVVJFX1Y1KSkgeworICAgICAgICAgICAgICAgICAgICAgICAgZ290byB1bmRl ZjsKKyAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICB2YWwgPSAodWlu dDMyX3Qpcy0+cGMgfCAxOwogICAgICAgICAgICAgICAgICAgICB0bXAyID0gbmV3X3RtcCgpOwog ICAgICAgICAgICAgICAgICAgICB0Y2dfZ2VuX21vdmlfaTMyKHRtcDIsIHZhbCk7CkBAIC04NTIz LDggKzg1NDQsMTMgQEAgc3RhdGljIHZvaWQgZGlzYXNfdGh1bWJfaW5zbihDUFVTdGF0ZSAqZW52 LCBEaXNhc0NvbnRleHQgKnMpCiAgICAgICAgICAgICAvKiB3cml0ZSBiYWNrIHRoZSBuZXcgc3Rh Y2sgcG9pbnRlciAqLwogICAgICAgICAgICAgc3RvcmVfcmVnKHMsIDEzLCBhZGRyKTsKICAgICAg ICAgICAgIC8qIHNldCB0aGUgbmV3IFBDIHZhbHVlICovCi0gICAgICAgICAgICBpZiAoKGluc24g JiAweDA5MDApID09IDB4MDkwMCkKLSAgICAgICAgICAgICAgICBnZW5fYngocywgdG1wKTsKKyAg ICAgICAgICAgIGlmICgoaW5zbiAmIDB4MDkwMCkgPT0gMHgwOTAwKSB7CisgICAgICAgICAgICAg ICAgaWYgKCFhcm1fZmVhdHVyZShlbnYsIEFSTV9GRUFUVVJFX1Y1KSkgeworICAgICAgICAgICAg ICAgICAgICBzdG9yZV9jcHVfZmllbGQodG1wLCByZWdzWzE1XSk7CisgICAgICAgICAgICAgICAg fSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgZ2VuX2J4KHMsIHRtcCk7CisgICAgICAgICAg ICAgICAgfQorICAgICAgICAgICAgfQogICAgICAgICAgICAgYnJlYWs7CiAKICAgICAgICAgY2Fz ZSAxOiBjYXNlIDM6IGNhc2UgOTogY2FzZSAxMTogLyogY3piICovCkBAIC04NjEzLDYgKzg2Mzks MTkgQEAgc3RhdGljIHZvaWQgZGlzYXNfdGh1bWJfaW5zbihDUFVTdGF0ZSAqZW52LCBEaXNhc0Nv bnRleHQgKnMpCiAgICAgICAgIC8qIGxvYWQvc3RvcmUgbXVsdGlwbGUgKi8KICAgICAgICAgcm4g PSAoaW5zbiA+PiA4KSAmIDB4NzsKICAgICAgICAgYWRkciA9IGxvYWRfcmVnKHMsIHJuKTsKKyAg ICAgICAgaWYgKGFybV9mZWF0dXJlKGVudiwgQVJNX0ZFQVRVUkVfQUJPUlRfQlUpICYmIChpbnNu ICYgKDEgPDwgcm4pKSA9PSAwKSB7CisgICAgICAgICAgICAvKiBiYXNlLXVwZGF0ZWQgYWJvcnQg bW9kZWw6IHVwZGF0ZSBiYXNlIHJlZ2lzdGVyCisgICAgICAgICAgICAgICBiZWZvcmUgYW4gYWJv cnQgY2FuIGhhcHBlbiAqLworICAgICAgICAgICAgY3JlbWVudCA9IDA7CisgICAgICAgICAgICBm b3IgKGkgPSAwOyBpIDwgODsgaSsrKSB7CisgICAgICAgICAgICAgICAgaWYgKGluc24gJiAoMSA8 PCBpKSkgeworICAgICAgICAgICAgICAgICAgICBjcmVtZW50ICs9IDQ7CisgICAgICAgICAgICAg ICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgdG1wID0gbmV3X3RtcCgpOworICAgICAg ICAgICAgdGNnX2dlbl9hZGRpX2kzMih0bXAsIGFkZHIsIGNyZW1lbnQpOworICAgICAgICAgICAg c3RvcmVfcmVnKHMsIHJuLCB0bXApOworICAgICAgICB9CiAgICAgICAgIGZvciAoaSA9IDA7IGkg PCA4OyBpKyspIHsKICAgICAgICAgICAgIGlmIChpbnNuICYgKDEgPDwgaSkpIHsKICAgICAgICAg ICAgICAgICBpZiAoaW5zbiAmICgxIDw8IDExKSkgewpAQCAtODYyOSw3ICs4NjY4LDcgQEAgc3Rh dGljIHZvaWQgZGlzYXNfdGh1bWJfaW5zbihDUFVTdGF0ZSAqZW52LCBEaXNhc0NvbnRleHQgKnMp CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICAgICAgLyogQmFzZSByZWdpc3RlciB3cml0 ZWJhY2suICAqLwotICAgICAgICBpZiAoKGluc24gJiAoMSA8PCBybikpID09IDApIHsKKyAgICAg ICAgaWYgKCFhcm1fZmVhdHVyZShlbnYsIEFSTV9GRUFUVVJFX0FCT1JUX0JVKSAmJiAoaW5zbiAm ICgxIDw8IHJuKSkgPT0gMCkgewogICAgICAgICAgICAgc3RvcmVfcmVnKHMsIHJuLCBhZGRyKTsK ICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIGRlYWRfdG1wKGFkZHIpOwotLSAKMS42LjMu bXN5c2dpdC4wCgo= --0016e655991acfef14046c67d345--