From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by dpdk.org (Postfix) with ESMTP id 5926D4D3A for ; Fri, 23 Mar 2018 11:37:05 +0100 (CET) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga004.fm.intel.com ([10.253.24.48]) by orsmga101.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 23 Mar 2018 03:37:04 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.48,349,1517904000"; d="scan'208";a="39953854" Received: from fmsmsx106.amr.corp.intel.com ([10.18.124.204]) by fmsmga004.fm.intel.com with ESMTP; 23 Mar 2018 03:37:03 -0700 Received: from shsmsx103.ccr.corp.intel.com (10.239.4.69) by FMSMSX106.amr.corp.intel.com (10.18.124.204) with Microsoft SMTP Server (TLS) id 14.3.319.2; Fri, 23 Mar 2018 03:37:03 -0700 Received: from shsmsx101.ccr.corp.intel.com ([169.254.1.166]) by SHSMSX103.ccr.corp.intel.com ([169.254.4.235]) with mapi id 14.03.0319.002; Fri, 23 Mar 2018 18:37:01 +0800 From: "Wang, Xiao W" To: Maxime Coquelin , "yliu@fridaylinux.org" CC: "dev@dpdk.org" , "Wang, Zhihong" , "Bie, Tiwei" , "Chen, Junjie J" , "Xu, Rosen" , "Daly, Dan" , "Liang, Cunming" , "Burakov, Anatoly" , "gaetan.rivet@6wind.com" Thread-Topic: [PATCH v2 3/3] net/ifcvf: add ifcvf driver Thread-Index: AQHTwM++Owzmq9Jb+E6quhCOxIEQxqPapsmAgAL625A= Date: Fri, 23 Mar 2018 10:37:00 +0000 Message-ID: References: <20180309230809.63361-3-xiao.w.wang@intel.com> <20180321132108.52464-1-xiao.w.wang@intel.com> <20180321132108.52464-4-xiao.w.wang@intel.com> <31b89fd7-2a80-58d0-e461-419d3b17716b@redhat.com> In-Reply-To: <31b89fd7-2a80-58d0-e461-419d3b17716b@redhat.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ctpclassification: CTP_NT x-titus-metadata-40: eyJDYXRlZ29yeUxhYmVscyI6IiIsIk1ldGFkYXRhIjp7Im5zIjoiaHR0cDpcL1wvd3d3LnRpdHVzLmNvbVwvbnNcL0ludGVsMyIsImlkIjoiOGFlYWJkOTctNzExZC00ZjQyLWE1MTYtODIyMDUzMDFiNTZiIiwicHJvcHMiOlt7Im4iOiJDVFBDbGFzc2lmaWNhdGlvbiIsInZhbHMiOlt7InZhbHVlIjoiQ1RQX05UIn1dfV19LCJTdWJqZWN0TGFiZWxzIjpbXSwiVE1DVmVyc2lvbiI6IjE3LjIuNS4xOCIsIlRydXN0ZWRMYWJlbEhhc2giOiJmNG5RdkNtTjFhTmJrMGllWXJ3WUZWaDZJOHFITTBuMG5rM1Yxb05ScDhcL3pkaElMXC9rVnM3STJuVTE0V3o2dWgifQ== dlp-product: dlpe-windows dlp-version: 11.0.0.116 dlp-reaction: no-action x-originating-ip: [10.239.127.40] Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 Subject: Re: [dpdk-dev] [PATCH v2 3/3] net/ifcvf: add ifcvf driver X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 23 Mar 2018 10:37:06 -0000 SGkgTWF4aW1lLA0KDQo+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+IEZyb206IE1heGlt ZSBDb3F1ZWxpbiBbbWFpbHRvOm1heGltZS5jb3F1ZWxpbkByZWRoYXQuY29tXQ0KPiBTZW50OiBU aHVyc2RheSwgTWFyY2ggMjIsIDIwMTggNDo1OCBBTQ0KPiBUbzogV2FuZywgWGlhbyBXIDx4aWFv Lncud2FuZ0BpbnRlbC5jb20+OyB5bGl1QGZyaWRheWxpbnV4Lm9yZw0KPiBDYzogZGV2QGRwZGsu b3JnOyBXYW5nLCBaaGlob25nIDx6aGlob25nLndhbmdAaW50ZWwuY29tPjsgQmllLCBUaXdlaQ0K PiA8dGl3ZWkuYmllQGludGVsLmNvbT47IENoZW4sIEp1bmppZSBKIDxqdW5qaWUuai5jaGVuQGlu dGVsLmNvbT47IFh1LCBSb3Nlbg0KPiA8cm9zZW4ueHVAaW50ZWwuY29tPjsgRGFseSwgRGFuIDxk YW4uZGFseUBpbnRlbC5jb20+OyBMaWFuZywgQ3VubWluZw0KPiA8Y3VubWluZy5saWFuZ0BpbnRl bC5jb20+OyBCdXJha292LCBBbmF0b2x5IDxhbmF0b2x5LmJ1cmFrb3ZAaW50ZWwuY29tPjsNCj4g Z2FldGFuLnJpdmV0QDZ3aW5kLmNvbQ0KPiBTdWJqZWN0OiBSZTogW1BBVENIIHYyIDMvM10gbmV0 L2lmY3ZmOiBhZGQgaWZjdmYgZHJpdmVyDQo+IA0KPiANCj4gDQo+IE9uIDAzLzIxLzIwMTggMDI6 MjEgUE0sIFhpYW8gV2FuZyB3cm90ZToNCj4gPiBpZmN2ZiBkcml2ZXIgdXNlcyB2ZGV2IGFzIGEg Y29udHJvbCBkb21haW4gdG8gbWFuYWdlIGlmYyBWRnMgdGhhdCBiZWxvbmcNCj4gPiB0byBpdC4g SXQgcmVnaXN0ZXJzIHZEUEEgZGV2aWNlIG9wcyB0byB2aG9zdCBsaWIgdG8gZW5hYmxlIHRoZXNl IFZGcyB0byBiZQ0KPiA+IHVzZWQgYXMgdmhvc3QgZGF0YSBwYXRoIGFjY2VsZXJhdG9yLg0KPiA+ DQo+ID4gTGl2ZSBtaWdyYXRpb24gZmVhdHVyZSBpcyBzdXBwb3J0ZWQgYnkgaWZjIFZGIGFuZCB0 aGlzIGRyaXZlciBlbmFibGVzDQo+ID4gaXQgYmFzZWQgb24gdmhvc3QgbGliLg0KPiA+DQo+ID4g QmVjYXVzZSB2RFBBIGRyaXZlciBuZWVkcyB0byBzZXQgdXAgTVNJLVggdmVjdG9yIHRvIGludGVy cnVwdCB0aGUgZ3Vlc3QsDQo+ID4gb25seSB2ZmlvLXBjaSBpcyBzdXBwb3J0ZWQgY3VycmVudGx5 Lg0KPiA+DQo+ID4gU2lnbmVkLW9mZi1ieTogWGlhbyBXYW5nIDx4aWFvLncud2FuZ0BpbnRlbC5j b20+DQo+ID4gU2lnbmVkLW9mZi1ieTogUm9zZW4gWHUgPHJvc2VuLnh1QGludGVsLmNvbT4NCj4g PiAtLS0NCj4gPiB2MjoNCj4gPiAtIFJlYmFzZSBvbiBaaGlob25nJ3MgdkRQQSB2MyBwYXRjaCBz ZXQuDQo+ID4gLS0tDQo+ID4gICBjb25maWcvY29tbW9uX2Jhc2UgICAgICAgICAgICAgICAgICAg ICAgfCAgICA2ICsNCj4gPiAgIGNvbmZpZy9jb21tb25fbGludXhhcHAgICAgICAgICAgICAgICAg ICB8ICAgIDEgKw0KPiA+ICAgZHJpdmVycy9uZXQvTWFrZWZpbGUgICAgICAgICAgICAgICAgICAg IHwgICAgMSArDQo+ID4gICBkcml2ZXJzL25ldC9pZmN2Zi9NYWtlZmlsZSAgICAgICAgICAgICAg fCAgIDQwICsNCj4gPiAgIGRyaXZlcnMvbmV0L2lmY3ZmL2Jhc2UvaWZjdmYuYyAgICAgICAgICB8 ICAzMjkgKysrKysrKysNCj4gPiAgIGRyaXZlcnMvbmV0L2lmY3ZmL2Jhc2UvaWZjdmYuaCAgICAg ICAgICB8ICAxNTYgKysrKw0KPiA+ICAgZHJpdmVycy9uZXQvaWZjdmYvYmFzZS9pZmN2Zl9vc2Rl cC5oICAgIHwgICA1MiArKw0KPiA+ICAgZHJpdmVycy9uZXQvaWZjdmYvaWZjdmZfZXRoZGV2LmMg ICAgICAgIHwgMTI0MA0KPiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrDQo+ID4gICBk cml2ZXJzL25ldC9pZmN2Zi9ydGVfaWZjdmZfdmVyc2lvbi5tYXAgfCAgICA0ICsNCj4gPiAgIG1r L3J0ZS5hcHAubWsgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDEgKw0KPiA+ICAgMTAg ZmlsZXMgY2hhbmdlZCwgMTgzMCBpbnNlcnRpb25zKCspDQo+ID4gICBjcmVhdGUgbW9kZSAxMDA2 NDQgZHJpdmVycy9uZXQvaWZjdmYvTWFrZWZpbGUNCj4gPiAgIGNyZWF0ZSBtb2RlIDEwMDY0NCBk cml2ZXJzL25ldC9pZmN2Zi9iYXNlL2lmY3ZmLmMNCj4gPiAgIGNyZWF0ZSBtb2RlIDEwMDY0NCBk cml2ZXJzL25ldC9pZmN2Zi9iYXNlL2lmY3ZmLmgNCj4gPiAgIGNyZWF0ZSBtb2RlIDEwMDY0NCBk cml2ZXJzL25ldC9pZmN2Zi9iYXNlL2lmY3ZmX29zZGVwLmgNCj4gPiAgIGNyZWF0ZSBtb2RlIDEw MDY0NCBkcml2ZXJzL25ldC9pZmN2Zi9pZmN2Zl9ldGhkZXYuYw0KPiA+ICAgY3JlYXRlIG1vZGUg MTAwNjQ0IGRyaXZlcnMvbmV0L2lmY3ZmL3J0ZV9pZmN2Zl92ZXJzaW9uLm1hcA0KPiA+DQo+IA0K PiAuLi4NCj4gDQo+ID4gK3N0YXRpYyBpbnQNCj4gPiArZXRoX2Rldl9pZmN2Zl9jcmVhdGUoc3Ry dWN0IHJ0ZV92ZGV2X2RldmljZSAqZGV2LA0KPiA+ICsJCXN0cnVjdCBydGVfcGNpX2FkZHIgKnBj aV9hZGRyLCBpbnQgZGV2aWNlcykNCj4gPiArew0KPiA+ICsJY29uc3QgY2hhciAqbmFtZSA9IHJ0 ZV92ZGV2X2RldmljZV9uYW1lKGRldik7DQo+ID4gKwlzdHJ1Y3QgcnRlX2V0aF9kZXYgKmV0aF9k ZXYgPSBOVUxMOw0KPiA+ICsJc3RydWN0IGV0aGVyX2FkZHIgKmV0aF9hZGRyID0gTlVMTDsNCj4g PiArCXN0cnVjdCBpZmN2Zl9pbnRlcm5hbCAqaW50ZXJuYWwgPSBOVUxMOw0KPiA+ICsJc3RydWN0 IGludGVybmFsX2xpc3QgKmxpc3QgPSBOVUxMOw0KPiA+ICsJc3RydWN0IHJ0ZV9ldGhfZGV2X2Rh dGEgKmRhdGEgPSBOVUxMOw0KPiA+ICsJc3RydWN0IHJ0ZV9wY2lfYWRkciBwZl9hZGRyID0gKnBj aV9hZGRyOw0KPiA+ICsJaW50IGk7DQo+ID4gKw0KPiA+ICsJbGlzdCA9IHJ0ZV96bWFsbG9jX3Nv Y2tldChuYW1lLCBzaXplb2YoKmxpc3QpLCAwLA0KPiA+ICsJCQlkZXYtPmRldmljZS5udW1hX25v ZGUpOw0KPiA+ICsJaWYgKGxpc3QgPT0gTlVMTCkNCj4gPiArCQlnb3RvIGVycm9yOw0KPiA+ICsN Cj4gPiArCS8qIHJlc2VydmUgYW4gZXRoZGV2IGVudHJ5ICovDQo+ID4gKwlldGhfZGV2ID0gcnRl X2V0aF92ZGV2X2FsbG9jYXRlKGRldiwgc2l6ZW9mKCppbnRlcm5hbCkpOw0KPiA+ICsJaWYgKGV0 aF9kZXYgPT0gTlVMTCkNCj4gPiArCQlnb3RvIGVycm9yOw0KPiA+ICsNCj4gPiArCWV0aF9hZGRy ID0gcnRlX3ptYWxsb2Nfc29ja2V0KG5hbWUsIHNpemVvZigqZXRoX2FkZHIpLCAwLA0KPiA+ICsJ CQlkZXYtPmRldmljZS5udW1hX25vZGUpOw0KPiA+ICsJaWYgKGV0aF9hZGRyID09IE5VTEwpDQo+ ID4gKwkJZ290byBlcnJvcjsNCj4gPiArDQo+ID4gKwkqZXRoX2FkZHIgPSBiYXNlX2V0aF9hZGRy Ow0KPiA+ICsJZXRoX2FkZHItPmFkZHJfYnl0ZXNbNV0gPSBldGhfZGV2LT5kYXRhLT5wb3J0X2lk Ow0KPiA+ICsNCj4gPiArCWludGVybmFsID0gZXRoX2Rldi0+ZGF0YS0+ZGV2X3ByaXZhdGU7DQo+ ID4gKwlpbnRlcm5hbC0+ZGV2X25hbWUgPSBzdHJkdXAobmFtZSk7DQo+ID4gKwlpZiAoaW50ZXJu YWwtPmRldl9uYW1lID09IE5VTEwpDQo+ID4gKwkJZ290byBlcnJvcjsNCj4gPiArDQo+ID4gKwlp bnRlcm5hbC0+ZW5nX2FkZHIucGNpX2FkZHIgPSAqcGNpX2FkZHI7DQo+ID4gKwlmb3IgKGkgPSAw OyBpIDwgZGV2aWNlczsgaSsrKSB7DQo+ID4gKwkJcGZfYWRkci5kb21haW4gPSBwY2lfYWRkci0+ ZG9tYWluOw0KPiA+ICsJCXBmX2FkZHIuYnVzID0gcGNpX2FkZHItPmJ1czsNCj4gPiArCQlwZl9h ZGRyLmRldmlkID0gcGNpX2FkZHItPmRldmlkICsgKGkgKyAxKSAvIDg7DQo+ID4gKwkJcGZfYWRk ci5mdW5jdGlvbiA9IHBjaV9hZGRyLT5mdW5jdGlvbiArIChpICsgMSkgJSA4Ow0KPiA+ICsJCWlu dGVybmFsLT52Zl9pbmZvW2ldLnBkZXYuYWRkciA9IHBmX2FkZHI7DQo+ID4gKwkJcnRlX3NwaW5s b2NrX2luaXQoJmludGVybmFsLT52Zl9pbmZvW2ldLmxvY2spOw0KPiA+ICsJfQ0KPiA+ICsJaW50 ZXJuYWwtPm1heF9kZXZpY2VzID0gZGV2aWNlczsNCj4gPiArDQo+ID4gKwlsaXN0LT5ldGhfZGV2 ID0gZXRoX2RldjsNCj4gPiArCXB0aHJlYWRfbXV0ZXhfbG9jaygmaW50ZXJuYWxfbGlzdF9sb2Nr KTsNCj4gPiArCVRBSUxRX0lOU0VSVF9UQUlMKCZpbnRlcm5hbF9saXN0LCBsaXN0LCBuZXh0KTsN Cj4gPiArCXB0aHJlYWRfbXV0ZXhfdW5sb2NrKCZpbnRlcm5hbF9saXN0X2xvY2spOw0KPiA+ICsN Cj4gPiArCWRhdGEgPSBldGhfZGV2LT5kYXRhOw0KPiA+ICsJZGF0YS0+bmJfcnhfcXVldWVzID0g SUZDVkZfTUFYX1FVRVVFUzsNCj4gPiArCWRhdGEtPm5iX3R4X3F1ZXVlcyA9IElGQ1ZGX01BWF9R VUVVRVM7DQo+ID4gKwlkYXRhLT5kZXZfbGluayA9IHZkcGFfbGluazsNCj4gPiArCWRhdGEtPm1h Y19hZGRycyA9IGV0aF9hZGRyOw0KPiANCj4gV2UgbWlnaHQgd2FudCBvbmUgZXRoZXJuZXQgZGV2 aWNlIHBlciBWRiwgYXMgZm9yIGV4YW1wbGUgeW91IHNldA0KPiBkZXZfbGluay5saW5rX3N0YXR1 cyB0byBVUCBhcyBzb29uIGFzIGEgVkYgaXMgY29uZmlndXJlZCwgYW5kIERPV04NCj4gYXMgd2hl biBhIHNpbmdsZSBWRiBpcyByZW1vdmVkLg0KDQpJZGVhbGx5IGl0IHdpbGwgYmUgb25lIHJlcHJl c2VudG9yIHBvcnQgcGVyIFZGLCBlYWNoIHJlcHJlc2VudG9yIHBvcnQNCmhhcyBhIGxpbmtfc3Rh dHVzLiBXaWxsIGludGVncmF0ZSBwb3J0IHJlcHJlc2VudG9yIHdoZW4gaXQncyByZWFkeS4NCkkg d2lsbCByZW1vdmUgdGhlIHZkZXYncyBldGhkZXYgcmVnaXN0ZXJpbmcgZm9yIG5vdywgYW5kIGFk ZCBpdCBiYWNrIHdoZW4gd2UNCm5lZWQgdG8gaW1wbGVtZW50IGZsb3cgQVBJcyBvbiB0aGUgdmRl di4NCg0KPiANCj4gPiArCWRhdGEtPmRldl9mbGFncyA9IFJURV9FVEhfREVWX0lOVFJfTFNDOw0K PiA+ICsJZXRoX2Rldi0+ZGV2X29wcyA9ICZvcHM7DQo+ID4gKw0KPiA+ICsJLyogYXNzaWduIHJ4 IGFuZCB0eCBvcHMsIGNvdWxkIGJlIHVzZWQgYXMgdkRQQSBmYWxsYmFjayAqLw0KPiA+ICsJZXRo X2Rldi0+cnhfcGt0X2J1cnN0ID0gZXRoX2lmY3ZmX3J4Ow0KPiA+ICsJZXRoX2Rldi0+dHhfcGt0 X2J1cnN0ID0gZXRoX2lmY3ZmX3R4Ow0KPiA+ICsNCj4gPiArCWlmIChydGVfdmRwYV9yZWdpc3Rl cl9lbmdpbmUodmRwYV9pZmN2Zl9kcml2ZXIubmFtZSwNCj4gPiArCQkJCSZpbnRlcm5hbC0+ZW5n X2FkZHIpIDwgMCkNCj4gPiArCQlnb3RvIGVycm9yOw0KPiA+ICsNCj4gPiArCXJldHVybiAwOw0K PiA+ICsNCj4gPiArZXJyb3I6DQo+ID4gKwlydGVfZnJlZShsaXN0KTsNCj4gPiArCXJ0ZV9mcmVl KGV0aF9hZGRyKTsNCj4gPiArCWlmIChpbnRlcm5hbCAmJiBpbnRlcm5hbC0+ZGV2X25hbWUpDQo+ ID4gKwkJZnJlZShpbnRlcm5hbC0+ZGV2X25hbWUpOw0KPiA+ICsJcnRlX2ZyZWUoaW50ZXJuYWwp Ow0KPiA+ICsJaWYgKGV0aF9kZXYpDQo+ID4gKwkJcnRlX2V0aF9kZXZfcmVsZWFzZV9wb3J0KGV0 aF9kZXYpOw0KPiA+ICsNCj4gPiArCXJldHVybiAtMTsNCj4gPiArfQ0KPiA+ICsNCj4gPiArc3Rh dGljIGludA0KPiA+ICtnZXRfcGNpX2FkZHIoY29uc3QgY2hhciAqa2V5IF9fcnRlX3VudXNlZCwg Y29uc3QgY2hhciAqdmFsdWUsIHZvaWQNCj4gKmV4dHJhX2FyZ3MpDQo+ID4gK3sNCj4gPiArCWlm ICh2YWx1ZSA9PSBOVUxMIHx8IGV4dHJhX2FyZ3MgPT0gTlVMTCkNCj4gPiArCQlyZXR1cm4gLTE7 DQo+ID4gKw0KPiA+ICsJcmV0dXJuIHJ0ZV9wY2lfYWRkcl9wYXJzZSh2YWx1ZSwgZXh0cmFfYXJn cyk7DQo+ID4gK30NCj4gPiArDQo+ID4gK3N0YXRpYyBpbmxpbmUgaW50DQo+ID4gK29wZW5faW50 KGNvbnN0IGNoYXIgKmtleSBfX3J0ZV91bnVzZWQsIGNvbnN0IGNoYXIgKnZhbHVlLCB2b2lkDQo+ ICpleHRyYV9hcmdzKQ0KPiA+ICt7DQo+ID4gKwl1aW50MTZfdCAqbiA9IGV4dHJhX2FyZ3M7DQo+ ID4gKw0KPiA+ICsJaWYgKHZhbHVlID09IE5VTEwgfHwgZXh0cmFfYXJncyA9PSBOVUxMKQ0KPiA+ ICsJCXJldHVybiAtRUlOVkFMOw0KPiA+ICsNCj4gPiArCSpuID0gKHVpbnQxNl90KXN0cnRvdWwo dmFsdWUsIE5VTEwsIDApOw0KPiA+ICsJaWYgKCpuID09IFVTSFJUX01BWCAmJiBlcnJubyA9PSBF UkFOR0UpDQo+ID4gKwkJcmV0dXJuIC0xOw0KPiA+ICsNCj4gPiArCXJldHVybiAwOw0KPiA+ICt9 DQo+ID4gKw0KPiA+ICsvKg0KPiA+ICsgKiBJZiB0aGlzIHZkZXYgaXMgY3JlYXRlZCBieSB1c2Vy LCB0aGVuIGlmY3ZmIHdpbGwgYmUgdGFrZW4gYnkNCj4gPiArICogdGhpcyB2ZGV2Lg0KPiA+ICsg Ki8NCj4gPiArc3RhdGljIGludA0KPiA+ICtpZmN2Zl90YWtlX292ZXIoc3RydWN0IHJ0ZV9wY2lf YWRkciAqcGNpX2FkZHIsIGludCBudW0pDQo+ID4gK3sNCj4gPiArCXVpbnQxNl90IHBvcnRfaWQ7 DQo+ID4gKwlpbnQgaSwgcmV0Ow0KPiA+ICsJY2hhciBkZXZuYW1lW1JURV9ERVZfTkFNRV9NQVhf TEVOXTsNCj4gPiArCXN0cnVjdCBydGVfcGNpX2FkZHIgdmZfYWRkciA9ICpwY2lfYWRkcjsNCj4g PiArDQo+ID4gKwlmb3IgKGkgPSAwOyBpIDwgbnVtOyBpKyspIHsNCj4gPiArCQl2Zl9hZGRyLmZ1 bmN0aW9uICs9IGkgJSA4Ow0KPiA+ICsJCXZmX2FkZHIuZGV2aWQgKz0gaSAvIDg7DQo+ID4gKwkJ cnRlX3BjaV9kZXZpY2VfbmFtZSgmdmZfYWRkciwgZGV2bmFtZSwNCj4gUlRFX0RFVl9OQU1FX01B WF9MRU4pOw0KPiA+ICsJCXJldCA9IHJ0ZV9ldGhfZGV2X2dldF9wb3J0X2J5X25hbWUoZGV2bmFt ZSwgJnBvcnRfaWQpOw0KPiA+ICsJCWlmIChyZXQgPT0gMCkgew0KPiA+ICsJCQlydGVfZXRoX2Rl dl9jbG9zZShwb3J0X2lkKTsNCj4gPiArCQkJaWYgKHJ0ZV9ldGhfZGV2X2RldGFjaChwb3J0X2lk LCBkZXZuYW1lKSA8IDApDQo+ID4gKwkJCQlyZXR1cm4gLTE7DQo+ID4gKwkJfQ0KPiBUaGF0IHNl ZW1zIGEgYml0IGhhcmQuDQo+IFNob3VsZG4ndCB3ZSBhdCBsZWFzdCBjaGVjayB0aGUgcG9ydCBp cyBub3Qgc3RhcnRlZD8NCg0KVGhhdCBsb29rcyBiZXR0ZXIsIHdpbGwgZG8gaXQuDQoNClRoYW5r cyBmb3IgdGhlIGNvbW1lbnRzLA0KLVhpYW8NCg==