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 X-Spam-Level: X-Spam-Status: No, score=-16.6 required=3.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 056BEC433EF for ; Mon, 20 Sep 2021 21:48:10 +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 A846360F48 for ; Mon, 20 Sep 2021 21:48:09 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.4.1 mail.kernel.org A846360F48 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]:39148 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mSR8y-0006ND-RM for qemu-devel@archiver.kernel.org; Mon, 20 Sep 2021 17:48:08 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:60436) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mSQmY-0002N5-1A for qemu-devel@nongnu.org; Mon, 20 Sep 2021 17:24:58 -0400 Received: from alexa-out-sd-02.qualcomm.com ([199.106.114.39]:9866) by eggs.gnu.org with esmtps (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.90_1) (envelope-from ) id 1mSQmI-000268-Fh for qemu-devel@nongnu.org; Mon, 20 Sep 2021 17:24:57 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=quicinc.com; i=@quicinc.com; q=dns/txt; s=qcdkim; t=1632173082; x=1663709082; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=xMdutcnUa11iRS9YzsgSaYN9Mejz3tfk5LsSERM7fDo=; b=l+KAXxE4yoQ6hU+UpsHd6xHHShhTpzJ1rdBYC9JJQdQKQg4Qx6davc8e Gpmtd09yDS2yT9MxgofXMVT3rhw5SAyT67c2EP19ycRj2vHnX+P4+37Gl e+EmhisdZb6eTxRZ7QSn7ZVTTVkG/4VhL/htCIY56TcHbK+tjpPtyJz26 U=; Received: from unknown (HELO ironmsg-SD-alpha.qualcomm.com) ([10.53.140.30]) by alexa-out-sd-02.qualcomm.com with ESMTP; 20 Sep 2021 14:24:36 -0700 X-QCInternal: smtphost Received: from vu-tsimpson-aus.qualcomm.com (HELO vu-tsimpson1-aus.qualcomm.com) ([10.222.150.1]) by ironmsg-SD-alpha.qualcomm.com with ESMTP; 20 Sep 2021 14:24:35 -0700 Received: by vu-tsimpson1-aus.qualcomm.com (Postfix, from userid 47164) id 96B921279; Mon, 20 Sep 2021 16:24:35 -0500 (CDT) From: Taylor Simpson To: qemu-devel@nongnu.org Subject: [PATCH v3 02/30] Hexagon HVX (target/hexagon) add Hexagon Vector eXtensions (HVX) to core Date: Mon, 20 Sep 2021 16:23:57 -0500 Message-Id: <1632173065-18522-3-git-send-email-tsimpson@quicinc.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1632173065-18522-1-git-send-email-tsimpson@quicinc.com> References: <1632173065-18522-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.39; envelope-from=tsimpson@qualcomm.com; helo=alexa-out-sd-02.qualcomm.com X-Spam_score_int: -17 X-Spam_score: -1.8 X-Spam_bar: - X-Spam_report: (-1.8 / 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.25, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no 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 dGhlcikKClNpZ25lZC1vZmYtYnk6IFRheWxvciBTaW1wc29uIDx0c2ltcHNvbkBxdWljaW5jLmNv bT4KLS0tCiB0YXJnZXQvaGV4YWdvbi9jcHUuaCAgICAgICAgICAgIHwgMzUgKysrKysrKysrKysr KysrKy0KIHRhcmdldC9oZXhhZ29uL2hleF9hcmNoX3R5cGVzLmggfCAgNSArKysKIHRhcmdldC9o ZXhhZ29uL2luc24uaCAgICAgICAgICAgfCAgMyArKwogdGFyZ2V0L2hleGFnb24vaW50ZXJuYWwu aCAgICAgICB8ICAzICsrCiB0YXJnZXQvaGV4YWdvbi9tbXZlYy9tbXZlYy5oICAgIHwgODMgKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIHRhcmdldC9oZXhhZ29uL2Nw dS5jICAgICAgICAgICAgfCA3OCArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKyst LQogNiBmaWxlcyBjaGFuZ2VkLCAyMDEgaW5zZXJ0aW9ucygrKSwgNiBkZWxldGlvbnMoLSkKIGNy ZWF0ZSBtb2RlIDEwMDY0NCB0YXJnZXQvaGV4YWdvbi9tbXZlYy9tbXZlYy5oCgpkaWZmIC0tZ2l0 IGEvdGFyZ2V0L2hleGFnb24vY3B1LmggYi90YXJnZXQvaGV4YWdvbi9jcHUuaAppbmRleCAyODU1 ZGQzLi43ZTMyYzg4IDEwMDY0NAotLS0gYS90YXJnZXQvaGV4YWdvbi9jcHUuaAorKysgYi90YXJn ZXQvaGV4YWdvbi9jcHUuaApAQCAtMjYsNiArMjYsNyBAQCB0eXBlZGVmIHN0cnVjdCBDUFVIZXhh Z29uU3RhdGUgQ1BVSGV4YWdvblN0YXRlOwogI2luY2x1ZGUgInFlbXUtY29tbW9uLmgiCiAjaW5j bHVkZSAiZXhlYy9jcHUtZGVmcy5oIgogI2luY2x1ZGUgImhleF9yZWdzLmgiCisjaW5jbHVkZSAi bW12ZWMvbW12ZWMuaCIKIAogI2RlZmluZSBOVU1fUFJFR1MgNAogI2RlZmluZSBUT1RBTF9QRVJf VEhSRUFEX1JFR1MgNjQKQEAgLTM0LDYgKzM1LDcgQEAgdHlwZWRlZiBzdHJ1Y3QgQ1BVSGV4YWdv blN0YXRlIENQVUhleGFnb25TdGF0ZTsKICNkZWZpbmUgU1RPUkVTX01BWCAyCiAjZGVmaW5lIFJF R19XUklURVNfTUFYIDMyCiAjZGVmaW5lIFBSRURfV1JJVEVTX01BWCA1ICAgICAgICAgICAgICAg ICAgIC8qIDQgaW5zbnMgKyBlbmRsb29wICovCisjZGVmaW5lIFZTVE9SRVNfTUFYIDIKIAogI2Rl ZmluZSBUWVBFX0hFWEFHT05fQ1BVICJoZXhhZ29uLWNwdSIKIApAQCAtNTIsNiArNTQsMTMgQEAg dHlwZWRlZiBzdHJ1Y3QgewogICAgIHVpbnQ2NF90IGRhdGE2NDsKIH0gTWVtTG9nOwogCit0eXBl ZGVmIHN0cnVjdCB7CisgICAgdGFyZ2V0X3Vsb25nIHZhOworICAgIGludCBzaXplOworICAgIERF Q0xBUkVfQklUTUFQKG1hc2ssIE1BWF9WRUNfU0laRV9CWVRFUyAvIDgpIFFFTVVfQUxJR05FRCgx Nik7CisgICAgTU1WZWN0b3IgZGF0YSBRRU1VX0FMSUdORUQoMTYpOworfSBWU3RvcmVMb2c7CisK ICNkZWZpbmUgRVhFQ19TVEFUVVNfT0sgICAgICAgICAgMHgwMDAwCiAjZGVmaW5lIEVYRUNfU1RB VFVTX1NUT1AgICAgICAgIDB4MDAwMgogI2RlZmluZSBFWEVDX1NUQVRVU19SRVBMQVkgICAgICAw eDAwMTAKQEAgLTY0LDYgKzczLDkgQEAgdHlwZWRlZiBzdHJ1Y3QgewogI2RlZmluZSBDTEVBUl9F WENFUFRJT04gICAgICAgICAoZW52LT5zdGF0dXMgJj0gKH5FWEVDX1NUQVRVU19FWENFUFRJT04p KQogI2RlZmluZSBTRVRfRVhDRVBUSU9OICAgICAgICAgICAoZW52LT5zdGF0dXMgfD0gRVhFQ19T VEFUVVNfRVhDRVBUSU9OKQogCisvKiBNYXhpbXVtIG51bWJlciBvZiB2ZWN0b3IgdGVtcHMgaW4g YSBwYWNrZXQgKi8KKyNkZWZpbmUgVkVDVE9SX1RFTVBTX01BWCAgICAgICAgICAgIDQKKwogc3Ry dWN0IENQVUhleGFnb25TdGF0ZSB7CiAgICAgdGFyZ2V0X3Vsb25nIGdwcltUT1RBTF9QRVJfVEhS RUFEX1JFR1NdOwogICAgIHRhcmdldF91bG9uZyBwcmVkW05VTV9QUkVHU107CkBAIC05Nyw4ICsx MDksMjcgQEAgc3RydWN0IENQVUhleGFnb25TdGF0ZSB7CiAgICAgdGFyZ2V0X3Vsb25nIGxsc2Nf dmFsOwogICAgIHVpbnQ2NF90ICAgICBsbHNjX3ZhbF9pNjQ7CiAKLSAgICB0YXJnZXRfdWxvbmcg aXNfZ2F0aGVyX3N0b3JlX2luc247Ci0gICAgdGFyZ2V0X3Vsb25nIGdhdGhlcl9pc3N1ZWQ7Cisg ICAgTU1WZWN0b3IgVlJlZ3NbTlVNX1ZSRUdTXSBRRU1VX0FMSUdORUQoMTYpOworICAgIE1NVmVj dG9yIGZ1dHVyZV9WUmVnc1tWRUNUT1JfVEVNUFNfTUFYXSBRRU1VX0FMSUdORUQoMTYpOworICAg IE1NVmVjdG9yIHRtcF9WUmVnc1tWRUNUT1JfVEVNUFNfTUFYXSBRRU1VX0FMSUdORUQoMTYpOwor CisgICAgVlJlZ01hc2sgVlJlZ3NfdXBkYXRlZDsKKworICAgIE1NUVJlZyBRUmVnc1tOVU1fUVJF R1NdIFFFTVVfQUxJR05FRCgxNik7CisgICAgTU1RUmVnIGZ1dHVyZV9RUmVnc1tOVU1fUVJFR1Nd IFFFTVVfQUxJR05FRCgxNik7CisgICAgUVJlZ01hc2sgUVJlZ3NfdXBkYXRlZDsKKworICAgIC8q IFRlbXBvcmFyaWVzIHVzZWQgd2l0aGluIGluc3RydWN0aW9ucyAqLworICAgIE1NVmVjdG9yUGFp ciBWdXVWIFFFTVVfQUxJR05FRCgxNik7CisgICAgTU1WZWN0b3JQYWlyIFZ2dlYgUUVNVV9BTElH TkVEKDE2KTsKKyAgICBNTVZlY3RvclBhaXIgVnh4ViBRRU1VX0FMSUdORUQoMTYpOworICAgIE1N VmVjdG9yICAgICB2dG1wIFFFTVVfQUxJR05FRCgxNik7CisgICAgTU1RUmVnICAgICAgIHF0bXAg UUVNVV9BTElHTkVEKDE2KTsKKworICAgIFZTdG9yZUxvZyB2c3RvcmVbVlNUT1JFU19NQVhdOwor ICAgIHRhcmdldF91bG9uZyB2c3RvcmVfcGVuZGluZ1tWU1RPUkVTX01BWF07CisgICAgYm9vbCB2 dGNtX3BlbmRpbmc7CisgICAgVlRDTVN0b3JlTG9nIHZ0Y21fbG9nOwogfTsKIAogI2RlZmluZSBI RVhBR09OX0NQVV9DTEFTUyhrbGFzcykgXApkaWZmIC0tZ2l0IGEvdGFyZ2V0L2hleGFnb24vaGV4 X2FyY2hfdHlwZXMuaCBiL3RhcmdldC9oZXhhZ29uL2hleF9hcmNoX3R5cGVzLmgKaW5kZXggZDcy MWUxZi4uNzhhZDYwNyAxMDA2NDQKLS0tIGEvdGFyZ2V0L2hleGFnb24vaGV4X2FyY2hfdHlwZXMu aAorKysgYi90YXJnZXQvaGV4YWdvbi9oZXhfYXJjaF90eXBlcy5oCkBAIC0xOSw2ICsxOSw3IEBA CiAjZGVmaW5lIEhFWEFHT05fQVJDSF9UWVBFU19ICiAKICNpbmNsdWRlICJxZW11L29zZGVwLmgi CisjaW5jbHVkZSAibW12ZWMvbW12ZWMuaCIKICNpbmNsdWRlICJxZW11L2ludDEyOC5oIgogCiAv KgpAQCAtMzUsNCArMzYsOCBAQCB0eXBlZGVmIHVpbnQ2NF90ICAgIHNpemU4dV90OwogdHlwZWRl ZiBpbnQ2NF90ICAgICBzaXplOHNfdDsKIHR5cGVkZWYgSW50MTI4ICAgICAgc2l6ZTE2c190Owog Cit0eXBlZGVmIE1NVmVjdG9yICAgICAgICAgIG1tdmVjdG9yX3Q7Cit0eXBlZGVmIE1NVmVjdG9y UGFpciAgICAgIG1tdmVjdG9yX3BhaXJfdDsKK3R5cGVkZWYgTU1RUmVnICAgICAgICAgICAgbW1x cmV0X3Q7CisKICNlbmRpZgpkaWZmIC0tZ2l0IGEvdGFyZ2V0L2hleGFnb24vaW5zbi5oIGIvdGFy Z2V0L2hleGFnb24vaW5zbi5oCmluZGV4IDJlMzQ1OTEuLmFhMjYzODkgMTAwNjQ0Ci0tLSBhL3Rh cmdldC9oZXhhZ29uL2luc24uaAorKysgYi90YXJnZXQvaGV4YWdvbi9pbnNuLmgKQEAgLTY3LDYg KzY3LDkgQEAgc3RydWN0IFBhY2tldCB7CiAgICAgYm9vbCBwa3RfaGFzX3N0b3JlX3MwOwogICAg IGJvb2wgcGt0X2hhc19zdG9yZV9zMTsKIAorICAgIGJvb2wgcGt0X2hhc19odng7CisgICAgSW5z biAqdmhpc3RfaW5zbjsKKwogICAgIEluc24gaW5zbltJTlNUUlVDVElPTlNfTUFYXTsKIH07CiAK ZGlmZiAtLWdpdCBhL3RhcmdldC9oZXhhZ29uL2ludGVybmFsLmggYi90YXJnZXQvaGV4YWdvbi9p bnRlcm5hbC5oCmluZGV4IDZiMjBhZmYuLjgyYWMzMDQgMTAwNjQ0Ci0tLSBhL3RhcmdldC9oZXhh Z29uL2ludGVybmFsLmgKKysrIGIvdGFyZ2V0L2hleGFnb24vaW50ZXJuYWwuaApAQCAtMzEsNiAr MzEsOSBAQAogCiBpbnQgaGV4YWdvbl9nZGJfcmVhZF9yZWdpc3RlcihDUFVTdGF0ZSAqY3B1LCBH Qnl0ZUFycmF5ICpidWYsIGludCByZWcpOwogaW50IGhleGFnb25fZ2RiX3dyaXRlX3JlZ2lzdGVy KENQVVN0YXRlICpjcHUsIHVpbnQ4X3QgKmJ1ZiwgaW50IHJlZyk7CisKK3ZvaWQgaGV4YWdvbl9k ZWJ1Z192cmVnKENQVUhleGFnb25TdGF0ZSAqZW52LCBpbnQgcmVnbnVtKTsKK3ZvaWQgaGV4YWdv bl9kZWJ1Z19xcmVnKENQVUhleGFnb25TdGF0ZSAqZW52LCBpbnQgcmVnbnVtKTsKIHZvaWQgaGV4 YWdvbl9kZWJ1ZyhDUFVIZXhhZ29uU3RhdGUgKmVudik7CiAKIGV4dGVybiBjb25zdCBjaGFyICog Y29uc3QgaGV4YWdvbl9yZWduYW1lc1tUT1RBTF9QRVJfVEhSRUFEX1JFR1NdOwpkaWZmIC0tZ2l0 IGEvdGFyZ2V0L2hleGFnb24vbW12ZWMvbW12ZWMuaCBiL3RhcmdldC9oZXhhZ29uL21tdmVjL21t dmVjLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjE5NmM1MgotLS0gL2Rl di9udWxsCisrKyBiL3RhcmdldC9oZXhhZ29uL21tdmVjL21tdmVjLmgKQEAgLTAsMCArMSw4MyBA QAorLyoKKyAqICBDb3B5cmlnaHQoYykgMjAxOS0yMDIxIFF1YWxjb21tIElubm92YXRpb24gQ2Vu dGVyLCBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogIFRoaXMgcHJvZ3JhbSBpcyBm cmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisgKiAg aXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBw dWJsaXNoZWQgYnkKKyAqICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVy c2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgorICogIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVy IHZlcnNpb24uCisgKgorICogIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9w ZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsg d2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiAgTUVSQ0hBTlRBQklMSVRZ IG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorICogIEdOVSBH ZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogIFlvdSBzaG91 bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl CisgKiAgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgc2VlIDxodHRwOi8vd3d3Lmdu dS5vcmcvbGljZW5zZXMvPi4KKyAqLworCisjaWZuZGVmIEhFWEFHT05fTU1WRUNfSAorI2RlZmlu ZSBIRVhBR09OX01NVkVDX0gKKworI2RlZmluZSBNQVhfVkVDX1NJWkVfTE9HQllURVMgNworI2Rl ZmluZSBNQVhfVkVDX1NJWkVfQllURVMgICgxIDw8IE1BWF9WRUNfU0laRV9MT0dCWVRFUykKKwor I2RlZmluZSBOVU1fVlJFR1MgICAgICAgICAgIDMyCisjZGVmaW5lIE5VTV9RUkVHUyAgICAgICAg ICAgNAorCit0eXBlZGVmIHVpbnQzMl90IFZSZWdNYXNrOyAvKiBhdCBsZWFzdCBOVU1fVlJFR1Mg Yml0cyAqLwordHlwZWRlZiB1aW50MzJfdCBRUmVnTWFzazsgLyogYXQgbGVhc3QgTlVNX1FSRUdT IGJpdHMgKi8KKworI2RlZmluZSBWRUNUT1JfU0laRV9CWVRFICAgIChmVkVDU0laRSgpKQorCit0 eXBlZGVmIHVuaW9uIHsKKyAgICB1aW50NjRfdCB1ZFtNQVhfVkVDX1NJWkVfQllURVMgLyA4XTsK KyAgICBpbnQ2NF90ICAgZFtNQVhfVkVDX1NJWkVfQllURVMgLyA4XTsKKyAgICB1aW50MzJfdCB1 d1tNQVhfVkVDX1NJWkVfQllURVMgLyA0XTsKKyAgICBpbnQzMl90ICAgd1tNQVhfVkVDX1NJWkVf QllURVMgLyA0XTsKKyAgICB1aW50MTZfdCB1aFtNQVhfVkVDX1NJWkVfQllURVMgLyAyXTsKKyAg ICBpbnQxNl90ICAgaFtNQVhfVkVDX1NJWkVfQllURVMgLyAyXTsKKyAgICB1aW50OF90ICB1YltN QVhfVkVDX1NJWkVfQllURVMgLyAxXTsKKyAgICBpbnQ4X3QgICAgYltNQVhfVkVDX1NJWkVfQllU RVMgLyAxXTsKK30gTU1WZWN0b3I7CisKK3R5cGVkZWYgdW5pb24geworICAgIHVpbnQ2NF90IHVk WzIgKiBNQVhfVkVDX1NJWkVfQllURVMgLyA4XTsKKyAgICBpbnQ2NF90ICAgZFsyICogTUFYX1ZF Q19TSVpFX0JZVEVTIC8gOF07CisgICAgdWludDMyX3QgdXdbMiAqIE1BWF9WRUNfU0laRV9CWVRF UyAvIDRdOworICAgIGludDMyX3QgICB3WzIgKiBNQVhfVkVDX1NJWkVfQllURVMgLyA0XTsKKyAg ICB1aW50MTZfdCB1aFsyICogTUFYX1ZFQ19TSVpFX0JZVEVTIC8gMl07CisgICAgaW50MTZfdCAg IGhbMiAqIE1BWF9WRUNfU0laRV9CWVRFUyAvIDJdOworICAgIHVpbnQ4X3QgIHViWzIgKiBNQVhf VkVDX1NJWkVfQllURVMgLyAxXTsKKyAgICBpbnQ4X3QgICAgYlsyICogTUFYX1ZFQ19TSVpFX0JZ VEVTIC8gMV07CisgICAgTU1WZWN0b3IgdlsyXTsKK30gTU1WZWN0b3JQYWlyOworCit0eXBlZGVm IHVuaW9uIHsKKyAgICB1aW50NjRfdCB1ZFtNQVhfVkVDX1NJWkVfQllURVMgLyA4IC8gOF07Cisg ICAgaW50NjRfdCAgIGRbTUFYX1ZFQ19TSVpFX0JZVEVTIC8gOCAvIDhdOworICAgIHVpbnQzMl90 IHV3W01BWF9WRUNfU0laRV9CWVRFUyAvIDQgLyA4XTsKKyAgICBpbnQzMl90ICAgd1tNQVhfVkVD X1NJWkVfQllURVMgLyA0IC8gOF07CisgICAgdWludDE2X3QgdWhbTUFYX1ZFQ19TSVpFX0JZVEVT IC8gMiAvIDhdOworICAgIGludDE2X3QgICBoW01BWF9WRUNfU0laRV9CWVRFUyAvIDIgLyA4XTsK KyAgICB1aW50OF90ICB1YltNQVhfVkVDX1NJWkVfQllURVMgLyAxIC8gOF07CisgICAgaW50OF90 ICAgIGJbTUFYX1ZFQ19TSVpFX0JZVEVTIC8gMSAvIDhdOworfSBNTVFSZWc7CisKK3R5cGVkZWYg c3RydWN0IHsKKyAgICBNTVZlY3RvciBkYXRhOworICAgIERFQ0xBUkVfQklUTUFQKG1hc2ssIE1B WF9WRUNfU0laRV9CWVRFUyk7CisgICAgaW50IHNpemU7CisgICAgdGFyZ2V0X3Vsb25nIHZhW01B WF9WRUNfU0laRV9CWVRFU107CisgICAgYm9vbCBvcDsKKyAgICBpbnQgb3Bfc2l6ZTsKK30gVlRD TVN0b3JlTG9nOworCisKKy8qIFR5cGVzIG9mIHZlY3RvciByZWdpc3RlciBhc3NpZ25tZW50ICov Cit0eXBlZGVmIGVudW0geworICAgIEVYVF9ERkwsICAgICAgLyogRGVmYXVsdCAqLworICAgIEVY VF9ORVcsICAgICAgLyogTmV3IC0gdmFsdWUgdXNlZCBpbiB0aGUgc2FtZSBwYWNrZXQgKi8KKyAg ICBFWFRfVE1QICAgICAgIC8qIFRlbXAgLSB2YWx1ZSB1c2VkIGJ1dCBub3Qgc3RvcmVkIHRvIHJl Z2lzdGVyICovCit9IFZSZWdXcml0ZVR5cGU7CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvdGFyZ2V0 L2hleGFnb24vY3B1LmMgYi90YXJnZXQvaGV4YWdvbi9jcHUuYwppbmRleCAzMzM4MzY1Li45ODli ZDc2IDEwMDY0NAotLS0gYS90YXJnZXQvaGV4YWdvbi9jcHUuYworKysgYi90YXJnZXQvaGV4YWdv bi9jcHUuYwpAQCAtMTEzLDcgKzExMyw2NiBAQCBzdGF0aWMgdm9pZCBwcmludF9yZWcoRklMRSAq ZiwgQ1BVSGV4YWdvblN0YXRlICplbnYsIGludCByZWdudW0pCiAgICAgICAgICAgICAgICAgIGhl eGFnb25fcmVnbmFtZXNbcmVnbnVtXSwgdmFsdWUpOwogfQogCi1zdGF0aWMgdm9pZCBoZXhhZ29u X2R1bXAoQ1BVSGV4YWdvblN0YXRlICplbnYsIEZJTEUgKmYpCitzdGF0aWMgdm9pZCBwcmludF92 cmVnKEZJTEUgKmYsIENQVUhleGFnb25TdGF0ZSAqZW52LCBpbnQgcmVnbnVtLAorICAgICAgICAg ICAgICAgICAgICAgICBib29sIHNraXBfaWZfemVybykKK3sKKyAgICBpZiAoc2tpcF9pZl96ZXJv KSB7CisgICAgICAgIGJvb2wgbm9uemVyb19mb3VuZCA9IGZhbHNlOworICAgICAgICBmb3IgKGlu dCBpID0gMDsgaSA8IE1BWF9WRUNfU0laRV9CWVRFUzsgaSsrKSB7CisgICAgICAgICAgICBpZiAo ZW52LT5WUmVnc1tyZWdudW1dLnViW2ldICE9IDApIHsKKyAgICAgICAgICAgICAgICBub256ZXJv X2ZvdW5kID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAg ICAgICAgfQorICAgICAgICBpZiAoIW5vbnplcm9fZm91bmQpIHsKKyAgICAgICAgICAgIHJldHVy bjsKKyAgICAgICAgfQorICAgIH0KKworICAgIHFlbXVfZnByaW50ZihmLCAiICB2JWQgPSAoICIs IHJlZ251bSk7CisgICAgcWVtdV9mcHJpbnRmKGYsICIweCUwMngiLCBlbnYtPlZSZWdzW3JlZ251 bV0udWJbTUFYX1ZFQ19TSVpFX0JZVEVTIC0gMV0pOworICAgIGZvciAoaW50IGkgPSBNQVhfVkVD X1NJWkVfQllURVMgLSAyOyBpID49IDA7IGktLSkgeworICAgICAgICBxZW11X2ZwcmludGYoZiwg IiwgMHglMDJ4IiwgZW52LT5WUmVnc1tyZWdudW1dLnViW2ldKTsKKyAgICB9CisgICAgcWVtdV9m cHJpbnRmKGYsICIgKVxuIik7Cit9CisKK3ZvaWQgaGV4YWdvbl9kZWJ1Z192cmVnKENQVUhleGFn b25TdGF0ZSAqZW52LCBpbnQgcmVnbnVtKQoreworICAgIHByaW50X3ZyZWcoc3Rkb3V0LCBlbnYs IHJlZ251bSwgZmFsc2UpOworfQorCitzdGF0aWMgdm9pZCBwcmludF9xcmVnKEZJTEUgKmYsIENQ VUhleGFnb25TdGF0ZSAqZW52LCBpbnQgcmVnbnVtLAorICAgICAgICAgICAgICAgICAgICAgICBi b29sIHNraXBfaWZfemVybykKK3sKKyAgICBpZiAoc2tpcF9pZl96ZXJvKSB7CisgICAgICAgIGJv b2wgbm9uemVyb19mb3VuZCA9IGZhbHNlOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IE1B WF9WRUNfU0laRV9CWVRFUyAvIDg7IGkrKykgeworICAgICAgICAgICAgaWYgKGVudi0+UVJlZ3Nb cmVnbnVtXS51YltpXSAhPSAwKSB7CisgICAgICAgICAgICAgICAgbm9uemVyb19mb3VuZCA9IHRy dWU7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAg ICAgICAgaWYgKCFub256ZXJvX2ZvdW5kKSB7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAg IH0KKyAgICB9CisKKyAgICBxZW11X2ZwcmludGYoZiwgIiAgcSVkID0gKCAiLCByZWdudW0pOwor ICAgIHFlbXVfZnByaW50ZihmLCAiMHglMDJ4IiwKKyAgICAgICAgICAgICAgICAgZW52LT5RUmVn c1tyZWdudW1dLnViW01BWF9WRUNfU0laRV9CWVRFUyAvIDggLSAxXSk7CisgICAgZm9yIChpbnQg aSA9IE1BWF9WRUNfU0laRV9CWVRFUyAvIDggLSAyOyBpID49IDA7IGktLSkgeworICAgICAgICBx ZW11X2ZwcmludGYoZiwgIiwgMHglMDJ4IiwgZW52LT5RUmVnc1tyZWdudW1dLnViW2ldKTsKKyAg ICB9CisgICAgcWVtdV9mcHJpbnRmKGYsICIgKVxuIik7Cit9CisKK3ZvaWQgaGV4YWdvbl9kZWJ1 Z19xcmVnKENQVUhleGFnb25TdGF0ZSAqZW52LCBpbnQgcmVnbnVtKQoreworICAgIHByaW50X3Fy ZWcoc3Rkb3V0LCBlbnYsIHJlZ251bSwgZmFsc2UpOworfQorCitzdGF0aWMgdm9pZCBoZXhhZ29u X2R1bXAoQ1BVSGV4YWdvblN0YXRlICplbnYsIEZJTEUgKmYsIGludCBmbGFncykKIHsKICAgICBI ZXhhZ29uQ1BVICpjcHUgPSBlbnZfYXJjaGNwdShlbnYpOwogCkBAIC0xNTksNiArMjE4LDE3IEBA IHN0YXRpYyB2b2lkIGhleGFnb25fZHVtcChDUFVIZXhhZ29uU3RhdGUgKmVudiwgRklMRSAqZikK ICAgICBwcmludF9yZWcoZiwgZW52LCBIRVhfUkVHX0NTMSk7CiAjZW5kaWYKICAgICBxZW11X2Zw cmludGYoZiwgIn1cbiIpOworCisgICAgaWYgKGZsYWdzICYgQ1BVX0RVTVBfRlBVKSB7CisgICAg ICAgIHFlbXVfZnByaW50ZihmLCAiVmVjdG9yIFJlZ2lzdGVycyA9IHtcbiIpOworICAgICAgICBm b3IgKGludCBpID0gMDsgaSA8IE5VTV9WUkVHUzsgaSsrKSB7CisgICAgICAgICAgICBwcmludF92 cmVnKGYsIGVudiwgaSwgdHJ1ZSk7CisgICAgICAgIH0KKyAgICAgICAgZm9yIChpbnQgaSA9IDA7 IGkgPCBOVU1fUVJFR1M7IGkrKykgeworICAgICAgICAgICAgcHJpbnRfcXJlZyhmLCBlbnYsIGks IHRydWUpOworICAgICAgICB9CisgICAgICAgIHFlbXVfZnByaW50ZihmLCAifVxuIik7CisgICAg fQogfQogCiBzdGF0aWMgdm9pZCBoZXhhZ29uX2R1bXBfc3RhdGUoQ1BVU3RhdGUgKmNzLCBGSUxF ICpmLCBpbnQgZmxhZ3MpCkBAIC0xNjYsMTIgKzIzNiwxMiBAQCBzdGF0aWMgdm9pZCBoZXhhZ29u X2R1bXBfc3RhdGUoQ1BVU3RhdGUgKmNzLCBGSUxFICpmLCBpbnQgZmxhZ3MpCiAgICAgSGV4YWdv bkNQVSAqY3B1ID0gSEVYQUdPTl9DUFUoY3MpOwogICAgIENQVUhleGFnb25TdGF0ZSAqZW52ID0g JmNwdS0+ZW52OwogCi0gICAgaGV4YWdvbl9kdW1wKGVudiwgZik7CisgICAgaGV4YWdvbl9kdW1w KGVudiwgZiwgZmxhZ3MpOwogfQogCiB2b2lkIGhleGFnb25fZGVidWcoQ1BVSGV4YWdvblN0YXRl ICplbnYpCiB7Ci0gICAgaGV4YWdvbl9kdW1wKGVudiwgc3Rkb3V0KTsKKyAgICBoZXhhZ29uX2R1 bXAoZW52LCBzdGRvdXQsIENQVV9EVU1QX0ZQVSk7CiB9CiAKIHN0YXRpYyB2b2lkIGhleGFnb25f Y3B1X3NldF9wYyhDUFVTdGF0ZSAqY3MsIHZhZGRyIHZhbHVlKQpAQCAtMjkyLDcgKzM2Miw3IEBA IHN0YXRpYyB2b2lkIGhleGFnb25fY3B1X2NsYXNzX2luaXQoT2JqZWN0Q2xhc3MgKmMsIHZvaWQg KmRhdGEpCiAgICAgY2MtPnNldF9wYyA9IGhleGFnb25fY3B1X3NldF9wYzsKICAgICBjYy0+Z2Ri X3JlYWRfcmVnaXN0ZXIgPSBoZXhhZ29uX2dkYl9yZWFkX3JlZ2lzdGVyOwogICAgIGNjLT5nZGJf d3JpdGVfcmVnaXN0ZXIgPSBoZXhhZ29uX2dkYl93cml0ZV9yZWdpc3RlcjsKLSAgICBjYy0+Z2Ri X251bV9jb3JlX3JlZ3MgPSBUT1RBTF9QRVJfVEhSRUFEX1JFR1M7CisgICAgY2MtPmdkYl9udW1f Y29yZV9yZWdzID0gVE9UQUxfUEVSX1RIUkVBRF9SRUdTICsgTlVNX1ZSRUdTICsgTlVNX1FSRUdT OwogICAgIGNjLT5nZGJfc3RvcF9iZWZvcmVfd2F0Y2hwb2ludCA9IHRydWU7CiAgICAgY2MtPmRp c2FzX3NldF9pbmZvID0gaGV4YWdvbl9jcHVfZGlzYXNfc2V0X2luZm87CiAgICAgY2MtPnRjZ19v cHMgPSAmaGV4YWdvbl90Y2dfb3BzOwotLSAKMi43LjQKCg==