From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id ; Mon, 18 Feb 2002 05:50:43 -0500 Received: (majordomo@vger.kernel.org) by vger.kernel.org id ; Mon, 18 Feb 2002 05:50:35 -0500 Received: from f74.law14.hotmail.com ([64.4.21.74]:9734 "EHLO hotmail.com") by vger.kernel.org with ESMTP id ; Mon, 18 Feb 2002 05:50:20 -0500 X-Originating-IP: [203.115.6.46] From: "Ishan Jayawardena" To: linux-kernel@vger.kernel.org Subject: Re: [PATCH] DevFS support for /dev/cpu/X/(cpuid|msr) Date: Mon, 18 Feb 2002 10:50:13 +0000 Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="----=_NextPart_000_3814_5a8d_7301" Message-ID: X-OriginalArrivalTime: 18 Feb 2002 10:50:14.0248 (UTC) FILETIME=[0B864E80:01C1B86A] Sender: linux-kernel-owner@vger.kernel.org X-Mailing-List: linux-kernel@vger.kernel.org This is a multi-part message in MIME format. ------=_NextPart_000_3814_5a8d_7301 Content-Type: text/plain; format=flowed Perhaps this will suit your taste better... I'd love to extend this work to support Paul Russell's hotplug cpu work, but I have absolutely no way at present to test it. (If some kind party would like to donate a quad pentium 4 Xeon with hotplug cpu support, I'll be more than happy to do so ;) This is against 2.4.18-pre9-ac4 with devfs v199.9 Relevent comments, advise, improvisations, flames, welcome. I. O. Jayawardena . _________________________________________________________________ Send and receive Hotmail on your mobile device: http://mobile.msn.com ------=_NextPart_000_3814_5a8d_7301 Content-Type: application/octet-stream; name="devfs.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="devfs.patch" LS0tIGxpbnV4L2ZzL2RldmZzL2Jhc2UuYwlNb24gRmViIDE4IDE2OjA3OjQ5 IDIwMDIKKysrIGxpbnV4LWlvai9mcy9kZXZmcy9iYXNlLmMJTW9uIEZlYiAx OCAxMjo0NTo0MiAyMDAyCkBAIC02MzEsNiArNjMxLDcgQEAKICNpbmNsdWRl IDxsaW51eC9pbml0Lmg+CiAjaW5jbHVkZSA8bGludXgvZGV2ZnNfZnMuaD4K ICNpbmNsdWRlIDxsaW51eC9kZXZmc19mc19rZXJuZWwuaD4KKyNpbmNsdWRl IDxsaW51eC90aHJlYWRzLmg+CiAjaW5jbHVkZSA8bGludXgvc21wX2xvY2su aD4KICNpbmNsdWRlIDxsaW51eC9zbXAuaD4KICNpbmNsdWRlIDxsaW51eC92 ZXJzaW9uLmg+CkBAIC0xNjI0LDYgKzE2MjUsNzIgQEAgZGV2ZnNfaGFuZGxl X3QgZGV2ZnNfcmVnaXN0ZXIgKGRldmZzX2hhbgogCiAKIC8qKgorICogCWRl dmZzX3JlZ2lzdGVyX3Blcl9jcHUgLSByZWdpc3RlciBhIGRldmljZSBub2Rl IGFjcm9zcyBhbGwgCisgKgkJY3B1LXNwZWNpZmljIGRpcmVjdG9yaWVzLgor ICoJQGxlYWZuYW1lIC0gdGhlIG5hbWUgb2YgdGhlIGRldmljZSBub2RlCisg KgorICoJQWxsIG90aGVyIHBhcmFtZXRlcnMgYXJlIGZvciBkZXZmc19yZWdp c3RlcigpLiBSZXR1cm5zIHplcm8gb24gc3VjY2Vzcy4KKyAqLworCitpbnQg ZGV2ZnNfcmVnaXN0ZXJfcGVyX2NwdSAoY29uc3QgY2hhciAqbGVhZm5hbWUs IHVuc2lnbmVkIGludCBmbGFncywgCisJCQl1bnNpZ25lZCBpbnQgbWFqb3Is IHVuc2lnbmVkIGludCBtaW5vcl9zdGFydCwKKwkJCXVtb2RlX3QgbW9kZSwg dm9pZCAqb3BzLCB2b2lkICppbmZvKQoreworICAgIGludCBpOworICAgIGNo YXIgKm5hbWU7CisgICAgY2hhciB0bXBbNV0gPSB7ICIwIiB9OyAvKiBGSVhN RTogdGhpcyBzdHJpbmcgbWF5IG92ZXJmbG93LCBidXQgd2UgZG9uJ3Qga25v dworCQkJdGhlIHNpemVvZiBzbXBfbnVtX2NwdXMgdW50aWwgd2UgZ2V0IGl0 IGludG8gYSBzdHJpbmcgKi8KKworICAgIGlmIChzbXBfbnVtX2NwdXMgPiAx KSBzcHJpbnRmICh0bXAsICIlZCIsIHNtcF9udW1fY3B1cyAtIDEpOworICAg IG5hbWUgPSBrbWFsbG9jIChzdHJsZW4gKGxlYWZuYW1lKSArIHN0cmxlbiAo dG1wKSArIHNpemVvZiAoY2hhcikgKiA2LCAKKwkJCUdGUF9LRVJORUwpOwor ICAgIGlmICghbmFtZSkgcmV0dXJuIC1FTk9NRU07CisgICAgZm9yKGkgPSAw OyBpIDwgc21wX251bV9jcHVzOyBpKyspIHsKKwlzcHJpbnRmIChuYW1lLCAi Y3B1LyVkLyVzIiwgaSwgbGVhZm5hbWUpOworCWlmICghZGV2ZnNfcmVnaXN0 ZXIgKE5VTEwsIG5hbWUsIGZsYWdzLCBtYWpvciwgbWlub3Jfc3RhcnQgKyBp LCAKKwkJCQkJbW9kZSwgb3BzLCBpbmZvKSkgeworCSAgICBQUklOVEsgKCIo KTogZGV2ZnNfcmVnaXN0ZXIoKSBmYWlsZWQuXG4iKTsKKwkgICAga2ZyZWUg KG5hbWUpOworCSAgICByZXR1cm4gLUVBR0FJTjsKKwl9CisgICAgfQorICAg IGtmcmVlIChuYW1lKTsKKyAgICByZXR1cm4gMDsKK30gLyogRW5kIGZ1bmN0 aW9uIGRldmZzX3JlZ2lzdGVyX3Blcl9jcHUgKi8KKworCisvKioKKyAqCWRl dmZzX3VucmVnaXN0ZXJfcGVyX2NwdSAtIHVucmVnaXN0ZXIgYSBub2RlIGFj cm9zcyAvZGV2L2NwdS8KKyAqCUBsZWFmbmFtZSAtIHRoZSBuYW1lIG9mIHRo ZSBkZXZpY2Ugbm9kZQorICoKKyAqCVVucmVnaXN0ZXJzIGEgbnVtYmVyIG9m IG5vZGVzIChwcm9iYWJseSByZWdpc3RlcmVkIHdpdGgKKyAqCWRldmZzX3Jl Z2lzdGVyX3Blcl9jcHUoKSApCisgKi8KKwordm9pZCBkZXZmc191bnJlZ2lz dGVyX3Blcl9jcHUgKGNvbnN0IGNoYXIgKmxlYWZuYW1lKQoreworICAgIGlu dCBpOworICAgIGNoYXIgKm5hbWU7CisgICAgY2hhciB0bXBbNV0gPSB7ICIw IiB9OworICAgIGRldmZzX2hhbmRsZV90IGRoOworCisgICAgaWYgKHNtcF9u dW1fY3B1cyA+IDEpIHNwcmludGYgKHRtcCwgIiVkIiwgc21wX251bV9jcHVz IC0gMSk7CisgICAgbmFtZSA9IGttYWxsb2MgKHN0cmxlbiAobGVhZm5hbWUp ICsgc3RybGVuICh0bXApICsgc2l6ZW9mIChjaGFyKSAqIDYsCisJCQlHRlBf S0VSTkVMKTsKKyAgICBpZiAoIW5hbWUpIHJldHVybjsKKyAgICBmb3IgKGkg PSAwOyBpIDwgc21wX251bV9jcHVzOyBpKyspIHsKKwlzcHJpbnRmIChuYW1l LCAiY3B1LyVkLyVzIiwgaSwgbGVhZm5hbWUpOworCWRoID0gX2RldmZzX3dh bGtfcGF0aCAoTlVMTCwgbmFtZSwgc3RybGVuIChuYW1lKSwgMCk7CisJaWYg KCFkaCkgeworCSAgICBrZnJlZSAobmFtZSk7CisJICAgIHJldHVybjsKKwl9 CisJZGV2ZnNfdW5yZWdpc3RlciAoZGgpOworICAgIH0KKyAgICBrZnJlZSAo bmFtZSk7Cit9IC8qIEVuZCBmdW5jdGlvbiBkZXZmc191bnJlZ2lzdGVyX3Bl cl9jcHUgKi8KKworLyoqCiAgKglfZGV2ZnNfdW5ob29rIC0gVW5ob29rIGEg ZGV2aWNlIGVudHJ5IGZyb20gaXRzIHBhcmVudHMgbGlzdAogICoJQGRlOiBU aGUgZW50cnkgdG8gdW5ob29rLgogICoKQEAgLTIzNTUsNyArMjQyMiw5IEBA IF9fc2V0dXAoImRldmZzPSIsIGRldmZzX3NldHVwKTsKIAogRVhQT1JUX1NZ TUJPTChkZXZmc19wdXQpOwogRVhQT1JUX1NZTUJPTChkZXZmc19yZWdpc3Rl cik7CitFWFBPUlRfU1lNQk9MKGRldmZzX3JlZ2lzdGVyX3Blcl9jcHUpOwog RVhQT1JUX1NZTUJPTChkZXZmc191bnJlZ2lzdGVyKTsKK0VYUE9SVF9TWU1C T0woZGV2ZnNfdW5yZWdpc3Rlcl9wZXJfY3B1KTsKIEVYUE9SVF9TWU1CT0wo ZGV2ZnNfbWtfc3ltbGluayk7CiBFWFBPUlRfU1lNQk9MKGRldmZzX21rX2Rp cik7CiBFWFBPUlRfU1lNQk9MKGRldmZzX2dldF9oYW5kbGUpOwpAQCAtMzE3 Miw2ICszMjQxLDE3IEBAIHN0YXRpYyBpbnQgZGV2ZnNfbWtub2QgKHN0cnVj dCBpbm9kZSAqZGkKIAkJCSAgaW5vZGUtPmlfdWlkLCBpbm9kZS0+aV9naWQs IGZzX2luZm8sIDApOwogICAgIHJldHVybiAwOwogfSAgIC8qICBFbmQgRnVu Y3Rpb24gZGV2ZnNfbWtub2QgICovCisKK3ZvaWQgZGV2ZnNfbWtfZGlyX3Bl cl9jcHUgKHZvaWQpCit7CisgICAgaW50IGk7CisgICAgY2hhciBuYW1lWzdd OworCisgICAgZm9yIChpID0gMDsgaSA8IHNtcF9udW1fY3B1czsgaSsrKSB7 CisJc3ByaW50ZiAobmFtZSwgImNwdS8lZCIsIGkpOworCWRldmZzX21rX2Rp ciAoTlVMTCwgbmFtZSwgTlVMTCk7CisgICAgfQorfQogCiBzdGF0aWMgaW50 IGRldmZzX3JlYWRsaW5rIChzdHJ1Y3QgZGVudHJ5ICpkZW50cnksIGNoYXIg KmJ1ZmZlciwgaW50IGJ1ZmxlbikKIHsKLS0tIGxpbnV4L2luY2x1ZGUvbGlu dXgvZGV2ZnNfZnNfa2VybmVsLmgJTW9uIEZlYiAxOCAxNjowNToyMSAyMDAy CisrKyBsaW51eC1pb2ovaW5jbHVkZS9saW51eC9kZXZmc19mc19rZXJuZWwu aAlNb24gRmViIDE4IDE0OjA4OjM4IDIwMDIKQEAgLTczLDEyICs3MywxNyBA QCBleHRlcm4gZGV2ZnNfaGFuZGxlX3QgZGV2ZnNfcmVnaXN0ZXIgKGRlCiAJ CQkJICAgICAgdW5zaWduZWQgaW50IGZsYWdzLAogCQkJCSAgICAgIHVuc2ln bmVkIGludCBtYWpvciwgdW5zaWduZWQgaW50IG1pbm9yLAogCQkJCSAgICAg IHVtb2RlX3QgbW9kZSwgdm9pZCAqb3BzLCB2b2lkICppbmZvKTsKK2V4dGVy biBpbnQgZGV2ZnNfcmVnaXN0ZXJfcGVyX2NwdSAoY29uc3QgY2hhciAqbGVh Zm5hbWUsIHVuc2lnbmVkIGludCBmbGFncywKKwkJCQkgICB1bnNpZ25lZCBp bnQgbWFqb3IsIHVuc2lnbmVkIGludCBtaW5vcl9zdGFydCwKKwkJCQkgICB1 bW9kZV90IG1vZGUsIHZvaWQgKm9wcywgdm9pZCAqaW5mbyk7CiBleHRlcm4g dm9pZCBkZXZmc191bnJlZ2lzdGVyIChkZXZmc19oYW5kbGVfdCBkZSk7Citl eHRlcm4gdm9pZCBkZXZmc191bnJlZ2lzdGVyX3Blcl9jcHUgKGNvbnN0IGNo YXIgKmxlYWZuYW1lKTsKIGV4dGVybiBpbnQgZGV2ZnNfbWtfc3ltbGluayAo ZGV2ZnNfaGFuZGxlX3QgZGlyLCBjb25zdCBjaGFyICpuYW1lLAogCQkJICAg ICB1bnNpZ25lZCBpbnQgZmxhZ3MsIGNvbnN0IGNoYXIgKmxpbmssCiAJCQkg ICAgIGRldmZzX2hhbmRsZV90ICpoYW5kbGUsIHZvaWQgKmluZm8pOwogZXh0 ZXJuIGRldmZzX2hhbmRsZV90IGRldmZzX21rX2RpciAoZGV2ZnNfaGFuZGxl X3QgZGlyLCBjb25zdCBjaGFyICpuYW1lLAogCQkJCSAgICB2b2lkICppbmZv KTsKK2V4dGVybiB2b2lkIGRldmZzX21rX2Rpcl9wZXJfY3B1ICh2b2lkKTsK IGV4dGVybiBkZXZmc19oYW5kbGVfdCBkZXZmc19nZXRfaGFuZGxlIChkZXZm c19oYW5kbGVfdCBkaXIsIGNvbnN0IGNoYXIgKm5hbWUsCiAJCQkJCXVuc2ln bmVkIGludCBtYWpvcix1bnNpZ25lZCBpbnQgbWlub3IsCiAJCQkJCWNoYXIg dHlwZSwgaW50IHRyYXZlcnNlX3N5bWxpbmtzKTsKQEAgLTE0OSw5ICsxNTQs MjAgQEAgc3RhdGljIGlubGluZSBkZXZmc19oYW5kbGVfdCBkZXZmc19yZWdp cwogewogICAgIHJldHVybiBOVUxMOwogfQorc3RhdGljIGlubGluZSBpbnQg ZGV2ZnNfcmVnaXN0ZXJfcGVyX2NwdSAoY29uc3QgY2hhciAqbmFtZSwKKwkJ CQkJICB1bnNpZ25lZCBpbnQgZmxhZ3MsIAorCQkJCQkgIHVuc2lnbmVkIGlu dCBtYWpvciwgCisJCQkJCSAgdW5zaWduZWQgaW50IG1pbm9yX3N0YXJ0LAor CQkJCQkgIHVtb2RlX3QgbW9kZSwgdm9pZCAqb3BzLCB2b2lkICppbmZvKTsK K3sKKyAgICByZXR1cm4gTlVMTDsKK30KIHN0YXRpYyBpbmxpbmUgdm9pZCBk ZXZmc191bnJlZ2lzdGVyIChkZXZmc19oYW5kbGVfdCBkZSkKIHsKLSAgICBy ZXR1cm47Cit9CitzdGF0aWMgaW5saW5lIHZvaWQgZGV2ZnNfdW5yZWdpc3Rl cl9wZXJfY3B1IChjb25zdCBjaGFyICpuYW1lKQoreworICAgIHJldHVybiBO VUxMOwogfQogc3RhdGljIGlubGluZSBpbnQgZGV2ZnNfbWtfc3ltbGluayAo ZGV2ZnNfaGFuZGxlX3QgZGlyLCBjb25zdCBjaGFyICpuYW1lLAogCQkJCSAg ICB1bnNpZ25lZCBpbnQgZmxhZ3MsIGNvbnN0IGNoYXIgKmxpbmssCkBAIC0x NjMsNiArMTc5LDkgQEAgc3RhdGljIGlubGluZSBkZXZmc19oYW5kbGVfdCBk ZXZmc19ta19kaQogCQkJCQkgICBjb25zdCBjaGFyICpuYW1lLCB2b2lkICpp bmZvKQogewogICAgIHJldHVybiBOVUxMOworfQorc3RhdGljIGlubGluZSB2 b2lkIGRldmZzX21rX2Rpcl9wZXJfY3B1ICh2b2lkKQorewogfQogc3RhdGlj IGlubGluZSBkZXZmc19oYW5kbGVfdCBkZXZmc19nZXRfaGFuZGxlIChkZXZm c19oYW5kbGVfdCBkaXIsCiAJCQkJCSAgICAgICBjb25zdCBjaGFyICpuYW1l LAotLS0gbGludXgvaW5pdC9tYWluLmMJTW9uIEZlYiAxOCAxNjowNzozNyAy MDAyCisrKyBsaW51eC1pb2ovaW5pdC9tYWluLmMJU3VuIEZlYiAxNyAyMzoy Njo0MyAyMDAyCkBAIC00OTcsOSArNDk3LDEzIEBAIHVuc2lnbmVkIGxvbmcg d2FpdF9pbml0X2lkbGU7CiBzdGF0aWMgdm9pZCBfX2luaXQgc21wX2luaXQo dm9pZCkKIHsKIAlBUElDX2luaXRfdW5pcHJvY2Vzc29yKCk7CisKKwlkZXZm c19ta19kaXJfcGVyX2NwdSgpOwogfQogI2Vsc2UKLSNkZWZpbmUgc21wX2lu aXQoKQlkbyB7IH0gd2hpbGUgKDApCisjZGVmaW5lIHNtcF9pbml0KCkJZG8g eyBcCisJCWRldmZzX21rX2Rpcl9wZXJfY3B1KCk7IFwKKwl9IHdoaWxlICgw KQogI2VuZGlmCiAKICNlbHNlCkBAIC01MjMsNiArNTI3LDggQEAgc3RhdGlj IHZvaWQgX19pbml0IHNtcF9pbml0KHZvaWQpCiAJCWJhcnJpZXIoKTsKIAl9 CiAJcHJpbnRrKCJBbGwgcHJvY2Vzc29ycyBoYXZlIGRvbmUgaW5pdF9pZGxl XG4iKTsKKworCWRldmZzX21rX2Rpcl9wZXJfY3B1KCk7CiB9CiAKICNlbmRp ZgotLS0gbGludXgvYXJjaC9pMzg2L2tlcm5lbC9jcHVpZC5jCVRodSBPY3Qg MTEgMTI6MDQ6NTcgMjAwMQorKysgbGludXgtaW9qL2FyY2gvaTM4Ni9rZXJu ZWwvY3B1aWQuYwlNb24gRmViIDE4IDE1OjE5OjMyIDIwMDIKQEAgLTMyLDYg KzMyLDcgQEAKICNpbmNsdWRlIDxsaW51eC9lcnJuby5oPgogI2luY2x1ZGUg PGxpbnV4L2ZjbnRsLmg+CiAjaW5jbHVkZSA8bGludXgvaW5pdC5oPgorI2lu Y2x1ZGUgPGxpbnV4L2RldmZzX2ZzX2tlcm5lbC5oPgogI2luY2x1ZGUgPGxp bnV4L3BvbGwuaD4KICNpbmNsdWRlIDxsaW51eC9zbXAuaD4KICNpbmNsdWRl IDxsaW51eC9tYWpvci5oPgpAQCAtMTQwLDI0ICsxNDEsMjYgQEAgc3RhdGlj IHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgY3B1aWRfZm9wcwogICBvcGVuOgkJ Y3B1aWRfb3BlbiwKIH07CiAKLWludCBfX2luaXQgY3B1aWRfaW5pdCh2b2lk KQorc3RhdGljIGludCBfX2luaXQgY3B1aWRfaW5pdCh2b2lkKQogewotICBp ZiAocmVnaXN0ZXJfY2hyZGV2KENQVUlEX01BSk9SLCAiY3B1L2NwdWlkIiwg JmNwdWlkX2ZvcHMpKSB7CisgIGlmIChkZXZmc19yZWdpc3Rlcl9jaHJkZXYo Q1BVSURfTUFKT1IsICJjcHUvJWQvY3B1aWQiLCAmY3B1aWRfZm9wcykpIHsK ICAgICBwcmludGsoS0VSTl9FUlIgImNwdWlkOiB1bmFibGUgdG8gZ2V0IG1h am9yICVkIGZvciBjcHVpZFxuIiwKIAkgICBDUFVJRF9NQUpPUik7CiAgICAg cmV0dXJuIC1FQlVTWTsKICAgfQogCi0gIHJldHVybiAwOworICByZXR1cm4g ZGV2ZnNfcmVnaXN0ZXJfcGVyX2NwdSgiY3B1aWQiLCBERVZGU19GTF9ERUZB VUxULCBDUFVJRF9NQUpPUiwgMCwKKwkJU19JRkNIUiB8IFNfSVJVU1IgfCBT X0lSR1JQLCAmY3B1aWRfZm9wcywgTlVMTCk7CiB9CiAKIHZvaWQgX19leGl0 IGNwdWlkX2V4aXQodm9pZCkKIHsKLSAgdW5yZWdpc3Rlcl9jaHJkZXYoQ1BV SURfTUFKT1IsICJjcHUvY3B1aWQiKTsKKyAgZGV2ZnNfdW5yZWdpc3Rlcl9j aHJkZXYoQ1BVSURfTUFKT1IsICJjcHUvJWQvY3B1aWQiKTsKKyAgZGV2ZnNf dW5yZWdpc3Rlcl9wZXJfY3B1KCJjcHVpZCIpOwogfQogCiBtb2R1bGVfaW5p dChjcHVpZF9pbml0KTsKLW1vZHVsZV9leGl0KGNwdWlkX2V4aXQpCittb2R1 bGVfZXhpdChjcHVpZF9leGl0KTsKIAogRVhQT1JUX05PX1NZTUJPTFM7CiAK LS0tIGxpbnV4L2FyY2gvaTM4Ni9rZXJuZWwvbXNyLmMJVGh1IE9jdCAxMSAx MjowNDo1NyAyMDAxCisrKyBsaW51eC1pb2ovYXJjaC9pMzg2L2tlcm5lbC9t c3IuYwlNb24gRmViIDE4IDE1OjE5OjA1IDIwMDIKQEAgLTMxLDYgKzMxLDcg QEAKICNpbmNsdWRlIDxsaW51eC9lcnJuby5oPgogI2luY2x1ZGUgPGxpbnV4 L2ZjbnRsLmg+CiAjaW5jbHVkZSA8bGludXgvaW5pdC5oPgorI2luY2x1ZGUg PGxpbnV4L2RldmZzX2ZzX2tlcm5lbC5oPgogI2luY2x1ZGUgPGxpbnV4L3Bv bGwuaD4KICNpbmNsdWRlIDxsaW51eC9zbXAuaD4KICNpbmNsdWRlIDxsaW51 eC9tYWpvci5oPgpAQCAtMjQ4LDI0ICsyNDksMjYgQEAgc3RhdGljIHN0cnVj dCBmaWxlX29wZXJhdGlvbnMgbXNyX2ZvcHMgPQogICBvcGVuOgkJbXNyX29w ZW4sCiB9OwogCi1pbnQgX19pbml0IG1zcl9pbml0KHZvaWQpCitzdGF0aWMg aW50IF9faW5pdCBtc3JfaW5pdCh2b2lkKQogewotICBpZiAocmVnaXN0ZXJf Y2hyZGV2KE1TUl9NQUpPUiwgImNwdS9tc3IiLCAmbXNyX2ZvcHMpKSB7Cisg IGlmIChkZXZmc19yZWdpc3Rlcl9jaHJkZXYoTVNSX01BSk9SLCAiY3B1LyVk L21zciIsICZtc3JfZm9wcykpIHsKICAgICBwcmludGsoS0VSTl9FUlIgIm1z cjogdW5hYmxlIHRvIGdldCBtYWpvciAlZCBmb3IgbXNyXG4iLAogCSAgIE1T Ul9NQUpPUik7CiAgICAgcmV0dXJuIC1FQlVTWTsKICAgfQogICAKLSAgcmV0 dXJuIDA7CisgIHJldHVybiBkZXZmc19yZWdpc3Rlcl9wZXJfY3B1KCJtc3Ii LCBERVZGU19GTF9ERUZBVUxULCBNU1JfTUFKT1IsIDAsCisJCQlTX0lGQ0hS IHwgU19JUlVTUiB8IFNfSVJHUlAsICZtc3JfZm9wcywgTlVMTCk7CiB9CiAK IHZvaWQgX19leGl0IG1zcl9leGl0KHZvaWQpCiB7Ci0gIHVucmVnaXN0ZXJf Y2hyZGV2KE1TUl9NQUpPUiwgImNwdS9tc3IiKTsKKyAgZGV2ZnNfdW5yZWdp c3Rlcl9jaHJkZXYoTVNSX01BSk9SLCAiY3B1LyVkL21zciIpOworICBkZXZm c191bnJlZ2lzdGVyX3Blcl9jcHUoIm1zciIpOwogfQogCiBtb2R1bGVfaW5p dChtc3JfaW5pdCk7Ci1tb2R1bGVfZXhpdChtc3JfZXhpdCkKK21vZHVsZV9l eGl0KG1zcl9leGl0KTsKIAogRVhQT1JUX05PX1NZTUJPTFM7CiAK ------=_NextPart_000_3814_5a8d_7301--