From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id F3884A0C41; Thu, 15 Jul 2021 13:16:57 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 7417A4014D; Thu, 15 Jul 2021 13:16:57 +0200 (CEST) Received: from EUR01-VE1-obe.outbound.protection.outlook.com (mail-eopbgr140074.outbound.protection.outlook.com [40.107.14.74]) by mails.dpdk.org (Postfix) with ESMTP id B2E7140143 for ; Thu, 15 Jul 2021 13:16:56 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=nxMbWeTd9QTtvzl2xq1SshBf/xhZz1qnpM6Dujc0BYXMBa5gxqH4mWhVoDIaAXfvO8ZjdsX/zPdIRMvTBEMhjQ3khTTJ/H/VyPzHE+1q/xDgbDUSLrJl8Tbt8Vl8E5HbwnKhQZNucCrdr0tbEIocm9mdcUIH1j4zAB1JsxfCJ8tMTQic1wIiByMbU7RhOeZGbjyNaU5Hkr81h5s6fzoCP3VDKJOm7T8JZ+yMjw1o7G9seaeyBywKYdg1VWCrFTkZB9BWQZAKa+3NJszmxuqpbOntHi/t3muSSEu69quQgkPUvHBFWGIR/OYVtgFisUV9yN7ZZloZ/5oVwR2Y5GvB4w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=9y6mSRG8Gp7kXC7ky1mikSDWFtQbFEk5H0LoELfGdM0=; b=Y1XQGICSDsuHydw9vtWzjMBCz5KXcCbXqh594M/SiOG5NL2ICbig/CyQYKAiisiM7KKnfHvlIaWhpi/J+w6P54OfcADPGWw3jtfjm9ScuoRbCL+DGyiekQXRDqKbkRseq4pYZLg8QIY7OhVvA/lBsGkQrjiYLAaDzK9E1zYDr0m8W/pMgKiJZx1DUTODZ4fZLTjreTQTsNqxEBtVNUCVoa5OJxJlvTPSv8rjtVb6/t+8XGZx0xEm2Rle5DV16cLOSRvnmeN5r76WZ4aBpi+8FxWznu0aUwhDlhtvJELMiZEMTGR+bf5FYLfLEcM8VdE/yNc1pFYkPYsEh5U7yP7cIQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com; dkim=pass header.d=nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=9y6mSRG8Gp7kXC7ky1mikSDWFtQbFEk5H0LoELfGdM0=; b=eGfBUhENULw+vwSVZZgIOfGB2eNZ4s7UKT9qnQ1GCCmaTO4xcgCrVO5mw+uVe3aXo/1VxZTZtgH/8YsMudQlpl3VTZdmoTEUeb9nxGf2xyk4lWq2V29si4Dl+w9Zl8HvPpA9VCUs6A4i4h10mm1ZZTmdwctTj+evo+BOiQ3XXMg= Received: from DB9PR04MB8429.eurprd04.prod.outlook.com (2603:10a6:10:24e::23) by DB3PR0402MB3851.eurprd04.prod.outlook.com (2603:10a6:8:12::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4331.21; Thu, 15 Jul 2021 11:16:54 +0000 Received: from DB9PR04MB8429.eurprd04.prod.outlook.com ([fe80::b19a:bb85:9b54:24cb]) by DB9PR04MB8429.eurprd04.prod.outlook.com ([fe80::b19a:bb85:9b54:24cb%6]) with mapi id 15.20.4331.021; Thu, 15 Jul 2021 11:16:54 +0000 From: Nipun Gupta To: fengchengwen , "thomas@monjalon.net" , "ferruh.yigit@intel.com" , "bruce.richardson@intel.com" , "jerinj@marvell.com" , "jerinjacobk@gmail.com" , "andrew.rybchenko@oktetlabs.ru" CC: "dev@dpdk.org" , "mb@smartsharesystems.com" , Hemant Agrawal , "maxime.coquelin@redhat.com" , "honnappa.nagarahalli@arm.com" , "david.marchand@redhat.com" , "sburla@marvell.com" , "pkapoor@marvell.com" , "konstantin.ananyev@intel.com" , Gagandeep Singh Thread-Topic: [PATCH v3] dmadev: introduce DMA device library Thread-Index: AQHXd+MA5zghZWbV1UWj2Bo4DD2ocatCZO+AgAFSQgCAAARfwA== Date: Thu, 15 Jul 2021 11:16:54 +0000 Message-ID: References: <1625231891-2963-1-git-send-email-fengchengwen@huawei.com> <1626179263-14645-1-git-send-email-fengchengwen@huawei.com> <04d6b19d-ba8e-7c12-b76c-d7e8c7e0a923@huawei.com> In-Reply-To: <04d6b19d-ba8e-7c12-b76c-d7e8c7e0a923@huawei.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: huawei.com; dkim=none (message not signed) header.d=none;huawei.com; dmarc=none action=none header.from=nxp.com; x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 12bd9ea1-77b5-4f28-74bb-08d947820d6a x-ms-traffictypediagnostic: DB3PR0402MB3851: x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:10000; x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: XK2bDKQtZJbzyKwtrBJ7yzyUJxSrQipC2uhG0e5XBG0+Vvhk3iyjUTEzQ8jVJi7ZgTKrITzTG66N5x8Rk3zVmRNZn7rzrzM73uR69GIClL20iSCl7mlZPfveW1j6CxhmeTaXjC974IkeE6KJKHhUELz7EoMIcv90gyLzTPr7zee6ZUSNqFzWL+BVfVQ09E/YZohZWIg/DOYGxfCo3KPgdYkw8Hf6JlThf6/N7MAbYqpcegusyC4WntoohxSw1UEqrxS83mquR4Ds4IgLRaVrrlTJtbsRDMY73YAy7BOtJdykUG2vcXTO+4AzMgFnVpelag9EtR6IGyXMgW3OulbmQNx9XpzzkG4yq4wYcm9HW+5l6eyvdDYjpsRYGGZ7ZCWm4RA8+VV6/fLlCk0zdfG987VIklHEbTpvBryuYp2Zos7HiYV+98cql9kcErMJ/vHTGy8FrsKdzt5bfj2TjPuqLKoQXCCOB+Gq2WlFvlBYz3aKODqssbRMGue6FBj3ZTCMHw+zLeoIiM2yrFRBKbohnBUxI8Hc62/kVWtETpdjng19knJ5OWdwWPErY5y7P9VUnDR3HwIc1N2jInZ+6yngvLkFvlyJNlgiIVqqyXCzpfcSOKF/8axrHeqKywgjdv/Xdqkt1B4vutTtUdNFkO9BRQrWfbRB2YJDA12EhIC7nKfUBEoq9P/FcEV4g7GHdoIZF5yG1ItoKxgN2Q0FrADsig== x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DB9PR04MB8429.eurprd04.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(396003)(376002)(346002)(39860400002)(366004)(136003)(9686003)(55016002)(478600001)(4326008)(33656002)(83380400001)(8676002)(8936002)(71200400001)(7696005)(76116006)(66946007)(26005)(86362001)(316002)(7416002)(54906003)(2906002)(53546011)(122000001)(52536014)(66446008)(64756008)(6506007)(38100700002)(5660300002)(110136005)(66476007)(186003)(44832011)(66556008)(38070700004); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?WXdrR0svcEc3b01xSjNJWmRjYldHa3lmVzMxdm9USmMyaURBUG5HVVVLKzNo?= =?utf-8?B?V2FtOUNyOHY5VFAyQTY3MU1kMFNuZmFhOC8ybVhiTVdVTTZUbTFwLytVZU1i?= =?utf-8?B?ekJPQ3RqV2grWmlCb3JHSE1iQ1JkNXltUHo2U2dpTUYzc2x2eEd5clhEVE1G?= =?utf-8?B?QmVSVkt4NVN1UDhIN25vZ1RUT2Z6WVJrVXBORitoR0tTVlNIRFR2bFNUaHJo?= =?utf-8?B?TUd0MmhCdDJ2MWNURnhKN1loNmdVdEZhZWw5OG9MUTgwWkhId2xDZjVtNjA0?= =?utf-8?B?VnViK3Y3Y2w4a2RFYk0vcXZtWEFMKzRlcjlpRHZZZTBMSExQbEFFcHBjcGh2?= =?utf-8?B?S1BsVTFVblEwbCt3UFFwK0tNZVNRUGJrUFVoZHhFUjMvUWo2OHJhVmJwM29m?= =?utf-8?B?aTQ3MHJEclJIc3cxZWIzbjBOaldORzU2MEtwa0VmRU5RQVJ6NFA1bGc1M1NL?= =?utf-8?B?TjFFVTIwRUZHOUxlVjl5YllncmF6Mnd1QXdsdy9ydCtDV1dVbnhiVE4yUGdE?= =?utf-8?B?RTNPeGlrL1ZtNEFKK1BnUnZ3cVlTVVN0TnJYRzJnMzhyU3RQUzU2bTVmSU1E?= =?utf-8?B?OWZQN2F4VGx3dEcxVi8wTDNoTVVVSWErcVZYekMxMEliaDRJdEZROW5UTG0x?= =?utf-8?B?NDAzZEVoNVlPUzFVaVIrVTViOGFLcXdiVDVTc0hpR200S2ZMTGJGWlBKa1ly?= =?utf-8?B?c3J3S0laUHJmbGVRV09OYlZqVFdiZWZ5ZkN5RGkvS1B0b3JDeVBLNmZjK2pP?= =?utf-8?B?OEx4c1M1Z2JtR0tyM1BYNUtBdEhWZDJkeUpkYlkwTTlvVGFGcEowWnFlN0JS?= =?utf-8?B?bzVndzNGOUZHZEI0TDhPcWFsNlVhYVdHM0FsUkNnbDRsb2U3ZFVSaUhmYkdC?= =?utf-8?B?VnFZMjk4amtwaXlWZnMrL1Z3Sk1Dem8yZUNIZ014QnpieGg5N3JuSm52Rm1G?= =?utf-8?B?WE94UmtLd3VTOTRoV0ZoWHYwMDZ6Wmhqc3BhQjBkeHYxSjZiK3dqc3R0a3Nk?= =?utf-8?B?a0hHWEFlU1o0V0xjYzFyMTQzTjhxRkhUUkFMbDJ1Yll2MzVLVEVxMXFOallO?= =?utf-8?B?S29sT2JGVldKZktwVWF5dG1sZGowS0kzdUxYYWZqMVJiWmF4VXZLcFZtcFls?= =?utf-8?B?UVVuMXlyUFBlYzQ5QWhCYkpPWlkxNElJOFhBQUtsMC9QUDFVWm8yMTlsUjdX?= =?utf-8?B?aUxxTDVBOUx2NEtuNVgvWncrbjNEbnVlNmJpckR3emNCTlErZUVpVVpHdzJw?= =?utf-8?B?SEFaZ3ZrL1Y3RkIzdXJDdTM0N0dVK2ROQU1CS3k1UmJRbzRBbTdxRm96NWUw?= =?utf-8?B?cGwrdzUxMHkzRGptVytuNUp2ZHJTR3huVkJsZzc0VndWZDYyME44aWZZUXh2?= =?utf-8?B?MmNVS0VsQlRsNlplVHZiSU9vVG44SlM3TEoyU2pVMjhCKzFxbXVRMUxJVExk?= =?utf-8?B?RlFPN0dLTGRKTTlmSXJVT2U2QWFyMzRHTStpaUNEL20zTlZDNUhrTXpyREM3?= =?utf-8?B?QVRUUTJpK3dodVIzRjFSYWNjdmt3UFhqUlU5S09KaTNLUklEVWVrRGxJRkJp?= =?utf-8?B?M1dUbUNvQktoOWpkampIaHMwUlE1MkJCemtHcXU5NmVrYzFFanhFNHd3b0ht?= =?utf-8?B?MmwrQmxNY1MwRTRiVkFxNnhIQ2xhcFMzL3dUalFTcmYvbm85S2RGdHBqZmhL?= =?utf-8?B?MDZyN05sT0thNXU0Mm9KV2h3M3BmbCsrSmR3NWdudGUxNmRsV1BCMWZoZWpn?= =?utf-8?Q?wiyRa/QphbnC3HgzXTdxMWEv5PCtK7YohsZdZht?= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: DB9PR04MB8429.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 12bd9ea1-77b5-4f28-74bb-08d947820d6a X-MS-Exchange-CrossTenant-originalarrivaltime: 15 Jul 2021 11:16:54.4414 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: D1Mtd+jGaG5e5jksNgdQbcZj5f/2Iawd8PHh0l71rz2R064RK3H+kjcKUhIoKNVq0hXSFNwcJdpkB4P20u1tJg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB3PR0402MB3851 Subject: Re: [dpdk-dev] [PATCH v3] dmadev: introduce DMA device library X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" DQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogZmVuZ2NoZW5nd2VuIDxm ZW5nY2hlbmd3ZW5AaHVhd2VpLmNvbT4NCj4gU2VudDogVGh1cnNkYXksIEp1bHkgMTUsIDIwMjEg MTo1OSBQTQ0KPiBUbzogTmlwdW4gR3VwdGEgPG5pcHVuLmd1cHRhQG54cC5jb20+OyB0aG9tYXNA bW9uamFsb24ubmV0Ow0KPiBmZXJydWgueWlnaXRAaW50ZWwuY29tOyBicnVjZS5yaWNoYXJkc29u QGludGVsLmNvbTsgamVyaW5qQG1hcnZlbGwuY29tOw0KPiBqZXJpbmphY29ia0BnbWFpbC5jb207 IGFuZHJldy5yeWJjaGVua29Ab2t0ZXRsYWJzLnJ1DQo+IENjOiBkZXZAZHBkay5vcmc7IG1iQHNt YXJ0c2hhcmVzeXN0ZW1zLmNvbTsgSGVtYW50IEFncmF3YWwNCj4gPGhlbWFudC5hZ3Jhd2FsQG54 cC5jb20+OyBtYXhpbWUuY29xdWVsaW5AcmVkaGF0LmNvbTsNCj4gaG9ubmFwcGEubmFnYXJhaGFs bGlAYXJtLmNvbTsgZGF2aWQubWFyY2hhbmRAcmVkaGF0LmNvbTsNCj4gc2J1cmxhQG1hcnZlbGwu Y29tOyBwa2Fwb29yQG1hcnZlbGwuY29tOyBrb25zdGFudGluLmFuYW55ZXZAaW50ZWwuY29tOw0K PiBHYWdhbmRlZXAgU2luZ2ggPEcuU2luZ2hAbnhwLmNvbT4NCj4gU3ViamVjdDogUmU6IFtQQVRD SCB2M10gZG1hZGV2OiBpbnRyb2R1Y2UgRE1BIGRldmljZSBsaWJyYXJ5DQo+IA0KPiBPbiAyMDIx LzcvMTQgMjA6MjIsIE5pcHVuIEd1cHRhIHdyb3RlOg0KPiA+IDxzbmlwPg0KPiA+DQo+ID4+ICsv KioNCj4gPj4gKyAqIEEgc3RydWN0dXJlIHVzZWQgdG8gY29uZmlndXJlIGEgdmlydHVhbCBETUEg Y2hhbm5lbC4NCj4gPj4gKyAqLw0KPiA+PiArc3RydWN0IHJ0ZV9kbWFkZXZfdmNoYW5fY29uZiB7 DQo+ID4+ICsJdWludDhfdCBkaXJlY3Rpb247DQo+ID4+ICsJLyoqPCBTZXQgb2Ygc3VwcG9ydGVk IHRyYW5zZmVyIGRpcmVjdGlvbnMNCj4gPj4gKwkgKiBAc2VlIFJURV9ETUFfTUVNX1RPX01FTQ0K PiA+PiArCSAqIEBzZWUgUlRFX0RNQV9NRU1fVE9fREVWDQo+ID4+ICsJICogQHNlZSBSVEVfRE1B X0RFVl9UT19NRU0NCj4gPj4gKwkgKiBAc2VlIFJURV9ETUFfREVWX1RPX0RFVg0KPiA+PiArCSAq Lw0KPiA+PiArCS8qKiBOdW1iZXIgb2YgZGVzY3JpcHRvciBmb3IgdGhlIHZpcnR1YWwgRE1BIGNo YW5uZWwgKi8NCj4gPj4gKwl1aW50MTZfdCBuYl9kZXNjOw0KPiA+PiArCS8qKiAxKSBVc2VkIHRv IGRlc2NyaWJlcyB0aGUgcG9ydCBwYXJhbWV0ZXIgaW4gdGhlIGRldmljZS10by1tZW1vcnkNCj4g Pj4gKwkgKiB0cmFuc2ZlciBzY2VuYXJpby4NCj4gPj4gKwkgKiAyKSBVc2VkIHRvIGRlc2NyaWJl cyB0aGUgc291cmNlIHBvcnQgcGFyYW1ldGVyIGluIHRoZQ0KPiA+PiArCSAqIGRldmljZS10by1k ZXZpY2UgdHJhbnNmZXIgc2NlbmFyaW8uDQo+ID4+ICsJICogQHNlZSBzdHJ1Y3QgcnRlX2RtYWRl dl9wb3J0X3BhcmFtZXRlcnMNCj4gPj4gKwkgKi8NCj4gPg0KPiA+IFRoZXJlIHNob3VsZCBhbHNv IGJlIGEgY29uZmlndXJhdGlvbiB0byBzdXBwb3J0IG5vIHJlc3BvbnNlIChwZXIgVmlydHVhbA0K PiBDaGFubmVsKSwNCj4gPiBBbmQgaWYgdGhhdCBpcyBlbmFibGVkLCB1c2VyIHdpbGwgbm90IGJl IHJlcXVpcmVkIHRvIGNhbGwgJ3J0ZV9kbWFkZXZfY29tcGxldGVkJw0KPiBBUEkuDQo+ID4gVGhp cyBzaGFsbCBhbHNvIGJlIHBhcnQgb2YgY2FwYWJpbGl0eS4NCj4gDQo+IERvIHlvdSBtZWFuIHNv bWUgc2lsZW50IG1vZGU/IFRoZSBhcHBsaWNhdGlvbiBvbmx5IG5lZWRzIHRvIHN1Ym1pdCByZXF1 ZXN0cw0KPiB0byB0aGUNCj4gaGFyZHdhcmUuDQo+IA0KPiBDb3VsZCB5b3UgYnJpZWZseSBkZXNj cmliZSB0aGUgd29ya2luZyBwcmluY2lwbGVzIGFuZCBhcHBsaWNhdGlvbiBzY2VuYXJpb3Mgb2YN Cj4gdGhlDQo+IGNvcnJlc3BvbmRpbmcgZGV2aWNlPw0KDQpJdCBpcyBraW5kIG9mIGEgc2lsZW50 IG1vZGUgdy5yLnQuIHRoZSBjb21tYW5kIGNvbXBsZXRpb24gZnJvbSBRRE1BLg0KDQpUaGVyZSBj b3VsZCBiZSBsZXZlbCBvZiBzeW5jaHJvbml6YXRpb24gaW4gdGhlIGFwcGxpY2F0aW9ucyBhdCBh IGhpZ2hlciBsZXZlbCBkdWUNClRvIHdoaWNoIFFETUEgc3RhdHVzIGRlcXVldWUgd291bGQgbm90 IGJlIG5lY2Vzc2FyeSBhbmQgYmUgYW4gb3ZlcmhlYWQuDQpJbiB0aGlzIG1vZGUgZXh0cmEgZGF0 YS9ieXRlcyBjb3VsZCBiZSBwYXNzZWQgd2l0aCBETUEgd2hpY2ggd291bGQgaW5kaXJlY3RseQ0K aW5kaWNhdGUgaWYgRE1BIGlzIGNvbXBsZXRlIG9yIG5vdC4NCg0KPiANCj4gPg0KPiA+PiArCXN0 cnVjdCBydGVfZG1hZGV2X3BvcnRfcGFyYW1ldGVycyBzcmNfcG9ydDsNCj4gPj4gKwkvKiogMSkg VXNlZCB0byBkZXNjcmliZXMgdGhlIHBvcnQgcGFyYW1ldGVyIGluIHRoZSBtZW1vcnktdG8tZGV2 aWNlLXRvDQo+ID4+ICsJICogdHJhbnNmZXIgc2NlbmFyaW8uDQo+ID4+ICsJICogMikgVXNlZCB0 byBkZXNjcmliZXMgdGhlIGRlc3RpbmF0aW9uIHBvcnQgcGFyYW1ldGVyIGluIHRoZQ0KPiA+PiAr CSAqIGRldmljZS10by1kZXZpY2UgdHJhbnNmZXIgc2NlbmFyaW8uDQo+ID4+ICsJICogQHNlZSBz dHJ1Y3QgcnRlX2RtYWRldl9wb3J0X3BhcmFtZXRlcnMNCj4gPj4gKwkgKi8NCj4gPj4gKwlzdHJ1 Y3QgcnRlX2RtYWRldl9wb3J0X3BhcmFtZXRlcnMgZHN0X3BvcnQ7DQo+ID4+ICt9Ow0KPiA+PiAr DQo+ID4NCj4gPiA8c25pcD4NCj4gPg0KPiA+PiArLyoqDQo+ID4+ICsgKiBAd2FybmluZw0KPiA+ PiArICogQGIgRVhQRVJJTUVOVEFMOiB0aGlzIEFQSSBtYXkgY2hhbmdlIHdpdGhvdXQgcHJpb3Ig bm90aWNlLg0KPiA+PiArICoNCj4gPj4gKyAqIEVucXVldWUgYSBzY2F0dGVyIGxpc3QgY29weSBv cGVyYXRpb24gb250byB0aGUgdmlydHVhbCBETUEgY2hhbm5lbC4NCj4gPj4gKyAqDQo+ID4+ICsg KiBUaGlzIHF1ZXVlcyB1cCBhIHNjYXR0ZXIgbGlzdCBjb3B5IG9wZXJhdGlvbiB0byBiZSBwZXJm b3JtZWQgYnkgaGFyZHdhcmUsDQo+ID4+ICsgKiBidXQgZG9lcyBub3QgdHJpZ2dlciBoYXJkd2Fy ZSB0byBiZWdpbiB0aGF0IG9wZXJhdGlvbi4NCj4gPg0KPiA+IFRoaXMgd291bGQgbmVlZCB1cGRh dGUgd2l0aCB0aGUgc3VibWl0IGZsYWcuDQo+ID4gVGhlIHN0YXRlbWVudCBzaG91bGQgYmUgdHJ1 ZSBvbmx5IHdoZW4gdGhlIGZsYWcgaXMgc2V0Pw0KPiA+IFNpbWlsYXIgY29tbWVudCBJIHNlZSBv biAncnRlX2RtYWRldl9jb3B5X3NnJyBhbmQgJ3J0ZV9kbWFfZmlsbCcgQVBJcw0KPiANCj4gT0ss IHdpbGwgZml4IGluIFY0DQo+IA0KPiA+DQo+ID4+ICsgKg0KPiA+PiArICogQHBhcmFtIGRldl9p ZA0KPiA+PiArICogICBUaGUgaWRlbnRpZmllciBvZiB0aGUgZGV2aWNlLg0KPiA+PiArICogQHBh cmFtIHZjaGFuDQo+ID4+ICsgKiAgIFRoZSBpZGVudGlmaWVyIG9mIHZpcnR1YWwgRE1BIGNoYW5u ZWwuDQo+ID4+ICsgKiBAcGFyYW0gc2cNCj4gPj4gKyAqICAgVGhlIHBvaW50ZXIgb2Ygc2NhdHRl cmxpc3QuDQo+ID4+ICsgKiBAcGFyYW0gZmxhZ3MNCj4gPj4gKyAqICAgQW4gZmxhZ3MgZm9yIHRo aXMgb3BlcmF0aW9uLg0KPiA+PiArICogICBAc2VlIFJURV9ETUFfT1BfRkxBR18qDQo+ID4+ICsg Kg0KPiA+PiArICogQHJldHVybg0KPiA+PiArICogICAtIDAuLlVJTlQxNl9NQVg6IGluZGV4IG9m IGVucXVldWVkIGNvcHkgc2NhdHRlcmxpc3Qgam9iLg0KPiA+PiArICogICAtIDwwOiBFcnJvciBj b2RlIHJldHVybmVkIGJ5IHRoZSBkcml2ZXIgY29weSBzY2F0dGVybGlzdCBmdW5jdGlvbi4NCj4g Pj4gKyAqLw0KPiA+PiArX19ydGVfZXhwZXJpbWVudGFsDQo+ID4+ICtzdGF0aWMgaW5saW5lIGlu dA0KPiA+PiArcnRlX2RtYWRldl9jb3B5X3NnKHVpbnQxNl90IGRldl9pZCwgdWludDE2X3QgdmNo YW4sIGNvbnN0IHN0cnVjdA0KPiBydGVfZG1hX3NnDQo+ID4+ICpzZywNCj4gPj4gKwkJICAgdWlu dDY0X3QgZmxhZ3MpDQo+ID4+ICt7DQo+ID4+ICsJc3RydWN0IHJ0ZV9kbWFkZXYgKmRldiA9ICZy dGVfZG1hZGV2aWNlc1tkZXZfaWRdOw0KPiA+PiArI2lmZGVmIFJURV9ETUFERVZfREVCVUcNCj4g Pj4gKwlpZiAoIXJ0ZV9kbWFkZXZfaXNfdmFsaWRfZGV2KGRldl9pZCkgfHwNCj4gPj4gKwkgICAg dmNoYW4gPj0gZGV2LT5kYXRhLT5kZXZfY29uZi5tYXhfdmNoYW5zIHx8DQo+ID4+ICsJICAgIHNn ID09IE5VTEwpDQo+ID4+ICsJCXJldHVybiAtRUlOVkFMOw0KPiA+PiArCVJURV9GVU5DX1BUUl9P Ul9FUlJfUkVUKCpkZXYtPmNvcHlfc2csIC1FTk9UU1VQKTsNCj4gPj4gKyNlbmRpZg0KPiA+PiAr CXJldHVybiAoKmRldi0+Y29weV9zZykoZGV2LCB2Y2hhbiwgc2csIGZsYWdzKTsNCj4gPj4gK30N Cj4gPj4gKw0KPiA+DQo+ID4gLg0KPiA+DQo=