From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 121881 invoked by alias); 5 Jul 2017 12:15:53 -0000 Mailing-List: contact newlib-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: newlib-owner@sourceware.org Received: (qmail 121475 invoked by uid 89); 5 Jul 2017 12:15:19 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-25.5 required=5.0 tests=AWL,BAYES_00,GIT_PATCH_0,GIT_PATCH_1,GIT_PATCH_2,GIT_PATCH_3,RCVD_IN_DNSWL_NONE,SPF_HELO_PASS,SPF_PASS autolearn=ham version=3.3.2 spammy= X-HELO: EUR03-VE1-obe.outbound.protection.outlook.com Received: from mail-eopbgr50043.outbound.protection.outlook.com (HELO EUR03-VE1-obe.outbound.protection.outlook.com) (40.107.5.43) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Wed, 05 Jul 2017 12:15:04 +0000 Received: from VI1PR0801MB2031.eurprd08.prod.outlook.com (10.173.74.140) by DB6PR0802MB2615.eurprd08.prod.outlook.com (10.172.252.20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1220.11; Wed, 5 Jul 2017 12:15:00 +0000 Received: from VI1PR0801MB2031.eurprd08.prod.outlook.com ([fe80::a9ee:7f10:b6a1:339a]) by VI1PR0801MB2031.eurprd08.prod.outlook.com ([fe80::a9ee:7f10:b6a1:339a%18]) with mapi id 15.01.1220.018; Wed, 5 Jul 2017 12:15:00 +0000 From: Tamar Christina To: "newlib@sourceware.org" CC: nd , Richard Earnshaw , "Marcus Shawcroft" Subject: Re: [PATCH][Newlib][libgloss][AArch64] - Semihosting v2 AArch64 implementation (5 / 5) Date: Wed, 05 Jul 2017 12:15:00 -0000 Message-ID: References: In-Reply-To: authentication-results: sourceware.org; dkim=none (message not signed) header.d=none;sourceware.org; dmarc=none action=none header.from=arm.com; x-ms-publictraffictype: Email x-microsoft-exchange-diagnostics: 1;DB6PR0802MB2615;7:eogCRzmqpGLFTHv5pssHfseX4IRSVQSp/Fw5vbfHypaR7i5NYIHeRlyLQ0eSmjW9KQCW3JGF4lCYfSn9jm9dyOwv424nIk1Kdxg5GafTCUaxG1CzGO/IDKNuKa/mErpARr8tJxePdisXsPMdbtMjha6U9O4PrUwg9+HfOemfZ3veqG9O8myoOUaz1OdQuIBFT3SzTMuF/lq8Pjx3P8icBbtzDI8H9y8eCnwtRdjQBw1hKqqNW9iObtPo9AonnsiFyRW5rMYEmLEkWuNbzjnKq0D0caWDCpK4utxKm53wl8Xo8wKoH3KQYZZWzVpDjxA6FhEmetmKkfb2op94DOxzV+tpk8LllsYB/2VD8j0GmkpRV5lIv7JNOHBc14FpM//OQqIg+bcdecXiGbUsBeV5KMBaKlkElLt5x5TtHjZ+9s8qdJJgqVJb99MbFJ80DXo8VRBlwsN98mtAFqn0jzttK+3qLtnnS0kKYxbpcfv0qAWqr/7vWDDPEbIIumTGGNNvHZvvoRvSbYCJGiQW3C19n6gFfh03Riq0f3fqAmCepW5a225wPxtY+TOBu4dz+gRlqUzlDLZ/cU4jqFag/lM/+krVnvIW4P7GMZEgoaq7QqoqGSIxJP1mPoja4yhoZifjeOqVcHm+ZX0uJHnebWbvxOv6WQLgaa8+XPD5tejdhY8wPEmK5hCaDteqSvlxSKy8hkzqFzgs7vBlwckjXLm4onL4ZymFLtiqvi/ectoel1iOLyKAHIuVkKeZx/nwcHhQswcrZ7tAwKc6YxVRWZ1iK+Gyn0n4rUkMOmp3d0r5DUw= x-ms-office365-filtering-correlation-id: 104af76e-bf9c-4788-b66e-08d4c39f758f x-ms-office365-filtering-ht: Tenant x-microsoft-antispam: UriScan:;BCL:0;PCL:0;RULEID:(300000500095)(300135000095)(300000501095)(300135300095)(22001)(300000502095)(300135100095)(2017030254075)(48565401081)(300000503095)(300135400095)(2017052603031)(49563074)(201703131423075)(201703031133081)(300000504095)(300135200095)(300000505095)(300135600095)(300000506095)(300135500095);SRVR:DB6PR0802MB2615; x-ms-traffictypediagnostic: DB6PR0802MB2615: nodisclaimer: True x-microsoft-antispam-prvs: x-exchange-antispam-report-test: UriScan:(180628864354917)(133145235818549)(236129657087228); x-exchange-antispam-report-cfa-test: BCL:0;PCL:0;RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(102415395)(6040450)(601004)(2401047)(8121501046)(5005006)(10201501046)(93006095)(93001095)(100000703101)(100105400095)(3002001)(6055026)(6041248)(20161123560025)(20161123555025)(20161123564025)(20161123558100)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123562025)(6072148)(100000704101)(100105200095)(100000705101)(100105500095);SRVR:DB6PR0802MB2615;BCL:0;PCL:0;RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095);SRVR:DB6PR0802MB2615; x-forefront-prvs: 0359162B6D x-forefront-antispam-report: SFV:NSPM;SFS:(10009020)(6009001)(39840400002)(39850400002)(39400400002)(39450400003)(39410400002)(39860400002)(53754006)(377454003)(377424004)(7736002)(1730700003)(478600001)(6436002)(8676002)(6506006)(76176999)(81166006)(5660300001)(54356999)(5250100002)(50986999)(99936001)(3280700002)(229853002)(4326008)(102836003)(305945005)(33656002)(110136004)(3660700001)(2900100001)(86362001)(3846002)(6116002)(53546010)(38730400002)(2906002)(8936002)(189998001)(14454004)(6246003)(966005)(66066001)(99286003)(5640700003)(55016002)(74316002)(72206003)(54906002)(6306002)(25786009)(53936002)(2501003)(9686003)(7696004)(2351001)(2950100002)(6916009);DIR:OUT;SFP:1101;SCL:1;SRVR:DB6PR0802MB2615;H:VI1PR0801MB2031.eurprd08.prod.outlook.com;FPR:;SPF:None;MLV:sfv;LANG:en; spamdiagnosticoutput: 1:99 spamdiagnosticmetadata: NSPM Content-Type: multipart/mixed; boundary="_002_VI1PR0801MB2031F76C9BF4567BAEAF3FBFFFD40VI1PR0801MB2031_" MIME-Version: 1.0 X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-originalarrivaltime: 05 Jul 2017 12:15:00.3699 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: f34e5979-57d9-4aaa-ad4d-b122a662184d X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB6PR0802MB2615 X-IsSubscribed: yes X-SW-Source: 2017/txt/msg00565.txt.bz2 --_002_VI1PR0801MB2031F76C9BF4567BAEAF3FBFFFD40VI1PR0801MB2031_ Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Content-length: 1538 Hi All, resubmitting these as git-am patches. Thanks, Tamar ________________________________________ From: newlib-owner@sourceware.org on behalf o= f Tamar Christina Sent: Monday, July 3, 2017 5:55:38 PM To: newlib@sourceware.org Cc: nd; Richard Earnshaw; Marcus Shawcroft Subject: [PATCH][Newlib][libgloss][AArch64] - Semihosting v2 AArch64 implem= entation (5 / 5) Hi All, This patch adds support for Semihosting v2 support for ARM in libgloss. Semihosting v2 changes are documented here: https://developer.arm.com/docs/100863/latest/ The biggest change is the addition of an extensions mechanism to add more extensions in the future. Regression tested on aarch64-none-elf and no regressions. OK for master? PS. I don't have commmit rights so if OK can someone apply for me? Thanks, Tamar libgloss/aarch64/ 2017-07-03 Tamar Christina * _kill.c (_kill): Add exit code reporting. * _exit.c (_exit): Likewise. * svc.h (AngelSVC_Reason_IsError): New. (AngelSVC_Reason_ReportExceptionExtended): New. (AngelSVC_Reason_Elapsed, AngelSVC_Reason_TickFreq): New. (NUM_SHFB_MAGIC, SHFB_MAGIC_0, SHFB_MAGIC_2, SHFB_MAGIC_3): New. (SH_EXT_EXIT_EXTENDED_BITNUM, SH_EXT_STDOUT_STDERR_BITNUM): New. * syscalls.c (get_semihosting_exts, has_ext_exit_extended): New. (has_ext_stdout_stderr, initialise_semihosting_exts): New. (initialise_monitor_handles): Check for extension. --_002_VI1PR0801MB2031F76C9BF4567BAEAF3FBFFFD40VI1PR0801MB2031_ Content-Type: text/x-patch; name="0005-Add-support-for-Semihosting-v2-support-for-AArch64-i.patch" Content-Description: 0005-Add-support-for-Semihosting-v2-support-for-AArch64-i.patch Content-Disposition: attachment; filename="0005-Add-support-for-Semihosting-v2-support-for-AArch64-i.patch"; size=9589; creation-date="Wed, 05 Jul 2017 12:14:55 GMT"; modification-date="Wed, 05 Jul 2017 12:14:55 GMT" Content-Transfer-Encoding: base64 Content-length: 13002 RnJvbSBhZGI5MzRiN2E0ZmU0ZDdmODU5MzIwNzQ2OTUyNDg1NzkzMTUzYzI0 IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBUYW1hciBDaHJpc3Rp bmEgPHRhbWFyLmNocmlzdGluYUBhcm0uY29tPgpEYXRlOiBXZWQsIDUgSnVs IDIwMTcgMTM6MDQ6NTkgKzAxMDAKU3ViamVjdDogW1BBVENIIDUvNV0gQWRk IHN1cHBvcnQgZm9yIFNlbWlob3N0aW5nIHYyIHN1cHBvcnQgZm9yIEFBcmNo NjQgaW4KIGxpYmdsb3NzLgoKU2VtaWhvc3RpbmcgdjIgY2hhbmdlcyBhcmUg ZG9jdW1lbnRlZCBoZXJlOgpodHRwczovL2RldmVsb3Blci5hcm0uY29tL2Rv Y3MvMTAwODYzL2xhdGVzdC8KClRoZSBiaWdnZXN0IGNoYW5nZSBpcyB0aGUg YWRkaXRpb24gb2YgYW4gZXh0ZW5zaW9ucyBtZWNoYW5pc20KdG8gYWRkIG1v cmUgZXh0ZW5zaW9ucyBpbiB0aGUgZnV0dXJlLgoKU2lnbmVkLW9mZi1ieTog VGFtYXIgQ2hyaXN0aW5hIDx0YW1hci5jaHJpc3RpbmFAYXJtLmNvbT4KLS0t CiBsaWJnbG9zcy9hYXJjaDY0L19leGl0LmMgICAgfCAgIDggKystCiBsaWJn bG9zcy9hYXJjaDY0L19raWxsLmMgICAgfCAgIDggKystCiBsaWJnbG9zcy9h YXJjaDY0L3N2Yy5oICAgICAgfCAgNzggKysrKysrKysrKysrKysrKy0tLS0t LS0tLQogbGliZ2xvc3MvYWFyY2g2NC9zeXNjYWxscy5jIHwgMTM5ICsrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tCiA0IGZp bGVzIGNoYW5nZWQsIDE4NiBpbnNlcnRpb25zKCspLCA0NyBkZWxldGlvbnMo LSkKCmRpZmYgLS1naXQgYS9saWJnbG9zcy9hYXJjaDY0L19leGl0LmMgYi9s aWJnbG9zcy9hYXJjaDY0L19leGl0LmMKaW5kZXggYTRmOWQ5ZWI1Li4xYTZi MDE1MzIgMTAwNjQ0Ci0tLSBhL2xpYmdsb3NzL2FhcmNoNjQvX2V4aXQuYwor KysgYi9saWJnbG9zcy9hYXJjaDY0L19leGl0LmMKQEAgLTM2LDYgKzM2LDEy IEBAIF9leGl0IChpbnQgc3RhdHVzKQogICAgICAgcGFyYW1fYmxvY2tfdCBi bG9ja1syXTsKICAgICAgIGJsb2NrWzBdID0gQURQX1N0b3BwZWRfQXBwbGlj YXRpb25FeGl0OwogICAgICAgYmxvY2tbMV0gPSBzdGF0dXM7Ci0gICAgICBk b19BbmdlbFNWQyAoQW5nZWxTVkNfUmVhc29uX1JlcG9ydEV4Y2VwdGlvbiwg YmxvY2spOworCisjaWYgU0VNSUhPU1RfVjIKKyAgICAgIGlmIChfaGFzX2V4 dF9leGl0X2V4dGVuZGVkICgpKQorCSBkb19BbmdlbFNWQyAoQW5nZWxTVkNf UmVhc29uX1JlcG9ydEV4Y2VwdGlvbkV4dGVuZGVkLCBibG9jayk7CisgICAg ICBlbHNlCisjZW5kaWYKKwkgZG9fQW5nZWxTVkMgKEFuZ2VsU1ZDX1JlYXNv bl9SZXBvcnRFeGNlcHRpb24sIGJsb2NrKTsKICAgICB9CiB9CmRpZmYgLS1n aXQgYS9saWJnbG9zcy9hYXJjaDY0L19raWxsLmMgYi9saWJnbG9zcy9hYXJj aDY0L19raWxsLmMKaW5kZXggYWYzM2YwN2IwLi4xZDQyMzcxZjAgMTAwNjQ0 Ci0tLSBhL2xpYmdsb3NzL2FhcmNoNjQvX2tpbGwuYworKysgYi9saWJnbG9z cy9hYXJjaDY0L19raWxsLmMKQEAgLTQ1LDUgKzQ1LDExIEBAIF9raWxsIChp bnQgcGlkLCBpbnQgc2lnKQogCiAgIGJsb2NrWzBdID0gQURQX1N0b3BwZWRf UnVuVGltZUVycm9yOwogICBibG9ja1sxXSA9IHNpZzsKLSAgcmV0dXJuIGRv X0FuZ2VsU1ZDIChBbmdlbFNWQ19SZWFzb25fUmVwb3J0RXhjZXB0aW9uLCBi bG9jayk7CisKKyNpZiBTRU1JSE9TVF9WMgorICBpZiAoX2hhc19leHRfZXhp dF9leHRlbmRlZCAoKSkKKyAgICByZXR1cm4gZG9fQW5nZWxTVkMgKEFuZ2Vs U1ZDX1JlYXNvbl9SZXBvcnRFeGNlcHRpb25FeHRlbmRlZCwgYmxvY2spOwor ICBlbHNlCisjZW5kaWYKKyAgICByZXR1cm4gZG9fQW5nZWxTVkMgKEFuZ2Vs U1ZDX1JlYXNvbl9SZXBvcnRFeGNlcHRpb24sIGJsb2NrKTsKIH0KZGlmZiAt LWdpdCBhL2xpYmdsb3NzL2FhcmNoNjQvc3ZjLmggYi9saWJnbG9zcy9hYXJj aDY0L3N2Yy5oCmluZGV4IGZlMjQ5ZjA4YS4uNjBiZDAwZmNhIDEwMDY0NAot LS0gYS9saWJnbG9zcy9hYXJjaDY0L3N2Yy5oCisrKyBiL2xpYmdsb3NzL2Fh cmNoNjQvc3ZjLmgKQEAgLTIzLDM3ICsyMyw1OSBAQAogIE5FR0xJR0VOQ0Ug T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV U0UgT0YgVEhJUwogIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAqLwogCisjaW5jbHVkZSA8 X2Fuc2kuaD4KKwogLyogTm93IHRoZSBTV0kgbnVtYmVycyBhbmQgcmVhc29u IGNvZGVzIGZvciBSREkgKEFuZ2VsKSBtb25pdG9ycy4gICovCi0jZGVmaW5l IEFuZ2VsU1ZDCQkJMHhGMDAwCi0jZGVmaW5lIEFuZ2VsU1ZDSW5zbgkJCSJo bHQiCi0jZGVmaW5lIEFuZ2VsU1ZDQXNtCQkJaGx0CisjZGVmaW5lIEFuZ2Vs U1ZDCQkJCTB4RjAwMAorI2RlZmluZSBBbmdlbFNWQ0luc24JCQkJImhsdCIK KyNkZWZpbmUgQW5nZWxTVkNBc20JCQkJaGx0CiAKIC8qIFRoZSByZWFzb24g Y29kZXM6ICAqLwotI2RlZmluZSBBbmdlbFNWQ19SZWFzb25fT3BlbgkJMHgw MQotI2RlZmluZSBBbmdlbFNWQ19SZWFzb25fQ2xvc2UJCTB4MDIKLSNkZWZp bmUgQW5nZWxTVkNfUmVhc29uX1dyaXRlQwkJMHgwMwotI2RlZmluZSBBbmdl bFNWQ19SZWFzb25fV3JpdGUwCQkweDA0Ci0jZGVmaW5lIEFuZ2VsU1ZDX1Jl YXNvbl9Xcml0ZQkJMHgwNQotI2RlZmluZSBBbmdlbFNWQ19SZWFzb25fUmVh ZAkJMHgwNgotI2RlZmluZSBBbmdlbFNWQ19SZWFzb25fUmVhZEMJCTB4MDcK LSNkZWZpbmUgQW5nZWxTVkNfUmVhc29uX0lzVFRZCQkweDA5Ci0jZGVmaW5l IEFuZ2VsU1ZDX1JlYXNvbl9TZWVrCQkweDBBCi0jZGVmaW5lIEFuZ2VsU1ZD X1JlYXNvbl9GTGVuCQkweDBDCi0jZGVmaW5lIEFuZ2VsU1ZDX1JlYXNvbl9U bXBOYW0JCTB4MEQKLSNkZWZpbmUgQW5nZWxTVkNfUmVhc29uX1JlbW92ZQkJ MHgwRQotI2RlZmluZSBBbmdlbFNWQ19SZWFzb25fUmVuYW1lCQkweDBGCi0j ZGVmaW5lIEFuZ2VsU1ZDX1JlYXNvbl9DbG9jawkJMHgxMAotI2RlZmluZSBB bmdlbFNWQ19SZWFzb25fVGltZQkJMHgxMQotI2RlZmluZSBBbmdlbFNWQ19S ZWFzb25fU3lzdGVtCQkweDEyCi0jZGVmaW5lIEFuZ2VsU1ZDX1JlYXNvbl9F cnJubwkJMHgxMwotI2RlZmluZSBBbmdlbFNWQ19SZWFzb25fR2V0Q21kTGlu ZQkweDE1Ci0jZGVmaW5lIEFuZ2VsU1ZDX1JlYXNvbl9IZWFwSW5mbwkweDE2 Ci0jZGVmaW5lIEFuZ2VsU1ZDX1JlYXNvbl9FbnRlclNWQwkweDE3Ci0jZGVm aW5lIEFuZ2VsU1ZDX1JlYXNvbl9SZXBvcnRFeGNlcHRpb24gMHgxOAotI2Rl ZmluZSBBbmdlbFNWQ19SZWFzb25fU3luY0NhY2hlUmFuZ2UJMHgxOQotI2Rl ZmluZSBBbmdlbFNWQ19SZWFzb25fRWxhcHNlZCAgICAgICAgIDB4MzAKLSNk ZWZpbmUgQURQX1N0b3BwZWRfQXBwbGljYXRpb25FeGl0CSgoMiA8PCAxNikg KyAzOCkKLSNkZWZpbmUgQURQX1N0b3BwZWRfUnVuVGltZUVycm9yCSgoMiA8 PCAxNikgKyAzNSkKKyNkZWZpbmUgQW5nZWxTVkNfUmVhc29uX09wZW4JCQkw eDAxCisjZGVmaW5lIEFuZ2VsU1ZDX1JlYXNvbl9DbG9zZQkJCTB4MDIKKyNk ZWZpbmUgQW5nZWxTVkNfUmVhc29uX1dyaXRlQwkJCTB4MDMKKyNkZWZpbmUg QW5nZWxTVkNfUmVhc29uX1dyaXRlMAkJCTB4MDQKKyNkZWZpbmUgQW5nZWxT VkNfUmVhc29uX1dyaXRlCQkJMHgwNQorI2RlZmluZSBBbmdlbFNWQ19SZWFz b25fUmVhZAkJCTB4MDYKKyNkZWZpbmUgQW5nZWxTVkNfUmVhc29uX1JlYWRD CQkJMHgwNworI2RlZmluZSBBbmdlbFNWQ19SZWFzb25fSXNFcnJvcgkJCTB4 MDgKKyNkZWZpbmUgQW5nZWxTVkNfUmVhc29uX0lzVFRZCQkJMHgwOQorI2Rl ZmluZSBBbmdlbFNWQ19SZWFzb25fU2VlawkJCTB4MEEKKyNkZWZpbmUgQW5n ZWxTVkNfUmVhc29uX0ZMZW4JCQkweDBDCisjZGVmaW5lIEFuZ2VsU1ZDX1Jl YXNvbl9UbXBOYW0JCQkweDBECisjZGVmaW5lIEFuZ2VsU1ZDX1JlYXNvbl9S ZW1vdmUJCQkweDBFCisjZGVmaW5lIEFuZ2VsU1ZDX1JlYXNvbl9SZW5hbWUJ CQkweDBGCisjZGVmaW5lIEFuZ2VsU1ZDX1JlYXNvbl9DbG9jawkJCTB4MTAK KyNkZWZpbmUgQW5nZWxTVkNfUmVhc29uX1RpbWUJCQkweDExCisjZGVmaW5l IEFuZ2VsU1ZDX1JlYXNvbl9TeXN0ZW0JCQkweDEyCisjZGVmaW5lIEFuZ2Vs U1ZDX1JlYXNvbl9FcnJubwkJCTB4MTMKKyNkZWZpbmUgQW5nZWxTVkNfUmVh c29uX0dldENtZExpbmUJCTB4MTUKKyNkZWZpbmUgQW5nZWxTVkNfUmVhc29u X0hlYXBJbmZvCQkweDE2CisjZGVmaW5lIEFuZ2VsU1ZDX1JlYXNvbl9FbnRl clNWQwkJMHgxNworI2RlZmluZSBBbmdlbFNWQ19SZWFzb25fUmVwb3J0RXhj ZXB0aW9uIAkweDE4CisjZGVmaW5lIEFuZ2VsU1ZDX1JlYXNvbl9TeW5jQ2Fj aGVSYW5nZQkJMHgxOQorI2RlZmluZSBBbmdlbFNWQ19SZWFzb25fUmVwb3J0 RXhjZXB0aW9uRXh0ZW5kZWQgMHgyMAorI2RlZmluZSBBbmdlbFNWQ19SZWFz b25fRWxhcHNlZAkJCTB4MzAKKyNkZWZpbmUgQW5nZWxTVkNfUmVhc29uX1Rp Y2tGcmVxCQkweDMxCisjZGVmaW5lIEFEUF9TdG9wcGVkX0FwcGxpY2F0aW9u RXhpdAkJKCgyIDw8IDE2KSArIDM4KQorI2RlZmluZSBBRFBfU3RvcHBlZF9S dW5UaW1lRXJyb3IJCSgoMiA8PCAxNikgKyAzNSkKKworLyogU2VtaWhvc3Rp bmcgZmVhdHVyZSBtYWdpYyBudW1iZXJzLiAgKi8KKyNkZWZpbmUgTlVNX1NI RkJfTUFHSUMJCQk0CisjZGVmaW5lIFNIRkJfTUFHSUNfMAkJCTB4NTMKKyNk ZWZpbmUgU0hGQl9NQUdJQ18xCQkJMHg0OAorI2RlZmluZSBTSEZCX01BR0lD XzIJCQkweDQ2CisjZGVmaW5lIFNIRkJfTUFHSUNfMwkJCTB4NDIKKworLyog U2VtaWhvc3RpbmcgZXh0ZW5zaW9ucy4gICovCisjZGVmaW5lIFNIX0VYVF9F WElUX0VYVEVOREVEX0JJVE5VTQkweDAKKyNkZWZpbmUgU0hfRVhUX1NURE9V VF9TVERFUlJfQklUTlVNCTB4MQorCisjaWYgIWRlZmluZWQgKF9fQVNTRU1C TEVSX18pCitleHRlcm4gaW50IF9nZXRfc2VtaWhvc3RpbmdfZXh0cyBfUEFS QU1TICgoY2hhciosIGludCwgaW50KSk7CitleHRlcm4gaW50IF9oYXNfZXh0 X2V4aXRfZXh0ZW5kZWQgX1BBUkFNUyAoKHZvaWQpKTsKK2V4dGVybiBpbnQg X2hhc19leHRfc3Rkb3V0X3N0ZGVyciBfUEFSQU1TICgodm9pZCkpOworI2Vu ZGlmCiAKICNpZiBkZWZpbmVkKEFSTV9SRElfTU9OSVRPUikgJiYgIWRlZmlu ZWQoX19BU1NFTUJMRVJfXykKIApkaWZmIC0tZ2l0IGEvbGliZ2xvc3MvYWFy Y2g2NC9zeXNjYWxscy5jIGIvbGliZ2xvc3MvYWFyY2g2NC9zeXNjYWxscy5j CmluZGV4IDA1OGNlZjVjYi4uYWYyMDZhMWQ0IDEwMDY0NAotLS0gYS9saWJn bG9zcy9hYXJjaDY0L3N5c2NhbGxzLmMKKysrIGIvbGliZ2xvc3MvYWFyY2g2 NC9zeXNjYWxscy5jCkBAIC03Niw2ICs3Niw5IEBAIHN0YXRpYyBpbnQgY2hl Y2tlcnJvciBfUEFSQU1TICgoaW50KSk7CiBzdGF0aWMgaW50IGVycm9yIF9Q QVJBTVMgKChpbnQpKTsKIHN0YXRpYyBpbnQgZ2V0X2Vycm5vIF9QQVJBTVMg KCh2b2lkKSk7CiAKKy8qIFNlbWlob3N0aW5nIHV0aWxpdGllcy4gICovCitz dGF0aWMgdm9pZCBpbml0aWFsaXNlX3NlbWlob3N0aW5nX2V4dHMgX1BBUkFN UyAoKHZvaWQpKTsKKwogLyogU3RydWN0IHVzZWQgdG8ga2VlcCB0cmFjayBv ZiB0aGUgZmlsZSBwb3NpdGlvbiwganVzdCBzbyB3ZQogICAgY2FuIGltcGxl bWVudCBmc2VlayhmaCx4LFNFRUtfQ1VSKS4gICovCiBzdHJ1Y3QgZmRlbnQK QEAgLTEzMCw2ICsxMzMsOSBAQCBzdGF0aWMgaW50IG1vbml0b3Jfc3RkaW47 CiBzdGF0aWMgaW50IG1vbml0b3Jfc3Rkb3V0Owogc3RhdGljIGludCBtb25p dG9yX3N0ZGVycjsKIAorc3RhdGljIGludCBzdXBwb3J0c19leHRfZXhpdF9l eHRlbmRlZCA9IC0xOworc3RhdGljIGludCBzdXBwb3J0c19leHRfc3Rkb3V0 X3N0ZGVyciA9IC0xOworCiAvKiBSZXR1cm4gYSBwb2ludGVyIHRvIHRoZSBz dHJ1Y3R1cmUgYXNzb2NpYXRlZCB3aXRoCiAgICB0aGUgdXNlciBmaWxlIGRl c2NyaXB0b3IgZmQuICovCiBzdGF0aWMgc3RydWN0IGZkZW50ICoKQEAgLTE4 OCwzMiArMTk0LDEzMSBAQCBpbml0aWFsaXNlX21vbml0b3JfaGFuZGxlcyAo dm9pZCkKICAgYmxvY2tbMV0gPSAwOwkJCS8qIG1vZGUgInIiICovCiAgIG1v bml0b3Jfc3RkaW4gPSBkb19BbmdlbFNWQyAoQW5nZWxTVkNfUmVhc29uX09w ZW4sIGJsb2NrKTsKIAotICBibG9ja1swXSA9IFBPSU5URVJfVE9fUEFSQU1f QkxPQ0tfVCAoIjp0dCIpOwotICBibG9ja1syXSA9IDM7CQkJLyogbGVuZ3Ro IG9mIGZpbGVuYW1lICovCi0gIGJsb2NrWzFdID0gNDsJCQkvKiBtb2RlICJ3 IiAqLwotICBtb25pdG9yX3N0ZG91dCA9IGRvX0FuZ2VsU1ZDIChBbmdlbFNW Q19SZWFzb25fT3BlbiwgYmxvY2spOworICBmb3IgKGkgPSAwOyBpIDwgTUFY X09QRU5fRklMRVM7IGkrKykKKyAgICBvcGVuZmlsZXNbaV0uaGFuZGxlID0g LTE7OwogCi0gIGJsb2NrWzBdID0gUE9JTlRFUl9UT19QQVJBTV9CTE9DS19U ICgiOnR0Iik7Ci0gIGJsb2NrWzJdID0gMzsJCQkvKiBsZW5ndGggb2YgZmls ZW5hbWUgKi8KLSAgYmxvY2tbMV0gPSA4OwkJCS8qIG1vZGUgImEiICovCi0g IG1vbml0b3Jfc3RkZXJyID0gZG9fQW5nZWxTVkMgKEFuZ2VsU1ZDX1JlYXNv bl9PcGVuLCBibG9jayk7CisgIGlmIChfaGFzX2V4dF9zdGRvdXRfc3RkZXJy ICgpKQorICB7CisgICAgYmxvY2tbMF0gPSBQT0lOVEVSX1RPX1BBUkFNX0JM T0NLX1QgKCI6dHQiKTsKKyAgICBibG9ja1syXSA9IDM7CQkJLyogbGVuZ3Ro IG9mIGZpbGVuYW1lICovCisgICAgYmxvY2tbMV0gPSA0OwkJCS8qIG1vZGUg InciICovCisgICAgbW9uaXRvcl9zdGRvdXQgPSBkb19BbmdlbFNWQyAoQW5n ZWxTVkNfUmVhc29uX09wZW4sIGJsb2NrKTsKKworICAgIGJsb2NrWzBdID0g UE9JTlRFUl9UT19QQVJBTV9CTE9DS19UICgiOnR0Iik7CisgICAgYmxvY2tb Ml0gPSAzOwkJCS8qIGxlbmd0aCBvZiBmaWxlbmFtZSAqLworICAgIGJsb2Nr WzFdID0gODsJCQkvKiBtb2RlICJhIiAqLworICAgIG1vbml0b3Jfc3RkZXJy ID0gZG9fQW5nZWxTVkMgKEFuZ2VsU1ZDX1JlYXNvbl9PcGVuLCBibG9jayk7 CisgIH0KIAogICAvKiBJZiB3ZSBmYWlsZWQgdG8gb3BlbiBzdGRlcnIsIHJl ZGlyZWN0IHRvIHN0ZG91dC4gKi8KICAgaWYgKG1vbml0b3Jfc3RkZXJyID09 IC0xKQogICAgIG1vbml0b3Jfc3RkZXJyID0gbW9uaXRvcl9zdGRvdXQ7CiAK LSAgZm9yIChpID0gMDsgaSA8IE1BWF9PUEVOX0ZJTEVTOyBpKyspCi0gICAg b3BlbmZpbGVzW2ldLmhhbmRsZSA9IC0xOwotCiAgIG9wZW5maWxlc1swXS5o YW5kbGUgPSBtb25pdG9yX3N0ZGluOwogICBvcGVuZmlsZXNbMF0uZmxhZ3Mg PSBfRlJFQUQ7CiAgIG9wZW5maWxlc1swXS5wb3MgPSAwOwotICBvcGVuZmls ZXNbMV0uaGFuZGxlID0gbW9uaXRvcl9zdGRvdXQ7Ci0gIG9wZW5maWxlc1sw XS5mbGFncyA9IF9GV1JJVEU7Ci0gIG9wZW5maWxlc1sxXS5wb3MgPSAwOwot ICBvcGVuZmlsZXNbMl0uaGFuZGxlID0gbW9uaXRvcl9zdGRlcnI7Ci0gIG9w ZW5maWxlc1swXS5mbGFncyA9IF9GV1JJVEU7Ci0gIG9wZW5maWxlc1syXS5w b3MgPSAwOworCisgIGlmIChfaGFzX2V4dF9zdGRvdXRfc3RkZXJyICgpKQor ICB7CisgICAgb3BlbmZpbGVzWzFdLmhhbmRsZSA9IG1vbml0b3Jfc3Rkb3V0 OworICAgIG9wZW5maWxlc1swXS5mbGFncyA9IF9GV1JJVEU7CisgICAgb3Bl bmZpbGVzWzFdLnBvcyA9IDA7CisgICAgb3BlbmZpbGVzWzJdLmhhbmRsZSA9 IG1vbml0b3Jfc3RkZXJyOworICAgIG9wZW5maWxlc1swXS5mbGFncyA9IF9G V1JJVEU7CisgICAgb3BlbmZpbGVzWzJdLnBvcyA9IDA7CisgIH0KK30KKwor aW50CitfaGFzX2V4dF9leGl0X2V4dGVuZGVkICh2b2lkKQoreworICBpZiAo c3VwcG9ydHNfZXh0X2V4aXRfZXh0ZW5kZWQgPCAwKQorICB7CisgICAgaW5p dGlhbGlzZV9zZW1paG9zdGluZ19leHRzICgpOworICB9CisKKyAgcmV0dXJu IHN1cHBvcnRzX2V4dF9leGl0X2V4dGVuZGVkOworfQorCitpbnQKK19oYXNf ZXh0X3N0ZG91dF9zdGRlcnIgKHZvaWQpCit7CisgIGlmIChzdXBwb3J0c19l eHRfc3Rkb3V0X3N0ZGVyciA8IDApCisgIHsKKyAgICBpbml0aWFsaXNlX3Nl bWlob3N0aW5nX2V4dHMgKCk7CisgIH0KKworICByZXR1cm4gc3VwcG9ydHNf ZXh0X3N0ZG91dF9zdGRlcnI7Cit9CisKK3N0YXRpYyB2b2lkCitpbml0aWFs aXNlX3NlbWlob3N0aW5nX2V4dHMgKHZvaWQpCit7CisgIHN1cHBvcnRzX2V4 dF9leGl0X2V4dGVuZGVkID0gMDsKKyAgc3VwcG9ydHNfZXh0X3N0ZG91dF9z dGRlcnIgPSAxOworCisjaWYgU0VNSUhPU1RfVjIKKyAgY2hhciBmZWF0dXJl c1sxXTsKKyAgaWYgKF9nZXRfc2VtaWhvc3RpbmdfZXh0cyAoZmVhdHVyZXMs IDAsIDEpID4gMCkKKyAgeworICAgICBzdXBwb3J0c19leHRfZXhpdF9leHRl bmRlZAorICAgICAgID0gZmVhdHVyZXNbMF0gJiAoMSA8PCBTSF9FWFRfRVhJ VF9FWFRFTkRFRF9CSVROVU0pOworICAgICBzdXBwb3J0c19leHRfc3Rkb3V0 X3N0ZGVycgorICAgICAgID0gZmVhdHVyZXNbMF0gJiAoMSA8PCBTSF9FWFRf U1RET1VUX1NUREVSUl9CSVROVU0pOworICB9CisjZW5kaWYKK30KKworaW50 CitfZ2V0X3NlbWlob3N0aW5nX2V4dHMgKGNoYXIqIGZlYXR1cmVzLCBpbnQg b2Zmc2V0LCBpbnQgbnVtKQoreworICBpbnQgZmQgPSBfb3BlbiAoIjpzZW1p aG9zdGluZy1mZWF0dXJlcyIsIE9fUkRPTkxZKTsKKyAgbWVtc2V0IChmZWF0 dXJlcywgMCwgbnVtKTsKKworICBpZiAoZmQgPT0gLTEpCisgIHsKKyAgICBy ZXR1cm4gLTE7CisgIH0KKworICBzdHJ1Y3QgZmRlbnQgKnBmZDsKKyAgcGZk ID0gZmluZHNsb3QgKGZkKTsKKworICBwYXJhbV9ibG9ja190IGJsb2NrWzFd OworICBibG9ja1swXSA9IHBmZC0+aGFuZGxlOworCisgIGludCBsZW4gPSBk b19BbmdlbFNWQyAoQW5nZWxTVkNfUmVhc29uX0ZMZW4sIGJsb2NrKTsKKwor ICBpZiAobGVuIDwgTlVNX1NIRkJfTUFHSUMKKyAgICAgIHx8IG51bSA+IChs ZW4gLSBOVU1fU0hGQl9NQUdJQykpCisgIHsKKyAgICAgX2Nsb3NlIChmZCk7 CisgICAgIHJldHVybiAtMTsKKyAgfQorCisgIGNoYXIgYnVmZmVyW05VTV9T SEZCX01BR0lDXTsKKyAgaW50IG5fcmVhZCA9IF9yZWFkIChmZCwgYnVmZmVy LCBOVU1fU0hGQl9NQUdJQyk7CisKKyAgaWYgKG5fcmVhZCA8IE5VTV9TSEZC X01BR0lDCisgICAgICB8fCBidWZmZXJbMF0gIT0gU0hGQl9NQUdJQ18wCisg ICAgICB8fCBidWZmZXJbMV0gIT0gU0hGQl9NQUdJQ18xCisgICAgICB8fCBi dWZmZXJbMl0gIT0gU0hGQl9NQUdJQ18yCisgICAgICB8fCBidWZmZXJbM10g IT0gU0hGQl9NQUdJQ18zKQorICB7CisgICAgIF9jbG9zZSAoZmQpOworICAg ICByZXR1cm4gLTE7CisgIH0KKworICBpZiAoX2xzZWVrIChmZCwgb2Zmc2V0 LCBTRUVLX0NVUikgPCAwKQorICB7CisgICAgIF9jbG9zZSAoZmQpOworICAg ICByZXR1cm4gLTE7CisgIH0KKworICBuX3JlYWQgPSBfcmVhZCAoZmQsIGZl YXR1cmVzLCBudW0pOworCisgIF9jbG9zZSAoZmQpOworCisgIHJldHVybiBj aGVja2Vycm9yIChuX3JlYWQpOwogfQogCiBzdGF0aWMgaW50Ci0tIAoyLjEz LjAKCg== --_002_VI1PR0801MB2031F76C9BF4567BAEAF3FBFFFD40VI1PR0801MB2031_--