From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by smtp.lore.kernel.org (Postfix) with ESMTP id 26DCBECAAA1 for ; Wed, 7 Sep 2022 01:36:23 +0000 (UTC) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id CDB51400D6; Wed, 7 Sep 2022 03:36:22 +0200 (CEST) Received: from NAM04-BN8-obe.outbound.protection.outlook.com (mail-bn8nam04on2132.outbound.protection.outlook.com [40.107.100.132]) by mails.dpdk.org (Postfix) with ESMTP id 27FE640042 for ; Wed, 7 Sep 2022 03:36:21 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ItnbYiPlbDOr25MVqZsYaeEFGfpFaTe4+8+2yvxbK9mplJkdLMzjJagTDjfO7lCDCXKAAvl5kq5R7lpxJDMY45GuwRp3WPmQ+Mec5qf88r1GE5mrygBs3HwCQlg/XS9SBSTIOcwQaj/khLorkycj36oM/aFJHGP/9xQlpyggWw4tvPJP5t3aOnyqeajEO0Sg5MKg4+UgV+1IgZQk1ITg9UrkarqbLvF7d8gm4ZPJrJtCtbeCLZNfO20Z5VvyFLnczqVhZi52aZPJMbk4ljF3LRWm/iRv5woQAXGlIkIqnopQCj5SLHLw8gpLuIluwtAE2lnwB+eFYIbreMdXZ9HHNA== 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-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=LNsenVrCaD00Xp2qsaPRkUQBR9B3+7MgvFCNTuBCvjE=; b=jT3QqID/97DaqkPRf+PW17JqfwvAUtlkMKw7FvHj+KDbS8dSjRhsOOFUmhPaDcp1kd6/2nXUInA3GxKmgz3tDd7BrUYwTd5bgBfkK0HdEBNuO2E03RGqqSzc/m/vNYjSdrY7DL9K5lynYNOcVcYc4GAmVcIoI8s3RnJEnTJg6pjylygYGD+xkZ+PNycnxy8kKVfmxTy8K5DuqEp52gkyLcNPORsSa1ZeBh8zKGzw+nQckfWa+V3JJGMTjShWKcBU9atrKipIjRXMJp3Yi0JV1CkpQrDDQ63jwyVr7/uyebufYa2QvKL1DJY0h7nKFTQ/F3pS5Map+A3SSI3nMX67jw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=microsoft.com; dmarc=pass action=none header.from=microsoft.com; dkim=pass header.d=microsoft.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=LNsenVrCaD00Xp2qsaPRkUQBR9B3+7MgvFCNTuBCvjE=; b=KcnnArmBVGpk9PyNzA7SmuTbDyFW3damhesoe3yW3gzFMtlXSGN4vIwzTxJbXps8M5YIBJQwwpbhaYazXlqLKSiCXn1oU8zv43X7xrlltSQ6RQYU0Hc9dUPOXLKS1uGBHSC77FHHZtKZXgmYuTSi0jaPlXEF3rbyHYjn+yi4n3E= Received: from PH7PR21MB3263.namprd21.prod.outlook.com (2603:10b6:510:1db::16) by PH7PR21MB3382.namprd21.prod.outlook.com (2603:10b6:510:1de::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5612.5; Wed, 7 Sep 2022 01:36:18 +0000 Received: from PH7PR21MB3263.namprd21.prod.outlook.com ([fe80::c42c:5004:23c1:bcac]) by PH7PR21MB3263.namprd21.prod.outlook.com ([fe80::c42c:5004:23c1:bcac%8]) with mapi id 15.20.5632.002; Wed, 7 Sep 2022 01:36:18 +0000 From: Long Li To: "lihuisong (C)" , Ferruh Yigit CC: "dev@dpdk.org" , Ajay Sharma , Stephen Hemminger Subject: RE: [Patch v6 01/18] net/mana: add basic driver, build environment and doc Thread-Topic: [Patch v6 01/18] net/mana: add basic driver, build environment and doc Thread-Index: AQHYvMMcd2wwHX4AIUyVWI99rwIFwq3IOaSAgAETaGCAByfnAIACxD7A Date: Wed, 7 Sep 2022 01:36:18 +0000 Message-ID: References: <1661899911-13086-1-git-send-email-longli@linuxonhyperv.com> <1661899911-13086-2-git-send-email-longli@linuxonhyperv.com> <020abf35-2bb0-795c-fc2f-c970f12c875c@huawei.com> <849ec1cc-3774-6aa0-65a9-7461a483169d@huawei.com> In-Reply-To: <849ec1cc-3774-6aa0-65a9-7461a483169d@huawei.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: msip_labels: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=microsoft.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: PH7PR21MB3263:EE_|PH7PR21MB3382:EE_ x-ms-office365-filtering-correlation-id: 08409c08-65d3-4340-6a90-08da90715ca8 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: JIg7btnjMSi9nrsYHfgxeQ817YEUXH74ZWgsJmEqEvsVSJkN6hmYLO//CArWBLH9bJHaS63LyExIz7Ail53daG9A8/k0EjdEc06e1YCZiHXoLccv5fi39QB/JRtcsUNIrmZjHcOPfxczne2uYKifHyQzoYGCm1mz7xeDe+77eaGkniRRjPW7/AaH1rjs+w00nNdyh/jvORNSa1lvIh7/ht6vw6EoYt53etXqM6LNlF8mG0DPetV1aZBuzKB9ijUET3fNUtxnOmGvk6fUsgPWrWOXh4/Tv3itKYwO8alfAQIa1cI96O/7HKsGpDld1FSp7WF6PzHGMjWx4KUdTu7zBWRcMIaBHFnqTod5248pt0mrbBGinuXlFEPFgjAM1MX/ZOS9Azr6hVL3fb5xs5Wn1EjTWwRR3UI5MP9axVCNu+GaoH+BMEipXN98cH3+ZyN159WlN1bXOQivDQyFmzYhqS9okt2RJTx0Fie4VlAVnvsRYKfjxTP/j9v5fGTyZZE+nDc0sf+8rLvRJJh0cpisIgKlBteE1rtbzQ0nS6uVQwof9/uZZP4GTroiC7QFG8QIRtZkv/iGnLQKaMcSpf4Gh+UEDI5Ec7RFxDvVLMWGHaLradDUzwMMVsMrk7DJyJnmOm2Bm/UzgtayzCxOwvGqL+63H6qiItHK4uuxX0s6Fnaccm3TRvmPiqdMo6lfaOsgVMrKeu6+FW8FCqLrddkksP0Rv1aC1h+3zsuEPzTeO5u3joLiuQLFY/UqdbOkaMsnUexI6bbgb7sXzsb7HRKL5/NmUKo06iAbrcuaAix346VX8z0KILoeDU0xpOH8Py0K x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:PH7PR21MB3263.namprd21.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230016)(4636009)(346002)(136003)(39860400002)(366004)(376002)(396003)(451199009)(2906002)(66946007)(41300700001)(52536014)(478600001)(8936002)(5660300002)(26005)(86362001)(9686003)(66476007)(8990500004)(64756008)(66446008)(186003)(4326008)(76116006)(107886003)(8676002)(66556008)(6506007)(7696005)(54906003)(55016003)(10290500003)(122000001)(33656002)(38100700002)(83380400001)(71200400001)(110136005)(82960400001)(316002)(38070700005)(82950400001); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?ZHVTaEJSVStSZ2F0a00xYmEwNmpLcjh6ZmdCWUtHaTJPOXRadHpiVGl4bXB1?= =?utf-8?B?c2FXdXZ2RUZWRkdESE5ucTFYTm9menJIK0VNM3V5UlJCaVJOb0JnMFFwOG9o?= =?utf-8?B?MXlnMmJDUWFIQWh4QkVEMEd0akQzTlpXa0dwbFd2YnQzWVdzMjRmYnJmQWhV?= =?utf-8?B?OXFRTEJjSDFieHF2am43TmxFdzVCdjN6U3YrMWhCbmFGOEp0ZnNMa2tqdElP?= =?utf-8?B?V0hJSDBIWFJnZ2docWMyYWppYkY4WTJ1R1NOWVhsZFYwbERvZUtYN1A3SHg5?= =?utf-8?B?eFlNUUpOLzNkZkNPQzM0dlliT1FLbmpGaW4zN3VJOWl0ZlRHaWxPelFWaUI0?= =?utf-8?B?YTk5UWJlb0EwbHNvRUZDWlllSWRQMnBaQTR1YXdVU0xkbUhZeGFCOEdwM3ZS?= =?utf-8?B?NCthWjNUdXJBRW9ZVHZxVCtnM2FhaW93UlRPMjM2QkhsNHNpSWFTajhXaW0v?= =?utf-8?B?UXRvSENGUGFzc2ptQ01rRzk0TWI4TFZJcHpWVzNXTENoYS9nWXlMbjFoSnAy?= =?utf-8?B?TnpjU3p2bjRCK3dTSWkwaWFUV1lENitWQ2l6RHpSRVVCUkRXMis0dTBweGlw?= =?utf-8?B?bW5BZXYrZ3F4WHE4K0lnWTVHc1J3WGdVSDdRaXFrOExISURqcEt1VHhrTTJk?= =?utf-8?B?Vi9xTmh1eVhzNFBjUGlDZXVNM0dSY3RyQUtWMGFobEFxM25qQzBseldEVXVx?= =?utf-8?B?YTkrNU9TL1ZRbmhlS1g5QlVUL1VURHAra1VML25OS0lyZ2NFRWxuTkRSeGlx?= =?utf-8?B?ci94QkVLbXE0ZEdKY3B2OFl3YlJDaDNJQ2xxQjdyN2t3alNLZ094M1BucTFy?= =?utf-8?B?UnFKYm5YNlNkbmllVXpESi9GYU9saWVPZ0V3aE9PaUdUQXJJUE9ybkdqYThh?= =?utf-8?B?emFVck5Td21iVXA3Z0hrSkR1dGtlWWhld05BSlIwalEwbVdBQThJQjZGUExz?= =?utf-8?B?aWFtZ1V2akRsMU85Mnlsc3dTZ1htTnBlVkxzalBnYVJ3UWVwUVRLWkIybmZK?= =?utf-8?B?cWhqRldHSGQ5VnJQZHA5Y2NDZmFTRkx5eWJoSCttdm9PRHl3bjRFLzg3b1Jq?= =?utf-8?B?RjJUWGJDSVowRTAyRkJOSmRkRWlqWG95aUNxRml2RlhHTFNwR3REQW5Rc0Ju?= =?utf-8?B?bVR4NlFyT0tsUzNJMDB0a01pdDd5dk9LaTBVVFBtL25KU3JCRElKcUhEcnBt?= =?utf-8?B?SjR2MWVkeGp6ZTg5cDRYeXFtUVF1QTlmdlFOVWZKSnVJUllaaXFOUUdEcjlI?= =?utf-8?B?WkJCYXdEOVpXK1ZrVEovSzUxTGxnSVlRcTNIeEVRZTQ4c3hsaDN0aHRNVHB6?= =?utf-8?B?T3V6Z2FqNDM1UWdaQUNldVJTcDJFSnlIV09sczhHQkRzcGVyZkVjUmZsRmVk?= =?utf-8?B?cjFMMmVHMHlxOXQ1SzZjL3RsL3B6Qm1RWHJUNUlmQmNLdndTb3ZTVldSOWFu?= =?utf-8?B?OGd0SG1wazVYeTdGWmhkOGpSdWhNbEdDN0tyK1JhQmlvMjZsU3pYV2Y3bGRu?= =?utf-8?B?VDkwSkNKd0dPSUoxRE9tbFZwVnlWZFVkMTZWN0VPUG0yZGVGYmZkN0tZL2l6?= =?utf-8?B?aERTTjgrd2xBMnEvWWVzTU4xMkNVSjRseWtyaUNaODRYTTdqSlN1KzlLNFBk?= =?utf-8?B?U3FJRUhZQTA2c2hFTjEzLzV0WGwyc3pUNmJQQng1MGFMWWZaZ3lSRFQxRkYz?= =?utf-8?B?ZGdRUXRiRHFnWS9ta29xM2Z6RzkrYms5UjlYWGlva3Ayayswa1FkUVVMTHVC?= =?utf-8?B?QThjZUVnc2ROK2xyWDN4M3JTNlgyZ0ZrMGw5clpHbmsyRkpQaXljb2xZUWhB?= =?utf-8?B?Mk1iNStUblNRZWVRU1RoR2U3MWJMOG9UenJqcEpTajNLOW9sUTY1R21SSGY3?= =?utf-8?B?NkZadFBGVDZvQ3Y0eHYxaDlINVE3L2RpZTh0SExGM1RlYUh5REFzOTVSQ29z?= =?utf-8?B?ZW5VbnN6N1JIOHRjblZKODhuZndsY0FrRlVydFc0cXAwaTlYTit3NjhhR2I4?= =?utf-8?B?RENNTnRIOUc5UUkvSktsb3BUTjRVeGU5cjZJajNsWG5ScjlQcmx4cmJ1eUVm?= =?utf-8?B?eWU4bEp1RXlKdnc2UWRKRmZiUnVVUXBzV3pneUpWWXJuWGxSc0g0ZDFpVXpS?= =?utf-8?Q?iU4WhyaTIt3T2XqEJhweKLVaX?= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: microsoft.com X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR21MB3382 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 PiBTdWJqZWN0OiBSZTogW1BhdGNoIHY2IDAxLzE4XSBuZXQvbWFuYTogYWRkIGJhc2ljIGRyaXZl ciwgYnVpbGQgZW52aXJvbm1lbnQNCj4gYW5kIGRvYw0KPiANCj4gDQo+IOWcqCAyMDIyLzkvMSAy OjA1LCBMb25nIExpIOWGmemBkzoNCj4gPj4gU3ViamVjdDogUmU6IFtQYXRjaCB2NiAwMS8xOF0g bmV0L21hbmE6IGFkZCBiYXNpYyBkcml2ZXIsIGJ1aWxkDQo+ID4+IGVudmlyb25tZW50IGFuZCBk b2MNCj4gPj4NCj4gPj4NCj4gPj4g5ZyoIDIwMjIvOC8zMSA2OjUxLCBsb25nbGlAbGludXhvbmh5 cGVydi5jb20g5YaZ6YGTOg0KPiA+Pj4gRnJvbTogTG9uZyBMaSA8bG9uZ2xpQG1pY3Jvc29mdC5j b20+DQo+ID4+Pg0KPiA+Pj4gTUFOQSBpcyBhIFBDSSBkZXZpY2UuIEl0IHVzZXMgSUIgdmVyYnMg dG8gYWNjZXNzIGhhcmR3YXJlIHRocm91Z2gNCj4gPj4+IHRoZSBrZXJuZWwgUkRNQSBsYXllci4g VGhpcyBwYXRjaCBpbnRyb2R1Y2VzIGJ1aWxkIGVudmlyb25tZW50IGFuZA0KPiA+Pj4gYmFzaWMg ZGV2aWNlIHByb2JlIGZ1bmN0aW9ucy4NCj4gPj4+DQo+ID4+PiBTaWduZWQtb2ZmLWJ5OiBMb25n IExpIDxsb25nbGlAbWljcm9zb2Z0LmNvbT4NCj4gPj4+IC0tLQ0KPiA+Pj4gQ2hhbmdlIGxvZzoN Cj4gPj4+IHYyOg0KPiA+Pj4gRml4IHR5cG9zLg0KPiA+Pj4gTWFrZSB0aGUgZHJpdmVyIGJ1aWxk IG9ubHkgb24geDg2LTY0IGFuZCBMaW51eC4NCj4gPj4+IFJlbW92ZSB1bnVzZWQgaGVhZGVyIGZp bGVzLg0KPiA+Pj4gQ2hhbmdlIHBvcnQgZGVmaW5pdGlvbiB0byB1aW50MTZfdCBvciB1aW50OF90 IChmb3IgSUIpLg0KPiA+Pj4gVXNlIGdldGxpbmUoKSBpbiBwbGFjZSBvZiBmZ2V0cygpIHRvIHJl YWQgYW5kIHRydW5jYXRlIGEgbGluZS4NCj4gPj4+IHYzOg0KPiA+Pj4gQWRkIG1lc29uIGJ1aWxk IGNoZWNrIGZvciByZXF1aXJlZCBmdW5jdGlvbnMgZnJvbSBSRE1BIGRpcmVjdCB2ZXJiDQo+ID4+ PiBoZWFkZXIgZmlsZQ0KPiA+Pj4gdjQ6DQo+ID4+PiBSZW1vdmUgZXh0cmEgIlxuIiBpbiBsb2dn aW5nIGNvZGUuDQo+ID4+PiBVc2UgInIiIGluIHBsYWNlIG9mICJyYiIgaW4gZm9wZW4oKSB0byBy ZWFkIHRleHQgZmlsZXMuDQo+ID4+Pg0KPiA+Pj4gW3NuaXBdDQo+ID4+PiArDQo+ID4+PiArc3Rh dGljIGludCBtYW5hX3BjaV9wcm9iZV9tYWMoc3RydWN0IHJ0ZV9wY2lfZHJpdmVyICpwY2lfZHJ2 DQo+ID4+IF9fcnRlX3VudXNlZCwNCj4gPj4+ICsJCQkgICAgICBzdHJ1Y3QgcnRlX3BjaV9kZXZp Y2UgKnBjaV9kZXYsDQo+ID4+PiArCQkJICAgICAgc3RydWN0IHJ0ZV9ldGhlcl9hZGRyICptYWNf YWRkcikgew0KPiA+Pj4gKwlzdHJ1Y3QgaWJ2X2RldmljZSAqKmlidl9saXN0Ow0KPiA+Pj4gKwlp bnQgaWJ2X2lkeDsNCj4gPj4+ICsJc3RydWN0IGlidl9jb250ZXh0ICpjdHg7DQo+ID4+PiArCXN0 cnVjdCBpYnZfZGV2aWNlX2F0dHJfZXggZGV2X2F0dHI7DQo+ID4+PiArCWludCBudW1fZGV2aWNl czsNCj4gPj4+ICsJaW50IHJldCA9IDA7DQo+ID4+PiArCXVpbnQ4X3QgcG9ydDsNCj4gPj4+ICsJ c3RydWN0IG1hbmFfcHJpdiAqcHJpdiA9IE5VTEw7DQo+ID4+PiArCXN0cnVjdCBydGVfZXRoX2Rl diAqZXRoX2RldiA9IE5VTEw7DQo+ID4+PiArCWJvb2wgZm91bmRfcG9ydDsNCj4gPj4+ICsNCj4g Pj4+ICsJaWJ2X2xpc3QgPSBpYnZfZ2V0X2RldmljZV9saXN0KCZudW1fZGV2aWNlcyk7DQo+ID4+ PiArCWZvciAoaWJ2X2lkeCA9IDA7IGlidl9pZHggPCBudW1fZGV2aWNlczsgaWJ2X2lkeCsrKSB7 DQo+ID4+PiArCQlzdHJ1Y3QgaWJ2X2RldmljZSAqaWJkZXYgPSBpYnZfbGlzdFtpYnZfaWR4XTsN Cj4gPj4+ICsJCXN0cnVjdCBydGVfcGNpX2FkZHIgcGNpX2FkZHI7DQo+ID4+PiArDQo+ID4+PiAr CQlEUlZfTE9HKElORk8sICJQcm9iZSBkZXZpY2UgbmFtZSAlcyBkZXZfbmFtZSAlcw0KPiA+PiBp YmRldl9wYXRoICVzIiwNCj4gPj4+ICsJCQlpYmRldi0+bmFtZSwgaWJkZXYtPmRldl9uYW1lLCBp YmRldi0NCj4gPj4+IGliZGV2X3BhdGgpOw0KPiA+Pj4gKw0KPiA+Pj4gKwkJaWYgKG1hbmFfaWJ2 X2RldmljZV90b19wY2lfYWRkcihpYmRldiwgJnBjaV9hZGRyKSkNCj4gPj4+ICsJCQljb250aW51 ZTsNCj4gPj4+ICsNCj4gPj4+ICsJCS8qIElnbm9yZSBpZiB0aGlzIElCIGRldmljZSBpcyBub3Qg dGhpcyBQQ0kgZGV2aWNlICovDQo+ID4+PiArCQlpZiAocGNpX2Rldi0+YWRkci5kb21haW4gIT0g cGNpX2FkZHIuZG9tYWluIHx8DQo+ID4+PiArCQkgICAgcGNpX2Rldi0+YWRkci5idXMgIT0gcGNp X2FkZHIuYnVzIHx8DQo+ID4+PiArCQkgICAgcGNpX2Rldi0+YWRkci5kZXZpZCAhPSBwY2lfYWRk ci5kZXZpZCB8fA0KPiA+Pj4gKwkJICAgIHBjaV9kZXYtPmFkZHIuZnVuY3Rpb24gIT0gcGNpX2Fk ZHIuZnVuY3Rpb24pDQo+ID4+PiArCQkJY29udGludWU7DQo+ID4+PiArDQo+ID4+PiArCQljdHgg PSBpYnZfb3Blbl9kZXZpY2UoaWJkZXYpOw0KPiA+Pj4gKwkJaWYgKCFjdHgpIHsNCj4gPj4+ICsJ CQlEUlZfTE9HKEVSUiwgIkZhaWxlZCB0byBvcGVuIElCIGRldmljZSAlcyIsDQo+ID4+PiArCQkJ CWliZGV2LT5uYW1lKTsNCj4gPj4+ICsJCQljb250aW51ZTsNCj4gPj4+ICsJCX0NCj4gPj4+ICsN Cj4gPj4+ICsJCXJldCA9IGlidl9xdWVyeV9kZXZpY2VfZXgoY3R4LCBOVUxMLCAmZGV2X2F0dHIp Ow0KPiA+Pj4gKwkJRFJWX0xPRyhJTkZPLCAiZGV2X2F0dHIub3JpZ19hdHRyLnBoeXNfcG9ydF9j bnQgJXUiLA0KPiA+Pj4gKwkJCWRldl9hdHRyLm9yaWdfYXR0ci5waHlzX3BvcnRfY250KTsNCj4g Pj4+ICsJCWZvdW5kX3BvcnQgPSBmYWxzZTsNCj4gPj4+ICsNCj4gPj4+ICsJCWZvciAocG9ydCA9 IDE7IHBvcnQgPD0gZGV2X2F0dHIub3JpZ19hdHRyLnBoeXNfcG9ydF9jbnQ7DQo+ID4+PiArCQkg ICAgIHBvcnQrKykgew0KPiA+Pj4gKwkJCXN0cnVjdCBpYnZfcGFyZW50X2RvbWFpbl9pbml0X2F0 dHIgYXR0ciA9IHt9Ow0KPiA+Pj4gKwkJCXN0cnVjdCBydGVfZXRoZXJfYWRkciBhZGRyOw0KPiA+ Pj4gKwkJCWNoYXIgYWRkcmVzc1s2NF07DQo+ID4+PiArCQkJY2hhciBuYW1lW1JURV9FVEhfTkFN RV9NQVhfTEVOXTsNCj4gPj4+ICsNCj4gPj4+ICsJCQlyZXQgPSBnZXRfcG9ydF9tYWMoaWJkZXYs IHBvcnQsICZhZGRyKTsNCj4gPj4+ICsJCQlpZiAocmV0KQ0KPiA+Pj4gKwkJCQljb250aW51ZTsN Cj4gPj4+ICsNCj4gPj4+ICsJCQlpZiAobWFjX2FkZHIgJiYgIXJ0ZV9pc19zYW1lX2V0aGVyX2Fk ZHIoJmFkZHIsDQo+ID4+IG1hY19hZGRyKSkNCj4gPj4+ICsJCQkJY29udGludWU7DQo+ID4+PiAr DQo+ID4+PiArCQkJcnRlX2V0aGVyX2Zvcm1hdF9hZGRyKGFkZHJlc3MsIHNpemVvZihhZGRyZXNz KSwNCj4gPj4gJmFkZHIpOw0KPiA+Pj4gKwkJCURSVl9MT0coSU5GTywgImRldmljZSBsb2NhdGVk IHBvcnQgJXUgYWRkcmVzcw0KPiA+PiAlcyIsDQo+ID4+PiArCQkJCXBvcnQsIGFkZHJlc3MpOw0K PiA+Pj4gKwkJCWZvdW5kX3BvcnQgPSB0cnVlOw0KPiA+Pj4gKw0KPiA+Pj4gKwkJCXByaXYgPSBy dGVfem1hbGxvY19zb2NrZXQoTlVMTCwgc2l6ZW9mKCpwcml2KSwNCj4gPj4+ICsJCQkJCQkgIFJU RV9DQUNIRV9MSU5FX1NJWkUsDQo+ID4+PiArCQkJCQkJICBTT0NLRVRfSURfQU5ZKTsNCj4gPj4+ ICsJCQlpZiAoIXByaXYpIHsNCj4gPj4+ICsJCQkJcmV0ID0gLUVOT01FTTsNCj4gPj4+ICsJCQkJ Z290byBmYWlsZWQ7DQo+ID4+PiArCQkJfQ0KPiA+Pj4gKw0KPiA+Pj4gKwkJCXNucHJpbnRmKG5h bWUsIHNpemVvZihuYW1lKSwgIiVzX3BvcnQlZCIsDQo+ID4+PiArCQkJCSBwY2lfZGV2LT5kZXZp Y2UubmFtZSwgcG9ydCk7DQo+ID4+PiArDQo+ID4+PiArCQkJaWYgKHJ0ZV9lYWxfcHJvY2Vzc190 eXBlKCkgPT0NCj4gPj4gUlRFX1BST0NfU0VDT05EQVJZKSB7DQo+ID4+PiArCQkJCWludCBmZDsN Cj4gPj4+ICsNCj4gPj4+ICsJCQkJZXRoX2RldiA9DQo+ID4+IHJ0ZV9ldGhfZGV2X2F0dGFjaF9z ZWNvbmRhcnkobmFtZSk7DQo+ID4+PiArCQkJCWlmICghZXRoX2Rldikgew0KPiA+Pj4gKwkJCQkJ RFJWX0xPRyhFUlIsICJDYW4ndCBhdHRhY2ggdG8gZGV2DQo+ID4+ICVzIiwNCj4gPj4+ICsJCQkJ CQluYW1lKTsNCj4gPj4+ICsJCQkJCXJldCA9IC1FTk9NRU07DQo+ID4+PiArCQkJCQlnb3RvIGZh aWxlZDsNCj4gPj4+ICsJCQkJfQ0KPiA+Pj4gKw0KPiA+Pj4gKwkJCQlldGhfZGV2LT5kZXZpY2Ug PSAmcGNpX2Rldi0+ZGV2aWNlOw0KPiA+Pj4gKwkJCQlldGhfZGV2LT5kZXZfb3BzID0gJm1hbmFf ZGV2X3NlY19vcHM7DQo+ID4+PiArCQkJCXJldCA9IG1hbmFfcHJvY19wcml2X2luaXQoZXRoX2Rl dik7DQo+ID4+PiArCQkJCWlmIChyZXQpDQo+ID4+PiArCQkJCQlnb3RvIGZhaWxlZDsNCj4gPj4+ ICsJCQkJcHJpdi0+cHJvY2Vzc19wcml2ID0gZXRoX2Rldi0NCj4gPj4+IHByb2Nlc3NfcHJpdmF0 ZTsNCj4gPj4+ICsNCj4gPj4+ICsJCQkJLyogR2V0IHRoZSBJQiBGRCBmcm9tIHRoZSBwcmltYXJ5 IHByb2Nlc3MgKi8NCj4gPj4+ICsJCQkJZmQgPQ0KPiA+PiBtYW5hX21wX3JlcV92ZXJic19jbWRf ZmQoZXRoX2Rldik7DQo+ID4+PiArCQkJCWlmIChmZCA8IDApIHsNCj4gPj4+ICsJCQkJCURSVl9M T0coRVJSLCAiRmFpbGVkIHRvIGdldCBGRCAlZCIsDQo+ID4+IGZkKTsNCj4gPj4+ICsJCQkJCXJl dCA9IC1FTk9ERVY7DQo+ID4+PiArCQkJCQlnb3RvIGZhaWxlZDsNCj4gPj4+ICsJCQkJfQ0KPiA+ Pj4gKw0KPiA+Pj4gKwkJCQlyZXQgPQ0KPiA+PiBtYW5hX21hcF9kb29yYmVsbF9zZWNvbmRhcnko ZXRoX2RldiwgZmQpOw0KPiA+Pj4gKwkJCQlpZiAocmV0KSB7DQo+ID4+PiArCQkJCQlEUlZfTE9H KEVSUiwgIkZhaWxlZCBzZWNvbmRhcnkNCj4gPj4gbWFwICVkIiwNCj4gPj4+ICsJCQkJCQlmZCk7 DQo+ID4+PiArCQkJCQlnb3RvIGZhaWxlZDsNCj4gPj4+ICsJCQkJfQ0KPiA+Pj4gKw0KPiA+Pj4g KwkJCQkvKiBmZCBpcyBubyBub3QgdXNlZCBhZnRlciBtYXBwaW5nIGRvb3JiZWxsICovDQo+ID4+ PiArCQkJCWNsb3NlKGZkKTsNCj4gPj4+ICsNCj4gPj4+ICsJCQkJcnRlX3NwaW5sb2NrX2xvY2so Jm1hbmFfc2hhcmVkX2RhdGEtDQo+ID4+PiBsb2NrKTsNCj4gPj4+ICsJCQkJbWFuYV9zaGFyZWRf ZGF0YS0+c2Vjb25kYXJ5X2NudCsrOw0KPiA+Pj4gKwkJCQltYW5hX2xvY2FsX2RhdGEuc2Vjb25k YXJ5X2NudCsrOw0KPiA+Pj4gKwkJCQlydGVfc3BpbmxvY2tfdW5sb2NrKCZtYW5hX3NoYXJlZF9k YXRhLQ0KPiA+Pj4gbG9jayk7DQo+ID4+PiArDQo+ID4+PiArCQkJCXJ0ZV9ldGhfY29weV9wY2lf aW5mbyhldGhfZGV2LCBwY2lfZGV2KTsNCj4gPj4+ICsJCQkJcnRlX2V0aF9kZXZfcHJvYmluZ19m aW5pc2goZXRoX2Rldik7DQo+ID4+PiArDQo+ID4+PiArCQkJCS8qIEltcG9zc2libGUgdG8gaGF2 ZSBtb3JlIHRoYW4gb25lIHBvcnQNCj4gPj4+ICsJCQkJICogbWF0Y2hpbmcgYSBNQUMgYWRkcmVz cw0KPiA+Pj4gKwkJCQkgKi8NCj4gPj4+ICsJCQkJY29udGludWU7DQo+ID4+PiArCQkJfQ0KPiA+ Pj4gKw0KPiA+Pj4gKwkJCWV0aF9kZXYgPSBydGVfZXRoX2Rldl9hbGxvY2F0ZShuYW1lKTsNCj4g Pj4+ICsJCQlpZiAoIWV0aF9kZXYpIHsNCj4gPj4+ICsJCQkJcmV0ID0gLUVOT01FTTsNCj4gPj4+ ICsJCQkJZ290byBmYWlsZWQ7DQo+ID4+PiArCQkJfQ0KPiA+Pj4gKw0KPiA+Pj4gKwkJCWV0aF9k ZXYtPmRhdGEtPm1hY19hZGRycyA9DQo+ID4+PiArCQkJCXJ0ZV9jYWxsb2MoIm1hbmFfbWFjIiwg MSwNCj4gPj4+ICsJCQkJCSAgIHNpemVvZihzdHJ1Y3QgcnRlX2V0aGVyX2FkZHIpLCAwKTsNCj4g Pj4+ICsJCQlpZiAoIWV0aF9kZXYtPmRhdGEtPm1hY19hZGRycykgew0KPiA+Pj4gKwkJCQlyZXQg PSAtRU5PTUVNOw0KPiA+Pj4gKwkJCQlnb3RvIGZhaWxlZDsNCj4gPj4+ICsJCQl9DQo+ID4+PiAr DQo+ID4+PiArCQkJcnRlX2V0aGVyX2FkZHJfY29weSgmYWRkciwgZXRoX2Rldi0+ZGF0YS0NCj4g Pj4+IG1hY19hZGRycyk7DQo+ID4+PiArDQo+ID4+PiArCQkJcHJpdi0+aWJfcGQgPSBpYnZfYWxs b2NfcGQoY3R4KTsNCj4gPj4+ICsJCQlpZiAoIXByaXYtPmliX3BkKSB7DQo+ID4+PiArCQkJCURS Vl9MT0coRVJSLCAiaWJ2X2FsbG9jX3BkIGZhaWxlZCBwb3J0ICVkIiwNCj4gPj4gcG9ydCk7DQo+ ID4+PiArCQkJCXJldCA9IC1FTk9NRU07DQo+ID4+PiArCQkJCWdvdG8gZmFpbGVkOw0KPiA+Pj4g KwkJCX0NCj4gPj4+ICsNCj4gPj4+ICsJCQkvKiBDcmVhdGUgYSBwYXJlbnQgZG9tYWluIHdpdGgg dGhlIHBvcnQgbnVtYmVyICovDQo+ID4+PiArCQkJYXR0ci5wZCA9IHByaXYtPmliX3BkOw0KPiA+ Pj4gKwkJCWF0dHIuY29tcF9tYXNrID0NCj4gPj4gSUJWX1BBUkVOVF9ET01BSU5fSU5JVF9BVFRS X1BEX0NPTlRFWFQ7DQo+ID4+PiArCQkJYXR0ci5wZF9jb250ZXh0ID0gKHZvaWQgKikodWludDY0 X3QpcG9ydDsNCj4gPj4+ICsJCQlwcml2LT5pYl9wYXJlbnRfcGQgPSBpYnZfYWxsb2NfcGFyZW50 X2RvbWFpbihjdHgsDQo+ID4+ICZhdHRyKTsNCj4gPj4+ICsJCQlpZiAoIXByaXYtPmliX3BhcmVu dF9wZCkgew0KPiA+Pj4gKwkJCQlEUlZfTE9HKEVSUiwNCj4gPj4+ICsJCQkJCSJpYnZfYWxsb2Nf cGFyZW50X2RvbWFpbiBmYWlsZWQgcG9ydA0KPiA+PiAlZCIsDQo+ID4+PiArCQkJCQlwb3J0KTsN Cj4gPj4+ICsJCQkJcmV0ID0gLUVOT01FTTsNCj4gPj4+ICsJCQkJZ290byBmYWlsZWQ7DQo+ID4+ PiArCQkJfQ0KPiA+Pj4gKw0KPiA+Pj4gKwkJCXByaXYtPmliX2N0eCA9IGN0eDsNCj4gPj4+ICsJ CQlwcml2LT5wb3J0X2lkID0gZXRoX2Rldi0+ZGF0YS0+cG9ydF9pZDsNCj4gPj4+ICsJCQlwcml2 LT5kZXZfcG9ydCA9IHBvcnQ7DQo+ID4+PiArCQkJZXRoX2Rldi0+ZGF0YS0+ZGV2X3ByaXZhdGUg PSBwcml2Ow0KPiA+Pj4gKwkJCXByaXYtPmRldl9kYXRhID0gZXRoX2Rldi0+ZGF0YTsNCj4gPj4+ ICsNCj4gPj4+ICsJCQlwcml2LT5tYXhfcnhfcXVldWVzID0gZGV2X2F0dHIub3JpZ19hdHRyLm1h eF9xcDsNCj4gPj4+ICsJCQlwcml2LT5tYXhfdHhfcXVldWVzID0gZGV2X2F0dHIub3JpZ19hdHRy Lm1heF9xcDsNCj4gPj4+ICsNCj4gPj4+ICsJCQlwcml2LT5tYXhfcnhfZGVzYyA9DQo+ID4+PiAr CQkJCVJURV9NSU4oZGV2X2F0dHIub3JpZ19hdHRyLm1heF9xcF93ciwNCj4gPj4+ICsJCQkJCWRl dl9hdHRyLm9yaWdfYXR0ci5tYXhfY3FlKTsNCj4gPj4+ICsJCQlwcml2LT5tYXhfdHhfZGVzYyA9 DQo+ID4+PiArCQkJCVJURV9NSU4oZGV2X2F0dHIub3JpZ19hdHRyLm1heF9xcF93ciwNCj4gPj4+ ICsJCQkJCWRldl9hdHRyLm9yaWdfYXR0ci5tYXhfY3FlKTsNCj4gPj4+ICsNCj4gPj4+ICsJCQlw cml2LT5tYXhfc2VuZF9zZ2UgPSBkZXZfYXR0ci5vcmlnX2F0dHIubWF4X3NnZTsNCj4gPj4+ICsJ CQlwcml2LT5tYXhfcmVjdl9zZ2UgPSBkZXZfYXR0ci5vcmlnX2F0dHIubWF4X3NnZTsNCj4gPj4+ ICsNCj4gPj4+ICsJCQlwcml2LT5tYXhfbXIgPSBkZXZfYXR0ci5vcmlnX2F0dHIubWF4X21yOw0K PiA+Pj4gKwkJCXByaXYtPm1heF9tcl9zaXplID0NCj4gPj4gZGV2X2F0dHIub3JpZ19hdHRyLm1h eF9tcl9zaXplOw0KPiA+Pj4gKw0KPiA+Pj4gKwkJCURSVl9MT0coSU5GTywgImRldiAlcyBtYXgg cXVldWVzICVkIGRlc2MgJWQNCj4gPj4gc2dlICVkIiwNCj4gPj4+ICsJCQkJbmFtZSwgcHJpdi0+ bWF4X3J4X3F1ZXVlcywgcHJpdi0NCj4gPj4+IG1heF9yeF9kZXNjLA0KPiA+Pj4gKwkJCQlwcml2 LT5tYXhfc2VuZF9zZ2UpOw0KPiA+Pj4gKw0KPiA+Pj4gKwkJCXJ0ZV9zcGlubG9ja19sb2NrKCZt YW5hX3NoYXJlZF9kYXRhLT5sb2NrKTsNCj4gPj4+ICsJCQltYW5hX3NoYXJlZF9kYXRhLT5wcmlt YXJ5X2NudCsrOw0KPiA+Pj4gKwkJCXJ0ZV9zcGlubG9ja191bmxvY2soJm1hbmFfc2hhcmVkX2Rh dGEtPmxvY2spOw0KPiA+Pj4gKw0KPiA+Pj4gKwkJCWV0aF9kZXYtPmRhdGEtPmRldl9mbGFncyB8 PQ0KPiA+PiBSVEVfRVRIX0RFVl9JTlRSX1JNVjsNCj4gPj4+ICsNCj4gPj4+ICsJCQlldGhfZGV2 LT5kZXZpY2UgPSAmcGNpX2Rldi0+ZGV2aWNlOw0KPiA+Pj4gKwkJCWV0aF9kZXYtPmRhdGEtPmRl dl9mbGFncyB8PQ0KPiA+Pj4gKwkJCQlSVEVfRVRIX0RFVl9BVVRPRklMTF9RVUVVRV9YU1RBVFM7 DQo+ID4+PiArDQo+ID4+IFBsZWFzZSBkbyBub3QgdXNlIHRoZSB0ZW1wb3JhcnkgbWFjcm8uIFBs ZWFzZSByZXZpZXcgdGhpcyBwYXRjaDoNCj4gPj4NCj4gPj4gZjMwZTY5YjQxZjk0ICgiZXRoZGV2 OiBhZGQgZGV2aWNlIGZsYWcgdG8gYnlwYXNzIGF1dG8tZmlsbGVkIHF1ZXVlDQo+ID4+IHhzdGF0 cyIpDQo+ID4+DQo+ID4+IFRoaXMgcGF0Y2ggcmVxdWlyZXMgdGhhdCBwZXIgcXVldWUgc3RhdGlz dGljcyBhcmUgZmlsbGVkIGluDQo+ID4+IC54c3RhdHNfZ2V0KCkgYnkgUE1ELg0KPiA+IFRoYW5r cyBmb3IgcG9pbnRpbmcgdGhpcyBvdXQuDQo+ID4NCj4gPiBJdCBzZWVtcyBzb21lIFBNRHMgYXJl IHN0aWxsIGRlcGVuZGluZyBvbiB0aGlzIGZsYWcgZm9yIHhzdGF0cy4NCj4gPg0KPiA+IE1BTkEg ZG9lc24ndCBpbXBsZW1lbnQgeHN0YXRzX2dldCgpIGN1cnJlbnRseSwgdGhpcyBmbGFnIGlzIHVz ZWZ1bC4gSXMgaXQNCj4gb2theSB0byBrZWVwIHVzaW5nIHRoaXMgZmxhZyBiZWZvcmUgaXQncyBm aW5hbGx5IHRoZSB0aW1lIHRvIHJlbW92ZSBpdCBmcm9tIGFsbA0KPiBQTURzLCBvciB3aGVuIE1B TkEgaW1wbGVtZW50cyB4c3RhdHM/DQo+IFllcywgeW91ciB4c3RhdHMgZG9lc24ndCBpbXBsZW1l bnQgbm93LiBQZXIgcXVldWUgc3RhdHMgc2hvdWxkIGJlIGZpbGxlZCBpbg0KPiB4c3RhdHMgQVBJ LCBhbmQgdGhlIHN0YXRzIEFQSSBjYW5ub3Qgc2VlIHBlciBxdWV1ZSBzdGF0cywgc28gc3RhdHMg QVBJIGluIGRyaXZlcg0KPiBzaG91bGRuJ3QgZmlsbCBpdChzdWdnZXN0IHRoYXQgZGVsZXRlIGl0 IGZyb20gcGF0Y2ggMTcvMTgpLg0KPiANCj4gSSBndWVzcyB0aGlzIGZsYWcgY2FuIGJlIHJlbW92 ZWQgaWYgUE1EIGRvZXMgbm90IHN1cHBvcnQgeHN0YXRzLg0KPiA+DQo+ID4NCg0KSSBkb24ndCB1 bmRlcnN0YW5kIHlvdXIgc3VnZ2VzdGlvbi4gQW4gYXBwbGljYXRpb24gY2FuIGNhbGwgcnRlX2V0 aF9zdGF0c19nZXQoKSB0byBnZXQgcG9ydCBzdGF0cywgYW5kIHRoaXMgd2lsbCBjYWxsIGludG8g c3RhdHNfZ2V0KCkgaW4gdGhlIGRyaXZlciwgYXMgaW1wbGVtZW50ZWQgaW4gcGF0Y2ggMTcvMTgu DQoNCldoZW4gZmxhZyBSVEVfRVRIX0RFVl9BVVRPRklMTF9RVUVVRV9YU1RBVFMgIGlzIHNldCwg YW4gYXBwbGljYXRpb24gY2FuIGFsc28gdXNlIHJ0ZV9ldGhfeHN0YXRzX2dldCgpIHRvIGdldCBw b3J0IHN0YXRzIGV2ZW4gdGhlIGRyaXZlciBkb2Vzbid0IGltcGxlbWVudCB4c3RhdHNfZ2V0KCku DQo=