From mboxrd@z Thu Jan 1 00:00:00 1970 From: Maxim Kuvyrkov Subject: Re: Add private syscalls to support NPTL Date: Fri, 02 Oct 2009 13:59:46 +0400 Message-ID: <4AC5CF12.8000200@codesourcery.com> References: <4A89D037.7090807@codesourcery.com> <4A8A54F9.3080100@codesourcery.com> <4A8A6CA2.4040806@codesourcery.com> <10f740e80908180222p4d95b19bp3069e037a6bc590e@mail.gmail.com> <4A91A4C8.5040803@codesourcery.com> <4A943ECC.80607@codesourcery.com> <4A97B69F.4000306@codesourcery.com> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="------------070602080009000606030507" Return-path: Received: from mail.codesourcery.com ([65.74.133.4]:58160 "EHLO mail.codesourcery.com" rhost-flags-OK-FAIL-OK-FAIL) by vger.kernel.org with ESMTP id S1757461AbZJBJ7w (ORCPT ); Fri, 2 Oct 2009 05:59:52 -0400 In-Reply-To: <4A97B69F.4000306@codesourcery.com> Sender: linux-m68k-owner@vger.kernel.org List-Id: linux-m68k@vger.kernel.org To: Geert Uytterhoeven Cc: Andreas Schwab , linux-m68k@vger.kernel.org This is a multi-part message in MIME format. --------------070602080009000606030507 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Maxim Kuvyrkov wrote: > Maxim Kuvyrkov wrote: >> Maxim Kuvyrkov wrote: >> >>> Here is the updated patch. >> >> Hm, I've attached the patch without the unistd.h hunk. Here is the >> proper one. > > Yet, another update patch. This version fixes several indentation errors. > > BTW, Geert, what is the preferred branch in m68k git repository for > patches to be sent against? I looked around and 'for-linus' seems to be > the most appropriate choice. Yet another update. The difference compared to the previous patch is attached in the first file. The new version fixes a potential bug in the cmpxchg implementation and adds ptrace hook to allow debugging of TLS variables (corresponding gdbserver patch is yet to be submitted). Geert, in case there'll be further changes in the NPTL patch, would you like me submit full patch against original tree or only the incremental difference? Thanks, -- Maxim K. CodeSourcery --------------070602080009000606030507 Content-Type: text/plain; x-mac-type="0"; x-mac-creator="0"; name="diff.patch" Content-Transfer-Encoding: base64 Content-Disposition: inline; filename="diff.patch" ZGlmZiAtLWdpdCBhL2FyY2gvbTY4ay9pbmNsdWRlL2FzbS9wdHJhY2UuaCBiL2FyY2gvbTY4 ay9pbmNsdWRlL2FzbS9wdHJhY2UuaAppbmRleCA4YzkxOTRiLi42ZDc2YmJhIDEwMDY0NAot LS0gYS9hcmNoL202OGsvaW5jbHVkZS9hc20vcHRyYWNlLmgKKysrIGIvYXJjaC9tNjhrL2lu Y2x1ZGUvYXNtL3B0cmFjZS5oCkBAIC03MSw2ICs3MSw4IEBAIHN0cnVjdCBzd2l0Y2hfc3Rh Y2sgewogI2RlZmluZSBQVFJBQ0VfR0VURlBSRUdTICAgICAgICAgIDE0CiAjZGVmaW5lIFBU UkFDRV9TRVRGUFJFR1MgICAgICAgICAgMTUKIAorI2RlZmluZSBQVFJBQ0VfR0VUX1RIUkVB RF9BUkVBICAgIDI1CisKICNpZmRlZiBfX0tFUk5FTF9fCiAKICNpZm5kZWYgUFNfUwpkaWZm IC0tZ2l0IGEvYXJjaC9tNjhrL2tlcm5lbC9wdHJhY2UuYyBiL2FyY2gvbTY4ay9rZXJuZWwv cHRyYWNlLmMKaW5kZXggMjA3NTU0My4uMGNmNzgyNyAxMDA2NDQKLS0tIGEvYXJjaC9tNjhr L2tlcm5lbC9wdHJhY2UuYworKysgYi9hcmNoL202OGsva2VybmVsL3B0cmFjZS5jCkBAIC0y NjUsNiArMjY1LDExIEBAIGxvbmcgYXJjaF9wdHJhY2Uoc3RydWN0IHRhc2tfc3RydWN0ICpj aGlsZCwgbG9uZyByZXF1ZXN0LCBsb25nIGFkZHIsIGxvbmcgZGF0YSkKIAkJCXJldCA9IC1F RkFVTFQ7CiAJCWJyZWFrOwogCisJY2FzZSBQVFJBQ0VfR0VUX1RIUkVBRF9BUkVBOgorCQly ZXQgPSBwdXRfdXNlcih0YXNrX3RocmVhZF9pbmZvKGNoaWxkKS0+dHBfdmFsdWUsCisJCQkJ KHVuc2lnbmVkIGxvbmcgX191c2VyICopIGRhdGEpOworCQlicmVhazsKKwogCWRlZmF1bHQ6 CiAJCXJldCA9IHB0cmFjZV9yZXF1ZXN0KGNoaWxkLCByZXF1ZXN0LCBhZGRyLCBkYXRhKTsK IAkJYnJlYWs7CmRpZmYgLS1naXQgYS9hcmNoL202OGsva2VybmVsL3N5c19tNjhrLmMgYi9h cmNoL202OGsva2VybmVsL3N5c19tNjhrLmMKaW5kZXggYTU2YzE4Zi4uYzlhZDRmOSAxMDA2 NDQKLS0tIGEvYXJjaC9tNjhrL2tlcm5lbC9zeXNfbTY4ay5jCisrKyBiL2FyY2gvbTY4ay9r ZXJuZWwvc3lzX202OGsuYwpAQCAtNjg4LDEwICs2ODgsOSBAQCBhc21saW5rYWdlIGludAog c3lzX2F0b21pY19jbXB4Y2hnXzMyKHVuc2lnbmVkIGxvbmcgbmV3dmFsLCBpbnQgb2xkdmFs LCBpbnQgZDMsIGludCBkNCwgaW50IGQ1LAogCQl1bnNpZ25lZCBsb25nIF9fdXNlciAqbWVt KQogewotCXN0cnVjdCBtbV9zdHJ1Y3QgKm1tID0gY3VycmVudC0+bW07Ci0KIAkvKiBUaGlz IHdhcyBib3Jyb3dlZCBmcm9tIEFSTSdzIGltcGxlbWVudGF0aW9uLiAgKi8KIAlmb3IgKDs7 KSB7CisJCXN0cnVjdCBtbV9zdHJ1Y3QgKm1tID0gY3VycmVudC0+bW07CiAJCXBnZF90ICpw Z2Q7IHBtZF90ICpwbWQ7IHB0ZV90ICpwdGU7CiAJCXNwaW5sb2NrX3QgKnB0bDsKIAkJdW5z aWduZWQgbG9uZyBtZW1fdmFsdWU7Cg== --------------070602080009000606030507 Content-Type: text/plain; x-mac-type="0"; x-mac-creator="0"; name="0001-Add-NPTL-support-for-m68k.patch" Content-Transfer-Encoding: base64 Content-Disposition: inline; filename="0001-Add-NPTL-support-for-m68k.patch" RnJvbSA1ZTc0MjIyZmVjMTI0ZWE4ZDNjNmQ4YjI1MTRjNjM4ZGM1NjIyYTI1IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBNYXhpbSBLdXZ5cmtvdiA8bWF4aW1AY29kZXNvdXJj ZXJ5LmNvbT4KRGF0ZTogRnJpLCAyOCBBdWcgMjAwOSAxNDo0NjoyMSArMDQwMApTdWJqZWN0 OiBbUEFUQ0hdIEFkZCBOUFRMIHN1cHBvcnQgZm9yIG02OGsuCgpUaGlzIHBhdGNoIGFkZHMg c2V2ZXJhbCBzeXNjYWxscywgdGhhdCBwcm92aWRlIG5lY2Vzc2FyeQpmdW5jdGlvbmFsaXR5 IHRvIHN1cHBvcnQgTlBUTCBvbiBtNjhrL0NvbGRGaXJlLgpUaGUgc3lzY2FsbHMgYXJlIHJl YWRfdHAsIHdyaXRlX3RwLCBhdG9taWNfY21weGNoZ18zMiBhbmQgYXRvbWljX2JhcnJpZXIu ClRoZSBjbXB4Y2hnIHN5c2NhbGwgaXMgcmVxdWlyZWQgZm9yIENvbGRGaXJlIGFzIGl0IGRv ZXNuJ3Qgc3VwcG9ydCAnY2FzJwppbnN0cnVjdGlvbi4KCkFsc28gYSBwdHJhY2UgY2FsbCBQ VFJBQ0VfR0VUX1RIUkVBRF9BUkVBIGlzIGFkZGVkIHRvIGFsbG93IGRlYnVnZ2VyIHRvCmlu c3BlY3QgdGhlIFRMUyBzdG9yYWdlLgoKU2lnbmVkLW9mZi1ieTogTWF4aW0gS3V2eXJrb3Yg PG1heGltQGNvZGVzb3VyY2VyeS5jb20+Ci0tLQogYXJjaC9tNjhrL2luY2x1ZGUvYXNtL3B0 cmFjZS5oICAgICAgICAgfCAgICAyICsKIGFyY2gvbTY4ay9pbmNsdWRlL2FzbS90aHJlYWRf aW5mb19tbS5oIHwgICAgMSArCiBhcmNoL202OGsvaW5jbHVkZS9hc20vdW5pc3RkLmggICAg ICAgICB8ICAgIDYgKystCiBhcmNoL202OGsva2VybmVsL2VudHJ5LlMgICAgICAgICAgICAg ICB8ICAgIDQgKysKIGFyY2gvbTY4ay9rZXJuZWwvcHJvY2Vzcy5jICAgICAgICAgICAgIHwg ICAgNCArKwogYXJjaC9tNjhrL2tlcm5lbC9wdHJhY2UuYyAgICAgICAgICAgICAgfCAgICA1 ICsrCiBhcmNoL202OGsva2VybmVsL3N5c19tNjhrLmMgICAgICAgICAgICB8ICAgODEgKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIDcgZmlsZXMgY2hhbmdlZCwgMTAyIGlu c2VydGlvbnMoKyksIDEgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvYXJjaC9tNjhrL2lu Y2x1ZGUvYXNtL3B0cmFjZS5oIGIvYXJjaC9tNjhrL2luY2x1ZGUvYXNtL3B0cmFjZS5oCmlu ZGV4IDhjOTE5NGIuLjZkNzZiYmEgMTAwNjQ0Ci0tLSBhL2FyY2gvbTY4ay9pbmNsdWRlL2Fz bS9wdHJhY2UuaAorKysgYi9hcmNoL202OGsvaW5jbHVkZS9hc20vcHRyYWNlLmgKQEAgLTcx LDYgKzcxLDggQEAgc3RydWN0IHN3aXRjaF9zdGFjayB7CiAjZGVmaW5lIFBUUkFDRV9HRVRG UFJFR1MgICAgICAgICAgMTQKICNkZWZpbmUgUFRSQUNFX1NFVEZQUkVHUyAgICAgICAgICAx NQogCisjZGVmaW5lIFBUUkFDRV9HRVRfVEhSRUFEX0FSRUEgICAgMjUKKwogI2lmZGVmIF9f S0VSTkVMX18KIAogI2lmbmRlZiBQU19TCmRpZmYgLS1naXQgYS9hcmNoL202OGsvaW5jbHVk ZS9hc20vdGhyZWFkX2luZm9fbW0uaCBiL2FyY2gvbTY4ay9pbmNsdWRlL2FzbS90aHJlYWRf aW5mb19tbS5oCmluZGV4IDZlYTVjMzMuLmMyNGEzNTMgMTAwNjQ0Ci0tLSBhL2FyY2gvbTY4 ay9pbmNsdWRlL2FzbS90aHJlYWRfaW5mb19tbS5oCisrKyBiL2FyY2gvbTY4ay9pbmNsdWRl L2FzbS90aHJlYWRfaW5mb19tbS5oCkBAIC0xMCw2ICsxMCw3IEBAIHN0cnVjdCB0aHJlYWRf aW5mbyB7CiAJc3RydWN0IGV4ZWNfZG9tYWluCSpleGVjX2RvbWFpbjsJLyogZXhlY3V0aW9u IGRvbWFpbiAqLwogCWludAkJCXByZWVtcHRfY291bnQ7CS8qIDAgPT4gcHJlZW1wdGFibGUs IDwwID0+IEJVRyAqLwogCV9fdTMyIGNwdTsgLyogc2hvdWxkIGFsd2F5cyBiZSAwIG9uIG02 OGsgKi8KKwl1bnNpZ25lZCBsb25nIHRwX3ZhbHVlOwogCXN0cnVjdCByZXN0YXJ0X2Jsb2Nr ICAgIHJlc3RhcnRfYmxvY2s7CiB9OwogCmRpZmYgLS1naXQgYS9hcmNoL202OGsvaW5jbHVk ZS9hc20vdW5pc3RkLmggYi9hcmNoL202OGsvaW5jbHVkZS9hc20vdW5pc3RkLmgKaW5kZXgg OTQ2ZDg2OS4uYzAzNWM4YiAxMDA2NDQKLS0tIGEvYXJjaC9tNjhrL2luY2x1ZGUvYXNtL3Vu aXN0ZC5oCisrKyBiL2FyY2gvbTY4ay9pbmNsdWRlL2FzbS91bmlzdGQuaApAQCAtMzM2LDEw ICszMzYsMTQgQEAKICNkZWZpbmUgX19OUl9wd3JpdGV2CQkzMzAKICNkZWZpbmUgX19OUl9y dF90Z3NpZ3F1ZXVlaW5mbwkzMzEKICNkZWZpbmUgX19OUl9wZXJmX2NvdW50ZXJfb3Blbgkz MzIKKyNkZWZpbmUgX19OUl9yZWFkX3RwCQkzMzMKKyNkZWZpbmUgX19OUl93cml0ZV90cAkJ MzM0CisjZGVmaW5lIF9fTlJfYXRvbWljX2NtcHhjaGdfMzIJMzM1CisjZGVmaW5lIF9fTlJf YXRvbWljX2JhcnJpZXIJMzM2CiAKICNpZmRlZiBfX0tFUk5FTF9fCiAKLSNkZWZpbmUgTlJf c3lzY2FsbHMJCTMzMworI2RlZmluZSBOUl9zeXNjYWxscwkJMzM3CiAKICNkZWZpbmUgX19B UkNIX1dBTlRfSVBDX1BBUlNFX1ZFUlNJT04KICNkZWZpbmUgX19BUkNIX1dBTlRfT0xEX1JF QURESVIKZGlmZiAtLWdpdCBhL2FyY2gvbTY4ay9rZXJuZWwvZW50cnkuUyBiL2FyY2gvbTY4 ay9rZXJuZWwvZW50cnkuUwppbmRleCBjMzczNWNkLi5iZDE2OGExIDEwMDY0NAotLS0gYS9h cmNoL202OGsva2VybmVsL2VudHJ5LlMKKysrIGIvYXJjaC9tNjhrL2tlcm5lbC9lbnRyeS5T CkBAIC03NTcsNCArNzU3LDggQEAgc3lzX2NhbGxfdGFibGU6CiAJLmxvbmcgc3lzX3B3cml0 ZXYJCS8qIDMzMCAqLwogCS5sb25nIHN5c19ydF90Z3NpZ3F1ZXVlaW5mbwogCS5sb25nIHN5 c19wZXJmX2NvdW50ZXJfb3BlbgorCS5sb25nIHN5c19yZWFkX3RwCisJLmxvbmcgc3lzX3dy aXRlX3RwCisJLmxvbmcgc3lzX2F0b21pY19jbXB4Y2hnXzMyCS8qIDMzNSAqLworCS5sb25n IHN5c19hdG9taWNfYmFycmllcgogCmRpZmYgLS1naXQgYS9hcmNoL202OGsva2VybmVsL3By b2Nlc3MuYyBiL2FyY2gvbTY4ay9rZXJuZWwvcHJvY2Vzcy5jCmluZGV4IDcyYmFkNjUuLjJl MGFkMDcgMTAwNjQ0Ci0tLSBhL2FyY2gvbTY4ay9rZXJuZWwvcHJvY2Vzcy5jCisrKyBiL2Fy Y2gvbTY4ay9rZXJuZWwvcHJvY2Vzcy5jCkBAIC0yNTEsNiArMjUxLDEwIEBAIGludCBjb3B5 X3RocmVhZCh1bnNpZ25lZCBsb25nIGNsb25lX2ZsYWdzLCB1bnNpZ25lZCBsb25nIHVzcCwK IAogCXAtPnRocmVhZC51c3AgPSB1c3A7CiAJcC0+dGhyZWFkLmtzcCA9ICh1bnNpZ25lZCBs b25nKWNoaWxkc3RhY2s7CisKKwlpZiAoY2xvbmVfZmxhZ3MgJiBDTE9ORV9TRVRUTFMpCisJ CXRhc2tfdGhyZWFkX2luZm8ocCktPnRwX3ZhbHVlID0gcmVncy0+ZDU7CisKIAkvKgogCSAq IE11c3Qgc2F2ZSB0aGUgY3VycmVudCBTRkMvREZDIHZhbHVlLCBOT1QgdGhlIHZhbHVlIHdo ZW4KIAkgKiB0aGUgcGFyZW50IHdhcyBsYXN0IGRlc2NoZWR1bGVkIC0gUkdIICAxMC0wOC05 NgpkaWZmIC0tZ2l0IGEvYXJjaC9tNjhrL2tlcm5lbC9wdHJhY2UuYyBiL2FyY2gvbTY4ay9r ZXJuZWwvcHRyYWNlLmMKaW5kZXggMjA3NTU0My4uMGNmNzgyNyAxMDA2NDQKLS0tIGEvYXJj aC9tNjhrL2tlcm5lbC9wdHJhY2UuYworKysgYi9hcmNoL202OGsva2VybmVsL3B0cmFjZS5j CkBAIC0yNjUsNiArMjY1LDExIEBAIGxvbmcgYXJjaF9wdHJhY2Uoc3RydWN0IHRhc2tfc3Ry dWN0ICpjaGlsZCwgbG9uZyByZXF1ZXN0LCBsb25nIGFkZHIsIGxvbmcgZGF0YSkKIAkJCXJl dCA9IC1FRkFVTFQ7CiAJCWJyZWFrOwogCisJY2FzZSBQVFJBQ0VfR0VUX1RIUkVBRF9BUkVB OgorCQlyZXQgPSBwdXRfdXNlcih0YXNrX3RocmVhZF9pbmZvKGNoaWxkKS0+dHBfdmFsdWUs CisJCQkJKHVuc2lnbmVkIGxvbmcgX191c2VyICopIGRhdGEpOworCQlicmVhazsKKwogCWRl ZmF1bHQ6CiAJCXJldCA9IHB0cmFjZV9yZXF1ZXN0KGNoaWxkLCByZXF1ZXN0LCBhZGRyLCBk YXRhKTsKIAkJYnJlYWs7CmRpZmYgLS1naXQgYS9hcmNoL202OGsva2VybmVsL3N5c19tNjhr LmMgYi9hcmNoL202OGsva2VybmVsL3N5c19tNjhrLmMKaW5kZXggN2Y1NGVmYS4uYzlhZDRm OSAxMDA2NDQKLS0tIGEvYXJjaC9tNjhrL2tlcm5lbC9zeXNfbTY4ay5jCisrKyBiL2FyY2gv bTY4ay9rZXJuZWwvc3lzX202OGsuYwpAQCAtMjksNiArMjksMTEgQEAKICNpbmNsdWRlIDxh c20vdHJhcHMuaD4KICNpbmNsdWRlIDxhc20vcGFnZS5oPgogI2luY2x1ZGUgPGFzbS91bmlz dGQuaD4KKyNpbmNsdWRlIDxsaW51eC9lbGYuaD4KKyNpbmNsdWRlIDxhc20vdGxiLmg+CisK K2FzbWxpbmthZ2UgaW50IGRvX3BhZ2VfZmF1bHQoc3RydWN0IHB0X3JlZ3MgKnJlZ3MsIHVu c2lnbmVkIGxvbmcgYWRkcmVzcywKKwkJCXVuc2lnbmVkIGxvbmcgZXJyb3JfY29kZSk7CiAK IC8qIGNvbW1vbiBjb2RlIGZvciBvbGQgYW5kIG5ldyBtbWFwcyAqLwogc3RhdGljIGlubGlu ZSBsb25nIGRvX21tYXAyKApAQCAtNjYzLDMgKzY2OCw3OSBAQCBpbnQga2VybmVsX2V4ZWN2 ZShjb25zdCBjaGFyICpmaWxlbmFtZSwgY2hhciAqY29uc3QgYXJndltdLCBjaGFyICpjb25z dCBlbnZwW10pCiAJCQk6ICJkIiAoX19hKSwgImQiIChfX2IpLCAiZCIgKF9fYykpOwogCXJl dHVybiBfX3JlczsKIH0KKworYXNtbGlua2FnZSB1bnNpZ25lZCBsb25nCitzeXNfcmVhZF90 cCh2b2lkKQoreworCXJldHVybiBjdXJyZW50X3RocmVhZF9pbmZvKCktPnRwX3ZhbHVlOwor fQorCithc21saW5rYWdlIGludAorc3lzX3dyaXRlX3RwKHVuc2lnbmVkIGxvbmcgdHApCit7 CisJY3VycmVudF90aHJlYWRfaW5mbygpLT50cF92YWx1ZSA9IHRwOworCXJldHVybiAwOwor fQorCisvKiBUaGlzIHN5c2NhbGwgZ2V0cyBpdHMgYXJndW1lbnRzIGluIEEwIChtZW0pLCBE MiAob2xkdmFsKSBhbmQKKyAgIEQxIChuZXd2YWwpLiAgKi8KK2FzbWxpbmthZ2UgaW50Citz eXNfYXRvbWljX2NtcHhjaGdfMzIodW5zaWduZWQgbG9uZyBuZXd2YWwsIGludCBvbGR2YWws IGludCBkMywgaW50IGQ0LCBpbnQgZDUsCisJCXVuc2lnbmVkIGxvbmcgX191c2VyICptZW0p Cit7CisJLyogVGhpcyB3YXMgYm9ycm93ZWQgZnJvbSBBUk0ncyBpbXBsZW1lbnRhdGlvbi4g ICovCisJZm9yICg7OykgeworCQlzdHJ1Y3QgbW1fc3RydWN0ICptbSA9IGN1cnJlbnQtPm1t OworCQlwZ2RfdCAqcGdkOyBwbWRfdCAqcG1kOyBwdGVfdCAqcHRlOworCQlzcGlubG9ja190 ICpwdGw7CisJCXVuc2lnbmVkIGxvbmcgbWVtX3ZhbHVlOworCisJCWRvd25fcmVhZCgmbW0t Pm1tYXBfc2VtKTsKKwkJcGdkID0gcGdkX29mZnNldChtbSwgKHVuc2lnbmVkIGxvbmcpbWVt KTsKKwkJaWYgKCFwZ2RfcHJlc2VudCgqcGdkKSkKKwkJCWdvdG8gYmFkX2FjY2VzczsKKwkJ cG1kID0gcG1kX29mZnNldChwZ2QsICh1bnNpZ25lZCBsb25nKW1lbSk7CisJCWlmICghcG1k X3ByZXNlbnQoKnBtZCkpCisJCQlnb3RvIGJhZF9hY2Nlc3M7CisJCXB0ZSA9IHB0ZV9vZmZz ZXRfbWFwX2xvY2sobW0sIHBtZCwgKHVuc2lnbmVkIGxvbmcpbWVtLCAmcHRsKTsKKwkJaWYg KCFwdGVfcHJlc2VudCgqcHRlKSB8fCAhcHRlX2RpcnR5KCpwdGUpKSB7CisJCQlwdGVfdW5t YXBfdW5sb2NrKHB0ZSwgcHRsKTsKKwkJCWdvdG8gYmFkX2FjY2VzczsKKwkJfQorCisJCW1l bV92YWx1ZSA9ICptZW07CisJCWlmIChtZW1fdmFsdWUgPT0gb2xkdmFsKQorCQkJKm1lbSA9 IG5ld3ZhbDsKKworCQlwdGVfdW5tYXBfdW5sb2NrKHB0ZSwgcHRsKTsKKwkJdXBfcmVhZCgm bW0tPm1tYXBfc2VtKTsKKwkJcmV0dXJuIG1lbV92YWx1ZTsKKworYmFkX2FjY2VzczoKKwkJ dXBfcmVhZCgmbW0tPm1tYXBfc2VtKTsKKwkJLyogVGhpcyBpcyBub3QgbmVjZXNzYXJpbHkg YSBiYWQgYWNjZXNzLCB3ZSBjYW4gZ2V0IGhlcmUgaWYKKwkJICAgYSBtZW1vcnkgd2UncmUg dHJ5aW5nIHRvIHdyaXRlIHRvIHNob3VsZCBiZSBjb3BpZWQtb24td3JpdGUuCisJCSAgIE1h a2UgdGhlIGtlcm5lbCBkbyB0aGUgbmVjZXNzYXJ5IHBhZ2Ugc3R1ZmYsIHRoZW4gcmUtaXRl cmF0ZS4KKwkJICAgU2ltdWxhdGUgYSB3cml0ZSBhY2Nlc3MgZmF1bHQgdG8gZG8gdGhhdC4g ICovCisJCXsKKwkJCS8qIFRoZSBmaXJzdCBhcmd1bWVudCBvZiB0aGUgZnVuY3Rpb24gY29y cmVzcG9uZHMgdG8KKwkJCSAgIEQxLCB3aGljaCBpcyB0aGUgZmlyc3QgZmllbGQgb2Ygc3Ry dWN0IHB0X3JlZ3MuICAqLworCQkJc3RydWN0IHB0X3JlZ3MgKmZwID0gKHN0cnVjdCBwdF9y ZWdzICopJm5ld3ZhbDsKKworCQkJLyogJzMnIGlzIGFuIFJNVyBmbGFnLiAgKi8KKwkJCWlm IChkb19wYWdlX2ZhdWx0KGZwLCAodW5zaWduZWQgbG9uZyltZW0sIDMpKQorCQkJCS8qIElm IHRoZSBkb19wYWdlX2ZhdWx0KCkgZmFpbGVkLCB3ZSBkb24ndAorCQkJCSAgIGhhdmUgYW55 dGhpbmcgbWVhbmluZ2Z1bCB0byByZXR1cm4uCisJCQkJICAgVGhlcmUgc2hvdWxkIGJlIGEg U0lHU0VHViBwZW5kaW5nIGZvcgorCQkJCSAgIHRoZSBwcm9jZXNzLiAgKi8KKwkJCQlyZXR1 cm4gMHhkZWFkYmVlZjsKKwkJfQorCX0KK30KKworYXNtbGlua2FnZSBpbnQKK3N5c19hdG9t aWNfYmFycmllcih2b2lkKQoreworCS8qIG5vIGNvZGUgbmVlZGVkIGZvciB1bmlwcm9jcyAq LworCXJldHVybiAwOworfQotLSAKMS42LjQKCg== --------------070602080009000606030507--