From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from esa1.mentor.iphmx.com (esa1.mentor.iphmx.com [68.232.129.153]) by sourceware.org (Postfix) with ESMTPS id EC2D33858C27; Fri, 11 Mar 2022 12:30:23 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org EC2D33858C27 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.90,173,1643702400"; d="diff'?scan'208";a="75616038" Received: from orw-gwy-01-in.mentorg.com ([192.94.38.165]) by esa1.mentor.iphmx.com with ESMTP; 11 Mar 2022 04:30:22 -0800 IronPort-SDR: AvecZ8k7jBSs80p4WTTNP0Y5Ziyh+hdX96xEgViys8mF8g8uuH9XMQGUITInvq3yWOPcgnji8S bWLUNT6KkOkUxfVIZxNaegpZFxrvbfFQGm4aH2NEaR/GvIiHoG0ovq5BCj7Z3nwgPYwTBfVsg6 sYgpwm94tR3Lmq7eghVzDdCP+stOnkh/cRSn4Mug1zf9qDI3S2UL3mRKV3Vb478/+ZU+oLMrmc iPhv9ACMftuR0iHDnSn3FWLgxOAS7DlsbkyXl8BP4aNsLCqLvueI5D1utj2HovSZ4DQs/7iSta VLs= Content-Type: multipart/mixed; boundary="------------MRhUTmS3ujKGsNUHAQF1lrBl" Message-ID: <7fa4a70c-60e7-fa18-0fcd-98301c0b3344@codesourcery.com> Date: Fri, 11 Mar 2022 13:30:14 +0100 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101 Thunderbird/91.6.1 From: Marcel Vollweiler Subject: [Patch] OpenMP, libgomp: Add new runtime routine omp_target_is_accessible. To: , X-Originating-IP: [137.202.0.90] X-ClientProxiedBy: svr-ies-mbx-11.mgc.mentorg.com (139.181.222.11) To SVR-IES-MBX-03.mgc.mentorg.com (139.181.222.3) X-Spam-Status: No, score=-12.8 required=5.0 tests=BAYES_00, GIT_PATCH_0, HEADER_FROM_DIFFERENT_DOMAINS, KAM_DMARC_STATUS, SPF_HELO_PASS, SPF_PASS, TXREP, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on server2.sourceware.org X-BeenThere: fortran@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Fortran mailing list List-Unsubscribe: , List-Archive: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 11 Mar 2022 12:30:26 -0000 --------------MRhUTmS3ujKGsNUHAQF1lrBl Content-Type: text/plain; charset="UTF-8"; format=flowed Content-Transfer-Encoding: quoted-printable Hi, This patch adds the OpenMP runtime routine "omp_target_is_accessible" which= was introduced in OpenMP 5.1 (specification section 3.8.4): "The omp_target_is_accessible routine tests whether host memory is accessib= le from a given device." "This routine returns true if the storage of size bytes starting at the add= ress given by ptr is accessible from device device_num. Otherwise, it returns fa= lse." "The value of ptr must be a valid host pointer or NULL (or C_NULL_PTR, for Fortran). The device_num argument must be greater than or equal to zero and= less than or equal to the result of omp_get_num_devices()." "When called from within a target region the effect is unspecified." Currently, the only way of accessing host memory on a non-host device is vi= a shared memory. This will change with unified shared memory (usm) that was recently submitted but not yet approved/committed. A follow-up patch for omp_target_is_accessible is planned considering usm when available. The cur= rent patch handles the basic implementation for C/C++ and Fortran and includes comments pointing to usm. Although not explicitly specified in the OpenMP 5.1 standard, the implement= ed function returns "true" if the given device_num is equal to "omp_get_num_devices" (i.e. the host) as it is expected that host memory ca= n be accessed from the host device. The patch was tested on x86_64-linux and PowerPC, both with nvptx offloadin= g. All with no regressions. Marcel ----------------- 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 --------------MRhUTmS3ujKGsNUHAQF1lrBl Content-Type: text/plain; charset="UTF-8"; name="target-is-accessible-patch.diff" Content-Disposition: attachment; filename="target-is-accessible-patch.diff" Content-Transfer-Encoding: base64 T3Blbk1QLCBsaWJnb21wOiBBZGQgbmV3IHJ1bnRpbWUgcm91dGluZSBvbXBfdGFyZ2V0X2lz X2FjY2Vzc2libGUuDQoNCmdjYy9DaGFuZ2VMb2c6CgoJKiBvbXAtbG93LmNjIChvbXBfcnVu dGltZV9hcGlfY2FsbCk6IEFkZGVkIHRhcmdldF9pc19hY2Nlc3NpYmxlIHRvCglvbXBfcnVu dGltZV9hcGlzIGFycmF5LgoKbGliZ29tcC9DaGFuZ2VMb2c6CgoJKiBsaWJnb21wLm1hcDog QWRkZWQgb21wX3RhcmdldF9pc19hY2Nlc3NpYmxlLgoJKiBsaWJnb21wLnRleGk6IFRhZ2dl ZCBvbXBfdGFyZ2V0X2lzX2FjY2Vzc2libGUgYXMgc3VwcG9ydGVkLgoJKiBvbXAuaC5pbjog QWRkZWQgb21wX3RhcmdldF9pc19hY2Nlc3NpYmxlLgoJKiBvbXBfbGliLmY5MC5pbjogQWRk ZWQgaW50ZXJmYWNlIGZvciBvbXBfdGFyZ2V0X2lzX2FjY2Vzc2libGUuCgkqIG9tcF9saWIu aC5pbjogTGlrZXdpc2UuCgkqIHRhcmdldC5jIChvbXBfdGFyZ2V0X2lzX2FjY2Vzc2libGUp OiBBZGRlZCBpbXBsZW1lbnRhdGlvbiBvZgoJb21wX3RhcmdldF9pc19hY2Nlc3NpYmxlLgoJ KiB0ZXN0c3VpdGUvbGliZ29tcC5jLWMrKy1jb21tb24vdGFyZ2V0LWlzLWFjY2Vzc2libGUt MS5jOiBOZXcgdGVzdC4KCSogdGVzdHN1aXRlL2xpYmdvbXAuZm9ydHJhbi90YXJnZXQtaXMt YWNjZXNzaWJsZS0xLmY5MDogTmV3IHRlc3QuCgpkaWZmIC0tZ2l0IGEvZ2NjL29tcC1sb3cu Y2MgYi9nY2Mvb21wLWxvdy5jYwppbmRleCA3NzE3NmVmLi5iZjM4ZmFkIDEwMDY0NAotLS0g YS9nY2Mvb21wLWxvdy5jYworKysgYi9nY2Mvb21wLWxvdy5jYwpAQCAtMzk1OSw2ICszOTU5 LDcgQEAgb21wX3J1bnRpbWVfYXBpX2NhbGwgKGNvbnN0X3RyZWUgZm5kZWNsKQogICAgICAg InRhcmdldF9hc3NvY2lhdGVfcHRyIiwKICAgICAgICJ0YXJnZXRfZGlzYXNzb2NpYXRlX3B0 ciIsCiAgICAgICAidGFyZ2V0X2ZyZWUiLAorICAgICAgInRhcmdldF9pc19hY2Nlc3NpYmxl IiwKICAgICAgICJ0YXJnZXRfaXNfcHJlc2VudCIsCiAgICAgICAidGFyZ2V0X21lbWNweSIs CiAgICAgICAidGFyZ2V0X21lbWNweV9yZWN0IiwKZGlmZiAtLWdpdCBhL2xpYmdvbXAvbGli Z29tcC5tYXAgYi9saWJnb21wL2xpYmdvbXAubWFwCmluZGV4IDJhYzU4MDkuLjE3NjQzODAg MTAwNjQ0Ci0tLSBhL2xpYmdvbXAvbGliZ29tcC5tYXAKKysrIGIvbGliZ29tcC9saWJnb21w Lm1hcApAQCAtMjI2LDYgKzIyNiwxMSBAQCBPTVBfNS4xIHsKIAlvbXBfZ2V0X3RlYW1zX3Ro cmVhZF9saW1pdF87CiB9IE9NUF81LjAuMjsKIAorT01QXzUuMS4xIHsKKyAgZ2xvYmFsOgor CW9tcF90YXJnZXRfaXNfYWNjZXNzaWJsZTsKK30gT01QXzUuMTsKKwogR09NUF8xLjAgewog ICBnbG9iYWw6CiAJR09NUF9hdG9taWNfZW5kOwpkaWZmIC0tZ2l0IGEvbGliZ29tcC9saWJn b21wLnRleGkgYi9saWJnb21wL2xpYmdvbXAudGV4aQppbmRleCAxNjFhNDIzLi41OGU0MzJj IDEwMDY0NAotLS0gYS9saWJnb21wL2xpYmdvbXAudGV4aQorKysgYi9saWJnb21wL2xpYmdv bXAudGV4aQpAQCAtMzExLDcgKzMxMSw3IEBAIFRoZSBPcGVuTVAgNC41IHNwZWNpZmljYXRp b24gaXMgZnVsbHkgc3VwcG9ydGVkLgogQGl0ZW0gQGNvZGV7b21wX3NldF9udW1fdGVhbXN9 LCBAY29kZXtvbXBfc2V0X3RlYW1zX3RocmVhZF9saW1pdH0sCiAgICAgICBAY29kZXtvbXBf Z2V0X21heF90ZWFtc30sIEBjb2Rle29tcF9nZXRfdGVhbXNfdGhyZWFkX2xpbWl0fSBydW50 aW1lCiAgICAgICByb3V0aW5lcyBAdGFiIFkgQHRhYgotQGl0ZW0gQGNvZGV7b21wX3Rhcmdl dF9pc19hY2Nlc3NpYmxlfSBydW50aW1lIHJvdXRpbmUgQHRhYiBOIEB0YWIKK0BpdGVtIEBj b2Rle29tcF90YXJnZXRfaXNfYWNjZXNzaWJsZX0gcnVudGltZSByb3V0aW5lIEB0YWIgWSBA dGFiCiBAaXRlbSBAY29kZXtvbXBfdGFyZ2V0X21lbWNweV9hc3luY30gYW5kIEBjb2Rle29t cF90YXJnZXRfbWVtY3B5X3JlY3RfYXN5bmN9CiAgICAgICBydW50aW1lIHJvdXRpbmVzIEB0 YWIgTiBAdGFiCiBAaXRlbSBAY29kZXtvbXBfZ2V0X21hcHBlZF9wdHJ9IHJ1bnRpbWUgcm91 dGluZSBAdGFiIE4gQHRhYgpkaWZmIC0tZ2l0IGEvbGliZ29tcC9vbXAuaC5pbiBiL2xpYmdv bXAvb21wLmguaW4KaW5kZXggODljNWQ2NS4uMWVjNzQxNSAxMDA2NDQKLS0tIGEvbGliZ29t cC9vbXAuaC5pbgorKysgYi9saWJnb21wL29tcC5oLmluCkBAIC0yODIsNiArMjgyLDggQEAg ZXh0ZXJuIGludCBvbXBfdGFyZ2V0X21lbWNweV9yZWN0ICh2b2lkICosIGNvbnN0IHZvaWQg KiwgX19TSVpFX1RZUEVfXywgaW50LAogZXh0ZXJuIGludCBvbXBfdGFyZ2V0X2Fzc29jaWF0 ZV9wdHIgKGNvbnN0IHZvaWQgKiwgY29uc3Qgdm9pZCAqLCBfX1NJWkVfVFlQRV9fLAogCQkJ CSAgICAgX19TSVpFX1RZUEVfXywgaW50KSBfX0dPTVBfTk9USFJPVzsKIGV4dGVybiBpbnQg b21wX3RhcmdldF9kaXNhc3NvY2lhdGVfcHRyIChjb25zdCB2b2lkICosIGludCkgX19HT01Q X05PVEhST1c7CitleHRlcm4gaW50IG9tcF90YXJnZXRfaXNfYWNjZXNzaWJsZSAoY29uc3Qg dm9pZCAqLCBfX1NJWkVfVFlQRV9fLCBpbnQpCisgIF9fR09NUF9OT1RIUk9XOwogCiBleHRl cm4gdm9pZCBvbXBfc2V0X2FmZmluaXR5X2Zvcm1hdCAoY29uc3QgY2hhciAqKSBfX0dPTVBf Tk9USFJPVzsKIGV4dGVybiBfX1NJWkVfVFlQRV9fIG9tcF9nZXRfYWZmaW5pdHlfZm9ybWF0 IChjaGFyICosIF9fU0laRV9UWVBFX18pCmRpZmYgLS1naXQgYS9saWJnb21wL29tcF9saWIu ZjkwLmluIGIvbGliZ29tcC9vbXBfbGliLmY5MC5pbgppbmRleCBkYWY0MGRjLi5mMzY5NTA3 IDEwMDY0NAotLS0gYS9saWJnb21wL29tcF9saWIuZjkwLmluCisrKyBiL2xpYmdvbXAvb21w X2xpYi5mOTAuaW4KQEAgLTgzNSw2ICs4MzUsMTYgQEAKICAgICAgICAgICBlbmQgZnVuY3Rp b24gb21wX3RhcmdldF9kaXNhc3NvY2lhdGVfcHRyCiAgICAgICAgIGVuZCBpbnRlcmZhY2UK IAorICAgICAgICBpbnRlcmZhY2UKKyAgICAgICAgICBmdW5jdGlvbiBvbXBfdGFyZ2V0X2lz X2FjY2Vzc2libGUgKHB0ciwgc2l6ZSwgZGV2aWNlX251bSkgYmluZChjKQorICAgICAgICAg ICAgdXNlLCBpbnRyaW5zaWMgOjogaXNvX2NfYmluZGluZywgb25seSA6IGNfcHRyLCBjX3Np emVfdCwgY19pbnQKKyAgICAgICAgICAgIGludGVnZXIoY19pbnQpIDo6IG9tcF90YXJnZXRf aXNfYWNjZXNzaWJsZQorICAgICAgICAgICAgdHlwZShjX3B0ciksIHZhbHVlIDo6IHB0cgor ICAgICAgICAgICAgaW50ZWdlcihjX3NpemVfdCksIHZhbHVlIDo6IHNpemUKKyAgICAgICAg ICAgIGludGVnZXIoY19pbnQpLCB2YWx1ZSA6OiBkZXZpY2VfbnVtCisgICAgICAgICAgZW5k IGZ1bmN0aW9uIG9tcF90YXJnZXRfaXNfYWNjZXNzaWJsZQorICAgICAgICBlbmQgaW50ZXJm YWNlCisKICNpZiBfT1BFTk1QID49IDIwMTgxMQogIUdDQyQgQVRUUklCVVRFUyBERVBSRUNB VEVEIDo6IG9tcF9nZXRfbmVzdGVkLCBvbXBfc2V0X25lc3RlZAogI2VuZGlmCmRpZmYgLS1n aXQgYS9saWJnb21wL29tcF9saWIuaC5pbiBiL2xpYmdvbXAvb21wX2xpYi5oLmluCmluZGV4 IGZmODU3YTQuLjVlYTAzNjYgMTAwNjQ0Ci0tLSBhL2xpYmdvbXAvb21wX2xpYi5oLmluCisr KyBiL2xpYmdvbXAvb21wX2xpYi5oLmluCkBAIC00MTYsMyArNDE2LDE0IEBACiAgICAgICAg ICAgaW50ZWdlcihjX2ludCksIHZhbHVlIDo6IGRldmljZV9udW0KICAgICAgICAgZW5kIGZ1 bmN0aW9uIG9tcF90YXJnZXRfZGlzYXNzb2NpYXRlX3B0cgogICAgICAgZW5kIGludGVyZmFj ZQorCisgICAgICBpbnRlcmZhY2UKKyAgICAgICAgZnVuY3Rpb24gb21wX3RhcmdldF9pc19h Y2Nlc3NpYmxlIChwdHIsIHNpemUsIGRldmljZV9udW0pICAgICAgICAgICYKKyAgICAgJiAg ICAgIGJpbmQoYykKKyAgICAgICAgICB1c2UsIGludHJpbnNpYyA6OiBpc29fY19iaW5kaW5n LCBvbmx5IDogY19wdHIsIGNfc2l6ZV90LCBjX2ludAorICAgICAgICAgIGludGVnZXIoY19p bnQpIDo6IG9tcF90YXJnZXRfaXNfYWNjZXNzaWJsZQorICAgICAgICAgIHR5cGUoY19wdHIp LCB2YWx1ZSA6OiBwdHIKKyAgICAgICAgICBpbnRlZ2VyKGNfc2l6ZV90KSwgdmFsdWUgOjog c2l6ZQorICAgICAgICAgIGludGVnZXIoY19pbnQpLCB2YWx1ZSA6OiBkZXZpY2VfbnVtCisg ICAgICAgIGVuZCBmdW5jdGlvbiBvbXBfdGFyZ2V0X2lzX2FjY2Vzc2libGUKKyAgICAgIGVu ZCBpbnRlcmZhY2UKZGlmZiAtLWdpdCBhL2xpYmdvbXAvdGFyZ2V0LmMgYi9saWJnb21wL3Rh cmdldC5jCmluZGV4IDkwMTc0NTguLjAxZDM2ZDEgMTAwNjQ0Ci0tLSBhL2xpYmdvbXAvdGFy Z2V0LmMKKysrIGIvbGliZ29tcC90YXJnZXQuYwpAQCAtMzY2Niw2ICszNjY2LDI0IEBAIG9t cF90YXJnZXRfZGlzYXNzb2NpYXRlX3B0ciAoY29uc3Qgdm9pZCAqcHRyLCBpbnQgZGV2aWNl X251bSkKIH0KIAogaW50CitvbXBfdGFyZ2V0X2lzX2FjY2Vzc2libGUgKGNvbnN0IHZvaWQg KnB0ciwgc2l6ZV90IHNpemUsIGludCBkZXZpY2VfbnVtKQoreworICBpZiAoZGV2aWNlX251 bSA8IDAgfHwgZGV2aWNlX251bSA+IGdvbXBfZ2V0X251bV9kZXZpY2VzICgpKQorICAgIHJl dHVybiBmYWxzZTsKKworICBpZiAoZGV2aWNlX251bSA9PSBnb21wX2dldF9udW1fZGV2aWNl cyAoKSkKKyAgICByZXR1cm4gdHJ1ZTsKKworICBzdHJ1Y3QgZ29tcF9kZXZpY2VfZGVzY3Ig KmRldmljZXAgPSByZXNvbHZlX2RldmljZSAoZGV2aWNlX251bSk7CisgIGlmIChkZXZpY2Vw ID09IE5VTEwpCisgICAgcmV0dXJuIGZhbHNlOworCisgIC8qIFRPRE86IFVuaWZpZWQgc2hh cmVkIG1lbW9yeSBtdXN0IGJlIGhhbmRsZWQgd2hlbiBhdmFpbGFibGUuICAqLworCisgIHJl dHVybiBkZXZpY2VwLT5jYXBhYmlsaXRpZXMgJiBHT01QX09GRkxPQURfQ0FQX1NIQVJFRF9N RU07Cit9CisKK2ludAogb21wX3BhdXNlX3Jlc291cmNlIChvbXBfcGF1c2VfcmVzb3VyY2Vf dCBraW5kLCBpbnQgZGV2aWNlX251bSkKIHsKICAgKHZvaWQpIGtpbmQ7CmRpZmYgLS1naXQg YS9saWJnb21wL3Rlc3RzdWl0ZS9saWJnb21wLmMtYysrLWNvbW1vbi90YXJnZXQtaXMtYWNj ZXNzaWJsZS0xLmMgYi9saWJnb21wL3Rlc3RzdWl0ZS9saWJnb21wLmMtYysrLWNvbW1vbi90 YXJnZXQtaXMtYWNjZXNzaWJsZS0xLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw MDAwMC4uNjc4ODg5NAotLS0gL2Rldi9udWxsCisrKyBiL2xpYmdvbXAvdGVzdHN1aXRlL2xp YmdvbXAuYy1jKystY29tbW9uL3RhcmdldC1pcy1hY2Nlc3NpYmxlLTEuYwpAQCAtMCwwICsx LDQyIEBACisjaW5jbHVkZSA8b21wLmg+CisKK2ludAorbWFpbiAoKQoreworICBpbnQgZCA9 IG9tcF9nZXRfZGVmYXVsdF9kZXZpY2UgKCk7CisgIGludCBpZCA9IG9tcF9nZXRfaW5pdGlh bF9kZXZpY2UgKCk7CisgIGludCBuID0gb21wX2dldF9udW1fZGV2aWNlcyAoKTsKKyAgdm9p ZCAqcDsKKworICBpZiAoZCA8IDAgfHwgZCA+PSBuKQorICAgIGQgPSBpZDsKKworICBpZiAo IW9tcF90YXJnZXRfaXNfYWNjZXNzaWJsZSAocCwgc2l6ZW9mIChpbnQpLCBuKSkKKyAgICBf X2J1aWx0aW5fYWJvcnQgKCk7CisKKyAgaWYgKCFvbXBfdGFyZ2V0X2lzX2FjY2Vzc2libGUg KHAsIHNpemVvZiAoaW50KSwgaWQpKQorICAgIF9fYnVpbHRpbl9hYm9ydCAoKTsKKworICBp ZiAob21wX3RhcmdldF9pc19hY2Nlc3NpYmxlIChwLCBzaXplb2YgKGludCksIC0xKSkKKyAg ICBfX2J1aWx0aW5fYWJvcnQgKCk7CisKKyAgaWYgKG9tcF90YXJnZXRfaXNfYWNjZXNzaWJs ZSAocCwgc2l6ZW9mIChpbnQpLCBuICsgMSkpCisgICAgX19idWlsdGluX2Fib3J0ICgpOwor CisgIC8qIEN1cnJlbnRseSwgYSBob3N0IHBvaW50ZXIgaXMgYWNjZXNzaWJsZSBpZiB0aGUg ZGV2aWNlIHN1cHBvcnRzIHNoYXJlZAorICAgICBtZW1vcnkgb3Igb21wX3RhcmdldF9pc19h Y2Nlc3NpYmxlIGlzIGV4ZWN1dGVkIG9uIHRoZSBob3N0LiBUaGlzCisgICAgIHRlc3QgY2Fz ZSBtdXN0IGJlIGFkYXB0ZWQgd2hlbiB1bmlmaWVkIHNoYXJlZCBtZW1vcnkgaXMgYXZpYWxh YmxlLiAgKi8KKyAgaW50IHNoYXJlZF9tZW0gPSAwOworICAjcHJhZ21hIG9tcCB0YXJnZXQg bWFwIChhbGxvYzogc2hhcmVkX21lbSkgZGV2aWNlIChkKQorICAgIHNoYXJlZF9tZW0gPSAx OworICBpZiAob21wX3RhcmdldF9pc19hY2Nlc3NpYmxlIChwLCBzaXplb2YgKGludCksIGQp ICE9IHNoYXJlZF9tZW0pCisgICAgX19idWlsdGluX2Fib3J0ICgpOworCisgIGludCBhWzEy OF07CisgIHAgPSAmYTsKKyAgZm9yIChpbnQgaSA9IDA7IGkgPCAxMjg7IGkrKykKKyAgICBp ZiAob21wX3RhcmdldF9pc19hY2Nlc3NpYmxlIChwLCAxMjggKiBzaXplb2YgKGludCksIGQp ICE9IHNoYXJlZF9tZW0pCisgICAgICBfX2J1aWx0aW5fYWJvcnQgKCk7CisKKyAgcmV0dXJu IDA7Cit9CmRpZmYgLS1naXQgYS9saWJnb21wL3Rlc3RzdWl0ZS9saWJnb21wLmZvcnRyYW4v dGFyZ2V0LWlzLWFjY2Vzc2libGUtMS5mOTAgYi9saWJnb21wL3Rlc3RzdWl0ZS9saWJnb21w LmZvcnRyYW4vdGFyZ2V0LWlzLWFjY2Vzc2libGUtMS5mOTAKbmV3IGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggMDAwMDAwMC4uZWFlNjk2ZgotLS0gL2Rldi9udWxsCisrKyBiL2xpYmdvbXAv dGVzdHN1aXRlL2xpYmdvbXAuZm9ydHJhbi90YXJnZXQtaXMtYWNjZXNzaWJsZS0xLmY5MApA QCAtMCwwICsxLDQ0IEBACitwcm9ncmFtIG1haW4KKyAgdXNlIG9tcF9saWIKKyAgdXNlIGlz b19jX2JpbmRpbmcKKyAgaW1wbGljaXQgbm9uZSAoZXh0ZXJuYWwsIHR5cGUpCisgIGludGVn ZXIgOjogZCwgaWQsIG4sIHNoYXJlZF9tZW0sIGkKKyAgaW50ZWdlciwgdGFyZ2V0IDo6IGEo MToxMjgpCisgIHR5cGUoY19wdHIpIDo6IHAKKworICBkID0gb21wX2dldF9kZWZhdWx0X2Rl dmljZSAoKQorICBpZCA9IG9tcF9nZXRfaW5pdGlhbF9kZXZpY2UgKCkKKyAgbiA9IG9tcF9n ZXRfbnVtX2RldmljZXMgKCkKKworICBpZiAoZCA8IDAgLm9yLiBkID49IG4pICYKKyAgICBk ID0gaWQKKworICBpZiAob21wX3RhcmdldF9pc19hY2Nlc3NpYmxlIChwLCBjX3NpemVvZiAo ZCksIG4pIC89IDEpICYKKyAgICBzdG9wIDEKKworICBpZiAob21wX3RhcmdldF9pc19hY2Nl c3NpYmxlIChwLCBjX3NpemVvZiAoZCksIGlkKSAvPSAxKSAmCisgICAgc3RvcCAyCisKKyAg aWYgKG9tcF90YXJnZXRfaXNfYWNjZXNzaWJsZSAocCwgY19zaXplb2YgKGQpLCAtMSkgLz0g MCkgJgorICAgIHN0b3AgMworCisgIGlmIChvbXBfdGFyZ2V0X2lzX2FjY2Vzc2libGUgKHAs IGNfc2l6ZW9mIChkKSwgbiArIDEpIC89IDApICYKKyAgICBzdG9wIDQKKworICAhIEN1cnJl bnRseSwgYSBob3N0IHBvaW50ZXIgaXMgYWNjZXNzaWJsZSBpZiB0aGUgZGV2aWNlIHN1cHBv cnRzIHNoYXJlZAorICAhIG1lbW9yeSBvciBvbXBfdGFyZ2V0X2lzX2FjY2Vzc2libGUgaXMg ZXhlY3V0ZWQgb24gdGhlIGhvc3QuIFRoaXMKKyAgISB0ZXN0IGNhc2UgbXVzdCBiZSBhZGFw dGVkIHdoZW4gdW5pZmllZCBzaGFyZWQgbWVtb3J5IGlzIGF2aWFsYWJsZS4KKyAgc2hhcmVk X21lbSA9IDA7CisgICEkb21wIHRhcmdldCBtYXAgKGFsbG9jOiBzaGFyZWRfbWVtKSBkZXZp Y2UgKGQpCisgICAgc2hhcmVkX21lbSA9IDE7CisgICEkb21wIGVuZCB0YXJnZXQKKyAgaWYg KG9tcF90YXJnZXRfaXNfYWNjZXNzaWJsZSAocCwgY19zaXplb2YgKGQpLCBkKSAvPSBzaGFy ZWRfbWVtKSAmCisgICAgc3RvcCA1OworCisgIHAgPSBjX2xvYyAoYSkKKyAgZG8gaSA9IDEs IDEyOAorICAgIGlmIChvbXBfdGFyZ2V0X2lzX2FjY2Vzc2libGUgKHAsIDEyOCAqIHNpemVv ZiAoZCksIGQpIC89IHNoYXJlZF9tZW0pICYKKyAgICAgIHN0b3AgNjsKKyAgZW5kIGRvCisK K2VuZCBwcm9ncmFtIG1haW4KCg== --------------MRhUTmS3ujKGsNUHAQF1lrBl--