From mboxrd@z Thu Jan 1 00:00:00 1970 From: oliver.schlenker@domain.hid Date: Mon, 19 Oct 2009 13:14:42 +0000 Message-ID: <0000AE44.4ADC8261@domain.hid> MIME-Version: 1.0 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: base64 Subject: Re: [Xenomai-help] :: rt_printf with daemonized task List-Id: Help regarding installation and common use of Xenomai List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: jan.kiszka@domain.hid Cc: xenomai@xenomai.org DQoNCg0KDQoNCi0tLS0tLS0tIE9yaWdpbmFsIE1lc3NhZ2UgLS0tLS0tLS0NClN1YmplY3Q6IFJl OiA6OiBydF9wcmludGYgd2l0aCBkYWVtb25pemVkIHRhc2sgKDA5LU9rdC0yMDA5IDE2OjU5KQ0K RnJvbTogICAgSmFuIEtpc3prYSA8amFuLmtpc3prYUBzaWVtZW5zLmNvbT4NClRvOiAgICAgIG9s aXZlci5zY2hsZW5rZXJAc21tb3Rpb25jb250cm9sLmRlDQoNCj4gDQo+IFllcyAodG8gdGhlIGZv cm1lciksIGF2b2lkaW5nIGNvZGUgZHVwbGljYXRpb24gd2FzIHRoZSBtb3RpdmF0aW9uIGZvcg0K PiB0aGlzIGZ1bmN0aW9ucy4NCj4gDQo+IEFub3RoZXIgd2lzaDogUGxlYXNlIHNwbGl0IHVwIHlv dXIgY2hhbmdlcyBpbnRvIHR3byBwYXRjaGVzOiBmaXJzdCB0aGUNCj4gYXRmb3JrIGZpeCwgb24g dG9wIG9mIGl0IHRoZSBzeXNsb2cgZXh0ZW5zaW9uLiBUaGF0IGFsbG93cyB1cywgZS5nLiwgdG8N Cj4gYXBwbHkgdGhlIGZpeCBhbHNvIHRvIDIuNC4NCg0KLi4uIGFuZCB0aGUgbmV4dCBwYXRjaCBm b3IgYSBzeXNsb2cgZW5hYmxlZCBydF9wcmludC4NCg0KDQo+IA0KPiBKYW4NCj4gDQo+IC0tIA0K PiBTaWVtZW5zIEFHLCBDb3Jwb3JhdGUgVGVjaG5vbG9neSwgQ1QgU0UgMg0KPiBDb3Jwb3JhdGUg Q29tcGV0ZW5jZSBDZW50ZXIgRW1iZWRkZWQgTGludXgNCg0KDQpPbGl2ZXINCg0KDQoNCg0KDQot LS0gcnRkay5oLm9yaWdpbmFsCTIwMDctMTItMDkgMTE6NDY6MzYuMDAwMDAwMDAwICswMTAwDQor KysgcnRkay5oCTIwMDktMTAtMDkgMTE6NDY6NTIuNzY3MjcxMTAwICswMjAwDQogICAgICAgICAg ICAgICAgIA0KIGludCBydF92cHJpbnRmKGNvbnN0IGNoYXIgKmZvcm1hdCwgdmFfbGlzdCBhcmdz KTsNCiBpbnQgcnRfZnByaW50ZihGSUxFICpzdHJlYW0sIGNvbnN0IGNoYXIgKmZvcm1hdCwgLi4u KTsNCiBpbnQgcnRfcHJpbnRmKGNvbnN0IGNoYXIgKmZvcm1hdCwgLi4uKTsNCit2b2lkIHJ0X3N5 c2xvZyggaW50IHByaW9yaXR5LCBjaGFyICpmb3JtYXQsIC4uLik7DQordm9pZCBydF92c3lzbG9n KGludCBwcmlvcml0eSwgY2hhciAqZm9ybWF0LCB2YV9saXN0IGFyZ3MpOw0KKw0KIA0KIGludCBy dF9wcmludF9pbml0KHNpemVfdCBidWZmZXJfc2l6ZSwgY29uc3QgY2hhciAqbmFtZSk7DQogdm9p ZCBydF9wcmludF9jbGVhbnVwKHZvaWQpOyANCg0KDQoNCi0tLSBydF9wcmludC5jLmZvcmtvbmx5 CTIwMDktMTAtMTYgMTY6MTk6MjUuOTQ5Mjg5ODAwICswMjAwDQorKysgcnRfcHJpbnQuYy53c3lz bG9nCTIwMDktMTAtMTYgMTY6MzE6MDEuOTUyNDY0MzAwICswMjAwDQogICAgICAgICAgICAgICAg IA0KICNpbmNsdWRlIDxzdGRsaWIuaD4NCiAjaW5jbHVkZSA8c3RyaW5nLmg+DQogI2luY2x1ZGUg PHVuaXN0ZC5oPg0KKyNpbmNsdWRlIDxzeXNsb2cuaD4NCiANCiAjaW5jbHVkZSA8cnRkay5oPg0K ICNpbmNsdWRlIDxhc20veGVub21haS9zeXN0ZW0uaD4NCiAgICAgICAgICAgICAgICAgIA0KIA0K ICNkZWZpbmUgUlRfUFJJTlRfTElORV9CUkVBSwkJMjU2DQogDQorI2RlZmluZSBSVF9QUklOVF9T WVNMT0dfU1RSRUFNCU5VTEwNCisNCiBzdHJ1Y3QgZW50cnlfaGVhZCB7DQogCUZJTEUgKmRlc3Q7 DQogCXVpbnQzMl90IHNlcV9ubzsNCisJaW50IHByaW9yaXR5Ow0KIAljaGFyIHRleHRbMV07DQog fSBfX2F0dHJpYnV0ZV9fKChwYWNrZWQpKTsNCiANCiAgICAgICAgICAgICAgICAgICAgDQogc3Rh dGljIHB0aHJlYWRfa2V5X3QgX19idWZmZXJfa2V5Ow0KIHN0YXRpYyBwdGhyZWFkX3QgX19wcmlu dGVyX3RocmVhZDsNCiANCitzdGF0aWMgaW50IHByaW50X3RvX2J1ZmZlcihGSUxFICpzdHJlYW0s IGludCBwcmlvcml0eSwNCisgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICpm b3JtYXQsdmFfbGlzdCBhcmdzKTsNCiBzdGF0aWMgdm9pZCBjbGVhbnVwX2J1ZmZlcihzdHJ1Y3Qg cHJpbnRfYnVmZmVyICpidWZmZXIpOw0KIHN0YXRpYyB2b2lkIHByaW50X2J1ZmZlcnModm9pZCk7 DQorc3RhdGljIHZvaWQgZm9ya2VkX2NoaWxkX2luaXQodm9pZCk7DQogDQogLyogKioqIHJ0X3By aW50IEFQSSAqKiogKi8NCiANCiBpbnQgcnRfdmZwcmludGYoRklMRSAqc3RyZWFtLCBjb25zdCBj aGFyICpmb3JtYXQsIHZhX2xpc3QgYXJncykNCiB7DQotCXN0cnVjdCBwcmludF9idWZmZXIgKmJ1 ZmZlciA9IHB0aHJlYWRfZ2V0c3BlY2lmaWMoX19idWZmZXJfa2V5KTsNCi0Jb2ZmX3Qgd3JpdGVf cG9zLCByZWFkX3BvczsNCi0Jc3RydWN0IGVudHJ5X2hlYWQgKmhlYWQ7DQotCWludCBsZW47DQot CWludCByZXM7DQotDQotCWlmICghYnVmZmVyKSB7DQotCQlyZXMgPSAwOw0KLQkJaWYgKF9fYXV0 b19pbml0KQ0KLQkJCXJlcyA9IHJ0X3ByaW50X2luaXQoMCwgTlVMTCk7DQotCQllbHNlDQotCQkJ cmVzID0gRUlPOw0KLQ0KLQkJaWYgKHJlcykgew0KLQkJCWVycm5vID0gcmVzOw0KLQkJCXJldHVy biAtMTsNCi0JCX0NCi0JCWJ1ZmZlciA9IHB0aHJlYWRfZ2V0c3BlY2lmaWMoX19idWZmZXJfa2V5 KTsNCi0JfQ0KLQ0KLQkvKiBUYWtlIGEgc25hcHNob3Qgb2YgdGhlIHJpbmcgYnVmZmVyIHN0YXRl ICovDQotCXdyaXRlX3BvcyA9IGJ1ZmZlci0+d3JpdGVfcG9zOw0KLQlyZWFkX3BvcyA9IGJ1ZmZl ci0+cmVhZF9wb3M7DQotCXhuYXJjaF9yZWFkX21lbW9yeV9iYXJyaWVyKCk7DQotDQotCS8qIElz IG91ciB3cml0ZSBsaW1pdCB0aGUgZW5kIG9mIHRoZSByaW5nIGJ1ZmZlcj8gKi8NCi0JaWYgKHdy aXRlX3BvcyA+PSByZWFkX3Bvcykgew0KLQkJLyogS2VlcCBhIHNhdmV0eSBtYXJnaW4gdG8gdGhl IGVuZCBmb3IgYXQgbGVhc3QgYW4gZW1wdHkgZW50cnkgKi8NCi0JCWxlbiA9IGJ1ZmZlci0+c2l6 ZSAtIHdyaXRlX3BvcyAtIHNpemVvZihzdHJ1Y3QgZW50cnlfaGVhZCk7DQotDQotCQkvKiBTcGVj aWFsIGNhc2U6IFdlIHdlcmUgc3R1Y2sgYXQgdGhlIGVuZCBvZiB0aGUgcmluZyBidWZmZXINCi0J CSAgIHdpdGggc3BhY2UgbGVmdCB0aGVyZSBvbmx5IGZvciBvbmUgZW1wdHkgZW50cnkuIE5vdw0K LQkJICAgcmVhZF9wb3Mgd2FzIG1vdmVkIGZvcndhcmQgYW5kIHdlIGNhbiB3cmFwIGFyb3VuZC4g Ki8NCi0JCWlmIChsZW4gPT0gMCAmJiByZWFkX3BvcyA+IHNpemVvZihzdHJ1Y3QgZW50cnlfaGVh ZCkpIHsNCi0JCQkvKiBXcml0ZSBvdXQgZW1wdHkgZW50cnkgKi8NCi0JCQloZWFkID0gYnVmZmVy LT5yaW5nICsgd3JpdGVfcG9zOw0KLQkJCWhlYWQtPnNlcV9ubyA9IF9fc2VxX25vOw0KLQkJCWhl YWQtPnRleHRbMF0gPSAwOw0KLQ0KLQkJCS8qIEZvcndhcmQgdG8gdGhlIHJpbmcgYnVmZmVyIHN0 YXJ0ICovDQotCQkJd3JpdGVfcG9zID0gMDsNCi0JCQlsZW4gPSByZWFkX3BvcyAtIDE7DQotCQl9 DQotCX0gZWxzZSB7DQotCQkvKiBPdXIgbGltaXQgaXMgdGhlIHJlYWRfcG9zIGFoZWFkIG9mIG91 ciB3cml0ZV9wb3MuIE9uZSBieXRlDQotCQkgICBtYXJnaW4gaXMgcmVxdWlyZWQgdG8gZGV0ZWN0 IGEgZnVsbCByaW5nLiAqLw0KLQkJbGVuID0gcmVhZF9wb3MgLSB3cml0ZV9wb3MgLSAxOw0KLQl9 DQotDQotCS8qIEFjY291bnQgZm9yIGhlYWQgbGVuZ3RoICovDQotCWxlbiAtPSBzaXplb2Yoc3Ry dWN0IGVudHJ5X2hlYWQpOw0KLQlpZiAobGVuIDwgMCkNCi0JCWxlbiA9IDA7DQotDQotCWhlYWQg PSBidWZmZXItPnJpbmcgKyB3cml0ZV9wb3M7DQotDQotCXJlcyA9IHZzbnByaW50ZihoZWFkLT50 ZXh0LCBsZW4sIGZvcm1hdCwgYXJncyk7DQotDQotCWlmIChyZXMgPCBsZW4pIHsNCi0JCS8qIFRl eHQgd2FzIHdyaXR0ZW4gY29tcGxldGVseSwgcmVzIGNvbnRhaW5zIGl0cyBsZW5ndGggKi8NCi0J CWxlbiA9IHJlczsNCi0JfSBlbHNlIHsNCi0JCS8qIFRleHQgd2FzIHRydW5jYXRlZCwgcmVtb3Zl IGNsb3NpbmcgXDAgdGhhdCBlbnRyeV9oZWFkDQotCQkgICBhbHJlYWR5IGluY2x1ZGVzICovDQot CQlsZW4tLTsNCi0JfQ0KLQ0KLQkvKiBJZiB3ZSB3ZXJlIGFibGUgdG8gd3JpdGUgc29tZSB0ZXh0 LCBmaW5hbGlzZSB0aGUgZW50cnkgKi8NCi0JaWYgKGxlbiA+IDApIHsNCi0JCWhlYWQtPnNlcV9u byA9ICsrX19zZXFfbm87DQotCQloZWFkLT5kZXN0ID0gc3RyZWFtOw0KLQ0KLQkJLyogTW92ZSBm b3J3YXJkIGJ5IHRleHQgYW5kIGhlYWQgbGVuZ3RoICovDQotCQl3cml0ZV9wb3MgKz0gbGVuICsg c2l6ZW9mKHN0cnVjdCBlbnRyeV9oZWFkKTsNCi0JfQ0KLQ0KLQkvKiBXcmFwIGFyb3VuZCBlYXJs eSBpZiB0aGVyZSBpcyBtb3JlIHNwYWNlIG9uIHRoZSBvdGhlciBzaWRlICovDQotCWlmICh3cml0 ZV9wb3MgPj0gYnVmZmVyLT5zaXplIC0gUlRfUFJJTlRfTElORV9CUkVBSyAmJg0KLQkgICAgcmVh ZF9wb3MgPD0gd3JpdGVfcG9zICYmIHJlYWRfcG9zID4gYnVmZmVyLT5zaXplIC0gd3JpdGVfcG9z KSB7DQotCQkvKiBBbiBlbXB0eSBlbnRyeSBtYXJrcyB0aGUgd3JhcC1hcm91bmQgKi8NCi0JCWhl YWQgPSBidWZmZXItPnJpbmcgKyB3cml0ZV9wb3M7DQotCQloZWFkLT5zZXFfbm8gPSBfX3NlcV9u bzsNCi0JCWhlYWQtPnRleHRbMF0gPSAwOw0KLQ0KLQkJd3JpdGVfcG9zID0gMDsNCi0JfQ0KLQ0K LQkvKiBBbGwgZW50cnkgZGF0YSBtdXN0IGJlIHdyaXR0ZW4gYmVmb3JlIHdlIGNhbiB1cGRhdGUg d3JpdGVfcG9zICovDQotCXhuYXJjaF93cml0ZV9tZW1vcnlfYmFycmllcigpOw0KLQ0KLQlidWZm ZXItPndyaXRlX3BvcyA9IHdyaXRlX3BvczsNCi0NCi0JcmV0dXJuIHJlczsNCisJcmV0dXJuIHBy aW50X3RvX2J1ZmZlcihzdHJlYW0sIDAsIGZvcm1hdCwgYXJncyk7DQogfQ0KIA0KIGludCBydF92 cHJpbnRmKGNvbnN0IGNoYXIgKmZvcm1hdCwgdmFfbGlzdCBhcmdzKQ0KICAgICAgICAgICAgICAg ICAgICANCiAJcmV0dXJuIG47DQogfQ0KIA0KK3ZvaWQgcnRfc3lzbG9nKGludCBwcmlvcml0eSwg Y2hhciAqZm9ybWF0LCAuLi4pDQorew0KKwl2YV9saXN0IGFyZ3M7DQorDQorCXZhX3N0YXJ0KGFy Z3MsIGZvcm1hdCk7DQorCXByaW50X3RvX2J1ZmZlcihSVF9QUklOVF9TWVNMT0dfU1RSRUFNLCBw cmlvcml0eSwgZm9ybWF0LCBhcmdzKTsNCisJdmFfZW5kKGFyZ3MpOw0KKw0KKwlyZXR1cm47DQor fQ0KKw0KK3ZvaWQgcnRfdnN5c2xvZyhpbnQgcHJpb3JpdHksIGNoYXIgKmZvcm1hdCwgdmFfbGlz dCBhcmdzICkNCit7DQorCXByaW50X3RvX2J1ZmZlcihSVF9QUklOVF9TWVNMT0dfU1RSRUFNLCBw cmlvcml0eSwgZm9ybWF0LCBhcmdzKTsNCisNCisJcmV0dXJuOw0KK30NCisNCiBzdGF0aWMgdm9p ZCBzZXRfYnVmZmVyX25hbWUoc3RydWN0IHByaW50X2J1ZmZlciAqYnVmZmVyLCBjb25zdCBjaGFy ICpuYW1lKQ0KIHsNCiAJaW50IG47DQogICAgICAgICAgICAgICAgICAgICANCiANCiAvKiAqKiog RGVmZXJyZWQgT3V0cHV0IE1hbmFnZW1lbnQgKioqICovDQogDQorc3RhdGljIGludCBwcmludF90 b19idWZmZXIoRklMRSAqc3RyZWFtLCBpbnQgcHJpb3JpdHksDQorCQkJCQkJCWNvbnN0IGNoYXIg KmZvcm1hdCx2YV9saXN0IGFyZ3MpDQorew0KKwlzdHJ1Y3QgcHJpbnRfYnVmZmVyICpidWZmZXIg PSBwdGhyZWFkX2dldHNwZWNpZmljKF9fYnVmZmVyX2tleSk7DQorCW9mZl90IHdyaXRlX3Bvcywg cmVhZF9wb3M7DQorCXN0cnVjdCBlbnRyeV9oZWFkICpoZWFkOw0KKwlpbnQgbGVuOw0KKwlpbnQg cmVzOw0KKw0KKwlpZiAoIWJ1ZmZlcikgew0KKwkJcmVzID0gMDsNCisJCWlmIChfX2F1dG9faW5p dCkNCisJCQlyZXMgPSBydF9wcmludF9pbml0KDAsIE5VTEwpOw0KKwkJZWxzZQ0KKwkJCXJlcyA9 IEVJTzsNCisNCisJCWlmIChyZXMpIHsNCisJCQllcnJubyA9IHJlczsNCisJCQlyZXR1cm4gLTE7 DQorCQl9DQorCQlidWZmZXIgPSBwdGhyZWFkX2dldHNwZWNpZmljKF9fYnVmZmVyX2tleSk7DQor CX0NCisNCisJLyogVGFrZSBhIHNuYXBzaG90IG9mIHRoZSByaW5nIGJ1ZmZlciBzdGF0ZSAqLw0K Kwl3cml0ZV9wb3MgPSBidWZmZXItPndyaXRlX3BvczsNCisJcmVhZF9wb3MgPSBidWZmZXItPnJl YWRfcG9zOw0KKwl4bmFyY2hfcmVhZF9tZW1vcnlfYmFycmllcigpOw0KKw0KKwkvKiBJcyBvdXIg d3JpdGUgbGltaXQgdGhlIGVuZCBvZiB0aGUgcmluZyBidWZmZXI/ICovDQorCWlmICh3cml0ZV9w b3MgPj0gcmVhZF9wb3MpIHsNCisJCS8qIEtlZXAgYSBzYXZldHkgbWFyZ2luIHRvIHRoZSBlbmQg Zm9yIGF0IGxlYXN0IGFuIGVtcHR5IGVudHJ5ICovDQorCQlsZW4gPSBidWZmZXItPnNpemUgLSB3 cml0ZV9wb3MgLSBzaXplb2Yoc3RydWN0IGVudHJ5X2hlYWQpOw0KKw0KKwkJLyogU3BlY2lhbCBj YXNlOiBXZSB3ZXJlIHN0dWNrIGF0IHRoZSBlbmQgb2YgdGhlIHJpbmcgYnVmZmVyDQorCQkgICB3 aXRoIHNwYWNlIGxlZnQgdGhlcmUgb25seSBmb3Igb25lIGVtcHR5IGVudHJ5LiBOb3cNCisJCSAg IHJlYWRfcG9zIHdhcyBtb3ZlZCBmb3J3YXJkIGFuZCB3ZSBjYW4gd3JhcCBhcm91bmQuICovDQor CQlpZiAobGVuID09IDAgJiYgcmVhZF9wb3MgPiBzaXplb2Yoc3RydWN0IGVudHJ5X2hlYWQpKSB7 DQorCQkJLyogV3JpdGUgb3V0IGVtcHR5IGVudHJ5ICovDQorCQkJaGVhZCA9IGJ1ZmZlci0+cmlu ZyArIHdyaXRlX3BvczsNCisJCQloZWFkLT5zZXFfbm8gPSBfX3NlcV9ubzsNCisJCQloZWFkLT5w cmlvcml0eSA9IDA7DQorCQkJaGVhZC0+dGV4dFswXSA9IDA7DQorDQorCQkJLyogRm9yd2FyZCB0 byB0aGUgcmluZyBidWZmZXIgc3RhcnQgKi8NCisJCQl3cml0ZV9wb3MgPSAwOw0KKwkJCWxlbiA9 IHJlYWRfcG9zIC0gMTsNCisJCX0NCisJfSBlbHNlIHsNCisJCS8qIE91ciBsaW1pdCBpcyB0aGUg cmVhZF9wb3MgYWhlYWQgb2Ygb3VyIHdyaXRlX3Bvcy4gT25lIGJ5dGUNCisJCSAgIG1hcmdpbiBp cyByZXF1aXJlZCB0byBkZXRlY3QgYSBmdWxsIHJpbmcuICovDQorCQlsZW4gPSByZWFkX3BvcyAt IHdyaXRlX3BvcyAtIDE7DQorCX0NCisNCisJLyogQWNjb3VudCBmb3IgaGVhZCBsZW5ndGggKi8N CisJbGVuIC09IHNpemVvZihzdHJ1Y3QgZW50cnlfaGVhZCk7DQorCWlmIChsZW4gPCAwKQ0KKwkJ bGVuID0gMDsNCisNCisJaGVhZCA9IGJ1ZmZlci0+cmluZyArIHdyaXRlX3BvczsNCisNCisJcmVz ID0gdnNucHJpbnRmKGhlYWQtPnRleHQsIGxlbiwgZm9ybWF0LCBhcmdzKTsNCisNCisJaWYgKHJl cyA8IGxlbikgew0KKwkJLyogVGV4dCB3YXMgd3JpdHRlbiBjb21wbGV0ZWx5LCByZXMgY29udGFp bnMgaXRzIGxlbmd0aCAqLw0KKwkJbGVuID0gcmVzOw0KKwl9IGVsc2Ugew0KKwkJLyogVGV4dCB3 YXMgdHJ1bmNhdGVkLCByZW1vdmUgY2xvc2luZyBcMCB0aGF0IGVudHJ5X2hlYWQNCisJCSAgIGFs cmVhZHkgaW5jbHVkZXMgKi8NCisJCWxlbi0tOw0KKwl9DQorDQorCS8qIElmIHdlIHdlcmUgYWJs ZSB0byB3cml0ZSBzb21lIHRleHQsIGZpbmFsaXNlIHRoZSBlbnRyeSAqLw0KKwlpZiAobGVuID4g MCkgew0KKwkJaGVhZC0+c2VxX25vID0gKytfX3NlcV9ubzsNCisJCWhlYWQtPnByaW9yaXR5ID0g cHJpb3JpdHk7DQorCQloZWFkLT5kZXN0ID0gc3RyZWFtOw0KKw0KKwkJLyogTW92ZSBmb3J3YXJk IGJ5IHRleHQgYW5kIGhlYWQgbGVuZ3RoICovDQorCQl3cml0ZV9wb3MgKz0gbGVuICsgc2l6ZW9m KHN0cnVjdCBlbnRyeV9oZWFkKTsNCisJfQ0KKw0KKwkvKiBXcmFwIGFyb3VuZCBlYXJseSBpZiB0 aGVyZSBpcyBtb3JlIHNwYWNlIG9uIHRoZSBvdGhlciBzaWRlICovDQorCWlmICh3cml0ZV9wb3Mg Pj0gYnVmZmVyLT5zaXplIC0gUlRfUFJJTlRfTElORV9CUkVBSyAmJg0KKwkgICAgcmVhZF9wb3Mg PD0gd3JpdGVfcG9zICYmIHJlYWRfcG9zID4gYnVmZmVyLT5zaXplIC0gd3JpdGVfcG9zKSB7DQor CQkvKiBBbiBlbXB0eSBlbnRyeSBtYXJrcyB0aGUgd3JhcC1hcm91bmQgKi8NCisJCWhlYWQgPSBi dWZmZXItPnJpbmcgKyB3cml0ZV9wb3M7DQorCQloZWFkLT5zZXFfbm8gPSBfX3NlcV9ubzsNCisJ CWhlYWQtPnByaW9yaXR5ID0gcHJpb3JpdHk7DQorCQloZWFkLT50ZXh0WzBdID0gMDsNCisNCisJ CXdyaXRlX3BvcyA9IDA7DQorCX0NCisNCisJLyogQWxsIGVudHJ5IGRhdGEgbXVzdCBiZSB3cml0 dGVuIGJlZm9yZSB3ZSBjYW4gdXBkYXRlIHdyaXRlX3BvcyAqLw0KKwl4bmFyY2hfd3JpdGVfbWVt b3J5X2JhcnJpZXIoKTsNCisNCisJYnVmZmVyLT53cml0ZV9wb3MgPSB3cml0ZV9wb3M7DQorDQor CXJldHVybiByZXM7DQorfQ0KKw0KIHN0YXRpYyB2b2lkIGNsZWFudXBfYnVmZmVyKHN0cnVjdCBw cmludF9idWZmZXIgKmJ1ZmZlcikNCiB7DQogCXN0cnVjdCBwcmludF9idWZmZXIgKnByZXYsICpu ZXh0Ow0KICAgICAgICAgICAgICAgICAgICANCiANCiAJCWlmIChsZW4pIHsNCiAJCQkvKiBQcmlu dCBvdXQgbm9uLWVtcHR5IGVudHJ5IGFuZCBwcm9jZWVkICovDQotCQkJZnByaW50ZihoZWFkLT5k ZXN0LCAiJXMiLCBoZWFkLT50ZXh0KTsNCisJCQkvKiBDaGVjayBpZiBvdXRwdXQgZ29lcyB0byBz eXNsb2cgKi8NCisJCQlpZiAoaGVhZC0+ZGVzdCA9PSBSVF9QUklOVF9TWVNMT0dfU1RSRUFNKSB7 DQorCQkJICAgCXN5c2xvZyggaGVhZC0+cHJpb3JpdHksICIlcyIsIGhlYWQtPnRleHQgKTsNCisJ CQl9IGVsc2Ugew0KKwkJCQkvKiBPdXRwdXQgZ29lcyB0byBzcGVjaWZpZWQgc3RyZWFtICovDQor CQkJCWZwcmludGYoaGVhZC0+ZGVzdCwgIiVzIiwgaGVhZC0+dGV4dCk7DQorCQkJfQ0KKw0KIAkJ CXJlYWRfcG9zICs9IHNpemVvZigqaGVhZCkgKyBsZW47DQogCQl9IGVsc2Ugew0KIAkJCS8qIEVt cHRyeSBlbnRyaWVzIG1hcmsgdGhlIHdyYXAtYXJvdW5kICovIA0KDQoNCg0KDQoNCg0KDQoNCg0K DQpUbzogamFuLmtpc3prYUBzaWVtZW5zLmNvbQ0KQ2M6IGdpbGxlcy5jaGFudGVwZXJkcml4QHhl bm9tYWkub3JnDQogICAgeGVub21haS1oZWxwQGduYS5vcmcNCg==