From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-wr1-x42f.google.com (mail-wr1-x42f.google.com [IPv6:2a00:1450:4864:20::42f]) by sourceware.org (Postfix) with ESMTPS id B76E53858D37 for ; Tue, 27 Sep 2022 01:12:28 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org B76E53858D37 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=gmail.com Received: by mail-wr1-x42f.google.com with SMTP id n10so12652627wrw.12 for ; Mon, 26 Sep 2022 18:12:28 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=subject:cc:to:content-language:user-agent:mime-version:date :message-id:from:from:to:cc:subject:date; bh=ujIDWNAly0TCuEMIg0sX98xlyPybEcHNmsqTcH+2BpM=; b=XBo42QAkL7N3nmORzlKfKWlzED0EX4NAPAmIM5r9wwvbIpfilJCP1FXyB4ZdQmPFt+ dLCRkOn6g4PnNX5umBhAupZhBdK7PAlOn90KwLIdCvYUzvQ9+8tiXcXLU0xgo03UCPvU 5FpftK4DXIV13cAL23A/ZjC2+WNYxDoqBNxqZTauG8iDeyb+n0ydEDMLCI9ANrRHwX8u 8A53IepUBLxlQrmdBxwuXThB+zVPn+QbjeXYGcaXj9krTAUDJOOjlNxV3XeikdlUqLUa RhOkB7rd/LSpgVnVm36sYydkqa5CwIG9OIu8ZSzzKRcueqM1Bp4Q0ZL6AaAStJnUJq9k km1Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=subject:cc:to:content-language:user-agent:mime-version:date :message-id:from:x-gm-message-state:from:to:cc:subject:date; bh=ujIDWNAly0TCuEMIg0sX98xlyPybEcHNmsqTcH+2BpM=; b=TLE4ul0L7KGBBG/QFN72nyFr3mFV0wxBRI1efJqlq6LknRDbEncAYywHfVZlXFI6Ob z2tlAlCU3UWBkeK5abnKlK5g7Q+zbGvRYB8YMciPdMeXWuht2EBN7UymoM0KuU6PsCOc infY+1Rvbayp63LZJvutjLeA9vFY6JEygDVFg5phPOyl8DcJadPTeMmAGXssbuWZww5I ZE8EdRQ7hMwmybJCbMzWTPgJlvGJJ3njZV7xadlnLDCMRbE0awipkgSLOz57cYKQJx37 J5JAQR8iGcAHc8wLFL31tLQV7yAYeV5pT2B1E9HievyM979hplmhEbwfvV2OEZMnGCE7 8bug== X-Gm-Message-State: ACrzQf2hzSF6kgjvf2kOrLy7cooCQvgNfrZZflfBvNnr/pzVOEl5AQPO Ff9ktKCBNNp2lOD5AMaDORGqT3ROdWbMCA== X-Google-Smtp-Source: AMsMyM4q+MP7LBU+P+stDudVSEhpESOk8CBhQpTUS1A93KSMZq9LfyKoA6uPsbllBlg1Q9dsmTd0Fw== X-Received: by 2002:adf:e24d:0:b0:22a:4a40:d5cc with SMTP id bl13-20020adfe24d000000b0022a4a40d5ccmr15557314wrb.494.1664241146946; Mon, 26 Sep 2022 18:12:26 -0700 (PDT) Received: from [192.168.1.10] ([197.33.9.130]) by smtp.gmail.com with ESMTPSA id o3-20020a5d4743000000b00225307f43fbsm297598wrs.44.2022.09.26.18.12.25 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 26 Sep 2022 18:12:26 -0700 (PDT) From: Ahmed Sayed Mousse X-Google-Original-From: Ahmed Sayed Mousse Content-Type: multipart/mixed; boundary="------------ps7ip8FkrgDmm3TbTDs0ifYy" Message-ID: <4086807d-97d1-ec58-1617-24dda537010a@gmail.com> Date: Tue, 27 Sep 2022 03:12:23 +0200 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.3.0 Content-Language: en-US To: gcc-patches@gcc.gnu.org Cc: jakub@redhat.com Subject: [patch] libgompd: Add thread handles X-Spam-Status: No, score=-10.5 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_FROM,GIT_PATCH_0,HTML_MESSAGE,KAM_SHORT,RCVD_IN_DNSWL_NONE,SPF_HELO_NONE,SPF_PASS,TXREP 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: This is a multi-part message in MIME format. --------------ps7ip8FkrgDmm3TbTDs0ifYy Content-Type: multipart/alternative; boundary="------------ZBUYNiw9XMIcJ1J0XINJSUp5" --------------ZBUYNiw9XMIcJ1J0XINJSUp5 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit /This patch is the initial implementation of OpenMP-API specs book section //20.5.5 with title "Thread Handles". //libgomp/ChangeLog ///2022-07-01 Ahmed Sayed ///* Makefile.am (libgompd_la_SOURCES): Add ompd-threads.c.///* Makefile.in: Regenerate. * team.c (gomp_free_thread): Call ompd_bp_thread_end./* ompd-support.c (gompd_thread_initial_tls_bias): New variable. (gompd_load): Initialize gompd_thread_initial_tls_bias. * ompd-threads.c: New file./// --------------ZBUYNiw9XMIcJ1J0XINJSUp5-- --------------ps7ip8FkrgDmm3TbTDs0ifYy Content-Type: text/plain; charset=UTF-8; name="diff.txt" Content-Disposition: attachment; filename="diff.txt" Content-Transfer-Encoding: base64 ZGlmZiAtLWdpdCBhL2xpYmdvbXAvTWFrZWZpbGUuYW0gYi9saWJnb21wL01h a2VmaWxlLmFtCmluZGV4IDZkOTEzYTkzZTdmLi4yM2Y1YmVkZTFiZiAxMDA2 NDQKLS0tIGEvbGliZ29tcC9NYWtlZmlsZS5hbQorKysgYi9saWJnb21wL01h a2VmaWxlLmFtCkBAIC05NCw3ICs5NCw3IEBAIGxpYmdvbXBfbGFfU09VUkNF UyA9IGFsbG9jLmMgYXRvbWljLmMgYmFycmllci5jIGNyaXRpY2FsLmMgZW52 LmMgZXJyb3IuYyBcCiAJcHJpb3JpdHlfcXVldWUuYyBhZmZpbml0eS1mbXQu YyB0ZWFtcy5jIGFsbG9jYXRvci5jIG9hY2MtcHJvZmlsaW5nLmMgXAogCW9h Y2MtdGFyZ2V0LmMgb21wZC1zdXBwb3J0LmMKIAotbGliZ29tcGRfbGFfU09V UkNFUyA9IG9tcGQtaW5pdC5jIG9tcGQtaGVscGVyLmMgb21wZC1pY3YuYwor bGliZ29tcGRfbGFfU09VUkNFUyA9IG9tcGQtaW5pdC5jIG9tcGQtaGVscGVy LmMgb21wZC1pY3YuYyBvbXBkLXRocmVhZHMuYwogCiBpbmNsdWRlICQodG9w X3NyY2RpcikvcGx1Z2luL01ha2VmcmFnLmFtCiAKZGlmZiAtLWdpdCBhL2xp YmdvbXAvTWFrZWZpbGUuaW4gYi9saWJnb21wL01ha2VmaWxlLmluCmluZGV4 IDQwZjg5NmI1ZjAzLi43YWNkY2JmMzFkNSAxMDA2NDQKLS0tIGEvbGliZ29t cC9NYWtlZmlsZS5pbgorKysgYi9saWJnb21wL01ha2VmaWxlLmluCkBAIC0y MzMsNyArMjMzLDggQEAgYW1fbGliZ29tcF9sYV9PQkpFQ1RTID0gYWxsb2Mu bG8gYXRvbWljLmxvIGJhcnJpZXIubG8gY3JpdGljYWwubG8gXAogCWFmZmlu aXR5LWZtdC5sbyB0ZWFtcy5sbyBhbGxvY2F0b3IubG8gb2FjYy1wcm9maWxp bmcubG8gXAogCW9hY2MtdGFyZ2V0LmxvIG9tcGQtc3VwcG9ydC5sbyAkKGFt X19vYmplY3RzXzEpCiBsaWJnb21wX2xhX09CSkVDVFMgPSAkKGFtX2xpYmdv bXBfbGFfT0JKRUNUUykKLWFtX2xpYmdvbXBkX2xhX09CSkVDVFMgPSBvbXBk LWluaXQubG8gb21wZC1oZWxwZXIubG8gb21wZC1pY3YubG8KK2FtX2xpYmdv bXBkX2xhX09CSkVDVFMgPSBvbXBkLWluaXQubG8gb21wZC1oZWxwZXIubG8g b21wZC1pY3YubG8gXAorCW9tcGQtdGhyZWFkcy5sbwogbGliZ29tcGRfbGFf T0JKRUNUUyA9ICQoYW1fbGliZ29tcGRfbGFfT0JKRUNUUykKIEFNX1ZfUCA9 ICQoYW1fX3ZfUF9AQU1fVkApCiBhbV9fdl9QXyA9ICQoYW1fX3ZfUF9AQU1f REVGQVVMVF9WQCkKQEAgLTU4Myw3ICs1ODQsNyBAQCBsaWJnb21wX2xhX1NP VVJDRVMgPSBhbGxvYy5jIGF0b21pYy5jIGJhcnJpZXIuYyBjcml0aWNhbC5j IGVudi5jIFwKIAlvYWNjLWFzeW5jLmMgb2FjYy1wbHVnaW4uYyBvYWNjLWN1 ZGEuYyBwcmlvcml0eV9xdWV1ZS5jIFwKIAlhZmZpbml0eS1mbXQuYyB0ZWFt cy5jIGFsbG9jYXRvci5jIG9hY2MtcHJvZmlsaW5nLmMgXAogCW9hY2MtdGFy Z2V0LmMgb21wZC1zdXBwb3J0LmMgJChhbV9fYXBwZW5kXzcpCi1saWJnb21w ZF9sYV9TT1VSQ0VTID0gb21wZC1pbml0LmMgb21wZC1oZWxwZXIuYyBvbXBk LWljdi5jCitsaWJnb21wZF9sYV9TT1VSQ0VTID0gb21wZC1pbml0LmMgb21w ZC1oZWxwZXIuYyBvbXBkLWljdi5jIG9tcGQtdGhyZWFkcy5jCiAKICMgTnZp ZGlhIFBUWCBPcGVuQUNDIHBsdWdpbi4KIEBQTFVHSU5fTlZQVFhfVFJVRUBs aWJnb21wX3BsdWdpbl9udnB0eF92ZXJzaW9uX2luZm8gPSAtdmVyc2lvbi1p bmZvICQobGlidG9vbF9WRVJTSU9OKQpAQCAtODAxLDYgKzgwMiw3IEBAIGRp c3RjbGVhbi1jb21waWxlOgogQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBA YW1fX3F1b3RlQC4vJChERVBESVIpL29tcGQtaWN2LlBsb0BhbV9fcXVvdGVA CiBAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERF UERJUikvb21wZC1pbml0LlBsb0BhbV9fcXVvdGVACiBAQU1ERVBfVFJVRUBA YW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvb21wZC1zdXBw b3J0LlBsb0BhbV9fcXVvdGVACitAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVA IEBhbV9fcXVvdGVALi8kKERFUERJUikvb21wZC10aHJlYWRzLlBsb0BhbV9f cXVvdGVACiBAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVA Li8kKERFUERJUikvb3JkZXJlZC5QbG9AYW1fX3F1b3RlQAogQEFNREVQX1RS VUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL3BhcmFs bGVsLlBsb0BhbV9fcXVvdGVACiBAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVA IEBhbV9fcXVvdGVALi8kKERFUERJUikvcHJpb3JpdHlfcXVldWUuUGxvQGFt X19xdW90ZUAKZGlmZiAtLWdpdCBhL2xpYmdvbXAvb21wZC1zdXBwb3J0LmMg Yi9saWJnb21wL29tcGQtc3VwcG9ydC5jCmluZGV4IDI3YzVhZDE0OGUwLi41 YjFhZmQzNzc4OCAxMDA2NDQKLS0tIGEvbGliZ29tcC9vbXBkLXN1cHBvcnQu YworKysgYi9saWJnb21wL29tcGQtc3VwcG9ydC5jCkBAIC0zMyw2ICszMyw4 IEBAIGNvbnN0IHVuc2lnbmVkIHNob3J0IGdvbXBkX3NpemVvZl9nb21wX3Ro cmVhZF9oYW5kbGUKICAgX19hdHRyaWJ1dGVfXyAoKHVzZWQpKSBPTVBEX1NF Q1RJT04gPSAwOwogI2VuZGlmCiAKK3Vuc2lnbmVkIGxvbmcgZ29tcGRfdGhy ZWFkX2luaXRpYWxfdGxzX2JpYXMgX19hdHRyaWJ1dGVfXyAoKHVzZWQpKTsK KwogLyogR2V0IG9mZnNldCBvZiB0aGUgbWVtYmVyIG0gaW4gc3RydWN0IHQu ICAqLwogI2RlZmluZSBnb21wZF9nZXRfb2Zmc2V0KHQsIG0pIFwKICAgY29u c3QgdW5zaWduZWQgc2hvcnQgZ29tcGRfYWNjZXNzXyMjdCMjXyMjbSBfX2F0 dHJpYnV0ZV9fICgodXNlZCkpIFwKQEAgLTY3LDYgKzY5LDExIEBAIGdvbXBk X2xvYWQgKHZvaWQpCiAgIGdvbXBkX3N0YXRlIHw9IE9NUERfRU5BQkxFRDsK ICAgb21wZF9kbGxfbG9jYXRpb25zID0gJm9tcGRfZGxsX2xvY2F0aW9uc19h cnJheVswXTsKICAgb21wZF9kbGxfbG9jYXRpb25zX3ZhbGlkICgpOworCisg ICNpZiBkZWZpbmVkKExJQkdPTVBfVVNFX1BUSFJFQURTKSAmJiAhZGVmaW5l ZChHT01QX05FRURTX1RIUkVBRF9IQU5ETEUpCisgIGdvbXBkX3RocmVhZF9p bml0aWFsX3Rsc19iaWFzID0gKHVuc2lnbmVkIGxvbmcpICgoY2hhciAqKSAm Z29tcF90bHNfZGF0YQorCQkJCQkJICAgLSAoY2hhciAqKSBwdGhyZWFkX3Nl bGYgKCkpOworICAjZW5kaWYKIH0KIAogI2lmbmRlZiBfX0VMRl9fCmRpZmYg LS1naXQgYS9saWJnb21wL29tcGQtdGhyZWFkcy5jIGIvbGliZ29tcC9vbXBk LXRocmVhZHMuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw MDAwMC4uNzIzZWY3NDAxODEKLS0tIC9kZXYvbnVsbAorKysgYi9saWJnb21w L29tcGQtdGhyZWFkcy5jCkBAIC0wLDAgKzEsMjIyIEBACisvKiBDb3B5cmln aHQgKEMpIFRoZSBHTlUgVG9vbGNoYWluIEF1dGhvcnMuCisgICBDb250cmli dXRlZCBieSBBaG1lZCBTYXllZCA8YWhtZWRzYXllZG1vdXNzZUBnbWFpbC5j b20+LgorICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIEdOVSBPZmZsb2Fk aW5nIGFuZCBNdWx0aSBQcm9jZXNzaW5nIExpYnJhcnkKKyAgIChsaWJnb21w KS4KKworICAgTGliZ29tcCBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJl ZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5IGl0CisgICB1bmRlciB0aGUg dGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1 Ymxpc2hlZCBieQorICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsg ZWl0aGVyIHZlcnNpb24gMywgb3IgKGF0IHlvdXIgb3B0aW9uKQorICAgYW55 IGxhdGVyIHZlcnNpb24uCisKKyAgIExpYmdvbXAgaXMgZGlzdHJpYnV0ZWQg aW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0IFdJVEhP VVQgQU5ZCisgICBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVk IHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTCisgICBG T1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVSBHZW5lcmFs IFB1YmxpYyBMaWNlbnNlIGZvcgorICAgbW9yZSBkZXRhaWxzLgorCisgICBV bmRlciBTZWN0aW9uIDcgb2YgR1BMIHZlcnNpb24gMywgeW91IGFyZSBncmFu dGVkIGFkZGl0aW9uYWwKKyAgIHBlcm1pc3Npb25zIGRlc2NyaWJlZCBpbiB0 aGUgR0NDIFJ1bnRpbWUgTGlicmFyeSBFeGNlcHRpb24sIHZlcnNpb24KKyAg IDMuMSwgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5k YXRpb24uCisKKyAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkg b2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFuZAorICAgYSBj b3B5IG9mIHRoZSBHQ0MgUnVudGltZSBMaWJyYXJ5IEV4Y2VwdGlvbiBhbG9u ZyB3aXRoIHRoaXMgcHJvZ3JhbTsKKyAgIHNlZSB0aGUgZmlsZXMgQ09QWUlO RzMgYW5kIENPUFlJTkcuUlVOVElNRSByZXNwZWN0aXZlbHkuICBJZiBub3Qs IHNlZQorICAgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LiAgKi8K KworLyogVGhpcyBmaWxlIGNvbnRhaW5zIHRoZSBpbXBsZW1lbnRhdGlvbiBv ZiBmdW5jdGlvbnMgZGVmaW5lZCBpbgorICAgU2VjdGlvbiA1LjUgVGhyZWFk SGFuZGxlcy4gKi8KKworCisjaW5jbHVkZSAib21wZC1oZWxwZXIuaCIKKwor b21wZF9yY190CitvbXBkX2dldF90aHJlYWRfaW5fcGFyYWxsZWwgKG9tcGRf cGFyYWxsZWxfaGFuZGxlX3QgKnBhcmFsbGVsX2hhbmRsZSwKKwkJCSAgICAg aW50IHRocmVhZF9udW0sCisJCQkgICAgIG9tcGRfdGhyZWFkX2hhbmRsZV90 ICoqdGhyZWFkX2hhbmRsZSkKK3sKKworICBpZiAocGFyYWxsZWxfaGFuZGxl ID09IE5VTEwpCisgICAgcmV0dXJuIG9tcGRfcmNfc3RhbGVfaGFuZGxlOwor ICBDSEVDSyAocGFyYWxsZWxfaGFuZGxlLT5haCk7CisKKyAgb21wZF9hZGRy ZXNzX3NwYWNlX2NvbnRleHRfdCAqY29udGV4dCA9IHBhcmFsbGVsX2hhbmRs ZS0+YWgtPmNvbnRleHQ7CisgIG9tcGRfcmNfdCByZXQ7CisKKyAgb21wZF93 b3JkX3QgdGVhbV9zaXplX3ZhciA9IDE7CisgIGlmIChwYXJhbGxlbF9oYW5k bGUtPnRoLmFkZHJlc3MpCisgICAgZ29tcGRfZ2V0X3RlYW1fc2l6ZSAocGFy YWxsZWxfaGFuZGxlLCAmdGVhbV9zaXplX3Zhcik7CisKKyAgaWYgKHRocmVh ZF9udW0gPCAwIHx8IHRocmVhZF9udW0gPj0gdGVhbV9zaXplX3ZhcikKKyAg ICByZXR1cm4gb21wZF9yY19iYWRfaW5wdXQ7CisKKyAgb21wZF93b3JkX3Qg dGVtcF9vZmZzZXQ7CisgIG9tcGRfYWRkcmVzc190IHRlbXBfc3ltYm9sX2Fk ZHIsIHN5bWJvbF9hZGRyID0ge09NUERfU0VHTUVOVF9VTlNQRUNJRklFRCwg MH07CisgIG9tcGRfYWRkcl90IHRlbXBfYWRkcjsKKworICBBQ0NFU1NfVkFM VUUgKGNvbnRleHQsIE5VTEwsICJnb21wZF9hY2Nlc3NfZ29tcF90aHJlYWRf cG9vbF90aHJlYWRzIiwKKwkJdGVtcF9vZmZzZXQsIDEsIHJldCwgc3ltYm9s X2FkZHIsIHRlbXBfc3ltYm9sX2FkZHIsIHRlbXBfYWRkcik7CisKKyAgc3lt Ym9sX2FkZHIuYWRkcmVzcyArPSB0aHJlYWRfbnVtICogdGFyZ2V0X3NpemVz LnNpemVvZl9wb2ludGVyOworCisgIERFUkVGRVJFTkNFIChjb250ZXh0LCBO VUxMLCBzeW1ib2xfYWRkciwgdGFyZ2V0X3NpemVzLnNpemVvZl9wb2ludGVy LCAxLAorCSAgICAgICB0ZW1wX2FkZHIsIHJldCwgMSk7CisKKyAgcmV0ID0g Y2FsbGJhY2tzLT5hbGxvY19tZW1vcnkgKHNpemVvZiAob21wZF90aHJlYWRf aGFuZGxlX3QpLAorCQkJCSAodm9pZCAqKikgdGhyZWFkX2hhbmRsZSk7CisK KyAgQ0hFQ0tfUkVUIChyZXQpOworCisgIGlmIChzeW1ib2xfYWRkci5hZGRy ZXNzID09IDApCisgICAgcmV0dXJuIG9tcGRfcmNfdW5zdXBwb3J0ZWQ7CisK KyAgKCp0aHJlYWRfaGFuZGxlKS0+dGggPSBzeW1ib2xfYWRkcjsKKyAgKCp0 aHJlYWRfaGFuZGxlKS0+YWggPSBwYXJhbGxlbF9oYW5kbGUtPmFoOworICBy ZXR1cm4gcmV0OworfQorCisvKiBUaGUgb21wZF9nZXRfdGhyZWFkX2hhbmRs ZSBmdW5jdGlvbiB0aGF0IG1hcHMgYSBuYXRpdmUgdGhyZWFkIHRvIGFuCisg ICBPTVBEIHRocmVhZCBoYW5kbGUuICAqLworCitvbXBkX3JjX3QKK29tcGRf Z2V0X3RocmVhZF9oYW5kbGUgKG9tcGRfYWRkcmVzc19zcGFjZV9oYW5kbGVf dCAqaGFuZGxlLAorCQkJb21wZF90aHJlYWRfaWRfdCBraW5kLCBvbXBkX3Np emVfdCBzaXplb2ZfdGhyZWFkX2lkLAorCQkJY29uc3Qgdm9pZCAqdGhyZWFk X2lkLAorCQkJb21wZF90aHJlYWRfaGFuZGxlX3QgKip0aHJlYWRfaGFuZGxl KQoreworICBDSEVDSyAoaGFuZGxlKTsKKyAgaWYgKGtpbmQgIT0gT01QRF9U SFJFQURfSURfUFRIUkVBRCkKKyAgICByZXR1cm4gb21wZF9yY191bnN1cHBv cnRlZDsKKworICBvbXBkX2FkZHJlc3Nfc3BhY2VfY29udGV4dF90ICpjb250 ZXh0ID0gaGFuZGxlLT5jb250ZXh0OworICBvbXBkX3RocmVhZF9jb250ZXh0 X3QgKnRjb250ZXh0OworICBvbXBkX3JjX3QgcmV0OworCisgIHJldCA9IGNh bGxiYWNrcy0+Z2V0X3RocmVhZF9jb250ZXh0X2Zvcl90aHJlYWRfaWQgKGNv bnRleHQsIGtpbmQsCisJCQkJCQkgICAgIHNpemVvZl90aHJlYWRfaWQsCisJ CQkJCQkgICAgIHRocmVhZF9pZCwgJnRjb250ZXh0KTsKKyAgQ0hFQ0tfUkVU IChyZXQpOworCisgIG9tcGRfc2l6ZV90IHRlbXBfc3ltYm9sX3NpemUsIHN5 bWJvbF9zaXplOworICBvbXBkX2FkZHJlc3NfdCB0ZW1wX3N5bWJvbF9hZGRy LCBzeW1ib2xfYWRkciA9IHtPTVBEX1NFR01FTlRfVU5TUEVDSUZJRUQsIDB9 OworCisgIEdFVF9WQUxVRSAoY29udGV4dCwgTlVMTCwgImdvbXBkX3NpemVv Zl9nb21wX3RocmVhZCIsIHN5bWJvbF9zaXplLAorCSAgICAgdGVtcF9zeW1i b2xfc2l6ZSwgdGFyZ2V0X3NpemVzLnNpemVvZl9zaG9ydCwgMSwgcmV0LAor CSAgICAgdGVtcF9zeW1ib2xfYWRkcik7CisKKyAgR0VUX1ZBTFVFIChjb250 ZXh0LCB0Y29udGV4dCwgImdvbXBfdGxzX2RhdGEiLCBzeW1ib2xfYWRkci5h ZGRyZXNzLAorCSAgICAgdGVtcF9zeW1ib2xfYWRkci5hZGRyZXNzLCBzeW1i b2xfc2l6ZSwgMSwgcmV0LCBzeW1ib2xfYWRkcik7CisKKyAgcmV0ID0gY2Fs bGJhY2tzLT5hbGxvY19tZW1vcnkgKHNpemVvZiAob21wZF90aHJlYWRfaGFu ZGxlX3QpLAorCQkJCSAodm9pZCAqKikgdGhyZWFkX2hhbmRsZSk7CisKKyAg Q0hFQ0tfUkVUIChyZXQpOworCisgICgqdGhyZWFkX2hhbmRsZSktPmFoID0g aGFuZGxlOworICAoKnRocmVhZF9oYW5kbGUpLT50aCA9IHN5bWJvbF9hZGRy OworICAoKnRocmVhZF9oYW5kbGUpLT50aHJlYWRfY29udGV4dCA9IHRjb250 ZXh0OworICByZXR1cm4gcmV0OworfQorCisKK29tcGRfcmNfdAorb21wZF9y ZWxfdGhyZWFkX2hhbmRsZSAob21wZF90aHJlYWRfaGFuZGxlX3QgKnRocmVh ZF9oYW5kbGUpCit7CisgIGlmICh0aHJlYWRfaGFuZGxlID09IE5VTEwpCisg ICAgcmV0dXJuIG9tcGRfcmNfc3RhbGVfaGFuZGxlOworCisgIG9tcGRfcmNf dCByZXQ7CisgIHJldCA9IGNhbGxiYWNrcy0+ZnJlZV9tZW1vcnkgKCh2b2lk ICopIHRocmVhZF9oYW5kbGUpOworICBpZiAocmV0ICE9IG9tcGRfcmNfb2sp CisgIHJldHVybiByZXQ7CisKKyAgcmV0dXJuIG9tcGRfcmNfb2s7Cit9CisK KworLyogUmV0dXJuIC0xLCAwIG9yIDEgZm9yIHRocmVhZF9oYW5kbGVfMSA8 LCA9PSBvciA+IHRocmVhZF9oYW5kbGVfMi4gICovCitvbXBkX3JjX3QKK29t cGRfdGhyZWFkX2hhbmRsZV9jb21wYXJlIChvbXBkX3RocmVhZF9oYW5kbGVf dCAqdGhyZWFkX2hhbmRsZV8xLAorCQkJICAgIG9tcGRfdGhyZWFkX2hhbmRs ZV90ICp0aHJlYWRfaGFuZGxlXzIsCisJCQkgICAgaW50CSpjbXBfdmFsdWUp Cit7CisKKyAgaWYgKHRocmVhZF9oYW5kbGVfMSA9PSBOVUxMIHx8IHRocmVh ZF9oYW5kbGVfMiA9PSBOVUxMKQorICAgIHJldHVybiBvbXBkX3JjX3N0YWxl X2hhbmRsZTsKKyAgaWYgKGNtcF92YWx1ZSA9PSBOVUxMKQorICAgIHJldHVy biBvbXBkX3JjX2JhZF9pbnB1dDsKKyAgaWYgKHRocmVhZF9oYW5kbGVfMS0+ YWgtPmtpbmQgIT0gdGhyZWFkX2hhbmRsZV8yLT5haC0+a2luZCkKKyAgICBy ZXR1cm4gb21wZF9yY19iYWRfaW5wdXQ7CisKKyAgaWYgKHRocmVhZF9oYW5k bGVfMS0+dGguYWRkcmVzcyA8IHRocmVhZF9oYW5kbGVfMi0+dGguYWRkcmVz cykKKyAgICAqY21wX3ZhbHVlID0gLTE7CisgIGVsc2UgaWYgKHRocmVhZF9o YW5kbGVfMS0+dGguYWRkcmVzcyA+IHRocmVhZF9oYW5kbGVfMi0+dGguYWRk cmVzcykKKyAgICAqY21wX3ZhbHVlID0gMTsKKyAgZWxzZQorICAgICpjbXBf dmFsdWUgPSAwOworCisgIHJldHVybiBvbXBkX3JjX29rOworfQorCisKK29t cGRfcmNfdAorb21wZF9nZXRfdGhyZWFkX2lkIChvbXBkX3RocmVhZF9oYW5k bGVfdCAqdGhyZWFkX2hhbmRsZSwgb21wZF90aHJlYWRfaWRfdCBraW5kLAor CQkgICAgb21wZF9zaXplX3Qgc2l6ZW9mX3RocmVhZF9pZCwgdm9pZCAqdGhy ZWFkX2lkKQoreworICBpZiAoa2luZCAhPSBPTVBEX1RIUkVBRF9JRF9QVEhS RUFEKQorICAgIHJldHVybiBvbXBkX3JjX3Vuc3VwcG9ydGVkOworICBpZiAo dGhyZWFkX2lkID09IE5VTEwpCisgICAgcmV0dXJuIG9tcGRfcmNfYmFkX2lu cHV0OworICBpZiAodGhyZWFkX2hhbmRsZSA9PSBOVUxMKQorICAgIHJldHVy biBvbXBkX3JjX3N0YWxlX2hhbmRsZTsKKworICBDSEVDSyAodGhyZWFkX2hh bmRsZS0+YWgpOworICBvbXBkX2FkZHJlc3Nfc3BhY2VfY29udGV4dF90ICpj b250ZXh0ID0gdGhyZWFkX2hhbmRsZS0+YWgtPmNvbnRleHQ7CisKKyAgb21w ZF9yY190IHJldDsKKyAgb21wZF9hZGRyZXNzX3QgdGFkZHIgPSB0aHJlYWRf aGFuZGxlLT50aDsKKyAgb21wZF9hZGRyZXNzX3QgdGVtcF9zeW1ib2xfYWRk ciwgc3ltYm9sX2FkZHIgPSB7T01QRF9TRUdNRU5UX1VOU1BFQ0lGSUVELCAw fTsKKyAgb21wZF9zaXplX3QgdGVtcF9zeW1ib2xfc2l6ZSwgc3ltYm9sX3Np emU7CisgIG9tcGRfd29yZF90IHRlbXBfb2Zmc2V0LCBvZmZzZXQ7CisKKyAg R0VUX1ZBTFVFIChjb250ZXh0LCBOVUxMLCAiZ29tcGRfc2l6ZW9mX2dvbXBf dGhyZWFkX2hhbmRsZSIsIHN5bWJvbF9zaXplLAorCSAgICAgdGVtcF9zeW1i b2xfc2l6ZSwgdGFyZ2V0X3NpemVzLnNpemVvZl9zaG9ydCwgMSwgcmV0LCBz eW1ib2xfYWRkcik7CisKKyAgaWYgKHN5bWJvbF9zaXplID09IDApCisgICAg eworICAgICAgR0VUX1ZBTFVFIChjb250ZXh0LCBOVUxMLCAiZ29tcGRfdGhy ZWFkX2luaXRpYWxfdGxzX2JpYXMiLCBvZmZzZXQsCisJCSB0ZW1wX29mZnNl dCwgdGFyZ2V0X3NpemVzLnNpemVvZl9sb25nLCAxLCByZXQsIHN5bWJvbF9h ZGRyKTsKKworICAgICAgcmV0ID0gY2FsbGJhY2tzLT5zeW1ib2xfYWRkcl9s b29rdXAgKGNvbnRleHQsIE5VTEwsImdvbXBfdGxzX2RhdGEiLAorCQkJCQkg ICAmc3ltYm9sX2FkZHIsIE5VTEwpOworICAgICAgcmV0ID0gY2FsbGJhY2tz LT5kZXZpY2VfdG9faG9zdCAoY29udGV4dCwgJnRlbXBfc3ltYm9sX2FkZHIu YWRkcmVzcywKKwkJCQkgICAgICAgdGFyZ2V0X3NpemVzLnNpemVvZl9sb25n X2xvbmcsIDEsCisJCQkJICAgICAgICZzeW1ib2xfYWRkci5hZGRyZXNzKTsK KyAgICAgIENIRUNLX1JFVCAocmV0KTsKKworICAgICAgdGFkZHIuYWRkcmVz cyA9IHN5bWJvbF9hZGRyLmFkZHJlc3MgKyBvZmZzZXQ7CisgICAgICByZXQg PSBjYWxsYmFja3MtPnJlYWRfbWVtb3J5IChjb250ZXh0LCBOVUxMLCAmdGFk ZHIsCisJCQkJICAgIHRhcmdldF9zaXplcy5zaXplb2ZfbG9uZ19sb25nLCB0 aHJlYWRfaWQpOworICAgIH0KKyAgZWxzZQorICAgIHsKKyAgICAgIGlmIChz aXplb2ZfdGhyZWFkX2lkICE9IHN5bWJvbF9zaXplKQorICAgICAgICByZXR1 cm4gb21wZF9yY19iYWRfaW5wdXQ7CisKKyAgICAgIEdFVF9WQUxVRSAoY29u dGV4dCwgTlVMTCwgImdvbXBkX2FjY2Vzc19nb21wX3RocmVhZF9oYW5kbGUi LCBvZmZzZXQsCisJCSB0ZW1wX29mZnNldCwgdGFyZ2V0X3NpemVzLnNpemVv Zl9zaG9ydCwgMSwgcmV0LCBzeW1ib2xfYWRkcik7CisgICAgICB0YWRkci5h ZGRyZXNzICs9IG9mZnNldDsKKworICAgICAgcmV0ID0gY2FsbGJhY2tzLT5y ZWFkX21lbW9yeSAoY29udGV4dCwgTlVMTCwgJnRhZGRyLCBzeW1ib2xfc2l6 ZSwKKwkJCQkgICAgdGhyZWFkX2lkKTsKKyAgICB9CisgIHJldHVybiByZXQ7 Cit9CisKKworLyogT01QRCBkb2Vzbid0IHN1cHBvcnQgR1BVcyBmb3Igbm93 LiAgKi8KK29tcGRfcmNfdCBvbXBkX2dldF9kZXZpY2VfZnJvbV90aHJlYWQg KG9tcGRfdGhyZWFkX2hhbmRsZV90ICp0aHJlYWRfaGFuZGxlLAorCQkJCSAg ICAgICBvbXBkX2FkZHJlc3Nfc3BhY2VfaGFuZGxlX3QgKipkZXZpY2UpCit7 CisgIGlmICh0aHJlYWRfaGFuZGxlID09IE5VTEwpCisgICAgcmV0dXJuIG9t cGRfcmNfc3RhbGVfaGFuZGxlOworICByZXR1cm4gb21wZF9yY191bnN1cHBv cnRlZDsKK30KZGlmZiAtLWdpdCBhL2xpYmdvbXAvdGVhbS5jIGIvbGliZ29t cC90ZWFtLmMKaW5kZXggZDUzMjQ2OTYxYjcuLjlhODRkYzE4YmRiIDEwMDY0 NAotLS0gYS9saWJnb21wL3RlYW0uYworKysgYi9saWJnb21wL3RlYW0uYwpA QCAtNzcsNiArNzcsNyBAQCBnb21wX3RocmVhZF9zdGFydCAodm9pZCAqeGRh dGEpCiAgIHZvaWQgKmxvY2FsX2RhdGE7CiAKICAgb21wZF9icF90aHJlYWRf YmVnaW4gKCk7CisKICNpZiBkZWZpbmVkIEhBVkVfVExTIHx8IGRlZmluZWQg VVNFX0VNVVRMUwogICB0aHIgPSAmZ29tcF90bHNfZGF0YTsKICNlbHNlCkBA IC0zMTMsNiArMzE0LDggQEAgZ29tcF9mcmVlX3RocmVhZCAodm9pZCAqYXJn IF9fYXR0cmlidXRlX18oKHVudXNlZCkpKQogICAgICAgZ29tcF9lbmRfdGFz ayAoKTsKICAgICAgIGZyZWUgKHRhc2spOwogICAgIH0KKworICBvbXBkX2Jw X3RocmVhZF9lbmQgKCk7CiB9CiAKIC8qIExhdW5jaCBhIHRlYW0uICAqLwo= --------------ps7ip8FkrgDmm3TbTDs0ifYy--