From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <declan.doherty@intel.com>
Received: from mga09.intel.com (mga09.intel.com [134.134.136.24])
 by dpdk.org (Postfix) with ESMTP id CDA3AAE99
 for <dev@dpdk.org>; Mon, 16 Jun 2014 11:00:22 +0200 (CEST)
Received: from orsmga001.jf.intel.com ([10.7.209.18])
 by orsmga102.jf.intel.com with ESMTP; 16 Jun 2014 01:55:17 -0700
X-ExtLoop1: 1
X-IronPort-AV: E=Sophos;i="5.01,485,1400050800"; d="scan'208";a="529109268"
Received: from irsmsx104.ger.corp.intel.com ([163.33.3.159])
 by orsmga001.jf.intel.com with ESMTP; 16 Jun 2014 02:00:35 -0700
Received: from irsmsx151.ger.corp.intel.com (163.33.192.59) by
 IRSMSX104.ger.corp.intel.com (163.33.3.159) with Microsoft SMTP Server (TLS)
 id 14.3.123.3; Mon, 16 Jun 2014 09:59:26 +0100
Received: from irsmsx101.ger.corp.intel.com ([169.254.1.245]) by
 IRSMSX151.ger.corp.intel.com ([169.254.4.152]) with mapi id 14.03.0123.003;
 Mon, 16 Jun 2014 09:59:26 +0100
From: "Doherty, Declan" <declan.doherty@intel.com>
To: Neil Horman <nhorman@tuxdriver.com>
Thread-Topic: [dpdk-dev] [PATCH v3 2/5] Link Bonding PMD Library
 (librte_eal/librte_ether link bonding support changes)
Thread-Index: AQHPhw9UDbCX0RLyzEKWoGkHkQn555tvJHGAgAAnc6CAABNDgIAEDPkw
Date: Mon, 16 Jun 2014 08:59:25 +0000
Message-ID: <345C63BAECC1AD42A2EC8C63AFFC3ADC13D39383@IRSMSX101.ger.corp.intel.com>
References: <cover.1402662300.git.declan.doherty@intel.com>
 <258914f35917ae07dddc991ac9726542964dce44.1402662300.git.declan.doherty@intel.com>
 <20140613160807.GD22451@hmsreliant.think-freely.org>
 <345C63BAECC1AD42A2EC8C63AFFC3ADC13D38EE9@IRSMSX101.ger.corp.intel.com>
 <20140613193815.GE22451@hmsreliant.think-freely.org>
In-Reply-To: <20140613193815.GE22451@hmsreliant.think-freely.org>
Accept-Language: en-IE, en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-originating-ip: [163.33.239.181]
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
Cc: "dev@dpdk.org" <dev@dpdk.org>
Subject: Re: [dpdk-dev] [PATCH v3 2/5] Link Bonding PMD Library
 (librte_eal/librte_ether link bonding support changes)
X-BeenThere: dev@dpdk.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: patches and discussions about DPDK <dev.dpdk.org>
List-Unsubscribe: <http://dpdk.org/ml/options/dev>,
 <mailto:dev-request@dpdk.org?subject=unsubscribe>
List-Archive: <http://dpdk.org/ml/archives/dev/>
List-Post: <mailto:dev@dpdk.org>
List-Help: <mailto:dev-request@dpdk.org?subject=help>
List-Subscribe: <http://dpdk.org/ml/listinfo/dev>,
 <mailto:dev-request@dpdk.org?subject=subscribe>
X-List-Received-Date: Mon, 16 Jun 2014 09:00:23 -0000

PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBOZWlsIEhvcm1hbiBbbWFpbHRv
Om5ob3JtYW5AdHV4ZHJpdmVyLmNvbV0NCj4gU2VudDogRnJpZGF5LCBKdW5lIDEzLCAyMDE0IDg6
MzggUE0NCj4gVG86IERvaGVydHksIERlY2xhbg0KPiBDYzogZGV2QGRwZGsub3JnDQo+IFN1Ympl
Y3Q6IFJlOiBbZHBkay1kZXZdIFtQQVRDSCB2MyAyLzVdIExpbmsgQm9uZGluZyBQTUQgTGlicmFy
eQ0KPiAobGlicnRlX2VhbC9saWJydGVfZXRoZXIgbGluayBib25kaW5nIHN1cHBvcnQgY2hhbmdl
cykNCj4gDQo+IE9uIEZyaSwgSnVuIDEzLCAyMDE0IGF0IDA2OjM0OjA0UE0gKzAwMDAsIERvaGVy
dHksIERlY2xhbiB3cm90ZToNCj4gPiA+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4g
PiBGcm9tOiBOZWlsIEhvcm1hbiBbbWFpbHRvOm5ob3JtYW5AdHV4ZHJpdmVyLmNvbV0NCj4gPiA+
IFNlbnQ6IEZyaWRheSwgSnVuZSAxMywgMjAxNCA1OjA4IFBNDQo+ID4gPiBUbzogRG9oZXJ0eSwg
RGVjbGFuDQo+ID4gPiBDYzogZGV2QGRwZGsub3JnDQo+ID4gPiBTdWJqZWN0OiBSZTogW2RwZGst
ZGV2XSBbUEFUQ0ggdjMgMi81XSBMaW5rIEJvbmRpbmcgUE1EIExpYnJhcnkNCj4gPiA+IChsaWJy
dGVfZWFsL2xpYnJ0ZV9ldGhlciBsaW5rIGJvbmRpbmcgc3VwcG9ydCBjaGFuZ2VzKQ0KPiA+ID4N
Cj4gPiA+IE9uIEZyaSwgSnVuIDEzLCAyMDE0IGF0IDAzOjQxOjU5UE0gKzAxMDAsIERlY2xhbiBE
b2hlcnR5IHdyb3RlOg0KPiA+ID4gPiBVcGRhdGluZyBmdW5jdGlvbmFsaXR5IGluIEVBTCB0byBz
dXBwb3J0IGFkZGluZyBsaW5rIGJvbmRpbmcNCj4gPiA+ID4gZGV2aWNlcyB2aWEg4oCTdmRldiBv
cHRpb24uIExpbmsgYm9uZGluZyBkZXZpY2VzIHdpbGwgYmUNCj4gPiA+ID4gaW5pdGlhbGl6ZWQg
YWZ0ZXIgYWxsIHBoeXNpY2FsIGRldmljZXMgaGF2ZSBiZWVuIHByb2JlZCBhbmQNCj4gPiA+ID4g
aW5pdGlhbGl6ZWQuDQo+ID4gPiA+DQo+ID4gPiA+IFNpZ25lZC1vZmYtYnk6IERlY2xhbiBEb2hl
cnR5IDxkZWNsYW4uZG9oZXJ0eUBpbnRlbC5jb20+DQo+ID4gPiA+IC0tLQ0KPiA+ID4gPiAgbGli
L2xpYnJ0ZV9lYWwvY29tbW9uL2VhbF9jb21tb25fZGV2LmMgICAgICB8IDY2DQo+ID4gPiArKysr
KysrKysrKysrKysrKysrKysrKysrKystLQ0KPiA+ID4gPiAgbGliL2xpYnJ0ZV9lYWwvY29tbW9u
L2VhbF9jb21tb25fcGNpLmMgICAgICB8ICA2ICsrKw0KPiA+ID4gPiAgbGliL2xpYnJ0ZV9lYWwv
Y29tbW9uL2luY2x1ZGUvZWFsX3ByaXZhdGUuaCB8ICA3ICsrKw0KPiA+ID4gPiAgbGliL2xpYnJ0
ZV9lYWwvY29tbW9uL2luY2x1ZGUvcnRlX2Rldi5oICAgICB8ICAxICsNCj4gPiA+ID4gIGxpYi9s
aWJydGVfZXRoZXIvcnRlX2V0aGRldi5jICAgICAgICAgICAgICAgfCAzNCArKysrKysrKysrKysr
LS0NCj4gPiA+ID4gIGxpYi9saWJydGVfZXRoZXIvcnRlX2V0aGRldi5oICAgICAgICAgICAgICAg
fCAgNyArKy0NCj4gPiA+ID4gIGxpYi9saWJydGVfcG1kX3BjYXAvcnRlX2V0aF9wY2FwLmMgICAg
ICAgICAgfCAyMiArKysrKy0tLS0tDQo+ID4gPiA+ICBsaWIvbGlicnRlX3BtZF9yaW5nL3J0ZV9l
dGhfcmluZy5jICAgICAgICAgIHwgMzIgKysrKysrKy0tLS0tLS0NCj4gPiA+ID4gIGxpYi9saWJy
dGVfcG1kX3JpbmcvcnRlX2V0aF9yaW5nLmggICAgICAgICAgfCAgMyArLQ0KPiA+ID4gPiAgbGli
L2xpYnJ0ZV9wbWRfeGVudmlydC9ydGVfZXRoX3hlbnZpcnQuYyAgICB8ICAyICstDQo+ID4gPiA+
ICAxMCBmaWxlcyBjaGFuZ2VkLCAxNDQgaW5zZXJ0aW9ucygrKSwgMzYgZGVsZXRpb25zKC0pDQo+
ID4gPiA+DQo+ID4gPiA+IGRpZmYgLS1naXQgYS9saWIvbGlicnRlX2VhbC9jb21tb24vZWFsX2Nv
bW1vbl9kZXYuYw0KPiA+ID4gYi9saWIvbGlicnRlX2VhbC9jb21tb24vZWFsX2NvbW1vbl9kZXYu
Yw0KPiA+ID4gPiBpbmRleCBlYWU1NjU2Li5iNTBjOTA4IDEwMDY0NA0KPiA+ID4gPiAtLS0gYS9s
aWIvbGlicnRlX2VhbC9jb21tb24vZWFsX2NvbW1vbl9kZXYuYw0KPiA+ID4gPiArKysgYi9saWIv
bGlicnRlX2VhbC9jb21tb24vZWFsX2NvbW1vbl9kZXYuYw0KPiA+ID4gPiBAQCAtNzUsMTQgKzc1
LDI4IEBAIHJ0ZV9lYWxfZGV2X2luaXQodm9pZCkNCj4gPiA+ID4NCj4gPiA+ID4gIAkvKiBjYWxs
IHRoZSBpbml0IGZ1bmN0aW9uIGZvciBlYWNoIHZpcnR1YWwgZGV2aWNlICovDQo+ID4gPiA+ICAJ
VEFJTFFfRk9SRUFDSChkZXZhcmdzLCAmZGV2YXJnc19saXN0LCBuZXh0KSB7DQo+ID4gPiA+ICsJ
CXVpbnQ4X3QgYmRldiA9IDA7DQo+ID4gPiA+DQo+ID4gPiA+ICAJCWlmIChkZXZhcmdzLT50eXBl
ICE9IFJURV9ERVZUWVBFX1ZJUlRVQUwpDQo+ID4gPiA+ICAJCQljb250aW51ZTsNCj4gPiA+ID4N
Cj4gPiA+ID4gIAkJVEFJTFFfRk9SRUFDSChkcml2ZXIsICZkZXZfZHJpdmVyX2xpc3QsIG5leHQp
IHsNCj4gPiA+ID4gLQkJCWlmIChkcml2ZXItPnR5cGUgIT0gUE1EX1ZERVYpDQo+ID4gPiA+ICsJ
CQkvKiBSVEVfREVWVFlQRV9WSVJUVUFMIGNhbiBvbmx5IGJlIGEgdmlydHVhbCBvciBib25kZWQN
Cj4gPiA+IGRldmljZSovDQo+ID4gPiA+ICsJCQlpZiAoZHJpdmVyLT50eXBlICE9IFBNRF9WREVW
ICYmIGRyaXZlci0+dHlwZSAhPQ0KPiA+ID4gUE1EX0JERVYpDQo+ID4gPiA+ICAJCQkJY29udGlu
dWU7DQo+ID4gPiA+DQo+ID4gPiA+ICsJCQkvKg0KPiA+ID4gPiArCQkJICogQm9uZGVkIGRldmlj
ZXMgYXJlIG5vdCBpbml0aWFsaXplIGhlcmUsIHdlIGRvIGl0IGxhdGVyIGluDQo+ID4gPiA+ICsJ
CQkgKiBydGVfZWFsX2JvbmRlZF9kZXZfaW5pdCgpIGFmdGVyIGFsbCBwaHlzaWNhbCBkZXZpY2Vz
DQo+ID4gPiBoYXZlIGJlZW4NCj4gPiA+ID4gKwkJCSAqIHByb2JlZCBhbmQgaW5pdGlhbGl6ZWQN
Cj4gPiA+ID4gKwkJCSAqLw0KPiA+ID4gPiArCQkJaWYgKGRyaXZlci0+dHlwZSA9PSBQTURfQkRF
ViAmJg0KPiA+ID4gPiArCQkJCQkhc3RybmNtcChkcml2ZXItPm5hbWUsIGRldmFyZ3MtDQo+ID4g
PiA+dmlydHVhbC5kcnZfbmFtZSwNCj4gPiA+ID4gKwkJCQkJCQlzdHJsZW4oZHJpdmVyLT5uYW1l
KSkpIHsNCj4gPiA+ID4gKwkJCQliZGV2ID0gMTsNCj4gPiA+ID4gKwkJCQlicmVhazsNCj4gPiA+
ID4gKwkJCX0NCj4gPiA+ID4gKw0KPiA+ID4gSSByZWFsbHkgZG9uJ3QgdGhpbmsgeW91IG5lZWQg
dG8gYWRkIGEgbmV3IGRldmljZSB0eXBlIGZvciBib25kZWQgZGV2cy4gIEl0cyBnb3QNCj4gPiA+
IG5vIHNwZWNpZmljIGhhcmR3YXJlIHRoYXQgaXQgZHJpdmVzLCBhbmQgeW91IGNvbmZpZ3VyZSBp
dCB3aXRoIGEgLS12ZGV2DQo+IGNvbW1hbmQsDQo+ID4gPiBzbyB0cmVhdCBpdCBhcyBvbmUgaGVy
ZS4gIEkgdW5kZXJzdGFuZCB0aGF0IHlvdSBuZWVkIHRvIHBhc3MgYWRkaXRpb25hbA0KPiA+ID4g
aW5mb3JtYXRpb24gYWJvdXQgc2xhdmVzIHRvIGEgYm9uZGVkIGRldmljZSwgd2hpY2ggaXMgZmlu
ZSwgYnV0IHlvdSBjYW4gZG8gdGhhdA0KPiA+ID4gd2l0aCBrdmFyZ3MgcHJldHR5IGVhc2lseSwg
YXQgd2hpY2ggcG9pbnQgaXRzIGp1c3QgYW5vdGhlciB2ZGV2LiBUaGUgb25seSBvdGhlcg0KPiA+
ID4gcmVxdWlyZW1lbnQgaXMgdGhhdCB5b3UgaW5pdGlsaXplIHRoZSBib25kZWQgdmRldiBhZnRl
ciB0aGUgc2xhdmUgdmRldnMgaGF2ZQ0KPiA+ID4gYmVlbiBjcmVhdGVkLCB3aGljaCB5b3UgY2Fu
IGRvIGJ5IGFueSBvZiBzZXZlcmFsIG1ldGhvZHMgKGEgcHJpb3JpdHkgZmllbGQgdG8NCj4gPiA+
IGluZGljYXRlIHRoYXQgYm9uZGVkIGRyaXZlcnMgc2hvdWxkIGJlIGluaXRpbGl6ZWQgbGFzdC9s
YXRlciwgYSBkZWZlcnJhbCByZXR1cm4NCj4gPiA+IGNvZGUgZnJvbSB0aGUgaW5pdCByb3V0aW5l
LCBvciBieSBkZWFkIHJlY2tvbmluZyB2aWEgdGhlIGNhcmVmdWwgY29uc3RydWN0aW9uDQo+IG9m
DQo+ID4gPiB0aGUgYXBwbGljYXRpb24gY29tbWFuZCBsaW5lIChwbGFjZWQgdGhlIGJvbmRlZCAt
LXZkZXYgb3B0aW9uIGxhc3Qgb24gdGhlDQo+ID4gPiBjb21tYW5kIGxpbmUgYXJndW1lbnQgbGlz
dCBhdCBydW4gdGltZSkuDQo+ID4gPg0KPiA+IEl0IHdhcyBteSBpbml0aWFsIGludGVudCB0byBk
byBhcyB5b3UgaGF2ZSBkZXNjcmliZSBhYm92ZSwgYnV0IHRoZSBwaHlzaWNhbCBkZXZpY2VzDQo+
ID4gY2F1c2UgYSByZWFsIGlzc3VlIGhlcmUsIHBoeXNpY2FsIGRldmljZXMgZG9uJ3QgY2FsbCB0
aHJvdWdoIHRvDQo+IHJ0ZV9ldGhfZGV2X2FsbG9jYXRlIHVudGlsDQo+ID4gZHVyaW5nIHJ0ZV9l
YWxfcGNpX3Byb2JlIGNhbGwsIHNvIGl0J3Mgbm90IHBvc3NpYmxlIHRvIGluaXRpYWxpemUgdGhl
IGJvbmRlZCBkZXZpY2UNCj4gZnJvbQ0KPiA+IHdpdGhpbiBydGVfZWFsX2Rldl9pbml0IGFzIHRo
ZSBwaHlzaWNhbCBkZXZpY2VzIGhhdmUgbm90IGJlZW4gZnVsbHkgaW5pdGlhbGl6ZWQgYXQNCj4g
dGhpcw0KPiA+IHBvaW50LCBhcyBhIHBvcnRfaWQgaGFzIG5vdCBiZWVuIGFsbG9jYXRlZCBhbmQg
Y2FuJ3QgYmUgYWRkZWQgYXMgYm9uZGluZyBzbGF2ZXMuIEkNCj4gZG9uJ3QNCj4gPiBzZWUgYXdh
eSBhcm91bmQgdGhpcyB3aXRob3V0IGNoYW5naW5nIHRoZSBFQUwgQVBJLCB3aGljaCBJJ3ZlIHRy
aWVkIHRvIGF2b2lkIHdpdGgNCj4gdGhpcyBzb2x1dGlvbi4NCj4gPg0KPiA+IE9yZGVyaW5nIGlz
bid0IGFuIGlzc3VlLCBhbmQgY2FuIGVhc2lseSBiZSBzb2x2ZWQgaWYgdGhlIGFib3ZlIHByb2Js
ZW0gZGlkbid0DQo+IGV4aXN0LCBhbmQgYWx0aG91Z2gNCj4gPiBhIG5ldyBkZXZpY2UgdHlwZSBp
c24ndCB0ZWNobmljYWxseSByZXF1aXJlZCwgSSB0aGluayBpdCdzIGEgY2xlYW5lciBzb2x1dGlv
biB0aGFuDQo+IGRvaW5nDQo+ID4gc3RyaW5nIGNvbXBhcmlzb25zLg0KPiA+DQo+IA0KPiANCj4g
VWdoLCB5b3UncmUgcmlnaHQuIFRoYXQgc3RpbmtzLiAgV2Ugc3RpbGwgc2hvdWxkbid0IGp1c3Qg
ZHJvcCB0aGUgaW5pdCBjb2RlIGluDQo+IHdpdGggdGhlIHBjaSBwcm9iZSBjb2RlIHRob3VnaCwg
ZXNwZWNpYWxseSBpZiBkcGRrIHN0YXJ0cyBzdXBwb3J0aW5nIG1vcmUNCj4gc3RhY2tlZCBuZXR3
b3JrIGRldmljZXMuIEEgbm90aWZpY2F0aW9uIHN5c3RlbSBmb3IgaW50ZXJmYWNlIGNyZWF0aW9u
IHRoYXQgeW91DQo+IGNvdWxkIG1vbml0b3IgZm9yIHBjaV9kZXZpY2UgYWRkcmVzc2VzIChCOkQ6
RiB0dXBwbGVzKSB3b3VsZCBiZSBuaWNlLCBidXQgbWlnaHQNCj4gYmUgb3ZlcmtpbGwgc2luY2Ug
ZHBkayBkb2Vzbid0IHJlYWxseSBzdXBwb3J0IGRldmljZSBmcmVlaW5nIHlldC4gIHdoYXQgbWln
aHQgYmUNCj4gdXNlZnVsIGlzIGEgZ2VuZXJpYyBvcmRlcmluZyBtZWNoYW5pc20gZm9yIHJ0ZV9l
YWxfZGV2X2luaXQuICBJZiB5b3UgYWRkZWQgYQ0KPiBwcmlvcml0eSBmaWVsZCB0byB0aGUgcnRl
X2RyaXZlciBzdHJ1Y3R1cmUsIHlvdSBjb3VsZCBjcmVhdGUgYW4gZW51bWVyYXRpb24gZm9yDQo+
IHRoZSBmaWVsZCB0byBkZWZpbmUgd2hlbiB0aGUgaW5pdCByb3V0aW5lIGZvciB0aGF0IGRyaXZl
ciB3YXMgY2FsbGVkIHNvbWV0aGluZw0KPiBsaWtlOg0KPiB0eXBkZWYgZW51bSB7DQo+IAlQTURf
SU5JVF9GSVJTVCA9IDAsDQo+IAlQTURfSU5JVF9QT1NUX1BST0JFID0gMSwNCj4gfQ0KPiANCj4g
VGhlbiB5b3UgY291bGQgbWFrZSBtdWx0aXBsZSBjYWxscyB0byBydGVfZWFsX2Rldl9pbml0IGZy
b20gcnRlX2VhbF9pbml0IGF0IHRoZQ0KPiBhcHByb3ByaWF0ZSBwbGFjZXMgaW4gdGhlIGluaXRh
bGl6YXRpb24gcHJvY2VzcywgZWFjaCB0aW1lIHBhc3Npbmcgb25lIG9mIHRoZQ0KPiBhYm92ZSB2
YWx1ZXMuICBydGVfZWFsX2Rldl9pbml0IHdvdWxkIG9ubHkgaW5pdGFsaXplIHRob3NlIGRyaXZl
cnMgd2hvcyBwcmlvcml0eQ0KPiBtYXRjaGVkIHRoZSBwYXNzZWQgaW4gcHJpb3JpdHkuICBUaGF0
IHdvdWxkIGJlIGhlbHBmdWwgZm9yIGludGVyZmFjZXMgbGlrZQ0KPiB2bGFucywgdnhsYW5zLCB0
dW5uZWxzLCBldGMuDQo+IA0KSSdtIG5vdCBzdXJlIEkgdW5kZXJzdGFuZCBob3cgeW91IGludGVu
ZCB0aGlzIHRvIHdvcmssIGFyZSB5b3UgcHJvcG9zaW5nIHRoYXQgDQpydGVfZWFsX2Rldl9pbml0
IGlzIGNhbGwgbXVsdGlwbGUgdGltZXMgYnkgdGhlIHVzZXIgcHJlIGFuZCBwb3N0IHJ0ZV9lYWxf
cGNpX3Byb2JlDQp0aGlzIGRvZXNuJ3Qgc2VlbSBsaWtlIGFuIGlkZWEgc29sdXRpb24gZWl0aGVy
LiBJJ20gbm90IDEwMCUgY2xlYXIgd2h5IA0KcnRlX2VhbF9wY2lfcHJvYmUgaXMgY3VycmVudGx5
IGNhbGxlZCBieSAgdGhlIGFwcGxpY2F0aW9uIGNvZGUgYW5kIG5vdCBpbml0aWF0ZWQNCiBmcm9t
IHdpdGhpbiBydGVfZWFsX2Rldl9pbml0LCBpZiB0aGlzIHdhcyB0aGUgY2FzZSB3ZSB3b3VsZCBi
ZSBhYmxlIHRvIGZpZ3VyZSBvdXQgDQphIGRlcGVuZGVuY3kgdHJlZSBmb3IgaW5pdGlhbGl6YXRp
b24gb2YgZGV2aWNlcywgYmFzZWQgb24gdGhlIHBhcnNlZCBpbnB1dCANCmFyZ3VtZW50cyB3aXRo
b3V0IGhhdmluZyBleHRyYSB1c2VyIGlucHV0IHRvIG9yIG11bHRpcGxlIGNhbGxzIG9mIHJ0ZV9l
YWxfZGV2X2luaXQuDQoNCkVpdGhlciB3YXkgSSBkb24ndCB0aGluayB0aGF0IGFueSBvZiB0aGVz
ZSBzb2x1dGlvbiBhcmUgdHJpdmlhbCBhbmQgdGhleSB3b3VsZCANCm5lZWQgdG8gYmUgdGhvcm91
Z2hseSB0ZXN0ZWQsIHdoaWNoIEkgZG9uJ3QgdGhpbmsgd2lsbCBiZSBwb3NzaWJsZSBpbiB0aGUg
dGltZQ0KZnJhbWUgZm9yIDEuNy4gSWYgbXkgY3VycmVudCBpbXBsZW1lbnRhdGlvbiBjYWxsaW5n
IHJ0ZV9lYWxfYm9uZGVkX2Rldl9pbml0DQpmcm9tIHdpdGhpbiBydGVfZWFsX3BjaV9wcm9iZSBp
cyB1bmFjY2VwdGFibGUsIHRoZW4gSSBwcm9wb3NlIHRoYXQgSSByZW1vdmUgDQp0aGUgRUFMIGNo
YW5nZXMgZm9yIC0tdmRldiBpbml0aWFsaXphdGlvbiBvZiBib25kaW5nIGRldmljZXMgZnJvbSB0
aGlzIHJlbGVhc2UgYW5kDQpvbmx5IHN1cHBvcnQgdGhlIEMgQVBJLCBhbmQgdGhhdCBhbiBvdmVy
YWxsIHN0cmF0ZWd5IGlzIGRpc2N1c3NlZCBmb3Igc3RhdGljIGRldmljZQ0KIGluaXRpYWxpemF0
aW9uIHRoYXQgaXMgZGV2ZWxvcGVkIGZvciAxLjcuMSBvciAxLjguDQoNCj4gPiA+ID4NCj4gPiA+
ID4gK3N0YXRpYyBpbnQNCj4gPiA+ID4gK3J0ZV9ldGhfZGV2X25hbWVfdW5pcXVlKGNvbnN0IGNo
YXIqIG5hbWUpDQo+ID4gPiA+ICt7DQo+ID4gPiA+ICsJdW5zaWduZWQgaTsNCj4gPiA+ID4gKw0K
PiA+ID4gPiArCWZvciAoaSA9IDA7IGkgPCBuYl9wb3J0czsgaSsrKSB7DQo+ID4gPiA+ICsJCWlm
IChzdHJjbXAocnRlX2V0aF9kZXZpY2VzW2ldLmRhdGEtPm5hbWUsIG5hbWUpID09IDApDQo+ID4g
PiA+ICsJCQlyZXR1cm4gLTE7DQo+ID4gPiA+ICsJfQ0KPiA+ID4gPiArDQo+ID4gPiA+ICsJcmV0
dXJuIDA7DQo+ID4gPiA+ICt9DQo+ID4gPiA+ICsNCj4gPiA+ID4gIHN0cnVjdCBydGVfZXRoX2Rl
diAqDQo+ID4gPiA+IC1ydGVfZXRoX2Rldl9hbGxvY2F0ZSh2b2lkKQ0KPiA+ID4gPiArcnRlX2V0
aF9kZXZfYWxsb2NhdGUoY29uc3QgY2hhciogbmFtZSkNCj4gPiA+ID4gIHsNCj4gPiA+ID4gIAlz
dHJ1Y3QgcnRlX2V0aF9kZXYgKmV0aF9kZXY7DQo+ID4gPiA+DQo+ID4gPiA+IEBAIC0xNjUsMjMg
KzE3OSwzNyBAQCBydGVfZXRoX2Rldl9hbGxvY2F0ZSh2b2lkKQ0KPiA+ID4gPiAgCWlmIChydGVf
ZXRoX2Rldl9kYXRhID09IE5VTEwpDQo+ID4gPiA+ICAJCXJ0ZV9ldGhfZGV2X2RhdGFfYWxsb2Mo
KTsNCj4gPiA+ID4NCj4gPiA+ID4gKwlpZiAocnRlX2V0aF9kZXZfbmFtZV91bmlxdWUobmFtZSkp
IHsNCj4gPiA+ID4gKwkJUE1EX0RFQlVHX1RSQUNFKCJFdGhlcm5ldCBEZXZpY2Ugd2l0aCBuYW1l
ICVzIGFscmVhZHkNCj4gPiA+IGFsbG9jYXRlZCFcbiIpOw0KPiA+ID4gPiArCQlyZXR1cm4gTlVM
TDsNCj4gPiA+ID4gKwl9DQo+ID4gPiA+ICsNCj4gPiA+IFRoaXMgc2VlbXMgZmFpcmx5IHJhY3kg
aWYgeW91IGFsbG93IGR5bmFtaWMgZGV2aWNlIGNyZWF0aW9uIGF0IHJ1biB0aW1lIGZyb20NCj4g
dGhlDQo+ID4gPiBhcHBsaWNhdGlvbiwgaWYgbXVsdGlwbGUgdGhyZWFkcyBhdHRlbXB0IHRvIGNy
ZWF0ZSBib25kcyBpbiBwYXJhbGxlbC4NCj4gPg0KPiA+IFRydWUgYnV0IGlmIHRoaXMgaXMgYW4g
aXNzdWUgdGhlbiB0aGVyZSBwcm9iYWJseSBzaG91bGQgYmUgc29tZSBsb2NraW5nIGFyb3VuZA0K
PiB0aGlzIGFsbG9jYXRpb24gYW55d2F5Lg0KPiBBZ3JlZWQgdGhlIGFsbG9jYXRpb24gb2YgdGhl
IHBvcnQgaWQgaXMgYWxzbyByYWN5Lg0KPiANCj4gPiA+DQo+ID4gPiA+ICAvKioNCj4gPiA+ID4g
ZGlmZiAtLWdpdCBhL2xpYi9saWJydGVfcG1kX3BjYXAvcnRlX2V0aF9wY2FwLmMNCj4gPiA+IGIv
bGliL2xpYnJ0ZV9wbWRfcGNhcC9ydGVfZXRoX3BjYXAuYw0KPiA+ID4gSG1tLCB3ZSdyZSBtb2Rp
Znlpbmcgb3RoZXIgcG1kcyBmb3IgdGhlIG5hbWluZyBmZWF0dXJlLCBJIHRoaW5rIGl0IHdvdWxk
IGJlDQo+IGJlc3QNCj4gPiA+IHNwbGl0IG91dCBpbnRvIGEgc2VwYXJhdGUgcGF0Y2guICBTb21l
dGhpbmcgZW50aXRsZWQgInN1cHBvcnQgdW5pcXVlIGludGVyZmFjZQ0KPiA+ID4gbmFtaW5nIGZv
ciB2aXJ0dWFsIHBtZHMiIG9yIHNvbWV0aGluZy4NCj4gPg0KPiA+IFRydWUsIGJ1dCBpZiBJIGRv
IHRoYXQsIEkgd2lsbCBuZWVkIHRvIGJyZWFrIHN1cHBvcnQgZm9yIHZpcnR1YWwgZGV2aWNlcyBp
biB0aGlzIHBhdGNoDQo+IHNldCwgYW5kDQo+ID4gSSB3b3VsZCBwcmVmZXIgdG8ga2VlcCB0aGlz
IGZ1bmN0aW9uYWxpdHkgd29ya2luZyBpbml0aWFsIHJlbGVhc2Ugb2YgbGluayBib25kaW5nLg0K
PiBBbHNvIGFub3RoZXINCj4gPiBwYXRjaHNldCB3aWxsIGJlIHJlcXVpcmVkIGF0IHNvbWUgcG9p
bnQgaW4gdGhlIG5lYXIgZnV0dXJlIHRvIHRpZHkgdXAvcmF0aW9uYWxpemUNCj4gdGhlIGN1cnJl
bnQNCj4gPiBoYW5kbGluZyBvZiB2aXJ0dWFsIGRldmljZXMgaWRlbnRpZmljYXRpb24gYW5kIHRo
ZXNlIGNoYW5nZXMgZG8gbm90IGNoYW5nZQ0KPiBmdW5jdGlvbmFsbHkgaG93DQo+ID4gdGhlc2Ug
ZGV2aWNlcyB3b3JrLg0KPiANCj4gSSdtIG5vdCBzdXJlIEknbSBmb2xsb3dpbmcgd2hhdCB5b3Un
cmUgc2F5aW5nIGhlcmUuICBJZiB5b3Ugc3BsaXQgdGhpcyBpbnRvDQo+IGFub3RoZXIgcGF0Y2gg
c2V0LCBhbmQgb3JkZXIgZWFybGllciBpbiB0aGlzIHNlcmllcywgdGhlbiB5b3Ugd29uJ3QgYnJl
YWsNCj4gYW55dGhpbmcuICBJJ20gbm90IHN1Z2dlc3RpbmcgYSBmdW5jdGlvbmFsIGNoYW5nZSBo
ZXJlLCBqdXN0IGEgb3JnYW5pemF0aW9uYWwNCj4gb25lLCBzbyB0aGF0IHRoaXMgY2hhbmdlIGRv
ZXNuJ3QgZG8gbW9yZSB0aGFuIHRoZSBjaGFuZ2Vsb2cgaW5kaWNhdGVzLg0KPiANCg0KU29ycnkg
SSBtaXN1bmRlcnN0b29kLCBJIHRob3VnaHQgdGhhdCB5b3Ugd2hlcmUgcHJvcG9zaW5nIHRoYXQg
SSBjcmVhdGUgYSBjb21wbGV0ZWx5IG5ldyANCnBhdGNoc2V0IHNlcGFyYXRlIHRvIHRoZSBsaW5r
IGJvbmRpbmcgcmVsZWFzZSBzZXQgZm9yIHRoZXNlIGNoYW5nZXMuDQoNCj4gTmVpbA0KDQpEZWNs
YW4NCg==