From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 1F96DC433FE for ; Tue, 12 Oct 2021 10:14:43 +0000 (UTC) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 8FCE860C40 for ; Tue, 12 Oct 2021 10:14:42 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.4.1 mail.kernel.org 8FCE860C40 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=quicinc.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=nongnu.org Received: from localhost ([::1]:44250 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1maEnx-0003Nr-Li for qemu-devel@archiver.kernel.org; Tue, 12 Oct 2021 06:14:41 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:50204) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1maEks-0000SN-4b for qemu-devel@nongnu.org; Tue, 12 Oct 2021 06:11:30 -0400 Received: from alexa-out-sd-01.qualcomm.com ([199.106.114.38]:12878) by eggs.gnu.org with esmtps (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.90_1) (envelope-from ) id 1maEkp-0006y1-A5 for qemu-devel@nongnu.org; Tue, 12 Oct 2021 06:11:29 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=quicinc.com; i=@quicinc.com; q=dns/txt; s=qcdkim; t=1634033487; x=1665569487; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=4fYcsZDRHfZ138edYAQvEkSlFSmh9GnZyI11ShDDakg=; b=JIdL9Dl692yOirX6uADhHM77IlCIzDq9oM38xHay4QMdTe8mJArBYvAF BqHxyzXL7a6ycLIcMu4S0dhFtpcBee6JbV9FXeA68kgiGoDdujZUKClCX TMvmth7Nsh4zpDeCUbUmJs9zbFc6TU+IMMkxr4sN3vYioYWgaFOI2Phu3 k=; Received: from unknown (HELO ironmsg05-sd.qualcomm.com) ([10.53.140.145]) by alexa-out-sd-01.qualcomm.com with ESMTP; 12 Oct 2021 03:11:24 -0700 X-QCInternal: smtphost Received: from vu-tsimpson-aus.qualcomm.com (HELO vu-tsimpson1-aus.qualcomm.com) ([10.222.150.1]) by ironmsg05-sd.qualcomm.com with ESMTP; 12 Oct 2021 03:11:22 -0700 Received: by vu-tsimpson1-aus.qualcomm.com (Postfix, from userid 47164) id 3BBF7112F; Tue, 12 Oct 2021 05:11:22 -0500 (CDT) From: Taylor Simpson To: qemu-devel@nongnu.org Subject: [PATCH v4 02/30] Hexagon HVX (target/hexagon) add Hexagon Vector eXtensions (HVX) to core Date: Tue, 12 Oct 2021 05:10:40 -0500 Message-Id: <1634033468-23566-3-git-send-email-tsimpson@quicinc.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1634033468-23566-1-git-send-email-tsimpson@quicinc.com> References: <1634033468-23566-1-git-send-email-tsimpson@quicinc.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Received-SPF: pass client-ip=199.106.114.38; envelope-from=tsimpson@qualcomm.com; helo=alexa-out-sd-01.qualcomm.com X-Spam_score_int: -40 X-Spam_score: -4.1 X-Spam_bar: ---- X-Spam_report: (-4.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HEADER_FROM_DIFFERENT_DOMAINS=0.249, RCVD_IN_DNSWL_MED=-2.3, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: ale@rev.ng, bcain@quicinc.com, tsimpson@quicinc.com, richard.henderson@linaro.org, f4bug@amsat.org Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: "Qemu-devel" SFZYIGlzIGEgc2V0IG9mIHdpZGUgdmVjdG9yIGluc3RydWN0aW9ucy4gIE1hY2hpbmUgc3RhdGUg aW5jbHVkZXMKICAgIHZlY3RvciByZWdpc3RlcnMgKFZSZWdzKQogICAgdmVjdG9yIHByZWRpY2F0 ZSByZWdpc3RlcnMgKFFSZWdzKQogICAgdGVtcG9yYXJ5IHJlZ2lzdGVycyBmb3IgaW50ZXJtZWRp YXRlIHZhbHVlcwogICAgc3RvcmUgYnVmZmVyIChtYXNrZWQgc3RvcmVzIGFuZCBzY2F0dGVyL2dh dGhlcikKCkFja2VkLWJ5OiBSaWNoYXJkIEhlbmRlcnNvbiA8cmljaGFyZC5oZW5kZXJzb25AbGlu YXJvLm9yZz4KU2lnbmVkLW9mZi1ieTogVGF5bG9yIFNpbXBzb24gPHRzaW1wc29uQHF1aWNpbmMu Y29tPgotLS0KIHRhcmdldC9oZXhhZ29uL2NwdS5oICAgICAgICAgICAgfCAzNSArKysrKysrKysr KysrKysrLQogdGFyZ2V0L2hleGFnb24vaGV4X2FyY2hfdHlwZXMuaCB8ICA1ICsrKwogdGFyZ2V0 L2hleGFnb24vaW5zbi5oICAgICAgICAgICB8ICAzICsrCiB0YXJnZXQvaGV4YWdvbi9pbnRlcm5h bC5oICAgICAgIHwgIDMgKysKIHRhcmdldC9oZXhhZ29uL21tdmVjL21tdmVjLmggICAgfCA4MyAr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwogdGFyZ2V0L2hleGFnb24v Y3B1LmMgICAgICAgICAgICB8IDc4ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr Ky0tCiA2IGZpbGVzIGNoYW5nZWQsIDIwMSBpbnNlcnRpb25zKCspLCA2IGRlbGV0aW9ucygtKQog Y3JlYXRlIG1vZGUgMTAwNjQ0IHRhcmdldC9oZXhhZ29uL21tdmVjL21tdmVjLmgKCmRpZmYgLS1n aXQgYS90YXJnZXQvaGV4YWdvbi9jcHUuaCBiL3RhcmdldC9oZXhhZ29uL2NwdS5oCmluZGV4IGY3 ZDA0MzguLmU2OTY2OTkgMTAwNjQ0Ci0tLSBhL3RhcmdldC9oZXhhZ29uL2NwdS5oCisrKyBiL3Rh cmdldC9oZXhhZ29uL2NwdS5oCkBAIC0yNiw2ICsyNiw3IEBAIHR5cGVkZWYgc3RydWN0IENQVUhl eGFnb25TdGF0ZSBDUFVIZXhhZ29uU3RhdGU7CiAjaW5jbHVkZSAicWVtdS1jb21tb24uaCIKICNp bmNsdWRlICJleGVjL2NwdS1kZWZzLmgiCiAjaW5jbHVkZSAiaGV4X3JlZ3MuaCIKKyNpbmNsdWRl ICJtbXZlYy9tbXZlYy5oIgogCiAjZGVmaW5lIE5VTV9QUkVHUyA0CiAjZGVmaW5lIFRPVEFMX1BF Ul9USFJFQURfUkVHUyA2NApAQCAtMzQsNiArMzUsNyBAQCB0eXBlZGVmIHN0cnVjdCBDUFVIZXhh Z29uU3RhdGUgQ1BVSGV4YWdvblN0YXRlOwogI2RlZmluZSBTVE9SRVNfTUFYIDIKICNkZWZpbmUg UkVHX1dSSVRFU19NQVggMzIKICNkZWZpbmUgUFJFRF9XUklURVNfTUFYIDUgICAgICAgICAgICAg ICAgICAgLyogNCBpbnNucyArIGVuZGxvb3AgKi8KKyNkZWZpbmUgVlNUT1JFU19NQVggMgogCiAj ZGVmaW5lIFRZUEVfSEVYQUdPTl9DUFUgImhleGFnb24tY3B1IgogCkBAIC01Miw2ICs1NCwxMyBA QCB0eXBlZGVmIHN0cnVjdCB7CiAgICAgdWludDY0X3QgZGF0YTY0OwogfSBNZW1Mb2c7CiAKK3R5 cGVkZWYgc3RydWN0IHsKKyAgICB0YXJnZXRfdWxvbmcgdmE7CisgICAgaW50IHNpemU7CisgICAg REVDTEFSRV9CSVRNQVAobWFzaywgTUFYX1ZFQ19TSVpFX0JZVEVTIC8gOCkgUUVNVV9BTElHTkVE KDE2KTsKKyAgICBNTVZlY3RvciBkYXRhIFFFTVVfQUxJR05FRCgxNik7Cit9IFZTdG9yZUxvZzsK KwogI2RlZmluZSBFWEVDX1NUQVRVU19PSyAgICAgICAgICAweDAwMDAKICNkZWZpbmUgRVhFQ19T VEFUVVNfU1RPUCAgICAgICAgMHgwMDAyCiAjZGVmaW5lIEVYRUNfU1RBVFVTX1JFUExBWSAgICAg IDB4MDAxMApAQCAtNjQsNiArNzMsOSBAQCB0eXBlZGVmIHN0cnVjdCB7CiAjZGVmaW5lIENMRUFS X0VYQ0VQVElPTiAgICAgICAgIChlbnYtPnN0YXR1cyAmPSAofkVYRUNfU1RBVFVTX0VYQ0VQVElP TikpCiAjZGVmaW5lIFNFVF9FWENFUFRJT04gICAgICAgICAgIChlbnYtPnN0YXR1cyB8PSBFWEVD X1NUQVRVU19FWENFUFRJT04pCiAKKy8qIE1heGltdW0gbnVtYmVyIG9mIHZlY3RvciB0ZW1wcyBp biBhIHBhY2tldCAqLworI2RlZmluZSBWRUNUT1JfVEVNUFNfTUFYICAgICAgICAgICAgNAorCiBz dHJ1Y3QgQ1BVSGV4YWdvblN0YXRlIHsKICAgICB0YXJnZXRfdWxvbmcgZ3ByW1RPVEFMX1BFUl9U SFJFQURfUkVHU107CiAgICAgdGFyZ2V0X3Vsb25nIHByZWRbTlVNX1BSRUdTXTsKQEAgLTk3LDgg KzEwOSwyNyBAQCBzdHJ1Y3QgQ1BVSGV4YWdvblN0YXRlIHsKICAgICB0YXJnZXRfdWxvbmcgbGxz Y192YWw7CiAgICAgdWludDY0X3QgICAgIGxsc2NfdmFsX2k2NDsKIAotICAgIHRhcmdldF91bG9u ZyBpc19nYXRoZXJfc3RvcmVfaW5zbjsKLSAgICB0YXJnZXRfdWxvbmcgZ2F0aGVyX2lzc3VlZDsK KyAgICBNTVZlY3RvciBWUmVnc1tOVU1fVlJFR1NdIFFFTVVfQUxJR05FRCgxNik7CisgICAgTU1W ZWN0b3IgZnV0dXJlX1ZSZWdzW1ZFQ1RPUl9URU1QU19NQVhdIFFFTVVfQUxJR05FRCgxNik7Cisg ICAgTU1WZWN0b3IgdG1wX1ZSZWdzW1ZFQ1RPUl9URU1QU19NQVhdIFFFTVVfQUxJR05FRCgxNik7 CisKKyAgICBWUmVnTWFzayBWUmVnc191cGRhdGVkOworCisgICAgTU1RUmVnIFFSZWdzW05VTV9R UkVHU10gUUVNVV9BTElHTkVEKDE2KTsKKyAgICBNTVFSZWcgZnV0dXJlX1FSZWdzW05VTV9RUkVH U10gUUVNVV9BTElHTkVEKDE2KTsKKyAgICBRUmVnTWFzayBRUmVnc191cGRhdGVkOworCisgICAg LyogVGVtcG9yYXJpZXMgdXNlZCB3aXRoaW4gaW5zdHJ1Y3Rpb25zICovCisgICAgTU1WZWN0b3JQ YWlyIFZ1dVYgUUVNVV9BTElHTkVEKDE2KTsKKyAgICBNTVZlY3RvclBhaXIgVnZ2ViBRRU1VX0FM SUdORUQoMTYpOworICAgIE1NVmVjdG9yUGFpciBWeHhWIFFFTVVfQUxJR05FRCgxNik7CisgICAg TU1WZWN0b3IgICAgIHZ0bXAgUUVNVV9BTElHTkVEKDE2KTsKKyAgICBNTVFSZWcgICAgICAgcXRt cCBRRU1VX0FMSUdORUQoMTYpOworCisgICAgVlN0b3JlTG9nIHZzdG9yZVtWU1RPUkVTX01BWF07 CisgICAgdGFyZ2V0X3Vsb25nIHZzdG9yZV9wZW5kaW5nW1ZTVE9SRVNfTUFYXTsKKyAgICBib29s IHZ0Y21fcGVuZGluZzsKKyAgICBWVENNU3RvcmVMb2cgdnRjbV9sb2c7CiB9OwogCiAjZGVmaW5l IEhFWEFHT05fQ1BVX0NMQVNTKGtsYXNzKSBcCmRpZmYgLS1naXQgYS90YXJnZXQvaGV4YWdvbi9o ZXhfYXJjaF90eXBlcy5oIGIvdGFyZ2V0L2hleGFnb24vaGV4X2FyY2hfdHlwZXMuaAppbmRleCBk NzIxZTFmLi43OGFkNjA3IDEwMDY0NAotLS0gYS90YXJnZXQvaGV4YWdvbi9oZXhfYXJjaF90eXBl cy5oCisrKyBiL3RhcmdldC9oZXhhZ29uL2hleF9hcmNoX3R5cGVzLmgKQEAgLTE5LDYgKzE5LDcg QEAKICNkZWZpbmUgSEVYQUdPTl9BUkNIX1RZUEVTX0gKIAogI2luY2x1ZGUgInFlbXUvb3NkZXAu aCIKKyNpbmNsdWRlICJtbXZlYy9tbXZlYy5oIgogI2luY2x1ZGUgInFlbXUvaW50MTI4LmgiCiAK IC8qCkBAIC0zNSw0ICszNiw4IEBAIHR5cGVkZWYgdWludDY0X3QgICAgc2l6ZTh1X3Q7CiB0eXBl ZGVmIGludDY0X3QgICAgIHNpemU4c190OwogdHlwZWRlZiBJbnQxMjggICAgICBzaXplMTZzX3Q7 CiAKK3R5cGVkZWYgTU1WZWN0b3IgICAgICAgICAgbW12ZWN0b3JfdDsKK3R5cGVkZWYgTU1WZWN0 b3JQYWlyICAgICAgbW12ZWN0b3JfcGFpcl90OwordHlwZWRlZiBNTVFSZWcgICAgICAgICAgICBt bXFyZXRfdDsKKwogI2VuZGlmCmRpZmYgLS1naXQgYS90YXJnZXQvaGV4YWdvbi9pbnNuLmggYi90 YXJnZXQvaGV4YWdvbi9pbnNuLmgKaW5kZXggMmUzNDU5MS4uYWEyNjM4OSAxMDA2NDQKLS0tIGEv dGFyZ2V0L2hleGFnb24vaW5zbi5oCisrKyBiL3RhcmdldC9oZXhhZ29uL2luc24uaApAQCAtNjcs NiArNjcsOSBAQCBzdHJ1Y3QgUGFja2V0IHsKICAgICBib29sIHBrdF9oYXNfc3RvcmVfczA7CiAg ICAgYm9vbCBwa3RfaGFzX3N0b3JlX3MxOwogCisgICAgYm9vbCBwa3RfaGFzX2h2eDsKKyAgICBJ bnNuICp2aGlzdF9pbnNuOworCiAgICAgSW5zbiBpbnNuW0lOU1RSVUNUSU9OU19NQVhdOwogfTsK IApkaWZmIC0tZ2l0IGEvdGFyZ2V0L2hleGFnb24vaW50ZXJuYWwuaCBiL3RhcmdldC9oZXhhZ29u L2ludGVybmFsLmgKaW5kZXggNmIyMGFmZi4uODJhYzMwNCAxMDA2NDQKLS0tIGEvdGFyZ2V0L2hl eGFnb24vaW50ZXJuYWwuaAorKysgYi90YXJnZXQvaGV4YWdvbi9pbnRlcm5hbC5oCkBAIC0zMSw2 ICszMSw5IEBACiAKIGludCBoZXhhZ29uX2dkYl9yZWFkX3JlZ2lzdGVyKENQVVN0YXRlICpjcHUs IEdCeXRlQXJyYXkgKmJ1ZiwgaW50IHJlZyk7CiBpbnQgaGV4YWdvbl9nZGJfd3JpdGVfcmVnaXN0 ZXIoQ1BVU3RhdGUgKmNwdSwgdWludDhfdCAqYnVmLCBpbnQgcmVnKTsKKwordm9pZCBoZXhhZ29u X2RlYnVnX3ZyZWcoQ1BVSGV4YWdvblN0YXRlICplbnYsIGludCByZWdudW0pOwordm9pZCBoZXhh Z29uX2RlYnVnX3FyZWcoQ1BVSGV4YWdvblN0YXRlICplbnYsIGludCByZWdudW0pOwogdm9pZCBo ZXhhZ29uX2RlYnVnKENQVUhleGFnb25TdGF0ZSAqZW52KTsKIAogZXh0ZXJuIGNvbnN0IGNoYXIg KiBjb25zdCBoZXhhZ29uX3JlZ25hbWVzW1RPVEFMX1BFUl9USFJFQURfUkVHU107CmRpZmYgLS1n aXQgYS90YXJnZXQvaGV4YWdvbi9tbXZlYy9tbXZlYy5oIGIvdGFyZ2V0L2hleGFnb24vbW12ZWMv bW12ZWMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42MTk2YzUyCi0tLSAv ZGV2L251bGwKKysrIGIvdGFyZ2V0L2hleGFnb24vbW12ZWMvbW12ZWMuaApAQCAtMCwwICsxLDgz IEBACisvKgorICogIENvcHlyaWdodChjKSAyMDE5LTIwMjEgUXVhbGNvbW0gSW5ub3ZhdGlvbiBD ZW50ZXIsIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiAgVGhpcyBwcm9ncmFtIGlz IGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKyAq ICBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFz IHB1Ymxpc2hlZCBieQorICogIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2 ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCisgKiAgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0 ZXIgdmVyc2lvbi4KKyAqCisgKiAgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBo b3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZ OyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqICBNRVJDSEFOVEFCSUxJ VFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisgKiAgR05V IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiAgWW91IHNo b3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vu c2UKKyAqICBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCBzZWUgPGh0dHA6Ly93d3cu Z251Lm9yZy9saWNlbnNlcy8+LgorICovCisKKyNpZm5kZWYgSEVYQUdPTl9NTVZFQ19ICisjZGVm aW5lIEhFWEFHT05fTU1WRUNfSAorCisjZGVmaW5lIE1BWF9WRUNfU0laRV9MT0dCWVRFUyA3Cisj ZGVmaW5lIE1BWF9WRUNfU0laRV9CWVRFUyAgKDEgPDwgTUFYX1ZFQ19TSVpFX0xPR0JZVEVTKQor CisjZGVmaW5lIE5VTV9WUkVHUyAgICAgICAgICAgMzIKKyNkZWZpbmUgTlVNX1FSRUdTICAgICAg ICAgICA0CisKK3R5cGVkZWYgdWludDMyX3QgVlJlZ01hc2s7IC8qIGF0IGxlYXN0IE5VTV9WUkVH UyBiaXRzICovCit0eXBlZGVmIHVpbnQzMl90IFFSZWdNYXNrOyAvKiBhdCBsZWFzdCBOVU1fUVJF R1MgYml0cyAqLworCisjZGVmaW5lIFZFQ1RPUl9TSVpFX0JZVEUgICAgKGZWRUNTSVpFKCkpCisK K3R5cGVkZWYgdW5pb24geworICAgIHVpbnQ2NF90IHVkW01BWF9WRUNfU0laRV9CWVRFUyAvIDhd OworICAgIGludDY0X3QgICBkW01BWF9WRUNfU0laRV9CWVRFUyAvIDhdOworICAgIHVpbnQzMl90 IHV3W01BWF9WRUNfU0laRV9CWVRFUyAvIDRdOworICAgIGludDMyX3QgICB3W01BWF9WRUNfU0la RV9CWVRFUyAvIDRdOworICAgIHVpbnQxNl90IHVoW01BWF9WRUNfU0laRV9CWVRFUyAvIDJdOwor ICAgIGludDE2X3QgICBoW01BWF9WRUNfU0laRV9CWVRFUyAvIDJdOworICAgIHVpbnQ4X3QgIHVi W01BWF9WRUNfU0laRV9CWVRFUyAvIDFdOworICAgIGludDhfdCAgICBiW01BWF9WRUNfU0laRV9C WVRFUyAvIDFdOworfSBNTVZlY3RvcjsKKwordHlwZWRlZiB1bmlvbiB7CisgICAgdWludDY0X3Qg dWRbMiAqIE1BWF9WRUNfU0laRV9CWVRFUyAvIDhdOworICAgIGludDY0X3QgICBkWzIgKiBNQVhf VkVDX1NJWkVfQllURVMgLyA4XTsKKyAgICB1aW50MzJfdCB1d1syICogTUFYX1ZFQ19TSVpFX0JZ VEVTIC8gNF07CisgICAgaW50MzJfdCAgIHdbMiAqIE1BWF9WRUNfU0laRV9CWVRFUyAvIDRdOwor ICAgIHVpbnQxNl90IHVoWzIgKiBNQVhfVkVDX1NJWkVfQllURVMgLyAyXTsKKyAgICBpbnQxNl90 ICAgaFsyICogTUFYX1ZFQ19TSVpFX0JZVEVTIC8gMl07CisgICAgdWludDhfdCAgdWJbMiAqIE1B WF9WRUNfU0laRV9CWVRFUyAvIDFdOworICAgIGludDhfdCAgICBiWzIgKiBNQVhfVkVDX1NJWkVf QllURVMgLyAxXTsKKyAgICBNTVZlY3RvciB2WzJdOworfSBNTVZlY3RvclBhaXI7CisKK3R5cGVk ZWYgdW5pb24geworICAgIHVpbnQ2NF90IHVkW01BWF9WRUNfU0laRV9CWVRFUyAvIDggLyA4XTsK KyAgICBpbnQ2NF90ICAgZFtNQVhfVkVDX1NJWkVfQllURVMgLyA4IC8gOF07CisgICAgdWludDMy X3QgdXdbTUFYX1ZFQ19TSVpFX0JZVEVTIC8gNCAvIDhdOworICAgIGludDMyX3QgICB3W01BWF9W RUNfU0laRV9CWVRFUyAvIDQgLyA4XTsKKyAgICB1aW50MTZfdCB1aFtNQVhfVkVDX1NJWkVfQllU RVMgLyAyIC8gOF07CisgICAgaW50MTZfdCAgIGhbTUFYX1ZFQ19TSVpFX0JZVEVTIC8gMiAvIDhd OworICAgIHVpbnQ4X3QgIHViW01BWF9WRUNfU0laRV9CWVRFUyAvIDEgLyA4XTsKKyAgICBpbnQ4 X3QgICAgYltNQVhfVkVDX1NJWkVfQllURVMgLyAxIC8gOF07Cit9IE1NUVJlZzsKKwordHlwZWRl ZiBzdHJ1Y3QgeworICAgIE1NVmVjdG9yIGRhdGE7CisgICAgREVDTEFSRV9CSVRNQVAobWFzaywg TUFYX1ZFQ19TSVpFX0JZVEVTKTsKKyAgICBpbnQgc2l6ZTsKKyAgICB0YXJnZXRfdWxvbmcgdmFb TUFYX1ZFQ19TSVpFX0JZVEVTXTsKKyAgICBib29sIG9wOworICAgIGludCBvcF9zaXplOworfSBW VENNU3RvcmVMb2c7CisKKworLyogVHlwZXMgb2YgdmVjdG9yIHJlZ2lzdGVyIGFzc2lnbm1lbnQg Ki8KK3R5cGVkZWYgZW51bSB7CisgICAgRVhUX0RGTCwgICAgICAvKiBEZWZhdWx0ICovCisgICAg RVhUX05FVywgICAgICAvKiBOZXcgLSB2YWx1ZSB1c2VkIGluIHRoZSBzYW1lIHBhY2tldCAqLwor ICAgIEVYVF9UTVAgICAgICAgLyogVGVtcCAtIHZhbHVlIHVzZWQgYnV0IG5vdCBzdG9yZWQgdG8g cmVnaXN0ZXIgKi8KK30gVlJlZ1dyaXRlVHlwZTsKKworI2VuZGlmCmRpZmYgLS1naXQgYS90YXJn ZXQvaGV4YWdvbi9jcHUuYyBiL3RhcmdldC9oZXhhZ29uL2NwdS5jCmluZGV4IDMzMzgzNjUuLjk4 OWJkNzYgMTAwNjQ0Ci0tLSBhL3RhcmdldC9oZXhhZ29uL2NwdS5jCisrKyBiL3RhcmdldC9oZXhh Z29uL2NwdS5jCkBAIC0xMTMsNyArMTEzLDY2IEBAIHN0YXRpYyB2b2lkIHByaW50X3JlZyhGSUxF ICpmLCBDUFVIZXhhZ29uU3RhdGUgKmVudiwgaW50IHJlZ251bSkKICAgICAgICAgICAgICAgICAg aGV4YWdvbl9yZWduYW1lc1tyZWdudW1dLCB2YWx1ZSk7CiB9CiAKLXN0YXRpYyB2b2lkIGhleGFn b25fZHVtcChDUFVIZXhhZ29uU3RhdGUgKmVudiwgRklMRSAqZikKK3N0YXRpYyB2b2lkIHByaW50 X3ZyZWcoRklMRSAqZiwgQ1BVSGV4YWdvblN0YXRlICplbnYsIGludCByZWdudW0sCisgICAgICAg ICAgICAgICAgICAgICAgIGJvb2wgc2tpcF9pZl96ZXJvKQoreworICAgIGlmIChza2lwX2lmX3pl cm8pIHsKKyAgICAgICAgYm9vbCBub256ZXJvX2ZvdW5kID0gZmFsc2U7CisgICAgICAgIGZvciAo aW50IGkgPSAwOyBpIDwgTUFYX1ZFQ19TSVpFX0JZVEVTOyBpKyspIHsKKyAgICAgICAgICAgIGlm IChlbnYtPlZSZWdzW3JlZ251bV0udWJbaV0gIT0gMCkgeworICAgICAgICAgICAgICAgIG5vbnpl cm9fZm91bmQgPSB0cnVlOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQor ICAgICAgICB9CisgICAgICAgIGlmICghbm9uemVyb19mb3VuZCkgeworICAgICAgICAgICAgcmV0 dXJuOworICAgICAgICB9CisgICAgfQorCisgICAgcWVtdV9mcHJpbnRmKGYsICIgIHYlZCA9ICgg IiwgcmVnbnVtKTsKKyAgICBxZW11X2ZwcmludGYoZiwgIjB4JTAyeCIsIGVudi0+VlJlZ3NbcmVn bnVtXS51YltNQVhfVkVDX1NJWkVfQllURVMgLSAxXSk7CisgICAgZm9yIChpbnQgaSA9IE1BWF9W RUNfU0laRV9CWVRFUyAtIDI7IGkgPj0gMDsgaS0tKSB7CisgICAgICAgIHFlbXVfZnByaW50Zihm LCAiLCAweCUwMngiLCBlbnYtPlZSZWdzW3JlZ251bV0udWJbaV0pOworICAgIH0KKyAgICBxZW11 X2ZwcmludGYoZiwgIiApXG4iKTsKK30KKwordm9pZCBoZXhhZ29uX2RlYnVnX3ZyZWcoQ1BVSGV4 YWdvblN0YXRlICplbnYsIGludCByZWdudW0pCit7CisgICAgcHJpbnRfdnJlZyhzdGRvdXQsIGVu diwgcmVnbnVtLCBmYWxzZSk7Cit9CisKK3N0YXRpYyB2b2lkIHByaW50X3FyZWcoRklMRSAqZiwg Q1BVSGV4YWdvblN0YXRlICplbnYsIGludCByZWdudW0sCisgICAgICAgICAgICAgICAgICAgICAg IGJvb2wgc2tpcF9pZl96ZXJvKQoreworICAgIGlmIChza2lwX2lmX3plcm8pIHsKKyAgICAgICAg Ym9vbCBub256ZXJvX2ZvdW5kID0gZmFsc2U7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwg TUFYX1ZFQ19TSVpFX0JZVEVTIC8gODsgaSsrKSB7CisgICAgICAgICAgICBpZiAoZW52LT5RUmVn c1tyZWdudW1dLnViW2ldICE9IDApIHsKKyAgICAgICAgICAgICAgICBub256ZXJvX2ZvdW5kID0g dHJ1ZTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQor ICAgICAgICBpZiAoIW5vbnplcm9fZm91bmQpIHsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAg ICAgfQorICAgIH0KKworICAgIHFlbXVfZnByaW50ZihmLCAiICBxJWQgPSAoICIsIHJlZ251bSk7 CisgICAgcWVtdV9mcHJpbnRmKGYsICIweCUwMngiLAorICAgICAgICAgICAgICAgICBlbnYtPlFS ZWdzW3JlZ251bV0udWJbTUFYX1ZFQ19TSVpFX0JZVEVTIC8gOCAtIDFdKTsKKyAgICBmb3IgKGlu dCBpID0gTUFYX1ZFQ19TSVpFX0JZVEVTIC8gOCAtIDI7IGkgPj0gMDsgaS0tKSB7CisgICAgICAg IHFlbXVfZnByaW50ZihmLCAiLCAweCUwMngiLCBlbnYtPlFSZWdzW3JlZ251bV0udWJbaV0pOwor ICAgIH0KKyAgICBxZW11X2ZwcmludGYoZiwgIiApXG4iKTsKK30KKwordm9pZCBoZXhhZ29uX2Rl YnVnX3FyZWcoQ1BVSGV4YWdvblN0YXRlICplbnYsIGludCByZWdudW0pCit7CisgICAgcHJpbnRf cXJlZyhzdGRvdXQsIGVudiwgcmVnbnVtLCBmYWxzZSk7Cit9CisKK3N0YXRpYyB2b2lkIGhleGFn b25fZHVtcChDUFVIZXhhZ29uU3RhdGUgKmVudiwgRklMRSAqZiwgaW50IGZsYWdzKQogewogICAg IEhleGFnb25DUFUgKmNwdSA9IGVudl9hcmNoY3B1KGVudik7CiAKQEAgLTE1OSw2ICsyMTgsMTcg QEAgc3RhdGljIHZvaWQgaGV4YWdvbl9kdW1wKENQVUhleGFnb25TdGF0ZSAqZW52LCBGSUxFICpm KQogICAgIHByaW50X3JlZyhmLCBlbnYsIEhFWF9SRUdfQ1MxKTsKICNlbmRpZgogICAgIHFlbXVf ZnByaW50ZihmLCAifVxuIik7CisKKyAgICBpZiAoZmxhZ3MgJiBDUFVfRFVNUF9GUFUpIHsKKyAg ICAgICAgcWVtdV9mcHJpbnRmKGYsICJWZWN0b3IgUmVnaXN0ZXJzID0ge1xuIik7CisgICAgICAg IGZvciAoaW50IGkgPSAwOyBpIDwgTlVNX1ZSRUdTOyBpKyspIHsKKyAgICAgICAgICAgIHByaW50 X3ZyZWcoZiwgZW52LCBpLCB0cnVlKTsKKyAgICAgICAgfQorICAgICAgICBmb3IgKGludCBpID0g MDsgaSA8IE5VTV9RUkVHUzsgaSsrKSB7CisgICAgICAgICAgICBwcmludF9xcmVnKGYsIGVudiwg aSwgdHJ1ZSk7CisgICAgICAgIH0KKyAgICAgICAgcWVtdV9mcHJpbnRmKGYsICJ9XG4iKTsKKyAg ICB9CiB9CiAKIHN0YXRpYyB2b2lkIGhleGFnb25fZHVtcF9zdGF0ZShDUFVTdGF0ZSAqY3MsIEZJ TEUgKmYsIGludCBmbGFncykKQEAgLTE2NiwxMiArMjM2LDEyIEBAIHN0YXRpYyB2b2lkIGhleGFn b25fZHVtcF9zdGF0ZShDUFVTdGF0ZSAqY3MsIEZJTEUgKmYsIGludCBmbGFncykKICAgICBIZXhh Z29uQ1BVICpjcHUgPSBIRVhBR09OX0NQVShjcyk7CiAgICAgQ1BVSGV4YWdvblN0YXRlICplbnYg PSAmY3B1LT5lbnY7CiAKLSAgICBoZXhhZ29uX2R1bXAoZW52LCBmKTsKKyAgICBoZXhhZ29uX2R1 bXAoZW52LCBmLCBmbGFncyk7CiB9CiAKIHZvaWQgaGV4YWdvbl9kZWJ1ZyhDUFVIZXhhZ29uU3Rh dGUgKmVudikKIHsKLSAgICBoZXhhZ29uX2R1bXAoZW52LCBzdGRvdXQpOworICAgIGhleGFnb25f ZHVtcChlbnYsIHN0ZG91dCwgQ1BVX0RVTVBfRlBVKTsKIH0KIAogc3RhdGljIHZvaWQgaGV4YWdv bl9jcHVfc2V0X3BjKENQVVN0YXRlICpjcywgdmFkZHIgdmFsdWUpCkBAIC0yOTIsNyArMzYyLDcg QEAgc3RhdGljIHZvaWQgaGV4YWdvbl9jcHVfY2xhc3NfaW5pdChPYmplY3RDbGFzcyAqYywgdm9p ZCAqZGF0YSkKICAgICBjYy0+c2V0X3BjID0gaGV4YWdvbl9jcHVfc2V0X3BjOwogICAgIGNjLT5n ZGJfcmVhZF9yZWdpc3RlciA9IGhleGFnb25fZ2RiX3JlYWRfcmVnaXN0ZXI7CiAgICAgY2MtPmdk Yl93cml0ZV9yZWdpc3RlciA9IGhleGFnb25fZ2RiX3dyaXRlX3JlZ2lzdGVyOwotICAgIGNjLT5n ZGJfbnVtX2NvcmVfcmVncyA9IFRPVEFMX1BFUl9USFJFQURfUkVHUzsKKyAgICBjYy0+Z2RiX251 bV9jb3JlX3JlZ3MgPSBUT1RBTF9QRVJfVEhSRUFEX1JFR1MgKyBOVU1fVlJFR1MgKyBOVU1fUVJF R1M7CiAgICAgY2MtPmdkYl9zdG9wX2JlZm9yZV93YXRjaHBvaW50ID0gdHJ1ZTsKICAgICBjYy0+ ZGlzYXNfc2V0X2luZm8gPSBoZXhhZ29uX2NwdV9kaXNhc19zZXRfaW5mbzsKICAgICBjYy0+dGNn X29wcyA9ICZoZXhhZ29uX3RjZ19vcHM7Ci0tIAoyLjcuNAoK