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 349B945EEC; Thu, 19 Dec 2024 15:48:32 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id BA25F40265; Thu, 19 Dec 2024 15:48:31 +0100 (CET) Received: from EUR05-VI1-obe.outbound.protection.outlook.com (mail-vi1eur05on2071.outbound.protection.outlook.com [40.107.21.71]) by mails.dpdk.org (Postfix) with ESMTP id CCCCB4025F for ; Thu, 19 Dec 2024 15:48:29 +0100 (CET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=ytz+fQ97Qa5eaia3SmKNeFxA8SdNQRNSHitQMYpzGjYuJgUgjdaAa+mWWJ48im59qMcfj0+WimfDq+qTdRHmtAnMUyNokHqyK9xeQIrnQpLabpor/s9FvU9tclwkAIdWiRsmFdOdgX8y2d9dwwdKmXTmDXJeYjTFQlPVo1wYzyjFNEqG8NOq6FAQnV2pM2FIG8oty6P2A07k1X3v5KzAcsJSupnc0XWGwl8I/7onERccn1J5RGwtAH0tJtW9PusbQMtGmEkRhHkNhy3fyznYvPnjyXNvbnjfYeAArXPk4mDCF7w8qdhfPQD+Uu8GjXGzZPqQpwPfUYEVEV1eBgg6Zw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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=ItTVZRGHl/NmRN1P7unHTyYKKIxWSmm3JCTNY4iS9Sw=; b=fp+p21ziRrqlyC7g0Rt9Ullij9FqFQedFVyKCOy0j+ABQvx5aOU4TDEXDEAmAqPqJUwv7s282TC9RbPj9RKOIQM+/p0WhY4ImR5iG0su8ukz9fjorQrR1x5JX4M6+olPv/qpIvuUIzGbXqUW/nFqBlfDxJq6z5evGSAFrjyp5rTjug9qpnMfcmqeFXVdL8OE9dszIvWi/memich10xq/oW591rnCP3fjd3TbqStuA3emiQ1+nsBuYQELlot7D86iCr5Vfur0C3iYca9FL0okz21UEF/19b0B9V7yEtL78vgSCH4InLsM4kJxUp42ooIwFFw3cVwTZ58FCky1c/xqlw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=ericsson.com; dmarc=pass action=none header.from=ericsson.com; dkim=pass header.d=ericsson.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ericsson.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=ItTVZRGHl/NmRN1P7unHTyYKKIxWSmm3JCTNY4iS9Sw=; b=j8RFKWJoa8VLtT68A8yAiHYr6RGo03udMmQg3pZVLmeTlSZCNO3NZGPLVkdbMYLXSOT+Ra5nLlgujJogFLzhAwXbrXua/Wbl8jkTqLpZNzvBFoas2t1rJtirDYQ8eUNvL9c9u9aD2KnXYtIoXbYpA9nlzYzQSuwH0v84ehvupK0GKL2TiPH+/1jN5X+1W9URXfaowSLOMun9DBW2aGQWGAYde7kGbjR8nz7N+EtBJDfD28ennWqMWgod7iH3nki+ZPpxxVkXHlD21s9GOR8mquxnqHhK5SP+6B9zQoIJQhKywiiy77hbSyY3ow3WNBjGfwYs87WXjTZhHlwUZOoHSA== Received: from VI1PR07MB5248.eurprd07.prod.outlook.com (2603:10a6:803:a4::30) by DBAPR07MB6806.eurprd07.prod.outlook.com (2603:10a6:10:192::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8272.15; Thu, 19 Dec 2024 14:48:27 +0000 Received: from VI1PR07MB5248.eurprd07.prod.outlook.com ([fe80::2dee:d246:de3b:42f2]) by VI1PR07MB5248.eurprd07.prod.outlook.com ([fe80::2dee:d246:de3b:42f2%5]) with mapi id 15.20.8251.015; Thu, 19 Dec 2024 14:48:27 +0000 From: Luka Jankovic To: Luka Jankovic CC: "dev@dpdk.org" , =?utf-8?B?TWF0dGlhcyBSw7ZubmJsb20=?= Subject: [RFC v2 1/1] eventdev: add atomic queue to test-eventdev app Thread-Topic: [RFC v2 1/1] eventdev: add atomic queue to test-eventdev app Thread-Index: AQHbUiUPpSklfHxXTkKzm74V6u1lRA== Date: Thu, 19 Dec 2024 14:48:27 +0000 Message-ID: <5f83763833a2bcbaeea2730b982edeb5c2010f74.camel@ericsson.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=ericsson.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: VI1PR07MB5248:EE_|DBAPR07MB6806:EE_ x-ms-office365-filtering-correlation-id: 5a582be6-3e54-4870-c3f3-08dd203c3275 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; ARA:13230040|1800799024|376014|366016|7053199007|38070700018; x-microsoft-antispam-message-info: =?utf-8?B?d0JJeTNITUJQUmx5VzUyNXg3aXl0VHA0UndnbDBGVXRxSkdhZm1wRXBSTWQ0?= =?utf-8?B?d3laRDViMWh4K0dLS3RCcVpTN0YwWnJVbDAzc0EzVEJTNlhVT0RVdVFpZGlq?= =?utf-8?B?aFJYelo3YkdjR2xBV2N5eTZFN2RRbkFMcXlkY3ZJWGNYZTRNZjA1ZWZlSkJi?= =?utf-8?B?V1FLb1dsUVJKQ2ExQkMvQVQ2d3pZclNPQzVHQ24vMWhRME16bFBZc0pLQmlK?= =?utf-8?B?bkVFOXRCV2VGa0VwLy8vc1dNd3Q0Qm1yYm5vU0Y4eUxGeWtuSi8yTWxTeG00?= =?utf-8?B?M21kdXAyL2ZnekM3UEZNL1NlVnVEY3dISFFHanpDZDRLNkNWSGJ0elpSVTQ2?= =?utf-8?B?ekxmK2M3bUxpVVVJbUxubGg0ekM5SHA4M0paUURPSzZwZzFoUVl0TDU3OW01?= =?utf-8?B?c0NMbjZJRDFhOWhRSzJHYUFtQWZhczBKeElzSDhwQksrVUNsSG5EZXZlanBv?= =?utf-8?B?WFBLc3lva2pKSjEyYXc2eSt1YzU4UFRQTnM1djdITUdoUTRHOC9qanM5OHFy?= =?utf-8?B?SVBMTXJNZC9yeCtqS1RXZzY1dDc4RnEzRUNqS3IrN1dzcFUvT00rYU1QVnd6?= =?utf-8?B?bjlqOUVJbUNrcFFjSy9EcGlxc0ZEUVVyWFBSbjJzbWJ5S3J2SnZIOGYwMHJm?= =?utf-8?B?ajFCUFFWeksxTlpUWDJGUWU4eW9KRGo5Z2lBa1NUMGx6R2J3bWxiaFcrZjhh?= =?utf-8?B?NkpBdVJyTVovY2EvV2Q2R0J3cFYvbjErNldEaDB6c0NWd25XM1NXNzZSWHF4?= =?utf-8?B?QTJpVWxuTmQ5S3FXR0pISS9CSTRFRTViVmdXaXVydXBWYzZXOFRZU2ZTN2hi?= =?utf-8?B?eXVyUUVtSmE0UmxNNG9qOVB1b1N1QUNtaDNBNUQ4d3M4QVYzL05QZWpRZGlU?= =?utf-8?B?VTgyL1oyTEloQjZHVGJ3ZlFqRWlKWjRUaXlOWnFmR3cxT1lPcW9GK0NQVjVW?= =?utf-8?B?TkRTZTg3Nkc3RmdubSs2Y2d2ekp4RlNNMnJ3YlVmUHJZQWd6R1p4ZFZraWdl?= =?utf-8?B?WWtrRWNQNDBuNXFLSnlzL1pwMzVKWUJOL1Ezb1BJTEswaVNCR0g0UXRMYk93?= =?utf-8?B?dGtLZStGQVl6eHF0UXJjenRkYzBKYXQ5YjNNSjJPUkRCR3JRRmp1OWh3YWlx?= =?utf-8?B?OGpPcnJzcm9yZVlCa2ZHeGRQa01naklmM2FOZ1A5V3JIYU51UDl4RFdWazdM?= =?utf-8?B?K1k5TXByL3hOMVI2bWRuYjBNRlpEZDdVNFZzcEo5dkFHQ2V4UGVHZnA4N2VT?= =?utf-8?B?RFpuK0FuckhjS3BVNndYUnh6UXc2cHIyZGxaV0lSOUUvMzUwU3F0MkRCRGtm?= =?utf-8?B?RG4xNFBMMXlwTW92WVp2SDZSckVZcWtaVXlTVmF1NFFIcDV6UzFGYitoSWEx?= =?utf-8?B?RXRDYmlRYnl0TEdRUGVGYitBVU9UQzhZNExETFlmcWJqQm5ERU5lSFZDc2V2?= =?utf-8?B?dklBOGhBTnhUMFZXaGpDUG5uM3JIN2ltcmlyZVFJSmhVUmRvQjZ1ZDA0Q3dh?= =?utf-8?B?ZXVMR0Jia3ZNZTRVU0VLTlpmc1FneEs3eEdhU1FnQkZYUzZxZnRmblpIa29Q?= =?utf-8?B?WEdxZ1RWaGdLVDlaOXpoRzIwaEZEYWJKMWptNkVWdXZzejRXNE1pMVlleVMr?= =?utf-8?B?NXlhcFVMeVNtY0xZWm5VaG9qVE5hVGozQU4wY05DRVJWaEl2UkJZV2VUNUVC?= =?utf-8?B?T2doaWRXWGpoSjh3R0JKa1o3NnNkWmlNYlAzS2tiUERBSEp6THFSM25uQ0pE?= =?utf-8?B?VEZpUHRSZ016RFZ2dHFwMGxJUk14akFuNU51TWtwRlJvbm1ERUFOVlEyMGRo?= =?utf-8?B?MnZPSjc3eUluSmRUc215MjI3VW16MnVXTkVyOERDSUNaQW1HRUtIVEFrRndH?= =?utf-8?B?WXg2N2Ixc3lYVGFvTXVrWHVDQVFhcVdvYkhJUFdxTGRDUnorWElQOGprQ1Jo?= =?utf-8?Q?BuJ7S61JYNAEY3sjWjwh5r0wTAnNAlU+?= x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:VI1PR07MB5248.eurprd07.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(1800799024)(376014)(366016)(7053199007)(38070700018); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?VFE2bFl3V3JCc1R6MUlpQXZTdmdlTEZOc04rQnJSU1MzU2dZaVdPQkRMaURC?= =?utf-8?B?SFhYNEtiNjVLU0cyTGZ5Vjd2eFpucStwSFR1emJIemZxVkxNN2ZJT1J3eWw5?= =?utf-8?B?bVZNVU0xbmdtUFJHWTRpQ002Q0hmeWxuYUE5disyZUxYZ3JiSHhvWlVPVGhw?= =?utf-8?B?cnIvTHorVDlkeXNrMnllemJUWm10RUpqb29sSlFRd1picWVGYXlFUGhQMW5V?= =?utf-8?B?czZ5bEowbHhpUnhUME54MXVuc0RaSUs2Yzk3clFMekp5QWcxTWhrSkozRU1n?= =?utf-8?B?N2diVjJ6NTZmQXcvWGIxQ24vZkI1L2NCaFY4NVRmaFZtRDlKUEtjamFqVEJF?= =?utf-8?B?aW1LYkV3eURoVTEraElMK1pqTXJ6YU1YL2xYQ2hzb2NraHAvckRzZDNaVFhn?= =?utf-8?B?ZmlINVNEdFRQN2Q4akJ3anJLd3Vkdy8xdGYyT1lyMkdWWXNCQ3NnVHh4V2xL?= =?utf-8?B?L2l4dzhMeEVmRDVCdGNyQWFrY0lEcndEK0F2b2FRdDI3YnU0Wi9zYTdtQ2cr?= =?utf-8?B?dUplVnhpd1FPa1hYYm1PVG5MS01MOVd5RjROSzFnY3NCK1JmYWVXR0VWYWdL?= =?utf-8?B?NTlSNTVlZEJmYW9QZldCWHR6ZGkzN21oUFpDVVFIUklBc3RjNFd5Q2RHVEdI?= =?utf-8?B?eHNlb2VJYVpVT0J6L3UvQThZcjFvY2pQSHNVTE1BUjZ2TTRoSDlTZ2RQY0Nr?= =?utf-8?B?UmZmckdCZDlpQmI5alM5RmN0alBRUHR4UitmNk1CKzFyUUNEZ2RER3Z5TEp2?= =?utf-8?B?VklGWHcyc0lkdEN6RVdWMVhmRUFvZ3A3ZTBSaU1zL2wwQ2xqVDI1N2JvSmxC?= =?utf-8?B?bkd3K00xUXY4bEVVWEtldVc1T3JDcTlxYzBqcXRVZm0wS3VuZUN3YkttYmJi?= =?utf-8?B?L25YV0tqS1lvM2t5REI3MGJvclR2Vk12bkpHazJVSXZ1Vk9HRlFycjVGMm5n?= =?utf-8?B?RzF4NzB4cTV5SCtVdWd0WDNZbnl3TEJnK2k2TnVqSmhIZ1R6TllXeGtUOXVU?= =?utf-8?B?WW00QW9Qd21tMG02UXBrcXhJNTlyT1l4UWFOaTVCYkk4WWYwUUVFVE1BZktm?= =?utf-8?B?R05aOGdiMXBmckhtMXQxei9pSEh2SDV1ZDBiZ0hxa0hOZ21hbk1tT2o5Q1FG?= =?utf-8?B?dGMvcHZqV0hCUGpRYkl6WnREM20rOWFvWjluK0xaOFoxUm8xSFc3NFVjNFlM?= =?utf-8?B?VGZuOUt4N1lSRjFBaWlJSzM5N3IwN3JlWlpIemhwc003dkJINzRraGF3bms4?= =?utf-8?B?Y1FwYThkcUtTR25Jc3R0MkxWT2lOVHd0L01zTGZTUWxjUVBGY3d2Q2dTeWtM?= =?utf-8?B?VUhjNk1LZ0pSdUhQbURsQnQySHFoOStsTVlCcS9Da3p6dHcrMlkxTlFScVpn?= =?utf-8?B?MGR3THlneVhwQU5KSEdITmpLd1d3UEJaOVNkcENqa0U2N1FQeUI2d3lycm51?= =?utf-8?B?cnNTbExCcmo4dWdDaGFJc3AyWFFyL01HT2Q1K1pzaVdoanNzRE4xRXJ2dEtr?= =?utf-8?B?bGEvNUdKcmlrTnV1d016TjNLVCtBdXNweDIvTWJacVdCNlBnQU5EMFBpUEhq?= =?utf-8?B?YWpjOGpqVVlWMUwwUlVTTnYrcVNablhjUVVrQTNocVE0WU05M0taZUhKemZ3?= =?utf-8?B?TEt1QnJCVDU4MXlFcERpNXJYdGEwZGJWR0xSTVp4WmdOS0lCSVRGdWpnRlho?= =?utf-8?B?RDU5L1BmRmVPUC9DYzExcDBMSnVCVTNrVWpSRWxpZng3NUV0YU55cXczVGty?= =?utf-8?B?WmhXVjAzZjNBQTVxMHR0Ym1YNndBRnpyVEs4aVQyclpDYmNNL2tmdk56SllI?= =?utf-8?B?V0Y1MEFNaTJzSGFmeUVMM0djTU9QREhMcm5BSkxZaTl5b0FCcnA5ZVNrTkpB?= =?utf-8?B?Uk5KY05LR1BPbkFUazBNQlgxRWJMUnpuNElCbUNGa1dzRGJWMEV4Y3kzZEp5?= =?utf-8?B?M1d1UGJZdFNqeEJMOEtUWTNhN2NDd2t6Rk9SemlTTjYrWmRON0lKTms2N0pN?= =?utf-8?B?L1FrWWtDWXhTdjNXMTdwelNlZE8vblMrZXk0SmljVUR0dThqRlc0elVMbzZZ?= =?utf-8?B?ZmxRL2FmSG1lTTJDWDN0T1dtZjZRR1BEYko5WDIxK0luaFNOMUM1bzRvQW1q?= =?utf-8?B?ejNFYW1Bb1NoR0RWVjZsaEhxSEtOaGhlWDlUUUJiek5VTC9BYUZYZmM1dk5E?= =?utf-8?B?RXc9PQ==?= Content-Type: text/plain; charset="utf-8" Content-ID: <697AF5E4DFADBA4CB1551ECCF0B5A02A@eurprd07.prod.outlook.com> Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: ericsson.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: VI1PR07MB5248.eurprd07.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 5a582be6-3e54-4870-c3f3-08dd203c3275 X-MS-Exchange-CrossTenant-originalarrivaltime: 19 Dec 2024 14:48:27.2658 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 92e84ceb-fbfd-47ab-be52-080c6b87953f X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: kJFqKFF5NHHXOj22K2F5gC4rsv8tFOKbSVhcsCL5eITABwwiR+G9/lPeXVTZ/mBtFs1/3vNWXVpmgJU4x87s6CAmTP7niUTpqD5R0WXz/Fk= X-MS-Exchange-Transport-CrossTenantHeadersStamped: DBAPR07MB6806 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 RnJvbSAyZTU1ZWNkMGU1MjJmNTBjYmIzNjM1ZjUzYjAyNWUxNjVkYjdjZjNlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQ0KSW4tUmVwbHktVG86IDwyMjhkNDRhNmYyZjFmNmE0ZmI1NTE5ZDlhOTFj OTk5NzNmOGQ3MzUyLmNhbWVsQGVyaWNzc29uLmNvbT4NClJlZmVyZW5jZXM6IDwyMjhkNDRhNmYy ZjFmNmE0ZmI1NTE5ZDlhOTFjOTk5NzNmOGQ3MzUyLmNhbWVsQGVyaWNzc29uLmNvbT4NCkZyb206 IEx1a2EgSmFua292aWMgPGx1a2EuamFua292aWNAZXJpY3Nzb24uY29tPg0KRGF0ZTogVGh1LCAx OSBEZWMgMjAyNCAxMzozMToyNiArMDAwMA0KU3ViamVjdDogW1JGQyB2MiAxLzFdIGV2ZW50ZGV2 OiBhZGQgYXRvbWljIHF1ZXVlIHRvIHRlc3QtZXZlbnRkZXYgYXBwDQpUbzogbHVrYS5qYW5rb3Zp Y0Blcmljc3Nvbi5jb20NCkNjOiBkZXZAZHBkay5vcmcsDQogICAgbWF0dGlhcy5yb25uYmxvbUBl cmljc3Nvbi5jb20NCg0KQWRkIGFuIGF0b21pYyBxdWV1ZSB0ZXN0IGJhc2VkIG9uIHRoZSBvcmRl ciBxdWV1ZSB0ZXN0IGJ1dCB1c2UgZXhjbHVzaXZlbHkgYXRvbWljIHF1ZXVlcy4NClRoaXMgbWFr ZXMgaXQgY29tcGF0aWJsZSB3aXRoIGV2ZW50IGRldmljZXMgc3VjaCBhcyB0aGUgZGlzdHJpYnV0 ZWQgc29mdHdhcmUgZXZlbnRkZXYuDQoNClRoZSB0ZXN0IGRldGVjdHMgd2hldGhlciBwb3J0IG1h aW50ZW5hbmNlIGlzIHJlcXVpcmVkLg0KDQpUbyB2ZXJpZnkgYXRvbWljaXR5LCBhIHNwaW5sb2Nr IGlzIHNldCB1cCBmb3IgZWFjaCBjb21iaW5hdGlvbiBvZiBxdWV1ZSBhbmQgZmxvdy4NCkl0IGlz IHRha2VuIHdoZW5ldmVyIGFuIGV2ZW50IGlzIGRlcXVldWVkIGZvciBwcm9jZXNzaW5nIGFuZCBy ZWxlYXNlZCB3aGVuIHByb2Nlc3NpbmcgaXMgZmluaXNoZWQuDQpUaGUgdGVzdCB3aWxsIGZhaWwg aWYgYSBwb3J0IGF0dGVtcHRzIHRvIHRha2UgYSBsb2NrIHdoaWNoIGlzIGFscmVhZHkgdGFrZW4u DQoNClNpZ25lZC1vZmYtYnk6IEx1a2EgSmFua292aWMgPGx1a2EuamFua292aWNAZXJpY3Nzb24u Y29tPg0KLS0tDQp2MjoNCiAqIENoYW5nZWQgdG8gb25seSBjaGVjayBxdWV1ZSwgZmxvdyBjb21i aW5hdGlvbiwgbm90IHBvcnQsIHF1ZXVlLCBmbG93Lg0KICogTG9jayBpcyBvbmx5IGhlbGQgd2hl biBhIHBhY2tldCBpcyBwcm9jZXNzZWQuDQogKiBVdGlsaXplIGV2ZW50IHU2NCBpbnN0ZWFkIG9m IG1idWYuDQogKiBHZW5lcmFsIGNsZWFudXAuDQotLS0NCiBhcHAvdGVzdC1ldmVudGRldi9ldnRf Y29tbW9uLmggICAgICAgIHwgIDEwICsNCiBhcHAvdGVzdC1ldmVudGRldi9tZXNvbi5idWlsZCAg ICAgICAgIHwgICAxICsNCiBhcHAvdGVzdC1ldmVudGRldi90ZXN0X2F0b21pY19xdWV1ZS5jIHwg MzcyICsrKysrKysrKysrKysrKysrKysrKysrKysrDQogMyBmaWxlcyBjaGFuZ2VkLCAzODMgaW5z ZXJ0aW9ucygrKQ0KIGNyZWF0ZSBtb2RlIDEwMDY0NCBhcHAvdGVzdC1ldmVudGRldi90ZXN0X2F0 b21pY19xdWV1ZS5jDQoNCmRpZmYgLS1naXQgYS9hcHAvdGVzdC1ldmVudGRldi9ldnRfY29tbW9u LmggYi9hcHAvdGVzdC1ldmVudGRldi9ldnRfY29tbW9uLmgNCmluZGV4IDkwMWI4YmE1NWQuLmFk YjAyNGMwMTEgMTAwNjQ0DQotLS0gYS9hcHAvdGVzdC1ldmVudGRldi9ldnRfY29tbW9uLmgNCisr KyBiL2FwcC90ZXN0LWV2ZW50ZGV2L2V2dF9jb21tb24uaA0KQEAgLTEzOCw2ICsxMzgsMTYgQEAg ZXZ0X2hhc19mbG93X2lkKHVpbnQ4X3QgZGV2X2lkKQ0KIAkJCXRydWUgOiBmYWxzZTsNCiB9DQog DQorc3RhdGljIGlubGluZSBib29sDQorZXZ0X2lzX21haW50ZW5hbmNlX2ZyZWUodWludDhfdCBk ZXZfaWQpDQorew0KKwlzdHJ1Y3QgcnRlX2V2ZW50X2Rldl9pbmZvIGRldl9pbmZvOw0KKw0KKwly dGVfZXZlbnRfZGV2X2luZm9fZ2V0KGRldl9pZCwgJmRldl9pbmZvKTsNCisJcmV0dXJuIChkZXZf aW5mby5ldmVudF9kZXZfY2FwICYgUlRFX0VWRU5UX0RFVl9DQVBfTUFJTlRFTkFOQ0VfRlJFRSkg Pw0KKwkJCXRydWUgOiBmYWxzZTsNCit9DQorDQogc3RhdGljIGlubGluZSBpbnQNCiBldnRfc2Vy dmljZV9zZXR1cCh1aW50MzJfdCBzZXJ2aWNlX2lkKQ0KIHsNCmRpZmYgLS1naXQgYS9hcHAvdGVz dC1ldmVudGRldi9tZXNvbi5idWlsZCBiL2FwcC90ZXN0LWV2ZW50ZGV2L21lc29uLmJ1aWxkDQpp bmRleCBhYjg3NjljNzU1Li5kYjVhZGQzOWViIDEwMDY0NA0KLS0tIGEvYXBwL3Rlc3QtZXZlbnRk ZXYvbWVzb24uYnVpbGQNCisrKyBiL2FwcC90ZXN0LWV2ZW50ZGV2L21lc29uLmJ1aWxkDQpAQCAt MTUsNiArMTUsNyBAQCBzb3VyY2VzID0gZmlsZXMoDQogICAgICAgICAndGVzdF9vcmRlcl9hdHEu YycsDQogICAgICAgICAndGVzdF9vcmRlcl9jb21tb24uYycsDQogICAgICAgICAndGVzdF9vcmRl cl9xdWV1ZS5jJywNCisgICAgICAgICd0ZXN0X2F0b21pY19xdWV1ZS5jJywNCiAgICAgICAgICd0 ZXN0X3BlcmZfYXRxLmMnLA0KICAgICAgICAgJ3Rlc3RfcGVyZl9jb21tb24uYycsDQogICAgICAg ICAndGVzdF9wZXJmX3F1ZXVlLmMnLA0KZGlmZiAtLWdpdCBhL2FwcC90ZXN0LWV2ZW50ZGV2L3Rl c3RfYXRvbWljX3F1ZXVlLmMgYi9hcHAvdGVzdC1ldmVudGRldi90ZXN0X2F0b21pY19xdWV1ZS5j DQpuZXcgZmlsZSBtb2RlIDEwMDY0NA0KaW5kZXggMDAwMDAwMDAwMC4uNTFlOTg4YzUyNw0KLS0t IC9kZXYvbnVsbA0KKysrIGIvYXBwL3Rlc3QtZXZlbnRkZXYvdGVzdF9hdG9taWNfcXVldWUuYw0K QEAgLTAsMCArMSwzNzIgQEANCisjaW5jbHVkZSA8c3RkaW8uaD4NCisjaW5jbHVkZSA8dW5pc3Rk Lmg+DQorI2luY2x1ZGUgPHJ0ZV9sY29yZV92YXIuaD4NCisNCisjaW5jbHVkZSAidGVzdF9vcmRl cl9jb21tb24uaCINCisNCisjZGVmaW5lIE5CX1FVRVVFUyAyDQorDQorc3RhdGljIHJ0ZV9zcGlu bG9ja190ICphdG9taWNfbG9ja3M7DQorDQorc3RhdGljIGlubGluZSB1aW50NjRfdA0KK2V2ZW50 X2RhdGFfY3JlYXRlKGZsb3dfaWRfdCBmbG93LCB1aW50MzJfdCBzZXEpDQorew0KKwlyZXR1cm4g KCh1aW50NjRfdClmbG93IDw8IDMyKSB8IHNlcTsNCit9DQorDQorc3RhdGljIGlubGluZSB1aW50 MzJfdA0KK2V2ZW50X2RhdGFfZ2V0X3NlcShzdHJ1Y3QgcnRlX2V2ZW50ICpjb25zdCBldikNCit7 DQorCXJldHVybiBldi0+dTY0ICYgMHhGRkZGRkZGRjsNCit9DQorDQorc3RhdGljIGlubGluZSB1 aW50MzJfdA0KK2V2ZW50X2RhdGFfZ2V0X2Zsb3coc3RydWN0IHJ0ZV9ldmVudCAqY29uc3QgZXYp DQorew0KKwlyZXR1cm4gZXYtPnU2NCA+PiAzMjsNCit9DQorDQorc3RhdGljIGlubGluZSB1aW50 MzJfdA0KK2dldF9sb2NrX2lkeChpbnQgcXVldWUsIGZsb3dfaWRfdCBmbG93LCB1aW50MzJfdCBu Yl9mbG93cykNCit7DQorCXJldHVybiAocXVldWUgKiBuYl9mbG93cykgKyBmbG93Ow0KK30NCisN CitzdGF0aWMgaW5saW5lIGJvb2wNCit0ZXN0X2RvbmUoc3RydWN0IHRlc3Rfb3JkZXIgKmNvbnN0 IHQpDQorew0KKwlyZXR1cm4gdC0+ZXJyIHx8IHQtPnJlc3VsdCA9PSBFVlRfVEVTVF9TVUNDRVNT Ow0KK30NCisNCitzdGF0aWMgaW5saW5lIGludA0KK2F0b21pY19wcm9kdWNlcih2b2lkICphcmcp DQorew0KKwlzdHJ1Y3QgcHJvZF9kYXRhICpwID0gYXJnOw0KKwlzdHJ1Y3QgdGVzdF9vcmRlciAq dCA9IHAtPnQ7DQorCXN0cnVjdCBldnRfb3B0aW9ucyAqb3B0ID0gdC0+b3B0Ow0KKwljb25zdCB1 aW50OF90IGRldl9pZCA9IHAtPmRldl9pZDsNCisJY29uc3QgdWludDhfdCBwb3J0ID0gcC0+cG9y dF9pZDsNCisJY29uc3QgdWludDY0X3QgbmJfcGt0cyA9IHQtPm5iX3BrdHM7DQorCXVpbnQzMl90 ICpwcm9kdWNlcl9mbG93X3NlcSA9IHQtPnByb2R1Y2VyX2Zsb3dfc2VxOw0KKwljb25zdCB1aW50 MzJfdCBuYl9mbG93cyA9IHQtPm5iX2Zsb3dzOw0KKwl1aW50NjRfdCBjb3VudCA9IDA7DQorCXN0 cnVjdCBydGVfZXZlbnQgZXY7DQorDQorCWlmIChvcHQtPnZlcmJvc2VfbGV2ZWwgPiAxKQ0KKwkJ cHJpbnRmKCIlcygpOiBsY29yZSAlZCBkZXZfaWQgJWQgcG9ydD0lZCBxdWV1ZT0lZFxuIiwgX19m dW5jX18sIHJ0ZV9sY29yZV9pZCgpLA0KKwkJCQlkZXZfaWQsIHBvcnQsIHAtPnF1ZXVlX2lkKTsN CisNCisJZXYgPSAoc3RydWN0IHJ0ZV9ldmVudCl7DQorCQkJLmV2ZW50ID0gMCwNCisJCQkub3Ag PSBSVEVfRVZFTlRfT1BfTkVXLA0KKwkJCS5xdWV1ZV9pZCA9IHAtPnF1ZXVlX2lkLA0KKwkJCS5z Y2hlZF90eXBlID0gUlRFX1NDSEVEX1RZUEVfT1JERVJFRCwNCisJCQkucHJpb3JpdHkgPSBSVEVf RVZFTlRfREVWX1BSSU9SSVRZX05PUk1BTCwNCisJCQkuZXZlbnRfdHlwZSA9IFJURV9FVkVOVF9U WVBFX0NQVSwNCisJCQkuc3ViX2V2ZW50X3R5cGUgPSAwIC8qIHN0YWdlIDAgKi8NCisJfTsNCisN CisJd2hpbGUgKGNvdW50IDwgbmJfcGt0cyAmJiB0LT5lcnIgPT0gZmFsc2UpIHsNCisJCWNvbnN0 IGZsb3dfaWRfdCBmbG93ID0gcnRlX3JhbmRfbWF4KG5iX2Zsb3dzKTsNCisNCisJCS8qIE1haW50 YWluIHNlcSBudW1iZXIgcGVyIGZsb3cgKi8NCisJCWV2LnU2NCA9IGV2ZW50X2RhdGFfY3JlYXRl KGZsb3csIHByb2R1Y2VyX2Zsb3dfc2VxW2Zsb3ddKyspOw0KKwkJZXYuZmxvd19pZCA9IGZsb3c7 DQorDQorCQl3aGlsZSAocnRlX2V2ZW50X2VucXVldWVfYnVyc3QoZGV2X2lkLCBwb3J0LCAmZXYs IDEpICE9IDEpIHsNCisJCQlpZiAodC0+ZXJyKQ0KKwkJCQlicmVhazsNCisJCQlydGVfcGF1c2Uo KTsNCisJCX0NCisNCisJCWNvdW50Kys7DQorCX0NCisNCisJaWYgKCFldnRfaXNfbWFpbnRlbmFu Y2VfZnJlZShkZXZfaWQpKSB7DQorCQl3aGlsZSAoIXRlc3RfZG9uZSh0KSkgew0KKwkJCXJ0ZV9l dmVudF9tYWludGFpbihkZXZfaWQsIHBvcnQsIFJURV9FVkVOVF9ERVZfTUFJTlRfT1BfRkxVU0gp Ow0KKwkJCXJ0ZV9wYXVzZSgpOw0KKwkJfQ0KKwl9DQorDQorCXJldHVybiAwOw0KK30NCisNCitz dGF0aWMgX19ydGVfYWx3YXlzX2lubGluZSB2b2lkDQorYXRvbWljX3Byb2Nlc3Nfc3RhZ2VfMChz dHJ1Y3QgcnRlX2V2ZW50ICpjb25zdCBldiwgdWludDMyX3QgbmJfZmxvd3MsIHVpbnQzMl90IHBv cnQpDQorew0KKwljb25zdCB1aW50MzJfdCBmbG93ID0gZXZlbnRfZGF0YV9nZXRfZmxvdyhldik7 DQorDQorCWlmICghcnRlX3NwaW5sb2NrX3RyeWxvY2soJmF0b21pY19sb2Nrc1tnZXRfbG9ja19p ZHgoMCwgZmxvdywgbmJfZmxvd3MpXSkpIHsNCisJCWV2dF9lcnIoIlBvcnQgJXUgdW5hYmxlIHRv IHRha2Ugc3BpbmxvY2sgZm9yIHF1ZXVlICV1LCBmbG93ICV4IiwgcG9ydCwgMCwgZmxvdyk7DQor CX0NCisNCisJZXYtPnF1ZXVlX2lkID0gMTsNCisJZXYtPm9wID0gUlRFX0VWRU5UX09QX0ZPUldB UkQ7DQorCWV2LT5zY2hlZF90eXBlID0gUlRFX1NDSEVEX1RZUEVfQVRPTUlDOw0KKwlldi0+ZXZl bnRfdHlwZSA9IFJURV9FVkVOVF9UWVBFX0NQVTsNCisNCisJcnRlX3NwaW5sb2NrX3VubG9jaygm YXRvbWljX2xvY2tzW2dldF9sb2NrX2lkeCgwLCBmbG93LCBuYl9mbG93cyldKTsNCit9DQorDQor c3RhdGljIF9fcnRlX2Fsd2F5c19pbmxpbmUgdm9pZA0KK2F0b21pY19wcm9jZXNzX3N0YWdlXzEo c3RydWN0IHRlc3Rfb3JkZXIgKmNvbnN0IHQsIHN0cnVjdCBydGVfZXZlbnQgKmNvbnN0IGV2LCB1 aW50MzJfdCBuYl9mbG93cywNCisJCXVpbnQzMl90ICpjb25zdCBleHBlY3RlZF9mbG93X3NlcSwg UlRFX0FUT01JQyh1aW50NjRfdCkgKmNvbnN0IG91dHN0YW5kX3BrdHMsDQorCQl1aW50MzJfdCBw b3J0KQ0KK3sNCisJY29uc3QgdWludDMyX3QgZmxvdyA9IGV2ZW50X2RhdGFfZ2V0X2Zsb3coZXYp Ow0KKw0KKwlpZiAoIXJ0ZV9zcGlubG9ja190cnlsb2NrKCZhdG9taWNfbG9ja3NbZ2V0X2xvY2tf aWR4KDEsIGZsb3csIG5iX2Zsb3dzKV0pKSB7DQorCQlldnRfZXJyKCJQb3J0ICV1IHVuYWJsZSB0 byB0YWtlIHNwaW5sb2NrIGZvciBxdWV1ZSAldSwgZmxvdyAleCIsIHBvcnQsIDAsIGZsb3cpOw0K Kwl9DQorDQorCS8qIGNvbXBhcmUgdGhlIHNlcW4gYWdhaW5zdCBleHBlY3RlZCB2YWx1ZSAqLw0K KwlpZiAoZXZlbnRfZGF0YV9nZXRfc2VxKGV2KSAhPSBleHBlY3RlZF9mbG93X3NlcVtmbG93XSkg ew0KKwkJZXZ0X2VycigiZmxvdz0leCBzZXFuIG1pc21hdGNoIGdvdD0lbHggZXhwZWN0ZWQ9JXgi LCBmbG93LCBldi0+dTY0LA0KKwkJCQlleHBlY3RlZF9mbG93X3NlcVtmbG93XSk7DQorCQl0LT5l cnIgPSB0cnVlOw0KKwl9DQorDQorCWV4cGVjdGVkX2Zsb3dfc2VxW2Zsb3ddKys7DQorCXJ0ZV9h dG9taWNfZmV0Y2hfc3ViX2V4cGxpY2l0KG91dHN0YW5kX3BrdHMsIDEsIHJ0ZV9tZW1vcnlfb3Jk ZXJfcmVsYXhlZCk7DQorDQorCWV2LT5vcCA9IFJURV9FVkVOVF9PUF9SRUxFQVNFOw0KKw0KKwly dGVfc3BpbmxvY2tfdW5sb2NrKCZhdG9taWNfbG9ja3NbZ2V0X2xvY2tfaWR4KDEsIGZsb3csIG5i X2Zsb3dzKV0pOw0KK30NCisNCitzdGF0aWMgaW50DQorYXRvbWljX3F1ZXVlX3dvcmtlcl9idXJz dCh2b2lkICphcmcsIGJvb2wgZmxvd19pZF9jYXAsIHVpbnQzMl90IG1heF9idXJzdCkNCit7DQor CU9SREVSX1dPUktFUl9JTklUOw0KKwlzdHJ1Y3QgcnRlX2V2ZW50IGV2W0JVUlNUX1NJWkVdOw0K Kwl1aW50MTZfdCBpOw0KKw0KKwl3aGlsZSAodC0+ZXJyID09IGZhbHNlKSB7DQorDQorCQl1aW50 MTZfdCBjb25zdCBuYl9yeCA9IHJ0ZV9ldmVudF9kZXF1ZXVlX2J1cnN0KGRldl9pZCwgcG9ydCwg ZXYsIG1heF9idXJzdCwgMCk7DQorDQorCQlpZiAobmJfcnggPT0gMCkgew0KKwkJCWlmIChydGVf YXRvbWljX2xvYWRfZXhwbGljaXQob3V0c3RhbmRfcGt0cywgcnRlX21lbW9yeV9vcmRlcl9yZWxh eGVkKSA8PQ0KKwkJCQkJMCkgew0KKwkJCQlicmVhazsNCisJCQl9DQorCQkJcnRlX3BhdXNlKCk7 DQorCQkJY29udGludWU7DQorCQl9DQorDQorCQlmb3IgKGkgPSAwOyBpIDwgbmJfcng7IGkrKykg ew0KKwkJCWlmICghZmxvd19pZF9jYXApIHsNCisJCQkJZXZbaV0uZmxvd19pZCA9IGV2ZW50X2Rh dGFfZ2V0X2Zsb3coJmV2W2ldKTsNCisJCQl9DQorDQorCQkJc3dpdGNoIChldltpXS5xdWV1ZV9p ZCkgew0KKwkJCWNhc2UgMDoNCisJCQkJYXRvbWljX3Byb2Nlc3Nfc3RhZ2VfMCgmZXZbaV0sIG5i X2Zsb3dzLCBwb3J0KTsNCisJCQkJYnJlYWs7DQorCQkJY2FzZSAxOg0KKwkJCQlhdG9taWNfcHJv Y2Vzc19zdGFnZV8xKHQsICZldltpXSwgbmJfZmxvd3MsIGV4cGVjdGVkX2Zsb3dfc2VxLA0KKwkJ CQkJCW91dHN0YW5kX3BrdHMsIHBvcnQpOw0KKwkJCQlicmVhazsNCisJCQlkZWZhdWx0Og0KKwkJ CQlvcmRlcl9wcm9jZXNzX3N0YWdlX2ludmFsaWQodCwgJmV2W2ldKTsNCisJCQkJYnJlYWs7DQor CQkJfQ0KKwkJfQ0KKw0KKwkJdWludDE2X3QgdG90YWxfZW5xID0gMDsNCisNCisJCWRvIHsNCisJ CQl0b3RhbF9lbnEgKz0gcnRlX2V2ZW50X2VucXVldWVfYnVyc3QoDQorCQkJCQlkZXZfaWQsIHBv cnQsIGV2ICsgdG90YWxfZW5xLCBuYl9yeCAtIHRvdGFsX2VucSk7DQorCQl9IHdoaWxlICh0b3Rh bF9lbnEgPCBuYl9yeCk7DQorCX0NCisNCisJcmV0dXJuIDA7DQorfQ0KKw0KK3N0YXRpYyBpbnQN Cit3b3JrZXJfd3JhcHBlcih2b2lkICphcmcpDQorew0KKwlzdHJ1Y3Qgd29ya2VyX2RhdGEgKncg PSBhcmc7DQorCWludCBtYXhfYnVyc3QgPSBldnRfaGFzX2J1cnN0X21vZGUody0+ZGV2X2lkKSA/ IEJVUlNUX1NJWkUgOiAxOw0KKwljb25zdCBib29sIGZsb3dfaWRfY2FwID0gZXZ0X2hhc19mbG93 X2lkKHctPmRldl9pZCk7DQorDQorCXJldHVybiBhdG9taWNfcXVldWVfd29ya2VyX2J1cnN0KGFy ZywgZmxvd19pZF9jYXAsIG1heF9idXJzdCk7DQorfQ0KKw0KK3N0YXRpYyBpbnQNCithdG9taWNf cXVldWVfbGF1bmNoX2xjb3JlcyhzdHJ1Y3QgZXZ0X3Rlc3QgKnRlc3QsIHN0cnVjdCBldnRfb3B0 aW9ucyAqb3B0KQ0KK3sNCisJaW50IHJldCwgbGNvcmVfaWQ7DQorCXN0cnVjdCB0ZXN0X29yZGVy ICp0ID0gZXZ0X3Rlc3RfcHJpdih0ZXN0KTsNCisNCisJLyogbGF1bmNoIHdvcmtlcnMgKi8NCisN CisJaW50IHdrcl9pZHggPSAwOw0KKwlSVEVfTENPUkVfRk9SRUFDSF9XT1JLRVIobGNvcmVfaWQp IHsNCisJCWlmICghKG9wdC0+d2xjb3Jlc1tsY29yZV9pZF0pKQ0KKwkJCWNvbnRpbnVlOw0KKw0K KwkJcmV0ID0gcnRlX2VhbF9yZW1vdGVfbGF1bmNoKHdvcmtlcl93cmFwcGVyLCAmdC0+d29ya2Vy W3drcl9pZHhdLCBsY29yZV9pZCk7DQorCQlpZiAocmV0KSB7DQorCQkJZXZ0X2VycigiZmFpbGVk IHRvIGxhdW5jaCB3b3JrZXIgJWQiLCBsY29yZV9pZCk7DQorCQkJcmV0dXJuIHJldDsNCisJCX0N CisJCXdrcl9pZHgrKzsNCisJfQ0KKw0KKwkvKiBsYXVuY2ggcHJvZHVjZXIgKi8NCisJaW50IHBs Y29yZSA9IGV2dF9nZXRfZmlyc3RfYWN0aXZlX2xjb3JlKG9wdC0+cGxjb3Jlcyk7DQorDQorCXJl dCA9IHJ0ZV9lYWxfcmVtb3RlX2xhdW5jaChhdG9taWNfcHJvZHVjZXIsICZ0LT5wcm9kLCBwbGNv cmUpOw0KKwlpZiAocmV0KSB7DQorCQlldnRfZXJyKCJmYWlsZWQgdG8gbGF1bmNoIG9yZGVyX3By b2R1Y2VyICVkIiwgcGxjb3JlKTsNCisJCXJldHVybiByZXQ7DQorCX0NCisNCisJdWludDY0X3Qg Y3ljbGVzID0gcnRlX2dldF90aW1lcl9jeWNsZXMoKTsNCisJaW50NjRfdCBvbGRfcmVtYWluaW5n ID0gLTE7DQorDQorCXdoaWxlICh0LT5lcnIgPT0gZmFsc2UpIHsNCisJCXVpbnQ2NF90IG5ld19j eWNsZXMgPSBydGVfZ2V0X3RpbWVyX2N5Y2xlcygpOw0KKwkJaW50NjRfdCByZW1haW5pbmcgPSBy dGVfYXRvbWljX2xvYWRfZXhwbGljaXQoDQorCQkJCSZ0LT5vdXRzdGFuZF9wa3RzLCBydGVfbWVt b3J5X29yZGVyX3JlbGF4ZWQpOw0KKw0KKwkJaWYgKHJlbWFpbmluZyA8PSAwKSB7DQorCQkJdC0+ cmVzdWx0ID0gRVZUX1RFU1RfU1VDQ0VTUzsNCisJCQlicmVhazsNCisJCX0NCisNCisJCWlmIChu ZXdfY3ljbGVzIC0gY3ljbGVzID4gcnRlX2dldF90aW1lcl9oeigpICogMSkgew0KKwkJCXByaW50 ZihDTEdSTiAiXHIlIiBQUklkNjQgIiIgQ0xOUk0sIHJlbWFpbmluZyk7DQorCQkJZmZsdXNoKHN0 ZG91dCk7DQorCQkJaWYgKG9sZF9yZW1haW5pbmcgPT0gcmVtYWluaW5nKSB7DQorCQkJCXJ0ZV9l dmVudF9kZXZfZHVtcChvcHQtPmRldl9pZCwgc3Rkb3V0KTsNCisJCQkJZXZ0X2VycigiTm8gc2No ZWR1bGVzIGZvciBzZWNvbmRzLCBkZWFkbG9jayIpOw0KKwkJCQl0LT5lcnIgPSB0cnVlOw0KKwkJ CQlicmVhazsNCisJCQl9DQorCQkJb2xkX3JlbWFpbmluZyA9IHJlbWFpbmluZzsNCisJCQljeWNs ZXMgPSBuZXdfY3ljbGVzOw0KKwkJfQ0KKwl9DQorCXByaW50ZigiXHIiKTsNCisNCisJcnRlX2Zy ZWUoYXRvbWljX2xvY2tzKTsNCisNCisJcmV0dXJuIDA7DQorfQ0KKw0KK3N0YXRpYyBpbnQNCith dG9taWNfcXVldWVfZXZlbnRkZXZfc2V0dXAoc3RydWN0IGV2dF90ZXN0ICp0ZXN0LCBzdHJ1Y3Qg ZXZ0X29wdGlvbnMgKm9wdCkNCit7DQorCWludCByZXQ7DQorDQorCWNvbnN0IHVpbnQ4X3QgbmJf d29ya2VycyA9IGV2dF9ucl9hY3RpdmVfbGNvcmVzKG9wdC0+d2xjb3Jlcyk7DQorCS8qIG51bWJl ciBvZiBhY3RpdmUgd29ya2VyIGNvcmVzICsgMSBwcm9kdWNlciAqLw0KKwljb25zdCB1aW50OF90 IG5iX3BvcnRzID0gbmJfd29ya2VycyArIDE7DQorDQorCXJldCA9IGV2dF9jb25maWd1cmVfZXZl bnRkZXYob3B0LCBOQl9RVUVVRVMsIG5iX3BvcnRzKTsNCisJaWYgKHJldCkgew0KKwkJZXZ0X2Vy cigiZmFpbGVkIHRvIGNvbmZpZ3VyZSBldmVudGRldiAlZCIsIG9wdC0+ZGV2X2lkKTsNCisJCXJl dHVybiByZXQ7DQorCX0NCisNCisJLyogcTAgY29uZmlndXJhdGlvbiAqLw0KKwlzdHJ1Y3QgcnRl X2V2ZW50X3F1ZXVlX2NvbmYgcTBfYXRvbWljX2NvbmYgPSB7DQorCQkJLnByaW9yaXR5ID0gUlRF X0VWRU5UX0RFVl9QUklPUklUWV9OT1JNQUwsDQorCQkJLnNjaGVkdWxlX3R5cGUgPSBSVEVfU0NI RURfVFlQRV9BVE9NSUMsDQorCQkJLm5iX2F0b21pY19mbG93cyA9IG9wdC0+bmJfZmxvd3MsDQor CQkJLm5iX2F0b21pY19vcmRlcl9zZXF1ZW5jZXMgPSBvcHQtPm5iX2Zsb3dzLA0KKwl9Ow0KKwly ZXQgPSBydGVfZXZlbnRfcXVldWVfc2V0dXAob3B0LT5kZXZfaWQsIDAsICZxMF9hdG9taWNfY29u Zik7DQorCWlmIChyZXQpIHsNCisJCWV2dF9lcnIoImZhaWxlZCB0byBzZXR1cCBxdWV1ZTAgZXZl bnRkZXYgJWQgZXJyICVkIiwgb3B0LT5kZXZfaWQsIHJldCk7DQorCQlyZXR1cm4gcmV0Ow0KKwl9 DQorDQorCS8qIHExIGNvbmZpZ3VyYXRpb24gKi8NCisJc3RydWN0IHJ0ZV9ldmVudF9xdWV1ZV9j b25mIHExX2F0b21pY19jb25mID0gew0KKwkJCS5wcmlvcml0eSA9IFJURV9FVkVOVF9ERVZfUFJJ T1JJVFlfTk9STUFMLA0KKwkJCS5zY2hlZHVsZV90eXBlID0gUlRFX1NDSEVEX1RZUEVfQVRPTUlD LA0KKwkJCS5uYl9hdG9taWNfZmxvd3MgPSBvcHQtPm5iX2Zsb3dzLA0KKwkJCS5uYl9hdG9taWNf b3JkZXJfc2VxdWVuY2VzID0gb3B0LT5uYl9mbG93cywNCisJfTsNCisJcmV0ID0gcnRlX2V2ZW50 X3F1ZXVlX3NldHVwKG9wdC0+ZGV2X2lkLCAxLCAmcTFfYXRvbWljX2NvbmYpOw0KKwlpZiAocmV0 KSB7DQorCQlldnRfZXJyKCJmYWlsZWQgdG8gc2V0dXAgcXVldWUwIGV2ZW50ZGV2ICVkIGVyciAl ZCIsIG9wdC0+ZGV2X2lkLCByZXQpOw0KKwkJcmV0dXJuIHJldDsNCisJfQ0KKw0KKwkvKiBzZXR1 cCBvbmUgcG9ydCBwZXIgd29ya2VyLCBsaW5raW5nIHRvIGFsbCBxdWV1ZXMgKi8NCisJcmV0ID0g b3JkZXJfZXZlbnRfZGV2X3BvcnRfc2V0dXAodGVzdCwgb3B0LCBuYl93b3JrZXJzLCBOQl9RVUVV RVMpOw0KKwlpZiAocmV0KQ0KKwkJcmV0dXJuIHJldDsNCisNCisJaWYgKCFldnRfaGFzX2Rpc3Ry aWJ1dGVkX3NjaGVkKG9wdC0+ZGV2X2lkKSkgew0KKwkJdWludDMyX3Qgc2VydmljZV9pZDsNCisJ CXJ0ZV9ldmVudF9kZXZfc2VydmljZV9pZF9nZXQob3B0LT5kZXZfaWQsICZzZXJ2aWNlX2lkKTsN CisJCXJldCA9IGV2dF9zZXJ2aWNlX3NldHVwKHNlcnZpY2VfaWQpOw0KKwkJaWYgKHJldCkgew0K KwkJCWV2dF9lcnIoIk5vIHNlcnZpY2UgbGNvcmUgZm91bmQgdG8gcnVuIGV2ZW50IGRldi4iKTsN CisJCQlyZXR1cm4gcmV0Ow0KKwkJfQ0KKwl9DQorDQorCXJldCA9IHJ0ZV9ldmVudF9kZXZfc3Rh cnQob3B0LT5kZXZfaWQpOw0KKwlpZiAocmV0KSB7DQorCQlldnRfZXJyKCJmYWlsZWQgdG8gc3Rh cnQgZXZlbnRkZXYgJWQiLCBvcHQtPmRldl9pZCk7DQorCQlyZXR1cm4gcmV0Ow0KKwl9DQorDQor CWNvbnN0IHVpbnQzMl90IG51bV9sb2NrcyA9IE5CX1FVRVVFUyAqIG9wdC0+bmJfZmxvd3M7DQor DQorCWF0b21pY19sb2NrcyA9IHJ0ZV9jYWxsb2MoTlVMTCwgbnVtX2xvY2tzLCBzaXplb2YocnRl X3NwaW5sb2NrX3QpLCAwKTsNCisNCisJZm9yICh1aW50MzJfdCBpID0gMDsgaSA8IG51bV9sb2Nr czsgaSsrKSB7DQorCQlydGVfc3BpbmxvY2tfaW5pdCgmYXRvbWljX2xvY2tzW2ldKTsNCisJfQ0K Kw0KKwlyZXR1cm4gMDsNCit9DQorDQorc3RhdGljIHZvaWQNCithdG9taWNfcXVldWVfb3B0X2R1 bXAoc3RydWN0IGV2dF9vcHRpb25zICpvcHQpDQorew0KKwlvcmRlcl9vcHRfZHVtcChvcHQpOw0K KwlldnRfZHVtcCgibmJfZXZkZXZfcXVldWVzIiwgIiVkIiwgTkJfUVVFVUVTKTsNCit9DQorDQor c3RhdGljIGJvb2wNCithdG9taWNfcXVldWVfY2FwYWJpbGl0eV9jaGVjayhzdHJ1Y3QgZXZ0X29w dGlvbnMgKm9wdCkNCit7DQorCXN0cnVjdCBydGVfZXZlbnRfZGV2X2luZm8gZGV2X2luZm87DQor DQorCXJ0ZV9ldmVudF9kZXZfaW5mb19nZXQob3B0LT5kZXZfaWQsICZkZXZfaW5mbyk7DQorCWlm IChkZXZfaW5mby5tYXhfZXZlbnRfcXVldWVzIDwgTkJfUVVFVUVTIHx8DQorCQkJZGV2X2luZm8u bWF4X2V2ZW50X3BvcnRzIDwgb3JkZXJfbmJfZXZlbnRfcG9ydHMob3B0KSkgew0KKwkJZXZ0X2Vy cigibm90IGVub3VnaCBldmVudGRldiBxdWV1ZXM9JWQvJWQgb3IgcG9ydHM9JWQvJWQiLCBOQl9R VUVVRVMsDQorCQkJCWRldl9pbmZvLm1heF9ldmVudF9xdWV1ZXMsIG9yZGVyX25iX2V2ZW50X3Bv cnRzKG9wdCksDQorCQkJCWRldl9pbmZvLm1heF9ldmVudF9wb3J0cyk7DQorCQlyZXR1cm4gZmFs c2U7DQorCX0NCisNCisJcmV0dXJuIHRydWU7DQorfQ0KKw0KK3N0YXRpYyBjb25zdCBzdHJ1Y3Qg ZXZ0X3Rlc3Rfb3BzIGF0b21pY19xdWV1ZSA9IHsNCisJCS5jYXBfY2hlY2sgPSBhdG9taWNfcXVl dWVfY2FwYWJpbGl0eV9jaGVjaywNCisJCS5vcHRfY2hlY2sgPSBvcmRlcl9vcHRfY2hlY2ssDQor CQkub3B0X2R1bXAgPSBhdG9taWNfcXVldWVfb3B0X2R1bXAsDQorCQkudGVzdF9zZXR1cCA9IG9y ZGVyX3Rlc3Rfc2V0dXAsDQorCQkubWVtcG9vbF9zZXR1cCA9IG9yZGVyX21lbXBvb2xfc2V0dXAs DQorCQkuZXZlbnRkZXZfc2V0dXAgPSBhdG9taWNfcXVldWVfZXZlbnRkZXZfc2V0dXAsDQorCQku bGF1bmNoX2xjb3JlcyA9IGF0b21pY19xdWV1ZV9sYXVuY2hfbGNvcmVzLA0KKwkJLmV2ZW50ZGV2 X2Rlc3Ryb3kgPSBvcmRlcl9ldmVudGRldl9kZXN0cm95LA0KKwkJLm1lbXBvb2xfZGVzdHJveSA9 IG9yZGVyX21lbXBvb2xfZGVzdHJveSwNCisJCS50ZXN0X3Jlc3VsdCA9IG9yZGVyX3Rlc3RfcmVz dWx0LA0KKwkJLnRlc3RfZGVzdHJveSA9IG9yZGVyX3Rlc3RfZGVzdHJveSwNCit9Ow0KKw0KK0VW VF9URVNUX1JFR0lTVEVSKGF0b21pY19xdWV1ZSk7DQotLSANCjIuMzQuMQ0KDQoNCg==