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 C3CCF3853D4D for ; Fri, 18 Nov 2022 17:20:53 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org C3CCF3853D4D 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.96,175,1665475200"; d="diff'?scan'208";a="90264797" Received: from orw-gwy-02-in.mentorg.com ([192.94.38.167]) by esa1.mentor.iphmx.com with ESMTP; 18 Nov 2022 09:20:50 -0800 IronPort-SDR: bg2BuMexl0hWIeEWyPj3eNuZuMn0N+11UsgqcLv8SzZyJd2lmr+12Hbq4WD5goClYSfBOXVQIQ WWoMaWoro3g5cRtV8Fo+LfRlL+PM7Gvv5+IIjqK5lVfqmZ2DvMSTnr7HYGohrac3bxuX0lb1nH iZaEuYpiW9gozbZhYkZpH8gMF0vn3AXKgo1Mf56AtSgApJbzWG9mzxmgzldc/qUkdi2IF6uQtj 7shOfvOA0ifgEMtbupyFiMCz3gH5TFutEpoebGAXIA5bJmPoxafAwY2Vo7xFR2aXj22uGDz0QO 3Cg= Content-Type: multipart/mixed; boundary="------------R3BTn0daJXJ7O2imp0HFyhHK" Message-ID: <1bec26d6-e2c5-3408-4f61-0fb17e730b3e@codesourcery.com> Date: Fri, 18 Nov 2022 18:20:29 +0100 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.5.0 Content-Language: en-US To: Andrew Stubbs , gcc-patches From: Tobias Burnus Subject: [Patch] gcn: Add __builtin_gcn_{get_stack_limit,first_call_this_thread_p} X-Originating-IP: [137.202.0.90] X-ClientProxiedBy: svr-ies-mbx-15.mgc.mentorg.com (139.181.222.15) To svr-ies-mbx-11.mgc.mentorg.com (139.181.222.11) X-Spam-Status: No, score=-11.4 required=5.0 tests=BAYES_00,GIT_PATCH_0,HEADER_FROM_DIFFERENT_DOMAINS,KAM_DMARC_STATUS,SPF_HELO_PASS,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: --------------R3BTn0daJXJ7O2imp0HFyhHK Content-Type: text/plain; charset="UTF-8"; format=flowed Content-Transfer-Encoding: quoted-printable This patch adds two builtins (getting end-of-stack pointer and a Boolean answer whether it was the first call to the builtin on this threa= d). The idea is to replace some hard-coded values in newlib, permitting to move later to a manually allocated stack on the compiler side without the need t= o modify newlib again. The GCC patch matches what newlib did in reent; I coul= d imagine that we change this later on. Lightly tested (especially by visual inspection). Currently doing a final regtest, OK when it passes? Any comments to this patch - or the attached newlib patch?* Tobias (*) I also included a patch to newlib to see where were are heading + to actually use them for regtesting ... ----------------- 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 --------------R3BTn0daJXJ7O2imp0HFyhHK Content-Type: text/x-patch; charset="UTF-8"; name="gcn-stack-init.diff" Content-Disposition: attachment; filename="gcn-stack-init.diff" Content-Transfer-Encoding: base64 Z2NuOiBBZGQgX19idWlsdGluX2djbl97Z2V0X3N0YWNrX2xpbWl0LGZpcnN0X2NhbGxfdGhp c190aHJlYWRfcH0KClRoZSBuZXcgYnVpbHRpbnMgaGF2ZSBiZWVuIGFkZGVkIGZvciBuZXds aWIgdG8gcmVkdWNlIGRlcGVuZGVuY3kgb24KY29tcGlsZXItaW50ZXJuYWwgaW1wbGVtZW50 YXRpb24gY2hvaWNlcyBvZiBHQ0MgaW4gbmV3bGlicycgZ2V0cmVlbnQuYy4KCmdjYy9DaGFu Z2VMb2c6CgoJKiBjb25maWcvZ2NuL2djbi1idWlsdGlucy5kZWYgKEZJUlNUX0NBTExfVEhJ U19USFJFQURfUCwKICAgICAgICBHRVRfU1RBQ0tfTElNSVQpOiBBZGQgbmV3IGJ1aWx0aW5z LgoJKiBjb25maWcvZ2NuL2djbi5jYyAoZ2NuX2V4cGFuZF9idWlsdGluXzEpOiBFeHBhbmQg dGhlbS4KCSogY29uZmlnL2djbi9nY24ubWQgKHByb2xvZ3VlX3VzZSk6IEFkZCAicmVnaXN0 ZXJfb3BlcmFuZCIgYXMKCWFyZyB0byBtYXRjaF9vcGVyYW5kLgoJKHByb2xvZ3VlX3VzZV9k aSk6IE5ldzsgREkgaW5zbl9hbmRfc3BsaXQgdmFyaWFudCBvZiB0aGUgZm9ybWVyLgoKQ28t QXV0aG9yZWQtQnk6IEFuZHJldyBTdHViYnMgPGFtc0Bjb2Rlc291cmNlcnkuY29tPgoKIGdj Yy9jb25maWcvZ2NuL2djbi1idWlsdGlucy5kZWYgfCAgNCArKysKIGdjYy9jb25maWcvZ2Nu L2djbi5jYyAgICAgICAgICAgfCA3MCArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrLQogZ2NjL2NvbmZpZy9nY24vZ2NuLm1kICAgICAgICAgICB8IDE1ICsrKysr KysrLQogMyBmaWxlcyBjaGFuZ2VkLCA4NyBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygt KQoKZGlmZiAtLWdpdCBhL2djYy9jb25maWcvZ2NuL2djbi1idWlsdGlucy5kZWYgYi9nY2Mv Y29uZmlnL2djbi9nY24tYnVpbHRpbnMuZGVmCmluZGV4IGVlZWFlYmY5MDEzLi5mMWNmMzBi YmM5NCAxMDA2NDQKLS0tIGEvZ2NjL2NvbmZpZy9nY24vZ2NuLWJ1aWx0aW5zLmRlZgorKysg Yi9nY2MvY29uZmlnL2djbi9nY24tYnVpbHRpbnMuZGVmCkBAIC0xNjAsOCArMTYwLDEyIEBA IERFRl9CVUlMVElOIChBQ0NfQkFSUklFUiwgLTEsICJhY2NfYmFycmllciIsIEJfSU5TTiwg X0ExIChHQ05fQlRJX1ZPSUQpLAogCiAvKiBLZXJuZWwgaW5wdXRzLiAgKi8KIAorREVGX0JV SUxUSU4gKEZJUlNUX0NBTExfVEhJU19USFJFQURfUCwgLTEsICJmaXJzdF9jYWxsX3RoaXNf dGhyZWFkX3AiLCBCX0lOU04sCisJICAgICBfQTEgKEdDTl9CVElfQk9PTCksIGdjbl9leHBh bmRfYnVpbHRpbl8xKQogREVGX0JVSUxUSU4gKEtFUk5BUkdfUFRSLCAtMSwgImtlcm5hcmdf cHRyIiwgQl9JTlNOLCBfQTEgKEdDTl9CVElfVk9JRFBUUiksCiAJICAgICBnY25fZXhwYW5k X2J1aWx0aW5fMSkKK0RFRl9CVUlMVElOIChHRVRfU1RBQ0tfTElNSVQsIC0xLCAiZ2V0X3N0 YWNrX2xpbWl0IiwgQl9JTlNOLAorCSAgICAgX0ExIChHQ05fQlRJX1ZPSURQVFIpLCBnY25f ZXhwYW5kX2J1aWx0aW5fMSkKIAogI3VuZGVmIF9BMQogI3VuZGVmIF9BMgpkaWZmIC0tZ2l0 IGEvZ2NjL2NvbmZpZy9nY24vZ2NuLmNjIGIvZ2NjL2NvbmZpZy9nY24vZ2NuLmNjCmluZGV4 IGIzODE0YzJlN2M2Li4wNTFlYWRlZTc4MyAxMDA2NDQKLS0tIGEvZ2NjL2NvbmZpZy9nY24v Z2NuLmNjCisrKyBiL2djYy9jb25maWcvZ2NuL2djbi5jYwpAQCAtNDQ5Myw2ICs0NDkzLDQ0 IEBAIGdjbl9leHBhbmRfYnVpbHRpbl8xICh0cmVlIGV4cCwgcnR4IHRhcmdldCwgcnR4IC8q c3VidGFyZ2V0ICovICwKICAgICAgIGVtaXRfaW5zbiAoZ2VuX2djbl93YXZlZnJvbnRfYmFy cmllciAoKSk7CiAgICAgICByZXR1cm4gdGFyZ2V0OwogCisgICAgY2FzZSBHQ05fQlVJTFRJ Tl9HRVRfU1RBQ0tfTElNSVQ6CisgICAgICB7CisJLyogc3RhY2tiYXNlID0gKHN0YWNrX3Nl Z21lbnRfZGVjciAmIDB4MDAwMGZmZmZmZmZmZmZmZikKKwkJCSsgc3RhY2tfd2F2ZV9vZmZz ZXQpOworCSAgIHNlZ19zaXplID0gZGlzcGF0Y2hfcHRyLT5wcml2YXRlX3NlZ21lbnRfc2l6 ZTsKKwkgICBzdGFja2xpbWl0ID0gc3RhY2tiYXNlICsgc2VnX3NpemUqNjQ7CisJICAgd2l0 aCBzZWdzaXplID0gZGlzcGF0Y2hfcHRyICsgNipzaXplb2YoaW50MTZfdCkgKyAzKnNpemVv ZihpbnQzMl90KTsKKwkgICBjZi4gc3RydWN0IGhzYV9rZXJuZWxfZGlzcGF0Y2hfcGFja2V0 X3MgaW4gdGhlIEhTQSBkb2MuICAqLworCXJ0eCBwdHI7CisJaWYgKGNmdW4tPm1hY2hpbmUt PmFyZ3MucmVnW0RJU1BBVENIX1BUUl9BUkddID49IDAKKwkgICAgJiYgY2Z1bi0+bWFjaGlu ZS0+YXJncy5yZWdbUFJJVkFURV9TRUdNRU5UX0JVRkZFUl9BUkddID49IDApCisJICB7CisJ ICAgIHJ0eCBzaXplX3J0eCA9IGdlbl9ydHhfUkVHIChESW1vZGUsCisJCQkJCWNmdW4tPm1h Y2hpbmUtPmFyZ3MucmVnW0RJU1BBVENIX1BUUl9BUkddKTsKKwkgICAgc2l6ZV9ydHggPSBn ZW5fcnR4X01FTSAoREltb2RlLAorCQkJCSAgICBnZW5fcnR4X1BMVVMgKERJbW9kZSwgc2l6 ZV9ydHgsCisJCQkJCQkgIEdFTl9JTlQgKDYqMTYgKyAzKjMyKSkpOworCSAgICBzaXplX3J0 eCA9IGdlbl9ydHhfTVVMVCAoREltb2RlLCBzaXplX3J0eCwgR0VOX0lOVCAoNjQpKTsKKwor CSAgICBwdHIgPSBnZW5fcnR4X1JFRyAoREltb2RlLAorCQkgICAgY2Z1bi0+bWFjaGluZS0+ YXJncy5yZWdbUFJJVkFURV9TRUdNRU5UX0JVRkZFUl9BUkddKTsKKwkgICAgcHRyID0gZ2Vu X3J0eF9BTkQgKERJbW9kZSwgcHRyLCBHRU5fSU5UICgweDAwMDBmZmZmZmZmZmZmZmYpKTsK KwkgICAgcHRyID0gZ2VuX3J0eF9QTFVTIChESW1vZGUsIHB0ciwgc2l6ZV9ydHgpOworCSAg ICBpZiAoY2Z1bi0+bWFjaGluZS0+YXJncy5yZWdbUFJJVkFURV9TRUdNRU5UX1dBVkVfT0ZG U0VUX0FSR10gPj0gMCkKKwkgICAgICB7CisJCXJ0eCBvZmY7CisJCW9mZiA9IGdlbl9ydHhf UkVHIChTSW1vZGUsCisJCSAgICAgIGNmdW4tPm1hY2hpbmUtPmFyZ3MucmVnW1BSSVZBVEVf U0VHTUVOVF9XQVZFX09GRlNFVF9BUkddKTsKKwkJcHRyID0gZ2VuX3J0eF9QTFVTIChESW1v ZGUsIHB0ciwgb2ZmKTsKKwkgICAgICB9CisJICB9CisJZWxzZQorCSAgeworCSAgICBwdHIg PSBnZW5fcmVnX3J0eCAoREltb2RlKTsKKwkgICAgZW1pdF9tb3ZlX2luc24gKHB0ciwgY29u c3QwX3J0eCk7CisJICB9CisJcmV0dXJuIHB0cjsKKyAgICAgIH0KICAgICBjYXNlIEdDTl9C VUlMVElOX0tFUk5BUkdfUFRSOgogICAgICAgewogCXJ0eCBwdHI7CkBAIC00NTA2LDcgKzQ1 NDQsMzcgQEAgZ2NuX2V4cGFuZF9idWlsdGluXzEgKHRyZWUgZXhwLCBydHggdGFyZ2V0LCBy dHggLypzdWJ0YXJnZXQgKi8gLAogCSAgfQogCXJldHVybiBwdHI7CiAgICAgICB9Ci0KKyAg ICBjYXNlIEdDTl9CVUlMVElOX0ZJUlNUX0NBTExfVEhJU19USFJFQURfUDoKKyAgICAgIHsK KwkvKiBTdGFzaCBhIG1hcmtlciBpbiB0aGUgdW51c2VkIHVwcGVyIDE2IGJpdHMgb2Ygc1sw OjFdIHRvIGluZGljYXRlCisJICAgd2hldGhlciBpdCB3YXMgdGhlIGZpcnN0IGNhbGwuICAq LworCXJ0eCByZXN1bHQgPSBnZW5fcmVnX3J0eCAoQkltb2RlKTsKKwllbWl0X21vdmVfaW5z biAocmVzdWx0LCBjb25zdDBfcnR4KTsKKwlpZiAoY2Z1bi0+bWFjaGluZS0+YXJncy5yZWdb UFJJVkFURV9TRUdNRU5UX0JVRkZFUl9BUkddID49IDApCisJICB7CisJICAgIHJ0eCBub3Rf Zmlyc3QgPSBnZW5fbGFiZWxfcnR4ICgpOworCSAgICBydHggcmVnID0gZ2VuX3J0eF9SRUcg KERJbW9kZSwKKwkJCWNmdW4tPm1hY2hpbmUtPmFyZ3MucmVnW1BSSVZBVEVfU0VHTUVOVF9C VUZGRVJfQVJHXSk7CisJICAgIHJ0eCBjbXAgPSBmb3JjZV9yZWcgKERJbW9kZSwKKwkJCQkg Z2VuX3J0eF9BTkQgKERJbW9kZSwgcmVnLAorCQkJCQkgICAgICBHRU5fSU5UICgweGZmZmYw MDAwMDAwMDAwMDBMKSkpOworCSAgICBlbWl0X2luc24gKGdlbl9jc3RvcmVzaTQgKHJlc3Vs dCwgZ2VuX3J0eF9FUSAoQkltb2RlLCBjbXAsCisJCQkJCQkJICBHRU5fSU5UKDEyMzQ1TCA8 PCA0OCkpLAorCQkJCSAgICAgIGNtcCwgR0VOX0lOVCgxMjM0NUwgPDwgNDgpKSk7CisJICAg IGVtaXRfanVtcF9pbnNuIChnZW5fY2p1bXAgKG5vdF9maXJzdCwgZ2VuX3J0eF9FUSAoQklt b2RlLCByZXN1bHQsCisJCQkJCQkJICAgICAgY29uc3QwX3J0eCksCisJCQkJICAgICAgIHJl c3VsdCkpOworCSAgICBlbWl0X21vdmVfaW5zbiAocmVnLAorCSAgICAgIGZvcmNlX3JlZyAo REltb2RlLAorCQlnZW5fcnR4X0lPUiAoREltb2RlLAorCQkJICAgICBnZW5fcnR4X0FORCAo REltb2RlLCByZWcsCisJCQkJCSAgR0VOX0lOVCAoMHgwMDAwZmZmZmZmZmZmZmZmTCkpLAor CQkJICAgICBHRU5fSU5UICgxMjM0NUwgPDwgNDgpKSkpOworCSAgICBlbWl0X2luc24gKGdl bl9wcm9sb2d1ZV91c2UgKHJlZykpOworCSAgICBlbWl0X2xhYmVsIChub3RfZmlyc3QpOwor CSAgfQorCXJldHVybiByZXN1bHQ7CisgICAgICB9CiAgICAgZGVmYXVsdDoKICAgICAgIGdj Y191bnJlYWNoYWJsZSAoKTsKICAgICB9CmRpZmYgLS1naXQgYS9nY2MvY29uZmlnL2djbi9n Y24ubWQgYi9nY2MvY29uZmlnL2djbi9nY24ubWQKaW5kZXggOTg3Yjc2Mzk2Y2MuLmE4Yjlj MjhkMTE1IDEwMDY0NAotLS0gYS9nY2MvY29uZmlnL2djbi9nY24ubWQKKysrIGIvZ2NjL2Nv bmZpZy9nY24vZ2NuLm1kCkBAIC02OTIsMTEgKzY5MiwyNCBAQAogOzsge3t7IFByb2xvZ3Vl L0VwaWxvZ3VlCiAKIChkZWZpbmVfaW5zbiAicHJvbG9ndWVfdXNlIgotICBbKHVuc3BlY192 b2xhdGlsZSBbKG1hdGNoX29wZXJhbmQgMCldIFVOU1BFQ1ZfUFJPTE9HVUVfVVNFKV0KKyAg Wyh1bnNwZWNfdm9sYXRpbGUgWyhtYXRjaF9vcGVyYW5kIDAgInJlZ2lzdGVyX29wZXJhbmQi KV0gVU5TUEVDVl9QUk9MT0dVRV9VU0UpXQogICAiIgogICAiIgogICBbKHNldF9hdHRyICJs ZW5ndGgiICIwIildKQogCisoZGVmaW5lX2luc25fYW5kX3NwbGl0ICJwcm9sb2d1ZV91c2Vf ZGkiCisgIFsodW5zcGVjX3ZvbGF0aWxlIFsobWF0Y2hfb3BlcmFuZDpESSAwICJyZWdpc3Rl cl9vcGVyYW5kIildIFVOU1BFQ1ZfUFJPTE9HVUVfVVNFKV0KKyAgIiIKKyAgIiMiCisgICJy ZWxvYWRfY29tcGxldGVkIgorICBbKHVuc3BlY192b2xhdGlsZSBbKG1hdGNoX2R1cCAwKV0g VU5TUEVDVl9QUk9MT0dVRV9VU0UpCisgICAodW5zcGVjX3ZvbGF0aWxlIFsobWF0Y2hfZHVw IDEpXSBVTlNQRUNWX1BST0xPR1VFX1VTRSldCisgIHsKKyAgICBvcGVyYW5kc1sxXSA9IGdj bl9vcGVyYW5kX3BhcnQgKERJbW9kZSwgb3BlcmFuZHNbMF0sIDEpOworICAgIG9wZXJhbmRz WzBdID0gZ2NuX29wZXJhbmRfcGFydCAoREltb2RlLCBvcGVyYW5kc1swXSwgMCk7CisgIH0K KyAgWyhzZXRfYXR0ciAibGVuZ3RoIiAiMCIpXSkKKwogKGRlZmluZV9leHBhbmQgInByb2xv Z3VlIgogICBbKGNvbnN0X2ludCAwKV0KICAgIiIK --------------R3BTn0daJXJ7O2imp0HFyhHK Content-Type: text/x-patch; charset="UTF-8"; name="newlib-reent.diff" Content-Disposition: attachment; filename="newlib-reent.diff" Content-Transfer-Encoding: base64 YW1kZ2NuOiBVc2UgX19idWlsdGluX2djbl8gaW4gbGliYy9tYWNoaW5lL2FtZGdjbi9nZXRy ZWVudC5jCgpDYWxsIF9fYnVpbHRpbl9nY25fZ2V0X3N0YWNrX2xpbWl0IGFuZCBfX2J1aWx0 aW5fZ2NuX2ZpcnN0X2NhbGxfdGhpc190aHJlYWRfcAp0byByZWR1Y2UgZGVwZW5kZW5jeSBv biBzb21lIHJlZ2lzdGVyL2xheW91dCBhc3N1bXB0aW9ucyBieSB1c2luZyB0aGUgbmV3CkdD QyBtYWlubGluZSAoR0NDIDEzKSBidWlsdGlucywgaWYgdGhleSBhcmUgYXZhaWxhYmxlLiBJ ZiBub3QsIHRoZSBleGlzdGluZwpjb2RlIGlzIHVzZWQuCgogbmV3bGliL2xpYmMvbWFjaGlu ZS9hbWRnY24vZ2V0cmVlbnQuYyB8IDM4ICsrKysrKysrKysrKysrKysrKysrKysrKysrLS0t LS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMjkgaW5zZXJ0aW9ucygrKSwgOSBkZWxldGlvbnMo LSkKCmRpZmYgLS1naXQgYS9uZXdsaWIvbGliYy9tYWNoaW5lL2FtZGdjbi9nZXRyZWVudC5j IGIvbmV3bGliL2xpYmMvbWFjaGluZS9hbWRnY24vZ2V0cmVlbnQuYwppbmRleCBiZTdkMmVk YzkuLmVmNzMxZjY0OSAxMDA2NDQKLS0tIGEvbmV3bGliL2xpYmMvbWFjaGluZS9hbWRnY24v Z2V0cmVlbnQuYworKysgYi9uZXdsaWIvbGliYy9tYWNoaW5lL2FtZGdjbi9nZXRyZWVudC5j CkBAIC0yOSwyMiArMjksNDIgQEAgdHlwZWRlZiBzdHJ1Y3QgaHNhX2tlcm5lbF9kaXNwYXRj aF9wYWNrZXRfcyB7CiBzdHJ1Y3QgX3JlZW50ICoKIF9fZ2V0cmVlbnQgKHZvaWQpCiB7Ci0g IC8qIFBsYWNlIHRoZSByZWVudCBkYXRhIGF0IHRoZSB0b3Agb2YgdGhlIHN0YWNrIGFsbG9j YXRpb24uCi0gICAgIHNbMDoxXSBjb250YWlucyBhIDQ4LWJpdCBwcml2YXRlIHNlZ21lbnQg YmFzZSBhZGRyZXNzLgorICAvKiBQbGFjZSB0aGUgcmVlbnQgZGF0YSBhdCB0aGUgdG9wIG9m IHRoZSBzdGFjayBhbGxvY2F0aW9uLiAgKi8KKyAgc3RydWN0IGRhdGEgeworICAgIGludCBt YXJrZXI7CisgICAgc3RydWN0IF9yZWVudCByZWVudDsKKyAgfSAqZGF0YTsKKworI2lmIGRl ZmluZWQoX19oYXNfYnVpbHRpbikgXAorICAgICYmIF9faGFzX2J1aWx0aW4oX19idWlsdGlu X2djbl9nZXRfc3RhY2tfbGltaXQpIFwKKyAgICAmJiBfX2hhc19idWlsdGluKF9fYnVpbHRp bl9nY25fZmlyc3RfY2FsbF90aGlzX3RocmVhZF9wKQorICB1bnNpZ25lZCBsb25nIGFkZHIg PSAoKCh1bnNpZ25lZCBsb25nKSBfX2J1aWx0aW5fZ2NuX2dldF9zdGFja19saW1pdCgpCisJ CQkgLSBzaXplb2Yoc3RydWN0IGRhdGEpKSAmIH43KTsKKyAgZGF0YSA9IChzdHJ1Y3QgZGF0 YSAqKWFkZHI7CisKKyAgcmVnaXN0ZXIgbG9uZyBzcCBhc20oInMxNiIpOworCisgIGlmIChz cCA+PSBhZGRyKQorICAgIGdvdG8gc3RhY2tvdmVyZmxvdzsKKyAgaWYgKF9fYnVpbHRpbl9n Y25fZmlyc3RfY2FsbF90aGlzX3RocmVhZF9wKCkpCisgICAgeworICAgICAgZGF0YS0+bWFy a2VyID0gMTIzNDU7CisgICAgICBfX2J1aWx0aW5fbWVtc2V0ICgmZGF0YS0+cmVlbnQsIDAs IHNpemVvZihzdHJ1Y3QgX3JlZW50KSk7CisgICAgICBfUkVFTlRfSU5JVF9QVFJfWkVST0VE ICgmZGF0YS0+cmVlbnQpOworICAgIH0KKyAgZWxzZSBpZiAoZGF0YS0+bWFya2VyICE9IDEy MzQ1KQorICAgIGdvdG8gc3RhY2tvdmVyZmxvdzsKKyNlbHNlCisgIC8qIHNbMDoxXSBjb250 YWlucyBhIDQ4LWJpdCBwcml2YXRlIHNlZ21lbnQgYmFzZSBhZGRyZXNzLgogICAgICBzMTEg Y29udGFpbnMgdGhlIG9mZnNldCB0byB0aGUgYmFzZSBvZiB0aGUgc3RhY2suCiAgICAgIHNb NDo1XSBjb250YWlucyB0aGUgZGlzcGF0Y2ggcG9pbnRlci4KLSAgICAgCisKICAgICAgV0FS TklORzogdGhpcyBjb2RlIHdpbGwgYnJlYWsgaWYgc1swOjFdIGlzIGV2ZXIgdXNlZCBmb3Ig YW55dGhpbmchICAqLwogICBjb25zdCByZWdpc3RlciB1bnNpZ25lZCBsb25nIGJ1ZmZlcl9k ZXNjcmlwdG9yIGFzbSgiczAiKTsKICAgdW5zaWduZWQgbG9uZyBwcml2YXRlX3NlZ21lbnQg PSBidWZmZXJfZGVzY3JpcHRvciAmIDB4MDAwMGZmZmZmZmZmZmZmZjsKICAgY29uc3QgcmVn aXN0ZXIgdW5zaWduZWQgaW50IHN0YWNrX29mZnNldCBhc20oInMxMSIpOwogICBjb25zdCBy ZWdpc3RlciBoc2Ffa2VybmVsX2Rpc3BhdGNoX3BhY2tldF90ICpkaXNwYXRjaF9wdHIgYXNt KCJzNCIpOwogCi0gIHN0cnVjdCBkYXRhIHsKLSAgICBpbnQgbWFya2VyOwotICAgIHN0cnVj dCBfcmVlbnQgcmVlbnQ7Ci0gIH0gKmRhdGE7Ci0KICAgdW5zaWduZWQgbG9uZyBzdGFja19i YXNlID0gcHJpdmF0ZV9zZWdtZW50ICsgc3RhY2tfb2Zmc2V0OwogICB1bnNpZ25lZCBsb25n IHN0YWNrX2VuZCA9IHN0YWNrX2Jhc2UgKyBkaXNwYXRjaF9wdHItPnByaXZhdGVfc2VnbWVu dF9zaXplICogNjQ7CiAgIHVuc2lnbmVkIGxvbmcgYWRkciA9IChzdGFja19lbmQgLSBzaXpl b2Yoc3RydWN0IGRhdGEpKSAmIH43OwpAQCAtNjksNyArODksNyBAQCBfX2dldHJlZW50ICh2 b2lkKQogICAgIH0KICAgZWxzZSBpZiAoZGF0YS0+bWFya2VyICE9IDEyMzQ1KQogICAgIGdv dG8gc3RhY2tvdmVyZmxvdzsKLQorI2VuZGlmCiAKICAgcmV0dXJuICZkYXRhLT5yZWVudDsK IAo= --------------R3BTn0daJXJ7O2imp0HFyhHK--