From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga07.intel.com (mga07.intel.com [134.134.136.100]) by dpdk.org (Postfix) with ESMTP id 18F581DA4 for ; Thu, 7 Mar 2019 00:59:07 +0100 (CET) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga002.jf.intel.com ([10.7.209.21]) by orsmga105.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 06 Mar 2019 15:59:06 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.58,449,1544515200"; d="scan'208";a="139773583" Received: from fmsmsx105.amr.corp.intel.com ([10.18.124.203]) by orsmga002.jf.intel.com with ESMTP; 06 Mar 2019 15:59:05 -0800 Received: from fmsmsx156.amr.corp.intel.com (10.18.116.74) by FMSMSX105.amr.corp.intel.com (10.18.124.203) with Microsoft SMTP Server (TLS) id 14.3.408.0; Wed, 6 Mar 2019 15:59:05 -0800 Received: from cdsmsx151.ccr.corp.intel.com (172.17.4.38) by fmsmsx156.amr.corp.intel.com (10.18.116.74) with Microsoft SMTP Server (TLS) id 14.3.408.0; Wed, 6 Mar 2019 15:59:04 -0800 Received: from cdsmsx104.ccr.corp.intel.com ([169.254.4.214]) by CDSMSX151.ccr.corp.intel.com ([169.254.3.249]) with mapi id 14.03.0415.000; Thu, 7 Mar 2019 07:59:02 +0800 From: "Zhang, Tianfei" To: "Yigit, Ferruh" , "Xu, Rosen" , "dev@dpdk.org" CC: "Wei, Dan" , "Pei, Andy" , "Yang, Qiming" , "Wang, Haiyue" , "Chen, Santos" , "Zhang, Zhang" Thread-Topic: [PATCH v1 03/11] drivers/raw/ifpga_rawdev: add OPAE share code for IPN3KE Thread-Index: AQHUzzV5+AYp3NtZkkedKaMtP+P2RqX+C24AgACbAMD//8BtgIAA66yg Date: Wed, 6 Mar 2019 23:59:02 +0000 Message-ID: References: <1551338000-120348-1-git-send-email-rosen.xu@intel.com> <1551338000-120348-4-git-send-email-rosen.xu@intel.com> <07a297cd-79b2-db7b-9029-471e8be60a67@intel.com> <543b6067-9056-635c-5ac3-f96a88fb0c95@intel.com> In-Reply-To: <543b6067-9056-635c-5ac3-f96a88fb0c95@intel.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-titus-metadata-40: eyJDYXRlZ29yeUxhYmVscyI6IiIsIk1ldGFkYXRhIjp7Im5zIjoiaHR0cDpcL1wvd3d3LnRpdHVzLmNvbVwvbnNcL0ludGVsMyIsImlkIjoiNDliMTZlMjAtMDY1My00M2I2LWI1NjgtMjA2M2Q0MWI1NzBlIiwicHJvcHMiOlt7Im4iOiJDVFBDbGFzc2lmaWNhdGlvbiIsInZhbHMiOlt7InZhbHVlIjoiQ1RQX05UIn1dfV19LCJTdWJqZWN0TGFiZWxzIjpbXSwiVE1DVmVyc2lvbiI6IjE3LjIuNS4xOCIsIlRydXN0ZWRMYWJlbEhhc2giOiJkRlJEd1VENW1CSUZ2dzBcL1wvQ1ZsTU81cFNCbVRDclB4cFY2ckc2U05xQVwvSVlmV3VXYUxEWVhnd0lzWDFlclBnIn0= x-ctpclassification: CTP_NT x-originating-ip: [172.17.6.105] Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 Subject: Re: [dpdk-dev] [PATCH v1 03/11] drivers/raw/ifpga_rawdev: add OPAE share code for IPN3KE 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: Wed, 06 Mar 2019 23:59:09 -0000 DQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogWWlnaXQsIEZlcnJ1aA0K PiBTZW50OiBUaHVyc2RheSwgTWFyY2ggNywgMjAxOSAxOjU1IEFNDQo+IFRvOiBaaGFuZywgVGlh bmZlaSA8dGlhbmZlaS56aGFuZ0BpbnRlbC5jb20+OyBYdSwgUm9zZW4NCj4gPHJvc2VuLnh1QGlu dGVsLmNvbT47IGRldkBkcGRrLm9yZw0KPiBDYzogV2VpLCBEYW4gPGRhbi53ZWlAaW50ZWwuY29t PjsgUGVpLCBBbmR5IDxhbmR5LnBlaUBpbnRlbC5jb20+OyBZYW5nLA0KPiBRaW1pbmcgPHFpbWlu Zy55YW5nQGludGVsLmNvbT47IFdhbmcsIEhhaXl1ZSA8aGFpeXVlLndhbmdAaW50ZWwuY29tPjsN Cj4gQ2hlbiwgU2FudG9zIDxzYW50b3MuY2hlbkBpbnRlbC5jb20+OyBaaGFuZywgWmhhbmcNCj4g PHpoYW5nLnpoYW5nQGludGVsLmNvbT4NCj4gU3ViamVjdDogUmU6IFtQQVRDSCB2MSAwMy8xMV0g ZHJpdmVycy9yYXcvaWZwZ2FfcmF3ZGV2OiBhZGQgT1BBRSBzaGFyZQ0KPiBjb2RlIGZvciBJUE4z S0UNCj4gDQo+IE9uIDMvNi8yMDE5IDE6NTkgUE0sIFpoYW5nLCBUaWFuZmVpIHdyb3RlOg0KPiA+ DQo+ID4+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4+IEZyb206IFlpZ2l0LCBGZXJy dWgNCj4gPj4gU2VudDogV2VkbmVzZGF5LCBNYXJjaCA2LCAyMDE5IDg6MjggUE0NCj4gPj4gVG86 IFh1LCBSb3NlbiA8cm9zZW4ueHVAaW50ZWwuY29tPjsgZGV2QGRwZGsub3JnDQo+ID4+IENjOiBa aGFuZywgVGlhbmZlaSA8dGlhbmZlaS56aGFuZ0BpbnRlbC5jb20+OyBXZWksIERhbg0KPiA+PiA8 ZGFuLndlaUBpbnRlbC5jb20+OyBQZWksIEFuZHkgPGFuZHkucGVpQGludGVsLmNvbT47IFlhbmcs IFFpbWluZw0KPiA+PiA8cWltaW5nLnlhbmdAaW50ZWwuY29tPjsgV2FuZywgSGFpeXVlIDxoYWl5 dWUud2FuZ0BpbnRlbC5jb20+Ow0KPiBDaGVuLA0KPiA+PiBTYW50b3MgPHNhbnRvcy5jaGVuQGlu dGVsLmNvbT47IFpoYW5nLCBaaGFuZw0KPiA8emhhbmcuemhhbmdAaW50ZWwuY29tPg0KPiA+PiBT dWJqZWN0OiBSZTogW1BBVENIIHYxIDAzLzExXSBkcml2ZXJzL3Jhdy9pZnBnYV9yYXdkZXY6IGFk ZCBPUEFFDQo+ID4+IHNoYXJlIGNvZGUgZm9yIElQTjNLRQ0KPiA+Pg0KPiA+PiBPbiAyLzI4LzIw MTkgNzoxMyBBTSwgUm9zZW4gWHUgd3JvdGU6DQo+ID4+PiBBZGQgT1BBRSBzaGFyZSBjb2RlIGZv ciBJbnRlbCBGUEdBIEFjY2VsZXJhdGlvbiBOSUMgSVBOM0tFLg0KPiA+Pg0KPiA+PiBXaGF0IGRv IHlvdSB0aGluayBhZGRpbmcgYSBmaWxlIHRvIHJlY29yZCB0aGUgdmVyc2lvbiBvZiB0aGUgc2hh cmVkDQo+ID4+IGNvZGUsIGFzIGl0IGlzIGRvbmUgaW4gSW50ZWwgTklDIGRyaXZlcnMsIFJFQURN RSBmaWxlPw0KPiA+Pg0KPiA+PiBBbHNvIGNhbiB5b3UgcGxlYXNlIGFkZCBtb3JlIGRldGFpbHMg b24gd2hhdCBmZWF1dHVyZXMgaGFzIGJlZW4gYWRkZWQNCj4gPj4gd2l0aCB0aGlzIHVwZGF0ZT8N Cj4gPg0KPiA+IFRoYW5rcywgZ29vZCBzdWdnZXN0aW9uLCBJIHdpbGwgYWRkIGEgUkVBRE1FIGZp bGUgaW4gbmV4dCB2ZXJzaW9uLg0KPiA+DQo+ID4+DQo+ID4+IEFuZCBpZiBwb3NzaWJsZSBjYW4g eW91IHBsZWFzZSBzcGxpdCB0aGlzIHBhdGNoIGludG8gbG9naWNhbCBwYXJ0cz8NCj4gPg0KPiA+ IE9rLCBpcyBpdCBwb3NzaWJsZSBzcGxpdCBpbnRvIG11bHRpcGxlIHNtYWxsIHBhdGNoZXMgZm9y IHNoYXJlIGNvZGXvvJ9pZg0KPiBuZWNlc3NhcnksIEkgd2lsbCBkbyBpdCBpbiBuZXh0IHZlcnNp b24uDQo+ID4NCj4gPj4NCj4gPj4+DQo+ID4+PiBTaWduZWQtb2ZmLWJ5OiBUaWFuZmVpIFpoYW5n IDx0aWFuZmVpLnpoYW5nQGludGVsLmNvbT4NCj4gPj4+IC0tLQ0KPiA+Pj4gIGRyaXZlcnMvcmF3 L2lmcGdhX3Jhd2Rldi9iYXNlL01ha2VmaWxlICAgICAgICAgICAgIHwgICA3ICsNCj4gPj4+ICBk cml2ZXJzL3Jhdy9pZnBnYV9yYXdkZXYvYmFzZS9pZnBnYV9hcGkuYyAgICAgICAgICB8ICA2OSAr Ky0NCj4gPj4+ICBkcml2ZXJzL3Jhdy9pZnBnYV9yYXdkZXYvYmFzZS9pZnBnYV9hcGkuaCAgICAg ICAgICB8ICAgMSArDQo+ID4+PiAgZHJpdmVycy9yYXcvaWZwZ2FfcmF3ZGV2L2Jhc2UvaWZwZ2Ff ZGVmaW5lcy5oICAgICAgfCAgODYgKysrLQ0KPiA+Pj4gIGRyaXZlcnMvcmF3L2lmcGdhX3Jhd2Rl di9iYXNlL2lmcGdhX2VudW1lcmF0ZS5jICAgIHwgMzQyDQo+ID4+ICsrKysrLS0tLS0tLS0NCj4g Pj4+ICBkcml2ZXJzL3Jhdy9pZnBnYV9yYXdkZXYvYmFzZS9pZnBnYV9mZWF0dXJlX2Rldi5jICB8 IDE3MCArKysrKy0tDQo+ID4+PiBkcml2ZXJzL3Jhdy9pZnBnYV9yYXdkZXYvYmFzZS9pZnBnYV9m ZWF0dXJlX2Rldi5oICB8ICA2MiArKy0NCj4gPj4+ICBkcml2ZXJzL3Jhdy9pZnBnYV9yYXdkZXYv YmFzZS9pZnBnYV9mbWUuYyAgICAgICAgICB8IDM3Mw0KPiA+PiArKysrKysrKysrKysrKw0KPiA+ Pj4gIGRyaXZlcnMvcmF3L2lmcGdhX3Jhd2Rldi9iYXNlL2lmcGdhX2ZtZV9wci5jICAgICAgIHwg ICAyICstDQo+ID4+PiAgZHJpdmVycy9yYXcvaWZwZ2FfcmF3ZGV2L2Jhc2UvaWZwZ2FfaHcuaCAg ICAgICAgICAgfCAgMjEgKy0NCj4gPj4+ICBkcml2ZXJzL3Jhdy9pZnBnYV9yYXdkZXYvYmFzZS9p ZnBnYV9wb3J0LmMgICAgICAgICB8ICAyMSArDQo+ID4+PiAgZHJpdmVycy9yYXcvaWZwZ2FfcmF3 ZGV2L2Jhc2Uvb3BhZV9hdDI0X2VlcHJvbS5jICAgfCAgODkgKysrKw0KPiA+Pj4gIGRyaXZlcnMv cmF3L2lmcGdhX3Jhd2Rldi9iYXNlL29wYWVfYXQyNF9lZXByb20uaCAgIHwgIDE0ICsNCj4gPj4+ ICBkcml2ZXJzL3Jhdy9pZnBnYV9yYXdkZXYvYmFzZS9vcGFlX2h3X2FwaS5jICAgICAgICB8IDE4 OQ0KPiArKysrKystDQo+ID4+PiAgZHJpdmVycy9yYXcvaWZwZ2FfcmF3ZGV2L2Jhc2Uvb3BhZV9o d19hcGkuaCAgICAgICAgfCAgNDYgKy0NCj4gPj4+ICBkcml2ZXJzL3Jhdy9pZnBnYV9yYXdkZXYv YmFzZS9vcGFlX2kyYy5jICAgICAgICAgICB8IDQ5MA0KPiA+PiArKysrKysrKysrKysrKysrKysr DQo+ID4+PiAgZHJpdmVycy9yYXcvaWZwZ2FfcmF3ZGV2L2Jhc2Uvb3BhZV9pMmMuaCAgICAgICAg ICAgfCAxMjcgKysrKysNCj4gPj4+ICBkcml2ZXJzL3Jhdy9pZnBnYV9yYXdkZXYvYmFzZS9vcGFl X2ludGVsX21heDEwLmMgICB8IDEwNiArKysrDQo+ID4+PiAgZHJpdmVycy9yYXcvaWZwZ2FfcmF3 ZGV2L2Jhc2Uvb3BhZV9pbnRlbF9tYXgxMC5oICAgfCAgMzYgKysNCj4gPj4+ICBkcml2ZXJzL3Jh dy9pZnBnYV9yYXdkZXYvYmFzZS9vcGFlX21kaW8uYyAgICAgICAgICB8IDU0Mg0KPiA+PiArKysr KysrKysrKysrKysrKysrKysNCj4gPj4+ICBkcml2ZXJzL3Jhdy9pZnBnYV9yYXdkZXYvYmFzZS9v cGFlX21kaW8uaCAgICAgICAgICB8ICA5MCArKysrDQo+ID4+PiAgZHJpdmVycy9yYXcvaWZwZ2Ff cmF3ZGV2L2Jhc2Uvb3BhZV9vc2RlcC5oICAgICAgICAgfCAgMTEgKy0NCj4gPj4+ICBkcml2ZXJz L3Jhdy9pZnBnYV9yYXdkZXYvYmFzZS9vcGFlX3BoeV9ncm91cC5jICAgICB8ICA4OCArKysrDQo+ ID4+PiAgZHJpdmVycy9yYXcvaWZwZ2FfcmF3ZGV2L2Jhc2Uvb3BhZV9waHlfZ3JvdXAuaCAgICAg fCAgNTMgKysNCj4gPj4+ICBkcml2ZXJzL3Jhdy9pZnBnYV9yYXdkZXYvYmFzZS9vcGFlX3NwaS5j ICAgICAgICAgICB8IDI2MA0KPiA+PiArKysrKysrKysrDQo+ID4+PiAgZHJpdmVycy9yYXcvaWZw Z2FfcmF3ZGV2L2Jhc2Uvb3BhZV9zcGkuaCAgICAgICAgICAgfCAxMjAgKysrKysNCj4gPj4+ICAu Li4vcmF3L2lmcGdhX3Jhd2Rldi9iYXNlL29wYWVfc3BpX3RyYW5zYWN0aW9uLmMgICB8IDQzOA0K PiA+PiArKysrKysrKysrKysrKysrKw0KPiA+Pj4gIC4uLi9pZnBnYV9yYXdkZXYvYmFzZS9vc2Rl cF9yYXcvb3NkZXBfZ2VuZXJpYy5oICAgIHwgICAxICsNCj4gPj4+ICAuLi4vaWZwZ2FfcmF3ZGV2 L2Jhc2Uvb3NkZXBfcnRlL29zZGVwX2dlbmVyaWMuaCAgICB8ICAxMCArDQo+ID4+PiAgMjkgZmls ZXMgY2hhbmdlZCwgMzU0OSBpbnNlcnRpb25zKCspLCAzMTUgZGVsZXRpb25zKC0pDQo+ID4+DQo+ ID4+IDwuLi4+DQo+ID4+DQo+ID4+PiBAQCAtMTY1LDM3ICs2OCwzNSBAQCBzdGF0aWMgdTY0IGZl YXR1cmVfaWQodm9pZCBfX2lvbWVtICpzdGFydCkNCj4gPj4+DQo+ID4+PiAgc3RhdGljIGludA0K PiA+Pj4gIGJ1aWxkX2luZm9fYWRkX3N1Yl9mZWF0dXJlKHN0cnVjdCBidWlsZF9mZWF0dXJlX2Rl dnNfaW5mbyAqYmluZm8sDQo+ID4+PiAtCQkJICAgc3RydWN0IGZlYXR1cmVfaW5mbyAqZmluZm8s IHZvaWQgX19pb21lbSAqc3RhcnQpDQo+ID4+PiArCQl2b2lkIF9faW9tZW0gKnN0YXJ0LCB1NjQg ZmlkLCB1bnNpZ25lZCBpbnQgc2l6ZSwNCj4gPj4+ICsJCXVuc2lnbmVkIGludCB2ZWNfc3RhcnQs DQo+ID4+PiArCQl1bnNpZ25lZCBpbnQgdmVjX2NudCkNCj4gPj4+ICB7DQo+ID4+PiAgCXN0cnVj dCBpZnBnYV9odyAqaHcgPSBiaW5mby0+aHc7DQo+ID4+PiAgCXN0cnVjdCBmZWF0dXJlICpmZWF0 dXJlID0gTlVMTDsNCj4gPj4NCj4gPj4gc3RydWN0IG5hbWVzIGFyZSBzbyBnZW5lcmljICdzdHJ1 Y3QgZmVhdHVyZScgJiAnc3RydWN0IGZlYXR1cmVfb3BzJw0KPiA+PiBkZWZpbmVkIGluIGlmcGdh X2h3LmgsIHRoZXkgc2VlbXMgbm90IGFkZGVkIGluIHRoaXMgcGF0Y2gsIGJ1dCB3aGF0DQo+ID4+ IGRvIHlvdSB0aGluayBwcmVmaXggdGhlbSB2aWEgImlmcGdhXyIgaW4gYSBzZXBhcmF0ZSBwYXRj aD8NCj4gPg0KPiA+IFllcywgSSBhZ3JlZSwgYWRkIHByZWZpeCBuYW1lIGlzIGJldHRlciwgbWF5 YmUgd2UgZm9yZ2V0IHRoYXQgcGF0Y2gsIHdpbGwgZml4DQo+IGluIG5leHQgdmVyc2lvbi4NCj4g Pg0KPiA+Pg0KPiA+PiA8Li4uPg0KPiA+Pg0KPiA+Pj4gKwlmZWF0dXJlLT52ZWNfc3RhcnQgPSB2 ZWNfc3RhcnQ7DQo+ID4+PiArCWZlYXR1cmUtPnZlY19jbnQgPSB2ZWNfY250Ow0KPiA+Pj4gKw0K PiA+Pj4gKwlkZXZfZGVidWcoYmluZm8sICIlczogaWQ9MHglbHgsIHBoeXNfYWRkcj0weCVseCwg c2l6ZT0lZFxuIiwNCj4gPj4+ICsJCQlfX2Z1bmNfXywgZmVhdHVyZS0+aWQsIGZlYXR1cmUtPnBo eXNfYWRkciwgc2l6ZSk7DQo+ID4+DQo+ID4+IDMyYml0IGJ1aWxkIGNvbXBsYWlucyBhYm91dCAl bHggdXNhZ2U6DQo+ID4+DQo+ID4+IC4uLi9kcGRrL2RyaXZlcnMvcmF3L2lmcGdhX3Jhd2Rldi9i YXNlL2lmcGdhX2VudW1lcmF0ZS5jOjk5OjUxOiBlcnJvcjoNCj4gPj4gZm9ybWF0IOKAmCVseOKA mSBleHBlY3RzIGFyZ3VtZW50IG9mIHR5cGUg4oCYbG9uZyB1bnNpZ25lZCBpbnTigJksIGJ1dA0K PiA+PiBhcmd1bWVudA0KPiA+PiA1IGhhcyB0eXBlIOKAmHU2NOKAmSB7YWthIOKAmGxvbmcgbG9u ZyB1bnNpZ25lZCBpbnTigJl9IFstV2Vycm9yPSBmb3JtYXQ9XQ0KPiA+DQo+ID4gSW4gdGhpcyB2 MSBwYXRjaCwgd2UgZm9yZ2V0IGNoZWNrIHRoZSAzMiBiaXQgY29tcGlsZXIsIHdpbGwgZml4IGlu IG5leHQgdmVyc2lvbi4NCj4gPg0KPiA+Pg0KPiA+PiA8Li4uPg0KPiA+Pg0KPiA+Pj4gQEAgLTY1 MSwxMiArNTM5LDE5IEBAIHN0YXRpYyBpbnQgcGFyc2VfZmVhdHVyZShzdHJ1Y3QNCj4gPj4gYnVp bGRfZmVhdHVyZV9kZXZzX2luZm8gKmJpbmZvLA0KPiA+Pj4gIAkJfQ0KPiA+Pj4NCj4gPj4+ICAJ CWhkciA9IChzdHJ1Y3QgZmVhdHVyZV9oZWFkZXIgKilzdGFydDsNCj4gPj4+ICsJCWhlYWRlci5j c3IgPSByZWFkcShoZHIpOw0KPiA+Pj4gKw0KPiA+Pj4gKwkJLypkZWJ1ZyovDQo+ID4+DQo+ID4+ IEkgdGhpbmsgY2FuIGRyb3AgYWJvdmUgY29tbWVudCwgbm90IGFkZGluZyBleHRyYSBpbmZvcm1h dGlvbi4NCj4gPj4NCj4gPj4+ICsJCWRldl9kZWJ1ZyhiaW5mbywgIiVzOiBhZGRyZXNzPTB4JWxs eCwgdmFsPTB4JWx4LA0KPiBoZWFkZXIuaWQ9MHgleCwNCj4gPj4gaGVhZGVyLm5leHRfb2Zmc2V0 PTB4JXgsIGhlYWRlci5lb2w9MHgleCwgaGVhZGVyLnR5cGU9MHgleFxuIiwNCj4gPj4+ICsJCQlf X2Z1bmNfXywgKHVuc2lnbmVkIGxvbmcgbG9uZykoaGRyKSwgaGVhZGVyLmNzciwNCj4gPj4NCj4g Pj4gV2h5IG5vdCB1c2UgIiVwIiB0byBwcmludCB0aGUgYWRkcmVzcyBvZiB0aGUgdmFyaWFibGUg YnV0IGNhc3QgaXQgdG8NCj4gPj4gJ3Vuc2lnbmVkIGxvbmcgbG9uZyc/DQo+ID4gV2lsbCBmaXgg aW4gbmV4dCB2ZXJzaW9uLg0KPiA+Pg0KPiA+PiA8Li4uPg0KPiA+Pg0KPiA+Pj4gK3N0YXRpYyBp bnQgZm1lX3NwaV9pbml0KHN0cnVjdCBmZWF0dXJlICpmZWF0dXJlKSB7DQo+ID4+PiArCXN0cnVj dCBmZWF0dXJlX2ZtZV9zcGkgKnNwaTsNCj4gPj4+ICsJc3RydWN0IGlmcGdhX2ZtZV9odyAqZm1l ID0gKHN0cnVjdCBpZnBnYV9mbWVfaHcNCj4gKilmZWF0dXJlLT5wYXJlbnQ7DQo+ID4+PiArCXN0 cnVjdCBhbHRlcmFfc3BpX2RldmljZSAqc3BpX21hc3RlcjsNCj4gPj4+ICsJc3RydWN0IGludGVs X21heDEwX2RldmljZSAqbWF4MTA7DQo+ID4+PiArCWludCByZXQgPSAwOw0KPiA+Pj4gKw0KPiA+ Pj4gKwlzcGkgPSAoc3RydWN0IGZlYXR1cmVfZm1lX3NwaSAqKWZlYXR1cmUtPmFkZHI7DQo+ID4+ PiArDQo+ID4+PiArCWRldl9pbmZvKGZtZSwgIkZNRSBTUEkgTWFzdGVyIChNYXgxMCkgSW5pdC5c biIpOw0KPiA+Pj4gKwlkZXZfZGVidWcoZm1lLCAiRk1FIFNQSSBiYXNlIGFkZHIgJWxseC5cbiIs DQo+ID4+PiArCQkgKHVuc2lnbmVkIGxvbmcgbG9uZylzcGkpOw0KPiA+Pg0KPiA+PiBTYW1lIGNv bW1lbnQgaGVyZSwgd2h5IG5vdCAiJXAiLCB3aHkgY2FzdGluZyB0aGUgdmFyaWFibGU/DQo+ID4+ DQo+ID4+PiArCWRldl9kZWJ1ZyhmbWUsICJzcGkgcGFyYW09MHglbHhcbiIsIG9wYWVfcmVhZHEo ZmVhdHVyZS0+YWRkcg0KPiArDQo+ID4+PiArMHg4KSk7DQo+ID4+DQo+ID4+IC4uLi9kcGRrL2Ry aXZlcnMvcmF3L2lmcGdhX3Jhd2Rldi9iYXNlL2lmcGdhX2ZtZS5jOjc3NDo2OTogZXJyb3I6DQo+ ID4+IGZvcm1hdCDigJglbHjigJkNCj4gPj4gZXhwZWN0cyBhcmd1bWVudCBvZiB0eXBlIOKAmGxv bmcgdW5zaWduZWQgaW504oCZLCBidXQgYXJndW1lbnQgNCBoYXMgdHlwZQ0KPiA+PiDigJh1aW50 NjRfdOKAmQ0KPiA+PiB7YWthIOKAmGxvbmcgbG9uZyB1bnNpZ25lZCBpbnTigJl9IFstV2Vycm9y PSBmb3JtYXQ9XQ0KPiA+PiAgIGRldl9kZWJ1ZyhmbWUsICJzcGkgcGFyYW09MHglbHhcbiIsIG9w YWVfcmVhZHEoZmVhdHVyZS0+YWRkciArDQo+ID4+IDB4OCkpOw0KPiA+DQo+ID4gV2lsbCBmaXgg aW4gbmV4dCB2ZXJzaW9uLg0KPiA+Pg0KPiA+PiBeDQo+ID4+DQo+ID4+IDwuLi4+DQo+ID4+DQo+ ID4+PiArLyoqDQo+ID4+PiArICogb3BhZV9tYW5hZ2VyX2dldF9yZXRpbWVyX2luZm8gLSBnZXQg cmV0aW1lciBpbmZvIGxpa2UgUEtWTCBjaGlwDQo+ID4+PiArICogQG1ncjogb3BhZV9tYW5hZ2Vy IGZvciByZXRpbWVyDQo+ID4+PiArICogQGluZm86IGluZm8gcmV0dXJuIHRvIGNhbGxlcg0KPiA+ Pj4gKyAqDQo+ID4+PiArICogUmV0dXJuOiAwIG9uIHN1Y2Nlc3MsIG90aGVyd2lzZSBlcnJvciBj b2RlICAqLyBpbnQNCj4gPj4+ICtvcGFlX21hbmFnZXJfZ2V0X3JldGltZXJfaW5mbyhzdHJ1Y3Qg b3BhZV9tYW5hZ2VyICptZ3IsDQo+ID4+PiArCSAgICAgICBzdHJ1Y3Qgb3BhZV9yZXRpbWVyX2lu Zm8gKmluZm8pIHsNCj4gPj4+ICsJaWYgKCFtZ3IgfHwgIW1nci0+bmV0d29ya19vcHMpDQo+ID4+ PiArCQlyZXR1cm4gLUVJTlZBTDsNCj4gPj4+ICsNCj4gPj4+ICsJLy9pZiAobWdyLT5uZXR3b3Jr X29wcy0+Z2V0X3JldGltZXJfaW5mbykNCj4gPj4+ICsJLy8JcmV0dXJuIG1nci0+bmV0d29ya19v cHMtPmdldF9yZXRpbWVyX2luZm8obWdyLCBpbmZvKTsNCj4gPj4NCj4gPj4NCj4gPj4gUGxlYXNl IHJlbW92ZSBjb21tZW50ZWQgY29kZSwgYW5kIGZvciBjb21tZW50cyBwbGVhc2UgcHJlZmVyIGM4 OQ0KPiA+PiBzdHlsZSBjb21tZW50cy4NCj4gPg0KPiA+IFdpbGwgZml4IGluIG5leHQgdmVyc2lv bi4NCj4gPg0KPiA+Pg0KPiA+PiA8Li4uPg0KPiA+Pg0KPiA+Pj4gQEAgLTAsMCArMSw0OTAgQEAN Cj4gPj4+ICsNCj4gPj4+ICsvKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTMtQ2xhdXNl DQo+ID4+PiArICogQ29weXJpZ2h0KGMpIDIwMTAtMjAxOCBJbnRlbCBDb3Jwb3JhdGlvbg0KPiA+ Pg0KPiA+PiBEbyB5b3UgcHJlZmVyIHRvIHVwZGF0ZSBkYXRlIHRvIDIwMTk/DQo+ID4NCj4gPiBP ay4NCj4gPj4NCj4gPj4gPC4uLj4NCj4gPj4NCj4gPj4+ICtzdGF0aWMgdm9pZCBwaHlfaW5kaXJl Y3Rfd3JpdGUoc3RydWN0IHBoeV9ncm91cF9kZXZpY2UgKmRldiwgdTggZW50cnksDQo+ID4+PiAr CQl1MTYgYWRkciwgdTMyIHZhbHVlKQ0KPiA+Pj4gK3sNCj4gPj4+ICsJdTY0IGN0cmw7DQo+ID4+ PiArDQo+ID4+PiArCWN0cmwgPSBDTURfUkQgPDwgQ1RSTF9DT01NQU5EX1NISUZUIHwNCj4gPj4+ ICsJCShlbnRyeSAmIENUUkxfUEhZX05VTV9NQVNLKSA8PCBDVFJMX1BIWV9OVU1fU0hJRlQgfA0K PiA+Pj4gKwkJKGFkZHIgJiBDVFJMX1BIWV9BRERSX01BU0spIDw8IENUUkxfUEhZX0FERFJfU0hJ RlQgfA0KPiA+Pj4gKwkJKHZhbHVlICYgQ1RSTF9XUklURV9EQVRBX01BU0spOw0KPiA+Pg0KPiA+ PiBJcyAzMmJpdCBzdXBwb3J0ZWQ/DQo+ID4+IElmIHNvLCBDTURfUkQgaXMgZGVmaW5lZCBhcyAn dW5zaWduZWQgbG9uZycgd2hpY2ggaXMgNGJ5dGVzIGxvbmcgaW4NCj4gPj4gMzJiaXQgbWFjaGlu ZS4gU2luY2UgQ1RSTF9DT01NQU5EX1NISUZUICBpcyA2MiwgdGhlIHJlc3VsdCB3aWxsIGJlDQo+ ID4+IGRpZmZlcmVudCB0aGFuIGV4cGVjdGVkLiBBbHNvIHRoZXJlIGlzIGNvbXBpbGVyIHdhcm5p bmcgZm9yIGl0Og0KPiA+Pg0KPiA+PiAuLi4vZHJpdmVycy9yYXcvaWZwZ2FfcmF3ZGV2L2Jhc2Uv b3BhZV9waHlfZ3JvdXAuYzogSW4gZnVuY3Rpb24NCj4gPj4g4oCYcGh5X2luZGlyZWN0X3dyaXRl 4oCZOg0KPiA+PiAuLi4vZHJpdmVycy9yYXcvaWZwZ2FfcmF3ZGV2L2Jhc2Uvb3BhZV9waHlfZ3Jv dXAuYzoyOToxNjogZXJyb3I6IGxlZnQNCj4gPj4gc2hpZnQgY291bnQgPj0gd2lkdGggb2YgdHlw ZSBbLVdlcnJvcj1zaGlmdC1jb3VudC1vdmVyZmxvd10NCj4gPj4gICBjdHJsID0gQ01EX1JEIDw8 IENUUkxfQ09NTUFORF9TSElGVCB8DQo+ID4+ICAgICAgICAgICAgICAgICBefg0KPiA+Pg0KPiA+ PiBTYW1lIGZvciBzaW1pbGFyIHVzYWdlIGlzIHBoeV9pbmRpcmVjdF9yZWFkKCkNCj4gPg0KPiA+ IFRoZSByZWdpc3RlciBpcyA2NGJpdC4gV2Ugd2lsbCBmaXggZm9yIHRoZSAzMmJpdCBjb21waWxl ciBpbiBuZXh0IHZlcnNpb24uDQo+ID4NCj4gPj4NCj4gPj4gPC4uLj4NCj4gPj4NCj4gPj4+ICtz dGF0aWMgdW5zaWduZWQgaW50IHNwaV93cml0ZV9ieXRlcyhzdHJ1Y3QgYWx0ZXJhX3NwaV9kZXZp Y2UgKmRldiwNCj4gPj4+ICtpbnQgY291bnQpIHsNCj4gPj4+ICsJdW5zaWduZWQgaW50IHZhbCA9 IDA7DQo+ID4+PiArCXUxNiAqcDE2Ow0KPiA+Pj4gKwl1MzIgKnAzMjsNCj4gPj4+ICsNCj4gPj4+ ICsJaWYgKGRldi0+dHhidWYpIHsNCj4gPj4+ICsJCXN3aXRjaCAoZGV2LT5kYXRhX3dpZHRoKSB7 DQo+ID4+PiArCQljYXNlIDE6DQo+ID4+PiArCQkJdmFsID0gZGV2LT50eGJ1Zltjb3VudF07DQo+ ID4+PiArCQkJYnJlYWs7DQo+ID4+PiArCQljYXNlIDI6DQo+ID4+PiArCQkJcDE2ID0gKHUxNiAq KShkZXYtPnR4YnVmICsgMipjb3VudCk7DQo+ID4+PiArCQkJdmFsID0gKnAxNjsNCj4gPj4+ICsJ CQlpZiAoZGV2LT5lbmRpYW4gPT0gU1BJX0JJR19FTkRJQU4pDQo+ID4+PiArCQkJCXZhbCA9IGNw dV90b19iZTE2KHZhbCk7DQo+ID4+PiArCQkJYnJlYWs7DQo+ID4+PiArCQljYXNlIDQ6DQo+ID4+ PiArCQkJcDMyID0gKHUzMiAqKShkZXYtPnR4YnVmICsgNCpjb3VudCk7DQo+ID4+PiArCQkJdmFs ID0gKnAzMjsNCj4gPj4+ICsJCQlpZiAoZGV2LT5lbmRpYW4gPT0gU1BJX0JJR19FTkRJQU4pDQo+ ID4+PiArCQkJCXZhbCA9ICh2YWwpOw0KPiA+Pg0KPiA+PiBXaGF0IGlzIHRoZSBpbnRlbnRpb24g aGVyZT8gQ29tcGlsZXIgd2FybmluZzoNCj4gPj4NCj4gPj4gLi4uL2RyaXZlcnMvcmF3L2lmcGdh X3Jhd2Rldi9iYXNlL29wYWVfc3BpLmM6MTIyOjk6IGVycm9yOiBleHBsaWNpdGx5DQo+ID4+IGFz c2lnbmluZyB2YWx1ZSBvZiB2YXJpYWJsZSBvZiB0eXBlICd1bnNpZ25lZCBpbnQnIHRvIGl0c2Vs Zg0KPiA+PiBbLVdlcnJvciwtV3NlbGYtYXNzaWduXQ0KPiA+DQo+ID4gT2ssIHdpbGwgZml4IGlu IG5leHQgdmVyc2lvbi4NCj4gPj4NCj4gPj4gPC4uLj4NCj4gPj4NCj4gPj4+ICsNCj4gPj4+ICsj aWZkZWYgT1BBRV9ERUJVRw0KPiA+Pg0KPiA+PiBJcyB0aGlzIERFQlVHIG1hY3JvIGRlZmluZWQg YW55d2hlcmU/DQo+ID4+DQo+ID4+IDwuLi4+DQo+ID4+DQo+ID4+PiArCXN3aXRjaCAodHJhbnNf dHlwZSkgew0KPiA+Pj4gKwljYXNlIFNQSV9UUkFOX1NFUV9XUklURToNCj4gPj4+ICsJY2FzZSBT UElfVFJBTl9OT05fU0VRX1dSSVRFOg0KPiA+Pj4gKwkJZm9yIChpID0gMDsgaSA8IHNpemU7IGkr KykNCj4gPj4+ICsJCQkqcCsrID0gKmRhdGErKzsNCj4gPj4+ICsNCj4gPj4+ICsJCQlyZXQgPSBw YWNrZXRfdG9fYnl0ZV9jb252ZXIoZGV2LCBzaXplICsgSEVBREVSX0xFTiwNCj4gPj4+ICsJCQkJ ICAgICAgdHJhbnNhY3Rpb24sIFJFU1BPTlNFX0xFTiwgcmVzcG9uc2UsDQo+ID4+PiArCQkJCSAg ICAgICZ2YWxpZF9sZW4pOw0KPiA+Pj4gKwkJCWlmIChyZXQpDQo+ID4+PiArCQkJCXJldHVybiAt RUJVU1k7DQo+ID4+PiArDQo+ID4+PiArCQkJLyogY2hlY2sgdGhlIHJlc3VsdCAqLw0KPiA+Pj4g KwkJCWlmIChzaXplICE9ICgodW5zaWduZWQgaW50KShyZXNwb25zZVsyXSAmIDB4ZmYpIDw8IDgg fA0KPiA+Pj4gKwkJCQkJKHVuc2lnbmVkIGludCkocmVzcG9uc2VbM10gJiAweGZmKSkpDQo+ID4+ PiArCQkJCXJldCA9IC1FQlVTWTsNCj4gPj4+ICsNCj4gPj4+ICsJCQlicmVhazsNCj4gPj4NCj4g Pj4gSW5kZW50YXRpb24gaXMgd3JvbmcgYWZ0ZXIgJ2ZvcicgbG9vcC4gTG9vcHMgc2VlbXMgY29w eWluZyBmcm9tDQo+ID4+ICdkYXRhJyB0byAndHJhbnNhY3Rpb24nIGJ1ZmZlciwgd2hpY2ggaXMg dXNlZCBsYXRlciwgc28gdGhlIGxvZ2ljDQo+ID4+IHNlZW1zIGNvcnJlY3QgYnV0IGluZGVudGF0 aW9uIGlzIG1pc2xlYWRpbmcsIGl0IGlzIGNhdXNpbmcgYSBidWlsZCB3YXJuaW5nOg0KPiA+Pg0K PiA+PiAuLi4vZHBkay9kcml2ZXJzL3Jhdy9pZnBnYV9yYXdkZXYvYmFzZS9vcGFlX3NwaV90cmFu c2FjdGlvbi5jOiBJbg0KPiA+PiBmdW5jdGlvbg0KPiA+PiDigJhkb190cmFuc2FjdGlvbuKAmToN Cj4gPj4gLi4uL2RwZGsvZHJpdmVycy9yYXcvaWZwZ2FfcmF3ZGV2L2Jhc2Uvb3BhZV9zcGlfdHJh bnNhY3Rpb24uYzozNjI6MzoNCj4gPj4gZXJyb3I6IHRoaXMg4oCYZm9y4oCZIGNsYXVzZSBkb2Vz IG5vdCBndWFyZC4uLg0KPiBbLVdlcnJvcj1taXNsZWFkaW5nLWluZGVudGF0aW9uXQ0KPiA+PiAg ICBmb3IgKGkgPSAwOyBpIDwgc2l6ZTsgaSsrKQ0KPiA+PiAgICBefn4NCj4gPj4gLi4uL2RwZGsv ZHJpdmVycy9yYXcvaWZwZ2FfcmF3ZGV2L2Jhc2Uvb3BhZV9zcGlfdHJhbnNhY3Rpb24uYzozNjU6 NDoNCj4gPj4gbm90ZToNCj4gPj4gLi4udGhpcyBzdGF0ZW1lbnQsIGJ1dCB0aGUgbGF0dGVyIGlz IG1pc2xlYWRpbmdseSBpbmRlbnRlZCBhcyBpZiBpdA0KPiA+PiB3ZXJlIGd1YXJkZWQgYnkgdGhl IOKAmGZvcuKAmQ0KPiA+PiAgICAgcmV0ID0gcGFja2V0X3RvX2J5dGVfY29udmVyKGRldiwgc2l6 ZSArIEhFQURFUl9MRU4sDQo+ID4+ICAgICBefn4NCj4gPiBXaWxsIGZpeCBpbiBuZXh0IHZlcnNp b24uDQo+ID4NCj4gPiBXaGF0IEdDQyBjb21waWxlciBhcmUgeW91IHVzaW5nPw0KPiANCj4gZ2Nj IChHQ0MpIDguMi4xIDIwMTgxMjE1IChSZWQgSGF0IDguMi4xLTYpIGNsYW5nIHZlcnNpb24gNy4w LjEgKEZlZG9yYQ0KPiA3LjAuMS0yLmZjMjkpIGljYyAoSUNDKSAxOS4wLjIuMTg3IDIwMTkwMTE3 DQo+IA0KPiB0aGUgYnVpbGQgZXJyb3JzIEkgcHV0IGFyZSBmcm9tIG9uZSBvZiB0aGUgYWJvdmUg b25lcywgc2luY2UgdGhlcmUgd2VyZSBtYW55DQo+IGVycm9ycyBJIGRpZG4ndCBmaWx0ZXIgd2hp Y2ggZXJyb3IgaXMgc3BlY2lmaWMgdG8gd2hpY2ggY29tcGlsZXIuDQpUaGFua3MsIHdlIHdpbGwg Y2xlYW4gb3VyIGNvZGUgZm9yIGFsbCBvZiBjb21waWxlcnMgaW4gbmV4dCB2ZXJzaW9uLg0KPiAN Cg0K