From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by dpdk.org (Postfix) with ESMTP id 131DC2B9D for ; Tue, 8 Aug 2017 20:21:11 +0200 (CEST) Received: from fmsmga004.fm.intel.com ([10.253.24.48]) by fmsmga105.fm.intel.com with ESMTP; 08 Aug 2017 11:21:09 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.41,344,1498546800"; d="scan'208";a="297480429" Received: from fmsmsx103.amr.corp.intel.com ([10.18.124.201]) by fmsmga004.fm.intel.com with ESMTP; 08 Aug 2017 11:21:09 -0700 Received: from fmsmsx113.amr.corp.intel.com ([169.254.13.214]) by FMSMSX103.amr.corp.intel.com ([169.254.2.187]) with mapi id 14.03.0319.002; Tue, 8 Aug 2017 11:21:09 -0700 From: "Wiles, Keith" To: Stephen Hemminger CC: "Yigit, Ferruh" , Thomas Monjalon , DPDK , "Richardson, Bruce" , "Chilikin, Andrey" , "Ananyev, Konstantin" , "Wu, Jingjing" Thread-Topic: [dpdk-dev] [RFC] ethdev: add ioctl-like API to control device specific features Thread-Index: AQHTDRj4kO/62365mUS+R0MtbMBkT6J7MpQAgAAJbwCAAAVZAA== Date: Tue, 8 Aug 2017 18:21:09 +0000 Message-ID: <5023BA7A-CC71-44B3-9299-ADFE38C919A6@intel.com> References: <20170803132138.GA8732@bricha3-MOBL3.ger.corp.intel.com> <20170803091531.5902f86c@xeon-e3> <1581480.IJArXVfUmc@xps> <12c296b7-0696-6c12-7fb2-e43bcd49d784@intel.com> <14B94271-5849-47DE-A50C-06A2ABD14176@intel.com> <20170808110200.07afa18e@xeon-e3> In-Reply-To: <20170808110200.07afa18e@xeon-e3> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.255.230.19] Content-Type: text/plain; charset="utf-8" Content-ID: Content-Transfer-Encoding: base64 MIME-Version: 1.0 Subject: Re: [dpdk-dev] [RFC] ethdev: add ioctl-like API to control device specific features 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: Tue, 08 Aug 2017 18:21:13 -0000 DQo+IE9uIEF1ZyA4LCAyMDE3LCBhdCAxOjAyIFBNLCBTdGVwaGVuIEhlbW1pbmdlciA8c3RlcGhl bkBuZXR3b3JrcGx1bWJlci5vcmc+IHdyb3RlOg0KPiANCj4gT24gVHVlLCA4IEF1ZyAyMDE3IDE3 OjI4OjE5ICswMDAwDQo+ICJXaWxlcywgS2VpdGgiIDxrZWl0aC53aWxlc0BpbnRlbC5jb20+IHdy b3RlOg0KPiANCj4+IEZpeCBmb3JtYXQuDQo+PiANCj4+PiBPbiBBdWcgNCwgMjAxNywgYXQgNjo1 OCBBTSwgRmVycnVoIFlpZ2l0IDxmZXJydWgueWlnaXRAaW50ZWwuY29tPiB3cm90ZToNCj4+PiAN Cj4+PiBPbiA4LzMvMjAxNyA4OjUzIFBNLCBUaG9tYXMgTW9uamFsb24gd3JvdGU6ICANCj4+Pj4g MDMvMDgvMjAxNyAxODoxNSwgU3RlcGhlbiBIZW1taW5nZXI6ICANCj4+Pj4+IE9uIFRodSwgMyBB dWcgMjAxNyAxNDoyMTozOCArMDEwMA0KPj4+Pj4gQnJ1Y2UgUmljaGFyZHNvbiA8YnJ1Y2Uucmlj aGFyZHNvbkBpbnRlbC5jb20+IHdyb3RlOg0KPj4+Pj4gDQo+Pj4+Pj4gT24gVGh1LCBBdWcgMDMs IDIwMTcgYXQgMDE6MjE6MzVQTSArMDEwMCwgQ2hpbGlraW4sIEFuZHJleSB3cm90ZTogIA0KPj4+ Pj4+PiBUbyBjb250cm9sIHNvbWUgZGV2aWNlLXNwZWNpZmljIGZlYXR1cmVzIHB1YmxpYyBkZXZp Y2Utc3BlY2lmaWMgZnVuY3Rpb25zDQo+Pj4+Pj4+IHJ0ZV9wbWRfKi5oIGFyZSB1c2VkLg0KPj4+ Pj4+PiANCj4+Pj4+Pj4gQnV0IHRoaXMgc29sdXRpb24gcmVxdWlyZXMgYXBwbGljYXRpb25zIHRv IGRpc3Rpbmd1aXNoIGRldmljZXMgYXQgcnVudGltZQ0KPj4+Pj4+PiBhbmQsIGRlcGVuZGluZyBv biB0aGUgZGV2aWNlIHR5cGUsIGNhbGwgY29ycmVzcG9uZGluZyBkZXZpY2Utc3BlY2lmaWMNCj4+ Pj4+Pj4gZnVuY3Rpb25zIGV2ZW4gaWYgZnVuY3Rpb25zJyBwYXJhbWV0ZXJzIGFyZSB0aGUgc2Ft ZS4NCj4+Pj4+Pj4gDQo+Pj4+Pj4+IElPQ1RMLWxpa2UgQVBJIGNhbiBiZSBhZGRlZCB0byBldGhk ZXYgaW5zdGVhZCBvZiBwdWJsaWMgZGV2aWNlLXNwZWNpZmljDQo+Pj4+Pj4+IGZ1bmN0aW9ucyB0 byBhZGRyZXNzIHRoZSBmb2xsb3dpbmc6DQo+Pj4+Pj4+IA0KPj4+Pj4+PiAqIGFsbG93IG1vcmUg dXNhYmxlIHN1cHBvcnQgb2YgZmVhdHVyZXMgYWNyb3NzIGEgcmFuZ2Ugb2YgTklDIGZyb20NCj4+ Pj4+Pj4gb25lIHZlbmRvciwgYnV0IG5vdCBvdGhlcnMNCj4+Pj4+Pj4gKiBhbGxvdyBmZWF0dXJl cyB0byBiZSBpbXBsZW1lbnRlZCBieSBtdWx0aXBsZSBOSUMgZHJpdmVycyB3aXRob3V0DQo+Pj4+ Pj4+IHJlbHlpbmcgb24gYSBjcml0aWNhbCBtYXNzIHRvIGdldCB0aGUgZnVuY3Rpb25hbGl0eSBp biBldGhkZXYNCj4+Pj4+Pj4gKiB0aGVyZSBhcmUgYSBsYXJnZSBudW1iZXIgb2YgcG9zc2libGUg ZGV2aWNlIHNwZWNpZmljIGZ1bmN0aW9ucywgYW5kDQo+Pj4+Pj4+IGNyZWF0aW5nIGluZGl2aWR1 YWwgQVBJcyBmb3IgZWFjaCBvbmUgaXMgbm90IGEgZ29vZCBzb2x1dGlvbg0KPj4+Pj4+PiAqIElP Q1RMcyBhcmUgYSBwcm92ZW4gbWV0aG9kIGZvciBzb2x2aW5nIHRoaXMgcHJvYmxlbSBpbiBvdGhl ciBhcmVhcywNCj4+Pj4+Pj4gaS5lLiBPUyBrZXJuZWxzLg0KPj4+Pj4+PiANCj4+Pj4+Pj4gQ29u dHJvbCByZXF1ZXN0cyBmb3IgdGhpcyBBUEkgd2lsbCBiZSBnbG9iYWxseSBkZWZpbmVkIGF0IGV0 aGRldiBsZXZlbCwgc28NCj4+Pj4+Pj4gYW4gYXBwbGljYXRpb24gd2lsbCB1c2Ugc2luZ2xlIEFQ SSBjYWxsIHRvIGNvbnRyb2wgZGlmZmVyZW50IGRldmljZXMgZnJvbQ0KPj4+Pj4+PiBvbmUvbXVs dGlwbGUgdmVuZG9ycy4NCj4+Pj4+Pj4gDQo+Pj4+Pj4+IEFQSSBjYWxsIG1heSBsb29rIGxpa2Ug YXMgYSBjbGFzc2ljIGlvY3RsIHdpdGggYW4gZXh0cmEgcGFyYW1ldGVyIGZvcg0KPj4+Pj4+PiBh cmd1bWVudCBsZW5ndGggZm9yIGJldHRlciBzYW5pdHkgY2hlY2tzOg0KPj4+Pj4+PiANCj4+Pj4+ Pj4gaW50DQo+Pj4+Pj4+IHJ0ZV9ldGhfZGV2X2lvY3RsKHVpbnQxNl90IHBvcnQsIHVpbnQ2NF90 IGN0bCwgdm9pZCAqYXJncCwNCj4+Pj4+Pj4gICAgICAgdW5zaWduZWQgYXJnX2xlbmd0aCk7DQo+ Pj4+Pj4+IA0KPj4+Pj4+PiBSZWdhcmRzLA0KPj4+Pj4+PiBBbmRyZXkgICAgDQo+Pj4+Pj4gDQo+ Pj4+Pj4gSSB0aGluayB3ZSBuZWVkIHRvIHN0YXJ0IHB1dHRpbmcgaW4gSU9DVExzIGZvciBldGhk ZXZzLCBtdWNoIGFzIEkgaGF0ZQ0KPj4+Pj4+IHRvIGFkbWl0IGl0LCBzaW5jZSBJIGRpc2xpa2Ug SU9DVExzIGFuZCBvdGhlciBmdW5jdGlvbnMgd2l0aCBvcGFxdWUNCj4+Pj4+PiBhcmd1bWVudHMh IEhhdmluZyBkcml2ZXIgc3BlY2lmaWMgZnVuY3Rpb25zIEkgZG9uJ3QgdGhpbmsgd2lsbCBzY2Fs ZQ0KPj4+Pj4+IHdlbGwgYXMgZWFjaCB2ZW5kb3IgdHJpZXMgdG8gZXhwb3NlIGFzIG11Y2ggb2Yg dGhlaXIgZHJpdmVyIHNwZWNpZmljDQo+Pj4+Pj4gZnVuY3Rpb25hbGl0eSBhcyBwb3NzaWJsZS4N Cj4+Pj4+PiANCj4+Pj4+PiBPbmUgb3RoZXIgYWRkaXRpb25hbCBleGFtcGxlOiBJIGRpc2NvdmVy ZWQganVzdCB0aGlzIHdlZWsgYW5vdGhlciBpc3N1ZQ0KPj4+Pj4+IHdpdGggZHJpdmVyIHNwZWNp ZmljIGZ1bmN0aW9ucyBhbmQgdGVzdHBtZCwgd2hlbiBJIHdhcyB3b3JraW5nIG9uIHRoZQ0KPj4+ Pj4+IG1lc29uIGJ1aWxkIHJld29yay4NCj4+Pj4+PiANCj4+Pj4+PiAqIFdpdGggc2hhcmVkIGxp YnJhcmllcywgd2hlbiB3ZSBkbyAibmluamEgaW5zdGFsbCIgd2Ugd2FudCBvdXIgRFBESw0KPj4+ Pj4+IGxpYnMgbW92ZWQgdG8gZS5nLiAvdXNyL2xvY2FsL2xpYiwgYnV0IHRoZSBkcml2ZXJzIG1v dmVkIHRvIGEgc2VwYXJhdGUNCj4+Pj4+PiBkcml2ZXIgZm9sZGVyLCBzbyB0aGF0IHRoZXkgY2Fu IGJlIGF1dG9tYXRpY2FsbHkgbG9hZGVkIGZyb20gdGhhdA0KPj4+Pj4+IHNpbmdsZSBsb2NhdGlv biBieSBEUERLIGFwcHMgWz09IENPTkZJR19SVEVfRUFMX1BNRF9QQVRIXS4NCj4+Pj4+PiAqIEhv d2V2ZXIsIHRlc3RwbWQsIGFzIHdlbGwgYXMgdXNpbmcgdGhlIGRyaXZlcnMgYXMgcGx1Z2lucywg dXNlcw0KPj4+Pj4+IGRyaXZlci1zcGVjaWZpYyBmdW5jdGlvbnMsIHdoaWNoIG1lYW5zIHRoYXQg aXQgZXhwbGljaXRseSBsaW5rcw0KPj4+Pj4+IGFnYWluc3QgdGhlIHBtZCAuc28gZmlsZXMuDQo+ Pj4+Pj4gKiBUaG9zZSBkcml2ZXIgLnNvIGZpbGVzIGFyZSBub3QgaW4gd2l0aCB0aGUgb3RoZXIg bGlicmFyaWVzLCBzbyBsZC5zbw0KPj4+Pj4+IGRvZXMgbm90IGZpbmQgdGhlIHBtZCwgYW5kIHRo ZSBpbnN0YWxsZWQgdGVzdHBtZCBmYWlscyB0byBydW4gZHVlIHRvDQo+Pj4+Pj4gbWlzc2luZyBs aWJyYXJ5IGRlcGVuZGVuY2llcy4NCj4+Pj4+PiAqIFRoZSB3b3JrYXJvdW5kIGlzIHRvIGFkZCB0 aGUgZHJpdmVycyBwYXRoIHRvIHRoZSBsZCBsb2FkIHBhdGgsIGJ1dCB3ZQ0KPj4+Pj4+IHNob3Vs ZCBub3QgcmVxdWlyZSBsZCBsaWJyYXJ5IHBhdGggY2hhbmdlcyBqdXN0IHRvIGdldCBEUERLIGFw cHMgdG8NCj4+Pj4+PiB3b3JrLg0KPj4+Pj4+IA0KPj4+Pj4+IFVzaW5nIGlvY3RscyBpbnN0ZWFk IG9mIGRyaXZlci1zcGVjaWZpYyBmdW5jdGlvbnMgd291bGQgc29sdmUgdGhpcy4NCj4+Pj4+PiAN Cj4+Pj4+PiBNeSAyYy4gIA0KPj4+Pj4gDQo+Pj4+PiBNeSAyYy4gTm8uDQo+Pj4+PiANCj4+Pj4+ IFNob3J0IGFuc3dlcjoNCj4+Pj4+IElvY3RsJ3Mgd2VyZSBhIGJhZCBpZGVhIGluIFVuaXggKHBl ciBEZW5uaXMgUml0Y2hpZSBldCBhbCkgYW5kIGFyZSBub3cNCj4+Pj4+IGRlc3Bpc2VkIGJ5IExp bnV4IGtlcm5lbCBkZXZlbG9wZXJzLiBUaGV5IHByb3ZpZGUgYW4gdW5zdHJ1Y3R1cmVkLCB1bnNl Y3VyZWQsDQo+Pj4+PiBiYWNrIGRvb3IgZm9yIGRldmljZSBkcml2ZXIgYWJ1c2UuIFRyeSB0byBn ZXQgYSBuZXcgZHJpdmVyIGluIExpbnV4IHdpdGgNCj4+Pj4+IGEgdW5pcXVlIGlvY3RsLCBhbmQg aXQgd2lsbCBiZSBoYXJkIHRvIGdldCBhY2NlcHRlZC4NCj4+Pj4+IA0KPj4+Pj4gTG9uZyBhbnN3 ZXI6DQo+Pj4+PiBTbyBmYXIgZXZlcnkgZGV2aWNlIHNwZWNpZmljIGZlYXR1cmUgaGFzIGZpdCBp bnRvIGV0aGRldiBtb2RlbC4gRG9pbmcgaW9jdGwNCj4+Pj4+IGlzIGFkbWl0dGluZyAiaXQgaXMg dG9vIGhhcmQgdG8gYmUgZ2VuZXJhbCwgd2UgbmVlZCBuZWVkIGFuIG91dCIuIEZvciBzb21ldGhp bmcNCj4+Pj4+IHRoYXQgaXMgYSBmbGFnLCBpdCBzaG91bGQgZml0IGludG8gZXhpc3RpbmcgY29u ZmlnIG1vZGVsOyBpZ25vcmluZyBzaWxseSBBQkkgY29uc3RyYWludHMuDQo+Pj4+PiBGb3IgYSBy ZWFsIGZlYXR1cmUgKHRoaW5rIGZsb3cgZGlyZWN0aW9uKSwgd2Ugd2FudCBhIGZpcnN0IGNsYXNz IEFQSSBmb3IgdGhhdC4NCj4+Pj4+IEZvciBhIHdhcnQsIHRoZW4gZGV2YXJncyB3aWxsIGRvLg0K Pj4+Pj4gDQo+Pj4+PiBHaXZlIGEgZ29vZCBleGFtcGxlIG9mIHNvbWV0aGluZyB0aGF0IHNob3Vs ZCBiZSBhbiBpb2N0bC4gRG9uJ3QgYnVpbGQgdGhlDQo+Pj4+PiBBUEkgZmlyc3QgYW5kIHRoZW4g bGV0IGl0IGdldCBjbHV0dGVyZWQuICANCj4+Pj4gDQo+Pj4+IEkgYWdyZWUgd2l0aCBTdGVwaGVu Lg0KPj4+PiANCj4+Pj4gQW5kIHBsZWFzZSBkbyBub3QgZm9yZ2V0IHRoYXQgaW9jdGwgc3RpbGwg cmVxdWlyZXMgYW4gQVBJOg0KPj4+PiB0aGUgYXJndW1lbnQgdGhhdCB5b3UgcHV0IGluIGlvY3Rs IGlzIHRoZSBBUEkgb2YgdGhlIGZlYXR1cmUuDQo+Pj4+IFNvIGl0IGlzIHRoZSBzYW1lIHRoaW5n IGFzIGRlZmluaW5nIGEgbmV3IGZ1bmN0aW9uLiAgDQo+Pj4gDQo+Pj4gSSBhbSBhbHNvIG5vdCBm YW4gb2YgdGhlIGlvY3RsIHVzYWdlLiBJIGJlbGlldmUgaXQgaGlkZXMgQVBJcyBiZWhpbmQgaWRz DQo+Pj4gYW5kIHByZXZlbnQgYXJndW1lbnQgY2hlY2sgYnkgY29tcGlsZXIuDQo+Pj4gDQo+Pj4g QlVULCB0aGUgbnVtYmVyIG9mIHRoZSBpbmNyZWFzaW5nIFBNRCBzcGVjaWZpYyBBUElzIGFyZSBh bHNvIHdvcnJ5aW5nLA0KPj4+IGl0IGlzIGJlY29taW5nIGhhcmRlciB0byBtYWludGFpbiwgYW5k IEkgYmVsaWV2ZSB0aGlzIGlzIHNvbWV0aGluZyBOT1QNCj4+PiBzdXN0YWluYWJsZSBpbiBsb25n IHJ1bi4NCj4+PiANCj4+PiANCj4+PiBXaGF0IGFib3V0IGhhdmluZyAqZXRoX2Rldl9leHRlbmRl ZF9vcHMqID8gIA0KPj4gDQo+PiANCj4+IFdlIGhhZCB0YWxrIGFib3V0IGFkZGluZyBzb21ldGhp bmcgbGlrZSBkZXZpY2Ugc3BlY2lmaWMgQVBJcyB0byBEUERLIGluIHRoZSBwYXN0LCB3aGljaCB0 byBtZSBhcmUganVzdCBJT0NUTCBsaWtlIEFQSXMuIFRoZSBiaWcgcHJvYmxlbSB3aXRoIElPQ1RM cyBpcyB0cnlpbmcgdG8gY3JhbSBhIGJ1bmNoIG9mIHNwZWNpZmljIHJlcXVlc3RzIGludG8gYSB2 ZXJ5IGdlbmVyaWMgQVBJIGFuZCBJIGRvIG5vdCBsaWtlIGlvY3RsIGFzIGRlZmluZWQgaW4gTGlu dXgvVW5peCB0b2RheS4gVGhlIG9sZCBJT0NUTHMgY2FsbHMgYXJlIHRvbyBvcGFxdWUgYW5kIGRp ZmZpY3VsdCBmb3IgY29tcGlsZXJzIHRvIHRlc3QgYXJncyBhbmQgbWFueSBvdGhlciBpc3N1ZXMu DQo+PiANCj4+IFdlIHRhbGtlZCBhYm91dCBoYXZpbmcgYSBzaW5nbGUgQVBJIGluIHJ0ZV9ldGhf ZGV2IHRoYXQgd291bGQgYWxsb3cgYSB1c2VyIHRvIGFzayBmb3IgYW5kIHBvc3NpYmxlIGdldCBh IGxpc3Qgb2YgZnVuY3Rpb24gcG9pbnRlcnMgaW4gYSBnaXZlbiBzdHJ1Y3R1cmUgZm9yIHRoZSBy ZXF1ZXN0ZWQgdHlwZS4gSWYgYSB1c2VyIGNhbGxzIHRoaXMgQVBJIHRvIGdldCBzb21lIGZlYXR1 cmUgZnJvbSBhIGdpdmVuIE5JQyBoZSB3b3VsZCBnZXQgTlVMTCBvciBhIHBvaW50ZXIgdG8gYSBz ZXQgb2YgZnVuY3Rpb25zLiBUaGUgZ2VuZXJpYyBBUEkgaW4gcnRlX2V0aCB3b3VsZCBhbGxvdyB0 aGUgdXNlciB0byByZXF1ZXN0IHdoYXQgc3RydWN0dXJlcyBvciB0eXBlcyBvZiBBUElzIGl0IHN1 cHBvcnRzLg0KPj4gDQo+PiBVc2luZyBhIHNwZWNpZmljIEFQSSB0byBnZXQgdGhlIGxpc3Qgb2Yg QVBJcyBvciBzdXBwb3J0ZWQgZmVhdHVyZXMgaW4gYSBOSUMsIHdpbGwgYWxsb3cgdGhlIGRldmVs b3BlciB0byByZXF1ZXN0IHRoZSBzZXQgb2YgQVBJcyAoaW4gYW4gYXJyYXkgb3Igc29tZSBtZXRo b2QpLiBUaGVuIHdlIGhhdmUgcmVhbCBBUElzIGZvciBzcGVjaWZpYyBjb250cm9sIG9yIHJlcXVl c3RzIGFuZCBub3QgYSBnZW5lcmljIEFQSSBsaWtlIGlvY3RsLg0KPj4gDQo+PiBDcmlzdGlhbiBo YWQgc3VnZ2VzdGVkIGFuIEFQSSBsaWtlIHRoaXMgdG8gbWFrZSBpdCBlYXN5IHRvIGFkZCBhbnkg SU9DVEwgbGlrZSBuZWVkcyB0byBhIGRyaXZlci4gV2UgY2FuIGRlZmluZSBhIHNldCBvZiBzdHJ1 Y3R1cmVzIHRoYXQgc2VlbSBnZW5lcmljIGZvciBzb21lIElPQ1RMIGxpa2UgbmVlZHMgb3IganVz dCBhbGxvdyB0aGUgTklDIHRvIGRlZmluZSBoaXMgb3duIHN0cnVjdHVyZXMgYW5kIEFQSXMuIEFs bG93aW5nIHRoZSBkZXZlbG9wZXIgdG8gZGVmaW5lIGhpcyBvd24gc3RydWN0dXJlcyBhbmQgQVBJ cyBpcyBub3QgdmVyeSBnZW5lcmljIG9yIHVzYWJsZSBieSB0aGUgdXNlcnMsIHNvIEkgd291bGQg bGVhbiB0b3dhcmQgZGVmaW5pbmcgc3RydWN0dXJlcyBzZXQgbmVlZCB0b2RheSBhbmQgZXhwYW5k IHRob3NlIHN0cnVjdHVyZXMgaW4gdGhlIGZ1dHVyZSBvciBhZGQgbW9yZSBzdHJ1Y3R1cmVzLg0K Pj4gDQo+PiBpbnQgcnRlX2V0aF9kZXZfc29tZXRoaW5nKHVpbnQxNl90IHBvcnRfaWQsIGNvbnN0 IGNoYXIgKmZlYXR1cmUsIHZvaWQgKipvYmopOw0KPj4gDQo+PiBVc2luZyBzdHJpbmdzIHdlIGNh biBkZWZpbmUgb3IgdGhlIE5JQyB2ZW5kb3IgY2FuIGRlZmluZSB0byBhc2sgZm9yIGEgcG9pbnRl ciB0byBhIHN0cnVjdHVyZSBoZSBrbm93cyB2aWEgYSBkcml2ZXIgaGVhZGVyLiBTdHJpbmdzIGFy ZSBnb29kLCBiZWNhdXNlIHdlIGNhbiByZWFkIHRoZW0gdmlhIHRoZSBkZWJ1ZyBvciBwcmludCB0 aGVtIG91dCBxdWlja2x5IGluc3RlYWQgb2YgdHJ5aW5nIHRvIHVzZSBzb21lIGxvb2t1cCB0YWJs ZS4gUGx1cyB3ZSBjYW4gaGF2ZSBhbnkgbGVuZ3RoIG9yIGNoYXJhY3RlcnMgZm9yIGRlZmluaW5n IHRoZSBzdHJ1Y3R1cmUgcmVxdWVzdC4NCj4+IA0KPj4gSnVzdCBvZmYgdGhlIHRvcCBvZiBteSBo ZWFkLCBidXQgaXQgY2FuIGJlIGNoYW5nZWQgaWYgbmVlZGVkLg0KPj4gDQo+PiANCj4+PiANCj4+ PiANCj4+PiBBcyBhIHBhcnQgb2YgdGhlIHJ0ZV9ldGhfZGV2LiBUaGlzIGNhbiBiZSBpbiB0aGUg bGlicnRlX2V0aGVyIGxpYnJhcnkNCj4+PiBidXQgaW4gYSBzZXBhcmF0ZWQgZmlsZS4NCj4+PiAN Cj4+PiBBbmQgdGhlIEFQSXMgZm9yIHRoZXNlIG9wcyBjYW4gYmUgbGVzcyBzdHJpY3Qgb24gY29t cGF0aWJpbGl0eSwgYW5kDQo+Pj4gZWFzaWVyIHRvIGFkZC4NCj4+PiANCj4+PiBCZW5lZml0cyBv ZiBoYXZpbmcgdGhpcyBuZXcgZGV2X29wczoNCj4+PiANCj4+PiAqIEhhdmluZyBhbiBhYnN0cmFj dGlvbiBsYXllciBmb3IgY29tbW9uIGNoZWNrcy4NCj4+PiANCj4+PiAqIEV2ZW4gZmVhdHVyZSBp cyBub3QgZ2VuZXJpYyBmb3IgYWxsIE5JQ3MsIHN0aWxsIGEgZmV3IE5JQ3MgY2FuIHNoYXJlDQo+ Pj4gdGhlIG9wcy4NCj4+PiANCj4+PiAqIEFsbCBBUElzIGFyZSBpbiB0aGUgc2FtZSBmaWxlIG1h a2VzIGl0IGVhc3kgdG8gc2VlIFBNRCBzcGVjaWZpYyBBUElzDQo+Pj4gY29tcGFyaW5nIHRvIHNj YXR0ZXJlZCBpbnRvIHZhcmlvdXMgUE1Ecy4NCj4+PiANCj4+PiAqIFRoaXMgaXMgdmVyeSBsaWtl IGlvY3RsIGFwcHJvYWNoLCBidXQgQVBJcyBhcmUgbW9yZSBjbGVhciBhbmQNCj4+PiBhcmd1bWVu dHMgY2FuIGJlIHZlcmlmaWVkLg0KPj4+IA0KPj4+IFRoYW5rcywNCj4+PiBmZXJydWgNCj4+PiAN Cj4+PiANCj4+Pj4gDQo+Pj4+IFRoZSByZWFsIGRlYmF0ZSBpcyB0byBkZWNpZGUgaWYgd2Ugd2Fu dCB0byBjb250aW51ZSBhZGRpbmcgbW9yZQ0KPj4+PiBjb250cm9sIHBhdGggZmVhdHVyZXMgaW4g RFBESyBvciBmb2N1cyBvbiBSeC9UeC4NCj4+Pj4gQnV0IHRoaXMgZGlzY3Vzc2lvbiB3b3VsZCBi ZSBiZXR0ZXIgbGVhZCB3aXRoIHNvbWUgZXhhbXBsZXMvcmVxdWVzdHMuICANCj4+IA0KPiANCj4g VGhlIHJlYWwgcXVlc3Rpb24gaXMgaG93IGltcG9ydGFudCBpcyB0aGF0IERQREsgaXMgdGhlIHBs YXlncm91bmQgZm9yIEhXIGZlYXR1cmVzPw0KPiBNeSBpbXByZXNzaW9uIGlzIHRoYXQgdGhlIGN1 cnJlbnQgcHJvY2VzcyBpcyBIVyBzdXBwbGllciBkcml2ZW4gIndlIHN1cHBvcnQgb2ZmbG9hZCBv ZiBYWVpaWeKAnS4NCg0KSXQgaXMgbm90IHJlYWxseSBhIHBsYXlncm91bmQgYXMgSSBzZWUgaXQs IGJ1dCBkZWZpbmluZyBjbGVhbiB1c2FibGUgc29sdXRpb24gZm9yIHZlbmRvcnMgYW5kIGRldmVs b3BlcnMgdG8gZ2FpbiBhY2Nlc3MgdG8gSFcgZmVhdHVyZXMuIEV2ZXJ5IHZlbmRvciBsb3ZlcyB0 byBleHBvc2UgaXRzIGZlYXR1cmVzIGFuZCBhbGxvd2luZyB0aGVtIHRvIGNyZWF0ZSBBUElzIGNh bGxlZCBkaXJlY3RseSBmcm9tIGFuIGFwcGxpY2F0aW9uIHdpbGwgbWFrZSBpdCBpbXBvc3NpYmxl IGZvciBhIGdlbmVyaWMgYXBwbGljYXRpb24gYW5kIHdlIG5lZWQgdG8gcHJvdmlkZSBzb21lIHN0 cnVjdHVyZSB0byBhbGxvdyB0aGUgYXBwbGljYXRpb24gdG8gZGV0ZXJtaW5lIHdoYXQgZmVhdHVy ZXMgYXJlIHN1cHBvcnRlZCBhbmQgaG93IHRoZXkgZ2FpbiBhY2Nlc3MgdG8gdGhvc2UgZmVhdHVy ZXMuDQoNCj4gDQo+IFRoZSBleGlzdGluZyBjb250cm9sIG9mIGRldmljZSBtb2RlbCBpcyBhbHJl YWR5IGEgbXVsdGktcGF0aCBtZXNzIG9mIGNvbmZpZyBBUEkncywgZGV2aWNlIGFyZ3MsDQo+IGFu ZCBtYWdpYyBzY3JpcHRzLiBUaGF0IG5lZWRzIHRvIGJlIGFkZHJlc3NlZCBmaXJzdC4NCg0KTm90 IHN1cmUgd2hlcmUgdGhlIOKAmG1hZ2ljIHNjcmlwdHPigJkgc3VwcG9ydCBjb21lcyBmcm9tIDot KSwgYnV0IEkgYWdyZWUgd2UgbmVlZCB0byBjbGVhbiB1cCB0aGUgY3VycmVudCBjb25maWd1cmF0 aW9uIG9mIGRldmljZXMuIEkgb25seSByZWFsbHkgc2VlIHR3byBtZXRob2RzIGluIHRoZSB3b3Jr IEkgaGF2ZSBkb25lLCB3aGljaCBhcmUgZGV2aWNlIGFyZ3Mgc3RyaW5ncyBhbmQgY29uZmlndXJh dGlvbiBmcm9tIGV0aGRldi4gVGhlIERQREsgY29uZmlndXJhdGlvbiBpcyBhbm90aGVyIHByb2Js ZW0gaW4gdGhhdCBpdCBzb21ldGltZXMgcmVxdWlyZXMgYSBodWdlIGNvbW1hbmQgbGluZSB0byBz dGFydHVwIGFuIGFwcGxpY2F0aW9uLiBJIHRoaW5rIEkgc2F3IGEgcGF0Y2ggdG8gYWRkIGJldHRl ciBjb25maWcgZmlsZSBzdXBwb3J0LCBidXQgaXQgZG9lcyBub3QgYWRkcmVzcyBldmVyeXRoaW5n IElNTy4gV2hpY2ggQlRXIHdhcyBvbmUgb2YgdGhlIHJlYXNvbnMgSSB3cm90ZSB0aGUgZHBkay1y dW4ucHkgc2NyaXB0IHRvIGhlbHAgc29sdmUgdGhpcyBwcm9ibGVtIHdpdGhvdXQgaGF2aW5nIHRv IGNoYW5nZSB0aGUgY3VycmVudCBjb25maWcgZmlsZS9jb21tYW5kIGxpbmUgaW50ZXJmYWNlLg0K DQo+IA0KPiBUaGVyZSBpcyB2ZXJ5IGxpdHRsZSBjb21tdW5pdHkgaW5wdXQgZnJvbSB1c2Vycywg dGhhdCBpcyB0aGUgcHJvYmxlbS4NCg0KSSBiZWxpZXZlIEkgYW0gYSB1c2VyIHdpdGggUGt0Z2Vu IGFuZCBteSB1c2FnZSBvZiBEUERLIHRvZGF5LCBidXQgSSBtYXliZSBhIGJpdCBtb3JlIG9mIGFu IGV4cGVydCB0aGVuIG1vc3QgdXNlcnMgKEkgaG9wZSkuIEkgc2VlIHRoZXNlIHVzYWJpbGl0eSBw cm9ibGVtcyBhbmQgSSB0cnkgdG8gYWRkcmVzcyB0aGVtLCBidXQgd2UgYWxsIG5lZWQgdG8gYmUg YXdhcmUgb2YgdGhlIHVzYWJpbGl0eSBhc3BlY3Qgb2YgRFBESyBmb3IgdGhlIGNhc3VhbCB1c2Vy Lg0KDQo+IA0KPiBJTUhPIGlmIGEgbmV3IGhhcmR3YXJlIGZlYXR1cmUgY2FuJ3QgYmUgbWFkZSB0 byBmaXQgaW50byBhIHN0YW5kYXJkIE9TIG1vZGVsIGxpa2UgTGludXgNCj4gYmVjYXVzZSBpdCBp cyB0b28gaGFyZCB0aGVuIGFkZGluZyBpdCB0byBEUERLIGlzIGEgbWlzdGFrZS4NCg0KSSBndWVz cyBJIGFncmVlLCBidXQgd2hhdCBpcyB0aGUgTGludXggbW9kZWwgYW55d2F5IGFuZCBob3cgZG9l cyB0aGF0IGVmZmVjdCBGcmVlQlNEIG9yIFdpbmRvd3Mgb3IgbmFtZSB5b3VyIG5leHQgT1MuIFdl IG5lZWQgdG8gcHJvdmlkZSBnb29kIGhhcmR3YXJlIHN1cHBvcnQgZm9yIERQREsgYW5kIEkgZmVl bCBpdCBtYXliZSBpbXBvc3NpYmxlIHRvIGFsd2F5cyBkZWZpbmUgZXZlcnl0aGluZyBpbiBhIHN1 cGVyIGNsZWFuIGdlbmVyaWMgd2F5LCB0aGlzIGlzIHdoeSBJT0NUTCB3ZXJlIGNyZWF0ZWQgYW5k IEkgdGhpbmsgd2UgY2FuIGRlZmluZSBhIGJldHRlciBzb2x1dGlvbiB0aGVuIElPQ1RMIGFzIGlu IExpbnV4L1VuaXguDQoNCg0KUmVnYXJkcywNCktlaXRoDQoNCg==