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,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 26EFDC433E6 for ; Mon, 8 Feb 2021 05:49:09 +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 77DF664E27 for ; Mon, 8 Feb 2021 05:49:08 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 77DF664E27 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]:39106 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1l8zQ3-000125-DD for qemu-devel@archiver.kernel.org; Mon, 08 Feb 2021 00:49:07 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:55746) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1l8zNh-0007X6-4K for qemu-devel@nongnu.org; Mon, 08 Feb 2021 00:46:42 -0500 Received: from alexa-out-sd-02.qualcomm.com ([199.106.114.39]:35774) by eggs.gnu.org with esmtps (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.90_1) (envelope-from ) id 1l8zNZ-0006Sx-Ue for qemu-devel@nongnu.org; Mon, 08 Feb 2021 00:46:40 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=quicinc.com; i=@quicinc.com; q=dns/txt; s=qcdkim; t=1612763193; x=1644299193; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=YqLMteNLGHhftSOuDXjaBg1yAoxDwi/Krhr75vrwaJU=; b=yhn7pzSx1fD7SALRi5WaIQ3EOO1DOs7osVBXOqO8C0S99M8ANJguJ/In 8J1G+ezJ0QEyxG4JBQwUmjW3KwgUNez0eT+p2Z2M7IBslFQhXU2Vg5R9k BVhQrcytWG/u3++GemfpBescZBACVORforlSGWERAHNy0EmfARZUKIFSC I=; Received: from unknown (HELO ironmsg04-sd.qualcomm.com) ([10.53.140.144]) by alexa-out-sd-02.qualcomm.com with ESMTP; 07 Feb 2021 21:46:29 -0800 X-QCInternal: smtphost Received: from vu-tsimpson-aus.qualcomm.com (HELO vu-tsimpson1-aus.qualcomm.com) ([10.222.150.1]) by ironmsg04-sd.qualcomm.com with ESMTP; 07 Feb 2021 21:46:28 -0800 Received: by vu-tsimpson1-aus.qualcomm.com (Postfix, from userid 47164) id A32421266; Sun, 7 Feb 2021 23:46:28 -0600 (CST) From: Taylor Simpson To: qemu-devel@nongnu.org Subject: [PATCH v8 02/35] Hexagon (target/hexagon) README Date: Sun, 7 Feb 2021 23:45:52 -0600 Message-Id: <1612763186-18161-3-git-send-email-tsimpson@quicinc.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1612763186-18161-1-git-send-email-tsimpson@quicinc.com> References: <1612763186-18161-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: -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.248, 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, philmd@redhat.com, richard.henderson@linaro.org, laurent@vivier.eu, tsimpson@quicinc.com, alex.bennee@linaro.org Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: "Qemu-devel" R2l2ZXMgYW4gaW50cm9kdWN0aW9uIGFuZCBvdmVydmlldyB0byB0aGUgSGV4YWdvbiB0YXJnZXQK ClNpZ25lZC1vZmYtYnk6IFRheWxvciBTaW1wc29uIDx0c2ltcHNvbkBxdWljaW5jLmNvbT4KLS0t CiB0YXJnZXQvaGV4YWdvbi9SRUFETUUgfCAyMzUgKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysKIDEgZmlsZSBjaGFuZ2VkLCAyMzUgaW5zZXJ0aW9ucygr KQogY3JlYXRlIG1vZGUgMTAwNjQ0IHRhcmdldC9oZXhhZ29uL1JFQURNRQoKZGlmZiAtLWdpdCBh L3RhcmdldC9oZXhhZ29uL1JFQURNRSBiL3RhcmdldC9oZXhhZ29uL1JFQURNRQpuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iMGIyNDM1Ci0tLSAvZGV2L251bGwKKysrIGIvdGFy Z2V0L2hleGFnb24vUkVBRE1FCkBAIC0wLDAgKzEsMjM1IEBACitIZXhhZ29uIGlzIFF1YWxjb21t J3MgdmVyeSBsb25nIGluc3RydWN0aW9uIHdvcmQgKFZMSVcpIGRpZ2l0YWwgc2lnbmFsCitwcm9j ZXNzb3IoRFNQKS4KKworVGhlIGZvbGxvd2luZyB2ZXJzaW9ucyBvZiB0aGUgSGV4YWdvbiBjb3Jl IGFyZSBzdXBwb3J0ZWQKKyAgICBTY2FsYXIgY29yZTogdjY3CisgICAgaHR0cHM6Ly9kZXZlbG9w ZXIucXVhbGNvbW0uY29tL2Rvd25sb2Fkcy9xdWFsY29tbS1oZXhhZ29uLXY2Ny1wcm9ncmFtbWVy LXMtcmVmZXJlbmNlLW1hbnVhbAorCitXZSBwcmVzZW50ZWQgYW4gb3ZlcnZpZXcgb2YgdGhlIHBy b2plY3QgYXQgdGhlIDIwMTkgS1ZNIEZvcnVtLgorICAgIGh0dHBzOi8va3ZtZm9ydW0yMDE5LnNj aGVkLmNvbS9ldmVudC9UbXdjL3FlbXUtaGV4YWdvbi1hdXRvbWF0aWMtdHJhbnNsYXRpb24tb2Yt dGhlLWlzYS1tYW51YWwtcHNldWRjb2RlLXRvLXRpbnktY29kZS1pbnN0cnVjdGlvbnMtb2YtYS12 bGl3LWFyY2hpdGVjdHVyZS1uaWNjb2xvLWl6em8tcmV2bmctdGF5bG9yLXNpbXBzb24tcXVhbGNv bW0taW5ub3ZhdGlvbi1jZW50ZXIKKworKioqIFRvdXIgb2YgdGhlIGNvZGUgKioqCisKK1RoZSBx ZW11LWhleGFnb24gaW1wbGVtZW50YXRpb24gaXMgYSBjb21iaW5hdGlvbiBvZiBxZW11IGFuZCB0 aGUgSGV4YWdvbgorYXJjaGl0ZWN0dXJlIGxpYnJhcnkgKGFrYSBhcmNobGliKS4gIFRoZSB0aHJl ZSBwcmltYXJ5IGRpcmVjdG9yaWVzIHdpdGgKK0hleGFnb24tc3BlY2lmaWMgY29kZSBhcmUKKwor ICAgIHFlbXUvdGFyZ2V0L2hleGFnb24KKyAgICAgICAgVGhpcyBoYXMgYWxsIHRoZSBpbnN0cnVj dGlvbiBhbmQgcGFja2V0IHNlbWFudGljcworICAgIHFlbXUvdGFyZ2V0L2hleGFnb24vaW1wb3J0 ZWQKKyAgICAgICAgVGhlc2UgZmlsZXMgYXJlIGltcG9ydGVkIHdpdGggdmVyeSBsaXR0bGUgbW9k aWZpY2F0aW9uIGZyb20gYXJjaGxpYgorICAgICAgICAqLmlkZWYgICAgICAgICAgICAgICAgICBJ bnN0cnVjdGlvbiBzZW1hbnRpY3MgZGVmaW5pdGlvbgorICAgICAgICBtYWNyb3MuZGVmICAgICAg ICAgICAgICBNYXBwaW5nIG9mIG1hY3JvcyB0byBpbnN0cnVjdGlvbiBhdHRyaWJ1dGVzCisgICAg ICAgIGVuY29kZSouZGVmICAgICAgICAgICAgIEVuY29kaW5nIHBhdHRlcm5zIGZvciBlYWNoIGlu c3RydWN0aW9uCisgICAgICAgIGljbGFzcy5kZWYgICAgICAgICAgICAgIEluc3RydWN0aW9uIGNs YXNzIGRlZmluaXRpb25zIHVzZWQgdG8gZGV0ZXJtaW5lCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGxlZ2FsIFZMSVcgc2xvdHMgZm9yIGVhY2ggaW5zdHJ1Y3Rpb24KKyAgICBxZW11 L2xpbnV4LXVzZXIvaGV4YWdvbgorICAgICAgICBIZWxwZXJzIGZvciBsb2FkaW5nIHRoZSBFTEYg ZmlsZSBhbmQgbWFraW5nIExpbnV4IHN5c3RlbSBjYWxscywKKyAgICAgICAgc2lnbmFscywgZXRj CisKK1dlIHN0YXJ0IHdpdGggc2NyaXB0cyB0aGF0IGdlbmVyYXRlIGEgYnVuY2ggb2YgaW5jbHVk ZSBmaWxlcy4gIFRoaXMKK2lzIGEgdHdvIHN0ZXAgcHJvY2Vzcy4gIFRoZSBmaXJzdCBzdGVwIGlz IHRvIHVzZSB0aGUgQyBwcmVwcm9jZXNzb3IgdG8gZXhwYW5kCittYWNyb3MgaW5zaWRlIHRoZSBh cmNoaXRlY3R1cmUgZGVmaW5pdGlvbiBmaWxlcy4gIFRoaXMgaXMgZG9uZSBpbgordGFyZ2V0L2hl eGFnb24vZ2VuX3NlbWFudGljcy5jLiAgVGhpcyBzdGVwIHByb2R1Y2VzCisgICAgPEJVSUxEX0RJ Uj4vdGFyZ2V0L2hleGFnb24vc2VtYW50aWNzX2dlbmVyYXRlZC5weWluYy4KK1RoYXQgZmlsZSBp cyBjb25zdW1lZCBieSB0aGUgZm9sbG93aW5nIHB5dGhvbiBzY3JpcHRzIHRvIHByb2R1Y2UgdGhl IGluZGljYXRlZAoraGVhZGVyIGZpbGVzIGluIDxCVUlMRF9ESVI+L3RhcmdldC9oZXhhZ29uCisg ICAgICAgIGdlbl9vcGNvZGVzX2RlZi5weSAgICAgICAgICAgICAgLT4gb3Bjb2Rlc19kZWZfZ2Vu ZXJhdGVkLmguaW5jCisgICAgICAgIGdlbl9vcF9yZWdzLnB5ICAgICAgICAgICAgICAgICAgLT4g b3BfcmVnc19nZW5lcmF0ZWQuaC5pbmMKKyAgICAgICAgZ2VuX3ByaW50aW5zbi5weSAgICAgICAg ICAgICAgICAtPiBwcmludGluc25fZ2VuZXJhdGVkLmguaW5jCisgICAgICAgIGdlbl9vcF9hdHRy aWJzLnB5ICAgICAgICAgICAgICAgLT4gb3BfYXR0cmlic19nZW5lcmF0ZWQuaC5pbmMKKyAgICAg ICAgZ2VuX2hlbHBlcl9wcm90b3MucHkgICAgICAgICAgICAtPiBoZWxwZXJfcHJvdG9zX2dlbmVy YXRlZC5oLmluYworICAgICAgICBnZW5fc2hvcnRjb2RlLnB5ICAgICAgICAgICAgICAgIC0+IHNo b3J0Y29kZV9nZW5lcmF0ZWQuaC5pbmMKKyAgICAgICAgZ2VuX3RjZ19mdW5jcy5weSAgICAgICAg ICAgICAgICAtPiB0Y2dfZnVuY3NfZ2VuZXJhdGVkLmMuaW5jCisgICAgICAgIGdlbl90Y2dfZnVu Y190YWJsZS5weSAgICAgICAgICAgLT4gdGNnX2Z1bmNfdGFibGVfZ2VuZXJhdGVkLmMuaW5jCisg ICAgICAgIGdlbl9oZWxwZXJfZnVuY3MucHkgICAgICAgICAgICAgLT4gaGVscGVyX2Z1bmNzX2dl bmVyYXRlZC5jLmluYworCitRZW11IGhlbHBlciBmdW5jdGlvbnMgaGF2ZSAzIHBhcnRzCisgICAg REVGX0hFTFBFUiBkZWNsYXJhdGlvbiBpbmRpY2F0ZXMgdGhlIHNpZ25hdHVyZSBvZiB0aGUgaGVs cGVyCisgICAgZ2VuX2hlbHBlcl88TkFNRT4gd2lsbCBnZW5lcmF0ZSBhIFRDRyBjYWxsIHRvIHRo ZSBoZWxwZXIgZnVuY3Rpb24KKyAgICBUaGUgaGVscGVyIGltcGxlbWVudGF0aW9uCisKK0hlcmUn cyBhbiBleGFtcGxlIG9mIHRoZSBBMl9hZGQgaW5zdHJ1Y3Rpb24uCisgICAgSW5zdHJ1Y3Rpb24g dGFnICAgICAgICBBMl9hZGQKKyAgICBBc3NlbWJseSBzeW50YXggICAgICAgICJSZDMyPWFkZChS czMyLFJ0MzIpIgorICAgIEluc3RydWN0aW9uIHNlbWFudGljcyAgInsgUmRWPVJzVitSdFY7fSIK KworQnkgY29udmVudGlvbiwgdGhlIG9wZXJhbmRzIGFyZSBpZGVudGlmaWVkIGJ5IGxldHRlcgor ICAgIFJkViBpcyB0aGUgZGVzdGluYXRpb24gcmVnaXN0ZXIKKyAgICBSc1YsIFJ0ViBhcmUgc291 cmNlIHJlZ2lzdGVycworCitUaGUgZ2VuZXJhdG9yIHVzZXMgdGhlIG9wZXJhbmQgbmFtaW5nIGNv bnZlbnRpb25zIChzZWUgbGFyZ2UgY29tbWVudCBpbgoraGV4X2NvbW1vbi5weSkgdG8gZGV0ZXJt aW5lIHRoZSBzaWduYXR1cmUgb2YgdGhlIGhlbHBlciBmdW5jdGlvbi4gIEhlcmUgYXJlIHRoZQor cmVzdWx0cyBmb3IgQTJfYWRkCisKK2hlbHBlcl9wcm90b3NfZ2VuZXJhdGVkLmguaW5jCisgICAg REVGX0hFTFBFUl8zKEEyX2FkZCwgczMyLCBlbnYsIHMzMiwgczMyKQorCit0Y2dfZnVuY3NfZ2Vu ZXJhdGVkLmMuaW5jCisgICAgc3RhdGljIHZvaWQgZ2VuZXJhdGVfQTJfYWRkKAorICAgICAgICAg ICAgICAgICAgICBDUFVIZXhhZ29uU3RhdGUgKmVudiwKKyAgICAgICAgICAgICAgICAgICAgRGlz YXNDb250ZXh0ICpjdHgsCisgICAgICAgICAgICAgICAgICAgIEluc24gKmluc24sCisgICAgICAg ICAgICAgICAgICAgIFBhY2tldCAqcGt0KQorICAgIHsKKyAgICAgICAgVENHdiBSZFYgPSB0Y2df dGVtcF9sb2NhbF9uZXcoKTsKKyAgICAgICAgY29uc3QgaW50IFJkTiA9IGluc24tPnJlZ25vWzBd OworICAgICAgICBUQ0d2IFJzViA9IGhleF9ncHJbaW5zbi0+cmVnbm9bMV1dOworICAgICAgICBU Q0d2IFJ0ViA9IGhleF9ncHJbaW5zbi0+cmVnbm9bMl1dOworICAgICAgICBnZW5faGVscGVyX0Ey X2FkZChSZFYsIGNwdV9lbnYsIFJzViwgUnRWKTsKKyAgICAgICAgZ2VuX2xvZ19yZWdfd3JpdGUo UmROLCBSZFYpOworICAgICAgICBjdHhfbG9nX3JlZ193cml0ZShjdHgsIFJkTik7CisgICAgICAg IHRjZ190ZW1wX2ZyZWUoUmRWKTsKKyAgICB9CisKK2hlbHBlcl9mdW5jc19nZW5lcmF0ZWQuYy5p bmMKKyAgICBpbnQzMl90IEhFTFBFUihBMl9hZGQpKENQVUhleGFnb25TdGF0ZSAqZW52LCBpbnQz Ml90IFJzViwgaW50MzJfdCBSdFYpCisgICAgeworICAgICAgICB1aW50MzJfdCBzbG90IF9fYXR0 cmlidXRlX18oKHVudXNlZCkpID0gNDsKKyAgICAgICAgaW50MzJfdCBSZFYgPSAwOworICAgICAg ICB7IFJkVj1Sc1YrUnRWO30KKyAgICAgICAgcmV0dXJuIFJkVjsKKyAgICB9CisKK05vdGUgdGhh dCBnZW5lcmF0ZV9BMl9hZGQgdXBkYXRlcyB0aGUgZGlzYXNzZW1ibHkgY29udGV4dCB0byBiZSBw cm9jZXNzZWQKK3doZW4gdGhlIHBhY2tldCBjb21taXRzIChzZWUgIlBhY2tldCBTZW1hbnRpY3Mi IGJlbG93KS4KKworVGhlIGdlbmVyYXRvciBjaGVja3MgZm9yIGZHRU5fVENHXzx0YWc+IG1hY3Jv LiAgVGhpcyBhbGxvd3MgdXMgdG8gZ2VuZXJhdGUKK1RDRyBjb2RlIGluc3RlYWQgb2YgYSBjYWxs IHRvIHRoZSBoZWxwZXIuICBJZiBkZWZpbmVkLCB0aGUgbWFjcm8gdGFrZXMgMQorYXJndW1lbnQu CisgICAgQyBzZW1hbnRpY3MgKGFrYSBzaG9ydCBjb2RlKQorCitUaGlzIGFsbG93cyB0aGUgY29k ZSBnZW5lcmF0b3IgdG8gb3ZlcnJpZGUgdGhlIGF1dG8tZ2VuZXJhdGVkIGNvZGUuICBJbiBzb21l CitjYXNlcyB0aGlzIGlzIG5lY2Vzc2FyeSBmb3IgY29ycmVjdCBleGVjdXRpb24uICBXZSBjYW4g YWxzbyBvdmVycmlkZSBmb3IKK2Zhc3RlciBlbXVsYXRpb24uICBGb3IgZXhhbXBsZSwgY2FsbGlu ZyBhIGhlbHBlciBmb3IgYWRkIGlzIG1vcmUgZXhwZW5zaXZlCit0aGFuIGdlbmVyYXRpbmcgYSBU Q0cgYWRkIG9wZXJhdGlvbi4KKworVGhlIGdlbl90Y2cuaCBmaWxlIGhhcyBhbnkgb3ZlcnJpZGVz LiBGb3IgZXhhbXBsZSwgd2UgY291bGQgd3JpdGUKKyAgICAjZGVmaW5lIGZHRU5fVENHX0EyX2Fk ZChHRU5ITFBSLCBTSE9SVENPREUpIFwKKyAgICAgICAgdGNnX2dlbl9hZGRfdGwoUmRWLCBSc1Ys IFJ0VikKKworVGhlIGluc3RydWN0aW9uIHNlbWFudGljcyBDIGNvZGUgcmVsaWVzIGhlYXZpbHkg b24gbWFjcm9zLiAgSW4gY2FzZXMgd2hlcmUgdGhlCitDIHNlbWFudGljcyBhcmUgc3BlY2lmaWVk IG9ubHkgd2l0aCBtYWNyb3MsIHdlIGNhbiBvdmVycmlkZSB0aGUgZGVmYXVsdCB3aXRoCit0aGUg c2hvcnQgc2VtYW50aWNzIG9wdGlvbiBhbmQgI2RlZmluZSB0aGUgbWFjcm9zIHRvIGdlbmVyYXRl IFRDRyBjb2RlLiAgT25lCitleGFtcGxlIGlzIEwyX2xvYWR3X2xvY2tlZDoKKyAgICBJbnN0cnVj dGlvbiB0YWcgICAgICAgIEwyX2xvYWR3X2xvY2tlZAorICAgIEFzc2VtYmx5IHN5bnRheCAgICAg ICAgIlJkMzI9bWVtd19sb2NrZWQoUnMzMikiCisgICAgSW5zdHJ1Y3Rpb24gc2VtYW50aWNzICAi eyBmRUFfUkVHKFJzVik7IGZMT0FEX0xPQ0tFRCgxLDQsdSxFQSxSZFYpIH0iCisKK0luIGdlbl90 Y2cuaCwgd2UgdXNlIHRoZSBzaG9ydGNvZGUKKyNkZWZpbmUgZkdFTl9UQ0dfTDJfbG9hZHdfbG9j a2VkKFNIT1JUQ09ERSkgXAorICAgIFNIT1JUQ09ERQorCitUaGVyZSBhcmUgYWxzbyBjYXNlcyB3 aGVyZSB3ZSBicnV0ZSBmb3JjZSB0aGUgVENHIGNvZGUgZ2VuZXJhdGlvbi4KK0luc3RydWN0aW9u cyB3aXRoIG11bHRpcGxlIGRlZmluaXRpb25zIGFyZSBleGFtcGxlcy4gIFRoZXNlIHJlcXVpcmUg c3BlY2lhbAoraGFuZGxpbmcgYmVjYXVzZSBxZW11IGhlbHBlcnMgY2FuIG9ubHkgcmV0dXJuIGEg c2luZ2xlIHZhbHVlLgorCitJbiBhZGRpdGlvbiB0byBpbnN0cnVjdGlvbiBzZW1hbnRpY3MsIHdl IHVzZSBhIGdlbmVyYXRvciB0byBjcmVhdGUgdGhlIGRlY29kZQordHJlZS4gIFRoaXMgZ2VuZXJh dGlvbiBpcyBhbHNvIGEgdHdvIHN0ZXAgcHJvY2Vzcy4gIFRoZSBmaXJzdCBzdGVwIGlzIHRvIHJ1 bgordGFyZ2V0L2hleGFnb24vZ2VuX2RlY3RyZWVfaW1wb3J0LmMgdG8gcHJvZHVjZQorICAgIDxC VUlMRF9ESVI+L3RhcmdldC9oZXhhZ29uL2lzZXQucHkKK1RoaXMgZmlsZSBpcyBpbXBvcnRlZCBi eSB0YXJnZXQvaGV4YWdvbi9kZWN0cmVlLnB5IHRvIHByb2R1Y2UKKyAgICA8QlVJTERfRElSPi90 YXJnZXQvaGV4YWdvbi9kZWN0cmVlX2dlbmVyYXRlZC5oLmluYworCisqKiogS2V5IEZpbGVzICoq KgorCitjcHUuaAorCitUaGlzIGZpbGUgY29udGFpbnMgdGhlIGRlZmluaXRpb24gb2YgdGhlIENQ VUhleGFnb25TdGF0ZSBzdHJ1Y3QuICBJdCBpcyB0aGUKK3J1bnRpbWUgaW5mb3JtYXRpb24gZm9y IGVhY2ggdGhyZWFkIGFuZCBjb250YWlucyBzdHVmZiBsaWtlIHRoZSBHUFIgYW5kCitwcmVkaWNh dGUgcmVnaXN0ZXJzLgorCittYWNyb3MuaAorCitUaGUgSGV4YWdvbiBhcmNoIGxpYiByZWxpZXMg aGVhdmlseSBvbiBtYWNyb3MgZm9yIHRoZSBpbnN0cnVjdGlvbiBzZW1hbnRpY3MuCitUaGlzIGlz IGEgZ3JlYXQgYWR2YW50YWdlIGZvciBxZW11IGJlY2F1c2Ugd2UgY2FuIG92ZXJyaWRlIHRoZW0g Zm9yIGRpZmZlcmVudAorcHVycG9zZXMuICBZb3Ugd2lsbCBhbHNvIG5vdGljZSB0aGVyZSBhcmUg c29tZXRpbWVzIHR3byBkZWZpbml0aW9ucyBvZiBhIG1hY3JvLgorVGhlIFFFTVVfR0VORVJBVEUg dmFyaWFibGUgZGV0ZXJtaW5lcyB3aGV0aGVyIHdlIHdhbnQgdGhlIG1hY3JvIHRvIGdlbmVyYXRl IFRDRworY29kZS4gIElmIFFFTVVfR0VORVJBVEUgaXMgbm90IGRlZmluZWQsIHdlIHdhbnQgdGhl IG1hY3JvIHRvIGdlbmVyYXRlIHZhbmlsbGEKK0MgY29kZSB0aGF0IHdpbGwgd29yayBpbiB0aGUg aGVscGVyIGltcGxlbWVudGF0aW9uLgorCit0cmFuc2xhdGUuYworCitUaGUgZnVuY3Rpb25zIGlu IHRoaXMgZmlsZSBnZW5lcmF0ZSBUQ0cgY29kZSBmb3IgYSB0cmFuc2xhdGlvbiBibG9jay4gIFNv bWUKK2ltcG9ydGFudCBmdW5jdGlvbnMgaW4gdGhpcyBmaWxlIGFyZQorCisgICAgZ2VuX3N0YXJ0 X3BhY2tldCAtIGluaXRpYWxpemUgdGhlIGRhdGEgc3RydWN0dXJlcyBmb3IgcGFja2V0IHNlbWFu dGljcworICAgIGdlbl9jb21taXRfcGFja2V0IC0gY29tbWl0IHRoZSByZWdpc3RlciB3cml0ZXMs IHN0b3JlcywgZXRjIGZvciBhIHBhY2tldAorICAgIGRlY29kZV9hbmRfdHJhbnNsYXRlX3BhY2tl dCAtIGRpc2Fzc2VtYmxlIGEgcGFja2V0IGFuZCBnZW5lcmF0ZSBjb2RlCisKK2dlbnB0ci5jCitn ZW5fdGNnLmgKKworVGhlc2UgZmlsZXMgY3JlYXRlIGEgZnVuY3Rpb24gZm9yIGVhY2ggaW5zdHJ1 Y3Rpb24uICBJdCBpcyBtb3N0bHkgY29tcG9zZWQgb2YKK2ZHRU5fVENHXzx0YWc+IGRlZmluaXRp b25zIGZvbGxvd2VkIGJ5IGluY2x1ZGluZyB0Y2dfZnVuY3NfZ2VuZXJhdGVkLmMuaW5jLgorCitv cF9oZWxwZXIuYworCitUaGlzIGZpbGUgY29udGFpbnMgdGhlIGltcGxlbWVudGF0aW9ucyBvZiBh bGwgdGhlIGhlbHBlcnMuICBUaGVyZSBhcmUgYSBmZXcKK2dlbmVyYWwgcHVycG9zZSBoZWxwZXJz LCBidXQgbW9zdCBvZiB0aGVtIGFyZSBnZW5lcmF0ZWQgYnkgaW5jbHVkaW5nCitoZWxwZXJfZnVu Y3NfZ2VuZXJhdGVkLmMuaW5jLiAgVGhlcmUgYXJlIGFsc28gc2V2ZXJhbCBoZWxwZXJzIHVzZWQg Zm9yIGRlYnVnZ2luZy4KKworCisqKiogUGFja2V0IFNlbWFudGljcyAqKioKKworVkxJVyBwYWNr ZXQgc2VtYW50aWNzIGRpZmZlciBmcm9tIHNlcmlhbCBzZW1hbnRpY3MgaW4gdGhhdCBhbGwgaW5w dXQgb3BlcmFuZHMKK2FyZSByZWFkLCB0aGVuIHRoZSBvcGVyYXRpb25zIGFyZSBwZXJmb3JtZWQs IHRoZW4gYWxsIHRoZSByZXN1bHRzIGFyZSB3cml0dGVuLgorRm9yIGV4bWFwbGUsIHRoaXMgcGFj a2V0IHBlcmZvcm1zIGEgc3dhcCBvZiByZWdpc3RlcnMgcjAgYW5kIHIxCisgICAgeyByMCA9IHIx OyByMSA9IHIwIH0KK05vdGUgdGhhdCB0aGUgcmVzdWx0IGlzIGRpZmZlcmVudCBpZiB0aGUgaW5z dHJ1Y3Rpb25zIGFyZSBleGVjdXRlZCBzZXJpYWxseS4KKworUGFja2V0IHNlbWFudGljcyBkaWN0 YXRlIHRoYXQgd2UgZGVmZXIgYW55IGNoYW5nZXMgb2Ygc3RhdGUgdW50aWwgdGhlIGVudGlyZQor cGFja2V0IGlzIGNvbW1pdHRlZC4gIFdlIHJlY29yZCB0aGUgcmVzdWx0cyBvZiBlYWNoIGluc3Ry dWN0aW9uIGluIGEgc2lkZSBkYXRhCitzdHJ1Y3R1cmUsIGFuZCB1cGRhdGUgdGhlIHZpc2libGUg cHJvY2Vzc29yIHN0YXRlIHdoZW4gd2UgY29tbWl0IHRoZSBwYWNrZXQuCisKK1RoZSBkYXRhIHN0 cnVjdHVyZXMgYXJlIGRpdmlkZWQgYmV0d2VlbiB0aGUgcnVudGltZSBzdGF0ZSBhbmQgdGhlIHRy YW5zbGF0aW9uCitjb250ZXh0LgorCitEdXJpbmcgdGhlIFRDRyBnZW5lcmF0aW9uIChzZWUgdHJh bnNsYXRlLltjaF0pLCB3ZSB1c2UgdGhlIERpc2FzQ29udGV4dCB0bwordHJhY2sgd2hhdCBuZWVk cyB0byBiZSBkb25lIGR1cmluZyBwYWNrZXQgY29tbWl0LiAgSGVyZSBhcmUgdGhlIHJlbGV2YW50 CitmaWVsZHMKKworICAgIHJlZ19sb2cgICAgICAgICAgICBsaXN0IG9mIHJlZ2lzdGVycyB3cml0 dGVuCisgICAgcmVnX2xvZ19pZHggICAgICAgIGluZGV4IGludG8gY3R4X3JlZ19sb2cKKyAgICBw cmVkX2xvZyAgICAgICAgICAgbGlzdCBvZiBwcmVkaWNhdGVzIHdyaXR0ZW4KKyAgICBwcmVkX2xv Z19pZHggICAgICAgaW5kZXggaW50byBjdHhfcHJlZF9sb2cKKyAgICBzdG9yZV93aWR0aCAgICAg ICAgd2lkdGggb2Ygc3RvcmVzIChpbmRleGVkIGJ5IHNsb3QpCisKK0R1cmluZyBydW50aW1lLCB0 aGUgZm9sbG93aW5nIGZpZWxkcyBpbiBDUFVIZXhhZ29uU3RhdGUgKHNlZSBjcHUuaCkgYXJlIHVz ZWQKKworICAgIG5ld192YWx1ZSAgICAgICAgICAgICBuZXcgdmFsdWUgb2YgYSBnaXZlbiByZWdp c3RlcgorICAgIHJlZ193cml0dGVuICAgICAgICAgICBib29sZWFuIGluZGljYXRpbmcgaWYgcmVn aXN0ZXIgd2FzIHdyaXR0ZW4KKyAgICBuZXdfcHJlZF92YWx1ZSAgICAgICAgbmV3IHZhbHVlIG9m IGEgcHJlZGljYXRlIHJlZ2lzdGVyCisgICAgcHJlZF93cml0dGVuICAgICAgICAgIGJvb2xlYW4g aW5kaWNhdGluZyBpZiBwcmVkaWNhdGUgd2FzIHdyaXR0ZW4KKyAgICBtZW1fbG9nX3N0b3JlcyAg ICAgICAgcmVjb3JkIG9mIHRoZSBzdG9yZXMgKGluZGV4ZWQgYnkgc2xvdCkKKworKioqIERlYnVn Z2luZyAqKioKKworWW91IGNhbiB0dXJuIG9uIGEgbG90IG9mIGRlYnVnZ2luZyBieSBjaGFuZ2lu ZyB0aGUgSEVYX0RFQlVHIG1hY3JvIHRvIDEgaW4KK2ludGVybmFsLmguICBUaGlzIHdpbGwgc3Ry ZWFtIGEgbG90IG9mIGluZm9ybWF0aW9uIGFzIGl0IGdlbmVyYXRlcyBUQ0cgYW5kCitleGVjdXRl cyB0aGUgY29kZS4KKworVG8gdHJhY2sgZG93biBuYXN0eSBpc3N1ZXMgd2l0aCBIZXhhZ29uLT5U Q0cgZ2VuZXJhdGlvbiwgd2UgY29tcGFyZSB0aGUKK2V4ZWN1dGlvbiByZXN1bHRzIHdpdGggYWN0 dWFsIGhhcmR3YXJlIHJ1bm5pbmcgb24gYSBIZXhhZ29uIExpbnV4IHRhcmdldC4KK1J1biBxZW11 IHdpdGggdGhlICItZCBjcHUiIG9wdGlvbi4gIFRoZW4sIHdlIGNhbiBkaWZmIHRoZSByZXN1bHRz IGFuZCBmaWd1cmUKK291dCB3aGVyZSBxZW11IGFuZCBoYXJkd2FyZSBiZWhhdmUgZGlmZmVyZW50 bHkuCisKK1RoZSBzdGFja3MgYXJlIGxvY2F0ZWQgYXQgZGlmZmVyZW50IGxvY2F0aW9ucy4gIFdl IGhhbmRsZSB0aGlzIGJ5IGNoYW5naW5nCitlbnYtPnN0YWNrX2FkanVzdCBpbiB0cmFuc2xhdGUu Yy4gIEZpcnN0LCBzZXQgdGhpcyB0byB6ZXJvIGFuZCBydW4gcWVtdS4KK1RoZW4sIGNoYW5nZSBl bnYtPnN0YWNrX2FkanVzdCB0byB0aGUgZGlmZmVyZW5jZSBiZXR3ZWVuIHRoZSB0d28gc3RhY2sK K2xvY2F0aW9ucy4gIFRoZW4gcmVidWlsZCBxZW11IGFuZCBydW4gYWdhaW4uIFRoYXQgd2lsbCBw cm9kdWNlIGEgdmVyeQorY2xlYW4gZGlmZi4KKworSGVyZSBhcmUgc29tZSBoYW5keSBwbGFjZXMg dG8gc2V0IGJyZWFrcG9pbnRzCisKKyAgICBBdCB0aGUgY2FsbCB0byBnZW5fc3RhcnRfcGFja2V0 IGZvciBhIGdpdmVuIFBDIChub3RlIHRoYXQgdGhlIGxpbmUgbnVtYmVyCisgICAgICAgIG1pZ2h0 IGNoYW5nZSBpbiB0aGUgZnV0dXJlKQorICAgICAgICBiciB0cmFuc2xhdGUuYzo2MDIgaWYgY3R4 LT5iYXNlLnBjX25leHQgPT0gMHhkZWFkYmVlZgorICAgIFRoZSBoZWxwZXIgZnVuY3Rpb24gZm9y IGVhY2ggaW5zdHJ1Y3Rpb24gaXMgbmFtZWQgaGVscGVyXzxUQUc+LCBzbyBoZXJlJ3MKKyAgICAg ICAgYW4gZXhhbXBsZSB0aGF0IHdpbGwgc2V0IGEgYnJlYWtwb2ludCBhdCB0aGUgc3RhcnQKKyAg ICAgICAgYnIgaGVscGVyX0EyX2FkZAorICAgIElmIHlvdSBoYXZlIHRoZSBIRVhfREVCVUcgbWFj cm8gc2V0LCB0aGUgZm9sbG93aW5nIHdpbGwgYmUgdXNlZnVsCisgICAgICAgIEF0IHRoZSBzdGFy dCBvZiBleGVjdXRpb24gb2YgYSBwYWNrZXQgZm9yIGEgZ2l2ZW4gUEMKKyAgICAgICAgICAgIGJy IGhlbHBlcl9kZWJ1Z19zdGFydF9wYWNrZXQgaWYgZW52LT5ncHJbNDFdID09IDB4ZGVhZGJlZWYK KyAgICAgICAgQXQgdGhlIGVuZCBvZiBleGVjdXRpb24gb2YgYSBwYWNrZXQgZm9yIGEgZ2l2ZW4g UEMKKyAgICAgICAgICAgIGJyIGhlbHBlcl9kZWJ1Z19jb21taXRfZW5kIGlmIGVudi0+dGhpc19Q QyA9PSAweGRlYWRiZWVmCi0tIAoyLjcuNAoK