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 D9AC341D5F; Fri, 24 Feb 2023 10:45:54 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id CBE9E40DF6; Fri, 24 Feb 2023 10:45:54 +0100 (CET) Received: from EUR01-HE1-obe.outbound.protection.outlook.com (mail-he1eur01on2077.outbound.protection.outlook.com [40.107.13.77]) by mails.dpdk.org (Postfix) with ESMTP id 0656C40DF6 for ; Fri, 24 Feb 2023 10:45:54 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com; s=selector2-armh-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=sGRotfREm7JMnj7zOUJPOUKhEXgY5XsUtKga/KHe6Mc=; b=U22EojQfXvobblHxsMCPsSoPMvjQ4utP3gHkbcc7//+Dq1d6WAPkdV4R8poLSpA1Ey3o1ZXBkQgzAEbDRI7nHRYTD1qXd5GziMKuYKZ7vK+9aoNViSJfu792k3OlMp3rPfgyqGJLw4ZIzbxRuQgLkWiKfGABAawozv5kqYbtXUU= Received: from DB6P192CA0019.EURP192.PROD.OUTLOOK.COM (2603:10a6:4:b8::29) by PR3PR08MB5819.eurprd08.prod.outlook.com (2603:10a6:102:92::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6134.24; Fri, 24 Feb 2023 09:45:49 +0000 Received: from DBAEUR03FT008.eop-EUR03.prod.protection.outlook.com (2603:10a6:4:b8:cafe::b8) by DB6P192CA0019.outlook.office365.com (2603:10a6:4:b8::29) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6111.17 via Frontend Transport; Fri, 24 Feb 2023 09:45:49 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123) smtp.mailfrom=arm.com; dkim=pass (signature was verified) header.d=armh.onmicrosoft.com;dmarc=pass action=none header.from=arm.com; Received-SPF: Pass (protection.outlook.com: domain of arm.com designates 63.35.35.123 as permitted sender) receiver=protection.outlook.com; client-ip=63.35.35.123; helo=64aa7808-outbound-1.mta.getcheckrecipient.com; pr=C Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by DBAEUR03FT008.mail.protection.outlook.com (100.127.142.107) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6134.24 via Frontend Transport; Fri, 24 Feb 2023 09:45:49 +0000 Received: ("Tessian outbound 0d7b2ab0f13d:v132"); Fri, 24 Feb 2023 09:45:49 +0000 X-CR-MTA-TID: 64aa7808 Received: from dc2cce8c0b66.1 by 64aa7808-outbound-1.mta.getcheckrecipient.com id B18FF40C-2CD4-49B7-8FE4-9A75BC78AB32.1; Fri, 24 Feb 2023 09:45:42 +0000 Received: from EUR04-VI1-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id dc2cce8c0b66.1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Fri, 24 Feb 2023 09:45:42 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=VkH0lWNqmeCJg+n/AssatNVVTRR3BnyQSe2t8mR3ZTa4m4AV+BkCFkr3/cTeDD/efCeCjikRE8NXRJPCUfv+7O5HasIjB4NGkIDWWnjTGAs8z0bhJAE+BhjrUTbDt7MRVj3UyP4F0JEZ54Ygo1lpf98FViwHpPnPSV4XRsJUHR2OKoTV5b7xlJz6Sl585t8yVWi98+HKLY9k6a/4NopXw7jlWPtPqccbxbqmiOfz/4neP+7zTrjt3iO4AjtLdwFm6GWXfwBlGL3+YCeEIirSMBHoCk/3wAxYJReYqWOyzgsmmQg0J6xvkWOzZ6wFpVIMVTVwc4lUrZ8UNjUKazh/gw== 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=sGRotfREm7JMnj7zOUJPOUKhEXgY5XsUtKga/KHe6Mc=; b=VjlYgLydATWslcCGcBx5VeoamJDCl1T9fA9o3iciK2fpJOBzWOlWwHBGjnueEOTEM20djVywcU4w5qzO1/tMW6+khlek3hHRAsCWvmH6N6+RjK/RWBQK3AprWk3bPg5JpL6D2hjGcb5W9bVO1CBE/lyRHLPK4HRsVascninoVhUh4eHijjuw8BqGeZX9RSwgLc8izjB7o3Ykf0owdurne6pcpphykC6zzzKpEu2NA/cwelyToWBi1P0ppVAGZbn64GeZTgL65yz7734prVsciLysXGYo9rgWnGTtYUOLcC1d45nyjxIA6IeL1oBtBkU5L3oaU3pz6ljpNx/VsK4YTQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass header.d=arm.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com; s=selector2-armh-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=sGRotfREm7JMnj7zOUJPOUKhEXgY5XsUtKga/KHe6Mc=; b=U22EojQfXvobblHxsMCPsSoPMvjQ4utP3gHkbcc7//+Dq1d6WAPkdV4R8poLSpA1Ey3o1ZXBkQgzAEbDRI7nHRYTD1qXd5GziMKuYKZ7vK+9aoNViSJfu792k3OlMp3rPfgyqGJLw4ZIzbxRuQgLkWiKfGABAawozv5kqYbtXUU= Received: from AS8PR08MB7718.eurprd08.prod.outlook.com (2603:10a6:20b:50a::22) by AS2PR08MB8503.eurprd08.prod.outlook.com (2603:10a6:20b:55e::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6134.24; Fri, 24 Feb 2023 09:45:35 +0000 Received: from AS8PR08MB7718.eurprd08.prod.outlook.com ([fe80::ea79:a12:9734:b23c]) by AS8PR08MB7718.eurprd08.prod.outlook.com ([fe80::ea79:a12:9734:b23c%6]) with mapi id 15.20.6134.024; Fri, 24 Feb 2023 09:45:35 +0000 From: Feifei Wang To: Konstantin Ananyev , "thomas@monjalon.net" , Ferruh Yigit , Andrew Rybchenko CC: "dev@dpdk.org" , nd , Honnappa Nagarahalli , Ruifeng Wang , nd Subject: =?utf-8?B?5Zue5aSNOiBbUEFUQ0ggdjMgMS8zXSBldGhkZXY6IGVuYWJsZSBkaXJlY3Qg?= =?utf-8?Q?rearm_with_separate_API?= Thread-Topic: [PATCH v3 1/3] ethdev: enable direct rearm with separate API Thread-Index: AQHZIA6Be7Y3FQzXL0aZWktNoIZxPa675n6AgCI1fnA= Date: Fri, 24 Feb 2023 09:45:35 +0000 Message-ID: References: <20220420081650.2043183-1-feifei.wang2@arm.com> <20230104073043.1120168-1-feifei.wang2@arm.com> <20230104073043.1120168-2-feifei.wang2@arm.com> In-Reply-To: Accept-Language: zh-CN, en-US Content-Language: zh-CN X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ts-tracking-id: FD815CB5EDD6904D920D1AACA572C412.0 x-checkrecipientchecked: true Authentication-Results-Original: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=arm.com; x-ms-traffictypediagnostic: AS8PR08MB7718:EE_|AS2PR08MB8503:EE_|DBAEUR03FT008:EE_|PR3PR08MB5819:EE_ X-MS-Office365-Filtering-Correlation-Id: 8edb83ae-b768-4144-73a6-08db164be923 x-ld-processed: f34e5979-57d9-4aaa-ad4d-b122a662184d,ExtAddr x-checkrecipientrouted: true nodisclaimer: true X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam-Untrusted: BCL:0; X-Microsoft-Antispam-Message-Info-Original: 7rNvofWnqATzq8SAbM9se4+nEgAEowUiyXv+N8uH0qqNKggfPPMg5TRDXCqfMLzJ1d9BU7FVSrRHetQoC4kHUi3/Uws/gmOrUX/yAY4JoIRV2mal1lsDGjQwo9jOYOrQcsH70gQhvBt/bA+1jSd4H4/vhwUWBQXxolgqHSr6+ogOd0/0iA3Y4ufYgJxelcAL12kkTlqNMT1wX31J19AmFmKO+o7X8HqoygMFf7xPbv7rDAPoNBFeCvI9+848xPbyioA7AiQc3b2ZdBCAzDTy39YO+HKKGy1xbPMBQC0nhT+lefU2CcMqHEXWOyr9mVE7jUjJMOmOtO5vsL03BsXz81urJprEOroElz+kaqSmiWdJavLE8z50FFiTv3fF3Z5vLLYbRok1hi1zA1hEZwdZoENRSyi+fcJQuAgqTc49gcfnPCwWDRdNbC81roD6sgSVumltEvS+Oyc9ceLskNLBPX8ua4fJKC+s2zx7wQ+3+TEHOT2sAzbRJFCQQS74xgN0k8Q/8PzXcTb9wLkTGoCaEk47BuR2TNJOb7WOb+JoqHl/BebFhhEa9U1vl61kUTq+gStYgT9stSt2mW1vXFrkFGstXsohn5xTb17yd4jZwKFW0JFT7SSKstsoGQqP70PbXk6cZpEMOZe8OhpkCPnxEVpJTk7Ly+CGOJzqDCXDgmYBSKKjaTR7Uw2jPioLnWPtLYBdM4twGkOuoj6zn8bcbg== X-Forefront-Antispam-Report-Untrusted: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:AS8PR08MB7718.eurprd08.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230025)(4636009)(396003)(39860400002)(376002)(366004)(136003)(346002)(451199018)(224303003)(54906003)(66446008)(66476007)(110136005)(66556008)(316002)(66946007)(64756008)(4326008)(76116006)(122000001)(38100700002)(83380400001)(478600001)(33656002)(2906002)(7696005)(71200400001)(55016003)(86362001)(38070700005)(6506007)(9686003)(186003)(26005)(5660300002)(41300700001)(8936002)(52536014)(30864003); DIR:OUT; SFP:1101; Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS2PR08MB8503 Original-Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=arm.com; X-EOPAttributedMessage: 0 X-MS-Exchange-Transport-CrossTenantHeadersStripped: DBAEUR03FT008.eop-EUR03.prod.protection.outlook.com X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id-Prvs: 48cde52a-0e2d-4f5e-5285-08db164be0c3 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 0uFpVRJZpfor1hthqyZRBFzQ1JpnNLuK8bmdJlnxe17CRwNzKTMKBWp3uKdpHfVHyop75N/JlEz+/CkzHjAEEZ+Tw4XGycb/nxJAxTgFKF72tgujFKatWWlVOYevmpbX54ytdbojzIXJAg+X77s1v86JzZkNdVw5PtdoQq/y3gRgpsI0iX2fGdqiyDSqaUgwMKXBT6N2CoPpTN2R5q1cOrnmZ/lv8z0QzdTMOgVNQRCPjhrJxOxnaS70KPybOTrIcZjzqO0IZ5TyjRQ8YR1V/89I/3LajVkHRHF+dpzgfGxSbuGoyC9A8rtXkVedaPRMiDvxfnrj+t6X+Vf7+vcCkq3sNqzFFbvad5VADtoJxgDRw5UEFAeMSeUrjycCEGt43pRdbMAMxnDvHdPKN3mEUn5UmHNrKal1FMlz/FLGLkomeJ64r3MVlimsnx0U8OeQQVWEKcYJ4Iw/zTdeBd6BE/ow+F50QYOA8I6bK8QGh0P7mlDBtSMZYN8m+yn5JRdleDZzooIUA4IyugAdfH2wqLXeNx0beBG5I7svAcEiFfvYEF0EpyxYW3oPHSHiIQoQJ6VM1aJtLX7ddNaRXghV1zaWtg0pfB3IuS6ay/KGYmmfhzCyb3yfm4ftXXS4YGIZj/varoloxdj3ST0g2Wu3bWlLsJeawfY+eH8KxAjBnT0z6fAbpe7kfoMAywaQXR2pTuZV0+/PhW8k3bp+3V9UrSLwxLXYrcH1L+yPuLrMsQ0= X-Forefront-Antispam-Report: CIP:63.35.35.123; CTRY:IE; LANG:en; SCL:1; SRV:; IPV:CAL; SFV:NSPM; H:64aa7808-outbound-1.mta.getcheckrecipient.com; PTR:ec2-63-35-35-123.eu-west-1.compute.amazonaws.com; CAT:NONE; SFS:(13230025)(4636009)(346002)(136003)(39860400002)(376002)(396003)(451199018)(36840700001)(40470700004)(46966006)(40460700003)(316002)(70586007)(70206006)(54906003)(110136005)(83380400001)(52536014)(8936002)(5660300002)(41300700001)(6506007)(4326008)(9686003)(186003)(47076005)(26005)(478600001)(7696005)(336012)(356005)(55016003)(40480700001)(33656002)(224303003)(86362001)(82310400005)(2906002)(82740400003)(36860700001)(30864003)(81166007)(23180200003); DIR:OUT; SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Feb 2023 09:45:49.2673 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 8edb83ae-b768-4144-73a6-08db164be923 X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d; Ip=[63.35.35.123]; Helo=[64aa7808-outbound-1.mta.getcheckrecipient.com] X-MS-Exchange-CrossTenant-AuthSource: DBAEUR03FT008.eop-EUR03.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: PR3PR08MB5819 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 SGksIEtvbnN0YW50aW4NCg0KVGhhbmtzIGZvciB5b3VyIHJldmlld2luZyBhbmQgc29ycnkgZm9y IG15IGRlbGF5ZWQgcmVzcG9uc2UuDQpGb3IgeW91ciBjb21tZW50cywgd2UgcHV0IGZvcndhcmQg c2V2ZXJhbCBpbXByb3ZlbWVudCBwbGFucyBiZWxvdy4NCg0KQmVzdCBSZWdhcmRzDQpGZWlmZWkN Cg0KPiAtLS0tLemCruS7tuWOn+S7ti0tLS0tDQo+IOWPkeS7tuS6ujogS29uc3RhbnRpbiBBbmFu eWV2IDxrb25zdGFudGluLnYuYW5hbnlldkB5YW5kZXgucnU+DQo+IOWPkemAgeaXtumXtDogVGh1 cnNkYXksIEZlYnJ1YXJ5IDIsIDIwMjMgMTA6MzMgUE0NCj4g5pS25Lu25Lq6OiBGZWlmZWkgV2Fu ZyA8RmVpZmVpLldhbmcyQGFybS5jb20+OyB0aG9tYXNAbW9uamFsb24ubmV0Ow0KPiBGZXJydWgg WWlnaXQgPGZlcnJ1aC55aWdpdEBhbWQuY29tPjsgQW5kcmV3IFJ5YmNoZW5rbw0KPiA8YW5kcmV3 LnJ5YmNoZW5rb0Bva3RldGxhYnMucnU+DQo+IOaKhOmAgTogZGV2QGRwZGsub3JnOyBuZCA8bmRA YXJtLmNvbT47IEhvbm5hcHBhIE5hZ2FyYWhhbGxpDQo+IDxIb25uYXBwYS5OYWdhcmFoYWxsaUBh cm0uY29tPjsgUnVpZmVuZyBXYW5nDQo+IDxSdWlmZW5nLldhbmdAYXJtLmNvbT4NCj4g5Li76aKY OiBSZTogW1BBVENIIHYzIDEvM10gZXRoZGV2OiBlbmFibGUgZGlyZWN0IHJlYXJtIHdpdGggc2Vw YXJhdGUgQVBJDQo+IA0KPiBIaSBGZWlmZWksDQo+IA0KPiA+IEFkZCAndHhfZmlsbF9zd19yaW5n JyBhbmQgJ3J4X2ZsdXNoX2Rlc2NyaXB0b3InIEFQSSBpbnRvIGRpcmVjdCByZWFybQ0KPiA+IG1v ZGUgZm9yIHNlcGFyYXRlIFJ4IGFuZCBUeCBPcGVyYXRpb24uIEFuZCB0aGlzIGNhbiBzdXBwb3J0 IGRpZmZlcmVudA0KPiA+IG11bHRpcGxlIHNvdXJjZXMgaW4gZGlyZWN0IHJlYXJtIG1vZGUuIEZv ciBleGFtcGxlcywgUnggZHJpdmVyIGlzDQo+ID4gaXhnYmUsIGFuZCBUeCBkcml2ZXIgaXMgaTQw ZS4NCj4gDQo+IA0KPiBUaGFua3MgZm9yIHlvdXIgZWZmb3J0IGFuZCB0aGFua3MgZm9yIHRha2lu ZyBjb21tZW50cyBwcm92aWRlZCBpbnRvDQo+IGNvbnNpZGVyYXRpb24uDQo+IFRoYXQgYXBwcm9h Y2ggbG9va3MgbXVjaCBiZXR0ZXIgdGhlbiBwcmV2aW91cyBvbmVzLg0KPiBGZXcgbml0cyBiZWxv dy4NCj4gS29uc3RhbnRpbg0KPiANCj4gPiBTdWdnZXN0ZWQtYnk6IEhvbm5hcHBhIE5hZ2FyYWhh bGxpIDxob25uYXBwYS5uYWdhcmFoYWxsaUBhcm0uY29tPg0KPiA+IFN1Z2dlc3RlZC1ieTogUnVp ZmVuZyBXYW5nIDxydWlmZW5nLndhbmdAYXJtLmNvbT4NCj4gPiBTaWduZWQtb2ZmLWJ5OiBGZWlm ZWkgV2FuZyA8ZmVpZmVpLndhbmcyQGFybS5jb20+DQo+ID4gUmV2aWV3ZWQtYnk6IFJ1aWZlbmcg V2FuZyA8cnVpZmVuZy53YW5nQGFybS5jb20+DQo+ID4gUmV2aWV3ZWQtYnk6IEhvbm5hcHBhIE5h Z2FyYWhhbGxpIDxob25uYXBwYS5uYWdhcmFoYWxsaUBhcm0uY29tPg0KPiA+IC0tLQ0KPiA+ICAg bGliL2V0aGRldi9ldGhkZXZfZHJpdmVyLmggICB8ICAxMCArKw0KPiA+ICAgbGliL2V0aGRldi9l dGhkZXZfcHJpdmF0ZS5jICB8ICAgMiArDQo+ID4gICBsaWIvZXRoZGV2L3J0ZV9ldGhkZXYuYyAg ICAgIHwgIDUyICsrKysrKysrKysrDQo+ID4gICBsaWIvZXRoZGV2L3J0ZV9ldGhkZXYuaCAgICAg IHwgMTc0DQo+ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrDQo+ID4gICBsaWIv ZXRoZGV2L3J0ZV9ldGhkZXZfY29yZS5oIHwgIDExICsrKw0KPiA+ICAgbGliL2V0aGRldi92ZXJz aW9uLm1hcCAgICAgICB8ICAgNiArKw0KPiA+ICAgNiBmaWxlcyBjaGFuZ2VkLCAyNTUgaW5zZXJ0 aW9ucygrKQ0KPiA+DQo+ID4gZGlmZiAtLWdpdCBhL2xpYi9ldGhkZXYvZXRoZGV2X2RyaXZlci5o IGIvbGliL2V0aGRldi9ldGhkZXZfZHJpdmVyLmgNCj4gPiBpbmRleCA2YTU1MGNmYzgzLi5iYzUz OWVjODYyIDEwMDY0NA0KPiA+IC0tLSBhL2xpYi9ldGhkZXYvZXRoZGV2X2RyaXZlci5oDQo+ID4g KysrIGIvbGliL2V0aGRldi9ldGhkZXZfZHJpdmVyLmgNCj4gPiBAQCAtNTksNiArNTksMTAgQEAg c3RydWN0IHJ0ZV9ldGhfZGV2IHsNCj4gPiAgIAlldGhfcnhfZGVzY3JpcHRvcl9zdGF0dXNfdCBy eF9kZXNjcmlwdG9yX3N0YXR1czsNCj4gPiAgIAkvKiogQ2hlY2sgdGhlIHN0YXR1cyBvZiBhIFR4 IGRlc2NyaXB0b3IgKi8NCj4gPiAgIAlldGhfdHhfZGVzY3JpcHRvcl9zdGF0dXNfdCB0eF9kZXNj cmlwdG9yX3N0YXR1czsNCj4gPiArCS8qKiBGaWxsIFJ4IHN3LXJpbmcgd2l0aCBUeCBidWZmZXJz IGluIGRpcmVjdCByZWFybSBtb2RlICovDQo+ID4gKwlldGhfdHhfZmlsbF9zd19yaW5nX3QgdHhf ZmlsbF9zd19yaW5nOw0KPiA+ICsJLyoqIEZsdXNoIFJ4IGRlc2NyaXB0b3IgaW4gZGlyZWN0IHJl YXJtIG1vZGUgKi8NCj4gPiArCWV0aF9yeF9mbHVzaF9kZXNjcmlwdG9yX3QgcnhfZmx1c2hfZGVz Y3JpcHRvcjsNCj4gPg0KPiA+ICAgCS8qKg0KPiA+ICAgCSAqIERldmljZSBkYXRhIHRoYXQgaXMg c2hhcmVkIGJldHdlZW4gcHJpbWFyeSBhbmQgc2Vjb25kYXJ5DQo+ID4gcHJvY2Vzc2VzIEBAIC01 MDQsNiArNTA4LDEwIEBAIHR5cGVkZWYgdm9pZA0KPiAoKmV0aF9yeHFfaW5mb19nZXRfdCkoc3Ry dWN0IHJ0ZV9ldGhfZGV2ICpkZXYsDQo+ID4gICB0eXBlZGVmIHZvaWQgKCpldGhfdHhxX2luZm9f Z2V0X3QpKHN0cnVjdCBydGVfZXRoX2RldiAqZGV2LA0KPiA+ICAgCXVpbnQxNl90IHR4X3F1ZXVl X2lkLCBzdHJ1Y3QgcnRlX2V0aF90eHFfaW5mbyAqcWluZm8pOw0KPiA+DQo+ID4gKy8qKjwgQGlu dGVybmFsIEdldCByZWFybSBkYXRhIGZvciBhIHJlY2VpdmUgcXVldWUgb2YgYW4gRXRoZXJuZXQN Cj4gPiArZGV2aWNlLiAqLyB0eXBlZGVmIHZvaWQgKCpldGhfcnhxX3JlYXJtX2RhdGFfZ2V0X3Qp KHN0cnVjdCBydGVfZXRoX2Rldg0KPiAqZGV2LA0KPiA+ICsJdWludDE2X3QgdHhfcXVldWVfaWQs IHN0cnVjdCBydGVfZXRoX3J4cV9yZWFybV9kYXRhDQo+ID4gKypyeHFfcmVhcm1fZGF0YSk7DQo+ ID4gKw0KPiA+ICAgdHlwZWRlZiBpbnQgKCpldGhfYnVyc3RfbW9kZV9nZXRfdCkoc3RydWN0IHJ0 ZV9ldGhfZGV2ICpkZXYsDQo+ID4gICAJdWludDE2X3QgcXVldWVfaWQsIHN0cnVjdCBydGVfZXRo X2J1cnN0X21vZGUgKm1vZGUpOw0KPiA+DQo+ID4gQEAgLTEyMTUsNiArMTIyMyw4IEBAIHN0cnVj dCBldGhfZGV2X29wcyB7DQo+ID4gICAJZXRoX3J4cV9pbmZvX2dldF90ICAgICAgICAgcnhxX2lu Zm9fZ2V0Ow0KPiA+ICAgCS8qKiBSZXRyaWV2ZSBUeCBxdWV1ZSBpbmZvcm1hdGlvbiAqLw0KPiA+ ICAgCWV0aF90eHFfaW5mb19nZXRfdCAgICAgICAgIHR4cV9pbmZvX2dldDsNCj4gPiArCS8qKiBH ZXQgUnggcXVldWUgcmVhcm0gZGF0YSAqLw0KPiA+ICsJZXRoX3J4cV9yZWFybV9kYXRhX2dldF90 ICAgcnhxX3JlYXJtX2RhdGFfZ2V0Ow0KPiA+ICAgCWV0aF9idXJzdF9tb2RlX2dldF90ICAgICAg IHJ4X2J1cnN0X21vZGVfZ2V0OyAvKio8IEdldCBSeCBidXJzdA0KPiBtb2RlICovDQo+ID4gICAJ ZXRoX2J1cnN0X21vZGVfZ2V0X3QgICAgICAgdHhfYnVyc3RfbW9kZV9nZXQ7IC8qKjwgR2V0IFR4 IGJ1cnN0DQo+IG1vZGUgKi8NCj4gPiAgIAlldGhfZndfdmVyc2lvbl9nZXRfdCAgICAgICBmd192 ZXJzaW9uX2dldDsgLyoqPCBHZXQgZmlybXdhcmUgdmVyc2lvbg0KPiAqLw0KPiA+IGRpZmYgLS1n aXQgYS9saWIvZXRoZGV2L2V0aGRldl9wcml2YXRlLmMgYi9saWIvZXRoZGV2L2V0aGRldl9wcml2 YXRlLmMNCj4gPiBpbmRleCA0ODA5MGM4NzlhLi5jNWRkNWUzMGY2IDEwMDY0NA0KPiA+IC0tLSBh L2xpYi9ldGhkZXYvZXRoZGV2X3ByaXZhdGUuYw0KPiA+ICsrKyBiL2xpYi9ldGhkZXYvZXRoZGV2 X3ByaXZhdGUuYw0KPiA+IEBAIC0yNzYsNiArMjc2LDggQEAgZXRoX2Rldl9mcF9vcHNfc2V0dXAo c3RydWN0IHJ0ZV9ldGhfZnBfb3BzICpmcG8sDQo+ID4gICAJZnBvLT5yeF9xdWV1ZV9jb3VudCA9 IGRldi0+cnhfcXVldWVfY291bnQ7DQo+ID4gICAJZnBvLT5yeF9kZXNjcmlwdG9yX3N0YXR1cyA9 IGRldi0+cnhfZGVzY3JpcHRvcl9zdGF0dXM7DQo+ID4gICAJZnBvLT50eF9kZXNjcmlwdG9yX3N0 YXR1cyA9IGRldi0+dHhfZGVzY3JpcHRvcl9zdGF0dXM7DQo+ID4gKwlmcG8tPnR4X2ZpbGxfc3df cmluZyA9IGRldi0+dHhfZmlsbF9zd19yaW5nOw0KPiA+ICsJZnBvLT5yeF9mbHVzaF9kZXNjcmlw dG9yID0gZGV2LT5yeF9mbHVzaF9kZXNjcmlwdG9yOw0KPiA+DQo+ID4gICAJZnBvLT5yeHEuZGF0 YSA9IGRldi0+ZGF0YS0+cnhfcXVldWVzOw0KPiA+ICAgCWZwby0+cnhxLmNsYmsgPSAodm9pZCAq KikodWludHB0cl90KWRldi0+cG9zdF9yeF9idXJzdF9jYnM7DQo+ID4gZGlmZiAtLWdpdCBhL2xp Yi9ldGhkZXYvcnRlX2V0aGRldi5jIGIvbGliL2V0aGRldi9ydGVfZXRoZGV2LmMgaW5kZXgNCj4g PiA1ZDVlMThkYjFlLi4yYWY1Y2I0MmZlIDEwMDY0NA0KPiA+IC0tLSBhL2xpYi9ldGhkZXYvcnRl X2V0aGRldi5jDQo+ID4gKysrIGIvbGliL2V0aGRldi9ydGVfZXRoZGV2LmMNCj4gPiBAQCAtMzI4 Miw2ICszMjgyLDIxIEBADQo+IHJ0ZV9ldGhfZGV2X3NldF9yeF9xdWV1ZV9zdGF0c19tYXBwaW5n KHVpbnQxNl90IHBvcnRfaWQsIHVpbnQxNl90DQo+IHJ4X3F1ZXVlX2lkLA0KPiA+ICAgCQkJCQkJ c3RhdF9pZHgsIFNUQVRfUU1BUF9SWCkpOw0KPiA+ICAgfQ0KPiA+DQo+ID4gK2ludA0KPiA+ICty dGVfZXRoX2Rldl9kaXJlY3RfcmVhcm0odWludDE2X3QgcnhfcG9ydF9pZCwgdWludDE2X3Qgcnhf cXVldWVfaWQsDQo+ID4gKwkJdWludDE2X3QgdHhfcG9ydF9pZCwgdWludDE2X3QgdHhfcnhfcXVl dWVfaWQsDQo+ID4gKwkJc3RydWN0IHJ0ZV9ldGhfcnhxX3JlYXJtX2RhdGEgKnJ4cV9yZWFybV9k YXRhKSB7DQo+ID4gKwlpbnQgbmJfcmVhcm0gPSAwOw0KPiA+ICsNCj4gPiArCW5iX3JlYXJtID0g cnRlX2V0aF90eF9maWxsX3N3X3JpbmcodHhfcG9ydF9pZCwgdHhfcnhfcXVldWVfaWQsDQo+ID4g K3J4cV9yZWFybV9kYXRhKTsNCj4gPiArDQo+ID4gKwlpZiAobmJfcmVhcm0gPiAwKQ0KPiA+ICsJ CXJldHVybiBydGVfZXRoX3J4X2ZsdXNoX2Rlc2NyaXB0b3IocnhfcG9ydF9pZCwgcnhfcXVldWVf aWQsDQo+ID4gK25iX3JlYXJtKTsNCj4gPiArDQo+ID4gKwlyZXR1cm4gMDsNCj4gPiArfQ0KPiA+ ICsNCj4gPiAgIGludA0KPiA+ICAgcnRlX2V0aF9kZXZfZndfdmVyc2lvbl9nZXQodWludDE2X3Qg cG9ydF9pZCwgY2hhciAqZndfdmVyc2lvbiwgc2l6ZV90DQo+IGZ3X3NpemUpDQo+ID4gICB7DQo+ ID4gQEAgLTUzMjMsNiArNTMzOCw0MyBAQCBydGVfZXRoX3R4X3F1ZXVlX2luZm9fZ2V0KHVpbnQx Nl90IHBvcnRfaWQsDQo+IHVpbnQxNl90IHF1ZXVlX2lkLA0KPiA+ICAgCXJldHVybiAwOw0KPiA+ ICAgfQ0KPiA+DQo+ID4gK2ludA0KPiA+ICtydGVfZXRoX3J4X3F1ZXVlX3JlYXJtX2RhdGFfZ2V0 KHVpbnQxNl90IHBvcnRfaWQsIHVpbnQxNl90IHF1ZXVlX2lkLA0KPiA+ICsJCXN0cnVjdCBydGVf ZXRoX3J4cV9yZWFybV9kYXRhICpyeHFfcmVhcm1fZGF0YSkgew0KPiA+ICsJc3RydWN0IHJ0ZV9l dGhfZGV2ICpkZXY7DQo+ID4gKw0KPiA+ICsJUlRFX0VUSF9WQUxJRF9QT1JUSURfT1JfRVJSX1JF VChwb3J0X2lkLCAtRU5PREVWKTsNCj4gPiArCWRldiA9ICZydGVfZXRoX2RldmljZXNbcG9ydF9p ZF07DQo+ID4gKw0KPiA+ICsJaWYgKHF1ZXVlX2lkID49IGRldi0+ZGF0YS0+bmJfcnhfcXVldWVz KSB7DQo+ID4gKwkJUlRFX0VUSERFVl9MT0coRVJSLCAiSW52YWxpZCBSeCBxdWV1ZV9pZD0ldVxu IiwNCj4gcXVldWVfaWQpOw0KPiA+ICsJCXJldHVybiAtRUlOVkFMOw0KPiA+ICsJfQ0KPiA+ICsN Cj4gPiArCWlmIChyeHFfcmVhcm1fZGF0YSA9PSBOVUxMKSB7DQo+ID4gKwkJUlRFX0VUSERFVl9M T0coRVJSLCAiQ2Fubm90IGdldCBldGhkZXYgcG9ydCAldSBSeA0KPiBxdWV1ZSAldSByZWFybSBk YXRhIHRvIE5VTExcbiIsDQo+ID4gKwkJCXBvcnRfaWQsIHF1ZXVlX2lkKTsNCj4gPiArCQlyZXR1 cm4gLUVJTlZBTDsNCj4gPiArCX0NCj4gPiArDQo+ID4gKwlpZiAoZGV2LT5kYXRhLT5yeF9xdWV1 ZXMgPT0gTlVMTCB8fA0KPiA+ICsJCQlkZXYtPmRhdGEtPnJ4X3F1ZXVlc1txdWV1ZV9pZF0gPT0g TlVMTCkgew0KPiA+ICsJCVJURV9FVEhERVZfTE9HKEVSUiwNCj4gPiArCQkJICAgIlJ4IHF1ZXVl ICUiUFJJdTE2IiBvZiBkZXZpY2Ugd2l0aCBwb3J0X2lkPSUiDQo+ID4gKwkJCSAgIFBSSXUxNiIg aGFzIG5vdCBiZWVuIHNldHVwXG4iLA0KPiA+ICsJCQkgICBxdWV1ZV9pZCwgcG9ydF9pZCk7DQo+ ID4gKwkJcmV0dXJuIC1FSU5WQUw7DQo+ID4gKwl9DQo+ID4gKw0KPiA+ICsJaWYgKCpkZXYtPmRl dl9vcHMtPnJ4cV9yZWFybV9kYXRhX2dldCA9PSBOVUxMKQ0KPiA+ICsJCXJldHVybiAtRU5PVFNV UDsNCj4gPiArDQo+ID4gKwlkZXYtPmRldl9vcHMtPnJ4cV9yZWFybV9kYXRhX2dldChkZXYsIHF1 ZXVlX2lkLA0KPiByeHFfcmVhcm1fZGF0YSk7DQo+ID4gKw0KPiA+ICsJcmV0dXJuIDA7DQo+ID4g K30NCj4gPiArDQo+ID4gICBpbnQNCj4gPiAgIHJ0ZV9ldGhfcnhfYnVyc3RfbW9kZV9nZXQodWlu dDE2X3QgcG9ydF9pZCwgdWludDE2X3QgcXVldWVfaWQsDQo+ID4gICAJCQkgIHN0cnVjdCBydGVf ZXRoX2J1cnN0X21vZGUgKm1vZGUpIGRpZmYgLS1naXQNCj4gPiBhL2xpYi9ldGhkZXYvcnRlX2V0 aGRldi5oIGIvbGliL2V0aGRldi9ydGVfZXRoZGV2LmggaW5kZXgNCj4gPiBjMTI5Y2ExZWFmLi4z ODFjM2Q1MzVmIDEwMDY0NA0KPiA+IC0tLSBhL2xpYi9ldGhkZXYvcnRlX2V0aGRldi5oDQo+ID4g KysrIGIvbGliL2V0aGRldi9ydGVfZXRoZGV2LmgNCj4gPiBAQCAtMTgxOCw2ICsxODE4LDE3IEBA IHN0cnVjdCBydGVfZXRoX3R4cV9pbmZvIHsNCj4gPiAgIAl1aW50OF90IHF1ZXVlX3N0YXRlOyAg ICAgICAgLyoqPCBvbmUgb2YgUlRFX0VUSF9RVUVVRV9TVEFURV8qLiAqLw0KPiA+ICAgfSBfX3J0 ZV9jYWNoZV9taW5fYWxpZ25lZDsNCj4gPg0KPiA+ICsvKioNCj4gPiArICogQGludGVybmFsDQo+ ID4gKyAqIFN0cnVjdHVyZSB1c2VkIHRvIGhvbGQgcG9pbnRlcnMgdG8gaW50ZXJuYWwgZXRoZGV2 IFJ4IHJlYXJtIGRhdGEuDQo+ID4gKyAqIFRoZSBtYWluIHB1cnBvc2UgaXMgdG8gbG9hZCBSeCBx dWV1ZSByZWFybSBkYXRhIGluIGRpcmVjdCByZWFybSBtb2RlLg0KPiA+ICsgKi8NCj4gDQo+IEkg dGhpbmsgdGhpcyBzdHJ1Y3R1cmUgb3dlcyBhIGxvdCBtb3JlIGV4cGFsYW50aW9uLg0KPiBXaGF0 IGVhY2ggZmllbGRzIHN1cHBvc2UgdG8gZG8gYW5kIHdoYXQgYXJlIHRoZSBjb25zdHJhaW50cywg ZXRjLg0KPiANCj4gSW4gZ2VuZXJhbCwgbW9yZSBkb2Mgd2lsbCBiZSBuZWVkZWQgdG8gZXhwbGFp biB0aGF0IGZlYXR1cmUuDQoNCllvdSBhcmUgcmlnaHQuIFdlIHdpbGwgYWRkIG1vcmUgZXhwbGFu YXRpb24gZm9yIGl0IGFuZCBhbHNvIHVwZGF0ZSB0aGUgZG9jDQpUbyBleHBsYWluIHRoZSBmZWF0 dXJlLg0KDQo+ID4gK3N0cnVjdCBydGVfZXRoX3J4cV9yZWFybV9kYXRhIHsNCj4gPiArCXZvaWQg KnJ4X3N3X3Jpbmc7DQo+IA0KPiBUaGF0J3MgbWlzbGVhZGluZywgd2UgYWx3YXlzIHN1cHBvc2Ug dG8gc3RvcmUgbWJ1ZnMgcHRycyBoZXJlLCBzbyB3aHkgbm90DQo+IGJlIGRpcmVjdDoNCj4gc3Ry dWN0IHJ0ZV9tYnVmICoqcnhfc3dfcmluZzsNCj4gDQpBZ3JlZS4NCj4gPiArCXVpbnQxNl90ICpy ZWFybV9zdGFydDsNCj4gPiArCXVpbnQxNl90ICpyZWFybV9uYjsNCj4gDQo+IEkga25vdyB0aGF0 IGZvciBJbnRlbCBOSUNzIHVpbnQxNl90IGlzIHN1ZmZpY2llbnQsIHdvbmRlciB3b3VsZCBpdCBh bHdheXMgYmUNCj4gZm9yIG90aGVyIHZlbmRvcnM/DQo+IEFub3RoZXIgdGhpbmcgdG8gY29uc2lk ZXIgdGhlIGNhc2Ugd2hlbiByaW5nIHBvc2l0aW9uIHdyYXBwaW5nPw0KPiBBZ2FpbiBJIGtub3cg dGhhdCBpdCBpcyBub3QgcmVxdWlyZWQgZm9yIEludGVsIE5JQ3MsIGJ1dCB3b3VsZCBpdCBiZSBz dWZmaWNpZW50DQo+IGZvciBBUEkgdGhhdCBzdXBwb3NlZCB0byBiZSBnZW5lcmFsPw0KPiANCkZv ciB0aGlzLCB3ZSByZS1kZWZpbmUgdGhpcyBzdHJ1Y3R1cmU6DQpydGVfZXRoX3J4cV9yZWFybV9k YXRhIHsNCgl2b2lkICpyeF9zd19yaW5nOw0KCXVpbnQxNl90ICpyZWFybV9zdGFydDsNCgl1aW50 MTZfdCAqcmVhcm1fbmI7DQp9DQotPg0Kc3RydWN0ICpyeHFfcmVjeWNsZV9pbmZvIHsNCglydGVf bWJ1ZiAqKmJ1Zl9yaW5nOw0KCXVpbnQxNl90ICpvZmZzZXQgPSAodWludDE2ICopKCZycS0+Y2kp Ow0KCXVpbnQxNl90ICplbmQ7DQoJdWludDE2X3QgcmluZ19zaXplOyANCg0KfQ0KRm9yIHRoZSBu ZXcgc3RydWN0dXJlLCAqb2Zmc2V0IGlzIGEgcG9pbnRlciBmb3IgcmVhcm0tc3RhcnQgaW5kZXgg b2YNClJ4IGJ1ZmZlciByaW5nIChjb25zdW1lciBpbmRleCkuICplbmQgaXMgYSBwb2ludGVyIGZv ciByZWFybS1lbmQgaW5kZXgNCk9mIFJ4IGJ1ZmZlciByaW5nIChwcm9kdWNlciBpbmRleCkuDQoN CjEuIHdlIGxvb2sgdXAgZGlmZmVyZW50IHBtZHMsICBzb21lIHBtZHMgdXNpbmcgJ3VpbnRfMTZ0 JyBhcyBpbmRleCBzaXplIGxpa2UgaW50ZWwgUE1ELA0Kc29tZSBwbWRzIHVzaW5nICd1aW50MzJf dCcgYXMgaW5kZXggc2l6ZSBsaWtlIE1MWDUgb3IgdGh1bmRlcnggUE1ELiANCkZvciBwbWQgdXNp bmcgJ3VpbnQzMl90JywgcmVhcm0gc3RhcnRzIGF0ICdidWZfcmluZ1tvZmZzZXQgJiAocmluZ19z aXplIC0xKV0nLCBhbmQgJ3VpbnQxNl90Jw0KaXMgZW5vdWdoIGZvciByaW5nIHNpemUuDQoNCjIu IEdvb2QgcXVlc3Rpb24uIEluIGdlbmVyYWwgcGF0aCwgdGhlcmUgaXMgYSBjb25zdHJhaW50IHRo YXQgICduYl9yZWFybSA8IHJpbmdfc2l6ZSAtIHJxLT5jaScsDQpUaGlzIGNhbiBlbnN1cmUgbm8g cmluZyB3cmFwcGluZyBpbiByZWFybS4gVGh1cyBpbiBkaXJlY3QtcmVhcm0sIHdlIHdpbGwgcmVm ZXIgdG8gdGhpcyB0bw0Kc29sdmUgcmluZyB3cmFwcGluZy4NCg0KPiANCj4gPiArfSBfX3J0ZV9j YWNoZV9taW5fYWxpZ25lZDsNCj4gPiArDQo+ID4gICAvKiBHZW5lcmljIEJ1cnN0IG1vZGUgZmxh ZyBkZWZpbml0aW9uLCB2YWx1ZXMgY2FuIGJlIE9SZWQuICovDQo+ID4NCj4gPiAgIC8qKg0KPiA+ IEBAIC0zMTg0LDYgKzMxOTUsMzQgQEAgaW50DQo+IHJ0ZV9ldGhfZGV2X3NldF9yeF9xdWV1ZV9z dGF0c19tYXBwaW5nKHVpbnQxNl90IHBvcnRfaWQsDQo+ID4gICAJCQkJCSAgIHVpbnQxNl90IHJ4 X3F1ZXVlX2lkLA0KPiA+ICAgCQkJCQkgICB1aW50OF90IHN0YXRfaWR4KTsNCj4gPg0KPiA+ICsv KioNCj4gPiArICogQHdhcm5pbmcNCj4gPiArICogQGIgRVhQRVJJTUVOVEFMOiB0aGlzIEFQSSBt YXkgY2hhbmdlLCBvciBiZSByZW1vdmVkLCB3aXRob3V0IHByaW9yDQo+ID4gK25vdGljZQ0KPiA+ ICsgKg0KPiA+ICsgKiBEaXJlY3RseSBwdXQgVHggZnJlZWQgYnVmZmVycyBpbnRvIFJ4IHN3LXJp bmcgYW5kIGZsdXNoIGRlc2MuDQo+ID4gKyAqDQo+ID4gKyAqIEBwYXJhbSByeF9wb3J0X2lkDQo+ ID4gKyAqICAgUG9ydCBpZGVudGlmeWluZyB0aGUgcmVjZWl2ZSBzaWRlLg0KPiA+ICsgKiBAcGFy YW0gcnhfcXVldWVfaWQNCj4gPiArICogICBUaGUgaW5kZXggb2YgdGhlIHJlY2VpdmUgcXVldWUg aWRlbnRpZnlpbmcgdGhlIHJlY2VpdmUgc2lkZS4NCj4gPiArICogICBUaGUgdmFsdWUgbXVzdCBi ZSBpbiB0aGUgcmFuZ2UgWzAsIG5iX3J4X3F1ZXVlIC0gMV0gcHJldmlvdXNseQ0KPiBzdXBwbGll ZA0KPiA+ICsgKiAgIHRvIHJ0ZV9ldGhfZGV2X2NvbmZpZ3VyZSgpLg0KPiA+ICsgKiBAcGFyYW0g dHhfcG9ydF9pZA0KPiA+ICsgKiAgIFBvcnQgaWRlbnRpZnlpbmcgdGhlIHRyYW5zbWl0IHNpZGUu DQo+ID4gKyAqIEBwYXJhbSB0eF9xdWV1ZV9pZA0KPiA+ICsgKiAgIFRoZSBpbmRleCBvZiB0aGUg dHJhbnNtaXQgcXVldWUgaWRlbnRpZnlpbmcgdGhlIHRyYW5zbWl0IHNpZGUuDQo+ID4gKyAqICAg VGhlIHZhbHVlIG11c3QgYmUgaW4gdGhlIHJhbmdlIFswLCBuYl90eF9xdWV1ZSAtIDFdIHByZXZp b3VzbHkNCj4gc3VwcGxpZWQNCj4gPiArICogICB0byBydGVfZXRoX2Rldl9jb25maWd1cmUoKS4N Cj4gPiArICogQHBhcmFtIHJ4cV9yZWFybV9kYXRhDQo+ID4gKyAqICAgQSBwb2ludGVyIHRvIGEg c3RydWN0dXJlIG9mIHR5cGUgKnJ0ZV9ldGhfdHhxX3JlYXJtX2RhdGEqIHRvIGJlIGZpbGxlZC4N Cj4gPiArICogQHJldHVybg0KPiA+ICsgKiAgIC0gMDogU3VjY2Vzcw0KPiA+ICsgKi8NCj4gPiAr X19ydGVfZXhwZXJpbWVudGFsDQo+ID4gK2ludCBydGVfZXRoX2Rldl9kaXJlY3RfcmVhcm0odWlu dDE2X3QgcnhfcG9ydF9pZCwgdWludDE2X3QgcnhfcXVldWVfaWQsDQo+ID4gKwkJdWludDE2X3Qg dHhfcG9ydF9pZCwgdWludDE2X3QgdHhfcXVldWVfaWQsDQo+ID4gKwkJc3RydWN0IHJ0ZV9ldGhf cnhxX3JlYXJtX2RhdGEgKnJ4cV9yZWFybV9kYXRhKTsNCj4gDQo+IA0KPiBJIHRoaW5rIHdlIG5l ZWQgb25lIG1vcmUgcGFyYW1ldGVyIGZvciB0aGF0IGZ1bmN0aW9uICd1aW50MTZfdCBvZmZzZXQn DQo+IG9yIHNvLg0KPiBTbyBfcmVhcm1fIHdpbGwgc3RhcnQgdG8gcG9wdWxhdGUgcnhfc3dfcmlu ZyBmcm9tICpyZWFybV9zdGFydCArIG9mZnNldA0KPiBwb3NpdGlvbi4gVGhhdCB3YXkgd2UgY2Fu IHN1cHBvcnQgcG9wdWxhdGluZyBmcm9tIGRpZmZlcmVudCBzb3VyY2VzLg0KPiBPciBzaG91bGQg J29mZnNldCcgYmUgcGFydCBvZiB0cnVjdCBydGVfZXRoX3J4cV9yZWFybV9kYXRhPw0KPiANCkFn cmVlLCBwbGVhc2Ugc2VlIGFib3ZlLCB3ZSB3aWxsIGRvIHRoZSBjaGFuZ2UgaW4gdGhlIHN0cnVj dHVyZS4NCj4gPiArDQo+ID4gICAvKioNCj4gPiAgICAqIFJldHJpZXZlIHRoZSBFdGhlcm5ldCBh ZGRyZXNzIG9mIGFuIEV0aGVybmV0IGRldmljZS4NCj4gPiAgICAqDQo+ID4gQEAgLTQ3ODIsNiAr NDgyMSwyNyBAQCBpbnQgcnRlX2V0aF9yeF9xdWV1ZV9pbmZvX2dldCh1aW50MTZfdA0KPiBwb3J0 X2lkLCB1aW50MTZfdCBxdWV1ZV9pZCwNCj4gPiAgIGludCBydGVfZXRoX3R4X3F1ZXVlX2luZm9f Z2V0KHVpbnQxNl90IHBvcnRfaWQsIHVpbnQxNl90IHF1ZXVlX2lkLA0KPiA+ICAgCXN0cnVjdCBy dGVfZXRoX3R4cV9pbmZvICpxaW5mbyk7DQo+ID4NCj4gPiArLyoqDQo+ID4gKyAqIEdldCByZWFy bSBkYXRhIGFib3V0IGdpdmVuIHBvcnRzJ3MgUnggcXVldWUuDQo+ID4gKyAqDQo+ID4gKyAqIEBw YXJhbSBwb3J0X2lkDQo+ID4gKyAqICAgVGhlIHBvcnQgaWRlbnRpZmllciBvZiB0aGUgRXRoZXJu ZXQgZGV2aWNlLg0KPiA+ICsgKiBAcGFyYW0gcXVldWVfaWQNCj4gPiArICogICBUaGUgUnggcXVl dWUgb24gdGhlIEV0aGVybmV0IGRldmljZSBmb3Igd2hpY2ggcmVhcm0gZGF0YQ0KPiA+ICsgKiAg IHdpbGwgYmUgZ290Lg0KPiA+ICsgKiBAcGFyYW0gcnhxX3JlYXJtX2RhdGENCj4gPiArICogICBB IHBvaW50ZXIgdG8gYSBzdHJ1Y3R1cmUgb2YgdHlwZSAqcnRlX2V0aF90eHFfcmVhcm1fZGF0YSog dG8gYmUgZmlsbGVkLg0KPiA+ICsgKg0KPiA+ICsgKiBAcmV0dXJuDQo+ID4gKyAqICAgLSAwOiBT dWNjZXNzDQo+ID4gKyAqICAgLSAtRU5PREVWOiAgSWYgKnBvcnRfaWQqIGlzIGludmFsaWQuDQo+ ID4gKyAqICAgLSAtRU5PVFNVUDogcm91dGluZSBpcyBub3Qgc3VwcG9ydGVkIGJ5IHRoZSBkZXZp Y2UgUE1ELg0KPiA+ICsgKiAgIC0gLUVJTlZBTDogIFRoZSBxdWV1ZV9pZCBpcyBvdXQgb2YgcmFu Z2UuDQo+ID4gKyAqLw0KPiA+ICtfX3J0ZV9leHBlcmltZW50YWwNCj4gPiAraW50IHJ0ZV9ldGhf cnhfcXVldWVfcmVhcm1fZGF0YV9nZXQodWludDE2X3QgcG9ydF9pZCwgdWludDE2X3QNCj4gcXVl dWVfaWQsDQo+ID4gKwkJc3RydWN0IHJ0ZV9ldGhfcnhxX3JlYXJtX2RhdGEgKnJ4cV9yZWFybV9k YXRhKTsNCj4gPiArDQo+ID4gICAvKioNCj4gPiAgICAqIFJldHJpZXZlIGluZm9ybWF0aW9uIGFi b3V0IHRoZSBSeCBwYWNrZXQgYnVyc3QgbW9kZS4NCj4gPiAgICAqDQo+ID4gQEAgLTYxMDMsNiAr NjE2MywxMjAgQEAgc3RhdGljIGlubGluZSBpbnQNCj4gcnRlX2V0aF90eF9kZXNjcmlwdG9yX3N0 YXR1cyh1aW50MTZfdCBwb3J0X2lkLA0KPiA+ICAgCXJldHVybiAoKnAtPnR4X2Rlc2NyaXB0b3Jf c3RhdHVzKShxZCwgb2Zmc2V0KTsNCj4gPiAgIH0NCj4gPg0KPiA+ICsvKioNCj4gPiArICogQHdh cm5pbmcNCj4gPiArICogQGIgRVhQRVJJTUVOVEFMOiB0aGlzIEFQSSBtYXkgY2hhbmdlLCBvciBi ZSByZW1vdmVkLCB3aXRob3V0IHByaW9yDQo+ID4gK25vdGljZQ0KPiA+ICsgKg0KPiA+ICsgKiBG aWxsIFJ4IHN3LXJpbmcgd2l0aCBUeCBidWZmZXJzIGluIGRpcmVjdCByZWFybSBtb2RlLg0KPiA+ ICsgKg0KPiA+ICsgKiBAcGFyYW0gcG9ydF9pZA0KPiA+ICsgKiAgIFRoZSBwb3J0IGlkZW50aWZp ZXIgb2YgdGhlIEV0aGVybmV0IGRldmljZS4NCj4gPiArICogQHBhcmFtIHF1ZXVlX2lkDQo+ID4g KyAqICAgVGhlIGluZGV4IG9mIHRoZSB0cmFuc21pdCBxdWV1ZS4NCj4gPiArICogICBUaGUgdmFs dWUgbXVzdCBiZSBpbiB0aGUgcmFuZ2UgWzAsIG5iX3R4X3F1ZXVlIC0gMV0gcHJldmlvdXNseQ0K PiBzdXBwbGllZA0KPiA+ICsgKiAgIHRvIHJ0ZV9ldGhfZGV2X2NvbmZpZ3VyZSgpLg0KPiA+ICsg KiBAcGFyYW0gcnhxX3JlYXJtX2RhdGENCj4gPiArICogICBBIHBvaW50ZXIgdG8gYSBzdHJ1Y3R1 cmUgb2YgdHlwZSAqcnRlX2V0aF9yeHFfcmVhcm1fZGF0YSogdG8gYmUgZmlsbGVkDQo+IHdpdGgN Cj4gPiArICogICB0aGUgcmVhcm0gZGF0YSBvZiBhIHJlY2VpdmUgcXVldWUuDQo+ID4gKyAqIEBy ZXR1cm4NCj4gPiArICogICAtIFRoZSBudW1iZXIgYnVmZmVycyBjb3JyZWN0IHRvIGJlIGZpbGxl ZCBpbiB0aGUgUnggc3ctcmluZy4NCj4gPiArICogICAtICgtRUlOVkFMKSBiYWQgcG9ydCBvciBx dWV1ZS4NCj4gPiArICogICAtICgtRU5PREVWKSBiYWQgcG9ydC4NCj4gPiArICogICAtICgtRU5P VFNVUCkgaWYgdGhlIGRldmljZSBkb2VzIG5vdCBzdXBwb3J0IHRoaXMgZnVuY3Rpb24uDQo+ID4g KyAqDQo+ID4gKyAqLw0KPiA+ICtfX3J0ZV9leHBlcmltZW50YWwNCj4gPiArc3RhdGljIGlubGlu ZSBpbnQgcnRlX2V0aF90eF9maWxsX3N3X3JpbmcodWludDE2X3QgcG9ydF9pZCwNCj4gPiArCXVp bnQxNl90IHF1ZXVlX2lkLCBzdHJ1Y3QgcnRlX2V0aF9yeHFfcmVhcm1fZGF0YSAqcnhxX3JlYXJt X2RhdGEpDQo+IHsNCj4gPiArCXN0cnVjdCBydGVfZXRoX2ZwX29wcyAqcDsNCj4gPiArCXZvaWQg KnFkOw0KPiA+ICsNCj4gPiArI2lmZGVmIFJURV9FVEhERVZfREVCVUdfVFgNCj4gPiArCWlmIChw b3J0X2lkID49IFJURV9NQVhfRVRIUE9SVFMgfHwNCj4gPiArCQkJcXVldWVfaWQgPj0gUlRFX01B WF9RVUVVRVNfUEVSX1BPUlQpIHsNCj4gPiArCQlSVEVfRVRIREVWX0xPRyhFUlIsDQo+ID4gKwkJ CSJJbnZhbGlkIHBvcnRfaWQ9JXUgb3IgcXVldWVfaWQ9JXVcbiIsDQo+ID4gKwkJCXBvcnRfaWQs IHF1ZXVlX2lkKTsNCj4gPiArCQlyZXR1cm4gLUVJTlZBTDsNCj4gPiArCX0NCj4gPiArI2VuZGlm DQo+ID4gKw0KPiA+ICsJcCA9ICZydGVfZXRoX2ZwX29wc1twb3J0X2lkXTsNCj4gPiArCXFkID0g cC0+dHhxLmRhdGFbcXVldWVfaWRdOw0KPiA+ICsNCj4gPiArI2lmZGVmIFJURV9FVEhERVZfREVC VUdfVFgNCj4gPiArCVJURV9FVEhfVkFMSURfUE9SVElEX09SX0VSUl9SRVQocG9ydF9pZCwgMCk7 DQo+ID4gKw0KPiA+ICsJaWYgKHFkID09IE5VTEwpIHsNCj4gPiArCQlSVEVfRVRIREVWX0xPRyhF UlIsICJJbnZhbGlkIFR4IHF1ZXVlX2lkPSV1IGZvcg0KPiBwb3J0X2lkPSV1XG4iLA0KPiA+ICsJ CQlxdWV1ZV9pZCwgcG9ydF9pZCk7DQo+ID4gKwkJcmV0dXJuIC1FTk9ERVY7DQo+ID4gKwl9DQo+ ID4gKyNlbmRpZg0KPiA+ICsNCj4gPiArCWlmIChwLT50eF9maWxsX3N3X3JpbmcgPT0gTlVMTCkN Cj4gPiArCQlyZXR1cm4gLUVOT1RTVVA7DQo+ID4gKw0KPiA+ICsJcmV0dXJuIHAtPnR4X2ZpbGxf c3dfcmluZyhxZCwgcnhxX3JlYXJtX2RhdGEpOyB9DQo+ID4gKw0KPiA+ICsvKioNCj4gPiArICog QHdhcm5pbmcNCj4gPiArICogQGIgRVhQRVJJTUVOVEFMOiB0aGlzIEFQSSBtYXkgY2hhbmdlLCBv ciBiZSByZW1vdmVkLCB3aXRob3V0IHByaW9yDQo+ID4gK25vdGljZQ0KPiA+ICsgKg0KPiA+ICsg KiAgRmx1c2ggUnggZGVzY3JpcHRvciBpbiBkaXJlY3QgcmVhcm0gbW9kZS4NCj4gPiArICoNCj4g PiArICogQHBhcmFtIHBvcnRfaWQNCj4gPiArICogICBUaGUgcG9ydCBpZGVudGlmaWVyIG9mIHRo ZSBFdGhlcm5ldCBkZXZpY2UuDQo+ID4gKyAqIEBwYXJhbSBxdWV1ZV9pZA0KPiA+ICsgKiAgIFRo ZSBpbmRleCBvZiB0aGUgcmVjZWl2ZSBxdWV1ZS4NCj4gPiArICogICBUaGUgdmFsdWUgbXVzdCBi ZSBpbiB0aGUgcmFuZ2UgWzAsIG5iX3J4X3F1ZXVlIC0gMV0gcHJldmlvdXNseQ0KPiBzdXBwbGll ZA0KPiA+ICsgKiAgIHRvIHJ0ZV9ldGhfZGV2X2NvbmZpZ3VyZSgpLg0KPiA+ICsgKkBwYXJhbSBu Yl9yZWFybQ0KPiA+ICsgKiAgIFRoZSBudW1iZXIgb2YgUnggc3ctcmluZyBidWZmZXJzIG5lZWQg dG8gYmUgZmx1c2hlZC4NCj4gPiArICogQHJldHVybg0KPiA+ICsgKiAgIC0gKDApIGlmIHN1Y2Nl c3NmdWwuDQo+ID4gKyAqICAgLSAoLUVJTlZBTCkgYmFkIHBvcnQgb3IgcXVldWUuDQo+ID4gKyAq ICAgLSAoLUVOT0RFVikgYmFkIHBvcnQuDQo+ID4gKyAqICAgLSAoLUVOT1RTVVApIGlmIHRoZSBk ZXZpY2UgZG9lcyBub3Qgc3VwcG9ydCB0aGlzIGZ1bmN0aW9uLg0KPiA+ICsgKi8NCj4gPiArX19y dGVfZXhwZXJpbWVudGFsDQo+ID4gK3N0YXRpYyBpbmxpbmUgaW50IHJ0ZV9ldGhfcnhfZmx1c2hf ZGVzY3JpcHRvcih1aW50MTZfdCBwb3J0X2lkLA0KPiA+ICsJdWludDE2X3QgcXVldWVfaWQsIHVp bnQxNl90IG5iX3JlYXJtKSB7DQo+ID4gKwlzdHJ1Y3QgcnRlX2V0aF9mcF9vcHMgKnA7DQo+ID4g Kwl2b2lkICpxZDsNCj4gPiArDQo+ID4gKyNpZmRlZiBSVEVfRVRIREVWX0RFQlVHX1JYDQo+ID4g KwlpZiAocG9ydF9pZCA+PSBSVEVfTUFYX0VUSFBPUlRTIHx8DQo+ID4gKwkJCXF1ZXVlX2lkID49 IFJURV9NQVhfUVVFVUVTX1BFUl9QT1JUKSB7DQo+ID4gKwkJUlRFX0VUSERFVl9MT0coRVJSLA0K PiA+ICsJCQkiSW52YWxpZCBwb3J0X2lkPSV1IG9yIHF1ZXVlX2lkPSV1XG4iLA0KPiA+ICsJCQlw b3J0X2lkLCBxdWV1ZV9pZCk7DQo+ID4gKwkJcmV0dXJuIC1FSU5WQUw7DQo+ID4gKwl9DQo+ID4g KyNlbmRpZg0KPiA+ICsNCj4gPiArCXAgPSAmcnRlX2V0aF9mcF9vcHNbcG9ydF9pZF07DQo+ID4g KwlxZCA9IHAtPnJ4cS5kYXRhW3F1ZXVlX2lkXTsNCj4gPiArDQo+ID4gKyNpZmRlZiBSVEVfRVRI REVWX0RFQlVHX1JYDQo+ID4gKwlSVEVfRVRIX1ZBTElEX1BPUlRJRF9PUl9FUlJfUkVUKHBvcnRf aWQsIDApOw0KPiA+ICsNCj4gPiArCWlmIChxZCA9PSBOVUxMKSB7DQo+ID4gKwkJUlRFX0VUSERF Vl9MT0coRVJSLCAiSW52YWxpZCBSeCBxdWV1ZV9pZD0ldSBmb3INCj4gcG9ydF9pZD0ldVxuIiwN Cj4gPiArCQkJcXVldWVfaWQsIHBvcnRfaWQpOw0KPiA+ICsJCXJldHVybiAtRU5PREVWOw0KPiA+ ICsJfQ0KPiA+ICsjZW5kaWYNCj4gPiArDQo+ID4gKwlpZiAocC0+cnhfZmx1c2hfZGVzY3JpcHRv ciA9PSBOVUxMKQ0KPiA+ICsJCXJldHVybiAtRU5PVFNVUDsNCj4gPiArDQo+ID4gKwlyZXR1cm4g cC0+cnhfZmx1c2hfZGVzY3JpcHRvcihxZCwgbmJfcmVhcm0pOyB9DQo+ID4gKw0KPiA+ICAgLyoq DQo+ID4gICAgKiBAaW50ZXJuYWwNCj4gPiAgICAqIEhlbHBlciByb3V0aW5lIGZvciBydGVfZXRo X3R4X2J1cnN0KCkuDQo+ID4gZGlmZiAtLWdpdCBhL2xpYi9ldGhkZXYvcnRlX2V0aGRldl9jb3Jl LmgNCj4gPiBiL2xpYi9ldGhkZXYvcnRlX2V0aGRldl9jb3JlLmggaW5kZXggZGNmOGFkYWI5Mi4u NWVjYjU3ZjZmMCAxMDA2NDQNCj4gPiAtLS0gYS9saWIvZXRoZGV2L3J0ZV9ldGhkZXZfY29yZS5o DQo+ID4gKysrIGIvbGliL2V0aGRldi9ydGVfZXRoZGV2X2NvcmUuaA0KPiA+IEBAIC01Niw2ICs1 NiwxMyBAQCB0eXBlZGVmIGludCAoKmV0aF9yeF9kZXNjcmlwdG9yX3N0YXR1c190KSh2b2lkICpy eHEsDQo+IHVpbnQxNl90IG9mZnNldCk7DQo+ID4gICAvKiogQGludGVybmFsIENoZWNrIHRoZSBz dGF0dXMgb2YgYSBUeCBkZXNjcmlwdG9yICovDQo+ID4gICB0eXBlZGVmIGludCAoKmV0aF90eF9k ZXNjcmlwdG9yX3N0YXR1c190KSh2b2lkICp0eHEsIHVpbnQxNl90DQo+ID4gb2Zmc2V0KTsNCj4g Pg0KPiA+ICsvKiogQGludGVybmFsIEZpbGwgUnggc3ctcmluZyB3aXRoIFR4IGJ1ZmZlcnMgaW4g ZGlyZWN0IHJlYXJtIG1vZGUgKi8NCj4gPiArdHlwZWRlZiBpbnQgKCpldGhfdHhfZmlsbF9zd19y aW5nX3QpKHZvaWQgKnR4cSwNCj4gPiArCQlzdHJ1Y3QgcnRlX2V0aF9yeHFfcmVhcm1fZGF0YSAq cnhxX3JlYXJtX2RhdGEpOw0KPiA+ICsNCj4gPiArLyoqIEBpbnRlcm5hbCBGbHVzaCBSeCBkZXNj cmlwdG9yIGluIGRpcmVjdCByZWFybSBtb2RlICovIHR5cGVkZWYgaW50DQo+ID4gKygqZXRoX3J4 X2ZsdXNoX2Rlc2NyaXB0b3JfdCkodm9pZCAqcnhxLCB1aW50MTZfdCBuYl9yZWFybSk7DQo+ID4g Kw0KPiA+ICAgLyoqDQo+ID4gICAgKiBAaW50ZXJuYWwNCj4gPiAgICAqIFN0cnVjdHVyZSB1c2Vk IHRvIGhvbGQgb3BhcXVlIHBvaW50ZXJzIHRvIGludGVybmFsIGV0aGRldiBSeC9UeA0KPiA+IEBA IC05MCw2ICs5Nyw4IEBAIHN0cnVjdCBydGVfZXRoX2ZwX29wcyB7DQo+ID4gICAJZXRoX3J4X3F1 ZXVlX2NvdW50X3QgcnhfcXVldWVfY291bnQ7DQo+ID4gICAJLyoqIENoZWNrIHRoZSBzdGF0dXMg b2YgYSBSeCBkZXNjcmlwdG9yLiAqLw0KPiA+ICAgCWV0aF9yeF9kZXNjcmlwdG9yX3N0YXR1c190 IHJ4X2Rlc2NyaXB0b3Jfc3RhdHVzOw0KPiA+ICsJLyoqIEZsdXNoIFJ4IGRlc2NyaXB0b3IgaW4g ZGlyZWN0IHJlYXJtIG1vZGUgKi8NCj4gPiArCWV0aF9yeF9mbHVzaF9kZXNjcmlwdG9yX3Qgcnhf Zmx1c2hfZGVzY3JpcHRvcjsNCj4gPiAgIAkvKiogUnggcXVldWVzIGRhdGEuICovDQo+ID4gICAJ c3RydWN0IHJ0ZV9ldGhkZXZfcWRhdGEgcnhxOw0KPiA+ICAgCXVpbnRwdHJfdCByZXNlcnZlZDFb M107DQo+ID4gQEAgLTEwNiw2ICsxMTUsOCBAQCBzdHJ1Y3QgcnRlX2V0aF9mcF9vcHMgew0KPiA+ ICAgCWV0aF90eF9wcmVwX3QgdHhfcGt0X3ByZXBhcmU7DQo+ID4gICAJLyoqIENoZWNrIHRoZSBz dGF0dXMgb2YgYSBUeCBkZXNjcmlwdG9yLiAqLw0KPiA+ICAgCWV0aF90eF9kZXNjcmlwdG9yX3N0 YXR1c190IHR4X2Rlc2NyaXB0b3Jfc3RhdHVzOw0KPiA+ICsJLyoqIEZpbGwgUnggc3ctcmluZyB3 aXRoIFR4IGJ1ZmZlcnMgaW4gZGlyZWN0IHJlYXJtIG1vZGUgKi8NCj4gPiArCWV0aF90eF9maWxs X3N3X3JpbmdfdCB0eF9maWxsX3N3X3Jpbmc7DQo+ID4gICAJLyoqIFR4IHF1ZXVlcyBkYXRhLiAq Lw0KPiA+ICAgCXN0cnVjdCBydGVfZXRoZGV2X3FkYXRhIHR4cTsNCj4gPiAgIAl1aW50cHRyX3Qg cmVzZXJ2ZWQyWzNdOw0KPiA+IGRpZmYgLS1naXQgYS9saWIvZXRoZGV2L3ZlcnNpb24ubWFwIGIv bGliL2V0aGRldi92ZXJzaW9uLm1hcCBpbmRleA0KPiA+IDE3MjAxZmJlMGYuLmYzOWYwMmE2OWIg MTAwNjQ0DQo+ID4gLS0tIGEvbGliL2V0aGRldi92ZXJzaW9uLm1hcA0KPiA+ICsrKyBiL2xpYi9l dGhkZXYvdmVyc2lvbi5tYXANCj4gPiBAQCAtMjk4LDYgKzI5OCwxMiBAQCBFWFBFUklNRU5UQUwg ew0KPiA+ICAgCXJ0ZV9mbG93X2dldF9xX2FnZWRfZmxvd3M7DQo+ID4gICAJcnRlX210cl9tZXRl cl9wb2xpY3lfZ2V0Ow0KPiA+ICAgCXJ0ZV9tdHJfbWV0ZXJfcHJvZmlsZV9nZXQ7DQo+ID4gKw0K PiA+ICsJIyBhZGRlZCBpbiAyMy4wMw0KPiA+ICsJcnRlX2V0aF9kZXZfZGlyZWN0X3JlYXJtOw0K PiA+ICsJcnRlX2V0aF9yeF9mbHVzaF9kZXNjcmlwdG9yOw0KPiA+ICsJcnRlX2V0aF9yeF9xdWV1 ZV9yZWFybV9kYXRhX2dldDsNCj4gPiArCXJ0ZV9ldGhfdHhfZmlsbF9zd19yaW5nOw0KPiA+ICAg fTsNCj4gPg0KPiA+ICAgSU5URVJOQUwgew0KDQo=