From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 88230 invoked by alias); 3 Jul 2017 16:55:45 -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 88214 invoked by uid 89); 3 Jul 2017 16:55:43 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-25.2 required=5.0 tests=AWL,BAYES_00,GIT_PATCH_0,GIT_PATCH_1,GIT_PATCH_2,GIT_PATCH_3,KAM_LOTSOFHASH,RCVD_IN_DNSWL_NONE,SPF_HELO_PASS,SPF_PASS autolearn=ham version=3.3.2 spammy= X-HELO: EUR03-AM5-obe.outbound.protection.outlook.com Received: from mail-eopbgr30058.outbound.protection.outlook.com (HELO EUR03-AM5-obe.outbound.protection.outlook.com) (40.107.3.58) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Mon, 03 Jul 2017 16:55:41 +0000 Received: from VI1PR0801MB2031.eurprd08.prod.outlook.com (10.173.74.140) by DB6PR0802MB2613.eurprd08.prod.outlook.com (10.172.252.18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1220.11; Mon, 3 Jul 2017 16:55:38 +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.015; Mon, 3 Jul 2017 16:55:38 +0000 From: Tamar Christina To: "newlib@sourceware.org" CC: nd , Richard Earnshaw , "Marcus Shawcroft" Subject: [PATCH][Newlib][libgloss][AArch64] - Semihosting v2 AArch64 implementation (5 / 5) Date: Mon, 03 Jul 2017 16:55:00 -0000 Message-ID: authentication-results: arm.com; dkim=none (message not signed) header.d=none;arm.com; dmarc=none action=none header.from=arm.com; x-ms-publictraffictype: Email x-microsoft-exchange-diagnostics: 1;DB6PR0802MB2613;7:bs1JuDi32VjHiU/3fU8eYdmLdaAwYG75SMWHgNEnDHlVAIxQ+0J6aMcXnaBZgQ8pe/+hnuegj+j+3ae6/3qvPjsbVT28NVJiOJC2Qdebetp6dZ9gpcpv8cuMkXSbW/ocmWh6BQ6mMRNJ/A2LypfTFWooDsclb5nIpKeUcqcJy3N7pThQnz1Y5ud/cEdz8bpnPUeB333DyVuBFBKMQgOlt62HnWYj21P2Gg69wDGPf7trdZ41VXJcNeaQZRKd7M0PgeVsqeWE2RxWs6KC7TxX/9TUfw/42qR2D4Zd7itPWmPVJyxUsnJvf8BGBSSApUpGh/CrWooGiqrRkGNyEQhKfyZns/jqrVySxrmvavy616s7EBOo8GoIhGvRoIouFxvqMJlH4Fj/scGiUnEyorWgCEeGINTRquIUwYJo+lL/PtFx5ovlfuPlhA7JLTKcTgILBtOQuIRXM95Z74cfRVJSB46KLJi6XP5yHtZB2l3mQBHr8L1lFzPwMAzJlZIrDtY5AMRvgv29mjgD3j7Db47wks9x7Yjc9uvM/ds15I9F0nl8k9BuQUC5ZY3b6r5GyeQwKxnbbH4ouxerWkLYQgT3AIdTZyXni9kSl3aQ1RW8pbB2BAmmzvUuq3/5Xk9Fo1xevS2EejXL1zAc+c1ZZQJgkDkoCy0VEJZRskUcTKT1lesLk9zOAtARn4D+aTWIfWpJH4IW7NIxQ80yYy5vVH8M3QdfUngh/ZSHUvo/A+bzxgWJHOD5QQR0s2B60Q6xcGzw7ohLPd2T0KjujYmYjeYUFxk/s5c4n8lMbQqzyTA/pYk= x-ms-office365-filtering-correlation-id: 4fb8056f-abfd-4e52-2e1c-08d4c23454b9 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:DB6PR0802MB2613; x-ms-traffictypediagnostic: DB6PR0802MB2613: 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)(100000703101)(100105400095)(10201501046)(3002001)(93006095)(93001095)(6055026)(6041248)(20161123562025)(20161123564025)(20161123560025)(20161123555025)(20161123558100)(201703131423075)(201702281528075)(201703011903075)(201703061421075)(6072148)(100000704101)(100105200095)(100000705101)(100105500095);SRVR:DB6PR0802MB2613;BCL:0;PCL:0;RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095);SRVR:DB6PR0802MB2613; x-forefront-prvs: 035748864E x-forefront-antispam-report: SFV:NSPM;SFS:(10009020)(6009001)(39450400003)(39410400002)(39400400002)(39840400002)(39850400002)(39860400002)(53754006)(377424004)(5660300001)(81166006)(5250100002)(102836003)(3846002)(8676002)(3660700001)(2501003)(6116002)(305945005)(33656002)(189998001)(3280700002)(8936002)(14454004)(74316002)(2900100001)(2906002)(86362001)(99286003)(5640700003)(54356999)(6436002)(6506006)(4326008)(6306002)(9686003)(53936002)(110136004)(72206003)(38730400002)(7736002)(508600001)(966005)(99936001)(50986999)(55016002)(1730700003)(66066001)(25786009)(7696004)(6916009);DIR:OUT;SFP:1101;SCL:1;SRVR:DB6PR0802MB2613;H:VI1PR0801MB2031.eurprd08.prod.outlook.com;FPR:;SPF:None;MLV:sfv;LANG:en; spamdiagnosticoutput: 1:99 spamdiagnosticmetadata: NSPM Content-Type: multipart/mixed; boundary="_002_VI1PR0801MB2031043EAAA40ED39FB601D4FFD60VI1PR0801MB2031_" MIME-Version: 1.0 X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-originalarrivaltime: 03 Jul 2017 16:55:38.0655 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: f34e5979-57d9-4aaa-ad4d-b122a662184d X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB6PR0802MB2613 X-IsSubscribed: yes X-SW-Source: 2017/txt/msg00547.txt.bz2 --_002_VI1PR0801MB2031043EAAA40ED39FB601D4FFD60VI1PR0801MB2031_ Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Content-length: 1046 Hi All,=20 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_VI1PR0801MB2031043EAAA40ED39FB601D4FFD60VI1PR0801MB2031_ Content-Type: text/x-patch; name="semihosting-patch-5.patch" Content-Description: semihosting-patch-5.patch Content-Disposition: attachment; filename="semihosting-patch-5.patch"; size=9056; creation-date="Mon, 03 Jul 2017 16:48:47 GMT"; modification-date="Mon, 03 Jul 2017 16:48:47 GMT" Content-Transfer-Encoding: base64 Content-length: 12278 ZGlmZiAtLWdpdCBhL2xpYmdsb3NzL2FhcmNoNjQvX2V4aXQuYyBiL2xpYmds b3NzL2FhcmNoNjQvX2V4aXQuYwppbmRleCBhNGY5ZDllYjVlNDc0YTQzZWY2 Njk2ODhlYjliNGQ4MGQxYWQzYTBjLi4xYTZiMDE1MzJkMjQyMDQxNzJkMzZk NWJiYmZjZjUyYzQwODYzODA1IDEwMDY0NAotLS0gYS9saWJnbG9zcy9hYXJj aDY0L19leGl0LmMKKysrIGIvbGliZ2xvc3MvYWFyY2g2NC9fZXhpdC5jCkBA IC0zNiw2ICszNiwxMiBAQCBfZXhpdCAoaW50IHN0YXR1cykKICAgICAgIHBh cmFtX2Jsb2NrX3QgYmxvY2tbMl07CiAgICAgICBibG9ja1swXSA9IEFEUF9T dG9wcGVkX0FwcGxpY2F0aW9uRXhpdDsKICAgICAgIGJsb2NrWzFdID0gc3Rh dHVzOwotICAgICAgZG9fQW5nZWxTVkMgKEFuZ2VsU1ZDX1JlYXNvbl9SZXBv cnRFeGNlcHRpb24sIGJsb2NrKTsKKworI2lmIFNFTUlIT1NUX1YyCisgICAg ICBpZiAoX2hhc19leHRfZXhpdF9leHRlbmRlZCAoKSkKKwkgZG9fQW5nZWxT VkMgKEFuZ2VsU1ZDX1JlYXNvbl9SZXBvcnRFeGNlcHRpb25FeHRlbmRlZCwg YmxvY2spOworICAgICAgZWxzZQorI2VuZGlmCisJIGRvX0FuZ2VsU1ZDIChB bmdlbFNWQ19SZWFzb25fUmVwb3J0RXhjZXB0aW9uLCBibG9jayk7CiAgICAg fQogfQpkaWZmIC0tZ2l0IGEvbGliZ2xvc3MvYWFyY2g2NC9fa2lsbC5jIGIv bGliZ2xvc3MvYWFyY2g2NC9fa2lsbC5jCmluZGV4IGFmMzNmMDdiMDc1ZDA1 NWRjNDE3MGZkODE4MGI1MmU2YjNjNDYxNDIuLjFkNDIzNzFmMGEyOTAzN2U2 Nzc1NzA2NTQ5MGMwZmFjYmNjY2RmMjggMTAwNjQ0Ci0tLSBhL2xpYmdsb3Nz L2FhcmNoNjQvX2tpbGwuYworKysgYi9saWJnbG9zcy9hYXJjaDY0L19raWxs LmMKQEAgLTQ1LDUgKzQ1LDExIEBAIF9raWxsIChpbnQgcGlkLCBpbnQgc2ln KQogCiAgIGJsb2NrWzBdID0gQURQX1N0b3BwZWRfUnVuVGltZUVycm9yOwog ICBibG9ja1sxXSA9IHNpZzsKLSAgcmV0dXJuIGRvX0FuZ2VsU1ZDIChBbmdl bFNWQ19SZWFzb25fUmVwb3J0RXhjZXB0aW9uLCBibG9jayk7CisKKyNpZiBT RU1JSE9TVF9WMgorICBpZiAoX2hhc19leHRfZXhpdF9leHRlbmRlZCAoKSkK KyAgICByZXR1cm4gZG9fQW5nZWxTVkMgKEFuZ2VsU1ZDX1JlYXNvbl9SZXBv cnRFeGNlcHRpb25FeHRlbmRlZCwgYmxvY2spOworICBlbHNlCisjZW5kaWYK KyAgICByZXR1cm4gZG9fQW5nZWxTVkMgKEFuZ2VsU1ZDX1JlYXNvbl9SZXBv cnRFeGNlcHRpb24sIGJsb2NrKTsKIH0KZGlmZiAtLWdpdCBhL2xpYmdsb3Nz L2FhcmNoNjQvc3ZjLmggYi9saWJnbG9zcy9hYXJjaDY0L3N2Yy5oCmluZGV4 IGZlMjQ5ZjA4YTQxM2RlNmIwMTk0NWE4ZjQ1YjY1YWE3NGY0NzgyZDkuLjYw YmQwMGZjYWNiZmMzYmQ3NWVmMzczNWViNjg2N2EyNzE4MDQ4ZDUgMTAwNjQ0 Ci0tLSBhL2xpYmdsb3NzL2FhcmNoNjQvc3ZjLmgKKysrIGIvbGliZ2xvc3Mv YWFyY2g2NC9zdmMuaApAQCAtMjMsMzcgKzIzLDU5IEBACiAgTkVHTElHRU5D RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF IFVTRSBPRiBUSElTCiAgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuICovCiAKKyNpbmNsdWRl IDxfYW5zaS5oPgorCiAvKiBOb3cgdGhlIFNXSSBudW1iZXJzIGFuZCByZWFz b24gY29kZXMgZm9yIFJESSAoQW5nZWwpIG1vbml0b3JzLiAgKi8KLSNkZWZp bmUgQW5nZWxTVkMJCQkweEYwMDAKLSNkZWZpbmUgQW5nZWxTVkNJbnNuCQkJ ImhsdCIKLSNkZWZpbmUgQW5nZWxTVkNBc20JCQlobHQKKyNkZWZpbmUgQW5n ZWxTVkMJCQkJMHhGMDAwCisjZGVmaW5lIEFuZ2VsU1ZDSW5zbgkJCQkiaGx0 IgorI2RlZmluZSBBbmdlbFNWQ0FzbQkJCQlobHQKIAogLyogVGhlIHJlYXNv biBjb2RlczogICovCi0jZGVmaW5lIEFuZ2VsU1ZDX1JlYXNvbl9PcGVuCQkw eDAxCi0jZGVmaW5lIEFuZ2VsU1ZDX1JlYXNvbl9DbG9zZQkJMHgwMgotI2Rl ZmluZSBBbmdlbFNWQ19SZWFzb25fV3JpdGVDCQkweDAzCi0jZGVmaW5lIEFu Z2VsU1ZDX1JlYXNvbl9Xcml0ZTAJCTB4MDQKLSNkZWZpbmUgQW5nZWxTVkNf UmVhc29uX1dyaXRlCQkweDA1Ci0jZGVmaW5lIEFuZ2VsU1ZDX1JlYXNvbl9S ZWFkCQkweDA2Ci0jZGVmaW5lIEFuZ2VsU1ZDX1JlYXNvbl9SZWFkQwkJMHgw NwotI2RlZmluZSBBbmdlbFNWQ19SZWFzb25fSXNUVFkJCTB4MDkKLSNkZWZp bmUgQW5nZWxTVkNfUmVhc29uX1NlZWsJCTB4MEEKLSNkZWZpbmUgQW5nZWxT VkNfUmVhc29uX0ZMZW4JCTB4MEMKLSNkZWZpbmUgQW5nZWxTVkNfUmVhc29u X1RtcE5hbQkJMHgwRAotI2RlZmluZSBBbmdlbFNWQ19SZWFzb25fUmVtb3Zl CQkweDBFCi0jZGVmaW5lIEFuZ2VsU1ZDX1JlYXNvbl9SZW5hbWUJCTB4MEYK LSNkZWZpbmUgQW5nZWxTVkNfUmVhc29uX0Nsb2NrCQkweDEwCi0jZGVmaW5l IEFuZ2VsU1ZDX1JlYXNvbl9UaW1lCQkweDExCi0jZGVmaW5lIEFuZ2VsU1ZD X1JlYXNvbl9TeXN0ZW0JCTB4MTIKLSNkZWZpbmUgQW5nZWxTVkNfUmVhc29u X0Vycm5vCQkweDEzCi0jZGVmaW5lIEFuZ2VsU1ZDX1JlYXNvbl9HZXRDbWRM aW5lCTB4MTUKLSNkZWZpbmUgQW5nZWxTVkNfUmVhc29uX0hlYXBJbmZvCTB4 MTYKLSNkZWZpbmUgQW5nZWxTVkNfUmVhc29uX0VudGVyU1ZDCTB4MTcKLSNk ZWZpbmUgQW5nZWxTVkNfUmVhc29uX1JlcG9ydEV4Y2VwdGlvbiAweDE4Ci0j ZGVmaW5lIEFuZ2VsU1ZDX1JlYXNvbl9TeW5jQ2FjaGVSYW5nZQkweDE5Ci0j ZGVmaW5lIEFuZ2VsU1ZDX1JlYXNvbl9FbGFwc2VkICAgICAgICAgMHgzMAot I2RlZmluZSBBRFBfU3RvcHBlZF9BcHBsaWNhdGlvbkV4aXQJKCgyIDw8IDE2 KSArIDM4KQotI2RlZmluZSBBRFBfU3RvcHBlZF9SdW5UaW1lRXJyb3IJKCgy IDw8IDE2KSArIDM1KQorI2RlZmluZSBBbmdlbFNWQ19SZWFzb25fT3BlbgkJ CTB4MDEKKyNkZWZpbmUgQW5nZWxTVkNfUmVhc29uX0Nsb3NlCQkJMHgwMgor I2RlZmluZSBBbmdlbFNWQ19SZWFzb25fV3JpdGVDCQkJMHgwMworI2RlZmlu ZSBBbmdlbFNWQ19SZWFzb25fV3JpdGUwCQkJMHgwNAorI2RlZmluZSBBbmdl bFNWQ19SZWFzb25fV3JpdGUJCQkweDA1CisjZGVmaW5lIEFuZ2VsU1ZDX1Jl YXNvbl9SZWFkCQkJMHgwNgorI2RlZmluZSBBbmdlbFNWQ19SZWFzb25fUmVh ZEMJCQkweDA3CisjZGVmaW5lIEFuZ2VsU1ZDX1JlYXNvbl9Jc0Vycm9yCQkJ MHgwOAorI2RlZmluZSBBbmdlbFNWQ19SZWFzb25fSXNUVFkJCQkweDA5Cisj ZGVmaW5lIEFuZ2VsU1ZDX1JlYXNvbl9TZWVrCQkJMHgwQQorI2RlZmluZSBB bmdlbFNWQ19SZWFzb25fRkxlbgkJCTB4MEMKKyNkZWZpbmUgQW5nZWxTVkNf UmVhc29uX1RtcE5hbQkJCTB4MEQKKyNkZWZpbmUgQW5nZWxTVkNfUmVhc29u X1JlbW92ZQkJCTB4MEUKKyNkZWZpbmUgQW5nZWxTVkNfUmVhc29uX1JlbmFt ZQkJCTB4MEYKKyNkZWZpbmUgQW5nZWxTVkNfUmVhc29uX0Nsb2NrCQkJMHgx MAorI2RlZmluZSBBbmdlbFNWQ19SZWFzb25fVGltZQkJCTB4MTEKKyNkZWZp bmUgQW5nZWxTVkNfUmVhc29uX1N5c3RlbQkJCTB4MTIKKyNkZWZpbmUgQW5n ZWxTVkNfUmVhc29uX0Vycm5vCQkJMHgxMworI2RlZmluZSBBbmdlbFNWQ19S ZWFzb25fR2V0Q21kTGluZQkJMHgxNQorI2RlZmluZSBBbmdlbFNWQ19SZWFz b25fSGVhcEluZm8JCTB4MTYKKyNkZWZpbmUgQW5nZWxTVkNfUmVhc29uX0Vu dGVyU1ZDCQkweDE3CisjZGVmaW5lIEFuZ2VsU1ZDX1JlYXNvbl9SZXBvcnRF eGNlcHRpb24gCTB4MTgKKyNkZWZpbmUgQW5nZWxTVkNfUmVhc29uX1N5bmND YWNoZVJhbmdlCQkweDE5CisjZGVmaW5lIEFuZ2VsU1ZDX1JlYXNvbl9SZXBv cnRFeGNlcHRpb25FeHRlbmRlZCAweDIwCisjZGVmaW5lIEFuZ2VsU1ZDX1Jl YXNvbl9FbGFwc2VkCQkJMHgzMAorI2RlZmluZSBBbmdlbFNWQ19SZWFzb25f VGlja0ZyZXEJCTB4MzEKKyNkZWZpbmUgQURQX1N0b3BwZWRfQXBwbGljYXRp b25FeGl0CQkoKDIgPDwgMTYpICsgMzgpCisjZGVmaW5lIEFEUF9TdG9wcGVk X1J1blRpbWVFcnJvcgkJKCgyIDw8IDE2KSArIDM1KQorCisvKiBTZW1paG9z dGluZyBmZWF0dXJlIG1hZ2ljIG51bWJlcnMuICAqLworI2RlZmluZSBOVU1f U0hGQl9NQUdJQwkJCTQKKyNkZWZpbmUgU0hGQl9NQUdJQ18wCQkJMHg1Mwor I2RlZmluZSBTSEZCX01BR0lDXzEJCQkweDQ4CisjZGVmaW5lIFNIRkJfTUFH SUNfMgkJCTB4NDYKKyNkZWZpbmUgU0hGQl9NQUdJQ18zCQkJMHg0MgorCisv KiBTZW1paG9zdGluZyBleHRlbnNpb25zLiAgKi8KKyNkZWZpbmUgU0hfRVhU X0VYSVRfRVhURU5ERURfQklUTlVNCTB4MAorI2RlZmluZSBTSF9FWFRfU1RE T1VUX1NUREVSUl9CSVROVU0JMHgxCisKKyNpZiAhZGVmaW5lZCAoX19BU1NF TUJMRVJfXykKK2V4dGVybiBpbnQgX2dldF9zZW1paG9zdGluZ19leHRzIF9Q QVJBTVMgKChjaGFyKiwgaW50LCBpbnQpKTsKK2V4dGVybiBpbnQgX2hhc19l eHRfZXhpdF9leHRlbmRlZCBfUEFSQU1TICgodm9pZCkpOworZXh0ZXJuIGlu dCBfaGFzX2V4dF9zdGRvdXRfc3RkZXJyIF9QQVJBTVMgKCh2b2lkKSk7Cisj ZW5kaWYKIAogI2lmIGRlZmluZWQoQVJNX1JESV9NT05JVE9SKSAmJiAhZGVm aW5lZChfX0FTU0VNQkxFUl9fKQogCmRpZmYgLS1naXQgYS9saWJnbG9zcy9h YXJjaDY0L3N5c2NhbGxzLmMgYi9saWJnbG9zcy9hYXJjaDY0L3N5c2NhbGxz LmMKaW5kZXggMDU4Y2VmNWNiOTRhODBmNjhiZTZiNzcxOTJkMTY0ZGYyODUx ZjM3NC4uYWYyMDZhMWQ0OWZlNzExM2E3NGMzNTc0YmIyZTA4ZGUyYTM2MDk2 ZCAxMDA2NDQKLS0tIGEvbGliZ2xvc3MvYWFyY2g2NC9zeXNjYWxscy5jCisr KyBiL2xpYmdsb3NzL2FhcmNoNjQvc3lzY2FsbHMuYwpAQCAtNzYsNiArNzYs OSBAQCBzdGF0aWMgaW50IGNoZWNrZXJyb3IgX1BBUkFNUyAoKGludCkpOwog c3RhdGljIGludCBlcnJvciBfUEFSQU1TICgoaW50KSk7CiBzdGF0aWMgaW50 IGdldF9lcnJubyBfUEFSQU1TICgodm9pZCkpOwogCisvKiBTZW1paG9zdGlu ZyB1dGlsaXRpZXMuICAqLworc3RhdGljIHZvaWQgaW5pdGlhbGlzZV9zZW1p aG9zdGluZ19leHRzIF9QQVJBTVMgKCh2b2lkKSk7CisKIC8qIFN0cnVjdCB1 c2VkIHRvIGtlZXAgdHJhY2sgb2YgdGhlIGZpbGUgcG9zaXRpb24sIGp1c3Qg c28gd2UKICAgIGNhbiBpbXBsZW1lbnQgZnNlZWsoZmgseCxTRUVLX0NVUiku ICAqLwogc3RydWN0IGZkZW50CkBAIC0xMzAsNiArMTMzLDkgQEAgc3RhdGlj IGludCBtb25pdG9yX3N0ZGluOwogc3RhdGljIGludCBtb25pdG9yX3N0ZG91 dDsKIHN0YXRpYyBpbnQgbW9uaXRvcl9zdGRlcnI7CiAKK3N0YXRpYyBpbnQg c3VwcG9ydHNfZXh0X2V4aXRfZXh0ZW5kZWQgPSAtMTsKK3N0YXRpYyBpbnQg c3VwcG9ydHNfZXh0X3N0ZG91dF9zdGRlcnIgPSAtMTsKKwogLyogUmV0dXJu IGEgcG9pbnRlciB0byB0aGUgc3RydWN0dXJlIGFzc29jaWF0ZWQgd2l0aAog ICAgdGhlIHVzZXIgZmlsZSBkZXNjcmlwdG9yIGZkLiAqLwogc3RhdGljIHN0 cnVjdCBmZGVudCAqCkBAIC0xODgsMzIgKzE5NCwxMzEgQEAgaW5pdGlhbGlz ZV9tb25pdG9yX2hhbmRsZXMgKHZvaWQpCiAgIGJsb2NrWzFdID0gMDsJCQkv KiBtb2RlICJyIiAqLwogICBtb25pdG9yX3N0ZGluID0gZG9fQW5nZWxTVkMg KEFuZ2VsU1ZDX1JlYXNvbl9PcGVuLCBibG9jayk7CiAKLSAgYmxvY2tbMF0g PSBQT0lOVEVSX1RPX1BBUkFNX0JMT0NLX1QgKCI6dHQiKTsKLSAgYmxvY2tb Ml0gPSAzOwkJCS8qIGxlbmd0aCBvZiBmaWxlbmFtZSAqLwotICBibG9ja1sx XSA9IDQ7CQkJLyogbW9kZSAidyIgKi8KLSAgbW9uaXRvcl9zdGRvdXQgPSBk b19BbmdlbFNWQyAoQW5nZWxTVkNfUmVhc29uX09wZW4sIGJsb2NrKTsKKyAg Zm9yIChpID0gMDsgaSA8IE1BWF9PUEVOX0ZJTEVTOyBpKyspCisgICAgb3Bl bmZpbGVzW2ldLmhhbmRsZSA9IC0xOzsKIAotICBibG9ja1swXSA9IFBPSU5U RVJfVE9fUEFSQU1fQkxPQ0tfVCAoIjp0dCIpOwotICBibG9ja1syXSA9IDM7 CQkJLyogbGVuZ3RoIG9mIGZpbGVuYW1lICovCi0gIGJsb2NrWzFdID0gODsJ CQkvKiBtb2RlICJhIiAqLwotICBtb25pdG9yX3N0ZGVyciA9IGRvX0FuZ2Vs U1ZDIChBbmdlbFNWQ19SZWFzb25fT3BlbiwgYmxvY2spOworICBpZiAoX2hh c19leHRfc3Rkb3V0X3N0ZGVyciAoKSkKKyAgeworICAgIGJsb2NrWzBdID0g UE9JTlRFUl9UT19QQVJBTV9CTE9DS19UICgiOnR0Iik7CisgICAgYmxvY2tb Ml0gPSAzOwkJCS8qIGxlbmd0aCBvZiBmaWxlbmFtZSAqLworICAgIGJsb2Nr WzFdID0gNDsJCQkvKiBtb2RlICJ3IiAqLworICAgIG1vbml0b3Jfc3Rkb3V0 ID0gZG9fQW5nZWxTVkMgKEFuZ2VsU1ZDX1JlYXNvbl9PcGVuLCBibG9jayk7 CisKKyAgICBibG9ja1swXSA9IFBPSU5URVJfVE9fUEFSQU1fQkxPQ0tfVCAo Ijp0dCIpOworICAgIGJsb2NrWzJdID0gMzsJCQkvKiBsZW5ndGggb2YgZmls ZW5hbWUgKi8KKyAgICBibG9ja1sxXSA9IDg7CQkJLyogbW9kZSAiYSIgKi8K KyAgICBtb25pdG9yX3N0ZGVyciA9IGRvX0FuZ2VsU1ZDIChBbmdlbFNWQ19S ZWFzb25fT3BlbiwgYmxvY2spOworICB9CiAKICAgLyogSWYgd2UgZmFpbGVk IHRvIG9wZW4gc3RkZXJyLCByZWRpcmVjdCB0byBzdGRvdXQuICovCiAgIGlm IChtb25pdG9yX3N0ZGVyciA9PSAtMSkKICAgICBtb25pdG9yX3N0ZGVyciA9 IG1vbml0b3Jfc3Rkb3V0OwogCi0gIGZvciAoaSA9IDA7IGkgPCBNQVhfT1BF Tl9GSUxFUzsgaSsrKQotICAgIG9wZW5maWxlc1tpXS5oYW5kbGUgPSAtMTsK LQogICBvcGVuZmlsZXNbMF0uaGFuZGxlID0gbW9uaXRvcl9zdGRpbjsKICAg b3BlbmZpbGVzWzBdLmZsYWdzID0gX0ZSRUFEOwogICBvcGVuZmlsZXNbMF0u cG9zID0gMDsKLSAgb3BlbmZpbGVzWzFdLmhhbmRsZSA9IG1vbml0b3Jfc3Rk b3V0OwotICBvcGVuZmlsZXNbMF0uZmxhZ3MgPSBfRldSSVRFOwotICBvcGVu ZmlsZXNbMV0ucG9zID0gMDsKLSAgb3BlbmZpbGVzWzJdLmhhbmRsZSA9IG1v bml0b3Jfc3RkZXJyOwotICBvcGVuZmlsZXNbMF0uZmxhZ3MgPSBfRldSSVRF OwotICBvcGVuZmlsZXNbMl0ucG9zID0gMDsKKworICBpZiAoX2hhc19leHRf c3Rkb3V0X3N0ZGVyciAoKSkKKyAgeworICAgIG9wZW5maWxlc1sxXS5oYW5k bGUgPSBtb25pdG9yX3N0ZG91dDsKKyAgICBvcGVuZmlsZXNbMF0uZmxhZ3Mg PSBfRldSSVRFOworICAgIG9wZW5maWxlc1sxXS5wb3MgPSAwOworICAgIG9w ZW5maWxlc1syXS5oYW5kbGUgPSBtb25pdG9yX3N0ZGVycjsKKyAgICBvcGVu ZmlsZXNbMF0uZmxhZ3MgPSBfRldSSVRFOworICAgIG9wZW5maWxlc1syXS5w b3MgPSAwOworICB9Cit9CisKK2ludAorX2hhc19leHRfZXhpdF9leHRlbmRl ZCAodm9pZCkKK3sKKyAgaWYgKHN1cHBvcnRzX2V4dF9leGl0X2V4dGVuZGVk IDwgMCkKKyAgeworICAgIGluaXRpYWxpc2Vfc2VtaWhvc3RpbmdfZXh0cyAo KTsKKyAgfQorCisgIHJldHVybiBzdXBwb3J0c19leHRfZXhpdF9leHRlbmRl ZDsKK30KKworaW50CitfaGFzX2V4dF9zdGRvdXRfc3RkZXJyICh2b2lkKQor eworICBpZiAoc3VwcG9ydHNfZXh0X3N0ZG91dF9zdGRlcnIgPCAwKQorICB7 CisgICAgaW5pdGlhbGlzZV9zZW1paG9zdGluZ19leHRzICgpOworICB9CisK KyAgcmV0dXJuIHN1cHBvcnRzX2V4dF9zdGRvdXRfc3RkZXJyOworfQorCitz dGF0aWMgdm9pZAoraW5pdGlhbGlzZV9zZW1paG9zdGluZ19leHRzICh2b2lk KQoreworICBzdXBwb3J0c19leHRfZXhpdF9leHRlbmRlZCA9IDA7CisgIHN1 cHBvcnRzX2V4dF9zdGRvdXRfc3RkZXJyID0gMTsKKworI2lmIFNFTUlIT1NU X1YyCisgIGNoYXIgZmVhdHVyZXNbMV07CisgIGlmIChfZ2V0X3NlbWlob3N0 aW5nX2V4dHMgKGZlYXR1cmVzLCAwLCAxKSA+IDApCisgIHsKKyAgICAgc3Vw cG9ydHNfZXh0X2V4aXRfZXh0ZW5kZWQKKyAgICAgICA9IGZlYXR1cmVzWzBd ICYgKDEgPDwgU0hfRVhUX0VYSVRfRVhURU5ERURfQklUTlVNKTsKKyAgICAg c3VwcG9ydHNfZXh0X3N0ZG91dF9zdGRlcnIKKyAgICAgICA9IGZlYXR1cmVz WzBdICYgKDEgPDwgU0hfRVhUX1NURE9VVF9TVERFUlJfQklUTlVNKTsKKyAg fQorI2VuZGlmCit9CisKK2ludAorX2dldF9zZW1paG9zdGluZ19leHRzIChj aGFyKiBmZWF0dXJlcywgaW50IG9mZnNldCwgaW50IG51bSkKK3sKKyAgaW50 IGZkID0gX29wZW4gKCI6c2VtaWhvc3RpbmctZmVhdHVyZXMiLCBPX1JET05M WSk7CisgIG1lbXNldCAoZmVhdHVyZXMsIDAsIG51bSk7CisKKyAgaWYgKGZk ID09IC0xKQorICB7CisgICAgcmV0dXJuIC0xOworICB9CisKKyAgc3RydWN0 IGZkZW50ICpwZmQ7CisgIHBmZCA9IGZpbmRzbG90IChmZCk7CisKKyAgcGFy YW1fYmxvY2tfdCBibG9ja1sxXTsKKyAgYmxvY2tbMF0gPSBwZmQtPmhhbmRs ZTsKKworICBpbnQgbGVuID0gZG9fQW5nZWxTVkMgKEFuZ2VsU1ZDX1JlYXNv bl9GTGVuLCBibG9jayk7CisKKyAgaWYgKGxlbiA8IE5VTV9TSEZCX01BR0lD CisgICAgICB8fCBudW0gPiAobGVuIC0gTlVNX1NIRkJfTUFHSUMpKQorICB7 CisgICAgIF9jbG9zZSAoZmQpOworICAgICByZXR1cm4gLTE7CisgIH0KKwor ICBjaGFyIGJ1ZmZlcltOVU1fU0hGQl9NQUdJQ107CisgIGludCBuX3JlYWQg PSBfcmVhZCAoZmQsIGJ1ZmZlciwgTlVNX1NIRkJfTUFHSUMpOworCisgIGlm IChuX3JlYWQgPCBOVU1fU0hGQl9NQUdJQworICAgICAgfHwgYnVmZmVyWzBd ICE9IFNIRkJfTUFHSUNfMAorICAgICAgfHwgYnVmZmVyWzFdICE9IFNIRkJf TUFHSUNfMQorICAgICAgfHwgYnVmZmVyWzJdICE9IFNIRkJfTUFHSUNfMgor ICAgICAgfHwgYnVmZmVyWzNdICE9IFNIRkJfTUFHSUNfMykKKyAgeworICAg ICBfY2xvc2UgKGZkKTsKKyAgICAgcmV0dXJuIC0xOworICB9CisKKyAgaWYg KF9sc2VlayAoZmQsIG9mZnNldCwgU0VFS19DVVIpIDwgMCkKKyAgeworICAg ICBfY2xvc2UgKGZkKTsKKyAgICAgcmV0dXJuIC0xOworICB9CisKKyAgbl9y ZWFkID0gX3JlYWQgKGZkLCBmZWF0dXJlcywgbnVtKTsKKworICBfY2xvc2Ug KGZkKTsKKworICByZXR1cm4gY2hlY2tlcnJvciAobl9yZWFkKTsKIH0KIAog c3RhdGljIGludAo= --_002_VI1PR0801MB2031043EAAA40ED39FB601D4FFD60VI1PR0801MB2031_--