From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Wiles, Keith" Subject: Re: [PATCH v4 09/20] eal/dev: implement device iteration initialization Date: Fri, 30 Mar 2018 15:22:59 +0000 Message-ID: References: Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Cc: "dev@dpdk.org" To: Gaetan Rivet Return-path: Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by dpdk.org (Postfix) with ESMTP id D1BA55B3E for ; Fri, 30 Mar 2018 17:23:00 +0200 (CEST) In-Reply-To: Content-Language: en-US Content-ID: List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" DQoNCj4gT24gTWFyIDI5LCAyMDE4LCBhdCA0OjIzIFBNLCBHYWV0YW4gUml2ZXQgPGdhZXRhbi5y aXZldEA2d2luZC5jb20+IHdyb3RlOg0KPiANCj4gUGFyc2UgYSBkZXZpY2UgZGVzY3JpcHRpb24u DQo+IFNwbGl0IHRoaXMgZGVzY3JpcHRpb24gaW4gdGhlaXIgcmVsZXZhbnQgcGFydCBmb3IgZWFj aCBsYXllcnMuDQo+IE5vIGR5bmFtaWMgYWxsb2NhdGlvbiBpcyBwZXJmb3JtZWQuDQo+IA0KPiBT aWduZWQtb2ZmLWJ5OiBHYWV0YW4gUml2ZXQgPGdhZXRhbi5yaXZldEA2d2luZC5jb20+DQo+IC0t LQ0KPiBsaWIvTWFrZWZpbGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDEgKw0KPiBs aWIvbGlicnRlX2VhbC9ic2RhcHAvZWFsL01ha2VmaWxlICAgICAgfCAgIDEgKw0KPiBsaWIvbGli cnRlX2VhbC9jb21tb24vZWFsX2NvbW1vbl9kZXYuYyAgfCAxNDcgKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysNCj4gbGliL2xpYnJ0ZV9lYWwvY29tbW9uL2luY2x1ZGUvcnRlX2Rldi5o IHwgIDIzICsrKysrDQo+IGxpYi9saWJydGVfZWFsL2xpbnV4YXBwL2VhbC9NYWtlZmlsZSAgICB8 ICAgMSArDQo+IGxpYi9saWJydGVfZWFsL3J0ZV9lYWxfdmVyc2lvbi5tYXAgICAgICB8ICAgMSAr DQo+IDYgZmlsZXMgY2hhbmdlZCwgMTc0IGluc2VydGlvbnMoKykNCj4gDQo+IGRpZmYgLS1naXQg YS9saWIvTWFrZWZpbGUgYi9saWIvTWFrZWZpbGUNCj4gaW5kZXggZmM3YTU1YTM3Li4xYjE3NTI2 ZjcgMTAwNjQ0DQo+IC0tLSBhL2xpYi9NYWtlZmlsZQ0KPiArKysgYi9saWIvTWFrZWZpbGUNCj4g QEAgLTYsNiArNiw3IEBAIGluY2x1ZGUgJChSVEVfU0RLKS9tay9ydGUudmFycy5taw0KPiBESVJT LXkgKz0gbGlicnRlX2NvbXBhdA0KPiBESVJTLSQoQ09ORklHX1JURV9MSUJSVEVfS1ZBUkdTKSAr PSBsaWJydGVfa3ZhcmdzDQo+IERJUlMtJChDT05GSUdfUlRFX0xJQlJURV9FQUwpICs9IGxpYnJ0 ZV9lYWwNCj4gK0RFUERJUlMtbGlicnRlX2VhbCA6PSBsaWJydGVfa3ZhcmdzDQo+IERJUlMtJChD T05GSUdfUlRFX0xJQlJURV9QQ0kpICs9IGxpYnJ0ZV9wY2kNCj4gREVQRElSUy1saWJydGVfcGNp IDo9IGxpYnJ0ZV9lYWwNCj4gRElSUy0kKENPTkZJR19SVEVfTElCUlRFX1JJTkcpICs9IGxpYnJ0 ZV9yaW5nDQo+IGRpZmYgLS1naXQgYS9saWIvbGlicnRlX2VhbC9ic2RhcHAvZWFsL01ha2VmaWxl IGIvbGliL2xpYnJ0ZV9lYWwvYnNkYXBwL2VhbC9NYWtlZmlsZQ0KPiBpbmRleCAxN2ZmMWFjNDUu LmY2Y2VhN2ZjMiAxMDA2NDQNCj4gLS0tIGEvbGliL2xpYnJ0ZV9lYWwvYnNkYXBwL2VhbC9NYWtl ZmlsZQ0KPiArKysgYi9saWIvbGlicnRlX2VhbC9ic2RhcHAvZWFsL01ha2VmaWxlDQo+IEBAIC0x OCw2ICsxOCw3IEBAIENGTEFHUyArPSAkKFdFUlJPUl9GTEFHUykgLU8zDQo+IExETElCUyArPSAt bGV4ZWNpbmZvDQo+IExETElCUyArPSAtbHB0aHJlYWQNCj4gTERMSUJTICs9IC1sZ2NjX3MNCj4g K0xETElCUyArPSAtbHJ0ZV9rdmFyZ3MNCj4gDQo+IEVYUE9SVF9NQVAgOj0gLi4vLi4vcnRlX2Vh bF92ZXJzaW9uLm1hcA0KPiANCj4gZGlmZiAtLWdpdCBhL2xpYi9saWJydGVfZWFsL2NvbW1vbi9l YWxfY29tbW9uX2Rldi5jIGIvbGliL2xpYnJ0ZV9lYWwvY29tbW9uL2VhbF9jb21tb25fZGV2LmMN Cj4gaW5kZXggY2QwNzE0NDJmLi4xZjZkZjIzNTEgMTAwNjQ0DQo+IC0tLSBhL2xpYi9saWJydGVf ZWFsL2NvbW1vbi9lYWxfY29tbW9uX2Rldi5jDQo+ICsrKyBiL2xpYi9saWJydGVfZWFsL2NvbW1v bi9lYWxfY29tbW9uX2Rldi5jDQo+IEBAIC0xMCw5ICsxMCwxMiBAQA0KPiANCj4gI2luY2x1ZGUg PHJ0ZV9jb21wYXQuaD4NCj4gI2luY2x1ZGUgPHJ0ZV9idXMuaD4NCj4gKyNpbmNsdWRlIDxydGVf Y2xhc3MuaD4NCj4gI2luY2x1ZGUgPHJ0ZV9kZXYuaD4NCj4gI2luY2x1ZGUgPHJ0ZV9kZXZhcmdz Lmg+DQo+ICNpbmNsdWRlIDxydGVfZGVidWcuaD4NCj4gKyNpbmNsdWRlIDxydGVfZXJybm8uaD4N Cj4gKyNpbmNsdWRlIDxydGVfa3ZhcmdzLmg+DQo+ICNpbmNsdWRlIDxydGVfbG9nLmg+DQo+IA0K PiAjaW5jbHVkZSAiZWFsX3ByaXZhdGUuaCINCj4gQEAgLTIwNywzICsyMTAsMTQ3IEBAIHJ0ZV9l YWxfaG90cGx1Z19yZW1vdmUoY29uc3QgY2hhciAqYnVzbmFtZSwgY29uc3QgY2hhciAqZGV2bmFt ZSkNCj4gCXJ0ZV9lYWxfZGV2YXJnc19yZW1vdmUoYnVzbmFtZSwgZGV2bmFtZSk7DQo+IAlyZXR1 cm4gcmV0Ow0KPiB9DQo+ICsNCj4gK3N0YXRpYyBzaXplX3QNCj4gK2Rldl9sYXllcl9jb3VudChj b25zdCBjaGFyICpzKQ0KPiArew0KPiArCXNpemVfdCBpID0gcyA/IDEgOiAwOw0KPiArDQo+ICsJ d2hpbGUgKHMgIT0gTlVMTCAmJiBzWzBdICE9ICdcMCcpIHsNCj4gKwkJaSArPSBzWzBdID09ICcv JzsNCj4gKwkJcysrOw0KPiArCX0NCj4gKwlyZXR1cm4gaTsNCj4gK30NCj4gKw0KPiAraW50IF9f cnRlX2V4cGVyaW1lbnRhbA0KPiArcnRlX2Rldl9pdGVyYXRvcl9pbml0KHN0cnVjdCBydGVfZGV2 X2l0ZXJhdG9yICppdCwNCj4gKwkJICAgICAgY29uc3QgY2hhciAqZGV2c3RyKQ0KPiArew0KPiAr CXN0cnVjdCB7DQo+ICsJCWNvbnN0IGNoYXIgKmtleTsNCj4gKwkJY29uc3QgY2hhciAqc3RyOw0K PiArCQlzdHJ1Y3QgcnRlX2t2YXJncyAqa3ZsaXN0Ow0KPiArCX0gbGF5ZXJzW10gPSB7DQo+ICsJ CXsgImJ1cz0iLCAgICBOVUxMLCBOVUxMLCB9LA0KPiArCQl7ICJjbGFzcz0iLCAgTlVMTCwgTlVM TCwgfSwNCj4gKwkJeyAiZHJpdmVyPSIsIE5VTEwsIE5VTEwsIH0sDQo+ICsJfTsNCj4gKwlzdHJ1 Y3QgcnRlX2t2YXJnc19wYWlyICprdiA9IE5VTEw7DQo+ICsJc3RydWN0IHJ0ZV9jbGFzcyAqY2xz ID0gTlVMTDsNCj4gKwlzdHJ1Y3QgcnRlX2J1cyAqYnVzID0gTlVMTDsNCj4gKwljb25zdCBjaGFy ICpzID0gZGV2c3RyOw0KPiArCXNpemVfdCBuYmxheWVyOw0KPiArCXNpemVfdCBpID0gMDsNCj4g Kw0KPiArCS8qIEhhdmluZyBib3RoIGJ1c3N0ciBhbmQgY2xzc3RyIE5VTEwgaXMgaWxsZWdhbCwN Cj4gKwkgKiBtYXJraW5nIHRoaXMgaXRlcmF0b3IgYXMgaW52YWxpZCB1bmxlc3MNCj4gKwkgKiBl dmVyeXRoaW5nIGdvZXMgd2VsbC4NCj4gKwkgKi8NCj4gKwlpdC0+YnVzc3RyID0gTlVMTDsNCj4g KwlpdC0+Y2xzc3RyID0gTlVMTDsNCj4gKwkvKiBTcGxpdCBlYWNoIHN1Yi1saXN0cy4gKi8NCj4g KwluYmxheWVyID0gZGV2X2xheWVyX2NvdW50KGRldnN0cik7DQo+ICsJaWYgKG5ibGF5ZXIgPiBS VEVfRElNKGxheWVycykpIHsNCj4gKwkJUlRFX0xPRyhFUlIsIEVBTCwgIkludmFsaWQgcXVlcnk6 IHRvbyBtYW55IGxheWVycyAoJXp1KVxuIiwNCj4gKwkJCW5ibGF5ZXIpOw0KPiArCQlydGVfZXJy bm8gPSBFSU5WQUw7DQo+ICsJCWdvdG8gZ2V0X291dDsNCg0KVGhpcyBvbmUgY291bGQganVzdCBy ZXR1cm4gLUVJTlZBTDsgaW5zdGVhZCBvZiBjYWxsaW5nIGdldF9vdXQuDQo+ICsJfQ0KPiArCXdo aWxlIChzICE9IE5VTEwpIHsNCj4gKwkJY2hhciAqY29weTsNCj4gKwkJY2hhciAqZW5kOw0KPiAr DQo+ICsJCWlmIChzdHJuY21wKGxheWVyc1tpXS5rZXksIHMsDQo+ICsJCQkgICAgc3RybGVuKGxh eWVyc1tpXS5rZXkpKSkNCj4gKwkJCWdvdG8gbmV4dF9sYXllcjsNCj4gKwkJbGF5ZXJzW2ldLnN0 ciA9IHM7DQo+ICsJCWNvcHkgPSBzdHJkdXAocyk7DQo+ICsJCWlmIChjb3B5ID09IE5VTEwpIHsN Cj4gKwkJCVJURV9MT0coRVJSLCBFQUwsICJPT01cbuKAnSk7DQoNCk1heWJlIHNwZWxsIGl0IG91 dCBpbiB0aGUgbG9nIOKAmE91dCBvZiBNZW1vcnnigJkuDQo+ICsJCQlydGVfZXJybm8gPSBFTk9N RU07DQo+ICsJCQlnb3RvIGdldF9vdXQ7DQo+ICsJCX0NCj4gKwkJZW5kID0gc3RyY2hyKGNvcHks ICcvJyk7DQo+ICsJCWVuZCA9IGVuZCA/IGVuZCA6IHN0cmNocihjb3B5LCAnXDAnKTsNCj4gKwkJ ZW5kWzBdID0gJ1wwJzsNCj4gKwkJbGF5ZXJzW2ldLmt2bGlzdCA9IHJ0ZV9rdmFyZ3NfcGFyc2Uo Y29weSwgTlVMTCk7DQo+ICsJCWZyZWUoY29weSk7DQoNCkkgYW0gc29ycnkgdGhpcyBtZXRob2Qg b2Ygbm90IGFkZGluZyBibGFuayBsaW5lcyBpcyBhIGJpdCBzaWxseSBhbmQgd2UgbmVlZCB0byBy ZXRoaW5rIGF0IGxlYXN0IGFkZGluZyBhIGZldyBibGFuayBsaW5lcyB0byBoZWxwIHdpdGggZ3Jv dXBpbmcgdGhlIGNvZGUuIFRoaXMgc3R5bGUgd2lsbCBjYXVzZSBwcm9ibGVtcyBmb3IgbmV3IHJl YWRlcnMgKG9sZCByZWFkZXJzKSB0byB1bmRlcnN0YW5kIHRoZSBjb2RlLiBUaGlzIHRvIG1lIGlz IGEgbWFpbnRlbmFuY2UgcHJvYmxlbSBmb3IgdGhlIGZ1dHVyZSBhbmQgd2UgbmVlZCB0byBmaXgg dGhpcyBub3cuDQoNCkJsYW5rIGxpbmVzIGFmdGVyIGlmIHN0YXRlbWVudHMgKHdpdGggcG9zc2li bGUgbW9yZSBjb21tZW50cykgY2FuIGhlbHAgYWxvbmcgd2l0aCBhZGRpbmcgYmxhbmsgbGluZXMg dG8gZ3JvdXAgY29kZSBpcyByZWFsbHkgdGhlIG1pbmltdW0gYW1vdW50IG9mIGxpbmVzIHJlcXVp cmVkLiBJIGhhdmUgbmV2ZXIgc2VlbiBzb21lb25lIHN0YXRlIHlvdSBoYXZlIHRvIG1hbnkgYmxh bmtzIGxpbmVzIGluIHRoZSBjb2RlIGV4Y2VwdCB0d28gb3IgbW9yZSBibGFuayBsaW5lcyBpbiBh IHJvdy4gVGhpcyBpcyBha2luIHRvIGhhdmluZyBhIHNpbmdsZSBwYXJhZ3JhcGggaW4gYSBub3Zl bCBvciBsZXR0ZXIgYW5kIGl0IG1ha2VzIGl0IHZlcnkgaGFyZCB0byByZWFkLiBJdCBpcyBub3Qg aGFyZCB0byBhZGQgc29tZSBibGFuayBsaW5lcyB0byB0aGUgY29kZSBmb3IgcmVhZGFiaWxpdHku DQoNCkkgc3RvcHBlZCByZXZpZXdpbmcgdGhlIGNvZGUgYXMgaXQgYmVjYW1lIGRpZmZpY3VsdCB0 byByZWFkIElNTyBhbmQganVzdCBjYXVzaW5nIG1lIGEgaGVhZGFjaGUuDQoNClRoaXMgcHJvYmxl bSBuZWVkcyB0byBiZSBhZGRyZXNzZWQgYnkgdGhlIFRTQyBJTU8uDQo+ICsJCWlmIChsYXllcnNb aV0ua3ZsaXN0ID09IE5VTEwpIHsNCj4gKwkJCVJURV9MT0coRVJSLCBFQUwsICJDb3VsZCBub3Qg cGFyc2UgJXNcbiIsIHMpOw0KPiArCQkJcnRlX2Vycm5vID0gRUlOVkFMOw0KPiArCQkJZ290byBn ZXRfb3V0Ow0KPiArCQl9DQo+ICsJCXMgPSBzdHJjaHIocywgJy8nKTsNCj4gKwkJaWYgKHMgIT0g TlVMTCkNCj4gKwkJCXMrKzsNCj4gK25leHRfbGF5ZXI6DQo+ICsJCWlmIChpID49IFJURV9ESU0o bGF5ZXJzKSkgew0KPiArCQkJUlRFX0xPRyhFUlIsIEVBTCwgIlVucmVjb2duaXplZCBsYXllciAl c1xuIiwgcyk7DQo+ICsJCQlydGVfZXJybm8gPSBFSU5WQUw7DQo+ICsJCQlnb3RvIGdldF9vdXQ7 DQo+ICsJCX0NCj4gKwkJaSsrOw0KPiArCX0NCj4gKwkvKiBQYXJzZSBlYWNoIHN1Yi1saXN0LiAq Lw0KPiArCWZvciAoaSA9IDA7IGkgPCBSVEVfRElNKGxheWVycyk7IGkrKykgew0KPiArCQlpZiAo bGF5ZXJzW2ldLmt2bGlzdCA9PSBOVUxMKQ0KPiArCQkJY29udGludWU7DQo+ICsJCWt2ID0gJmxh eWVyc1tpXS5rdmxpc3QtPnBhaXJzWzBdOw0KPiArCQlpZiAoc3RyY21wKGt2LT5rZXksICJidXMi KSA9PSAwKSB7DQo+ICsJCQlidXMgPSBydGVfYnVzX2ZpbmRfYnlfbmFtZShrdi0+dmFsdWUpOw0K PiArCQkJaWYgKGJ1cyA9PSBOVUxMKSB7DQo+ICsJCQkJUlRFX0xPRyhFUlIsIEVBTCwgIkNvdWxk IG5vdCBmaW5kIGJ1cyBcIiVzXCJcbiIsDQo+ICsJCQkJCWt2LT52YWx1ZSk7DQo+ICsJCQkJcnRl X2Vycm5vID0gRUZBVUxUOw0KPiArCQkJCWdvdG8gZ2V0X291dDsNCj4gKwkJCX0NCj4gKwkJfSBl bHNlIGlmIChzdHJjbXAoa3YtPmtleSwgImNsYXNzIikgPT0gMCkgew0KPiArCQkJY2xzID0gcnRl X2NsYXNzX2ZpbmRfYnlfbmFtZShrdi0+dmFsdWUpOw0KPiArCQkJaWYgKGNscyA9PSBOVUxMKSB7 DQo+ICsJCQkJUlRFX0xPRyhFUlIsIEVBTCwgIkNvdWxkIG5vdCBmaW5kIGNsYXNzIFwiJXNcIlxu IiwNCj4gKwkJCQkJa3YtPnZhbHVlKTsNCj4gKwkJCQlydGVfZXJybm8gPSBFRkFVTFQ7DQo+ICsJ CQkJZ290byBnZXRfb3V0Ow0KPiArCQkJfQ0KPiArCQl9IGVsc2UgaWYgKHN0cmNtcChrdi0+a2V5 LCAiZHJpdmVyIikgPT0gMCkgew0KPiArCQkJLyogSWdub3JlICovDQo+ICsJCQljb250aW51ZTsN Cj4gKwkJfQ0KPiArCX0NCj4gKwkvKiBUaGUgc3RyaW5nIHNob3VsZCBoYXZlIGF0IGxlYXN0DQo+ ICsJICogb25lIGxheWVyIHNwZWNpZmllZC4NCj4gKwkgKi8NCj4gKwlpZiAoYnVzID09IE5VTEwg JiYgY2xzID09IE5VTEwpIHsNCj4gKwkJUlRFX0xPRyhFUlIsIEVBTCwNCj4gKwkJCSJFaXRoZXIg YnVzIG9yIGNsYXNzIG11c3QgYmUgc3BlY2lmaWVkLlxuIik7DQo+ICsJCXJ0ZV9lcnJubyA9IEVJ TlZBTDsNCj4gKwkJZ290byBnZXRfb3V0Ow0KPiArCX0NCj4gKwlpZiAoYnVzICE9IE5VTEwgJiYg YnVzLT5kZXZfaXRlcmF0ZSA9PSBOVUxMKSB7DQo+ICsJCVJURV9MT0coRVJSLCBFQUwsICJCdXMg JXMgbm90IHN1cHBvcnRlZFxuIiwgYnVzLT5uYW1lKTsNCj4gKwkJcnRlX2Vycm5vID0gRU5PVFNV UDsNCj4gKwkJZ290byBnZXRfb3V0Ow0KPiArCX0NCj4gKwlpZiAoY2xzICE9IE5VTEwgJiYgY2xz LT5kZXZfaXRlcmF0ZSA9PSBOVUxMKSB7DQo+ICsJCVJURV9MT0coRVJSLCBFQUwsICJDbGFzcyAl cyBub3Qgc3VwcG9ydGVkXG4iLCBjbHMtPm5hbWUpOw0KPiArCQlydGVfZXJybm8gPSBFTk9UU1VQ Ow0KPiArCQlnb3RvIGdldF9vdXQ7DQo+ICsJfQ0KPiArCS8qIEZpbGwgaXRlcmF0b3IgZmllbGRz LiAqLw0KPiArCWlmIChidXMgIT0gTlVMTCkNCj4gKwkJaXQtPmJ1c3N0ciA9IGxheWVyc1swXS5z dHI7DQo+ICsJaWYgKGNscyAhPSBOVUxMKQ0KPiArCQlpdC0+Y2xzc3RyID0gbGF5ZXJzWzFdLnN0 cjsNCj4gKwlpdC0+ZGV2c3RyID0gZGV2c3RyOw0KPiArCWl0LT5idXMgPSBidXM7DQo+ICsJaXQt PmNscyA9IGNsczsNCj4gKwlpdC0+ZGV2aWNlID0gTlVMTDsNCj4gKwlpdC0+Y2xhc3NfZGV2aWNl ID0gTlVMTDsNCj4gK2dldF9vdXQ6DQo+ICsJZm9yIChpID0gMDsgaSA8IFJURV9ESU0obGF5ZXJz KTsgaSsrKSB7DQo+ICsJCWlmIChsYXllcnNbaV0ua3ZsaXN0KQ0KPiArCQkJcnRlX2t2YXJnc19m cmVlKGxheWVyc1tpXS5rdmxpc3QpOw0KPiArCX0NCj4gKwlyZXR1cm4gLXJ0ZV9lcnJubzsNCj4g K30NCj4gZGlmZiAtLWdpdCBhL2xpYi9saWJydGVfZWFsL2NvbW1vbi9pbmNsdWRlL3J0ZV9kZXYu aCBiL2xpYi9saWJydGVfZWFsL2NvbW1vbi9pbmNsdWRlL3J0ZV9kZXYuaA0KPiBpbmRleCA5Mzdm ZjYwNzkuLjdjZTEzZTA2OCAxMDA2NDQNCj4gLS0tIGEvbGliL2xpYnJ0ZV9lYWwvY29tbW9uL2lu Y2x1ZGUvcnRlX2Rldi5oDQo+ICsrKyBiL2xpYi9saWJydGVfZWFsL2NvbW1vbi9pbmNsdWRlL3J0 ZV9kZXYuaA0KPiBAQCAtMzEwLDYgKzMxMCwyOSBAQCB0eXBlZGVmIHZvaWQgKigqcnRlX2Rldl9p dGVyYXRlX3QpKGNvbnN0IHZvaWQgKnN0YXJ0LA0KPiAJCQkJICAgY29uc3QgY2hhciAqZGV2c3Ry LA0KPiAJCQkJICAgY29uc3Qgc3RydWN0IHJ0ZV9kZXZfaXRlcmF0b3IgKml0KTsNCj4gDQo+ICsv KioNCj4gKyAqIEluaXRpYWxpemVzIGEgZGV2aWNlIGl0ZXJhdG9yLg0KPiArICoNCj4gKyAqIFRo aXMgaXRlcmF0b3IgYWxsb3dzIGFjY2Vzc2luZyBhIGxpc3Qgb2YgZGV2aWNlcyBtYXRjaGluZyBh IGNyaXRlcmlhLg0KPiArICogVGhlIGRldmljZSBtYXRjaGluZyBpcyBtYWRlIGFtb25nIGFsbCBi dXNlcyBhbmQgY2xhc3NlcyBjdXJyZW50bHkgcmVnaXN0ZXJlZCwNCj4gKyAqIGZpbHRlcmVkIGJ5 IHRoZSBkZXZpY2UgZGVzY3JpcHRpb24gZ2l2ZW4gYXMgcGFyYW1ldGVyLg0KPiArICoNCj4gKyAq IFRoaXMgZnVuY3Rpb24gd2lsbCBub3QgYWxsb2NhdGUgYW55IG1lbW9yeS4gSXQgaXMgc2FmZSB0 byBzdG9wIHRoZQ0KPiArICogaXRlcmF0aW9uIGF0IGFueSBtb21lbnQgYW5kIGxldCB0aGUgaXRl cmF0b3IgZ28gb3V0IG9mIGNvbnRleHQuDQo+ICsgKg0KPiArICogQHBhcmFtIGl0DQo+ICsgKiAg IERldmljZSBpdGVyYXRvciBoYW5kbGUuDQo+ICsgKg0KPiArICogQHBhcmFtIHN0cg0KPiArICog ICBEZXZpY2UgZGVzY3JpcHRpb24gc3RyaW5nLg0KPiArICoNCj4gKyAqIEByZXR1cm4NCj4gKyAq ICAgMCBvbiBzdWNjZXNzZnVsIGluaXRpYWxpemF0aW9uLg0KPiArICogICA8MCBvbiBlcnJvci4N Cj4gKyAqLw0KPiAraW50IF9fcnRlX2V4cGVyaW1lbnRhbA0KPiArcnRlX2Rldl9pdGVyYXRvcl9p bml0KHN0cnVjdCBydGVfZGV2X2l0ZXJhdG9yICppdCwgY29uc3QgY2hhciAqc3RyKTsNCj4gKw0K PiAjaWZkZWYgX19jcGx1c3BsdXMNCj4gfQ0KPiAjZW5kaWYNCj4gZGlmZiAtLWdpdCBhL2xpYi9s aWJydGVfZWFsL2xpbnV4YXBwL2VhbC9NYWtlZmlsZSBiL2xpYi9saWJydGVfZWFsL2xpbnV4YXBw L2VhbC9NYWtlZmlsZQ0KPiBpbmRleCBhM2VkYmJlNzYuLjg3Y2FhMjNhMSAxMDA2NDQNCj4gLS0t IGEvbGliL2xpYnJ0ZV9lYWwvbGludXhhcHAvZWFsL01ha2VmaWxlDQo+ICsrKyBiL2xpYi9saWJy dGVfZWFsL2xpbnV4YXBwL2VhbC9NYWtlZmlsZQ0KPiBAQCAtMjcsNiArMjcsNyBAQCBMRExJQlMg Kz0gLWxydA0KPiBpZmVxICgkKENPTkZJR19SVEVfRUFMX05VTUFfQVdBUkVfSFVHRVBBR0VTKSx5 KQ0KPiBMRExJQlMgKz0gLWxudW1hDQo+IGVuZGlmDQo+ICtMRExJQlMgKz0gLWxydGVfa3Zhcmdz DQo+IA0KPiAjIHNwZWNpZmljIHRvIGxpbnV4YXBwIGV4ZWMtZW52DQo+IFNSQ1MtJChDT05GSUdf UlRFX0VYRUNfRU5WX0xJTlVYQVBQKSA6PSBlYWwuYw0KPiBkaWZmIC0tZ2l0IGEvbGliL2xpYnJ0 ZV9lYWwvcnRlX2VhbF92ZXJzaW9uLm1hcCBiL2xpYi9saWJydGVfZWFsL3J0ZV9lYWxfdmVyc2lv bi5tYXANCj4gaW5kZXggOTEwY2IyM2M5Li45MjFkYTMwNzUgMTAwNjQ0DQo+IC0tLSBhL2xpYi9s aWJydGVfZWFsL3J0ZV9lYWxfdmVyc2lvbi5tYXANCj4gKysrIGIvbGliL2xpYnJ0ZV9lYWwvcnRl X2VhbF92ZXJzaW9uLm1hcA0KPiBAQCAtMjI4LDYgKzIyOCw3IEBAIEVYUEVSSU1FTlRBTCB7DQo+ IAlydGVfbXBfc2VuZG1zZzsNCj4gCXJ0ZV9tcF9yZXF1ZXN0Ow0KPiAJcnRlX21wX3JlcGx5Ow0K PiArCXJ0ZV9kZXZfaXRlcmF0b3JfaW5pdDsNCj4gCXJ0ZV9zZXJ2aWNlX2F0dHJfZ2V0Ow0KPiAJ cnRlX3NlcnZpY2VfYXR0cl9yZXNldF9hbGw7DQo+IAlydGVfc2VydmljZV9jb21wb25lbnRfcmVn aXN0ZXI7DQo+IC0tIA0KPiAyLjExLjANCj4gDQoNClJlZ2FyZHMsDQpLZWl0aA0KDQo=