From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from esa3.mentor.iphmx.com (esa3.mentor.iphmx.com [68.232.137.180]) by sourceware.org (Postfix) with ESMTPS id 5FCE13858C2F for ; Thu, 25 Aug 2022 15:39:10 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 5FCE13858C2F Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=codesourcery.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=mentor.com X-IronPort-AV: E=Sophos;i="5.93,263,1654588800"; d="diff'?scan'208,217";a="81811447" Received: from orw-gwy-02-in.mentorg.com ([192.94.38.167]) by esa3.mentor.iphmx.com with ESMTP; 25 Aug 2022 07:39:05 -0800 IronPort-SDR: 2Q/PcFk1ylukeB16pGTGS9Vve5Ui2jhWnJF4Yjvi1T/Zt3Fe3EChmTmhXAcL4KE4GmcbpkntUX LiykHMtFpb4q4u4fjkmRwLSVZSJyn3wWghE9OT9cUTc++D7O5BmaJfJRsnniR0EDDeyntQhx5/ tN5nuaYDf/OnRjdtRNMVS6kqGxiBMfTSJwCk7kgEUe0bt16YWLF72yaIRrFK49JGzqQfuCGQ0h Tu71eJD1al42VZ/blKpwqtLYCt7Ci9/dZuPCW9Z7IaxbjCgkMx55SKIySM0AafSmFRjiTURah3 yaU= Content-Type: multipart/mixed; boundary="------------0IXlunxqC6SqGrFc6dYAJhRD" Message-ID: <9b367f13-dad2-5151-45a6-ae5dbc7950aa@codesourcery.com> Date: Thu, 25 Aug 2022 17:38:58 +0200 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.2.0 Subject: [Patch][2/3] GCN: libgomp+mkoffload.cc: Prepare for reverse offload fn lookup Content-Language: en-US From: Tobias Burnus To: gcc-patches , Jakub Jelinek , Andrew Stubbs References: <40563a1c-49ef-a185-3c01-9f717cd48fc5@codesourcery.com> In-Reply-To: <40563a1c-49ef-a185-3c01-9f717cd48fc5@codesourcery.com> X-Originating-IP: [137.202.0.90] X-ClientProxiedBy: svr-ies-mbx-09.mgc.mentorg.com (139.181.222.9) To svr-ies-mbx-12.mgc.mentorg.com (139.181.222.12) X-Spam-Status: No, score=-10.6 required=5.0 tests=BAYES_00, GIT_PATCH_0, HEADER_FROM_DIFFERENT_DOMAINS, HTML_MESSAGE, KAM_DMARC_STATUS, KAM_STOCKGEN, SPF_HELO_PASS, SPF_PASS, TXREP, T_FILL_THIS_FORM_SHORT, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org X-Content-Filtered-By: Mailman/MimeDel 2.1.29 X-BeenThere: gcc-patches@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 25 Aug 2022 15:39:12 -0000 --------------0IXlunxqC6SqGrFc6dYAJhRD Content-Type: text/plain; charset="utf-8"; format=flowed Content-Transfer-Encoding: quoted-printable On 25.08.22 16:54, Tobias Burnus wrote: The attached patch prepare for reverse-offload device->host function-address lookup by requesting (if needed) the on-device address. This patch adds the actual implementation for GCN. A variant would be to only generate .offload_func_table inside mkoffload when OMP_REQUIRES_REVERSE_OFFLOAD has been requested. This is currently effectively a no op as with [1/3] patch, always NULL is passed and as GOMP_OFFLOAD_get_num_devices returns <=3D 0 as soon as 'omp requires reverse_offload' has been specified. OK for mainline? Tobias ----------------- Siemens Electronic Design Automation GmbH; Anschrift: Arnulfstra=C3=9Fe 201= , 80634 M=C3=BCnchen; Gesellschaft mit beschr=C3=A4nkter Haftung; Gesch=C3= =A4ftsf=C3=BChrer: Thomas Heurung, Frank Th=C3=BCrauf; Sitz der Gesellschaf= t: M=C3=BCnchen; Registergericht M=C3=BCnchen, HRB 106955 --------------0IXlunxqC6SqGrFc6dYAJhRD Content-Type: text/x-patch; charset="UTF-8"; name="fn-lookup-gcn.diff" Content-Disposition: attachment; filename="fn-lookup-gcn.diff" Content-Transfer-Encoding: base64 R0NOOiBsaWJnb21wK21rb2ZmbG9hZC5jYzogUHJlcGFyZSBmb3IgcmV2ZXJzZSBvZmZsb2Fk IGZuIGxvb2t1cAoKQWRkIHN1cHBvcnQgdG8gR0NOIGZvciByZXZlcnNlIGxvb2t1cCBvZiBm dW5jdGlvbiBuYW1lIHRvIHByZXBhcmUgZm9yCidvbXAgdGFyZ2V0IGRldmljZShhbmNlc3Rv cjoxKScuCgpnY2MvQ2hhbmdlTG9nOgoKCSogY29uZmlnL2djbi9ta29mZmxvYWQuY2MgKHBy b2Nlc3NfYXNtKTogQ3JlYXRlIC5vZmZsb2FkX2Z1bmNfdGFibGUsCglzaW1pbGFyIHRvIHBy ZS1leGlzdGluZyAub2ZmbG9hZF92YXJfdGFibGUuCgpsaWJnb21wL0NoYW5nZUxvZzoKCgkq IHBsdWdpbi9wbHVnaW4tZ2NuLmMgKEdPTVBfT0ZGTE9BRF9sb2FkX2ltYWdlKTogUmVhZAoJ Lm9mZmxvYWRfZnVuY190YWJsZSB0byBwb3B1bGF0ZSByZXZfZm5fdGFibGUgd2hlbiByZXF1 ZXN0ZWQuCgogZ2NjL2NvbmZpZy9nY24vbWtvZmZsb2FkLmNjIHwgMTEgKysrKysrKysrKy0K IGxpYmdvbXAvcGx1Z2luL3BsdWdpbi1nY24uYyB8IDI2ICsrKysrKysrKysrKysrKysrKysr KysrKystCiAyIGZpbGVzIGNoYW5nZWQsIDM1IGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25z KC0pCmRpZmYgLS1naXQgYS9nY2MvY29uZmlnL2djbi9ta29mZmxvYWQuY2MgYi9nY2MvY29u ZmlnL2djbi9ta29mZmxvYWQuY2MKaW5kZXggNDIwNjQ0ODcwM2EuLjI0ZDMyNzM1NWUzIDEw MDY0NAotLS0gYS9nY2MvY29uZmlnL2djbi9ta29mZmxvYWQuY2MKKysrIGIvZ2NjL2NvbmZp Zy9nY24vbWtvZmZsb2FkLmNjCkBAIC01MzcsNjMgKzUzNyw3MiBAQCBwcm9jZXNzX2FzbSAo RklMRSAqaW4sIEZJTEUgKm91dCwgRklMRSAqY2ZpbGUpCiAJY2FzZSBJTl9WQVJTOgogCSAg ewogCSAgICBjaGFyICp2YXJuYW1lOwogCSAgICB1bnNpZ25lZCB2YXJzaXplOwogCSAgICBp ZiAoc3NjYW5mIChidWYsICIgLjhieXRlICVtc1xuIiwgJnZhcm5hbWUpKQogCSAgICAgIHsK IAkJZnB1dHMgKGJ1Ziwgb3V0KTsKIAkJZmdldHMgKGJ1Ziwgc2l6ZW9mIChidWYpLCBpbik7 CiAJCWlmICghc3NjYW5mIChidWYsICIgLjhieXRlICV1XG4iLCAmdmFyc2l6ZSkpCiAJCSAg YWJvcnQgKCk7CiAJCXZhcl9jb3VudCsrOwogCSAgICAgIH0KIAkgICAgYnJlYWs7CiAJICB9 CiAJY2FzZSBJTl9GVU5DUzoKIAkgIHsKIAkgICAgY2hhciAqZnVuY25hbWU7CiAJICAgIGlm IChzc2NhbmYgKGJ1ZiwgIlx0LjhieXRlXHQlbXNcbiIsICZmdW5jbmFtZSkpCiAJICAgICAg eworCQlmcHV0cyAoYnVmLCBvdXQpOwogCQlvYnN0YWNrX3B0cl9ncm93ICgmZm5zX29zLCBm dW5jbmFtZSk7CiAJCWZuX2NvdW50Kys7CiAJCWNvbnRpbnVlOwogCSAgICAgIH0KIAkgICAg YnJlYWs7CiAJICB9CiAJfQogCiAgICAgICBjaGFyIGR1bW15OwogICAgICAgaWYgKHNzY2Fu ZiAoYnVmLCAiIC5zZWN0aW9uIC5nbnUub2ZmbG9hZF92YXJzJWMiLCAmZHVtbXkpID4gMCkK IAl7CiAJICBzdGF0ZSA9IElOX1ZBUlM7CiAKIAkgIC8qIEFkZCBhIGdsb2JhbCBzeW1ib2wg dG8gYWxsb3cgcGx1Z2luLWdjbi5jIHRvIGxvY2F0ZSB0aGUgdGFibGUKIAkgICAgIGF0IHJ1 bnRpbWUuICBJdCBjYW4ndCB1c2UgdGhlICJvZmZsb2FkX3Zhcl90YWJsZS5OIiBlbWl0dGVk IGJ5CiAJICAgICB0aGUgY29tcGlsZXIgYmVjYXVzZSBhKSB0aGV5J3JlIG5vdCBnbG9iYWws IGFuZCBiKSB0aGVyZSdzIG9uZQogCSAgICAgZm9yIGVhY2ggaW5wdXQgZmlsZSBjb21iaW5l ZCBpbnRvIHRoZSBiaW5hcnkuICAqLwogCSAgZnB1dHMgKGJ1Ziwgb3V0KTsKIAkgIGZwdXRz ICgiXHQuZ2xvYmFsIC5vZmZsb2FkX3Zhcl90YWJsZVxuIgogCQkgIlx0LnR5cGUgLm9mZmxv YWRfdmFyX3RhYmxlLCBAb2JqZWN0XG4iCiAJCSAiLm9mZmxvYWRfdmFyX3RhYmxlOlxuIiwK IAkJIG91dCk7CiAJfQogICAgICAgZWxzZSBpZiAoc3NjYW5mIChidWYsICIgLnNlY3Rpb24g LmdudS5vZmZsb2FkX2Z1bmNzJWMiLCAmZHVtbXkpID4gMCkKLQlzdGF0ZSA9IElOX0ZVTkNT OworCXsKKwkgIHN0YXRlID0gSU5fRlVOQ1M7CisJICAvKiBMaWtld2lzZSBmb3IgLmdudS5v ZmZsb2FkX3ZhcnM7IHVzZWQgZm9yIHJldmVyc2Ugb2ZmbG9hZC4gKi8KKwkgIGZwdXRzIChi dWYsIG91dCk7CisJICBmcHV0cyAoIlx0Lmdsb2JhbCAub2ZmbG9hZF9mdW5jX3RhYmxlXG4i CisJCSAiXHQudHlwZSAub2ZmbG9hZF9mdW5jX3RhYmxlLCBAb2JqZWN0XG4iCisJCSAiLm9m ZmxvYWRfZnVuY190YWJsZTpcbiIsCisJCSBvdXQpOworCX0KICAgICAgIGVsc2UgaWYgKHNz Y2FuZiAoYnVmLCAiIC5hbWRncHVfbWV0YWRhdGElYyIsICZkdW1teSkgPiAwKQogCXsKIAkg IHN0YXRlID0gSU5fTUVUQURBVEE7CiAJICByZWdjb3VudC5rZXJuZWxfbmFtZSA9IE5VTEw7 CiAJICByZWdjb3VudC5zZ3ByX2NvdW50ID0gcmVnY291bnQudmdwcl9jb3VudCA9IC0xOwog CX0KICAgICAgIGVsc2UgaWYgKHNzY2FuZiAoYnVmLCAiIC5zZWN0aW9uICVjIiwgJmR1bW15 KSA+IDAKIAkgICAgICAgfHwgc3NjYW5mIChidWYsICIgLnRleHQlYyIsICZkdW1teSkgPiAw CiAJICAgICAgIHx8IHNzY2FuZiAoYnVmLCAiIC5ic3MlYyIsICZkdW1teSkgPiAwCiAJICAg ICAgIHx8IHNzY2FuZiAoYnVmLCAiIC5kYXRhJWMiLCAmZHVtbXkpID4gMAogCSAgICAgICB8 fCBzc2NhbmYgKGJ1ZiwgIiAuaWRlbnQgJWMiLCAmZHVtbXkpID4gMCkKIAlzdGF0ZSA9IElO X0NPREU7CiAgICAgICBlbHNlIGlmIChzc2NhbmYgKGJ1ZiwgIiAuZW5kX2FtZGdwdV9tZXRh ZGF0YSVjIiwgJmR1bW15KSA+IDApCiAJewogCSAgc3RhdGUgPSBJTl9DT0RFOwogCSAgZ2Nj X2Fzc2VydCAocmVnY291bnQua2VybmVsX25hbWUgIT0gTlVMTAogCQkgICAgICAmJiByZWdj b3VudC5zZ3ByX2NvdW50ID49IDAKIAkJICAgICAgJiYgcmVnY291bnQudmdwcl9jb3VudCA+ PSAwKTsKIAkgIG9ic3RhY2tfZ3JvdyAoJnJlZ2NvdW50c19vcywgJnJlZ2NvdW50LCBzaXpl b2YgKHJlZ2NvdW50KSk7CmRpZmYgLS1naXQgYS9saWJnb21wL3BsdWdpbi9wbHVnaW4tZ2Nu LmMgYi9saWJnb21wL3BsdWdpbi9wbHVnaW4tZ2NuLmMKaW5kZXggMzYzZTI5NTA2NDkuLjAw NjAzOTgxODY2IDEwMDY0NAotLS0gYS9saWJnb21wL3BsdWdpbi9wbHVnaW4tZ2NuLmMKKysr IGIvbGliZ29tcC9wbHVnaW4vcGx1Z2luLWdjbi5jCkBAIC0zMzUzLDcgKzMzNTMsNyBAQCBH T01QX09GRkxPQURfaW5pdF9kZXZpY2UgKGludCBuKQogaW50CiBHT01QX09GRkxPQURfbG9h ZF9pbWFnZSAoaW50IG9yZCwgdW5zaWduZWQgdmVyc2lvbiwgY29uc3Qgdm9pZCAqdGFyZ2V0 X2RhdGEsCiAJCQkgc3RydWN0IGFkZHJfcGFpciAqKnRhcmdldF90YWJsZSwKLQkJCSB1aW50 NjRfdCAqKnJldl9mbl90YWJsZSBfX2F0dHJpYnV0ZV9fKCh1bnVzZWQpKSkKKwkJCSB1aW50 NjRfdCAqKnJldl9mbl90YWJsZSkKIHsKICAgaWYgKEdPTVBfVkVSU0lPTl9ERVYgKHZlcnNp b24pICE9IEdPTVBfVkVSU0lPTl9HQ04pCiAgICAgewpAQCAtMzUyMCw2ICszNTIwLDMwIEBA IEdPTVBfT0ZGTE9BRF9sb2FkX2ltYWdlIChpbnQgb3JkLCB1bnNpZ25lZCB2ZXJzaW9uLCBj b25zdCB2b2lkICp0YXJnZXRfZGF0YSwKICAgaWYgKG1vZHVsZS0+ZmluaV9hcnJheV9mdW5j KQogICAgIGtlcm5lbF9jb3VudC0tOwogCisgIGlmIChyZXZfZm5fdGFibGUgIT0gTlVMTCAm JiBrZXJuZWxfY291bnQgPT0gMCkKKyAgICAqcmV2X2ZuX3RhYmxlID0gTlVMTDsKKyAgZWxz ZSBpZiAocmV2X2ZuX3RhYmxlICE9IE5VTEwpCisgICAgeworICAgICAgaHNhX3N0YXR1c190 IHN0YXR1czsKKyAgICAgIGhzYV9leGVjdXRhYmxlX3N5bWJvbF90IHZhcl9zeW1ib2w7Cisg ICAgICBzdGF0dXMgPSBoc2FfZm5zLmhzYV9leGVjdXRhYmxlX2dldF9zeW1ib2xfZm4gKGFn ZW50LT5leGVjdXRhYmxlLCBOVUxMLAorCQkJCQkJICAgICAiLm9mZmxvYWRfZnVuY190YWJs ZSIsCisJCQkJCQkgICAgIGFnZW50LT5pZCwgMCwgJnZhcl9zeW1ib2wpOworICAgICAgaWYg KHN0YXR1cyAhPSBIU0FfU1RBVFVTX1NVQ0NFU1MpCisJaHNhX2ZhdGFsICgiQ291bGQgbm90 IGZpbmQgc3ltYm9sIGZvciB2YXJpYWJsZSBpbiB0aGUgY29kZSBvYmplY3QiLAorCQkgICBz dGF0dXMpOworICAgICAgdWludDY0X3QgZm5fdGFibGVfYWRkcjsKKyAgICAgIHN0YXR1cyA9 IGhzYV9mbnMuaHNhX2V4ZWN1dGFibGVfc3ltYm9sX2dldF9pbmZvX2ZuCisJKHZhcl9zeW1i b2wsIEhTQV9FWEVDVVRBQkxFX1NZTUJPTF9JTkZPX1ZBUklBQkxFX0FERFJFU1MsCisJICZm bl90YWJsZV9hZGRyKTsKKyAgICAgIGlmIChzdGF0dXMgIT0gSFNBX1NUQVRVU19TVUNDRVNT KQorCWhzYV9mYXRhbCAoIkNvdWxkIG5vdCBleHRyYWN0IGEgdmFyaWFibGUgZnJvbSBpdHMg c3ltYm9sIiwgc3RhdHVzKTsKKyAgICAgICpyZXZfZm5fdGFibGUgPSBHT01QX1BMVUdJTl9t YWxsb2MgKGtlcm5lbF9jb3VudCAqIHNpemVvZiAodWludDY0X3QpKTsKKyAgICAgIEdPTVBf T0ZGTE9BRF9kZXYyaG9zdCAoYWdlbnQtPmRldmljZV9pZCwgKnJldl9mbl90YWJsZSwKKwkJ CSAgICAgKHZvaWQqKSBmbl90YWJsZV9hZGRyLAorCQkJICAgICBrZXJuZWxfY291bnQgKiBz aXplb2YgKHVpbnQ2NF90KSk7CisgICAgfQorCiAgIHJldHVybiBrZXJuZWxfY291bnQgKyB2 YXJfY291bnQgKyBvdGhlcl9jb3VudDsKIH0KIAo= --------------0IXlunxqC6SqGrFc6dYAJhRD-- From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from esa3.mentor.iphmx.com (esa3.mentor.iphmx.com [68.232.137.180]) by sourceware.org (Postfix) with ESMTPS id 5FCE13858C2F for ; Thu, 25 Aug 2022 15:39:10 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 5FCE13858C2F Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=codesourcery.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=mentor.com X-IronPort-AV: E=Sophos;i="5.93,263,1654588800"; d="diff'?scan'208,217";a="81811447" Received: from orw-gwy-02-in.mentorg.com ([192.94.38.167]) by esa3.mentor.iphmx.com with ESMTP; 25 Aug 2022 07:39:05 -0800 IronPort-SDR: 2Q/PcFk1ylukeB16pGTGS9Vve5Ui2jhWnJF4Yjvi1T/Zt3Fe3EChmTmhXAcL4KE4GmcbpkntUX LiykHMtFpb4q4u4fjkmRwLSVZSJyn3wWghE9OT9cUTc++D7O5BmaJfJRsnniR0EDDeyntQhx5/ tN5nuaYDf/OnRjdtRNMVS6kqGxiBMfTSJwCk7kgEUe0bt16YWLF72yaIRrFK49JGzqQfuCGQ0h Tu71eJD1al42VZ/blKpwqtLYCt7Ci9/dZuPCW9Z7IaxbjCgkMx55SKIySM0AafSmFRjiTURah3 yaU= Content-Type: multipart/mixed; boundary="------------0IXlunxqC6SqGrFc6dYAJhRD" Message-ID: <9b367f13-dad2-5151-45a6-ae5dbc7950aa@codesourcery.com> Date: Thu, 25 Aug 2022 17:38:58 +0200 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.2.0 Subject: [Patch][2/3] GCN: libgomp+mkoffload.cc: Prepare for reverse offload fn lookup Content-Language: en-US From: Tobias Burnus To: gcc-patches , Jakub Jelinek , Andrew Stubbs References: <40563a1c-49ef-a185-3c01-9f717cd48fc5@codesourcery.com> In-Reply-To: <40563a1c-49ef-a185-3c01-9f717cd48fc5@codesourcery.com> X-Originating-IP: [137.202.0.90] X-ClientProxiedBy: svr-ies-mbx-09.mgc.mentorg.com (139.181.222.9) To svr-ies-mbx-12.mgc.mentorg.com (139.181.222.12) X-Spam-Status: No, score=-10.6 required=5.0 tests=BAYES_00,GIT_PATCH_0,HEADER_FROM_DIFFERENT_DOMAINS,HTML_MESSAGE,KAM_DMARC_STATUS,KAM_STOCKGEN,SPF_HELO_PASS,SPF_PASS,TXREP,T_FILL_THIS_FORM_SHORT,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: Message-ID: <20220825153858.V-_BiogxylrvLVVgex4OiEhV-7OLqzCRDctFBiOxgoQ@z> --------------0IXlunxqC6SqGrFc6dYAJhRD Content-Type: multipart/alternative; boundary="------------Sb0d7yIcUTJNSHLyWckvLrHi" --------------Sb0d7yIcUTJNSHLyWckvLrHi Content-Type: text/plain; charset="utf-8"; format=flowed Content-Transfer-Encoding: quoted-printable On 25.08.22 16:54, Tobias Burnus wrote: The attached patch prepare for reverse-offload device->host function-address lookup by requesting (if needed) the on-device address. This patch adds the actual implementation for GCN. A variant would be to only generate .offload_func_table inside mkoffload when OMP_REQUIRES_REVERSE_OFFLOAD has been requested. This is currently effectively a no op as with [1/3] patch, always NULL is passed and as GOMP_OFFLOAD_get_num_devices returns <=3D 0 as soon as 'omp requires reverse_offload' has been specified. OK for mainline? Tobias ----------------- Siemens Electronic Design Automation GmbH; Anschrift: Arnulfstra=C3=9Fe 201= , 80634 M=C3=BCnchen; Gesellschaft mit beschr=C3=A4nkter Haftung; Gesch=C3= =A4ftsf=C3=BChrer: Thomas Heurung, Frank Th=C3=BCrauf; Sitz der Gesellschaf= t: M=C3=BCnchen; Registergericht M=C3=BCnchen, HRB 106955 --------------Sb0d7yIcUTJNSHLyWckvLrHi-- --------------0IXlunxqC6SqGrFc6dYAJhRD Content-Type: text/x-patch; charset="UTF-8"; name="fn-lookup-gcn.diff" Content-Disposition: attachment; filename="fn-lookup-gcn.diff" Content-Transfer-Encoding: base64 R0NOOiBsaWJnb21wK21rb2ZmbG9hZC5jYzogUHJlcGFyZSBmb3IgcmV2ZXJz ZSBvZmZsb2FkIGZuIGxvb2t1cAoKQWRkIHN1cHBvcnQgdG8gR0NOIGZvciBy ZXZlcnNlIGxvb2t1cCBvZiBmdW5jdGlvbiBuYW1lIHRvIHByZXBhcmUgZm9y CidvbXAgdGFyZ2V0IGRldmljZShhbmNlc3RvcjoxKScuCgpnY2MvQ2hhbmdl TG9nOgoKCSogY29uZmlnL2djbi9ta29mZmxvYWQuY2MgKHByb2Nlc3NfYXNt KTogQ3JlYXRlIC5vZmZsb2FkX2Z1bmNfdGFibGUsCglzaW1pbGFyIHRvIHBy ZS1leGlzdGluZyAub2ZmbG9hZF92YXJfdGFibGUuCgpsaWJnb21wL0NoYW5n ZUxvZzoKCgkqIHBsdWdpbi9wbHVnaW4tZ2NuLmMgKEdPTVBfT0ZGTE9BRF9s b2FkX2ltYWdlKTogUmVhZAoJLm9mZmxvYWRfZnVuY190YWJsZSB0byBwb3B1 bGF0ZSByZXZfZm5fdGFibGUgd2hlbiByZXF1ZXN0ZWQuCgogZ2NjL2NvbmZp Zy9nY24vbWtvZmZsb2FkLmNjIHwgMTEgKysrKysrKysrKy0KIGxpYmdvbXAv cGx1Z2luL3BsdWdpbi1nY24uYyB8IDI2ICsrKysrKysrKysrKysrKysrKysr KysrKystCiAyIGZpbGVzIGNoYW5nZWQsIDM1IGluc2VydGlvbnMoKyksIDIg ZGVsZXRpb25zKC0pCmRpZmYgLS1naXQgYS9nY2MvY29uZmlnL2djbi9ta29m ZmxvYWQuY2MgYi9nY2MvY29uZmlnL2djbi9ta29mZmxvYWQuY2MKaW5kZXgg NDIwNjQ0ODcwM2EuLjI0ZDMyNzM1NWUzIDEwMDY0NAotLS0gYS9nY2MvY29u ZmlnL2djbi9ta29mZmxvYWQuY2MKKysrIGIvZ2NjL2NvbmZpZy9nY24vbWtv ZmZsb2FkLmNjCkBAIC01MzcsNjMgKzUzNyw3MiBAQCBwcm9jZXNzX2FzbSAo RklMRSAqaW4sIEZJTEUgKm91dCwgRklMRSAqY2ZpbGUpCiAJY2FzZSBJTl9W QVJTOgogCSAgewogCSAgICBjaGFyICp2YXJuYW1lOwogCSAgICB1bnNpZ25l ZCB2YXJzaXplOwogCSAgICBpZiAoc3NjYW5mIChidWYsICIgLjhieXRlICVt c1xuIiwgJnZhcm5hbWUpKQogCSAgICAgIHsKIAkJZnB1dHMgKGJ1Ziwgb3V0 KTsKIAkJZmdldHMgKGJ1Ziwgc2l6ZW9mIChidWYpLCBpbik7CiAJCWlmICgh c3NjYW5mIChidWYsICIgLjhieXRlICV1XG4iLCAmdmFyc2l6ZSkpCiAJCSAg YWJvcnQgKCk7CiAJCXZhcl9jb3VudCsrOwogCSAgICAgIH0KIAkgICAgYnJl YWs7CiAJICB9CiAJY2FzZSBJTl9GVU5DUzoKIAkgIHsKIAkgICAgY2hhciAq ZnVuY25hbWU7CiAJICAgIGlmIChzc2NhbmYgKGJ1ZiwgIlx0LjhieXRlXHQl bXNcbiIsICZmdW5jbmFtZSkpCiAJICAgICAgeworCQlmcHV0cyAoYnVmLCBv dXQpOwogCQlvYnN0YWNrX3B0cl9ncm93ICgmZm5zX29zLCBmdW5jbmFtZSk7 CiAJCWZuX2NvdW50Kys7CiAJCWNvbnRpbnVlOwogCSAgICAgIH0KIAkgICAg YnJlYWs7CiAJICB9CiAJfQogCiAgICAgICBjaGFyIGR1bW15OwogICAgICAg aWYgKHNzY2FuZiAoYnVmLCAiIC5zZWN0aW9uIC5nbnUub2ZmbG9hZF92YXJz JWMiLCAmZHVtbXkpID4gMCkKIAl7CiAJICBzdGF0ZSA9IElOX1ZBUlM7CiAK IAkgIC8qIEFkZCBhIGdsb2JhbCBzeW1ib2wgdG8gYWxsb3cgcGx1Z2luLWdj bi5jIHRvIGxvY2F0ZSB0aGUgdGFibGUKIAkgICAgIGF0IHJ1bnRpbWUuICBJ dCBjYW4ndCB1c2UgdGhlICJvZmZsb2FkX3Zhcl90YWJsZS5OIiBlbWl0dGVk IGJ5CiAJICAgICB0aGUgY29tcGlsZXIgYmVjYXVzZSBhKSB0aGV5J3JlIG5v dCBnbG9iYWwsIGFuZCBiKSB0aGVyZSdzIG9uZQogCSAgICAgZm9yIGVhY2gg aW5wdXQgZmlsZSBjb21iaW5lZCBpbnRvIHRoZSBiaW5hcnkuICAqLwogCSAg ZnB1dHMgKGJ1Ziwgb3V0KTsKIAkgIGZwdXRzICgiXHQuZ2xvYmFsIC5vZmZs b2FkX3Zhcl90YWJsZVxuIgogCQkgIlx0LnR5cGUgLm9mZmxvYWRfdmFyX3Rh YmxlLCBAb2JqZWN0XG4iCiAJCSAiLm9mZmxvYWRfdmFyX3RhYmxlOlxuIiwK IAkJIG91dCk7CiAJfQogICAgICAgZWxzZSBpZiAoc3NjYW5mIChidWYsICIg LnNlY3Rpb24gLmdudS5vZmZsb2FkX2Z1bmNzJWMiLCAmZHVtbXkpID4gMCkK LQlzdGF0ZSA9IElOX0ZVTkNTOworCXsKKwkgIHN0YXRlID0gSU5fRlVOQ1M7 CisJICAvKiBMaWtld2lzZSBmb3IgLmdudS5vZmZsb2FkX3ZhcnM7IHVzZWQg Zm9yIHJldmVyc2Ugb2ZmbG9hZC4gKi8KKwkgIGZwdXRzIChidWYsIG91dCk7 CisJICBmcHV0cyAoIlx0Lmdsb2JhbCAub2ZmbG9hZF9mdW5jX3RhYmxlXG4i CisJCSAiXHQudHlwZSAub2ZmbG9hZF9mdW5jX3RhYmxlLCBAb2JqZWN0XG4i CisJCSAiLm9mZmxvYWRfZnVuY190YWJsZTpcbiIsCisJCSBvdXQpOworCX0K ICAgICAgIGVsc2UgaWYgKHNzY2FuZiAoYnVmLCAiIC5hbWRncHVfbWV0YWRh dGElYyIsICZkdW1teSkgPiAwKQogCXsKIAkgIHN0YXRlID0gSU5fTUVUQURB VEE7CiAJICByZWdjb3VudC5rZXJuZWxfbmFtZSA9IE5VTEw7CiAJICByZWdj b3VudC5zZ3ByX2NvdW50ID0gcmVnY291bnQudmdwcl9jb3VudCA9IC0xOwog CX0KICAgICAgIGVsc2UgaWYgKHNzY2FuZiAoYnVmLCAiIC5zZWN0aW9uICVj IiwgJmR1bW15KSA+IDAKIAkgICAgICAgfHwgc3NjYW5mIChidWYsICIgLnRl eHQlYyIsICZkdW1teSkgPiAwCiAJICAgICAgIHx8IHNzY2FuZiAoYnVmLCAi IC5ic3MlYyIsICZkdW1teSkgPiAwCiAJICAgICAgIHx8IHNzY2FuZiAoYnVm LCAiIC5kYXRhJWMiLCAmZHVtbXkpID4gMAogCSAgICAgICB8fCBzc2NhbmYg KGJ1ZiwgIiAuaWRlbnQgJWMiLCAmZHVtbXkpID4gMCkKIAlzdGF0ZSA9IElO X0NPREU7CiAgICAgICBlbHNlIGlmIChzc2NhbmYgKGJ1ZiwgIiAuZW5kX2Ft ZGdwdV9tZXRhZGF0YSVjIiwgJmR1bW15KSA+IDApCiAJewogCSAgc3RhdGUg PSBJTl9DT0RFOwogCSAgZ2NjX2Fzc2VydCAocmVnY291bnQua2VybmVsX25h bWUgIT0gTlVMTAogCQkgICAgICAmJiByZWdjb3VudC5zZ3ByX2NvdW50ID49 IDAKIAkJICAgICAgJiYgcmVnY291bnQudmdwcl9jb3VudCA+PSAwKTsKIAkg IG9ic3RhY2tfZ3JvdyAoJnJlZ2NvdW50c19vcywgJnJlZ2NvdW50LCBzaXpl b2YgKHJlZ2NvdW50KSk7CmRpZmYgLS1naXQgYS9saWJnb21wL3BsdWdpbi9w bHVnaW4tZ2NuLmMgYi9saWJnb21wL3BsdWdpbi9wbHVnaW4tZ2NuLmMKaW5k ZXggMzYzZTI5NTA2NDkuLjAwNjAzOTgxODY2IDEwMDY0NAotLS0gYS9saWJn b21wL3BsdWdpbi9wbHVnaW4tZ2NuLmMKKysrIGIvbGliZ29tcC9wbHVnaW4v cGx1Z2luLWdjbi5jCkBAIC0zMzUzLDcgKzMzNTMsNyBAQCBHT01QX09GRkxP QURfaW5pdF9kZXZpY2UgKGludCBuKQogaW50CiBHT01QX09GRkxPQURfbG9h ZF9pbWFnZSAoaW50IG9yZCwgdW5zaWduZWQgdmVyc2lvbiwgY29uc3Qgdm9p ZCAqdGFyZ2V0X2RhdGEsCiAJCQkgc3RydWN0IGFkZHJfcGFpciAqKnRhcmdl dF90YWJsZSwKLQkJCSB1aW50NjRfdCAqKnJldl9mbl90YWJsZSBfX2F0dHJp YnV0ZV9fKCh1bnVzZWQpKSkKKwkJCSB1aW50NjRfdCAqKnJldl9mbl90YWJs ZSkKIHsKICAgaWYgKEdPTVBfVkVSU0lPTl9ERVYgKHZlcnNpb24pICE9IEdP TVBfVkVSU0lPTl9HQ04pCiAgICAgewpAQCAtMzUyMCw2ICszNTIwLDMwIEBA IEdPTVBfT0ZGTE9BRF9sb2FkX2ltYWdlIChpbnQgb3JkLCB1bnNpZ25lZCB2 ZXJzaW9uLCBjb25zdCB2b2lkICp0YXJnZXRfZGF0YSwKICAgaWYgKG1vZHVs ZS0+ZmluaV9hcnJheV9mdW5jKQogICAgIGtlcm5lbF9jb3VudC0tOwogCisg IGlmIChyZXZfZm5fdGFibGUgIT0gTlVMTCAmJiBrZXJuZWxfY291bnQgPT0g MCkKKyAgICAqcmV2X2ZuX3RhYmxlID0gTlVMTDsKKyAgZWxzZSBpZiAocmV2 X2ZuX3RhYmxlICE9IE5VTEwpCisgICAgeworICAgICAgaHNhX3N0YXR1c190 IHN0YXR1czsKKyAgICAgIGhzYV9leGVjdXRhYmxlX3N5bWJvbF90IHZhcl9z eW1ib2w7CisgICAgICBzdGF0dXMgPSBoc2FfZm5zLmhzYV9leGVjdXRhYmxl X2dldF9zeW1ib2xfZm4gKGFnZW50LT5leGVjdXRhYmxlLCBOVUxMLAorCQkJ CQkJICAgICAiLm9mZmxvYWRfZnVuY190YWJsZSIsCisJCQkJCQkgICAgIGFn ZW50LT5pZCwgMCwgJnZhcl9zeW1ib2wpOworICAgICAgaWYgKHN0YXR1cyAh PSBIU0FfU1RBVFVTX1NVQ0NFU1MpCisJaHNhX2ZhdGFsICgiQ291bGQgbm90 IGZpbmQgc3ltYm9sIGZvciB2YXJpYWJsZSBpbiB0aGUgY29kZSBvYmplY3Qi LAorCQkgICBzdGF0dXMpOworICAgICAgdWludDY0X3QgZm5fdGFibGVfYWRk cjsKKyAgICAgIHN0YXR1cyA9IGhzYV9mbnMuaHNhX2V4ZWN1dGFibGVfc3lt Ym9sX2dldF9pbmZvX2ZuCisJKHZhcl9zeW1ib2wsIEhTQV9FWEVDVVRBQkxF X1NZTUJPTF9JTkZPX1ZBUklBQkxFX0FERFJFU1MsCisJICZmbl90YWJsZV9h ZGRyKTsKKyAgICAgIGlmIChzdGF0dXMgIT0gSFNBX1NUQVRVU19TVUNDRVNT KQorCWhzYV9mYXRhbCAoIkNvdWxkIG5vdCBleHRyYWN0IGEgdmFyaWFibGUg ZnJvbSBpdHMgc3ltYm9sIiwgc3RhdHVzKTsKKyAgICAgICpyZXZfZm5fdGFi bGUgPSBHT01QX1BMVUdJTl9tYWxsb2MgKGtlcm5lbF9jb3VudCAqIHNpemVv ZiAodWludDY0X3QpKTsKKyAgICAgIEdPTVBfT0ZGTE9BRF9kZXYyaG9zdCAo YWdlbnQtPmRldmljZV9pZCwgKnJldl9mbl90YWJsZSwKKwkJCSAgICAgKHZv aWQqKSBmbl90YWJsZV9hZGRyLAorCQkJICAgICBrZXJuZWxfY291bnQgKiBz aXplb2YgKHVpbnQ2NF90KSk7CisgICAgfQorCiAgIHJldHVybiBrZXJuZWxf Y291bnQgKyB2YXJfY291bnQgKyBvdGhlcl9jb3VudDsKIH0KIAo= --------------0IXlunxqC6SqGrFc6dYAJhRD--