From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-wm1-x32e.google.com (mail-wm1-x32e.google.com [IPv6:2a00:1450:4864:20::32e]) by sourceware.org (Postfix) with ESMTPS id 46191385627A for ; Fri, 10 Jun 2022 15:56:51 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 46191385627A Received: by mail-wm1-x32e.google.com with SMTP id 67-20020a1c1946000000b00397382b44f4so1269983wmz.2 for ; Fri, 10 Jun 2022 08:56:51 -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:from:date:message-id:subject:to; bh=6e7P3B3xZOE8BWHUmsuSKHNO8vv3U37BaRCDz9yfJaQ=; b=jhqSoXoKa/N3QwwH7s/OplwVvxBKje8IVt8qOnou+/IkdRiH2ZgNSJjMok1gkz7vNn aNLZQ9kcJ8KtipFWfJO4UGtylNUAVAVytj2xeQr1DQ+GKxZ6rPZNJCWzP2bIh0p3sZz2 /KOJxBAYYChAQR/xwBCo4JtDkPYe8SEAhVVA/WPoZihkzzCQsEjRPo8zLDc0QG589VNA yeOc860sM17MXH4mopxL6oGLl4MS85bUIO3VBxPgaKmdv3BFZsO1/Yx4yflZ83Z/YPBx 4V9ffLCjAuYosrh8V52YlTwCCxbsjtsRiBlfwvU5r45Pnx62dkIQx53evkHONbmMHGws kotg== X-Gm-Message-State: AOAM533YRsb4dW98WlGfV9eUkMkkWJdPFM5R+H5mjgFjsoCSJMbNoLTJ PyjN2f0MLuxOG5MLh+C4Dq5AT7QKbVtPMWe5/SxCvVeWDnM= X-Google-Smtp-Source: ABdhPJwmyoqErCIcgMG0z8gXGNZOZ1a7KmuoheJpL+rXJYvv5e0RA64p7klGv/5Nbs4i7Pz1ZvjtA8ZBSG7VvAMRrXI= X-Received: by 2002:a05:600c:4f4e:b0:39c:1bbb:734f with SMTP id m14-20020a05600c4f4e00b0039c1bbb734fmr436692wmq.116.1654876608673; Fri, 10 Jun 2022 08:56:48 -0700 (PDT) MIME-Version: 1.0 From: Mohamed Atef Date: Fri, 10 Jun 2022 17:56:37 +0200 Message-ID: Subject: [PATCH] libgompd: Fix sizes in OMPD support and add local ICVs finctions. To: gcc-patches@gcc.gnu.org, Jakub Jelinek , Mohamed Sayed , ahmedsayedmousse@gmail.com, youssef.magdy.775@gmail.com, aya.nashaat99@gmail.com Content-Type: multipart/mixed; boundary="00000000000068517905e119fc1d" X-Spam-Status: No, score=-7.6 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, 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: Fri, 10 Jun 2022 15:56:55 -0000 --00000000000068517905e119fc1d Content-Type: text/plain; charset="UTF-8" libgomp/ChangeLog 2022-06-10 Mohamed Atef * ompd-helper.h (DEREFERENCE, ACCESS_VALUE): New macros. * ompd-helper.c (gompd_get_nthread, gompd_get_thread_limit, gomp_get_run_shed, gompd_get_run_sched_chunk_size, gompd_get_default_device, gompd_get_dynamic, gompd_get_max_active_levels, gompd_get_proc_bind, gompd_is_final, gompd_is_implicit, gompd_get_team_size): defined. * ompd-icv.c (ompd_get_icv_from_scope): call the previous fincions, thread_handle, task_handle and parallel handle: New variable. Fix format in ashandle definition. * ompd-init.c: call GET_VALUE with sizeof_short for gompd_state. * ompd-support.h (gompd_state): size of short instead of long. (GOMPD_FOREACH_ACCESS): Add gompd_access (gomp_task, kind) gompd_access (gomp_task, final_task) gompd_access (gomp_team, nthreads) * ompd-support.c: Define gompd_get_offset gompd_get_sizeof_member gompd_get_size. (gompd_load): Remove gompd_init_access, gompd_init_sizeof_members, gompd_init_sizes define gompd_access_gomp_thread_handle with __UINT16_TYPE__. --00000000000068517905e119fc1d 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_l48m1kce0 ZGlmZiAtLWdpdCBhL2xpYmdvbXAvb21wZC1oZWxwZXIuYyBiL2xpYmdvbXAvb21wZC1oZWxwZXIu YwppbmRleCBhNDg4YmE3ZGYyZS4uNWE3OWVmOTU4MWQgMTAwNjQ0Ci0tLSBhL2xpYmdvbXAvb21w ZC1oZWxwZXIuYworKysgYi9saWJnb21wL29tcGQtaGVscGVyLmMKQEAgLTI1Niw2ICsyNTYsMzUw IEBAIGdvbXBkX3N0cmluZ2l6ZV9nb21wZF9lbmFibGVkIChvbXBkX2FkZHJlc3Nfc3BhY2VfaGFu ZGxlX3QgKmFoLAogCiAvKiBFbmQgb2YgZ2xvYmFsIElDVnMgZnVuY3Rpb25zLiAgKi8KIAorLyog R2V0IHBlciB0aHJlYWQgSUNWcy4gICovCisKK29tcGRfcmNfdAorZ29tcGRfZ2V0X250aHJlYWQg KG9tcGRfdGhyZWFkX2hhbmRsZV90ICp0aHJlYWRfaGFuZGxlLAorICAgICAgICAgICAgICAgICAg IG9tcGRfd29yZF90ICpudGhyZWFkc192YXIpCit7CisgIC8qIGdvbXBfdGhyZWFkLT50YXNrLT5n b21wX3Rhc2tfaWN2Lm50aHJlYWRzX3Zhci4gICovCisgIGlmICh0aHJlYWRfaGFuZGxlID09IE5V TEwpCisgICAgcmV0dXJuIG9tcGRfcmNfc3RhbGVfaGFuZGxlOworICBpZiAobnRocmVhZHNfdmFy ID09IE5VTEwpCisgICAgcmV0dXJuIG9tcGRfcmNfYmFkX2lucHV0OworICBDSEVDSyAodGhyZWFk X2hhbmRsZS0+YWgpOworCisgIG9tcGRfd29yZF90IHJlcyA9IDA7CisgIG9tcGRfYWRkcmVzc190 IHN5bWJvbF9hZGRyID0gdGhyZWFkX2hhbmRsZS0+dGg7CisgIG9tcGRfd29yZF90IHRlbXBfb2Zm c2V0OworICBvbXBkX2FkZHJlc3NfdCB0ZW1wX3N5bV9hZGRyOworICBvbXBkX2FkZHJfdCB0ZW1w X2FkZHI7CisgIG9tcGRfYWRkcmVzc19zcGFjZV9jb250ZXh0X3QgKmNvbnRleHQgPSB0aHJlYWRf aGFuZGxlLT5haC0+Y29udGV4dDsKKyAgb21wZF90aHJlYWRfY29udGV4dF90ICp0X2NvbnRleHQg PSB0aHJlYWRfaGFuZGxlLT50aHJlYWRfY29udGV4dDsgCisgIG9tcGRfcmNfdCByZXQ7CisgIC8q IGdvbXBfdGhyZWFkLT50YXNrLiAgKi8KKyAgQUNDRVNTX1ZBTFVFIChjb250ZXh0LCB0X2NvbnRl eHQsICJnb21wZF9hY2Nlc3NfZ29tcF90aHJlYWRfdGFzayIsCisgICAgICAgICAgICAgICAgdGVt cF9vZmZzZXQsIDEsIHJldCwgc3ltYm9sX2FkZHIsIHRlbXBfc3ltX2FkZHIsIHRlbXBfYWRkcik7 CisgIC8qIGdvbXBfdGhyZWFkLT50YXNrLT50YXNrX2ljdi4gICovCisgIEFDQ0VTU19WQUxVRSAo Y29udGV4dCwgdF9jb250ZXh0LCAiZ29tcGRfYWNjZXNzX2dvbXBfdGFza19pY3YiLCB0ZW1wX29m ZnNldCwKKyAgICAgICAgICAgICAgICAxLCByZXQsIHN5bWJvbF9hZGRyLCB0ZW1wX3N5bV9hZGRy LCB0ZW1wX2FkZHIpOworICAvKiBnb21wX3RocmVhZC0+dGFzay0+dGFza19pY3YubnRocmVhZHNf dmFyLiAgKi8KKyAgQUNDRVNTX1ZBTFVFIChjb250ZXh0LCB0X2NvbnRleHQsICJnb21wZF9hY2Nl c3NfZ29tcF90YXNrX2ljdl9udGhyZWFkc192YXIiLAorICAgICAgICAgICAgICAgIHRlbXBfb2Zm c2V0LCAwLCByZXQsIHN5bWJvbF9hZGRyLCB0ZW1wX3N5bV9hZGRyLCB0ZW1wX2FkZHIpOworICBE RVJFRkVSRU5DRSAoY29udGV4dCwgdF9jb250ZXh0LCBzeW1ib2xfYWRkciwgdGFyZ2V0X3NpemVz LnNpemVvZl9sb25nX2xvbmcsCisgICAgICAgICAgICAgICAxLCByZXMsIHJldCwgMCk7CisgICpu dGhyZWFkc192YXIgPSByZXM7CisgIHJldHVybiBvbXBkX3JjX29rOworfQorCitvbXBkX3JjX3QK K2dvbXBkX2dldF9kZWZhdWx0X2RldmljZSAob21wZF90aHJlYWRfaGFuZGxlX3QgKnRocmVhZF9o YW5kbGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgIG9tcGRfd29yZF90ICpkZWZhbHV0X2Rl dmljZV92YXIpCit7CisgIC8qIGdvbXBfdGhyZWFkLT50YXNrLT5nb21wX3Rhc2tfaWN2LmRlZmF1 bHRfZGV2aWNlX3Zhci4gICovCisgIGlmICh0aHJlYWRfaGFuZGxlID09IE5VTEwpCisgICAgcmV0 dXJuIG9tcGRfcmNfc3RhbGVfaGFuZGxlOworICBpZiAoZGVmYWx1dF9kZXZpY2VfdmFyID09IE5V TEwpCisgICAgcmV0dXJuIG9tcGRfcmNfYmFkX2lucHV0OworICBDSEVDSyAodGhyZWFkX2hhbmRs ZS0+YWgpOworCisgIG9tcGRfd29yZF90IHJlcyA9IDA7CisgIG9tcGRfYWRkcmVzc190IHN5bWJv bF9hZGRyID0gdGhyZWFkX2hhbmRsZS0+dGg7CisgIG9tcGRfd29yZF90IHRlbXBfb2Zmc2V0Owor ICBvbXBkX2FkZHJlc3NfdCB0ZW1wX3N5bV9hZGRyOworICBvbXBkX2FkZHJfdCB0ZW1wX2FkZHI7 CisgIG9tcGRfYWRkcmVzc19zcGFjZV9jb250ZXh0X3QgKmNvbnRleHQgPSB0aHJlYWRfaGFuZGxl LT5haC0+Y29udGV4dDsKKyAgb21wZF90aHJlYWRfY29udGV4dF90ICp0X2NvbnRleHQgPSB0aHJl YWRfaGFuZGxlLT50aHJlYWRfY29udGV4dDsgCisgIG9tcGRfcmNfdCByZXQ7CisgIC8qIGdvbXBf dGhyZWFkLT50YXNrLiAgKi8KKyAgQUNDRVNTX1ZBTFVFIChjb250ZXh0LCB0X2NvbnRleHQsICJn b21wZF9hY2Nlc3NfZ29tcF90aHJlYWRfdGFzayIsCisgICAgICAgICAgICAgICAgdGVtcF9vZmZz ZXQsIDEsIHJldCwgc3ltYm9sX2FkZHIsIHRlbXBfc3ltX2FkZHIsIHRlbXBfYWRkcik7CisgIC8q IGdvbXBfdGhyZWFkLT50YXNrLT50YXNrX2ljdi4gICovCisgIEFDQ0VTU19WQUxVRSAoY29udGV4 dCwgdF9jb250ZXh0LCAiZ29tcGRfYWNjZXNzX2dvbXBfdGFza19pY3YiLCB0ZW1wX29mZnNldCwK KyAgICAgICAgICAgICAgICAxLCByZXQsIHN5bWJvbF9hZGRyLCB0ZW1wX3N5bV9hZGRyLCB0ZW1w X2FkZHIpOworICAvKiBnb21wX3RocmVhZC0+dGFzay0+dGFza19pY3YuZGVmYXVsdF9kZXZpY2Vf dmFyLiAgKi8KKyAgQUNDRVNTX1ZBTFVFIChjb250ZXh0LCB0X2NvbnRleHQsCisgICAgICAgICAg ICAgICAgImdvbXBkX2FjY2Vzc19nb21wX3Rhc2tfaWN2X2RlZmF1bHRfZGV2aWNlX3ZhciIsIHRl bXBfb2Zmc2V0LCAwLAorICAgICAgICAgICAgICAgIHJldCwgc3ltYm9sX2FkZHIsIHRlbXBfc3lt X2FkZHIsIHRlbXBfYWRkcik7CisgIERFUkVGRVJFTkNFIChjb250ZXh0LCB0X2NvbnRleHQsIHN5 bWJvbF9hZGRyLCB0YXJnZXRfc2l6ZXMuc2l6ZW9mX2ludCwgMSwKKyAgICAgICAgICAgICAgIHJl cywgcmV0LCAwKTsKKyAgKmRlZmFsdXRfZGV2aWNlX3ZhciA9IHJlczsKKyAgcmV0dXJuIG9tcGRf cmNfb2s7Cit9CisKK29tcGRfcmNfdAorZ29tcGRfZ2V0X2R5bmFtaWMgKG9tcGRfdGhyZWFkX2hh bmRsZV90ICp0aHJlYWRfaGFuZGxlLCBvbXBkX3dvcmRfdCAqZHluX3ZhcikKK3sKKyAgLyogZ29t cF90aHJlYWQtPnRhc2stPmdvbXBfdGFza19pY3YuZHluX3Zhci4gICovCisgIGlmICh0aHJlYWRf aGFuZGxlID09IE5VTEwpCisgICAgcmV0dXJuIG9tcGRfcmNfc3RhbGVfaGFuZGxlOworICBpZiAo ZHluX3ZhciA9PSBOVUxMKQorICAgIHJldHVybiBvbXBkX3JjX2JhZF9pbnB1dDsKKyAgQ0hFQ0sg KHRocmVhZF9oYW5kbGUtPmFoKTsKKworICBvbXBkX3dvcmRfdCByZXMgPSAwOworICBvbXBkX2Fk ZHJlc3NfdCBzeW1ib2xfYWRkciA9IHRocmVhZF9oYW5kbGUtPnRoOworICBvbXBkX3dvcmRfdCB0 ZW1wX29mZnNldDsKKyAgb21wZF9hZGRyZXNzX3QgdGVtcF9zeW1fYWRkcjsKKyAgb21wZF9hZGRy X3QgdGVtcF9hZGRyOworICBvbXBkX2FkZHJlc3Nfc3BhY2VfY29udGV4dF90ICpjb250ZXh0ID0g dGhyZWFkX2hhbmRsZS0+YWgtPmNvbnRleHQ7CisgIG9tcGRfdGhyZWFkX2NvbnRleHRfdCAqdF9j b250ZXh0ID0gdGhyZWFkX2hhbmRsZS0+dGhyZWFkX2NvbnRleHQ7IAorICBvbXBkX3JjX3QgcmV0 OworICAvKiBnb21wX3RocmVhZC0+dGFzay4gICovCisgIEFDQ0VTU19WQUxVRSAoY29udGV4dCwg dF9jb250ZXh0LCAiZ29tcGRfYWNjZXNzX2dvbXBfdGhyZWFkX3Rhc2siLAorICAgICAgICAgICAg ICAgIHRlbXBfb2Zmc2V0LCAxLCByZXQsIHN5bWJvbF9hZGRyLCB0ZW1wX3N5bV9hZGRyLCB0ZW1w X2FkZHIpOworICAvKiBnb21wX3RocmVhZC0+dGFzay0+dGFza19pY3YuICAqLworICBBQ0NFU1Nf VkFMVUUgKGNvbnRleHQsIHRfY29udGV4dCwgImdvbXBkX2FjY2Vzc19nb21wX3Rhc2tfaWN2Iiwg dGVtcF9vZmZzZXQsCisgICAgICAgICAgICAgICAgMSwgcmV0LCBzeW1ib2xfYWRkciwgdGVtcF9z eW1fYWRkciwgdGVtcF9hZGRyKTsKKyAgLyogZ29tcF90aHJlYWQtPnRhc2stPnRhc2tfaWN2LmR5 bl92YXIuICAqLworICBBQ0NFU1NfVkFMVUUgKGNvbnRleHQsIHRfY29udGV4dCwgImdvbXBkX2Fj Y2Vzc19nb21wX3Rhc2tfaWN2X2R5bl92YXIiLAorICAgICAgICAgICAgICAgIHRlbXBfb2Zmc2V0 LCAwLCByZXQsIHN5bWJvbF9hZGRyLCB0ZW1wX3N5bV9hZGRyLCB0ZW1wX2FkZHIpOworICBERVJF RkVSRU5DRSAoY29udGV4dCwgdF9jb250ZXh0LCBzeW1ib2xfYWRkciwgdGFyZ2V0X3NpemVzLnNp emVvZl9jaGFyLCAxLAorICAgICAgICAgICAgICAgcmVzLCByZXQsIDApOworICAqZHluX3ZhciA9 IHJlczsKKyAgcmV0dXJuIG9tcGRfcmNfb2s7Cit9CisvKiBFbmQgb2YgcGVyIHRocmVhZCBJQ1Zz LiAgKi8KKworCisvKiBHZXQgcGVyIHRhc2sgSUNWcy4gICovCisKK29tcGRfcmNfdAorZ29tcGRf Z2V0X3RocmVhZF9saW1pdCAob21wZF90YXNrX2hhbmRsZV90ICp0YXNrX2hhbmRsZSwKKyAgICAg ICAgICAgICAgICAgICAgICAgIG9tcGRfd29yZF90ICp0aHJlYWRfbGltaXRfdmFyKQoreworICAv KiBnb21wX3Rhc2stPmdvbXBfdGFza19pY3YudGhyZWFkX2xpbWl0X3Zhci4gICovCisgIGlmICh0 YXNrX2hhbmRsZSA9PSBOVUxMKQorICAgIHJldHVybiBvbXBkX3JjX3N0YWxlX2hhbmRsZTsKKyAg aWYgKHRocmVhZF9saW1pdF92YXIgPT0gTlVMTCkKKyAgICByZXR1cm4gb21wZF9yY19iYWRfaW5w dXQ7CisgIENIRUNLICh0YXNrX2hhbmRsZS0+YWgpOworCisgIG9tcGRfd29yZF90IHJlcyA9IDA7 CisgIG9tcGRfYWRkcmVzc190IHN5bWJvbF9hZGRyID0gdGFza19oYW5kbGUtPnRoOworICBvbXBk X3dvcmRfdCB0ZW1wX29mZnNldDsKKyAgb21wZF9hZGRyZXNzX3QgdGVtcF9zeW1fYWRkcjsKKyAg b21wZF9hZGRyX3QgdGVtcF9hZGRyOworICBvbXBkX2FkZHJlc3Nfc3BhY2VfY29udGV4dF90ICpj b250ZXh0ID0gdGFza19oYW5kbGUtPmFoLT5jb250ZXh0OworICBvbXBkX3JjX3QgcmV0OworICAv KiBnb21wX3Rhc2stPnRhc2tfaWN2LiAgKi8KKyAgQUNDRVNTX1ZBTFVFIChjb250ZXh0LCBOVUxM LCAiZ29tcGRfYWNjZXNzX2dvbXBfdGFza19pY3YiLCB0ZW1wX29mZnNldCwKKyAgICAgICAgICAg ICAgICAxLCByZXQsIHN5bWJvbF9hZGRyLCB0ZW1wX3N5bV9hZGRyLCB0ZW1wX2FkZHIpOworICAv KiBnb21wX3Rhc2stPnRhc2tfaWN2LnRocmVkX2xpbWl0X3Zhci4gICovCisgIEFDQ0VTU19WQUxV RSAoY29udGV4dCwgTlVMTCwKKyAgICAgICAgICAgICAgICAiZ29tcGRfYWNjZXNzX2dvbXBfdGFz a19pY3ZfdGhyZWFkX2xpbWl0X3ZhciIsIHRlbXBfb2Zmc2V0LCAwLAorICAgICAgICAgICAgICAg IHJldCwgc3ltYm9sX2FkZHIsIHRlbXBfc3ltX2FkZHIsIHRlbXBfYWRkcik7CisgIERFUkVGRVJF TkNFIChjb250ZXh0LCBOVUxMLCBzeW1ib2xfYWRkciwgdGFyZ2V0X3NpemVzLnNpemVvZl9pbnQs IDEsCisgICAgICAgICAgICAgICByZXMsIHJldCwgMCk7CisgICp0aHJlYWRfbGltaXRfdmFyID0g cmVzOworICByZXR1cm4gb21wZF9yY19vazsKK30KKworb21wZF9yY190Citnb21wZF9nZXRfcnVu X3NjaGVkX2NodW5rX3NpemUgKG9tcGRfdGFza19oYW5kbGVfdCAqdGFza19oYW5kbGUsCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9tcGRfd29yZF90ICpydW5fc2NoZWRfY2h1bmtf c2l6ZSkKK3sKKyAgLyogZ29tcF90YXNrLT5nb21wX3Rhc2tfaWN2LnJ1bl9zY2hlZF9jaHVua19z aXplLiAgKi8KKyAgaWYgKHRhc2tfaGFuZGxlID09IE5VTEwpCisgICAgcmV0dXJuIG9tcGRfcmNf c3RhbGVfaGFuZGxlOworICBpZiAocnVuX3NjaGVkX2NodW5rX3NpemUgPT0gTlVMTCkKKyAgICBy ZXR1cm4gb21wZF9yY19iYWRfaW5wdXQ7CisgIENIRUNLICh0YXNrX2hhbmRsZS0+YWgpOworCisg IG9tcGRfd29yZF90IHJlcyA9IDA7CisgIG9tcGRfYWRkcmVzc190IHN5bWJvbF9hZGRyID0gdGFz a19oYW5kbGUtPnRoOworICBvbXBkX3dvcmRfdCB0ZW1wX29mZnNldDsKKyAgb21wZF9hZGRyZXNz X3QgdGVtcF9zeW1fYWRkcjsKKyAgb21wZF9hZGRyX3QgdGVtcF9hZGRyOworICBvbXBkX2FkZHJl c3Nfc3BhY2VfY29udGV4dF90ICpjb250ZXh0ID0gdGFza19oYW5kbGUtPmFoLT5jb250ZXh0Owor ICBvbXBkX3JjX3QgcmV0OworICAvKiBnb21wX3Rhc2stPnRhc2tfaWN2LiAgKi8KKyAgQUNDRVNT X1ZBTFVFIChjb250ZXh0LCBOVUxMLCAiZ29tcGRfYWNjZXNzX2dvbXBfdGFza19pY3YiLCB0ZW1w X29mZnNldCwKKyAgICAgICAgICAgICAgICAxLCByZXQsIHN5bWJvbF9hZGRyLCB0ZW1wX3N5bV9h ZGRyLCB0ZW1wX2FkZHIpOworICAvKiBnb21wX3Rhc2stPnRhc2tfaWN2LnJ1bl9zY2hlZF9jaHVu a19zaXplLiAgKi8KKyAgQUNDRVNTX1ZBTFVFIChjb250ZXh0LCBOVUxMLAorICAgICAgICAgICAg ICAgICJnb21wZF9hY2Nlc3NfZ29tcF90YXNrX2ljdl9ydW5fc2NoZWRfY2h1bmtfc2l6ZSIsIHRl bXBfb2Zmc2V0LAorICAgICAgICAgICAgICAgIDAsIHJldCwgc3ltYm9sX2FkZHIsIHRlbXBfc3lt X2FkZHIsIHRlbXBfYWRkcik7CisgIERFUkVGRVJFTkNFIChjb250ZXh0LCBOVUxMLCBzeW1ib2xf YWRkciwgdGFyZ2V0X3NpemVzLnNpemVvZl9pbnQsIDEsCisgICAgICAgICAgICAgICByZXMsIHJl dCwgMCk7CisgICpydW5fc2NoZWRfY2h1bmtfc2l6ZSA9IHJlczsKKyAgcmV0dXJuIG9tcGRfcmNf b2s7Cit9CisKK29tcGRfcmNfdAorZ29tcGRfZ2V0X3J1bl9zY2hlZCAob21wZF90YXNrX2hhbmRs ZV90ICp0YXNrX2hhbmRsZSwKKyAgICAgICAgICAgICAgICAgICAgIG9tcGRfd29yZF90ICpydW5f c2NoZWRfdmFyKQoreworICAvKiBnb21wX3Rhc2stPmdvbXBfdGFza19pY3YucnVuX3NjaGVkX3Zh ci4gICovCisgIGlmICh0YXNrX2hhbmRsZSA9PSBOVUxMKQorICAgIHJldHVybiBvbXBkX3JjX3N0 YWxlX2hhbmRsZTsKKyAgaWYgKHJ1bl9zY2hlZF92YXIgPT0gTlVMTCkKKyAgICByZXR1cm4gb21w ZF9yY19iYWRfaW5wdXQ7CisgIENIRUNLICh0YXNrX2hhbmRsZS0+YWgpOworCisgIG9tcGRfd29y ZF90IHJlcyA9IDA7CisgIG9tcGRfYWRkcmVzc190IHN5bWJvbF9hZGRyID0gdGFza19oYW5kbGUt PnRoOworICBvbXBkX3dvcmRfdCB0ZW1wX29mZnNldDsKKyAgb21wZF9hZGRyZXNzX3QgdGVtcF9z eW1fYWRkcjsKKyAgb21wZF9hZGRyX3QgdGVtcF9hZGRyOworICBvbXBkX2FkZHJlc3Nfc3BhY2Vf Y29udGV4dF90ICpjb250ZXh0ID0gdGFza19oYW5kbGUtPmFoLT5jb250ZXh0OworICBvbXBkX3Jj X3QgcmV0OworICAvKiBnb21wX3Rhc2stPnRhc2tfaWN2LiAgKi8KKyAgQUNDRVNTX1ZBTFVFIChj b250ZXh0LCBOVUxMLCAiZ29tcGRfYWNjZXNzX2dvbXBfdGFza19pY3YiLCB0ZW1wX29mZnNldCwK KyAgICAgICAgICAgICAgICAxLCByZXQsIHN5bWJvbF9hZGRyLCB0ZW1wX3N5bV9hZGRyLCB0ZW1w X2FkZHIpOworICAvKiBnb21wX3Rhc2stPnRhc2tfaWN2LnJ1bl9zY2hlZF92YXIuICAqLworICBB Q0NFU1NfVkFMVUUgKGNvbnRleHQsIE5VTEwsICJnb21wZF9hY2Nlc3NfZ29tcF90YXNrX2ljdl9y dW5fc2NoZWRfdmFyIiwKKyAgICAgICAgICAgICAgICB0ZW1wX29mZnNldCwgMCwgcmV0LCBzeW1i b2xfYWRkciwgdGVtcF9zeW1fYWRkciwgdGVtcF9hZGRyKTsKKyAgREVSRUZFUkVOQ0UgKGNvbnRl eHQsIE5VTEwsIHN5bWJvbF9hZGRyLCB0YXJnZXRfc2l6ZXMuc2l6ZW9mX2ludCwgMSwKKyAgICAg ICAgICAgICAgIHJlcywgcmV0LCAwKTsKKyAgKnJ1bl9zY2hlZF92YXIgPSByZXM7CisgIHJldHVy biBvbXBkX3JjX29rOworfQorCitvbXBkX3JjX3QKK2dvbXBkX2dldF9tYXhfYWN0aXZlX2xldmVs cyAob21wZF90YXNrX2hhbmRsZV90ICp0YXNrX2hhbmRsZSwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgb21wZF93b3JkX3QgKm1heF9hY3RpdmVfbGV2ZWxzX3ZhcikKK3sKKyAgLyogZ29t cF90YXNrLT5nb21wX3Rhc2tfaWN2Lm1heF9hY3RpdmVfbGV2ZWxzX3Zhci4gICovCisgIGlmICh0 YXNrX2hhbmRsZSA9PSBOVUxMKQorICAgIHJldHVybiBvbXBkX3JjX3N0YWxlX2hhbmRsZTsKKyAg aWYgKG1heF9hY3RpdmVfbGV2ZWxzX3ZhciA9PSBOVUxMKQorICAgIHJldHVybiBvbXBkX3JjX2Jh ZF9pbnB1dDsKKyAgQ0hFQ0sgKHRhc2tfaGFuZGxlLT5haCk7CisKKyAgb21wZF93b3JkX3QgcmVz ID0gMDsKKyAgb21wZF9hZGRyZXNzX3Qgc3ltYm9sX2FkZHIgPSB0YXNrX2hhbmRsZS0+dGg7Cisg IG9tcGRfd29yZF90IHRlbXBfb2Zmc2V0OworICBvbXBkX2FkZHJlc3NfdCB0ZW1wX3N5bV9hZGRy OworICBvbXBkX2FkZHJfdCB0ZW1wX2FkZHI7CisgIG9tcGRfYWRkcmVzc19zcGFjZV9jb250ZXh0 X3QgKmNvbnRleHQgPSB0YXNrX2hhbmRsZS0+YWgtPmNvbnRleHQ7CisgIG9tcGRfcmNfdCByZXQ7 CisgIC8qIGdvbXBfdGFzay0+dGFza19pY3YuICAqLworICBBQ0NFU1NfVkFMVUUgKGNvbnRleHQs IE5VTEwsICJnb21wZF9hY2Nlc3NfZ29tcF90YXNrX2ljdiIsIHRlbXBfb2Zmc2V0LAorICAgICAg ICAgICAgICAgIDEsIHJldCwgc3ltYm9sX2FkZHIsIHRlbXBfc3ltX2FkZHIsIHRlbXBfYWRkcik7 CisgIC8qIGdvbXBfdGFzay0+dGFza19pY3YucnVuX3NjaGVkX3Zhci4gICovCisgIEFDQ0VTU19W QUxVRSAoY29udGV4dCwgTlVMTCwKKyAgICAgICAgICAgICAgICAiZ29tcGRfYWNjZXNzX2dvbXBf dGFza19pY3ZfbWF4X2FjdGl2ZV9sZXZlbHNfdmFyIiwgdGVtcF9vZmZzZXQsCisgICAgICAgICAg ICAgICAgMCwgcmV0LCBzeW1ib2xfYWRkciwgdGVtcF9zeW1fYWRkciwgdGVtcF9hZGRyKTsKKyAg REVSRUZFUkVOQ0UgKGNvbnRleHQsIE5VTEwsIHN5bWJvbF9hZGRyLCB0YXJnZXRfc2l6ZXMuc2l6 ZW9mX2NoYXIsIDEsCisgICAgICAgICAgICAgICByZXMsIHJldCwgMCk7CisgICptYXhfYWN0aXZl X2xldmVsc192YXIgPSByZXM7CisgIHJldHVybiBvbXBkX3JjX29rOworfQorCitvbXBkX3JjX3QK K2dvbXBkX2dldF9wcm9jX2JpbmQgKG9tcGRfdGFza19oYW5kbGVfdCAqdGFza19oYW5kbGUsIG9t cGRfd29yZF90ICpiaW5kX3ZhcikKK3sKKyAgLyogZ29tcF90YXNrLT5nb21wX3Rhc2tfaWN2LmJp bmRfdmFyLiAgKi8KKyAgaWYgKHRhc2tfaGFuZGxlID09IE5VTEwpCisgICAgcmV0dXJuIG9tcGRf cmNfc3RhbGVfaGFuZGxlOworICBpZiAoYmluZF92YXIgPT0gTlVMTCkKKyAgICByZXR1cm4gb21w ZF9yY19iYWRfaW5wdXQ7CisgIENIRUNLICh0YXNrX2hhbmRsZS0+YWgpOworCisgIG9tcGRfd29y ZF90IHJlcyA9IDA7CisgIG9tcGRfYWRkcmVzc190IHN5bWJvbF9hZGRyID0gdGFza19oYW5kbGUt PnRoOworICBvbXBkX3dvcmRfdCB0ZW1wX29mZnNldDsKKyAgb21wZF9hZGRyZXNzX3QgdGVtcF9z eW1fYWRkcjsKKyAgb21wZF9hZGRyX3QgdGVtcF9hZGRyOworICBvbXBkX2FkZHJlc3Nfc3BhY2Vf Y29udGV4dF90ICpjb250ZXh0ID0gdGFza19oYW5kbGUtPmFoLT5jb250ZXh0OworICBvbXBkX3Jj X3QgcmV0OworICAvKiBnb21wX3Rhc2stPnRhc2tfaWN2LiAgKi8KKyAgQUNDRVNTX1ZBTFVFIChj b250ZXh0LCBOVUxMLCAiZ29tcGRfYWNjZXNzX2dvbXBfdGFza19pY3YiLCB0ZW1wX29mZnNldCwK KyAgICAgICAgICAgICAgICAxLCByZXQsIHN5bWJvbF9hZGRyLCB0ZW1wX3N5bV9hZGRyLCB0ZW1w X2FkZHIpOworICAvKiBnb21wX3Rhc2stPnRhc2tfaWN2LmJpbmRfdmFyLiAgKi8KKyAgQUNDRVNT X1ZBTFVFIChjb250ZXh0LCBOVUxMLCAiZ29tcGRfYWNjZXNzX2dvbXBfdGFza19pY3ZfYmluZF92 YXIiLAorICAgICAgICAgICAgICAgIHRlbXBfb2Zmc2V0LCAwLCByZXQsIHN5bWJvbF9hZGRyLCB0 ZW1wX3N5bV9hZGRyLCB0ZW1wX2FkZHIpOworICBERVJFRkVSRU5DRSAoY29udGV4dCwgTlVMTCwg c3ltYm9sX2FkZHIsIHRhcmdldF9zaXplcy5zaXplb2ZfY2hhciwgMSwKKyAgICAgICAgICAgICAg IHJlcywgcmV0LCAwKTsKKyAgKmJpbmRfdmFyID0gcmVzOworICByZXR1cm4gb21wZF9yY19vazsK K30KKworb21wZF9yY190Citnb21wZF9pc19maW5hbCAob21wZF90YXNrX2hhbmRsZV90ICp0YXNr X2hhbmRsZSwgb21wZF93b3JkX3QgKmZpbmFsX3Rhc2spCit7CisgIC8qIGdvbXBfdGFzay0+Zmlu YWxfdGFzay4gICovCisgIGlmICh0YXNrX2hhbmRsZSA9PSBOVUxMKQorICAgIHJldHVybiBvbXBk X3JjX3N0YWxlX2hhbmRsZTsKKyAgaWYgKGZpbmFsX3Rhc2sgPT0gTlVMTCkKKyAgICByZXR1cm4g b21wZF9yY19iYWRfaW5wdXQ7CisgIENIRUNLICh0YXNrX2hhbmRsZS0+YWgpOworICAKKyAgb21w ZF93b3JkX3QgcmVzID0gMDsKKyAgb21wZF9hZGRyZXNzX3Qgc3ltYm9sX2FkZHIgPSB0YXNrX2hh bmRsZS0+dGg7CisgIG9tcGRfd29yZF90IHRlbXBfb2Zmc2V0OworICBvbXBkX2FkZHJlc3NfdCB0 ZW1wX3N5bV9hZGRyOworICBvbXBkX2FkZHJfdCB0ZW1wX2FkZHI7CisgIG9tcGRfYWRkcmVzc19z cGFjZV9jb250ZXh0X3QgKmNvbnRleHQgPSB0YXNrX2hhbmRsZS0+YWgtPmNvbnRleHQ7CisgIG9t cGRfcmNfdCByZXQ7CisgIC8qIGdvbXBfdGFzay0+ZmluYWxfdGFzay4gICovCisgIEFDQ0VTU19W QUxVRSAoY29udGV4dCwgTlVMTCwgImdvbXBkX2FjY2Vzc19nb21wX3Rhc2tfZmluYWxfdGFzayIs IHRlbXBfb2Zmc2V0LAorICAgICAgICAgICAgICAgIDEsIHJldCwgc3ltYm9sX2FkZHIsIHRlbXBf c3ltX2FkZHIsIHRlbXBfYWRkcik7CisgIERFUkVGRVJFTkNFIChjb250ZXh0LCBOVUxMLCBzeW1i b2xfYWRkciwgdGFyZ2V0X3NpemVzLnNpemVvZl9jaGFyLCAxLAorICAgICAgICAgICAgICAgcmVz LCByZXQsIDApOworICAqZmluYWxfdGFzayA9IHJlczsKKyAgcmV0dXJuIG9tcGRfcmNfb2s7Cit9 CisKK29tcGRfcmNfdAorZ29tcGRfaXNfaW1wbGljaXQgKG9tcGRfdGFza19oYW5kbGVfdCAqdGFz a19oYW5kbGUsIG9tcGRfd29yZF90ICp0YXNrX2tpbmQpCit7CisgIC8qIGdvbXBfdGFzay0+a2lu ZC4gICovCisgIGlmICh0YXNrX2hhbmRsZSA9PSBOVUxMKQorICAgIHJldHVybiBvbXBkX3JjX3N0 YWxlX2hhbmRsZTsKKyAgaWYgKHRhc2tfa2luZCA9PSBOVUxMKQorICAgIHJldHVybiBvbXBkX3Jj X2JhZF9pbnB1dDsKKyAgQ0hFQ0sgKHRhc2tfaGFuZGxlLT5haCk7CisKKyAgb21wZF93b3JkX3Qg cmVzID0gLTE7CisgIG9tcGRfYWRkcmVzc190IHN5bWJvbF9hZGRyID0gdGFza19oYW5kbGUtPnRo OworICBvbXBkX3dvcmRfdCB0ZW1wX29mZnNldDsKKyAgb21wZF9hZGRyZXNzX3QgdGVtcF9zeW1f YWRkcjsKKyAgb21wZF9hZGRyX3QgdGVtcF9hZGRyOworICBvbXBkX2FkZHJlc3Nfc3BhY2VfY29u dGV4dF90ICpjb250ZXh0ID0gdGFza19oYW5kbGUtPmFoLT5jb250ZXh0OworICBvbXBkX3JjX3Qg cmV0OworICAvKiBnb21wX3Rhc2stPmtpbmQuICAqLworICBBQ0NFU1NfVkFMVUUgKGNvbnRleHQs IE5VTEwsICJnb21wZF9hY2Nlc3NfZ29tcF90YXNrX2tpbmQiLCB0ZW1wX29mZnNldCwgMSwKKyAg ICAgICAgICAgICAgICByZXQsIHN5bWJvbF9hZGRyLCB0ZW1wX3N5bV9hZGRyLCB0ZW1wX2FkZHIp OworICBERVJFRkVSRU5DRSAoY29udGV4dCwgTlVMTCwgc3ltYm9sX2FkZHIsIHRhcmdldF9zaXpl cy5zaXplb2ZfaW50LCAxLCByZXMsCisgICAgICAgICAgICAgICByZXQsIDApOworICAvKiBpZiB0 YXNrIGlzIGltcGxpY2l0LCB0aGVuIHJlcyA9IDAuICAqLworICByZXMgPSByZXMgPyAtMTogMDsK KyAgKnRhc2tfa2luZCA9IHJlczsKKyAgcmV0dXJuIG9tcGRfcmNfb2s7Cit9CisvKiBFbmQgb2Yg dGFzayBJQ1ZzLiAgKi8KKworLyogZ2V0IHBlciBwYXJhbGxlbCBoYW5kbGUgSUNWcy4gICovCitv bXBkX3JjX3QKK2dvbXBkX2dldF90ZWFtX3NpemUgKG9tcGRfcGFyYWxsZWxfaGFuZGxlX3QgKnBh cmFsbGVsX2hhbmRsZSwKKyAgICAgICAgICAgICAgICAgICAgIG9tcGRfd29yZF90ICpudGhyZWFk cykKK3sKKyAgLyogZ29tcF90ZWFtLT5udGhyZWFkcy4gICovCisgIGlmIChwYXJhbGxlbF9oYW5k bGUgPT0gTlVMTCkKKyAgICByZXR1cm4gb21wZF9yY19zdGFsZV9oYW5kbGU7CisgIGlmIChudGhy ZWFkcyA9PSBOVUxMKQorICAgIHJldHVybiBvbXBkX3JjX2JhZF9pbnB1dDsKKyAgQ0hFQ0sgKHBh cmFsbGVsX2hhbmRsZS0+YWgpOworCisgIG9tcGRfd29yZF90IHJlcyA9IC0xOworICBvbXBkX2Fk ZHJlc3NfdCBzeW1ib2xfYWRkciA9IHBhcmFsbGVsX2hhbmRsZS0+dGg7CisgIG9tcGRfd29yZF90 IHRlbXBfb2Zmc2V0OworICBvbXBkX2FkZHJlc3NfdCB0ZW1wX3N5bV9hZGRyOworICBvbXBkX2Fk ZHJfdCB0ZW1wX2FkZHI7CisgIG9tcGRfYWRkcmVzc19zcGFjZV9jb250ZXh0X3QgKmNvbnRleHQg PSBwYXJhbGxlbF9oYW5kbGUtPmFoLT5jb250ZXh0OworICBvbXBkX3JjX3QgcmV0OworICAvKiBn b21wX3RlYW0tPm50aHJlYWRzLiAgKi8KKyAgQUNDRVNTX1ZBTFVFIChjb250ZXh0LCBOVUxMLCAi Z29tcGRfYWNjZXNzX2dvbXBfdGVhbV9udGhyZWFkcyIsIHRlbXBfb2Zmc2V0LAorICAgICAgICAg ICAgICAgIDEsIHJldCwgc3ltYm9sX2FkZHIsIHRlbXBfc3ltX2FkZHIsIHRlbXBfYWRkcik7Cisg IERFUkVGRVJFTkNFIChjb250ZXh0LCBOVUxMLCBzeW1ib2xfYWRkciwgdGFyZ2V0X3NpemVzLnNp emVvZl9pbnQsIDEsCisgICAgICAgICAgICAgICByZXMsIHJldCwgMCk7CisgICpudGhyZWFkcyA9 IHJlczsKKyAgcmV0dXJuIG9tcGRfcmNfb2s7Cit9CisvKiBFbmQgb2YgcGFyYWxsZWwgaGFuZGxl IElDVnMuICAqLworCiBvbXBkX3JjX3QKIGdvbXBkX2dldF9zaXplcyAob21wZF9hZGRyZXNzX3Nw YWNlX2NvbnRleHRfdCAqY29udGV4dCkKIHsKZGlmZiAtLWdpdCBhL2xpYmdvbXAvb21wZC1oZWxw ZXIuaCBiL2xpYmdvbXAvb21wZC1oZWxwZXIuaAppbmRleCAyMjUxNmFmMDEyYS4uN2Y1ZmNjNjlk ZmMgMTAwNjQ0Ci0tLSBhL2xpYmdvbXAvb21wZC1oZWxwZXIuaAorKysgYi9saWJnb21wL29tcGQt aGVscGVyLmgKQEAgLTkwLDYgKzkwLDI5IEBAIHR5cGVkZWYgc3RydWN0IF9vbXBkX3Rhc2tfaGFu ZGxlCiAgICAgQ0hFQ0tfUkVUIChyZXQpOyBcCiAgIH0gd2hpbGUgKDApCiAKKyNkZWZpbmUgREVS RUZFUkVOQ0UoY29udGV4dCwgdGhyZWFkX2NvbnRleHQsIHN5bWJvbF9hZGRyLCBzaXplLCBjb3Vu dCxcCisgIGJ1ZmYsIHJldCwgaXNfcHRyKSBcCisgIGRvIHtcCisgICAgcmV0ID0gY2FsbGJhY2tz LT5yZWFkX21lbW9yeSAoY29udGV4dCwgdGhyZWFkX2NvbnRleHQsICZzeW1ib2xfYWRkciwgXAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemUsICZidWZmKTsgXAorICAgIENI RUNLX1JFVCAocmV0KTsgXAorICAgIHJldCA9IGNhbGxiYWNrcy0+ZGV2aWNlX3RvX2hvc3QgKGNv bnRleHQsICZidWZmLCBzaXplLCBjb3VudCwgJmJ1ZmYpOyBcCisgICAgQ0hFQ0tfUkVUIChyZXQp OyBcCisgICAgaWYgKGlzX3B0cikgXAorICAgICAgc3ltYm9sX2FkZHIuYWRkcmVzcyA9IGJ1ZmY7 IFwKKyAgfSB3aGlsZSAoMCk7CisKKyNkZWZpbmUgQUNDRVNTX1ZBTFVFKGNvbnRleHQsIHRocmVh ZF9jb250ZXh0LCBuYW1lLCB0ZW1wX29mZnNldCwgXAorICBhY2Nlc3NfcG9pbnRlciwgcmV0LCBz eW1ib2xfYWRkciwgdGVtcF9zeW1fYWRkciwgdGVtcF9hZGRyKSBcCisgIGRvIHsgXAorICAgIEdF VF9WQUxVRSAoY29udGV4dCwgdGhyZWFkX2NvbnRleHQsIG5hbWUsIHRlbXBfb2Zmc2V0LCB0ZW1w X29mZnNldCwgXAorICAgICAgICAgICAgICAgdGFyZ2V0X3NpemVzLnNpemVvZl9zaG9ydCwgMSwg cmV0LCB0ZW1wX3N5bV9hZGRyKTsgXAorICAgIHN5bWJvbF9hZGRyLmFkZHJlc3MgKz0gdGVtcF9v ZmZzZXQ7IFwKKyAgICBmb3IgKGludCBpID0gMDsgaSA8IGFjY2Vzc19wb2ludGVyOyBpKyspIFwK KyAgICAgIERFUkVGRVJFTkNFIChjb250ZXh0LCB0aHJlYWRfY29udGV4dCwgc3ltYm9sX2FkZHIs IFwKKyAgICAgICAgICAgICAgICAgICB0YXJnZXRfc2l6ZXMuc2l6ZW9mX3BvaW50ZXIsIDEsIHRl bXBfYWRkciwgcmV0LCAxKTsgXAorICB9IHdoaWxlICgwKTsKKwogI2RlZmluZSBDSEVDSyhhaCkg XAogICBkbyB7ICAgXAogICAgIGlmIChhaCA9PSBOVUxMIHx8IGFoLT5jb250ZXh0ID09IE5VTEwp IFwKZGlmZiAtLWdpdCBhL2xpYmdvbXAvb21wZC1pY3YuYyBiL2xpYmdvbXAvb21wZC1pY3YuYwpp bmRleCA3ZjE5OGQxNjM4ZC4uNzQ2MTA4ZWM2MzIgMTAwNjQ0Ci0tLSBhL2xpYmdvbXAvb21wZC1p Y3YuYworKysgYi9saWJnb21wL29tcGQtaWN2LmMKQEAgLTk3LDcgKzk3LDEzIEBAIG9tcGRfZ2V0 X2ljdl9mcm9tX3Njb3BlICh2b2lkICpoYW5kbGUsIG9tcGRfc2NvcGVfdCBzY29wZSwgb21wZF9p Y3ZfaWRfdCBpY3ZfaWQsCiAgICAgfQogICAvKiBObyBvZmZsb2FkaW5nIHN1cHBvcnQgZm9yIG5v dy4gICovCiAgIG9tcGRfYWRkcmVzc19zcGFjZV9oYW5kbGVfdCAqYXNoYW5kbGUKLSAgICA9IChv bXBkX2FkZHJlc3Nfc3BhY2VfaGFuZGxlX3QgKiloYW5kbGU7CisgICAgPSAob21wZF9hZGRyZXNz X3NwYWNlX2hhbmRsZV90ICopIGhhbmRsZTsKKyAgb21wZF90aHJlYWRfaGFuZGxlX3QgKnRocmVh ZF9oYW5kbGUKKyAgICA9IChvbXBkX3RocmVhZF9oYW5kbGVfdCAqKSBoYW5kbGU7CisgIG9tcGRf dGFza19oYW5kbGVfdCAqdGFza19oYW5kbGUKKyAgICA9IChvbXBkX3Rhc2tfaGFuZGxlX3QgKikg aGFuZGxlOworICBvbXBkX3BhcmFsbGVsX2hhbmRsZV90ICpwYXJhbGxlbF9oYW5kbGUKKyAgICA9 IChvbXBkX3BhcmFsbGVsX2hhbmRsZV90ICopIGhhbmRsZTsKICAgaWYgKGRldmljZSA9PSBPTVBE X0RFVklDRV9LSU5EX0hPU1QpCiAgICAgewogICAgICAgc3dpdGNoIChpY3ZfaWQpCkBAIC0xMzAs NiArMTM2LDI4IEBAIG9tcGRfZ2V0X2ljdl9mcm9tX3Njb3BlICh2b2lkICpoYW5kbGUsIG9tcGRf c2NvcGVfdCBzY29wZSwgb21wZF9pY3ZfaWRfdCBpY3ZfaWQsCiAJICAgIHJldHVybiBnb21wZF9n ZXRfdGhyb3R0bGVkX3NwaW5fY291bnQgKGFzaGFuZGxlLCBpY3ZfdmFsdWUpOwogCSAgY2FzZSBn b21wZF9pY3ZfbWFuYWdlZF90aHJlYWRzX3ZhcjoKIAkgICAgcmV0dXJuIGdvbXBkX2dldF9tYW5h Z2VkX3RocmVhZHMgKGFzaGFuZGxlLCBpY3ZfdmFsdWUpOworICAgICAgICAgIGNhc2UgZ29tcGRf aWN2X250aHJlYWRzX3ZhcjoKKyAgICAgICAgICAgIHJldHVybiBnb21wZF9nZXRfbnRocmVhZCAo dGhyZWFkX2hhbmRsZSwgaWN2X3ZhbHVlKTsKKyAgICAgICAgICBjYXNlIGdvbXBkX2ljdl9kZWZh dWx0X2RldmljZV92YXI6CisgICAgICAgICAgICByZXR1cm4gZ29tcGRfZ2V0X2RlZmF1bHRfZGV2 aWNlICh0aHJlYWRfaGFuZGxlLCBpY3ZfdmFsdWUpOworICAgICAgICAgIGNhc2UgZ29tcGRfaWN2 X2R5bl92YXI6CisgICAgICAgICAgICByZXR1cm4gZ29tcGRfZ2V0X2R5bmFtaWMgKHRocmVhZF9o YW5kbGUsIGljdl92YWx1ZSk7CisgICAgICAgICAgY2FzZSBnb21wZF9pY3ZfdGhyZWFkX2xpbWl0 X3ZhcjoKKyAgICAgICAgICAgIHJldHVybiBnb21wZF9nZXRfdGhyZWFkX2xpbWl0ICh0YXNrX2hh bmRsZSwgaWN2X3ZhbHVlKTsKKyAgICAgICAgICBjYXNlIGdvbXBkX2ljdl9ydW5fc2NoZWRfY2h1 bmtfc2l6ZToKKyAgICAgICAgICAgIHJldHVybiBnb21wZF9nZXRfcnVuX3NjaGVkX2NodW5rX3Np emUgKHRhc2tfaGFuZGxlLCBpY3ZfdmFsdWUpOworICAgICAgICAgIGNhc2UgZ29tcGRfaWN2X3J1 bl9zY2hlZF92YXI6CisgICAgICAgICAgICByZXR1cm4gZ29tcGRfZ2V0X3J1bl9zY2hlZCAodGFz a19oYW5kbGUsIGljdl92YWx1ZSk7CisgICAgICAgICAgY2FzZSBnb21wZF9pY3ZfbWF4X2FjdGl2 ZV9sZXZlbHNfdmFyOgorICAgICAgICAgICAgcmV0dXJuIGdvbXBkX2dldF9tYXhfYWN0aXZlX2xl dmVscyAodGFza19oYW5kbGUsIGljdl92YWx1ZSk7CisgICAgICAgICAgY2FzZSBnb21wZF9pY3Zf YmluZF92YXI6CisgICAgICAgICAgICByZXR1cm4gZ29tcGRfZ2V0X3Byb2NfYmluZCAodGFza19o YW5kbGUsIGljdl92YWx1ZSk7CisgICAgICAgICAgY2FzZSBnb21wZF9pY3ZfZmluYWxfdGFza192 YXI6CisgICAgICAgICAgICByZXR1cm4gZ29tcGRfaXNfZmluYWwgKHRhc2tfaGFuZGxlLCBpY3Zf dmFsdWUpOworICAgICAgICAgIGNhc2UgZ29tcGRfaWN2X2ltcGxpY2l0X3Rhc2tfdmFyOgorICAg ICAgICAgICAgcmV0dXJuIGdvbXBkX2lzX2ltcGxpY2l0ICh0YXNrX2hhbmRsZSwgaWN2X3ZhbHVl KTsKKyAgICAgICAgICBjYXNlIGdvbXBkX2ljdl90ZWFtX3NpemVfdmFyOgorICAgICAgICAgICAg cmV0dXJuIGdvbXBkX2dldF90ZWFtX3NpemUgKHBhcmFsbGVsX2hhbmRsZSwgaWN2X3ZhbHVlKTsK IAkgIGRlZmF1bHQ6CiAJICAgIHJldHVybiBvbXBkX3JjX3Vuc3VwcG9ydGVkOwogCX0KZGlmZiAt LWdpdCBhL2xpYmdvbXAvb21wZC1pbml0LmMgYi9saWJnb21wL29tcGQtaW5pdC5jCmluZGV4IDUy ODY2ZTRhOTlkLi4xMjY3OWRmMDU2NSAxMDA2NDQKLS0tIGEvbGliZ29tcC9vbXBkLWluaXQuYwor KysgYi9saWJnb21wL29tcGQtaW5pdC5jCkBAIC04OSw3ICs4OSw3IEBAIG9tcGRfcHJvY2Vzc19p bml0aWFsaXplIChvbXBkX2FkZHJlc3Nfc3BhY2VfY29udGV4dF90ICpjb250ZXh0LAogICAvKiBO YWl2ZSB3YXkgdG8gcmVhZCBmcm9tIG1lbW9yeS4gICovCiAgIG9tcGRfYWRkcmVzc190IHN5bWJv bF9hZGRyID0ge09NUERfU0VHTUVOVF9VTlNQRUNJRklFRCwgMH07CiAgIEdFVF9WQUxVRSAoY29u dGV4dCwgTlVMTCwgImdvbXBkX3N0YXRlIiwgZ29tcGRfc3RhdGUsIGdvbXBkX3N0YXRlLAotCSAg ICAgdGFyZ2V0X3NpemVzLnNpemVvZl9sb25nX2xvbmcsIDEsIHJldCwgc3ltYm9sX2FkZHIpOwor CSAgICAgdGFyZ2V0X3NpemVzLnNpemVvZl9zaG9ydCwgMSwgcmV0LCBzeW1ib2xfYWRkcik7CiAK ICAgcmV0ID0gY2FsbGJhY2tzLT5hbGxvY19tZW1vcnkgKHNpemVvZiAob21wZF9hZGRyZXNzX3Nw YWNlX2hhbmRsZV90KSwKIAkJCQkgKHZvaWQgKiopIChoYW5kbGUpKTsKZGlmZiAtLWdpdCBhL2xp YmdvbXAvb21wZC1zdXBwb3J0LmMgYi9saWJnb21wL29tcGQtc3VwcG9ydC5jCmluZGV4IGQ4YTcx NzRiMmYzLi4xMjY4YWFjYjJlZSAxMDA2NDQKLS0tIGEvbGliZ29tcC9vbXBkLXN1cHBvcnQuYwor KysgYi9saWJnb21wL29tcGQtc3VwcG9ydC5jCkBAIC0yMCw0NiArMjAsNTggQEAKIAogI2luY2x1 ZGUgIm9tcGQtc3VwcG9ydC5oIgogCi0jZGVmaW5lIGdvbXBkX2RlY2xhcmVfYWNjZXNzKHQsIG0p IF9fVUlOVDY0X1RZUEVfXyBnb21wZF9hY2Nlc3NfIyN0IyNfIyNtOwotICBHT01QRF9GT1JFQUNI X0FDQ0VTUyAoZ29tcGRfZGVjbGFyZV9hY2Nlc3MpCi0jdW5kZWYgZ29tcGRfZGVjbGFyZV9hY2Nl c3MKLQotI2RlZmluZSBnb21wZF9kZWNsYXJlX3NpemVvZl9tZW1iZXJzKHQsIG0pIFwKLSAgX19V SU5UNjRfVFlQRV9fIGdvbXBkX3NpemVvZl8jI3QjI18jI207Ci0gIEdPTVBEX0ZPUkVBQ0hfQUND RVNTIChnb21wZF9kZWNsYXJlX3NpemVvZl9tZW1iZXJzKQotI3VuZGVmIGdvbXBkX2RlY2xhcmVf c2l6ZW9mX21lbWJlcnMKLQotI2RlZmluZSBnb21wZF9kZWNsYXJlX3NpemVzKHQpIF9fVUlOVDY0 X1RZUEVfXyBnb21wZF9zaXplb2ZfIyN0OwotICBHT01QRF9TSVpFUyAoZ29tcGRfZGVjbGFyZV9z aXplcykKLSN1bmRlZiBnb21wZF9kZWNsYXJlX3NpemVzCisjaWZkZWYgX19FTEZfXworLyogR2V0 IG9mZnNldCBvZiB0aGUgbWVtYmVyIG0gaW4gc3RydWN0IHQuICAqLworI2RlZmluZSBnb21wZF9n ZXRfb2Zmc2V0KHQsIG0pIFwKKyAgY29uc3QgX19VSU5UMTZfVFlQRV9fIGdvbXBkX2FjY2Vzc18j I3QjI18jI20gX19hdHRyaWJ1dGVfXyAoKHVzZWQpKSBcCisgICAgX19hdHRyaWJ1dGVfXyAoKHNl Y3Rpb24gKCJPTVBEIikpKSBcCisgICAgICA9IChfX1VJTlQxNl9UWVBFX18pIG9mZnNldG9mIChz dHJ1Y3QgdCwgbSk7CisgIEdPTVBEX0ZPUkVBQ0hfQUNDRVNTIChnb21wZF9nZXRfb2Zmc2V0KQor I3VuZGVmIGdvbXBkX2dldF9vZmZzZXQKKy8qIEdldCBzaXplIG9mIG1lbWJlciBtIGluIHN0cnVj dCB0LiAgKi8KKyNkZWZpbmUgZ29tcGRfZ2V0X3NpemVvZl9tZW1iZXIodCwgbSkgXAorICBjb25z dCBfX1VJTlQxNl9UWVBFX18gZ29tcGRfc2l6ZW9mXyMjdCMjXyMjbSBfX2F0dHJpYnV0ZV9fICgo dXNlZCkpIFwKKyAgICBfX2F0dHJpYnV0ZV9fICgoc2VjdGlvbigiT01QRCIpKSlcCisgICAgICA9 IHNpemVvZiAoKChzdHJ1Y3QgdCAqKSBOVUxMKS0+bSk7CisgIEdPTVBEX0ZPUkVBQ0hfQUNDRVNT IChnb21wZF9nZXRfc2l6ZW9mX21lbWJlcikKKyN1bmRlZiBnb21wZF9nZXRfc2l6ZW9mX21lbWJl cgorLyogR2V0IHNpemUgb2Ygc3RydWN0IHQuICAqLworI2RlZmluZSBnb21wZF9nZXRfc2l6ZSh0 KSBcCitjb25zdCBfX1VJTlQxNl9UWVBFX18gZ29tcGRfc2l6ZW9mXyMjdCMjXyBfX2F0dHJpYnV0 ZV9fICgodXNlZCkpIFwKKyAgICBfX2F0dHJpYnV0ZV9fICgoc2VjdGlvbiAoIk9NUEQiKSkpIFwK KyAgICAgID0gc2l6ZW9mIChzdHJ1Y3QgdCk7CisgIEdPTVBEX1NJWkVTIChnb21wZF9nZXRfc2l6 ZSkKKyN1bmRlZiBnb21wZF9nZXRfc2l6ZQorI2Vsc2UgLyogX19FTEZfXyAqLworI2RlZmluZSBn b21wZF9nZXRfb2Zmc2V0KHQsIG0pIFwKKyAgY29uc3QgX19VSU5UMTZfVFlQRV9fIGdvbXBkX2Fj Y2Vzc18jI3QjI18jI20gX19hdHRyaWJ1dGVfXyAoKHVzZWQpKSBcCisgICAgPSAoX19VSU5UMTZf VFlQRV9fKSBvZmZzZXRvZiAoc3RydWN0IHQsIG0pOworICBHT01QRF9GT1JFQUNIX0FDQ0VTUyAo Z29tcGRfZ2V0X29mZnNldCkKKyN1bmRlZiBnb21wZF9nZXRfb2Zmc2V0CisKKyNkZWZpbmUgZ29t cGRfZ2V0X3NpemVvZl9tZW1iZXIodCwgbSkgXAorICBjb25zdCBfX1VJTlQxNl9UWVBFX18gZ29t cGRfc2l6ZW9mXyMjdCMjXyMjbSBfX2F0dHJpYnV0ZV9fICgodXNlZCkpIFwKKyAgICA9IHNpemVv ZiAoKChzdHJ1Y3QgdCAqKSBOVUxMKS0+bSk7CisgIEdPTVBEX0ZPUkVBQ0hfQUNDRVNTIChnb21w ZF9nZXRfc2l6ZW9mX21lbWJlcikKKyN1bmRlZiBnb21wZF9nZXRfc2l6ZW9mX21lbWJlcgorCisj ZGVmaW5lIGdvbXBkX2dldF9zaXplKHQpIFwKKyAgY29uc3QgX19VSU5UMTZfVFlQRV9fIGdvbXBk X3NpemVvZl8jI3QjI18gX19hdHRyaWJ1dGVfXyAoKHVzZWQpKSBcCisgICAgPSBzaXplb2YgKHN0 cnVjdCB0KTsKKyAgR09NUERfU0laRVMgKGdvbXBkX2dldF9zaXplKQorI3VuZGVmIGdvbXBkX2dl dF9zaXplCisjZW5kaWYgLyogX19FTEZfXyAqLwogCiBjb25zdCBjaGFyICoqb21wZF9kbGxfbG9j YXRpb25zID0gTlVMTDsKLV9fVUlOVDY0X1RZUEVfXyBnb21wZF9zdGF0ZTsKK19fVUlOVDE2X1RZ UEVfXyBnb21wZF9zdGF0ZTsKIAogdm9pZAogZ29tcGRfbG9hZCAodm9pZCkKIHsKLSAgLyogR2V0 IHRoZSBvZmZzZXQgb2YgdGhlIHN0cnVjdCBtZW1iZXJzLiAgKi8KLSAgI2RlZmluZSBnb21wZF9p bml0X2FjY2Vzcyh0LCBtKSAgXAotICAgIGdvbXBkX2FjY2Vzc18jI3QjI18jI20gPSAoX19VSU5U NjRfVFlQRV9fKSAmICgoKHN0cnVjdCB0ICopIE5VTEwpLT5tKTsKLSAgICBHT01QRF9GT1JFQUNI X0FDQ0VTUyAoZ29tcGRfaW5pdF9hY2Nlc3MpOwotICAjdW5kZWYgZ29tcGRfaW5pdF9hY2Nlc3MK LQotICAvKiBHZXQgc2l6ZW9mIG1lbWJlcnMuICAqLwotCi0gICNkZWZpbmUgZ29tcGRfaW5pdF9z aXplb2ZfbWVtYmVycyh0LCBtKSBcCi0gICAgZ29tcGRfc2l6ZW9mXyMjdCMjXyMjbSA9IHNpemVv ZiAoKChzdHJ1Y3QgdCAqKSBOVUxMKS0+bSk7Ci0gICAgR09NUERfRk9SRUFDSF9BQ0NFU1MgKGdv bXBkX2luaXRfc2l6ZW9mX21lbWJlcnMpOwotICAjdW5kZWYgZ29tcGRfZGVjbGFyZV9zaXplb2Zf bWVtYmVycwotCi0gICNkZWZpbmUgZ29tcGRfaW5pdF9zaXplcyh0KSBnb21wZF9zaXplb2ZfIyN0 ID0gc2l6ZW9mIChzdHJ1Y3QgdCk7Ci0gICAgR09NUERfU0laRVMgKGdvbXBkX2luaXRfc2l6ZXMp Ci0gICN1bmRlZiBnb21wZF9pbml0X3NpemVzCi0KICAgI2lmZGVmIEdPTVBfTkVFRFNfVEhSRUFE X0hBTkRMRQotICAgIF9fVUlOVDY0X1RZUEVfXyBnb21wZF9hY2Nlc3NfZ29tcF90aHJlYWRfaGFu ZGxlCi0gICAgICA9IChfX1VJTlQ2NF9UWVBFX18pICYgKCgoc3RydWN0IGdvbXBfdGhyZWFkICop IE5VTEwpLT5oYW5kbGUpOwotICAgIF9fVUlOVDY0X1RZUEVfXyBnb21wZF9zaXplb2ZfZ29tcF90 aHJlYWRfaGFuZGxlCisgICAgX19VSU5UMTZfVFlQRV9fIGdvbXBkX2FjY2Vzc19nb21wX3RocmVh ZF9oYW5kbGUKKyAgICAgID0gKF9fVUlOVDE2X1RZUEVfXykgJiAoKChzdHJ1Y3QgZ29tcF90aHJl YWQgKikgTlVMTCktPmhhbmRsZSk7CisgICAgX19VSU5UMTZfVFlQRV9fIGdvbXBkX3NpemVvZl9n b21wX3RocmVhZF9oYW5kbGUKICAgICAgID0gc2l6ZW9mICgoKHN0cnVjdCBnb21wX3RocmVhZCAq KSBOVUxMKS0+aGFuZGxlKTsKICAgI2VuZGlmCiAgIGdvbXBfZGVidWcgKDIsICJPTVAgT01QRCBh Y3RpdmVcbiIpOwpkaWZmIC0tZ2l0IGEvbGliZ29tcC9vbXBkLXN1cHBvcnQuaCBiL2xpYmdvbXAv b21wZC1zdXBwb3J0LmgKaW5kZXggMzlkNTUxNjExMzIuLjVkN2U1YzI0ZTNmIDEwMDY0NAotLS0g YS9saWJnb21wL29tcGQtc3VwcG9ydC5oCisrKyBiL2xpYmdvbXAvb21wZC1zdXBwb3J0LmgKQEAg LTY3LDcgKzY3LDcgQEAKICNlbmRpZgogCiB2b2lkIGdvbXBkX2xvYWQgKHZvaWQpOwotZXh0ZXJu IF9fVUlOVDY0X1RZUEVfXyBnb21wZF9zdGF0ZTsKK2V4dGVybiBfX1VJTlQxNl9UWVBFX18gZ29t cGRfc3RhdGU7CiAKICNkZWZpbmUgT01QRF9FTkFCTEVEIDB4MQogCkBAIC04Myw3ICs4MywxMCBA QCBleHRlcm4gX19VSU5UNjRfVFlQRV9fIGdvbXBkX3N0YXRlOwogICBnb21wZF9hY2Nlc3MgKGdv bXBfdGhyZWFkX3Bvb2wsIHRocmVhZHMpIFwKICAgZ29tcGRfYWNjZXNzIChnb21wX3RocmVhZCwg dHMpIFwKICAgZ29tcGRfYWNjZXNzIChnb21wX3RlYW1fc3RhdGUsIHRlYW1faWQpIFwKLSAgZ29t cGRfYWNjZXNzIChnb21wX3Rhc2ssIGljdikKKyAgZ29tcGRfYWNjZXNzIChnb21wX3Rhc2ssIGlj dikgXAorICBnb21wZF9hY2Nlc3MgKGdvbXBfdGFzaywga2luZCkgXAorICBnb21wZF9hY2Nlc3Mg KGdvbXBfdGFzaywgZmluYWxfdGFzaykgXAorICBnb21wZF9hY2Nlc3MgKGdvbXBfdGVhbSwgbnRo cmVhZHMpCiAKICNkZWZpbmUgR09NUERfU0laRVMoZ29tcGRfc2l6ZSkgXAogICBnb21wZF9zaXpl IChnb21wX3RocmVhZCkgXAo= --00000000000068517905e119fc1d--