From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR04-HE1-obe.outbound.protection.outlook.com (mail-eopbgr70089.outbound.protection.outlook.com [40.107.7.89]) by dpdk.org (Postfix) with ESMTP id ED84D1B296 for ; Thu, 22 Nov 2018 11:06:51 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Mellanox.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=oFQ9E3rXeIx/ljlECaRoogRX7kxvBhCm7BbR6aQqanw=; b=MVdQEuj+KzJ+d35A7mLUo2WfcVCQHs9zJL3Fv2+V4fO4LajzTa0DZL5/v6B+Rff0sAoN/qrlSv2PVX924Bcyztsco0TdXSkwiioFNbm3MOlfi+slIN4kl+ygWdFKW3LMUIlLpcASV8q3jayC4UC3fcP4YMS/Aj92TxWeLnP+k1Q= Received: from DB7PR05MB4426.eurprd05.prod.outlook.com (52.134.109.15) by DB7PR05MB6170.eurprd05.prod.outlook.com (20.178.107.15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1339.25; Thu, 22 Nov 2018 10:06:49 +0000 Received: from DB7PR05MB4426.eurprd05.prod.outlook.com ([fe80::bc22:c2f5:208d:826f]) by DB7PR05MB4426.eurprd05.prod.outlook.com ([fe80::bc22:c2f5:208d:826f%2]) with mapi id 15.20.1294.048; Thu, 22 Nov 2018 10:06:49 +0000 From: Shahaf Shuler To: "Burakov, Anatoly" , "dev@dpdk.org" CC: Olga Shern , Yongseok Koh , "pawelx.wodkowski@intel.com" , "gowrishankar.m@linux.vnet.ibm.com" , "ferruh.yigit@intel.com" , Thomas Monjalon , "arybchenko@solarflare.com" , "shreyansh.jain@nxp.com" Thread-Topic: [dpdk-dev] [RFC] ethdev: introduce DMA memory mapping for external memory Thread-Index: AQHUgL+flYje7Mb8KU2aVJATVED0CaVbaP9g Date: Thu, 22 Nov 2018 10:06:49 +0000 Message-ID: References: <6c7243cd-5370-846b-2999-5ae34722f640@intel.com> <1c00477d-266a-400e-44b4-5bcb1f41e4b7@intel.com> In-Reply-To: <1c00477d-266a-400e-44b4-5bcb1f41e4b7@intel.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [193.47.165.251] x-ms-publictraffictype: Email x-microsoft-exchange-diagnostics: 1; DB7PR05MB6170; 6:w64UAyLR1eMju5+sGQyZFpAAKk2C9pUpKlKURPgmPhH0C6woSMkx8XsrgRO7iQBsh8ARwRege5HhcX2SypWIny5V9FhZMHZIDeV0XoP0SgoEiB5h6cQKsVJOFpT0No05WlGCoiV8KFRK3cQaNGjdyo7OMphuTt3RM2nZkywmQfrbJS9FIyZIxVJ2QJW3dWJ5Ns+Q4DyKaySUi3rR+y0YhU03qvjZcgi3esBTomoqYGkCp5F2nF6pfJ3jcWOiTG+hCKmOb5SfRDmQBTbBV+tT4nAflh+Qtz3le73o9jNZ1ebb9zO73gnnxgkS570+tIZwRXiRLi0TiAgjicdRA4QuweQ0r4qpuJlyTmOz+2yQqMU6aiq/hLzpRoCOil+BNjLshdUtDEH8CCTfUvF+QbB3q10FDKIzzE8XcSUPC4c1gjRttwVSkwZYi/zJ0O2Qc53jJYBd+rYoNoGRvDrXXVOMxw==; 5:MS3iG0neCHjsLJyfPkoJ7G8998QwT59PeutxpHcbNyW6K0GJGua5JyvWEXz+VD4J7PhH3KHnHyDl5dGLIiRxW80mDLoHh0xCJhVEhyOu3grRVL5lVHkE6vKxkDMH2TUBCZE+H110/8v67pU1fFD3cG8Hfjv7ocFhXUQxMJbu854=; 7:f+A/8KSjAzS6rtnJGZxd4X67p5x4sGSUoWPYVSh1bAhz/PRCH0Bo9etQwS87L8tCIfH3a4xF6uaPJVd/kQlo1aZBdVoh3Bu7CS1QvFuAPLE2sMMjvS8UgHLhwtlP+DRpuJIZFGP/wRMF23cfxUJImw== x-ms-exchange-antispam-srfa-diagnostics: SOS; x-ms-office365-filtering-correlation-id: 592b2baf-0cff-42bf-e8b5-08d6506237c6 x-ms-office365-filtering-ht: Tenant x-microsoft-antispam: BCL:0; PCL:0; RULEID:(2390098)(7020095)(4652040)(8989299)(5600074)(711020)(4618075)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(2017052603328)(7153060)(7193020); SRVR:DB7PR05MB6170; x-ms-traffictypediagnostic: DB7PR05MB6170: x-ld-processed: a652971c-7d2e-4d9b-a6a4-d149256f461b,ExtAddr x-microsoft-antispam-prvs: x-ms-exchange-senderadcheck: 1 x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(8211001083)(6040522)(2401047)(5005006)(8121501046)(10201501046)(3002001)(93006095)(93001095)(3231442)(944501410)(52105112)(6055026)(148016)(149066)(150057)(6041310)(20161123560045)(20161123558120)(20161123562045)(20161123564045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(201708071742011)(7699051)(76991095); SRVR:DB7PR05MB6170; BCL:0; PCL:0; RULEID:; SRVR:DB7PR05MB6170; x-forefront-prvs: 0864A36BBF x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(136003)(396003)(39860400002)(366004)(376002)(346002)(189003)(199004)(256004)(5024004)(7696005)(26005)(14454004)(81166006)(2501003)(6246003)(81156014)(6346003)(105586002)(71200400001)(71190400001)(68736007)(76176011)(186003)(102836004)(8936002)(53546011)(6506007)(478600001)(66066001)(561944003)(33656002)(25786009)(53936002)(9686003)(4744004)(229853002)(2900100001)(86362001)(486006)(2906002)(110136005)(54906003)(55016002)(7736002)(305945005)(316002)(93886005)(74316002)(6116002)(97736004)(4326008)(99286004)(6436002)(476003)(106356001)(5660300001)(446003)(11346002)(3846002); DIR:OUT; SFP:1101; SCL:1; SRVR:DB7PR05MB6170; H:DB7PR05MB4426.eurprd05.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; MX:1; A:1; received-spf: None (protection.outlook.com: mellanox.com does not designate permitted sender hosts) authentication-results: spf=none (sender IP is ) smtp.mailfrom=shahafs@mellanox.com; x-microsoft-antispam-message-info: chnYh+z4eM5bnOpNKDqrPbmqovVUpOo79b9+pWs3p4J5MRbZ+ZhvelVlgUtEydmgqW2a8eWiXNOmvDhHNKHc8U0y93/L7KN2hZmXli0fsBlAaXYkbrASbyejTU5/xdHQtoWM1NUbvDUB5YMXMWzxg6baFjkCBRt8hgoKDNIb+Eaqw5CFMHcBfTbdn9bfSb+H2dHFJZ/tu2Gbt112OtM/1jzIpFsQxAjsT6eQmvaRwYGbmRZoQwIQZicEp3xB9j1Yyi7WzT/UydXU795eLOXpO6LSKI8/OA8PmyU5TjhiN5+biVcsPHvGw/ESfPP/j4odndrGt3BhErs31zRne7mQWzwKaA8IeDnWB9gQHbqctb4= spamdiagnosticoutput: 1:99 spamdiagnosticmetadata: NSPM Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-Network-Message-Id: 592b2baf-0cff-42bf-e8b5-08d6506237c6 X-MS-Exchange-CrossTenant-originalarrivaltime: 22 Nov 2018 10:06:49.1022 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: a652971c-7d2e-4d9b-a6a4-d149256f461b X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB7PR05MB6170 Subject: Re: [dpdk-dev] [RFC] ethdev: introduce DMA memory mapping for external memory 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: Thu, 22 Nov 2018 10:06:52 -0000 VHVlc2RheSwgTm92ZW1iZXIgMjAsIDIwMTggMTI6NTYgUE0sIEJ1cmFrb3YsIEFuYXRvbHk6DQo+ IFN1YmplY3Q6IFJlOiBbZHBkay1kZXZdIFtSRkNdIGV0aGRldjogaW50cm9kdWNlIERNQSBtZW1v cnkgbWFwcGluZyBmb3INCj4gZXh0ZXJuYWwgbWVtb3J5DQo+IA0KPiBPbiAyMC1Ob3YtMTggODow OCBBTSwgU2hhaGFmIFNodWxlciB3cm90ZToNCj4gPiBNb25kYXksIE5vdmVtYmVyIDE5LCAyMDE4 IDc6MTggUE0sIEJ1cmFrb3YsIEFuYXRvbHk6DQo+ID4+IFN1YmplY3Q6IFJlOiBbUkZDXSBldGhk ZXY6IGludHJvZHVjZSBETUEgbWVtb3J5IG1hcHBpbmcgZm9yIGV4dGVybmFsDQo+ID4+IG1lbW9y eQ0KPiA+Pg0KPiA+PiBPbiAxOS1Ob3YtMTggMTE6MjAgQU0sIFNoYWhhZiBTaHVsZXIgd3JvdGU6 DQo+ID4+PiBUaHVyc2RheSwgTm92ZW1iZXIgMTUsIDIwMTggMTowMCBQTSwgQnVyYWtvdiwgQW5h dG9seToNCj4gPj4+PiBTdWJqZWN0OiBSZTogW1JGQ10gZXRoZGV2OiBpbnRyb2R1Y2UgRE1BIG1l bW9yeSBtYXBwaW5nIGZvcg0KPiA+Pj4+IGV4dGVybmFsIG1lbW9yeQ0KPiA+Pj4+DQo+ID4+Pj4g T24gMTUtTm92LTE4IDk6NDYgQU0sIFNoYWhhZiBTaHVsZXIgd3JvdGU6DQo+ID4+Pj4+IFdlZG5l c2RheSwgTm92ZW1iZXIgMTQsIDIwMTggNzowNiBQTSwgQnVyYWtvdiwgQW5hdG9seToNCj4gPj4+ Pj4+IFN1YmplY3Q6IFJlOiBbUkZDXSBldGhkZXY6IGludHJvZHVjZSBETUEgbWVtb3J5IG1hcHBp bmcgZm9yDQo+ID4+Pj4+PiBleHRlcm5hbCBtZW1vcnkNCj4gPj4+Pj4+DQo+ID4+Pj4+PiBPbiAx NC1Ob3YtMTggMjo1MyBQTSwgU2hhaGFmIFNodWxlciB3cm90ZToNCj4gPj4+Pj4+PiBIaSBBbmF0 b2x5LA0KPiA+Pj4+Pj4+DQo+ID4+Pj4+Pj4gV2VkbmVzZGF5LCBOb3ZlbWJlciAxNCwgMjAxOCAx OjE5IFBNLCBCdXJha292LCBBbmF0b2x5Og0KPiA+Pj4+Pj4+PiBTdWJqZWN0OiBSZTogW1JGQ10g ZXRoZGV2OiBpbnRyb2R1Y2UgRE1BIG1lbW9yeSBtYXBwaW5nIGZvcg0KPiA+Pj4+Pj4+PiBleHRl cm5hbCBtZW1vcnkNCj4gPj4+Pj4+Pj4NCj4gPg0KPiA+IFsuLi5dDQoNClsuLi5dDQoNCj4gPiBJ IHRoaW5rIGl0IHdhcyBicm9rZW4gaW4gc29tZSB3YXkgd2hlbiB5b3UgZGlkIHRoZSBmaXJzdCB3 b3JrIG9uIHRoZSBuZXcNCj4gbWVtb3J5IG1hbmFnZW1lbnQuDQo+ID4gQmVjYXVzZSBhZnRlciB0 aGlzIHdvcmssIFBNRHMgd2VyZSBhZGp1c3RlZCB0byBsb29rIGZvciB0aGUgbWVtb3J5IG9ubHkN Cj4gaW4gdGhlIGZiYXJyYXlzLCBhbmQgc3VjaCBleHRlcm5hbCBtZW1vcnkgZG9lc24ndCBleGlz dHMgdGhlcmUuDQo+ID4gb3RoZXJ3aXNlLCBpZiB3b3JraW5nLCB3aHkgeW91IGFkZGVkIHRoZSBz dXBwb3J0IGZvciB0aGUgZXh0ZXJuYWwNCj4gbWVtb3J5PyBXaGljaCBvdGhlciB1c2UgY2FzZSB5 b3UgdHJpZWQgdG8gY292ZXI/DQo+ID4NCj4gPiBJdCBpcyBmaXhlZCBpbiBzb21lIHdheSB3aXRo IHRoZSBuZXcgd29yayB0byBzdXBwb3J0IGV4dGVybmFsIG1lbW9yeSwgYnV0DQo+IHJlcXVpcmVz IGNoYW5nZXMgaW4gdGhlIGFwcGxpY2F0aW9uICh0aGUgIm92ZXJoZWFkIiBJIHJlZmVycmVkIGJl Zm9yZSkuDQo+IA0KPiBJIGZlZWwgd2UgaGF2ZSBhIGRpZmZlcmVuY2Ugb2YgdGVybWlub2xvZ3kg aGVyZS4NCj4gDQo+IFdoYXQgaSByZWZlciB0byBhcyAiZXh0ZXJuYWwgbWVtb3J5IHN1cHBvcnQi IGlzIHRoZSBmZWF0dXJlIHRoYXQgd2FzIGFkZGVkDQo+IGluIDE4LjExLCB0aGF0IGhhcyB0byBk byB3aXRoIGNyZWF0aW5nIGhlYXBzIGV0Yy4gLSB0aGlzIG1lbW9yeSBpcyBub3cNCj4gKGhvcGVm dWxseSkgcHJvcGVybHkgc3VwcG9ydGVkIGFjcm9zcyBlbnRpcmUgRFBESy4NCj4gDQo+IFdoYXQg eW91J3JlIHByb2JhYmx5IHJlZmVycmluZyB0byBhcyAiZXh0ZXJuYWwgbWVtb3J5IHN1cHBvcnQi IGlzIG5vdCB0aGF0IC0NCj4gaXQncyB0aGUgZmVhdHVyZSBvZiBtZW1wb29scywgcmluZ3MgZXRj LiB0aGF0IGFsbG93IHlvdSB0byB1c2UgbWVtb3J5IHRoYXQncw0KPiBub3QgcmVnaXN0ZXJlZCB3 aXRoIGFuZCBub3QgbWFuYWdlZCBieSBEUERLLiBUaGlzIGlzIHRoZSB3YXkgImV4dGVybmFsDQo+ IG1lbW9yeSIgd2FzIGRvbmUgcHJpb3IgdG8gMTguMTEuDQoNCkkgdGhvdWdodCB0aGUgMTguMTEg ZmVhdHVyZSBzaG91bGQgc2VydmUgYm90aCBjYXNlcy4gDQpUbyB1c2UgbWVtb3J5IG5vdCBtYW5h Z2VkIGJ5IERQREsgdXNlciBzaG91bGQgY3JlYXRlIGhlYXAgYW5kIHBvcHVsYXRlIGl0IHcvIHRo ZSBtZW1vcnksIHNvIHRoYXQgaXQgY2FuIHVzZSBpdCBsYXRlciBmb3IgbWVtcG9vbC9yaW5ncy4g DQoNCj4gDQo+IFRoZSBhYm92ZSBzY2VuYXJpbyAod29ya2luZyB3aXRoIGFub255bW91cyBtZW1v cnkgaW4gbWVtcG9vbHMpIGlzIHN0aWxsDQo+ICJicm9rZW4iIGluIHRoaXMgc2Vuc2UgLSBhbmQg aSBzZWUgbm8gZ2VuZXJhbCB3YXkgdG8gZml4IGl0LiBJdCBjb3VsZCB3b3JrIHdpdGgNCj4gbWVt cG9vbHMgaW4gdGhhdCB3ZSBjb3VsZCBhdXRvbWF0aWNhbGx5IGNyZWF0ZSBuZXcgaGVhcHMgYmVo aW5kIHRoZQ0KPiBzY2VuZXMgYW5kIHBvcHVsYXRlIHRoZW0gd2l0aCBuZXcgbWVtb3J5LCBidXQg Zm9yIG90aGVyIGRhdGEgc3RydWN0dXJlcw0KPiAoZS5nLiBydGVfcmluZ19pbml0KCkgb3ZlciBh bm9ueW1vdXMgbWVtb3J5KSwgaXQncyBqdXN0IG5vdCBwb3NzaWJsZSB0byBkbw0KPiB0aGF0Lg0K PiANCj4gSSBwZXJzb25hbGx5IHdvdWxkIHByZWZlciB0aGVzZSBBUEkncyB0byBqdXN0IGdvIGF3 YXkgYW5kIHBlb3BsZSBzdGFydGVkDQo+IHVzaW5nIHRoZSAib2ZmaWNpYWwiIHdheSB0byBtYW5h Z2UgZXh0ZXJuYWwgbWVtb3J5LiBSZW1vdmluZyB0aGUgQVBJJ3MgbWF5DQo+IGV2ZW4gYmUgZmVh c2libGUgZm9yIGV2ZXJ5dGhpbmcgYmFyIG1lbXBvb2wsIGFuZCBtZW1wb29sIHN1cHBvcnQgd2Ug Y2FuDQo+IG1hbmFnZSBtb3JlLW9yLWxlc3MgYXV0b21hdGljYWxseSBpbiB0aGUgYWJvdmUgd2F5 IChieSBhdXRvbWF0aWNhbGx5DQo+IGNyZWF0aW5nIGFuIGV4dGVybmFsIGhlYXAgYmVoaW5kIHRo ZSBzY2VuZXMpLiBCdXQgdGhlbiBieSB0aGUgdGltZSB3ZSdyZQ0KPiBjcmVhdGluZy9hZGRpbmcg ZXh0ZXJuYWwgbWVtb3J5IGhlYXBzIGluc2lkZSBtZW1wb29sIEFQSSdzLCB5b3UgZG9uJ3QNCj4g cmVhbGx5IG5lZWQgdGhlIGV4dGVybmFsIG1lbW9yeSBETUEgbWFwcGluZyBBUEkgY2FsbHMgYmVj YXVzZSB0aGUNCj4gbWVtcG9vbCB3b3VsZCBkbyB0aGF0IGF1dG9tYXRpY2FsbHkgYnkgd2F5IG9m IHVzaW5nIHRoZSBleHRlcm5hbCBoZWFwcw0KPiBBUEkuDQoNClllcywgb25lIHdheSB0byBnbyBp cyB0byBtYXAgdGhlIG1lbW9yeSBpbnRlcm5hbGx5IGluc2lkZSB0aGUgbWVtcG9vbCBjcmVhdGlv bi4gQnV0IGl0IHdpbGwgbm90IHdvcmsgZm9yIGFsbCBjYXNlcy4NCkZvciBleGFtcGxlLCBpZiBh cHBsaWNhdGlvbiB3YW50cyB0byB3b3JrIHcvIG1idWYgd2l0aCBleHRlcm5hbCBidWZmZXIgKEVY VF9BVFRBQ0hFRF9NQlVGKSwgdGhlIGJ1ZmZlciB3aWxsIGJlIGF0dGFjaGVkIG9uIGEgZGlmZmVy ZW50IGNhbGwgKHJ0ZV9wa3RtYnVmX2F0dGFjaF9leHRidWYpLCBzbyB3ZSB3aWxsIG5lZWQgdG8g aGFuZGxlIHRoYXQgYXMgd2VsbC4NCk1heWJlIHdlIHdpbGwgZmluZCBtb3JlIGNhc2VzIGluIHRo ZSBmdXR1cmUuIGkgd291bGQgcHJlZmVyIHRvIHNvbHZlIGl0IGZvciBhbGwgY2FzZXMuICBTZWUg bW9yZSBiZWxvdy4gDQoNCj4gDQo+IEluIG90aGVyIHdvcmRzLCB0aGUgcHJvYmxlbSBoZXJlIGlz bid0IHNvIG11Y2ggdXNhYmlsaXR5IGFzIGl0IGlzIHRoZSBmYWN0IHRoYXQsDQo+IGZvciBzb21l IHN0dWZmLCBhIGxvdCBvZiBpbnRlcm5hbCBjb2RlIG5vdyByZWxpZXMgb24gRFBESydzIGludGVy bmFsIHBhZ2UNCj4gdGFibGVzLCBhbmQgd2UgaGF2ZSB0byBlaXRoZXIgbWFrZSBhbGxvd2FuY2Vz IGZvciB0aGF0IG9uIGEgY2FzZS1ieS1jYXNlDQo+IGJhc2lzIChieSB0aGUgd2F5LCBubyBvbmUg Y2FtZSB0byBtZSB3aXRoIHRoZXNlIGlzc3VlcyEpLCANCg0KT25lIG9wdGlvbiBpcyBjYXNlIGJ5 IGNhc2UsIG90aGVyIGNhbiBiZSB0byBhbGxvdyB0aGUgYXBwbGljYXRpb24gdG8gZXhwbGljaXQg bWFwIHRoaXMgbWVtb3J5IHRvIHRoZSBkaWZmZXJlbnQgZGV2aWNlcy4gDQoNCm9yIGFkbWl0IHRo YXQgdXNpbmcNCj4gdW5yZWdpc3RlcmVkIG1lbW9yeSBpcyBhIGJhZCBpZGVhIGFuZCBsZXQncyBu b3QgZG8gdGhhdCBpbiB0aGUgZnV0dXJlLg0KDQpJIHRoaW5rIGl0IGlzIHVuLWF2b2lkYWJsZSAo dG8gdXNlIHVucmVnaXN0ZXJlZCBtZW1vcnkpLiBUaGUgdXNlIGNhc2UgZXhpc3RzLCB0aGVyZSBh cmUgYXBwbGljYXRpb25zIHdoaWNoIHByZWZlciB0byBoYXZlIHRoZWlyIG93biBtZW1vcnkgbWFu YWdlbWVudC4gDQpGb3IgdGhvc2UgYXBwcywgd2UgbmVlZCB0byBoYXZlIGEgc29sdXRpb24uIA0K DQo+IA0KPiA+DQo+ID4+DQo+ID4+IE9uIHRoZSBvdGhlciBoYW5kLCBpZiB5b3Ugd2VyZSB0byB1 c2UgaXQgaW4gYSBkaWZmZXJlbnQgd2F5IC0gZm9yDQo+ID4+IGV4YW1wbGUsIGFsbG9jYXRpbmcg aGFzaCB0YWJsZXMgb3Igb3RoZXIgRFBESyBkYXRhIHN0cnVjdHVyZXMgLSB0aGVuDQo+ID4+IHN1 Y2ggYSBmZWF0dXJlIGlzIGVzc2VudGlhbC4NCj4gPg0KPiA+IEhhc2ggdGFibGVzIHRoYXQgdGhl IE5JQyBuZWVkcyB0byByZWFkL3dyaXRlIHRvL2Zyb20/DQo+ID4gSSBkaWRuJ3QgZ2V0IHRoZSBw b2ludCBoZXJlLg0KPiANCj4gVGhlIHBvaW50IHdhc24ndCBoYXNoIHRhYmxlcywgYnV0IHN1cHBv cnQgZm9yIHVzZSBjYXNlcyB3ZSBtaWdodCBub3QgaGF2ZQ0KPiB0aG91Z2h0IG9mLiBUaGF0IGlu Y2x1ZGVzIGRvaW5nIHN0cmFuZ2UgdGhpbmdzIGxpa2UgYWxsb2NhdGluZyBEUERLIGRhdGENCj4g c3RydWN0dXJlcyBpbiBub24tc3RhbmRhcmQgbWVtb3J5IGxvY2F0aW9ucy4NCj4gDQo+ID4NCj4g PiBUaGUgZW50aXJlIHBvaW50IHdhcyB0byBhbGxvdyB1c2luZyBleHRlcm5hbCBtZW1vcnkgd2l0 aA0KPiA+PiBzZW1hbnRpY3MgaWRlbnRpY2FsIHRvIGhvdyB5b3UgdXNlIHRoZSByZXN0IG9mIERQ REsuDQo+ID4NCj4gPiBJIHVuZGVyc3RhbmQgdGhpcyBkZXNpZ24gY2hvaWNlLCBhbmQgaXQgaGFz IHRoZSBiZW5lZml0IG9mIGNvbnNpc3RlbmN5IHYucy4NCj4gbW9yZSBBUEkgY2FsbCBvbiB0aGUg YXBwbGljYXRpb24gc2lkZS4NCj4gPg0KPiA+Pg0KPiA+PiBBbHNvLCB3aGV0aGVyIGl0J3MgImlu dHVpdGl2ZSIgZGVwZW5kcyBvbiBwZXJzcGVjdGl2ZSAtIHlvdSBzYXkgImkNCj4gPj4gZXhwZWN0 IHRvIGFsbG9jYXRlIG1lbW9yeSBhbmQgbWFwIGl0IGZvciBETUEgbXlzZWxmIiwgaSBzYXkgIndo eSBkbyBpDQo+ID4+IGhhdmUgdG8gY2FyZSBhYm91dCBETUEgbWFwcGluZywgRFBESyBzaG91bGQg ZG8gdGhpcyBmb3IgbWUiIDopDQo+ID4NCj4gPiBSaWdodCDwn5iKLiBXZSBzaG91bGQgYmUgZHJp dmVuIGJ5IGN1c3RvbWVycyBhbmQgbm90IHZlbmRvcnMsIHRvbyBiYWQgdGhlcmUNCj4gaXMgbm8g bXVjaCBmZWVkYmFjayBmcm9tIHRoZW0gb24gdGhlIGNvbW11bml0eS4NCj4gDQo+IFRoYXQgaW1w bGllcyBjdXJyZW50IGRlc2lnbiAqd2Fzbid0KiBkcml2ZW4gYnkgY3VzdG9tZXJzLCB3aGljaCBp cyBub3QgdHJ1ZS4NCj4gVGhleSBtYXkgbm90IGJlIHRoZSBzYW1lIGFzIG9uZXMgeW91IGFyZSBh d2FyZSBvZiAtIGJ1dCB0aGVuIHRoaXMgaXNuJ3QgcmVhbGx5DQo+IG15IGZhdWx0IDopDQo+IA0K PiA+IEkga25vdyBmcm9tIFZQUCBzaWRlIHRoZXkgcHJlZmVyIG5vdCB0byB1c2UgdGhlIHJ0ZV9z b2NrZXQgcmF0aGVyIHRvDQo+IG1hbmFnZSB0aGUgbWVtb3J5IGJ5IHRoZW0gc2VsZiwgYW5kIHRo ZXkgYXJlIHBlcmZlY3RseSBmaW5lIHdpdGggbWFwcGluZw0KPiBpdCBleHBsaWNpdGx5LiBUaGlz IGlzIHRydWUgZm9yIG90aGVyIGNvbXBhbnkgdGhhdCBoYXMgdnN3aXRjaCBzb2x1dGlvbiAod2hp Y2ggSQ0KPiBjYW5ub3QgbWVudGlvbiBieSBuYW1lKS4NCj4gDQo+IFdlbGwsIGl0J3Mgbm90IGxp a2UgaSBjYW4gZG8gYW55dGhpbmcgaWYgbm8gb25lIGZyb20gZWl0aGVyIGNvbW11bml0aWVzIGNv bWVzDQo+IGhlcmUgYW5kIGVuZ2FnZXMgaW4gdGhlIGRpc2N1c3Npb24uIEkgd2lzaCBpIGNvdWxk IHJlYWQgcGVvcGxlJ3MgbWluZHMsIGJ1dA0KPiBhbGFzIDopDQo+IA0KPiA+DQo+ID4NCj4gPiBJ ZiB5b3UgYXJlIHVzaW5nIHlvdXINCj4gPj4gb3duIG1lbW9yeSBtYW5hZ2VtZW50IGFuZCBkb2lu ZyBldmVyeXRoaW5nIG1hbnVhbGx5IC0geW91IGdldCB0bw0KPiBtYXANCj4gPj4gZXZlcnl0aGlu ZyBmb3IgRE1BIG1hbnVhbGx5LiBJZiB5b3UgYXJlIHVzaW5nIERQREsgZmFjaWxpdGllcw0KPiA+ PiAtIGl0IGlzIGludHVpdGl2ZSB0aGF0IGZvciBhbnkgRFBESy1tYW5hZ2VkIG1lbW9yeSwgaW50 ZXJuYWwgb3INCj4gPj4gZXh0ZXJuYWwsIHNhbWUgcnVsZXMgYXBwbHkgYWNyb3NzIHRoZSBib2Fy ZCAtIERNQSBtYXBwaW5nIGluY2x1ZGVkLg0KPiA+DQo+ID4gU28gaWYgdW5kZXJzdGFuZCB5b3Ug cG9pbnQgaGVyZSwgeW91ciBjbGFpbSAid2UgbmVlZCBib3RoIi4gT25lIGZvciB1c2Vycw0KPiB3 aGljaCBwcmVmZXIgdGhlIERQREsgdG8gZG8gdGhhdCBmb3IgdGhlbSBhbmQgdGhlIG90aGVyIGZv ciB0aGUgdXNlcnMgd2hvDQo+IHdhbnRzIG1vcmUgY29udHJvbC4NCj4gPiBIb3dldmVyLCB3aGVu IGtlZXBpbmcgdGhlIEFQSSBvZiBleHBsaWNpdCBtYXBwaW5nLCB3ZSBjYW4gbm8gbG9uZ2VyIHNh eQ0KPiB0aGF0IGV4dGVybmFsIG1lbW9yeSBpcyBiZWhhdmVzIGV4YWN0bHkgdGhlIHNhbWUgYXMg aW50ZXJuYWwuDQo+IA0KPiBXZWxsLCBtb3JlIG9yIGxlc3MgdGhhdCwgeWVzLiBJdCB3b3VsZCBi ZSBnb29kIHRvIGhhdmUgZnVsbCBzdXBwb3J0IGZvcg0KPiAiZXh0ZXJuYWwiIG1lbW9yeSAoaW4g dGhlICJ1bnJlZ2lzdGVyZWQgd2l0aCBEUERLIiBzZW5zZSwgYXMgb3V0bGluZWQNCj4gYWJvdmUp Lg0KPiANCj4gPg0KPiA+IFNvIGdvaW5nIGJhY2sgdG8gbXkgUkZDIPCfmIosIGlmIHdlIGRlY2lk ZSB0byBrZWVwIGJvdGggYXBwcm9hY2gsIHdoYXQgSQ0KPiBzdWdnZXN0IGlzIHRvIGNoYW5nZSB0 aGUgVkZJTyBtYXBwaW5nIG9uZSB0byBiZSBtb3JlIGdlbmVyaWMgYW5kIHBlcg0KPiBkZXZpY2Ug KGNhbiBiZSBydGVfZGV2aWNlKS4NCj4gPiBJIHRoaW5rIHRoZSBiaWdnZXN0IHF1ZXN0aW9ucyB3 ZSBuZWVkIHRvIGFuc3dlciBhcmUgMS4gYXJlIHdlIE9LIHdpdGgNCj4gPiBnZW5lcmljLCB2ZW5k b3IgYWdub3N0aWMgQVBJPw0KPiANCj4gWWVzLCBnZW5lcmljIGFuZCB2ZW5kb3ItYWdub3N0aWMg RlRXIQ0KPiANCj4gPiAyLiAgYXJlIHdlIE9LIHRoYXQgdGhlIGV4cGxpY2l0IG1hcHBpbmcgaXMg ZG9uZSBwZXIgZGV2aWNlPw0KPiANCj4gVGhpcyBxdWVzdGlvbiBpcyBzbGlnaHRseSBtaXNsZWFk aW5nLCBiZWNhdXNlIHRoYXQncyBub3QgKmFsbCogdGhlcmUgaXMgdG8gaXQuIEluDQo+IGdlbmVy YWwsIHllcywgaSdtIE9LIHdpdGggdGhlIGlkZWEuIEluIHByYWN0aWNlLCBWRklPIG1heSBnZXQg aW4gdGhlIHdheS4NCj4gDQo+IFZGSU8gd29ya3MgYnkgbWFwcGluZyBtZW1vcnkgZm9yIGEgVkZJ TyBjb250YWluZXIuIFRoZSBjb250YWluZXIgY2FuDQo+IGhhdmUgb25lIG9yIG1vcmUgZGV2aWNl cyBpbiBpdCwgYW5kIGhvdyBtYW55IGRldmljZXMgaXQgY2FuIGhhdmUgZGVwZW5kcw0KPiBvbiB0 aGUgSU9NTVUgc2V0dXAgKGkuZS4gaXQgbWF5IG5vdCBiZSBwb3NzaWJsZSB0byBoYXZlIG9uZSBk ZXZpY2UgcGVyDQo+IGNvbnRhaW5lciBvbiBzb21lIHNldHVwcywgd2hpY2ggaXMgd2h5IGN1cnJl bnRseSBldmVyeXRoaW5nIGlzIGRvbmUgd2l0aA0KPiBvbmUgY29udGFpbmVyKS4NCg0KDQogU28s ICJwZXItZGV2aWNlIiBtZWFucyB3ZSBlaXRoZXIga2VlcCBlYWNoIGRldmljZSBpbg0KPiBzZXBh cmF0ZSBjb250YWluZXIgKHdoaWNoIHdpbGwgbm90IHdvcmsgaW4gc29tZSBjYXNlcyksIA0Kb3Ig d2Ugc29tZWhvdw0KPiB3b3JrIGFyb3VuZCB0aGUgZmFjdCB0aGF0IG1hcHBpbmdzIGNhbiBiZSBw ZXJmb3JtZWQgb25seSBvbmNlIChpJ20gbm90DQo+IHN1cmUgaWYgVkZJTyB3aWxsIHJldHVybiBh cHByb3ByaWF0ZSBlcnJvciBjb2RlcyB0aGF0IHdvdWxkIGFsbG93IHVzIHRvDQo+IGRpc3Rpbmd1 aXNoIGZhaWxlZCBtYXBwaW5ncyBkdWUgdG8gZHVwbGljYXRlLCBvciBmYWlsZWQgbWFwcGluZ3Mg ZHVlIHRvIG90aGVyDQo+IHJlYXNvbnMgLSBpJ2xsIGhhdmUgdG8gcmVzZWFyY2ggdGhpcyksIGFu ZCBrZWVwIGFsbCBkZXZpY2VzIGluIHRoZSBzYW1lDQo+IGNvbnRhaW5lci4NCg0KWWVzIEkgc2Vl IGhlcmUgMiBvcHRpb25zOg0KMS4gdGhlIFZGSU8gaGFzIGdvb2QgZXJyb3IgcmVwb3J0cyB0aGF0 IGVuYWJsZXMgdGhlIHVzZXIgdG8gdW5kZXJzdGFuZCBtYXBwaW5nIGZhaWxlZCBiZWNhdXNlIGl0 IGlzIGFscmVhZHkgZXhpc3RzLiANCjIuIHRvIGhvbGQgZGF0YWJhc2Ugd2hpY2ggd2lsbCBzYXkg d2hpY2ggSU9WQSB3ZXJlIGFscmVhZHkgbWFwcGVkIHNvIHRoZSBEUERLIHZmaW8gbWFwcGluZyB3 aWxsIGtub3cgdG8gYXZvaWQgaXQuIA0KDQo+IA0KPiBJbiBvdGhlciB3b3JkcywgaXQgbWF5IGJl IHBvc3NpYmxlIHRvIHNvbHZlIHRoaXMgaXNzdWUgZm9yIFZGSU8sIGJ1dCBpIHdvdWxkIG5vdA0K PiBiZSBjb21mb3J0YWJsZSB0byBwcm9jZWVkIHdpdGhvdXQga25vd2luZyB0aGF0IHRoaXMgY2Fu IGJlIGRvbmUgaW4gYSBzYW5lDQo+IHdheS4NCg0KKzEuDQoNCkkgdGhpbmsgdGhlIHNpbXBsZXN0 IGlzICMxIGFib3ZlLiBIb3cgY2FuIHdlIGdldCBhbiBhbnN3ZXIgb24gaXQ/IA0KDQo+IA0KPiBU aGVyZSdzIGFsc28gYSBxdWVzdGlvbiBvZiBhdXRvbWF0aWMgdnMuIG1hbnVhbCBtYXBwaW5nLiBU aGUgd2F5IGkgc2VlIGl0LA0KPiB0aGUgY2hvaWNlcyBhcmU6DQo+IA0KPiAxKSBkcm9wIGF1dG9t YXRpYyByZWdpc3RyYXRpb24gZm9yIERNQSBhbHRvZ2V0aGVyLCBmb3IgYm90aCBpbnRlcm5hbCBh bmQNCj4gZXh0ZXJuYWwgbWVtb3J5DQo+IDIpIGRyb3AgYXV0b21hdGljIHJlZ2lzdHJhdGlvbiBm b3IgRE1BIGZvciBleHRlcm5hbCBtZW1vcnkgb25seSwgYnV0IGtlZXANCj4gYXV0b21hdGljIERN QSByZWdpc3RyYXRpb24gZm9yIGludGVybmFsIG1lbW9yeQ0KPiAzKSBkbyBhdXRvbWF0aWMgRE1B IHJlZ2lzdHJhdGlvbiBmb3IgYm90aA0KPiANCj4gSSBkb24ndCBsaWtlIHRoZSBzZWNvbmQgY2hv aWNlIGZvciBBUEkgY29uc2lzdGVuY3kgcmVhc29ucywgc28gaSB3b3VsZCByYXRoZXINCj4gZ28g ZWl0aGVyIGZvciAxKSAoYW5kIGNhdXNlIG1hc3NpdmUgYnJlYWthZ2Ugb2YgYWxsIGV4aXN0aW5n IGFwcGxpY2F0aW9ucyBhbG9uZw0KPiB0aGUgd2F5Li4uKSwgb3IgMykgKHRoZSB3YXkgaXQncyB3 b3JraW5nIHJpZ2h0IG5vdykuDQo+IFRoZSBwcmFnbWF0aWMgY2hvaWNlICptYXkqIGJlIDIpLCB3 aGljaCBpcyB3aGF0IGkgZmVlbCB5b3UgYXJlIGFkdm9jYXRpbmcNCj4gZm9yLCBidXQgaXQgaGFz IGl0cyBvd24gcHJvYmxlbXMsIG1haW5seSB0aGUgbWVjaGFuaWNzIG9mIGl0Lg0KPiBJZiB3ZSBj YW4gZ2V0IHRoZW0gd29ya2VkIG91dCwgaSBtYXkganVzdCBiaXRlIHRoZSBidWxsZXQgYW5kIGFj ayB0aGUgcGF0Y2hlcw0KPiDwn5iDDQoNCkkgZG9uJ3QgdGhpbmsgd2UgbmVlZCB0byBkbyBzdWNo IGV4dGVuc2l2ZSBjaGFuZ2VzLiANCg0KSSB0aGluayBpdCBpcyBvayB0byBoYXZlIDIgd2F5cyBm b3IgYXBwbGljYXRpb24gdG8gd29yayAodGhlIGhlYXBzIGFuZCB0aGUgZXhwbGljaXQgRE1BIGNh bGwpLiBBZnRlciBhbGwsIERQREsgaXMgYSBkZXZlbG9wbWVudCBraXQgYW5kIHdlIHNob3VsZCBt YWtlIGFwcGxpY2F0aW9uIGxpZmUgZWFzaWVyIGZvciBkaWZmZXJlbnQgdXNlIGNhc2VzLiANCklm IHRoZSBhcHBsaWNhdGlvbiB3YW50cyB0aGUgRFBESyB0byBoZWxwLCBpdCBjYW4gY3JlYXRlIHRo ZSBoZWFwIGFuZCBldmVyeXRoaW5nIHdpbGwganVzdCBoYXBwZW4uIE90aGVyd2lzZSBhcHBsaWNh dGlvbiB3aWxsIGRvIHRoZSBtZW1vcnkgbWFuYWdlbWVudCBieSBpdHNlbGYsIGFuZCB1c2UgdGhl IERNQSBjYWxsIGV4cGxpY2l0bHkuIA0KDQo+IA0KPiBTcGVjaWZpY2FsbHksIGxldCdzIHN1cHBv c2Ugd2Ugd2FudCBhdXRvbWF0aWMgbWVtb3J5IHJlZ2lzdHJhdGlvbiBmb3IgRE1BDQo+IG9uIGlu dGVybmFsIGJ1dCBub3QgZXh0ZXJuYWwgbWVtb3J5LiBIb3cgZG9lcyBpdCBoYXBwZW4/IEN1cnJl bnRseSwgaXQNCj4gaGFwcGVucyB2aWEgbWVtIGV2ZW50IGNhbGxiYWNrcy4NCj4gDQo+IElmIHdl IHdlcmUgdG8gZHJvcCB0aGUgY2FsbGJhY2sgYXBwcm9hY2ggZm9yIGV4dGVybmFsIG1lbW9yeSwg d2Ugd291bGQNCj4gbG9zZSBvdXQgb24gYWRkaXRpb25hbCBmdW5jdGlvbmFsaXR5IHByb3ZpZGVk IGJ5IHNhaWQgY2FsbGJhY2tzLCBhbmQgaSB3b3VsZA0KPiByZWFsbHkgbGlrZSB0byBhdm9pZCB0 aGF0Lg0KPiANCj4gSWYgd2Ugd2VyZSB0byBzd2l0Y2ggdG8gbWFudWFsIG1hcHBpbmcsIHRoYXQg bWVhbnMgRUFMIHdpbGwgZGVwZW5kIG9uDQo+IGV0aGRldiAoeW91IGhhdmUgc3VnZ2VzdGVkIHJ0 ZV9kZXZpY2UgYXMgYW4gYWx0ZXJuYXRpdmUgLSB3b3VsZCB0aGF0IGZpeCB0aGUNCj4gaXNzdWU/ KQ0KDQpObyBpdCB3b24ndC4NCkl0IHdpbGwgaGVscCBvbmx5IGZvciB0aGUgY2FzZXMgd2VyZSB3 ZSBoYXZlIG11bHRpcGxlIGRldmljZXMgb24gdGhlIHNhbWUgUENJIGFkZHJlc3MgKGxpa2UgcmVw cmVzZW50b3JzKS4gDQoNCiwgYW5kIHdlIHdpbGwgaGF2ZSB0byByZXdyaXRlIGN1cnJlbnQgRE1B IG1hcHBpbmcgY29kZSB0byBkbw0KPiBtYXBwaW5ncyBleHBsaWNpdGx5LCByYXRoZXIgdGhhbiBy ZWx5aW5nIG9uIGNhbGxiYWNrcyBtZWNoYW5pc20uIFNvLCBpbnN0ZWFkDQo+IG9mIGUuZy4gVkZJ TyBtYXBwaW5nIGJlaW5nIHBlcmZvcm1lZCB2aWEgY2FsbGJhY2ssIHdlIHdvdWxkIGluc3RlYWQg aXRlcmF0ZQ0KPiBvdmVyIGVhY2ggcnRlX2RldmljZSBhbmQgY2FsbCBpdHMgcmVzcGVjdGl2ZSBE TUEgbWFwcGluZyBmdW5jdGlvbiBleHBsaWNpdGx5IC0NCj4gZm9yIGludGVybmFsIG1lbW9yeSwg YnV0IG5vdCBmb3IgZXh0ZXJuYWwuIFRoaXMNCj4gKm1heSogd29yaywgYnV0IGkgbmVlZCB0byB0 aGluayBpdCB0aHJvdWdoIGEgYml0IG1vcmUgOikNCj4gDQo+IFRoaXMgYWxzbyBzdGlsbCBsZWF2 ZXMgYSBxdWVzdGlvbiBvZiBleHRlcm5hbCB1bnJlZ2lzdGVyZWQgbWVtb3J5IC0gdGhpcyBpcyBh DQo+IHdob2xseSBzZXBhcmF0ZSBpc3N1ZS4NCj4gDQo+IFRMO0RSIGknbSB0ZW50YXRpdmVseSBP SyB3aXRoIHRoZSBwcm9wb3NhbCwgYnV0IHdlIG5lZWQgdG8gd29yayBjZXJ0YWluDQo+IHRoaW5n cyBvdXQgYmVmb3JlIHdlIGdvIHRvbyBmYXIgYWxvbmcgdGhlIHBhdGggYW5kIGZpbmQgb3V0IHRo YXQgd2UndmUNCj4gcmVhY2hlZCBhIGRlYWQgZW5kLg0KDQpGdWxseSBhZ3JlZSwgdGhpcyBpcyB3 aHkgdGhlIFJGQyBpcyBmb3IuDQpJIHRoaW5rIG91ciBiaWdnZXN0IHF1ZXN0aW9uIGlzIHdoZXRo ZXIgb3Igbm90IFZGSU8gd2lsbCBiZWhhdmUgT0sgd2l0aCBkb3VibGUgbWFwcGluZyBvciB3ZSBu ZWVkIHNvbWUgdHJhY2tpbmcgbWVjaGFuaXNtIGluIERQREsuDQoNCj4gDQo+IC0tDQo+IFRoYW5r cywNCj4gQW5hdG9seQ0K