From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR01-HE1-obe.outbound.protection.outlook.com (mail-he1eur01on0053.outbound.protection.outlook.com [104.47.0.53]) by dpdk.org (Postfix) with ESMTP id A2D8A58EC for ; Fri, 14 Oct 2016 12:30:35 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=3Z0YcgTP0QrZgCK0lUKKOPZHe9u+sx3FaTX3gpkcdgE=; b=pjcTHoAUhNTF9dldK5Run5l8P6hAA8WUu9jwhb+zCWxH8bVgWLTkrpF0d3EnZKNW2r+77sfYacwOk+DGKA5BtogMzEoaCw94eudf/rg/FogX7wWjCb6TakpNgKU6HaBhhyRZiLTrgX3A+dqfepmrlZRR2U2cdQ+ZMZxb+/zJeuI= Received: from DB5PR04MB1605.eurprd04.prod.outlook.com (10.164.38.147) by DB5PR04MB1606.eurprd04.prod.outlook.com (10.164.38.148) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.669.12; Fri, 14 Oct 2016 10:30:33 +0000 Received: from DB5PR04MB1605.eurprd04.prod.outlook.com ([10.164.38.147]) by DB5PR04MB1605.eurprd04.prod.outlook.com ([10.164.38.147]) with mapi id 15.01.0669.011; Fri, 14 Oct 2016 10:30:34 +0000 From: Hemant Agrawal To: Jerin Jacob , Bill Fischofer CC: "dev@dpdk.org" , "thomas.monjalon@6wind.com" , "bruce.richardson@intel.com" , "narender.vangati@intel.com" , "gage.eads@intel.com" Thread-Topic: [dpdk-dev] [RFC] [PATCH v2] libeventdev: event driven programming model framework for DPDK Thread-Index: AQHSI/YM5w2clz5Zc0CiDTRh9m24kaCnWwgAgABXCoCAAA8HsA== Date: Fri, 14 Oct 2016 10:30:33 +0000 Message-ID: References: <20161005072451.GA2358@localhost.localdomain> <1476214216-31982-1-git-send-email-jerin.jacob@caviumnetworks.com> <20161014092607.GA16828@localhost.localdomain> In-Reply-To: <20161014092607.GA16828@localhost.localdomain> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: spf=none (sender IP is ) smtp.mailfrom=hemant.agrawal@nxp.com; x-originating-ip: [192.88.169.1] x-ms-office365-filtering-correlation-id: f7b9028d-4eca-4650-ea2a-08d3f41d2162 x-microsoft-exchange-diagnostics: 1; DB5PR04MB1606; 7:ghTgpiTo2hGOkLJyQoGO/I8mUaSSRIhUKwFJWLGhnuqqLI8g1B7ZFB9D/9ddswIITm3lnx443FWWydbWTXkdXK0yFHS3dJAgGrcYbiaQ63lieF7/ofOz8IyUq6wEYQumHUDD1Ay0drxm3liqSgj6ZL7UpH7Wk7ElUscO+bEDNao78JyaenAedH+LcHUqJi9UtXXT2pt63d+w43hIh+EMDyqerP5C6EXXuVqws2QCXTuwiwl8tSkCexEq+DjML9ghEIpQG5lS5TbDlXf1qAettaMnk2H3KTDlMkDz6oWC7dlsG/uyxFRA26MDBCsboU8n06c009/yBn10LgYrBWzFqC8qY5ahNdhNy+kebJJQ4Ys= x-microsoft-antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:DB5PR04MB1606; x-microsoft-antispam-prvs: x-exchange-antispam-report-test: UriScan:; x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(6040176)(601004)(2401047)(8121501046)(5005006)(10201501046)(3002001)(6055026); SRVR:DB5PR04MB1606; BCL:0; PCL:0; RULEID:; SRVR:DB5PR04MB1606; x-forefront-prvs: 0095BCF226 x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(6009001)(7916002)(189002)(199003)(51914003)(77096005)(76176999)(54356999)(10400500002)(305945005)(87936001)(81166006)(5660300001)(2950100002)(106116001)(81156014)(106356001)(105586002)(97736004)(92566002)(7846002)(76576001)(5001770100001)(93886004)(7736002)(7696004)(8676002)(122556002)(74316002)(189998001)(68736007)(9686002)(3280700002)(2906002)(50986999)(586003)(6116002)(4326007)(19580395003)(5002640100001)(8936002)(2900100001)(86362001)(102836003)(33656002)(66066001)(101416001)(3660700001)(3846002); DIR:OUT; SFP:1101; SCL:1; SRVR:DB5PR04MB1606; H:DB5PR04MB1605.eurprd04.prod.outlook.com; FPR:; SPF:None; PTR:InfoNoRecords; MX:1; A:1; LANG:en; received-spf: None (protection.outlook.com: nxp.com does not designate permitted sender hosts) spamdiagnosticoutput: 1:99 spamdiagnosticmetadata: NSPM Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-originalarrivaltime: 14 Oct 2016 10:30:33.8548 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB5PR04MB1606 Subject: Re: [dpdk-dev] [RFC] [PATCH v2] libeventdev: event driven programming model framework for DPDK X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: patches and discussions about DPDK List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 14 Oct 2016 10:30:36 -0000 IEhpIEJpbGwvSmVyaW4sDQoNCj4gDQo+IFRoYW5rcyBmb3IgdGhlIHJldmlldy4NCj4gDQo+IFtz bmlwXQ0KPiA+ID4gKyAqIElmIHRoZSBkZXZpY2UgaW5pdCBvcGVyYXRpb24gaXMgc3VjY2Vzc2Z1 bCwgdGhlIGNvcnJlc3BvbmRlbmNlDQo+ID4gPiArIGJldHdlZW4NCj4gPiA+ICsgKiB0aGUgZGV2 aWNlIGlkZW50aWZpZXIgYXNzaWduZWQgdG8gdGhlIG5ldyBkZXZpY2UgYW5kIGl0cw0KPiA+ID4g KyBhc3NvY2lhdGVkDQo+ID4gPiArICogKnJ0ZV9ldmVudF9kZXYqIHN0cnVjdHVyZSBpcyBlZmZl Y3RpdmVseSByZWdpc3RlcmVkLg0KPiA+ID4gKyAqIE90aGVyd2lzZSwgYm90aCB0aGUgKnJ0ZV9l dmVudF9kZXYqIHN0cnVjdHVyZSBhbmQgdGhlIGRldmljZQ0KPiA+ID4gaWRlbnRpZmllciBhcmUN Cj4gPiA+ICsgKiBmcmVlZC4NCj4gPiA+ICsgKg0KPiA+ID4gKyAqIFRoZSBmdW5jdGlvbnMgZXhw b3J0ZWQgYnkgdGhlIGFwcGxpY2F0aW9uIEV2ZW50IEFQSSB0byBzZXR1cCBhDQo+ID4gPiArIGRl dmljZQ0KPiA+ID4gKyAqIGRlc2lnbmF0ZWQgYnkgaXRzIGRldmljZSBpZGVudGlmaWVyIG11c3Qg YmUgaW52b2tlZCBpbiB0aGUNCj4gPiA+ICsgZm9sbG93aW5nDQo+ID4gPiBvcmRlcjoNCj4gPiA+ ICsgKiAgICAgLSBydGVfZXZlbnRfZGV2X2NvbmZpZ3VyZSgpDQo+ID4gPiArICogICAgIC0gcnRl X2V2ZW50X3F1ZXVlX3NldHVwKCkNCj4gPiA+ICsgKiAgICAgLSBydGVfZXZlbnRfcG9ydF9zZXR1 cCgpDQo+ID4gPiArICogICAgIC0gcnRlX2V2ZW50X3BvcnRfbGluaygpDQo+ID4gPiArICogICAg IC0gcnRlX2V2ZW50X2Rldl9zdGFydCgpDQo+ID4gPiArICoNCj4gPiA+ICsgKiBUaGVuLCB0aGUg YXBwbGljYXRpb24gY2FuIGludm9rZSwgaW4gYW55IG9yZGVyLCB0aGUgZnVuY3Rpb25zDQo+ID4g PiArICogZXhwb3J0ZWQgYnkgdGhlIEV2ZW50IEFQSSB0byBzY2hlZHVsZSBldmVudHMsIGRlcXVl dWUgZXZlbnRzLA0KPiA+ID4gKyBlbnF1ZXVlDQo+ID4gPiBldmVudHMsDQo+ID4gPiArICogY2hh bmdlIGV2ZW50IHF1ZXVlKHMpIHRvIGV2ZW50IHBvcnQgW3VuXWxpbmsgZXN0YWJsaXNobWVudCBh bmQgc28gb24uDQo+ID4gPiArICoNCj4gPiA+ICsgKiBBcHBsaWNhdGlvbiBtYXkgdXNlIHJ0ZV9l dmVudF9bcXVldWUvcG9ydF1fZGVmYXVsdF9jb25mX2dldCgpIHRvDQo+ID4gPiArIGdldA0KPiA+ ID4gdGhlDQo+ID4gPiArICogZGVmYXVsdCBjb25maWd1cmF0aW9uIHRvIHNldCB1cCBhbiBldmVu dCBxdWV1ZSBvciBldmVudCBwb3J0IGJ5DQo+ID4gPiArICogb3ZlcnJpZGluZyBmZXcgZGVmYXVs dCB2YWx1ZXMuDQo+ID4gPiArICoNCj4gPiA+ICsgKiBJZiB0aGUgYXBwbGljYXRpb24gd2FudHMg dG8gY2hhbmdlIHRoZSBjb25maWd1cmF0aW9uIChpLmUuIGNhbGwNCj4gPiA+ICsgKiBydGVfZXZl bnRfZGV2X2NvbmZpZ3VyZSgpLCBydGVfZXZlbnRfcXVldWVfc2V0dXAoKSwgb3INCj4gPiA+ICsg KiBydGVfZXZlbnRfcG9ydF9zZXR1cCgpKSwgaXQgbXVzdCBjYWxsIHJ0ZV9ldmVudF9kZXZfc3Rv cCgpIGZpcnN0DQo+ID4gPiArIHRvDQo+ID4gPiBzdG9wIHRoZQ0KPiA+ID4gKyAqIGRldmljZSBh bmQgdGhlbiBkbyB0aGUgcmVjb25maWd1cmF0aW9uIGJlZm9yZSBjYWxsaW5nDQo+ID4gPiBydGVf ZXZlbnRfZGV2X3N0YXJ0KCkNCj4gPiA+ICsgKiBhZ2Fpbi4gVGhlIHNjaGVkdWxlLCBlbnF1ZXVl IGFuZCBkZXF1ZXVlIGZ1bmN0aW9ucyBzaG91bGQgbm90IGJlDQo+ID4gPiBpbnZva2VkDQo+ID4g PiArICogd2hlbiB0aGUgZGV2aWNlIGlzIHN0b3BwZWQuDQo+ID4gPg0KPiA+DQo+ID4gR2l2ZW4g dGhpcyByZXF1aXJlbWVudCwgdGhlIHF1ZXN0aW9uIGlzIHdoYXQgaGFwcGVucyB0byBldmVudHMg dGhhdA0KPiA+IGFyZSAiaW4gZmxpZ2h0IiBhdCB0aGUgdGltZSBydGVfZXZlbnRfZGV2X3N0b3Ao KSBpcyBjYWxsZWQ/IElzIHN0b3AgYW4NCj4gPiBhc3luY2hyb25vdXMgb3BlcmF0aW9uIHRoYXQg cXVpZXNjZXMgdGhlIGV2ZW50IF9kZXYgYW5kIGFsbG93cw0KPiA+IGluLWZsaWdodCBldmVudHMg dG8gZHJhaW4gZnJvbSBxdWV1ZXMvcG9ydHMgcHJpb3IgdG8gZnVsbHkgc3RvcHBpbmcsDQo+ID4g b3IgaXMgc29tZSBzb3J0IG9mIHNlcGFyYXRlIGV4cGxpY2l0IHF1aWVzY2UgbWVjaGFuaXNtIHJl cXVpcmVkPyBJZg0KPiA+IHN0b3AgaXMgc3luY2hyb25vdXMgYW5kIHNpbXBseSBoYWx0cyB0aGUg ZXZlbnRfZGV2LCB0aGVuIGhvdyBpcyBhbg0KPiA+IGFwcGxpY2F0aW9uIHRvIGtub3cgaWYgc3Vi c2VxdWVudCBjb25maWd1cmUvc2V0dXAgY2FsbHMgd291bGQgbGVhdmUNCj4gPiB0aGVzZSBwZW5k aW5nIGV2ZW50cyB3aXRoIG5vIHBsYWNlIHRvIHN0YW5kPw0KPiA+DQo+IA0KPiBGcm9tIGFuIGFw cGxpY2F0aW9uIEFQSSBwZXJzcGVjdGl2ZSBydGVfZXZlbnRfZGV2X3N0b3AoKSBpcyBhIHN5bmNo cm9ub3VzDQo+IGZ1bmN0aW9uLg0KPiBJZiB0aGUgc3RvcCBoYXMgYmVlbiBjYWxsZWQgZm9yIHJl LWNvbmZpZ3VyaW5nIHRoZSBudW1iZXIgb2YgcXVldWVzLCBwb3J0cyBldGMgb2YNCj4gdGhlIGRl dmljZSwgdGhlbiAiaW4gZmxpZ2h0IiBlbnRyeSBwcmVzZXJ2YXRpb24gd2lsbCBiZSBpbXBsZW1l bnRhdGlvbiBkZWZpbmVkLg0KPiBlbHNlICJpbiBmbGlnaHQiIGVudHJpZXMgd2lsbCBiZSBwcmVz ZXJ2ZWQuDQo+IA0KPiBbc25pcF0NCj4gDQo+ID4gPiArZXh0ZXJuIGludA0KPiA+ID4gK3J0ZV9l dmVudF9kZXZfc29ja2V0X2lkKHVpbnQ4X3QgZGV2X2lkKTsNCj4gPiA+ICsNCj4gPiA+ICsvKiBF dmVudCBkZXZpY2UgY2FwYWJpbGl0eSBiaXRtYXAgZmxhZ3MgKi8NCj4gPiA+ICsjZGVmaW5lIFJU RV9FVkVOVF9ERVZfQ0FQX1FVRVVFX1FPUyAgICAgICAgKDEgPDwgMCkNCj4gPiA+ICsvKio8IEV2 ZW50IHNjaGVkdWxpbmcgcHJpb3JpdGl6YXRpb24gaXMgYmFzZWQgb24gdGhlIHByaW9yaXR5DQo+ ID4gPiArYXNzb2NpYXRlZA0KPiA+ID4gd2l0aA0KPiA+ID4gKyAqICBlYWNoIGV2ZW50IHF1ZXVl Lg0KPiA+ID4gKyAqDQo+ID4gPiArICogIFxzZWUgcnRlX2V2ZW50X3F1ZXVlX3NldHVwKCksIFJU RV9FVkVOVF9RVUVVRV9QUklPUklUWV9OT1JNQUwNCj4gPiA+ICsqLw0KPiA+ID4gKyNkZWZpbmUg UlRFX0VWRU5UX0RFVl9DQVBfRVZFTlRfUU9TICAgICAgICAoMSA8PCAxKQ0KPiA+ID4gKy8qKjwg RXZlbnQgc2NoZWR1bGluZyBwcmlvcml0aXphdGlvbiBpcyBiYXNlZCBvbiB0aGUgcHJpb3JpdHkN Cj4gPiA+ICthc3NvY2lhdGVkDQo+ID4gPiB3aXRoDQo+ID4gPiArICogIGVhY2ggZXZlbnQuIFBy aW9yaXR5IG9mIGVhY2ggZXZlbnQgaXMgc3VwcGxpZWQgaW4gKnJ0ZV9ldmVudCoNCj4gPiA+IHN0 cnVjdHVyZQ0KPiA+ID4gKyAqICBvbiBlYWNoIGVucXVldWUgb3BlcmF0aW9uLg0KPiA+ID4gKyAq DQo+ID4gPiArICogIFxzZWUgcnRlX2V2ZW50X2VucXVldWUoKQ0KPiA+ID4gKyAqLw0KPiA+ID4g Kw0KPiA+ID4gKy8qKg0KPiA+ID4gKyAqIEV2ZW50IGRldmljZSBpbmZvcm1hdGlvbg0KPiA+ID4g KyAqLw0KPiA+ID4gK3N0cnVjdCBydGVfZXZlbnRfZGV2X2luZm8gew0KPiA+ID4gKyAgICAgICBj b25zdCBjaGFyICpkcml2ZXJfbmFtZTsgICAgICAgIC8qKjwgRXZlbnQgZHJpdmVyIG5hbWUgKi8N Cj4gPiA+ICsgICAgICAgc3RydWN0IHJ0ZV9wY2lfZGV2aWNlICpwY2lfZGV2OyAvKio8IFBDSSBp bmZvcm1hdGlvbiAqLw0KPiA+ID4gKyAgICAgICB1aW50MzJfdCBtaW5fZGVxdWV1ZV93YWl0X25z Ow0KPiA+ID4gKyAgICAgICAvKio8IE1pbmltdW0gc3VwcG9ydGVkIGdsb2JhbCBkZXF1ZXVlIHdh aXQgZGVsYXkobnMpIGJ5IHRoaXMNCj4gPiA+IGRldmljZSAqLw0KPiA+ID4gKyAgICAgICB1aW50 MzJfdCBtYXhfZGVxdWV1ZV93YWl0X25zOw0KPiA+ID4gKyAgICAgICAvKio8IE1heGltdW0gc3Vw cG9ydGVkIGdsb2JhbCBkZXF1ZXVlIHdhaXQgZGVsYXkobnMpIGJ5IHRoaXMNCj4gPiA+IGRldmlj ZSAqLw0KPiA+ID4gKyAgICAgICB1aW50MzJfdCBkZXF1ZXVlX3dhaXRfbnM7DQo+ID4gPg0KPiA+ DQo+ID4gQW0gSSByZWFkaW5nIHRoaXMgY29ycmVjdGx5IHRoYXQgdGhlcmUgaXMgbm8gd2F5IHRv IHN1cHBvcnQgYW4NCj4gPiBpbmRlZmluaXRlIHdhaXRpbmcgY2FwYWJpbGl0eT8gT3IgaXMgdGhp cyBqdXN0IHNheWluZyB0aGF0IGlmIGEgdGltZWQNCj4gPiB3YWl0IGlzIHBlcmZvcm1lZCB0aGVy ZSBhcmUgbWluL21heCBsaW1pdHMgZm9yIHRoZSB3YWl0IGR1cmF0aW9uPw0KPiANCj4gQXBwbGlj YXRpb24gY2FuIHdhaXQgaW5kZWZpbml0ZSBpZiByZXF1aXJlZC4gc2VlDQo+IFJURV9FVkVOVF9E RVZfQ0ZHX1BFUl9ERVFVRVVFX1dBSVQgY29uZmlndXJhdGlvbiBvcHRpb24uDQo+IA0KPiBUcml2 aWFsIGFwcGxpY2F0aW9uIG1heSBub3QgbmVlZCBkaWZmZXJlbnQgd2FpdCB2YWx1ZXMgb24gZWFj aCBkZXF1ZXVlLlRoaXMgaXMgYQ0KPiBwZXJmb3JtYW5jZSBvcHRpbWl6YXRpb24gb3Bwb3J0dW5p dHkgZm9yIGltcGxlbWVudGF0aW9uLg0KDQogSmVyaW4sIEl0IGlzIGlycmVzcGVjdGl2ZSBvZiB3 YWl0IGNvbmZpZ3VyYXRpb24sIHdoZXRoZXIgeW91IGFyZSB1c2luZyBwZXIgZGV2aWNlIHdhaXQg b3IgcGVyIGRlcXVldWVyIHdhaXQuIA0KIENhbiB0aGUgdmFsdWUgb2YgTUFYX1UzMiBvciBNQVhf VTY0IGJlIHRyZWF0ZWQgYXMgaW5maW5pdGUgd2VpZ2h0PyANCg0KPiANCj4gPg0KPiA+DQo+ID4g PiArICAgICAgIC8qKjwgQ29uZmlndXJlZCBnbG9iYWwgZGVxdWV1ZSB3YWl0IGRlbGF5KG5zKSBm b3IgdGhpcyBkZXZpY2UgKi8NCj4gPiA+ICsgICAgICAgdWludDhfdCBtYXhfZXZlbnRfcXVldWVz Ow0KPiA+ID4gKyAgICAgICAvKio8IE1heGltdW0gZXZlbnRfcXVldWVzIHN1cHBvcnRlZCBieSB0 aGlzIGRldmljZSAqLw0KPiA+ID4gKyAgICAgICB1aW50MzJfdCBtYXhfZXZlbnRfcXVldWVfZmxv d3M7DQo+ID4gPiArICAgICAgIC8qKjwgTWF4aW11bSBzdXBwb3J0ZWQgZmxvd3MgaW4gYW4gZXZl bnQgcXVldWUgYnkgdGhpcyBkZXZpY2UqLw0KPiA+ID4gKyAgICAgICB1aW50OF90IG1heF9ldmVu dF9xdWV1ZV9wcmlvcml0eV9sZXZlbHM7DQo+ID4gPiArICAgICAgIC8qKjwgTWF4aW11bSBudW1i ZXIgb2YgZXZlbnQgcXVldWUgcHJpb3JpdHkgbGV2ZWxzIGJ5IHRoaXMgZGV2aWNlLg0KPiA+ID4g KyAgICAgICAgKiBWYWxpZCB3aGVuIHRoZSBkZXZpY2UgaGFzIFJURV9FVkVOVF9ERVZfQ0FQX1FV RVVFX1FPUw0KPiBjYXBhYmlsaXR5DQo+ID4gPiArICAgICAgICAqLw0KPiA+ID4gKyAgICAgICB1 aW50OF90IG5iX2V2ZW50X3F1ZXVlczsNCj4gPiA+ICsgICAgICAgLyoqPCBDb25maWd1cmVkIG51 bWJlciBvZiBldmVudCBxdWV1ZXMgZm9yIHRoaXMgZGV2aWNlICovDQo+ID4gPg0KPiA+DQo+ID4g SXMgMjU2IGEgc3VmZmljaWVudCBudW1iZXIgb2YgcXVldWVzPyBXaGlsZSB2YXJpb3VzIFNvQ3Mg bWF5IGhhdmUNCj4gPiBsaW1pdHMsIHdoeSBpbXBvc2Ugc3VjaCBhIHNtYWxsIGxpbWl0IGFyY2hp dGVjdHVyYWxseT8NCj4gDQo+IEVhY2ggZXZlbnQgcXVldWUgcG90ZW50aWFsbHkgY2FuIHN1cHBv cnQgbWlsbGlvbnMgb2YgZmxvd3MuVGhhdCB3YXksIDI1NiBtYXkNCj4gbm90IGJlIGEgc21hbGwg bGltaXQuVGhlIHJlYXNvbiB0byBjaG9vc2UgcXVldWVfaWQgYXMgOGJpdCB0byBob2xkIGFsbCB0 aGUNCj4gYXR0cmlidXRlIG9mICJzdHJ1Y3QgcnRlX2V2ZW50IiBpbiAxMjhiaXQuIFNvIHRoYXQg U0lNRCBvcHRpbWl6YXRpb24gaXMgcG9zc2libGUgaW4NCj4gdGhlIGltcGxlbWVudGF0aW9uLg0K PiANCltIZW1hbnRdIDI1NiBpcyBub3QgYW4gc21hbGwgbnVtYmVyIG9mIGV2ZW50IHF1ZXVlLiBQ bGVhc2UgY29uc2lkZXIgZXZlbnQgcXVldWUgYXMgbG9naWNhbGx5IGVxdWl2YWxlbnQgb2YgYSBz Y2hlZHVsZXIgZ3JvdXAgaW4gT0RQLiANCg0KPiA+ID4gKyAgICAgICAvKio8IFRoZSBtYXhpbXVt IG51bWJlciBvZiBhY3RpdmUgZmxvd3MgdGhpcyBxdWV1ZSBjYW4gdHJhY2sgYXQgYW55DQo+ID4g PiArICAgICAgICAqIGdpdmVuIHRpbWUuIFRoZSB2YWx1ZSBtdXN0IGJlIGluIHRoZSByYW5nZSBv Zg0KPiA+ID4gKyAgICAgICAgKiBbMSAtIG1heF9ldmVudF9xdWV1ZV9mbG93cyldIHdoaWNoIHBy ZXZpb3VzbHkgc3VwcGxpZWQNCj4gPiA+ICsgICAgICAgICogdG8gcnRlX2V2ZW50X2Rldl9jb25m aWd1cmUoKS4NCj4gPiA+ICsgICAgICAgICovDQo+ID4gPiArICAgICAgIHVpbnQzMl90IG5iX2F0 b21pY19vcmRlcl9zZXF1ZW5jZXM7DQo+ID4gPiArICAgICAgIC8qKjwgVGhlIG1heGltdW0gbnVt YmVyIG9mIG91dHN0YW5kaW5nIGV2ZW50cyB3YWl0aW5nIHRvIGJlDQo+ID4gPiAoZWdyZXNzLSkN Cj4gPiA+ICsgICAgICAgICogcmVvcmRlcmVkIGJ5IHRoaXMgcXVldWUuIEluIG90aGVyIHdvcmRz LCB0aGUgbnVtYmVyIG9mDQo+ID4gPiArIGVudHJpZXMNCj4gPiA+IGluDQo+ID4gPiArICAgICAg ICAqIHRoaXMgcXVldWXigJlzIHJlb3JkZXIgYnVmZmVyLlRoZSB2YWx1ZSBtdXN0IGJlIGluIHRo ZSByYW5nZSBvZg0KPiA+ID4gKyAgICAgICAgKiBbMSAtIG1heF9ldmVudF9xdWV1ZV9mbG93cyld IHdoaWNoIHByZXZpb3VzbHkgc3VwcGxpZWQNCj4gPiA+ICsgICAgICAgICogdG8gcnRlX2V2ZW50 X2Rldl9jb25maWd1cmUoKS4NCj4gPiA+DQo+ID4NCj4gPiBXaGF0IGhhcHBlbnMgaWYgdGhpcyBs aW1pdCBpcyBleGNlZWRlZD8gV2hpbGUgYXRvbWljIGxpbWl0cyBhcmUNCj4gPiBib3VuZGVkIGJ5 IHRoZSBudW1iZXIgb2YgbGNvcmVzLCB0aGUgc2FtZSBjYW5ub3QgYmUgc2FpZCBmb3Igb3JkZXJl ZA0KPiBxdWV1ZXMuDQo+ID4gUHJlc3VtYWJseSB0aGUgcXVldWUgd291bGQgcmVmdXNlIGZ1cnRo ZXIgZGVxdWV1ZXMgb25jZSB0aGlzIGxpbWl0IGlzDQo+ID4gcmVhY2hlZCB1bnRpbCBwZW5kaW5n IHJlb3JkZXJzIGFyZSByZXNvbHZlZCB0byBwZXJtaXQgY29udGludWVkIHByb2Nlc3Npbmc/DQo+ ID4gSWYgc28gdGhhdCBzaG91bGQgYmUgc3RhdGVkIGV4cGxpY2l0bHkuDQo+IA0KPiBPSy4gSSB3 aWxsIHVwZGF0ZSBkZXRhaWxzLg0KPiANCj4gPg0KPiA+DQo+ID4gPiArICoNCj4gPiA+ICsgKg0K PiA+ID4gKyAqIFRoZSBkZXZpY2Ugc3RhcnQgc3RlcCBpcyB0aGUgbGFzdCBvbmUgYW5kIGNvbnNp c3RzIG9mIHNldHRpbmcNCj4gPiA+ICt0aGUgZXZlbnQNCj4gPiA+ICsgKiBxdWV1ZXMgdG8gc3Rh cnQgYWNjZXB0aW5nIHRoZSBldmVudHMgYW5kIHNjaGVkdWxlcyB0byBldmVudCBwb3J0cy4NCj4g PiA+ICsgKg0KPiA+ID4gKyAqIE9uIHN1Y2Nlc3MsIGFsbCBiYXNpYyBmdW5jdGlvbnMgZXhwb3J0 ZWQgYnkgdGhlIEFQSSAoZXZlbnQNCj4gPiA+ICtlbnF1ZXVlLA0KPiA+ID4gKyAqIGV2ZW50IGRl cXVldWUgYW5kIHNvIG9uKSBjYW4gYmUgaW52b2tlZC4NCj4gPiA+ICsgKg0KPiA+ID4gKyAqIEBw YXJhbSBkZXZfaWQNCj4gPiA+ICsgKiAgIEV2ZW50IGRldmljZSBpZGVudGlmaWVyDQo+ID4gPiAr ICogQHJldHVybg0KPiA+ID4gKyAqICAgLSAwOiBTdWNjZXNzLCBkZXZpY2Ugc3RhcnRlZC4NCj4g PiA+ICsgKiAgIC0gPDA6IEVycm9yIGNvZGUgb2YgdGhlIGRyaXZlciBkZXZpY2Ugc3RhcnQgZnVu Y3Rpb24uDQo+ID4gPiArICovDQo+ID4gPiArZXh0ZXJuIGludA0KPiA+ID4gK3J0ZV9ldmVudF9k ZXZfc3RhcnQodWludDhfdCBkZXZfaWQpOw0KPiA+ID4gKw0KPiA+ID4gKy8qKg0KPiA+ID4gKyAq IFN0b3AgYW4gZXZlbnQgZGV2aWNlLiBUaGUgZGV2aWNlIGNhbiBiZSByZXN0YXJ0ZWQgd2l0aCBh IGNhbGwgdG8NCj4gPiA+ICsgKiBydGVfZXZlbnRfZGV2X3N0YXJ0KCkNCj4gPiA+ICsgKg0KPiA+ ID4gKyAqIEBwYXJhbSBkZXZfaWQNCj4gPiA+ICsgKiAgIEV2ZW50IGRldmljZSBpZGVudGlmaWVy Lg0KPiA+ID4gKyAqLw0KPiA+ID4gK2V4dGVybiB2b2lkDQo+ID4gPiArcnRlX2V2ZW50X2Rldl9z dG9wKHVpbnQ4X3QgZGV2X2lkKTsNCj4gPiA+DQo+ID4NCj4gPiBIYXZpbmcgdGhpcyBiZSBhIHZv aWQgZnVuY3Rpb24gaW1wbGllcyB0aGlzIGZ1bmN0aW9uIGNhbm5vdCBmYWlsLiBJcw0KPiA+IHRo YXQgYXNzdW1wdGlvbiBhbHdheXMgY29ycmVjdD8NCj4gDQo+IFllcy4gU3Vic2VxdWVudCBydGVf ZXZlbnRfZGV2X3N0YXJ0KCkgY2FuIHJldHVybiBlcnJvciBpZiB0aGUgaW1wbGVtZW50YXRpb24N Cj4gcmVhbGx5IGhhdmUgc29tZSBjcml0aWNhbCBpc3N1ZXMgb24gc3RhcnRpbmcgdGhlIGRldmlj ZS4NCj4gDQo+ID4NCj4gPg0KPiA+ID4gKw0KPiA+ID4gKy8qKg0KPiA+ID4gKyAqIENsb3NlIGFu IGV2ZW50IGRldmljZS4gVGhlIGRldmljZSBjYW5ub3QgYmUgcmVzdGFydGVkIQ0KPiA+ID4gKyAq DQo+ID4gPiArICogQHBhcmFtIGRldl9pZA0KPiA+ID4gKyAqICAgRXZlbnQgZGV2aWNlIGlkZW50 aWZpZXINCj4gPiA+ICsgKg0KPiA+ID4gKyAqIEByZXR1cm4NCj4gPiA+ICsgKiAgLSAwIG9uIHN1 Y2Nlc3NmdWxseSBjbG9zaW5nIGRldmljZQ0KPiA+ID4gKyAqICAtIDwwIG9uIGZhaWx1cmUgdG8g Y2xvc2UgZGV2aWNlICAqLyBleHRlcm4gaW50DQo=