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=-12.6 required=3.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,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 32A17C433DF for ; Tue, 18 Aug 2020 16:11:17 +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 E0195207DA for ; Tue, 18 Aug 2020 16:11:16 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (1024-bit key) header.d=quicinc.com header.i=@quicinc.com header.b="rQomB2dr" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org E0195207DA Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=quicinc.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Received: from localhost ([::1]:53504 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1k84Ci-0008Qd-5a for qemu-devel@archiver.kernel.org; Tue, 18 Aug 2020 12:11:16 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:32898) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1k83tq-0007ob-Bq for qemu-devel@nongnu.org; Tue, 18 Aug 2020 11:51:46 -0400 Received: from alexa-out-sd-02.qualcomm.com ([199.106.114.39]:12936) by eggs.gnu.org with esmtps (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.90_1) (envelope-from ) id 1k83tm-0005rl-HU for qemu-devel@nongnu.org; Tue, 18 Aug 2020 11:51:46 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=quicinc.com; i=@quicinc.com; q=dns/txt; s=qcdkim; t=1597765902; x=1629301902; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=iaJkuYjU0vcCJ2mlm/xrc1athAWwYfw26Z3A3RoD7Ds=; b=rQomB2drtql+KyXnnHknYZC4WRjIvbFI1OATH8Qn2fh0Ps+twDgd6//c hs7i+bbwYMNk10RPFM0ZKpz/s6Bw2ECoE1b0UGHayuvT52mUaFbjlV+UE KXmdjRR79H63vUn1jaft6k2s+IiWdQQeJeMfkXwpUQSndq/eVjuELApOa U=; Received: from unknown (HELO ironmsg04-sd.qualcomm.com) ([10.53.140.144]) by alexa-out-sd-02.qualcomm.com with ESMTP; 18 Aug 2020 08:50:59 -0700 Received: from vu-tsimpson-aus.qualcomm.com (HELO vu-tsimpson1-aus.qualcomm.com) ([10.222.150.1]) by ironmsg04-sd.qualcomm.com with ESMTP; 18 Aug 2020 08:50:58 -0700 Received: by vu-tsimpson1-aus.qualcomm.com (Postfix, from userid 47164) id 9105B18D8; Tue, 18 Aug 2020 10:50:58 -0500 (CDT) From: Taylor Simpson To: qemu-devel@nongnu.org Subject: [RFC PATCH v3 28/34] Hexagon (target/hexagon) TCG generation helpers Date: Tue, 18 Aug 2020 10:50:41 -0500 Message-Id: <1597765847-16637-29-git-send-email-tsimpson@quicinc.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1597765847-16637-1-git-send-email-tsimpson@quicinc.com> References: <1597765847-16637-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-detected-operating-system: by eggs.gnu.org: First seen = 2020/08/18 11:50:57 X-ACL-Warn: Detected OS = FreeBSD 9.x or newer [fuzzy] X-Spam_score_int: -32 X-Spam_score: -3.3 X-Spam_bar: --- X-Spam_report: (-3.3 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HEADER_FROM_DIFFERENT_DOMAINS=1, RCVD_IN_DNSWL_MED=-2.3, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=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, riku.voipio@iki.fi, richard.henderson@linaro.org, laurent@vivier.eu, tsimpson@quicinc.com, philmd@redhat.com, aleksandar.m.mail@gmail.com Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: "Qemu-devel" SGVscGVycyBmb3IgcmVhZGluZyBhbmQgd3JpdGluZyByZWdpc3RlcnMKSGVscGVycyBmb3IgbG9h ZC1sb2NrZWQvc3RvcmUtY29uZGl0aW9uYWwKClNpZ25lZC1vZmYtYnk6IFRheWxvciBTaW1wc29u IDx0c2ltcHNvbkBxdWljaW5jLmNvbT4KLS0tCiB0YXJnZXQvaGV4YWdvbi9nZW5wdHJfaGVscGVy cy5oIHwgMjQ0ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIHRhcmdl dC9oZXhhZ29uL29wX2hlbHBlci5jICAgICAgfCAgMTggKysrCiAyIGZpbGVzIGNoYW5nZWQsIDI2 MiBpbnNlcnRpb25zKCspCiBjcmVhdGUgbW9kZSAxMDA2NDQgdGFyZ2V0L2hleGFnb24vZ2VucHRy X2hlbHBlcnMuaAoKZGlmZiAtLWdpdCBhL3RhcmdldC9oZXhhZ29uL2dlbnB0cl9oZWxwZXJzLmgg Yi90YXJnZXQvaGV4YWdvbi9nZW5wdHJfaGVscGVycy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDAwMDAwMDAuLmZmY2IxZTMKLS0tIC9kZXYvbnVsbAorKysgYi90YXJnZXQvaGV4YWdvbi9n ZW5wdHJfaGVscGVycy5oCkBAIC0wLDAgKzEsMjQ0IEBACisvKgorICogIENvcHlyaWdodChjKSAy MDE5LTIwMjAgUXVhbGNvbW0gSW5ub3ZhdGlvbiBDZW50ZXIsIEluYy4gQWxsIFJpZ2h0cyBSZXNl cnZlZC4KKyAqCisgKiAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVk aXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKyAqICBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhl IEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorICogIHRoZSBGcmVl IFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9y CisgKiAgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiAgVGhpcyBw cm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWws CisgKiAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQg d2FycmFudHkgb2YKKyAqICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNV TEFSIFBVUlBPU0UuICBTZWUgdGhlCisgKiAgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9y IG1vcmUgZGV0YWlscy4KKyAqCisgKiAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBv ZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqICBhbG9uZyB3aXRoIHRoaXMgcHJv Z3JhbTsgaWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgorICovCisK KyNpZm5kZWYgSEVYQUdPTl9HRU5QVFJfSEVMUEVSU19ICisjZGVmaW5lIEhFWEFHT05fR0VOUFRS X0hFTFBFUlNfSAorCisjaW5jbHVkZSAidGNnL3RjZy5oIgorCitzdGF0aWMgaW5saW5lIFRDR3Yg Z2VuX3JlYWRfcmVnKFRDR3YgcmVzdWx0LCBpbnQgbnVtKQoreworICAgIHRjZ19nZW5fbW92X3Rs KHJlc3VsdCwgaGV4X2dwcltudW1dKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorCitzdGF0aWMg aW5saW5lIFRDR3YgZ2VuX3JlYWRfcHJlZyhUQ0d2IHByZWQsIHVpbnQ4X3QgbnVtKQoreworICAg IHRjZ19nZW5fbW92X3RsKHByZWQsIGhleF9wcmVkW251bV0pOworICAgIHJldHVybiBwcmVkOwor fQorCitzdGF0aWMgaW5saW5lIHZvaWQgZ2VuX2xvZ19yZWdfd3JpdGUoaW50IHJudW0sIFRDR3Yg dmFsLCBpbnQgc2xvdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQg aXNfcHJlZGljYXRlZCkKK3sKKyAgICBpZiAoaXNfcHJlZGljYXRlZCkgeworICAgICAgICBUQ0d2 IG9uZSA9IHRjZ19jb25zdF90bCgxKTsKKyAgICAgICAgVENHdiB6ZXJvID0gdGNnX2NvbnN0X3Rs KDApOworICAgICAgICBUQ0d2IHNsb3RfbWFzayA9IHRjZ190ZW1wX25ldygpOworCisgICAgICAg IHRjZ19nZW5fYW5kaV90bChzbG90X21hc2ssIGhleF9zbG90X2NhbmNlbGxlZCwgMSA8PCBzbG90 KTsKKyAgICAgICAgdGNnX2dlbl9tb3Zjb25kX3RsKFRDR19DT05EX0VRLCBoZXhfbmV3X3ZhbHVl W3JudW1dLCBzbG90X21hc2ssIHplcm8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWws IGhleF9uZXdfdmFsdWVbcm51bV0pOworI2lmIEhFWF9ERUJVRworICAgICAgICAvKiBEbyB0aGlz IHNvIEhFTFBFUihkZWJ1Z19jb21taXRfZW5kKSB3aWxsIGtub3cgKi8KKyAgICAgICAgdGNnX2dl bl9tb3Zjb25kX3RsKFRDR19DT05EX0VRLCBoZXhfcmVnX3dyaXR0ZW5bcm51bV0sIHNsb3RfbWFz aywgemVybywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uZSwgaGV4X3JlZ193cml0dGVu W3JudW1dKTsKKyNlbmRpZgorCisgICAgICAgIHRjZ190ZW1wX2ZyZWUob25lKTsKKyAgICAgICAg dGNnX3RlbXBfZnJlZSh6ZXJvKTsKKyAgICAgICAgdGNnX3RlbXBfZnJlZShzbG90X21hc2spOwor ICAgIH0gZWxzZSB7CisgICAgICAgIHRjZ19nZW5fbW92X3RsKGhleF9uZXdfdmFsdWVbcm51bV0s IHZhbCk7CisjaWYgSEVYX0RFQlVHCisgICAgICAgIC8qIERvIHRoaXMgc28gSEVMUEVSKGRlYnVn X2NvbW1pdF9lbmQpIHdpbGwga25vdyAqLworICAgICAgICB0Y2dfZ2VuX21vdmlfdGwoaGV4X3Jl Z193cml0dGVuW3JudW1dLCAxKTsKKyNlbmRpZgorICAgIH0KK30KKworc3RhdGljIGlubGluZSB2 b2lkIGdlbl9sb2dfcmVnX3dyaXRlX3BhaXIoaW50IHJudW0sIFRDR3ZfaTY0IHZhbCwgaW50IHNs b3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgaXNfcHJl ZGljYXRlZCkKK3sKKyAgICBUQ0d2IHZhbDMyID0gdGNnX3RlbXBfbmV3KCk7CisKKyAgICBpZiAo aXNfcHJlZGljYXRlZCkgeworICAgICAgICBUQ0d2IG9uZSA9IHRjZ19jb25zdF90bCgxKTsKKyAg ICAgICAgVENHdiB6ZXJvID0gdGNnX2NvbnN0X3RsKDApOworICAgICAgICBUQ0d2IHNsb3RfbWFz ayA9IHRjZ190ZW1wX25ldygpOworCisgICAgICAgIHRjZ19nZW5fYW5kaV90bChzbG90X21hc2ss IGhleF9zbG90X2NhbmNlbGxlZCwgMSA8PCBzbG90KTsKKyAgICAgICAgLyogTG93IHdvcmQgKi8K KyAgICAgICAgdGNnX2dlbl9leHRybF9pNjRfaTMyKHZhbDMyLCB2YWwpOworICAgICAgICB0Y2df Z2VuX21vdmNvbmRfdGwoVENHX0NPTkRfRVEsIGhleF9uZXdfdmFsdWVbcm51bV0sIHNsb3RfbWFz aywgemVybywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbDMyLCBoZXhfbmV3X3ZhbHVl W3JudW1dKTsKKyNpZiBIRVhfREVCVUcKKyAgICAgICAgLyogRG8gdGhpcyBzbyBIRUxQRVIoZGVi dWdfY29tbWl0X2VuZCkgd2lsbCBrbm93ICovCisgICAgICAgIHRjZ19nZW5fbW92Y29uZF90bChU Q0dfQ09ORF9FUSwgaGV4X3JlZ193cml0dGVuW3JudW1dLAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgc2xvdF9tYXNrLCB6ZXJvLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgb25lLCBo ZXhfcmVnX3dyaXR0ZW5bcm51bV0pOworI2VuZGlmCisKKyAgICAgICAgLyogSGlnaCB3b3JkICov CisgICAgICAgIHRjZ19nZW5fZXh0cmhfaTY0X2kzMih2YWwzMiwgdmFsKTsKKyAgICAgICAgdGNn X2dlbl9tb3Zjb25kX3RsKFRDR19DT05EX0VRLCBoZXhfbmV3X3ZhbHVlW3JudW0gKyAxXSwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgIHNsb3RfbWFzaywgemVybywKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgIHZhbDMyLCBoZXhfbmV3X3ZhbHVlW3JudW0gKyAxXSk7CisjaWYgSEVYX0RF QlVHCisgICAgICAgIC8qIERvIHRoaXMgc28gSEVMUEVSKGRlYnVnX2NvbW1pdF9lbmQpIHdpbGwg a25vdyAqLworICAgICAgICB0Y2dfZ2VuX21vdmNvbmRfdGwoVENHX0NPTkRfRVEsIGhleF9yZWdf d3JpdHRlbltybnVtICsgMV0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICBzbG90X21hc2ss IHplcm8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICBvbmUsIGhleF9yZWdfd3JpdHRlblty bnVtICsgMV0pOworI2VuZGlmCisKKyAgICAgICAgdGNnX3RlbXBfZnJlZShvbmUpOworICAgICAg ICB0Y2dfdGVtcF9mcmVlKHplcm8pOworICAgICAgICB0Y2dfdGVtcF9mcmVlKHNsb3RfbWFzayk7 CisgICAgfSBlbHNlIHsKKyAgICAgICAgLyogTG93IHdvcmQgKi8KKyAgICAgICAgdGNnX2dlbl9l eHRybF9pNjRfaTMyKHZhbDMyLCB2YWwpOworICAgICAgICB0Y2dfZ2VuX21vdl90bChoZXhfbmV3 X3ZhbHVlW3JudW1dLCB2YWwzMik7CisjaWYgSEVYX0RFQlVHCisgICAgICAgIC8qIERvIHRoaXMg c28gSEVMUEVSKGRlYnVnX2NvbW1pdF9lbmQpIHdpbGwga25vdyAqLworICAgICAgICB0Y2dfZ2Vu X21vdmlfdGwoaGV4X3JlZ193cml0dGVuW3JudW1dLCAxKTsKKyNlbmRpZgorCisgICAgICAgIC8q IEhpZ2ggd29yZCAqLworICAgICAgICB0Y2dfZ2VuX2V4dHJoX2k2NF9pMzIodmFsMzIsIHZhbCk7 CisgICAgICAgIHRjZ19nZW5fbW92X3RsKGhleF9uZXdfdmFsdWVbcm51bSArIDFdLCB2YWwzMik7 CisjaWYgSEVYX0RFQlVHCisgICAgICAgIC8qIERvIHRoaXMgc28gSEVMUEVSKGRlYnVnX2NvbW1p dF9lbmQpIHdpbGwga25vdyAqLworICAgICAgICB0Y2dfZ2VuX21vdmlfdGwoaGV4X3JlZ193cml0 dGVuW3JudW0gKyAxXSwgMSk7CisjZW5kaWYKKyAgICB9CisKKyAgICB0Y2dfdGVtcF9mcmVlKHZh bDMyKTsKK30KKworc3RhdGljIGlubGluZSB2b2lkIGdlbl9sb2dfcHJlZF93cml0ZShpbnQgcG51 bSwgVENHdiB2YWwpCit7CisgICAgVENHdiB6ZXJvID0gdGNnX2NvbnN0X3RsKDApOworICAgIFRD R3YgYmFzZV92YWwgPSB0Y2dfdGVtcF9uZXcoKTsKKyAgICBUQ0d2IGFuZF92YWwgPSB0Y2dfdGVt cF9uZXcoKTsKKyAgICBUQ0d2IHByZWRfd3JpdHRlbiA9IHRjZ190ZW1wX25ldygpOworCisgICAg LyogTXVsdGlwbGUgd3JpdGVzIHRvIHRoZSBzYW1lIHByZWcgYXJlIGFuZCdlZCB0b2dldGhlciAq LworICAgIHRjZ19nZW5fYW5kaV90bChiYXNlX3ZhbCwgdmFsLCAweGZmKTsKKyAgICB0Y2dfZ2Vu X2FuZF90bChhbmRfdmFsLCBiYXNlX3ZhbCwgaGV4X25ld19wcmVkX3ZhbHVlW3BudW1dKTsKKyAg ICB0Y2dfZ2VuX2FuZGlfdGwocHJlZF93cml0dGVuLCBoZXhfcHJlZF93cml0dGVuLCAxIDw8IHBu dW0pOworICAgIHRjZ19nZW5fbW92Y29uZF90bChUQ0dfQ09ORF9ORSwgaGV4X25ld19wcmVkX3Zh bHVlW3BudW1dLAorICAgICAgICAgICAgICAgICAgICAgICBwcmVkX3dyaXR0ZW4sIHplcm8sCisg ICAgICAgICAgICAgICAgICAgICAgIGFuZF92YWwsIGJhc2VfdmFsKTsKKyAgICB0Y2dfZ2VuX29y aV90bChoZXhfcHJlZF93cml0dGVuLCBoZXhfcHJlZF93cml0dGVuLCAxIDw8IHBudW0pOworCisg ICAgdGNnX3RlbXBfZnJlZSh6ZXJvKTsKKyAgICB0Y2dfdGVtcF9mcmVlKGJhc2VfdmFsKTsKKyAg ICB0Y2dfdGVtcF9mcmVlKGFuZF92YWwpOworICAgIHRjZ190ZW1wX2ZyZWUocHJlZF93cml0dGVu KTsKK30KKworc3RhdGljIGlubGluZSB2b2lkIGdlbl9yZWFkX3AzXzAoVENHdiBjb250cm9sX3Jl ZykKK3sKKyAgICBUQ0d2IHB2YWwgPSB0Y2dfdGVtcF9uZXcoKTsKKyAgICBpbnQgaTsKKyAgICB0 Y2dfZ2VuX21vdmlfdGwoY29udHJvbF9yZWcsIDApOworICAgIGZvciAoaSA9IE5VTV9QUkVHUyAt IDE7IGkgPj0gMDsgaS0tKSB7CisgICAgICAgIHRjZ19nZW5fc2hsaV90bChjb250cm9sX3JlZywg Y29udHJvbF9yZWcsIDgpOworICAgICAgICB0Y2dfZ2VuX2FuZGlfdGwocHZhbCwgaGV4X3ByZWRb aV0sIDB4ZmYpOworICAgICAgICB0Y2dfZ2VuX29yX3RsKGNvbnRyb2xfcmVnLCBjb250cm9sX3Jl ZywgcHZhbCk7CisgICAgfQorICAgIHRjZ190ZW1wX2ZyZWUocHZhbCk7Cit9CisKK3N0YXRpYyBp bmxpbmUgdm9pZCBnZW5fd3JpdGVfcDNfMChUQ0d2IHRtcCkKK3sKKyAgICBUQ0d2IGNvbnRyb2xf cmVnID0gdGNnX3RlbXBfbmV3KCk7CisgICAgVENHdiBwcmVkX3ZhbCA9IHRjZ190ZW1wX25ldygp OworICAgIGludCBpOworCisgICAgdGNnX2dlbl9tb3ZfdGwoY29udHJvbF9yZWcsIHRtcCk7Cisg ICAgZm9yIChpID0gMDsgaSA8IE5VTV9QUkVHUzsgaSsrKSB7CisgICAgICAgIHRjZ19nZW5fYW5k aV90bChwcmVkX3ZhbCwgY29udHJvbF9yZWcsIDB4ZmYpOworICAgICAgICB0Y2dfZ2VuX21vdl90 bChoZXhfcHJlZFtpXSwgcHJlZF92YWwpOworICAgICAgICB0Y2dfZ2VuX3NocmlfdGwoY29udHJv bF9yZWcsIGNvbnRyb2xfcmVnLCA4KTsKKyAgICB9CisgICAgdGNnX3RlbXBfZnJlZShjb250cm9s X3JlZyk7CisgICAgdGNnX3RlbXBfZnJlZShwcmVkX3ZhbCk7Cit9CisKK3N0YXRpYyBpbmxpbmUg dm9pZCBnZW5fbG9hZF9sb2NrZWQ0dShUQ0d2IGRlc3QsIFRDR3YgdmFkZHIsIGludCBtZW1faW5k ZXgpCit7CisgICAgdGNnX2dlbl9xZW11X2xkMzJ1KGRlc3QsIHZhZGRyLCBtZW1faW5kZXgpOwor ICAgIHRjZ19nZW5fbW92X3RsKGhleF9sbHNjX2FkZHIsIHZhZGRyKTsKKyAgICB0Y2dfZ2VuX21v dl90bChoZXhfbGxzY192YWwsIGRlc3QpOworfQorCitzdGF0aWMgaW5saW5lIHZvaWQgZ2VuX2xv YWRfbG9ja2VkOHUoVENHdl9pNjQgZGVzdCwgVENHdiB2YWRkciwgaW50IG1lbV9pbmRleCkKK3sK KyAgICB0Y2dfZ2VuX3FlbXVfbGQ2NChkZXN0LCB2YWRkciwgbWVtX2luZGV4KTsKKyAgICB0Y2df Z2VuX21vdl90bChoZXhfbGxzY19hZGRyLCB2YWRkcik7CisgICAgdGNnX2dlbl9tb3ZfaTY0KGhl eF9sbHNjX3ZhbF9pNjQsIGRlc3QpOworfQorCitzdGF0aWMgaW5saW5lIHZvaWQgZ2VuX3N0b3Jl X2NvbmRpdGlvbmFsNChDUFVIZXhhZ29uU3RhdGUgKmVudiwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIERpc2FzQ29udGV4dCAqY3R4LCBpbnQgcHJlZG51bSwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRDR3YgcHJlZCwgVENHdiB2 YWRkciwgVENHdiBzcmMpCit7CisgICAgVENHTGFiZWwgKmZhaWwgPSBnZW5fbmV3X2xhYmVsKCk7 CisgICAgVENHTGFiZWwgKmRvbmUgPSBnZW5fbmV3X2xhYmVsKCk7CisKKyAgICB0Y2dfZ2VuX2Jy Y29uZF90bChUQ0dfQ09ORF9ORSwgdmFkZHIsIGhleF9sbHNjX2FkZHIsIGZhaWwpOworCisgICAg VENHdiBvbmUgPSB0Y2dfY29uc3RfdGwoMHhmZik7CisgICAgVENHdiB6ZXJvID0gdGNnX2NvbnN0 X3RsKDApOworICAgIFRDR3YgdG1wID0gdGNnX3RlbXBfbmV3KCk7CisgICAgdGNnX2dlbl9hdG9t aWNfY21weGNoZ190bCh0bXAsIGhleF9sbHNjX2FkZHIsIGhleF9sbHNjX3ZhbCwgc3JjLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgY3R4LT5tZW1faWR4LCBNT18zMik7CisgICAgdGNn X2dlbl9tb3Zjb25kX3RsKFRDR19DT05EX0VRLCBoZXhfcHJlZFtwcmVkbnVtXSwgdG1wLCBoZXhf bGxzY192YWwsCisgICAgICAgICAgICAgICAgICAgICAgIG9uZSwgemVybyk7CisgICAgdGNnX3Rl bXBfZnJlZShvbmUpOworICAgIHRjZ190ZW1wX2ZyZWUoemVybyk7CisgICAgdGNnX3RlbXBfZnJl ZSh0bXApOworICAgIHRjZ19nZW5fYnIoZG9uZSk7CisKKyAgICBnZW5fc2V0X2xhYmVsKGZhaWwp OworICAgIHRjZ19nZW5fbW92aV90bChwcmVkLCAwKTsKKworICAgIGdlbl9zZXRfbGFiZWwoZG9u ZSk7CisgICAgdGNnX2dlbl9tb3ZpX3RsKGhleF9sbHNjX2FkZHIsIH4wKTsKK30KKworc3RhdGlj IGlubGluZSB2b2lkIGdlbl9zdG9yZV9jb25kaXRpb25hbDgoQ1BVSGV4YWdvblN0YXRlICplbnYs CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEaXNhc0NvbnRleHQg KmN0eCwgaW50IHByZWRudW0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBUQ0d2IHByZWQsIFRDR3YgdmFkZHIsIFRDR3ZfaTY0IHNyYykKK3sKKyAgICBUQ0dMYWJl bCAqZmFpbCA9IGdlbl9uZXdfbGFiZWwoKTsKKyAgICBUQ0dMYWJlbCAqZG9uZSA9IGdlbl9uZXdf bGFiZWwoKTsKKworICAgIHRjZ19nZW5fYnJjb25kX3RsKFRDR19DT05EX05FLCB2YWRkciwgaGV4 X2xsc2NfYWRkciwgZmFpbCk7CisKKyAgICBUQ0d2X2k2NCBvbmUgPSB0Y2dfY29uc3RfaTY0KDB4 ZmYpOworICAgIFRDR3ZfaTY0IHplcm8gPSB0Y2dfY29uc3RfaTY0KDApOworICAgIFRDR3ZfaTY0 IHRtcCA9IHRjZ190ZW1wX25ld19pNjQoKTsKKyAgICB0Y2dfZ2VuX2F0b21pY19jbXB4Y2hnX2k2 NCh0bXAsIGhleF9sbHNjX2FkZHIsIGhleF9sbHNjX3ZhbF9pNjQsIHNyYywKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBjdHgtPm1lbV9pZHgsIE1PXzY0KTsKKyAgICB0Y2dfZ2VuX21v dmNvbmRfaTY0KFRDR19DT05EX0VRLCB0bXAsIHRtcCwgaGV4X2xsc2NfdmFsX2k2NCwKKyAgICAg ICAgICAgICAgICAgICAgICAgIG9uZSwgemVybyk7CisgICAgdGNnX2dlbl9leHRybF9pNjRfaTMy KGhleF9wcmVkW3ByZWRudW1dLCB0bXApOworICAgIHRjZ190ZW1wX2ZyZWVfaTY0KG9uZSk7Cisg ICAgdGNnX3RlbXBfZnJlZV9pNjQoemVybyk7CisgICAgdGNnX3RlbXBfZnJlZV9pNjQodG1wKTsK KyAgICB0Y2dfZ2VuX2JyKGRvbmUpOworCisgICAgZ2VuX3NldF9sYWJlbChmYWlsKTsKKyAgICB0 Y2dfZ2VuX21vdmlfdGwocHJlZCwgMCk7CisKKyAgICBnZW5fc2V0X2xhYmVsKGRvbmUpOworICAg IHRjZ19nZW5fbW92aV90bChoZXhfbGxzY19hZGRyLCB+MCk7Cit9CisKKyNlbmRpZgpkaWZmIC0t Z2l0IGEvdGFyZ2V0L2hleGFnb24vb3BfaGVscGVyLmMgYi90YXJnZXQvaGV4YWdvbi9vcF9oZWxw ZXIuYwppbmRleCAyZWE0ZTcwLi5hMjM0Y2Y2IDEwMDY0NAotLS0gYS90YXJnZXQvaGV4YWdvbi9v cF9oZWxwZXIuYworKysgYi90YXJnZXQvaGV4YWdvbi9vcF9oZWxwZXIuYwpAQCAtODgsNiArODgs MjQgQEAgc3RhdGljIGlubGluZSB2b2lkIGxvZ19wcmVkX3dyaXRlKENQVUhleGFnb25TdGF0ZSAq ZW52LCBpbnQgcG51bSwKICAgICB9CiB9CiAKK3N0YXRpYyBpbmxpbmUgdm9pZCBsb2dfc3RvcmUz MihDUFVIZXhhZ29uU3RhdGUgKmVudiwgdGFyZ2V0X3Vsb25nIGFkZHIsCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgaW50MzJfdCB2YWwsIGludCB3aWR0aCwgaW50IHNsb3QpCit7Cisg ICAgSEVYX0RFQlVHX0xPRygibG9nX3N0b3JlJWQoMHgleCwgJWQgWzB4JXhdKVxuIiwgd2lkdGgs IGFkZHIsIHZhbCwgdmFsKTsKKyAgICBlbnYtPm1lbV9sb2dfc3RvcmVzW3Nsb3RdLnZhID0gYWRk cjsKKyAgICBlbnYtPm1lbV9sb2dfc3RvcmVzW3Nsb3RdLndpZHRoID0gd2lkdGg7CisgICAgZW52 LT5tZW1fbG9nX3N0b3Jlc1tzbG90XS5kYXRhMzIgPSB2YWw7Cit9CisKK3N0YXRpYyBpbmxpbmUg dm9pZCBsb2dfc3RvcmU2NChDUFVIZXhhZ29uU3RhdGUgKmVudiwgdGFyZ2V0X3Vsb25nIGFkZHIs CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50NjRfdCB2YWwsIGludCB3aWR0aCwg aW50IHNsb3QpCit7CisgICAgSEVYX0RFQlVHX0xPRygibG9nX3N0b3JlJWQoMHgleCwgJWxkIFsw eCVseF0pXG4iLCB3aWR0aCwgYWRkciwgdmFsLCB2YWwpOworICAgIGVudi0+bWVtX2xvZ19zdG9y ZXNbc2xvdF0udmEgPSBhZGRyOworICAgIGVudi0+bWVtX2xvZ19zdG9yZXNbc2xvdF0ud2lkdGgg PSB3aWR0aDsKKyAgICBlbnYtPm1lbV9sb2dfc3RvcmVzW3Nsb3RdLmRhdGE2NCA9IHZhbDsKK30K Kwogc3RhdGljIGlubGluZSB2b2lkIHdyaXRlX25ld19wYyhDUFVIZXhhZ29uU3RhdGUgKmVudiwg dGFyZ2V0X3Vsb25nIGFkZHIpCiB7CiAgICAgSEVYX0RFQlVHX0xPRygid3JpdGVfbmV3X3BjKDB4 IiBUQVJHRVRfRk1UX2x4ICIpXG4iLCBhZGRyKTsKLS0gCjIuNy40Cgo=