From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-io1-xd31.google.com (mail-io1-xd31.google.com [IPv6:2607:f8b0:4864:20::d31]) by sourceware.org (Postfix) with ESMTPS id AFDBE3857401 for ; Mon, 6 Jun 2022 15:13:37 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org AFDBE3857401 Received: by mail-io1-xd31.google.com with SMTP id d7so5966634iof.10 for ; Mon, 06 Jun 2022 08:13:37 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to; bh=+n7nR5gaBxsxDQRyLFLblAcpsxCfiYy4xuy2I8X2UAI=; b=nIYdtudazRHOa7JIPYTL0gFGPMbAmTueX91iys61FXFt9ACXnkyms8z9imSyCFzjwE Q1X1SVIhfRWeH41ao693IXOkBbfGa58XZwo0jhH6CZpmzp7EO8ERjD3kJ3CX/1v1W7Ze wvX+mR49kZXsYb8BYynH9PS3q8MrxwnQ5ZXsVuJc62SHhUnOdLb/hX31P36rrYLWykP5 mSBopzixuUWIQ5YZPbei0B3qmBora1jf1ba928DtE4NFcJA3+yTAfsO5XgDkJnzPXiaC JJ10KD1aX4uh2GHyHV7NnOH9yFzk2NqsORVKbnQWbTnIw0PjNf+HzVjzHVYz9iCt4Po9 QBXQ== X-Gm-Message-State: AOAM533FurFzWFGzheInw65giJbKqsawUa3CW4rQ+KrgqAC0aCRjsKLz Xrk9R39VqjswRAtVGPciMkfWDSBaYuZSdGcSlTqbUsWC X-Google-Smtp-Source: ABdhPJwtes5mCVqmWXn3uZVmJ7BD4Vzutj2x4rhYSRfmPn74MJdEuumzxeC/RctBOECbae+07zTPF4UG72tjv9NMR78= X-Received: by 2002:a05:6638:4187:b0:330:93f:6946 with SMTP id az7-20020a056638418700b00330093f6946mr13252396jab.295.1654528415931; Mon, 06 Jun 2022 08:13:35 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Mohamed Sayed Date: Mon, 6 Jun 2022 17:13:24 +0200 Message-ID: Subject: Re: [PATCH]: libgompd add parallel handle functions To: gcc-patches@gcc.gnu.org Content-Type: multipart/mixed; boundary="00000000000080b92005e0c8ea6b" X-Spam-Status: No, score=-10.5 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, FREEMAIL_ENVFROM_END_DIGIT, FREEMAIL_FROM, GIT_PATCH_0, HTML_MESSAGE, KAM_SHORT, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, TXREP, 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: Mon, 06 Jun 2022 15:13:40 -0000 --00000000000080b92005e0c8ea6b Content-Type: text/plain; charset="UTF-8" This is the final diff On Mon, Jun 6, 2022 at 1:48 AM Mohamed Sayed wrote: > This patch adds parallel region handles specified in section 5.5.3. > From examining libgomp code, I found that struct gomp_team describes the > parallel region. > The Thread handle gives the address of gomp_thread so, I tried to > access *team > gomp_thread->ts->team. > The parallel handle is the team pointer in team state. > I have a question about ompd_get_task_parallel_handle > https://www.openmp.org/spec-html/5.0/openmpsu218.html > How can i reach gomp_team from gomp_task > And the union in gomp_task has two entries gomp_sem_t and gomp_team > > libgomp/ChangeLog > > 2022-06-06 Mohamed Sayed > > > * Makefile.am: (libgompd_la_SOURCES): Add ompd-parallel.c. > * Makefile.in: Regenerate. > * libgompd.map: Add ompd_get_curr_parallel_handle, > ompd_get_enclosing_parallel_handle, ompd_rel_parallel_handle > and ompd_parallel_handle_compare symbol versions. > * ompd-support.h:() : Add gompd_access (gomp_team_state, team) and > gompd_access (gomp_team, prev_ts). > > --00000000000080b92005e0c8ea6b Content-Type: text/plain; charset="US-ASCII"; name="diff.txt" Content-Disposition: attachment; filename="diff.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_l42vh0xp0 ZGlmZiAtLWdpdCBhL2xpYmdvbXAvTWFrZWZpbGUuYW0gYi9saWJnb21wL01ha2VmaWxlLmFtCmlu ZGV4IDZkOTEzYTkzZTdmLi40ZTIxNTQ1MGIyNSAxMDA2NDQKLS0tIGEvbGliZ29tcC9NYWtlZmls ZS5hbQorKysgYi9saWJnb21wL01ha2VmaWxlLmFtCkBAIC05NCw3ICs5NCw3IEBAIGxpYmdvbXBf bGFfU09VUkNFUyA9IGFsbG9jLmMgYXRvbWljLmMgYmFycmllci5jIGNyaXRpY2FsLmMgZW52LmMg ZXJyb3IuYyBcCiAJcHJpb3JpdHlfcXVldWUuYyBhZmZpbml0eS1mbXQuYyB0ZWFtcy5jIGFsbG9j YXRvci5jIG9hY2MtcHJvZmlsaW5nLmMgXAogCW9hY2MtdGFyZ2V0LmMgb21wZC1zdXBwb3J0LmMK IAotbGliZ29tcGRfbGFfU09VUkNFUyA9IG9tcGQtaW5pdC5jIG9tcGQtaGVscGVyLmMgb21wZC1p Y3YuYworbGliZ29tcGRfbGFfU09VUkNFUyA9IG9tcGQtaW5pdC5jIG9tcGQtaGVscGVyLmMgb21w ZC1pY3YuYyBvbXBkLXBhcmFsbGVsLmMKIAogaW5jbHVkZSAkKHRvcF9zcmNkaXIpL3BsdWdpbi9N YWtlZnJhZy5hbQogCmRpZmYgLS1naXQgYS9saWJnb21wL01ha2VmaWxlLmluIGIvbGliZ29tcC9N YWtlZmlsZS5pbgppbmRleCA0MGY4OTZiNWYwMy4uYWI2NmFkMWM4ZjAgMTAwNjQ0Ci0tLSBhL2xp YmdvbXAvTWFrZWZpbGUuaW4KKysrIGIvbGliZ29tcC9NYWtlZmlsZS5pbgpAQCAtMjMzLDcgKzIz Myw4IEBAIGFtX2xpYmdvbXBfbGFfT0JKRUNUUyA9IGFsbG9jLmxvIGF0b21pYy5sbyBiYXJyaWVy LmxvIGNyaXRpY2FsLmxvIFwKIAlhZmZpbml0eS1mbXQubG8gdGVhbXMubG8gYWxsb2NhdG9yLmxv IG9hY2MtcHJvZmlsaW5nLmxvIFwKIAlvYWNjLXRhcmdldC5sbyBvbXBkLXN1cHBvcnQubG8gJChh bV9fb2JqZWN0c18xKQogbGliZ29tcF9sYV9PQkpFQ1RTID0gJChhbV9saWJnb21wX2xhX09CSkVD VFMpCi1hbV9saWJnb21wZF9sYV9PQkpFQ1RTID0gb21wZC1pbml0LmxvIG9tcGQtaGVscGVyLmxv IG9tcGQtaWN2LmxvCithbV9saWJnb21wZF9sYV9PQkpFQ1RTID0gb21wZC1pbml0LmxvIG9tcGQt aGVscGVyLmxvIG9tcGQtaWN2LmxvIFwKKwlvbXBkLXBhcmFsbGVsLmxvCiBsaWJnb21wZF9sYV9P QkpFQ1RTID0gJChhbV9saWJnb21wZF9sYV9PQkpFQ1RTKQogQU1fVl9QID0gJChhbV9fdl9QX0BB TV9WQCkKIGFtX192X1BfID0gJChhbV9fdl9QX0BBTV9ERUZBVUxUX1ZAKQpAQCAtNTgzLDcgKzU4 NCw3IEBAIGxpYmdvbXBfbGFfU09VUkNFUyA9IGFsbG9jLmMgYXRvbWljLmMgYmFycmllci5jIGNy aXRpY2FsLmMgZW52LmMgXAogCW9hY2MtYXN5bmMuYyBvYWNjLXBsdWdpbi5jIG9hY2MtY3VkYS5j IHByaW9yaXR5X3F1ZXVlLmMgXAogCWFmZmluaXR5LWZtdC5jIHRlYW1zLmMgYWxsb2NhdG9yLmMg b2FjYy1wcm9maWxpbmcuYyBcCiAJb2FjYy10YXJnZXQuYyBvbXBkLXN1cHBvcnQuYyAkKGFtX19h cHBlbmRfNykKLWxpYmdvbXBkX2xhX1NPVVJDRVMgPSBvbXBkLWluaXQuYyBvbXBkLWhlbHBlci5j IG9tcGQtaWN2LmMKK2xpYmdvbXBkX2xhX1NPVVJDRVMgPSBvbXBkLWluaXQuYyBvbXBkLWhlbHBl ci5jIG9tcGQtaWN2LmMgb21wZC1wYXJhbGxlbC5jCiAKICMgTnZpZGlhIFBUWCBPcGVuQUNDIHBs dWdpbi4KIEBQTFVHSU5fTlZQVFhfVFJVRUBsaWJnb21wX3BsdWdpbl9udnB0eF92ZXJzaW9uX2lu Zm8gPSAtdmVyc2lvbi1pbmZvICQobGlidG9vbF9WRVJTSU9OKQpAQCAtODAwLDYgKzgwMSw3IEBA IGRpc3RjbGVhbi1jb21waWxlOgogQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3Rl QC4vJChERVBESVIpL29tcGQtaGVscGVyLlBsb0BhbV9fcXVvdGVACiBAQU1ERVBfVFJVRUBAYW1f X2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvb21wZC1pY3YuUGxvQGFtX19xdW90ZUAK IEBBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9vbXBkLWlu aXQuUGxvQGFtX19xdW90ZUAKK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAu LyQoREVQRElSKS9vbXBkLXBhcmFsbGVsLlBsb0BhbV9fcXVvdGVACiBAQU1ERVBfVFJVRUBAYW1f X2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvb21wZC1zdXBwb3J0LlBsb0BhbV9fcXVv dGVACiBAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvb3Jk ZXJlZC5QbG9AYW1fX3F1b3RlQAogQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3Rl QC4vJChERVBESVIpL3BhcmFsbGVsLlBsb0BhbV9fcXVvdGVACmRpZmYgLS1naXQgYS9saWJnb21w L2xpYmdvbXBkLm1hcCBiL2xpYmdvbXAvbGliZ29tcGQubWFwCmluZGV4IDg1YmRjMzY5NWY2Li4x NjYyZGM1Njk2MiAxMDA2NDQKLS0tIGEvbGliZ29tcC9saWJnb21wZC5tYXAKKysrIGIvbGliZ29t cC9saWJnb21wZC5tYXAKQEAgLTE2LDYgKzE2LDEwIEBAIE9NUERfNS4xIHsKICAgICBvbXBkX3Ro cmVhZF9oYW5kbGVfY29tcGFyZTsKICAgICBvbXBkX2dldF90aHJlYWRfaWQ7CiAgICAgb21wZF9n ZXRfZGV2aWNlX2Zyb21fdGhyZWFkOworICAgIG9tcGRfZ2V0X2N1cnJfcGFyYWxsZWxfaGFuZGxl OworICAgIG9tcGRfZ2V0X2VuY2xvc2luZ19wYXJhbGxlbF9oYW5kbGU7CisgICAgb21wZF9yZWxf cGFyYWxsZWxfaGFuZGxlOworICAgIG9tcGRfcGFyYWxsZWxfaGFuZGxlX2NvbXBhcmU7CiAgIGxv Y2FsOgogICAgICo7CiB9OwpkaWZmIC0tZ2l0IGEvbGliZ29tcC9vbXBkLXBhcmFsbGVsLmMgYi9s aWJnb21wL29tcGQtcGFyYWxsZWwuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw MDAwMC4uM2EyNzhmNzQyOGEKLS0tIC9kZXYvbnVsbAorKysgYi9saWJnb21wL29tcGQtcGFyYWxs ZWwuYwpAQCAtMCwwICsxLDE0NCBAQAorLyogQ29weXJpZ2h0IChDKSBUaGUgR05VIFRvb2xjaGFp biBBdXRob3JzLgorICAgQ29udHJpYnV0ZWQgYnkgTW9oYW1lZCBTYXllZCA8bW9oYW1lZHNheWVk MjIxOThAZ21haWwuY29tPi4KKyAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBHTlUgT2ZmbG9h ZGluZyBhbmQgTXVsdGkgUHJvY2Vzc2luZyBMaWJyYXJ5CisgICAobGliZ29tcCkuCisgICBMaWJn b21wIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2Rp ZnkgaXQKKyAgIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vu c2UgYXMgcHVibGlzaGVkIGJ5CisgICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRo ZXIgdmVyc2lvbiAzLCBvciAoYXQgeW91ciBvcHRpb24pCisgICBhbnkgbGF0ZXIgdmVyc2lvbi4K KyAgIExpYmdvbXAgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVz ZWZ1bCwgYnV0IFdJVEhPVVQgQU5ZCisgICBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBs aWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTCisgICBGT1IgQSBQQVJU SUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvcgor ICAgbW9yZSBkZXRhaWxzLgorICAgVW5kZXIgU2VjdGlvbiA3IG9mIEdQTCB2ZXJzaW9uIDMsIHlv dSBhcmUgZ3JhbnRlZCBhZGRpdGlvbmFsCisgICBwZXJtaXNzaW9ucyBkZXNjcmliZWQgaW4gdGhl IEdDQyBSdW50aW1lIExpYnJhcnkgRXhjZXB0aW9uLCB2ZXJzaW9uCisgICAzLjEsIGFzIHB1Ymxp c2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLgorICAgWW91IHNob3VsZCBoYXZl IHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYW5kCisg ICBhIGNvcHkgb2YgdGhlIEdDQyBSdW50aW1lIExpYnJhcnkgRXhjZXB0aW9uIGFsb25nIHdpdGgg dGhpcyBwcm9ncmFtOworICAgc2VlIHRoZSBmaWxlcyBDT1BZSU5HMyBhbmQgQ09QWUlORy5SVU5U SU1FIHJlc3BlY3RpdmVseS4gIElmIG5vdCwgc2VlCisgICA8aHR0cDovL3d3dy5nbnUub3JnL2xp Y2Vuc2VzLz4uICAqLworCisvKiBUaGlzIGZpbGUgY29udGFpbnMgdGhlIGltcGxlbWVudGF0aW9u IG9mIGZ1bmN0aW9ucyBkZWZpbmVkIGluCisgICBzZWN0aW9uIDUuNS42LiAgKi8KKworI2luY2x1 ZGUgIm9tcGQtaGVscGVyLmgiCisKK29tcGRfcmNfdCAKK29tcGRfZ2V0X2N1cnJfcGFyYWxsZWxf aGFuZGxlIChvbXBkX3RocmVhZF9oYW5kbGVfdCAqdGhyZWFkX2hhbmRsZSwgCisJCQkgICAgICAg b21wZF9wYXJhbGxlbF9oYW5kbGVfdCAqKnBhcmFsbGVsX2hhbmRsZSkKK3sKKyAgaWYgKHRocmVh ZF9oYW5kbGUgPT0gTlVMTCkKKyAgICByZXR1cm4gb21wZF9yY19zdGFsZV9oYW5kbGU7CisKKyAg Q0hFQ0sgKHRocmVhZF9oYW5kbGUtPmFoKTsKKworICBvbXBkX2FkZHJlc3Nfc3BhY2VfY29udGV4 dF90ICpjb250ZXh0ID0gdGhyZWFkX2hhbmRsZS0+YWgtPmNvbnRleHQ7CisgIG9tcGRfdGhyZWFk X2NvbnRleHRfdCAqdGhyZWFkX2NvbnRleHQgPSB0aHJlYWRfaGFuZGxlLT50aHJlYWRfY29udGV4 dDsKKworICBpZiAodGhyZWFkX2NvbnRleHQgPT0gTlVMTCkKKyAgICByZXR1cm4gb21wZF9yY19z dGFsZV9oYW5kbGU7CisKKyAgb21wZF9hZGRyZXNzX3Qgc3ltYm9sX2FkZHJlc3MgPSB0aHJlYWRf aGFuZGxlLT50aDsKKyAgb21wZF9hZGRyZXNzX3QgdGVtcF9zeW1ib2xfYWRkcmVzcyA9IHtPTVBE X1NFR01FTlRfVU5TUEVDSUZJRUQsIDB9OworICBvbXBkX3dvcmRfdCB0ZW1wX29mZnNldDsKKyAg b21wZF9yY190IHJldDsKKworICAvKiBnZXQgdHMgb2Zmc2V0LiAgKi8KKyAgR0VUX1ZBTFVFIChj b250ZXh0LCB0aHJlYWRfY29udGV4dCwgImdvbXBkX2FjY2Vzc19nb21wX3RocmVhZF90cyIsCisg IAkgICAgIHRlbXBfb2Zmc2V0LCB0ZW1wX29mZnNldCwgdGFyZ2V0X3NpemVzLnNpemVvZl9sb25n X2xvbmcsIDEsIHJldCwKKyAgICAgICAgICAgICB0ZW1wX3N5bWJvbF9hZGRyZXNzKTsKKworICBz eW1ib2xfYWRkcmVzcy5hZGRyZXNzICs9IHRlbXBfb2Zmc2V0OworCisgIC8qIGdldCB0ZWFtIG9m ZnNldC4gICovCisgIEdFVF9WQUxVRSAoY29udGV4dCwgdGhyZWFkX2NvbnRleHQsICJnb21wZF9h Y2Nlc3NfZ29tcF90ZWFtX3N0YXRlX3RlYW0iLAorICAJICAgICB0ZW1wX29mZnNldCwgdGVtcF9v ZmZzZXQsIHRhcmdldF9zaXplcy5zaXplb2ZfbG9uZ19sb25nLCAxLCByZXQsCisgICAgICAgICAg ICAgdGVtcF9zeW1ib2xfYWRkcmVzcyk7CisKKyAgc3ltYm9sX2FkZHJlc3MuYWRkcmVzcyArPSB0 ZW1wX29mZnNldDsKKworICByZXQgPSBjYWxsYmFja3MtPnJlYWRfbWVtb3J5IChjb250ZXh0LCB0 aHJlYWRfY29udGV4dCwKKyAgCQkJCSZzeW1ib2xfYWRkcmVzcywgdGFyZ2V0X3NpemVzLnNpemVv Zl9wb2ludGVyLAorICAJCQkJJnN5bWJvbF9hZGRyZXNzLmFkZHJlc3MpOworCisgIENIRUNLX1JF VCAocmV0KTsgCisgIHJldCA9IGNhbGxiYWNrcy0+YWxsb2NfbWVtb3J5IChzaXplb2YgKG9tcGRf cGFyYWxsZWxfaGFuZGxlX3QpLAorICAJCQkJICh2b2lkICoqKSAocGFyYWxsZWxfaGFuZGxlKSk7 CisgIENIRUNLX1JFVCAocmV0KTsgCisKKyAgKCpwYXJhbGxlbF9oYW5kbGUpLT5haCA9IHRocmVh ZF9oYW5kbGUtPmFoOworICAoKnBhcmFsbGVsX2hhbmRsZSktPnRoID0gc3ltYm9sX2FkZHJlc3M7 CisgIHJldHVybiBvbXBkX3JjX29rOyAgICAgICAgICAgICAgICAgCQkKK30KKworb21wZF9yY190 CitvbXBkX2dldF9lbmNsb3NpbmdfcGFyYWxsZWxfaGFuZGxlIChvbXBkX3BhcmFsbGVsX2hhbmRs ZV90ICpwYXJhbGxlbF9oYW5kbGUsCisJCQkJICAgIG9tcGRfcGFyYWxsZWxfaGFuZGxlX3QgKipl bmNfcGFyX2hhbmRsZSkKK3sKKyAgaWYgKHBhcmFsbGVsX2hhbmRsZSA9PSBOVUxMKQorICAgIHJl dHVybiBvbXBkX3JjX3N0YWxlX2hhbmRsZTsKKworICBDSEVDSyAocGFyYWxsZWxfaGFuZGxlLT5h aCk7CisKKyAgb21wZF9hZGRyZXNzX3NwYWNlX2NvbnRleHRfdCAqY29udGV4dCA9IHBhcmFsbGVs X2hhbmRsZS0+YWgtPmNvbnRleHQ7ICAKKyAgb21wZF9hZGRyZXNzX3Qgc3ltYm9sX2FkZHJlc3Mg PSBwYXJhbGxlbF9oYW5kbGUtPnRoOworICBvbXBkX2FkZHJlc3NfdCB0ZW1wX3N5bWJvbF9hZGRy ZXNzID0ge09NUERfU0VHTUVOVF9VTlNQRUNJRklFRCwgMH07CisgIG9tcGRfd29yZF90IHRlbXBf b2Zmc2V0OworICBvbXBkX3JjX3QgcmV0OworCisgIC8qIGdldCBwcmV2X3RzIG9mZnNldC4gICov CisgIEdFVF9WQUxVRSAoY29udGV4dCwgTlVMTCwgImdvbXBkX2FjY2Vzc19nb21wX3RlYW1fcHJl dl90cyIsCisgIAkgICAgIHRlbXBfb2Zmc2V0LCB0ZW1wX29mZnNldCwgdGFyZ2V0X3NpemVzLnNp emVvZl9sb25nX2xvbmcsIDEsIHJldCwKKyAgICAgICAgICAgICB0ZW1wX3N5bWJvbF9hZGRyZXNz KTsKKworICBzeW1ib2xfYWRkcmVzcy5hZGRyZXNzICs9IHRlbXBfb2Zmc2V0OworCisgIC8qIGdl dCB0ZWFtIG9mZnNldC4gICovCisgIEdFVF9WQUxVRSAoY29udGV4dCwgTlVMTCwgImdvbXBkX2Fj Y2Vzc19nb21wX3RlYW1fc3RhdGVfdGVhbSIsCisgIAkgICAgIHRlbXBfb2Zmc2V0LCB0ZW1wX29m ZnNldCwgdGFyZ2V0X3NpemVzLnNpemVvZl9sb25nX2xvbmcsIDEsIHJldCwKKyAgICAgICAgICAg ICB0ZW1wX3N5bWJvbF9hZGRyZXNzKTsKKworICBzeW1ib2xfYWRkcmVzcy5hZGRyZXNzICs9IHRl bXBfb2Zmc2V0OworCisgIHJldCA9IGNhbGxiYWNrcy0+cmVhZF9tZW1vcnkgKGNvbnRleHQsIE5V TEwsICZzeW1ib2xfYWRkcmVzcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFy Z2V0X3NpemVzLnNpemVvZl9wb2ludGVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAmc3ltYm9sX2FkZHJlc3MuYWRkcmVzcyk7CisgIENIRUNLX1JFVCAocmV0KTsgCisgIHJldCA9 IGNhbGxiYWNrcy0+YWxsb2NfbWVtb3J5IChzaXplb2YgKG9tcGRfcGFyYWxsZWxfaGFuZGxlX3Qp LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZvaWQgKiopIChlbmNfcGFyX2hh bmRsZSkpOworICBDSEVDS19SRVQgKHJldCk7CisKKyAgKCplbmNfcGFyX2hhbmRsZSktPmFoID0g cGFyYWxsZWxfaGFuZGxlLT5haDsKKyAgKCplbmNfcGFyX2hhbmRsZSktPnRoID0gc3ltYm9sX2Fk ZHJlc3M7IAorICByZXR1cm4gb21wZF9yY19vazsKK30KKworb21wZF9yY190CitvbXBkX3JlbF9w YXJhbGxlbF9oYW5kbGUgKG9tcGRfcGFyYWxsZWxfaGFuZGxlX3QgKnBhcmFsbGVsX2hhbmRsZSkK K3sKKyAgaWYgKHBhcmFsbGVsX2hhbmRsZSA9PSBOVUxMKQorICAgIHJldHVybiBvbXBkX3JjX3N0 YWxlX2hhbmRsZTsKKworICBvbXBkX3JjX3QgcmV0ID0gY2FsbGJhY2tzLT5mcmVlX21lbW9yeSAo KHZvaWQgKikgKHBhcmFsbGVsX2hhbmRsZSkpOworCisgIENIRUNLX1JFVCAocmV0KTsgCisgIHJl dHVybiBvbXBkX3JjX29rOworfQorCitvbXBkX3JjX3QgCitvbXBkX3BhcmFsbGVsX2hhbmRsZV9j b21wYXJlIChvbXBkX3BhcmFsbGVsX2hhbmRsZV90ICpwYXJhbGxlbF9oYW5kbGVfMSwKKwkJCSAg ICAgIG9tcGRfcGFyYWxsZWxfaGFuZGxlX3QgKnBhcmFsbGVsX2hhbmRsZV8yLAorCQkJICAgICAg aW50ICpjbXBfdmFsdWUpCit7CisgIGlmIChwYXJhbGxlbF9oYW5kbGVfMSA9PSBOVUxMIHx8IHBh cmFsbGVsX2hhbmRsZV8yID09IE5VTEwpCisgICAgcmV0dXJuIG9tcGRfcmNfc3RhbGVfaGFuZGxl OworCisgIGlmIChjbXBfdmFsdWUgPT0gTlVMTCkKKyAgICByZXR1cm4gb21wZF9yY19iYWRfaW5w dXQ7CisKKyAgaWYgKHBhcmFsbGVsX2hhbmRsZV8xLT5haC0+a2luZCAhPSBwYXJhbGxlbF9oYW5k bGVfMi0+YWgtPmtpbmQpCisgICAgcmV0dXJuIG9tcGRfcmNfYmFkX2lucHV0OworCisgICpjbXBf dmFsdWUgPSBwYXJhbGxlbF9oYW5kbGVfMS0+dGguYWRkcmVzcyAtIHBhcmFsbGVsX2hhbmRsZV8y LT50aC5hZGRyZXNzOworICByZXR1cm4gb21wZF9yY19vazsKK30KZGlmZiAtLWdpdCBhL2xpYmdv bXAvb21wZC1zdXBwb3J0LmggYi9saWJnb21wL29tcGQtc3VwcG9ydC5oCmluZGV4IDM5ZDU1MTYx MTMyLi40OGEyZTYxMzNmNSAxMDA2NDQKLS0tIGEvbGliZ29tcC9vbXBkLXN1cHBvcnQuaAorKysg Yi9saWJnb21wL29tcGQtc3VwcG9ydC5oCkBAIC04MywxMiArODMsMTUgQEAgZXh0ZXJuIF9fVUlO VDY0X1RZUEVfXyBnb21wZF9zdGF0ZTsKICAgZ29tcGRfYWNjZXNzIChnb21wX3RocmVhZF9wb29s LCB0aHJlYWRzKSBcCiAgIGdvbXBkX2FjY2VzcyAoZ29tcF90aHJlYWQsIHRzKSBcCiAgIGdvbXBk X2FjY2VzcyAoZ29tcF90ZWFtX3N0YXRlLCB0ZWFtX2lkKSBcCi0gIGdvbXBkX2FjY2VzcyAoZ29t cF90YXNrLCBpY3YpCisgIGdvbXBkX2FjY2VzcyAoZ29tcF90YXNrLCBpY3YpIFwKKyAgZ29tcGRf YWNjZXNzIChnb21wX3RlYW1fc3RhdGUsIHRlYW0pIFwKKyAgZ29tcGRfYWNjZXNzIChnb21wX3Rl YW0sIHByZXZfdHMpCiAKICNkZWZpbmUgR09NUERfU0laRVMoZ29tcGRfc2l6ZSkgXAogICBnb21w ZF9zaXplIChnb21wX3RocmVhZCkgXAogICBnb21wZF9zaXplIChnb21wX3Rhc2tfaWN2KSBcCi0g IGdvbXBkX3NpemUgKGdvbXBfdGFzaykKKyAgZ29tcGRfc2l6ZSAoZ29tcF90YXNrKSAKKyAgCiAK ICNpZmRlZiBIQVZFX0FUVFJJQlVURV9WSVNJQklMSVRZCiAjcHJhZ21hIEdDQyB2aXNpYmlsaXR5 IHBvcAo= --00000000000080b92005e0c8ea6b--