Received: by 2002:a05:6a10:9848:0:0:0:0 with SMTP id x8csp3293373pxf; Mon, 15 Mar 2021 06:28:45 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyW9IXHe9wx+2FKojXJG3k6wWmIpHUg68KI80tC7bR6abNsubQXl1gerkyTt2FFgN7afjnT X-Received: by 2002:aa7:d687:: with SMTP id d7mr29436123edr.118.1615814925515; Mon, 15 Mar 2021 06:28:45 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1615814925; cv=pass; d=google.com; s=arc-20160816; b=k3+VYInFRz9Tjf9B9X/YLaoC+Cm6e43VenXWUFf1IH7dAjBqi8mpZNDCkikvWWFbum Hq6uw+ybWIrXyIwyd567HU0ueO8+Ev0XGOwP+9mjv6psWFShVFC3gNls3KRqo0GqNlZL HucuzctzX9hpvmO7ukO81gnN9PvDY7F0VYeeh2z3iFGn7aEFae1FHtorUFoHnMTwV7gJ nh3auzE4G5gWa+EV7afc9F+MThWmPE1mBIGEGE5ES+aeiPtoACIuPcXvXUEKf9KjZdaA J0RnirXSUbI3DaGclgtdSKlST88UIVMpJYhknPi/aTOLEolX8PwVW5vFt3HARP23nstt CEdg== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:content-transfer-encoding :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=whxl4F3TCdedmJHdfkKObzSoR4EYKQOw6aY03MWjiTA=; b=rvorX5XpSIW4sgoCLIZmq4Frncm7qlkFHcufamfkVeY+noGVX8EeM0VPualptkcMQu kwu4M0HNqIzCZp2WHv8Va0rxk1vbyKe0DoH5xBR/IrKIzd256QpePgSgQ//aqt+sxSVr I607yEHbTFuq4q1BvhSAUnIglcVnVxh0f6l4EOSb+yo6DQFnMi0ZYyHwMcdFwlNhINak xnUDSRbxu21aR4pYJL28BEWNAVFIONt18O5CHtG2XP1IAODLmrCwe9HYqyFkC9dW0N6W ZnYFnXVNrH+SlW6CBkskPHvC6P914gCiPtBPFPuy7v2icWfwxMZHHk01sps97sp3xrk3 glIw== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@silabs.onmicrosoft.com header.s=selector2-silabs-onmicrosoft-com header.b="dBe/6ws6"; arc=pass (i=1 spf=pass spfdomain=silabs.com dkim=pass dkdomain=silabs.com dmarc=pass fromdomain=silabs.com); spf=pass (google.com: domain of linux-wireless-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-wireless-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id z4si11649287ejj.20.2021.03.15.06.28.22; Mon, 15 Mar 2021 06:28:45 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-wireless-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@silabs.onmicrosoft.com header.s=selector2-silabs-onmicrosoft-com header.b="dBe/6ws6"; arc=pass (i=1 spf=pass spfdomain=silabs.com dkim=pass dkdomain=silabs.com dmarc=pass fromdomain=silabs.com); spf=pass (google.com: domain of linux-wireless-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-wireless-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231577AbhCON1x (ORCPT + 99 others); Mon, 15 Mar 2021 09:27:53 -0400 Received: from mail-dm3nam07on2051.outbound.protection.outlook.com ([40.107.95.51]:29163 "EHLO NAM02-DM3-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S230442AbhCON0L (ORCPT ); Mon, 15 Mar 2021 09:26:11 -0400 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=J29VRsksZ3nad43Dsq5Mtlw5i+g62Qljf29ywu251+TukA5h8atsCx76vcu5bucLJ/ulMOPKUZUyUknRMqqmnaqg8KOZBWJG9IZwsbu9JFopNYQD6jVKe2STMoKHs3XeIHrov5rJo8Px7ovAdxAXKKFtUgkIcwwlgkOxGPiHHYsgjBQ8vNPxpJbRDf7DlIcomSJuiIFX6XAUjDLPe08SNQPFhAYK7qT2RKDDXdDxpmJofl/WdwMNMwvT7cInQiRKgD5IZU0/N1+INf1Y0HtmP5iCvkki8TbELNC9DzBU/DXv1wWDcMXlbrwFyDJtsYuu7hBgTrCLa8nqn9jB+3jfEA== 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=whxl4F3TCdedmJHdfkKObzSoR4EYKQOw6aY03MWjiTA=; b=TymK7NCJgm7TxeD84UFM0IKKabUTQQjimgVANuc5WHCEQFA6tOdvFC6qpExvYQhWNoD/49LECub8Q5jjFYVdYq3EjphKqlNPkMyyXTe1HmeA2uR3vqawunZwIVKqWs+sq/BufB6r4HrL4u/0xRapkQZrsgwyacM4bfoHPb0Ug5aR70b1t2t7bWwgh0908LC0z2FRm12d0uqAX28/Ji3KsfgnEAefltfPPZu/XAHJpgTAKBmLAGp6UCi5OOe2uXftlkwXawv81ZaW4nUq3NmkLaLSeaGBIOzU3sUOgEi4oU0WQjTYnLlcFiFtnCsSeU04b2/lWXP3sL/claRX3eouaQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=silabs.com; dmarc=pass action=none header.from=silabs.com; dkim=pass header.d=silabs.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=silabs.onmicrosoft.com; s=selector2-silabs-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=whxl4F3TCdedmJHdfkKObzSoR4EYKQOw6aY03MWjiTA=; b=dBe/6ws6d3MgyWtcODreHn8tEn681HucBjGTAN/e8REuLW1OSy5YJwkcc9fQwirbyQuT9X8wl3e6u/exPg17FZHNIUi1p1XY7YcYiBCvq6pCoLdIEqaBU1/mhONQlIfozaR1uTCSl0o3S7jF4adFVIpCzEz4M67DNa9+4V8BrV4= Authentication-Results: vger.kernel.org; dkim=none (message not signed) header.d=none;vger.kernel.org; dmarc=none action=none header.from=silabs.com; Received: from SN6PR11MB2718.namprd11.prod.outlook.com (2603:10b6:805:63::18) by SN6PR11MB3117.namprd11.prod.outlook.com (2603:10b6:805:d7::32) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3933.32; Mon, 15 Mar 2021 13:26:09 +0000 Received: from SN6PR11MB2718.namprd11.prod.outlook.com ([fe80::41bc:5ce:dfa0:9701]) by SN6PR11MB2718.namprd11.prod.outlook.com ([fe80::41bc:5ce:dfa0:9701%7]) with mapi id 15.20.3933.032; Mon, 15 Mar 2021 13:26:09 +0000 From: Jerome Pouiller To: linux-wireless@vger.kernel.org, netdev@vger.kernel.org Cc: devel@driverdev.osuosl.org, linux-kernel@vger.kernel.org, Greg Kroah-Hartman , Kalle Valo , "David S . Miller" , devicetree@vger.kernel.org, Rob Herring , linux-mmc@vger.kernel.org, =?UTF-8?q?Pali=20Roh=C3=A1r?= , Ulf Hansson , =?UTF-8?q?J=C3=A9r=C3=B4me=20Pouiller?= Subject: [PATCH v5 17/24] wfx: add queue.c/queue.h Date: Mon, 15 Mar 2021 14:24:54 +0100 Message-Id: <20210315132501.441681-18-Jerome.Pouiller@silabs.com> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20210315132501.441681-1-Jerome.Pouiller@silabs.com> References: <20210315132501.441681-1-Jerome.Pouiller@silabs.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: base64 X-Originating-IP: [2a01:e35:2435:66a0:544b:f17b:7ae8:fb7] X-ClientProxiedBy: SN4PR0801CA0014.namprd08.prod.outlook.com (2603:10b6:803:29::24) To SN6PR11MB2718.namprd11.prod.outlook.com (2603:10b6:805:63::18) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from pc-42.silabs.com (2a01:e35:2435:66a0:544b:f17b:7ae8:fb7) by SN4PR0801CA0014.namprd08.prod.outlook.com (2603:10b6:803:29::24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3933.32 via Frontend Transport; Mon, 15 Mar 2021 13:26:07 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: c2601be9-4968-4615-f3c3-08d8e7b5e51c X-MS-TrafficTypeDiagnostic: SN6PR11MB3117: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:4714; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: w4qNW5h2tWJuWKHL6u4qGsuJZX/9ljf7qEW7c84/+g23jAyjiKDdTUK9rP/qO1y+mMgZ0jOicz55ef2yZGacQ/yho4TjH201O0wT44psKQp0LgOo/shh9b6qJJTH8CiKkgwrEGa18vC9urZmKak5TEY6yzkApArO0hmyUAQlcMA85zhomsmq1GeqFiQ8yWdm0W8fksFzxWBiFr1wvlLSgdUkrAjshzLwNZ/zzICag679b4pdQUBpC08GLH/wJ3d4RdFSYmWCUaXYFK8dfIUDfhhd+CwM0f01oFbA0W9XKnSEv6WX0RBED5F1jCRenCYOqy1hlTTTXd5bvgSigTSwtvRbVxviHwu8xyr6+zfoKrRwmJXy7bocq8WCGvivDnTrBJgo4NC9P/BPo167X/qMQKhTots9/ev54SU31XniqFApXxu4iPSdKOnM42UZMQ1Uq/dZrY7CkdVOG6fBIDWZboili3z45BbYyMBdqWvm2uX6pJ586KZ1koUN5jj70XAN3m1Oa5ToJr0J9uCZKhczJkPt/S5ZRx0wgE609GQAsOJ4FAsBIXgUKzQqB23cCsCz X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SN6PR11MB2718.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(136003)(396003)(39850400004)(376002)(346002)(366004)(1076003)(7696005)(54906003)(2906002)(66946007)(30864003)(52116002)(316002)(86362001)(16526019)(107886003)(6666004)(7416002)(66556008)(2616005)(8676002)(478600001)(6486002)(186003)(8936002)(66574015)(83380400001)(5660300002)(4326008)(36756003)(66476007);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData: =?utf-8?B?QjRkRG1aWFdMbzJHK1dxNlNpTlAzOTZjcWVIZmhoWjBCN2pYbU1UQ3RNc2xh?= =?utf-8?B?Q1lCdkRKbVpIVXBpSjlRdUpzT2kxOER2aU85MWFpTXR6Mjc2WnE0bjVJRDEv?= =?utf-8?B?RXhQSGpycDBaSEhEK2RZeG56OVJYcHlsMTIvaFptNUxKWnZxcXB0ekVIVW9N?= =?utf-8?B?MzAyVktOb2tHejRPbW0xTUg5RjIwOS9XaVNpZE9xQ3k0MFlhK0JBc1Vxcjdo?= =?utf-8?B?SE56V3Rmd1JIWTFEUm85Smg2MW5yeXRWc05aUnFFY0VTRG5IcWx1allXUlh5?= =?utf-8?B?Y2VVVHZLa1p0QktLRFVLWnI4V3ZyRnBXNmlxdVBSa0RZT01JUDhkWTk0akhO?= =?utf-8?B?V1NFVm1TOVFlTmt4UnJjb3RjOElQUWNPQmR4ZG9ndDRzaXlLTzhjWVpoaGto?= =?utf-8?B?eWtUVGwwOXJhaHFRQ0NDY3NYcGx4UDQxc29XbjdxNHhGNkJYcnlkS2dUZHlQ?= =?utf-8?B?ZHljZUZVRjMrSVJROHM5QzN0MlBwZEFHYTJNSDdpam5OSGdhdldPaFk2Umhy?= =?utf-8?B?d3lsVjFXZFl3d0pQUG1YSDlpOGZJMFM4N25RWTNUZEtZUU1VMzZMZXFEZ2RV?= =?utf-8?B?Wlo1R0w3Y3hrMkZjalRBUW5TWkNxb1JpbjlibHhpajl1Yy80eGJOL3plSkRr?= =?utf-8?B?bmRWdVVMUTNuQWZTTW1UNjM5MWNoMllBQ2dNWkdkVGFleGJrdFJtVWkyYjd6?= =?utf-8?B?WU9SaGRwRkQ5RGdiZWVTdHFsYkpUT1BUUFYvMTNRN0l1bWNBWnlxY1hWSWZp?= =?utf-8?B?WkprcmNqUFhDdXFZTnNvYnEyMG8yODlHQVAzUEdET2w5QWFsNE01TzNnOE5Z?= =?utf-8?B?YU43cXpCYnBMMjArajVLaitoRDlPdFI0VXhsS1RLRnMwWlZ6bWFRSEU1QkNQ?= =?utf-8?B?Ri9WRUxvV3VvR0paVytmaTVodnZ1d1JhQXlsK3pWSVFtV3lYc3hHWXl5MzEw?= =?utf-8?B?ZkFXZ20yUkV2VHg5bGx3ODJ2RDAwMlhJOUd6WlRpdGNrMC9RQ0p1VUJxK2Z1?= =?utf-8?B?U3RiSVpvWWVEbUJrMlNlanRkU25wOUdIcVduZGFXN3gyVGl0N0hsYjBranUr?= =?utf-8?B?cjhTQmxqY21rM1RKUlRNTG5USWR1K05uSFhqUE9vT05Na253NE5USWZKR215?= =?utf-8?B?TE5CS1RTbmExWTNLcXdGUEVTR1NOOGFvaHF5OFM5dG5FNlQrTWRjci9IRlNT?= =?utf-8?B?a1JnZ1hKM2NVT0ZQc2xZOWZtb2F3bjZqWVZQbmR6MmlzbmVRV2xVOWRjWlg2?= =?utf-8?B?T3ZtcTJJVEM1UjJmc2JLWUlIbjBvdjBQLzBncjc3VEs0amg1VkdmMVZSd3Na?= =?utf-8?B?VmhlaVVMdVdxbDdJWHZ2UnJEam5zcm83MHlDWXhlWjFTeEFFcG9ETnd3R21m?= =?utf-8?B?cHJ1TXRSSkp3RjdvL1ZBOVFjRzZqQWRCZmszMkFVZGYrMmJXT2t1LzRhL1dP?= =?utf-8?B?TmJTSUJIc3hTSXAxYlF1R1JVRk5SaVQ4MjNicFlzQ3c1VTlKMWxvdjRHZ1hF?= =?utf-8?B?dFN2d1JJalJVb1FpdUtSRkFnai8vSnFyZUlWbUxnRnNFaGpNSGpSRXhBT2NP?= =?utf-8?B?RlFYMWMrL1A3eSt1QWlXYUc2aDdhY1hmZEY3QzMvY0MyRTJTSDN6UmhDeDZZ?= =?utf-8?B?RHdCRUg1ZnVMQlJhT21KYmF1VUVINnlYK2c5dGs2OE5hYXJTUXR2Y0x3VXhy?= =?utf-8?B?MzNCUElMSHNlTTVueWM3L0xhY2dxaXZ0Q2FpeFpWTWU3UWx1c3J6Lzg3cUhB?= =?utf-8?B?SnZiTHh0MFNSNCs3aHpyMTJJMHYvRWpPK1VSVkhlODZwMjVCUWlSUER1VDRm?= =?utf-8?B?THVVaW9GbmVodkRzL00xQzZNWDNQakZRYktUUmRlNS9UeUMveVhwOVFJRGdW?= =?utf-8?Q?Il83KjYmZUx2l?= X-OriginatorOrg: silabs.com X-MS-Exchange-CrossTenant-Network-Message-Id: c2601be9-4968-4615-f3c3-08d8e7b5e51c X-MS-Exchange-CrossTenant-AuthSource: SN6PR11MB2718.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Mar 2021 13:26:09.4420 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 54dbd822-5231-4b20-944d-6f4abcd541fb X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: +CeGpE1p7Fg937084Dml3aozGWRyH5EJwszHteny7PH2xB0TL8E8EF33aRuxb+p5OV/JKdgKYGtVbH9YiyWHwg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN6PR11MB3117 Precedence: bulk List-ID: X-Mailing-List: linux-wireless@vger.kernel.org RnJvbTogSsOpcsO0bWUgUG91aWxsZXIgPGplcm9tZS5wb3VpbGxlckBzaWxhYnMuY29tPgoKU2ln bmVkLW9mZi1ieTogSsOpcsO0bWUgUG91aWxsZXIgPGplcm9tZS5wb3VpbGxlckBzaWxhYnMuY29t PgotLS0KIGRyaXZlcnMvbmV0L3dpcmVsZXNzL3NpbGFicy93ZngvcXVldWUuYyB8IDMwNyArKysr KysrKysrKysrKysrKysrKysrKysKIGRyaXZlcnMvbmV0L3dpcmVsZXNzL3NpbGFicy93ZngvcXVl dWUuaCB8ICA0NSArKysrCiAyIGZpbGVzIGNoYW5nZWQsIDM1MiBpbnNlcnRpb25zKCspCiBjcmVh dGUgbW9kZSAxMDA2NDQgZHJpdmVycy9uZXQvd2lyZWxlc3Mvc2lsYWJzL3dmeC9xdWV1ZS5jCiBj cmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy9uZXQvd2lyZWxlc3Mvc2lsYWJzL3dmeC9xdWV1ZS5o CgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3Mvc2lsYWJzL3dmeC9xdWV1ZS5jIGIv ZHJpdmVycy9uZXQvd2lyZWxlc3Mvc2lsYWJzL3dmeC9xdWV1ZS5jCm5ldyBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uNGRjMTYxZjVmZjcxCi0tLSAvZGV2L251bGwKKysrIGIv ZHJpdmVycy9uZXQvd2lyZWxlc3Mvc2lsYWJzL3dmeC9xdWV1ZS5jCkBAIC0wLDAgKzEsMzA3IEBA CisvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5CisvKgorICogTygxKSBU WCBxdWV1ZSB3aXRoIGJ1aWx0LWluIGFsbG9jYXRvci4KKyAqCisgKiBDb3B5cmlnaHQgKGMpIDIw MTctMjAyMCwgU2lsaWNvbiBMYWJvcmF0b3JpZXMsIEluYy4KKyAqIENvcHlyaWdodCAoYykgMjAx MCwgU1QtRXJpY3Nzb24KKyAqLworI2luY2x1ZGUgPGxpbnV4L3NjaGVkLmg+CisjaW5jbHVkZSA8 bmV0L21hYzgwMjExLmg+CisKKyNpbmNsdWRlICJxdWV1ZS5oIgorI2luY2x1ZGUgIndmeC5oIgor I2luY2x1ZGUgInN0YS5oIgorI2luY2x1ZGUgImRhdGFfdHguaCIKKyNpbmNsdWRlICJ0cmFjZXMu aCIKKwordm9pZCB3ZnhfdHhfbG9jayhzdHJ1Y3Qgd2Z4X2RldiAqd2RldikKK3sKKwlhdG9taWNf aW5jKCZ3ZGV2LT50eF9sb2NrKTsKK30KKwordm9pZCB3ZnhfdHhfdW5sb2NrKHN0cnVjdCB3Znhf ZGV2ICp3ZGV2KQoreworCWludCB0eF9sb2NrID0gYXRvbWljX2RlY19yZXR1cm4oJndkZXYtPnR4 X2xvY2spOworCisJV0FSTih0eF9sb2NrIDwgMCwgImluY29uc2lzdGVudCB0eF9sb2NrIHZhbHVl Iik7CisJaWYgKCF0eF9sb2NrKQorCQl3ZnhfYmhfcmVxdWVzdF90eCh3ZGV2KTsKK30KKwordm9p ZCB3ZnhfdHhfZmx1c2goc3RydWN0IHdmeF9kZXYgKndkZXYpCit7CisJaW50IHJldDsKKworCS8q IERvIG5vdCB3YWl0IGZvciBhbnkgcmVwbHkgaWYgY2hpcCBpcyBmcm96ZW4gKi8KKwlpZiAod2Rl di0+Y2hpcF9mcm96ZW4pCisJCXJldHVybjsKKworCXdmeF90eF9sb2NrKHdkZXYpOworCW11dGV4 X2xvY2soJndkZXYtPmhpZl9jbWQubG9jayk7CisJcmV0ID0gd2FpdF9ldmVudF90aW1lb3V0KHdk ZXYtPmhpZi50eF9idWZmZXJzX2VtcHR5LAorCQkJCSAhd2Rldi0+aGlmLnR4X2J1ZmZlcnNfdXNl ZCwKKwkJCQkgbXNlY3NfdG9famlmZmllcygzMDAwKSk7CisJaWYgKCFyZXQpIHsKKwkJZGV2X3dh cm4od2Rldi0+ZGV2LCAiY2Fubm90IGZsdXNoIHR4IGJ1ZmZlcnMgKCVkIHN0aWxsIGJ1c3kpXG4i LAorCQkJIHdkZXYtPmhpZi50eF9idWZmZXJzX3VzZWQpOworCQl3ZnhfcGVuZGluZ19kdW1wX29s ZF9mcmFtZXMod2RldiwgMzAwMCk7CisJCS8qIEZJWE1FOiBkcm9wIHBlbmRpbmcgZnJhbWVzIGhl cmUgKi8KKwkJd2Rldi0+Y2hpcF9mcm96ZW4gPSB0cnVlOworCX0KKwltdXRleF91bmxvY2soJndk ZXYtPmhpZl9jbWQubG9jayk7CisJd2Z4X3R4X3VubG9jayh3ZGV2KTsKK30KKwordm9pZCB3Znhf dHhfbG9ja19mbHVzaChzdHJ1Y3Qgd2Z4X2RldiAqd2RldikKK3sKKwl3ZnhfdHhfbG9jayh3ZGV2 KTsKKwl3ZnhfdHhfZmx1c2god2Rldik7Cit9CisKK3ZvaWQgd2Z4X3R4X3F1ZXVlc19pbml0KHN0 cnVjdCB3ZnhfdmlmICp3dmlmKQoreworCS8qIFRoZSBkZXZpY2UgaXMgaW4gY2hhcmdlIHRvIHJl c3BlY3QgdGhlIGRldGFpbHMgb2YgdGhlIFFvUyBwYXJhbWV0ZXJzLgorCSAqIFRoZSBkcml2ZXIg anVzdCBlbnN1cmUgdGhhdCBpdCByb3VnaHRseSByZXNwZWN0IHRoZSBwcmlvcml0aWVzIHRvCisJ ICogYXZvaWQgYW55IHNob3J0YWdlLgorCSAqLworCWNvbnN0IGludCBwcmlvcml0aWVzW0lFRUU4 MDIxMV9OVU1fQUNTXSA9IHsgMSwgMiwgNjQsIDEyOCB9OworCWludCBpOworCisJZm9yIChpID0g MDsgaSA8IElFRUU4MDIxMV9OVU1fQUNTOyArK2kpIHsKKwkJc2tiX3F1ZXVlX2hlYWRfaW5pdCgm d3ZpZi0+dHhfcXVldWVbaV0ubm9ybWFsKTsKKwkJc2tiX3F1ZXVlX2hlYWRfaW5pdCgmd3ZpZi0+ dHhfcXVldWVbaV0uY2FiKTsKKwkJd3ZpZi0+dHhfcXVldWVbaV0ucHJpb3JpdHkgPSBwcmlvcml0 aWVzW2ldOworCX0KK30KKwordm9pZCB3ZnhfdHhfcXVldWVzX2NoZWNrX2VtcHR5KHN0cnVjdCB3 ZnhfdmlmICp3dmlmKQoreworCWludCBpOworCisJZm9yIChpID0gMDsgaSA8IElFRUU4MDIxMV9O VU1fQUNTOyArK2kpIHsKKwkJV0FSTl9PTihhdG9taWNfcmVhZCgmd3ZpZi0+dHhfcXVldWVbaV0u cGVuZGluZ19mcmFtZXMpKTsKKwkJV0FSTl9PTighc2tiX3F1ZXVlX2VtcHR5X2xvY2tsZXNzKCZ3 dmlmLT50eF9xdWV1ZVtpXS5ub3JtYWwpKTsKKwkJV0FSTl9PTighc2tiX3F1ZXVlX2VtcHR5X2xv Y2tsZXNzKCZ3dmlmLT50eF9xdWV1ZVtpXS5jYWIpKTsKKwl9Cit9CisKK2Jvb2wgd2Z4X3R4X3F1 ZXVlX2VtcHR5KHN0cnVjdCB3ZnhfdmlmICp3dmlmLCBzdHJ1Y3Qgd2Z4X3F1ZXVlICpxdWV1ZSkK K3sKKwlyZXR1cm4gc2tiX3F1ZXVlX2VtcHR5KCZxdWV1ZS0+bm9ybWFsKSAmJiBza2JfcXVldWVf ZW1wdHkoJnF1ZXVlLT5jYWIpOworfQorCitzdGF0aWMgdm9pZCBfX3dmeF90eF9xdWV1ZV9kcm9w KHN0cnVjdCB3ZnhfdmlmICp3dmlmLAorCQkJCXN0cnVjdCBza19idWZmX2hlYWQgKnNrYl9xdWV1 ZSwKKwkJCQlzdHJ1Y3Qgc2tfYnVmZl9oZWFkICpkcm9wcGVkKQoreworCXN0cnVjdCBza19idWZm ICpza2IsICp0bXA7CisKKwlzcGluX2xvY2tfYmgoJnNrYl9xdWV1ZS0+bG9jayk7CisJc2tiX3F1 ZXVlX3dhbGtfc2FmZShza2JfcXVldWUsIHNrYiwgdG1wKSB7CisJCV9fc2tiX3VubGluayhza2Is IHNrYl9xdWV1ZSk7CisJCXNrYl9xdWV1ZV9oZWFkKGRyb3BwZWQsIHNrYik7CisJfQorCXNwaW5f dW5sb2NrX2JoKCZza2JfcXVldWUtPmxvY2spOworfQorCit2b2lkIHdmeF90eF9xdWV1ZV9kcm9w KHN0cnVjdCB3ZnhfdmlmICp3dmlmLCBzdHJ1Y3Qgd2Z4X3F1ZXVlICpxdWV1ZSwKKwkJICAgICAg IHN0cnVjdCBza19idWZmX2hlYWQgKmRyb3BwZWQpCit7CisJX193ZnhfdHhfcXVldWVfZHJvcCh3 dmlmLCAmcXVldWUtPmNhYiwgZHJvcHBlZCk7CisJX193ZnhfdHhfcXVldWVfZHJvcCh3dmlmLCAm cXVldWUtPm5vcm1hbCwgZHJvcHBlZCk7CisJd2FrZV91cCgmd3ZpZi0+d2Rldi0+dHhfZGVxdWV1 ZSk7Cit9CisKK3ZvaWQgd2Z4X3R4X3F1ZXVlc19wdXQoc3RydWN0IHdmeF92aWYgKnd2aWYsIHN0 cnVjdCBza19idWZmICpza2IpCit7CisJc3RydWN0IHdmeF9xdWV1ZSAqcXVldWUgPSAmd3ZpZi0+ dHhfcXVldWVbc2tiX2dldF9xdWV1ZV9tYXBwaW5nKHNrYildOworCXN0cnVjdCBpZWVlODAyMTFf dHhfaW5mbyAqdHhfaW5mbyA9IElFRUU4MDIxMV9TS0JfQ0Ioc2tiKTsKKworCWlmICh0eF9pbmZv LT5mbGFncyAmIElFRUU4MDIxMV9UWF9DVExfU0VORF9BRlRFUl9EVElNKQorCQlza2JfcXVldWVf dGFpbCgmcXVldWUtPmNhYiwgc2tiKTsKKwllbHNlCisJCXNrYl9xdWV1ZV90YWlsKCZxdWV1ZS0+ bm9ybWFsLCBza2IpOworfQorCit2b2lkIHdmeF9wZW5kaW5nX2Ryb3Aoc3RydWN0IHdmeF9kZXYg KndkZXYsIHN0cnVjdCBza19idWZmX2hlYWQgKmRyb3BwZWQpCit7CisJc3RydWN0IHdmeF9xdWV1 ZSAqcXVldWU7CisJc3RydWN0IHdmeF92aWYgKnd2aWY7CisJc3RydWN0IGhpZl9tc2cgKmhpZjsK KwlzdHJ1Y3Qgc2tfYnVmZiAqc2tiOworCisJV0FSTighd2Rldi0+Y2hpcF9mcm96ZW4sICIlcyBz aG91bGQgb25seSBiZSB1c2VkIHRvIHJlY292ZXIgYSBmcm96ZW4gZGV2aWNlIiwKKwkgICAgIF9f ZnVuY19fKTsKKwl3aGlsZSAoKHNrYiA9IHNrYl9kZXF1ZXVlKCZ3ZGV2LT50eF9wZW5kaW5nKSkg IT0gTlVMTCkgeworCQloaWYgPSAoc3RydWN0IGhpZl9tc2cgKilza2ItPmRhdGE7CisJCXd2aWYg PSB3ZGV2X3RvX3d2aWYod2RldiwgaGlmLT5pbnRlcmZhY2UpOworCQlpZiAod3ZpZikgeworCQkJ cXVldWUgPSAmd3ZpZi0+dHhfcXVldWVbc2tiX2dldF9xdWV1ZV9tYXBwaW5nKHNrYildOworCQkJ V0FSTl9PTihza2JfZ2V0X3F1ZXVlX21hcHBpbmcoc2tiKSA+IDMpOworCQkJV0FSTl9PTighYXRv bWljX3JlYWQoJnF1ZXVlLT5wZW5kaW5nX2ZyYW1lcykpOworCQkJYXRvbWljX2RlYygmcXVldWUt PnBlbmRpbmdfZnJhbWVzKTsKKwkJfQorCQlza2JfcXVldWVfaGVhZChkcm9wcGVkLCBza2IpOwor CX0KK30KKworc3RydWN0IHNrX2J1ZmYgKndmeF9wZW5kaW5nX2dldChzdHJ1Y3Qgd2Z4X2RldiAq d2RldiwgdTMyIHBhY2tldF9pZCkKK3sKKwlzdHJ1Y3Qgd2Z4X3F1ZXVlICpxdWV1ZTsKKwlzdHJ1 Y3QgaGlmX3JlcV90eCAqcmVxOworCXN0cnVjdCB3ZnhfdmlmICp3dmlmOworCXN0cnVjdCBoaWZf bXNnICpoaWY7CisJc3RydWN0IHNrX2J1ZmYgKnNrYjsKKworCXNwaW5fbG9ja19iaCgmd2Rldi0+ dHhfcGVuZGluZy5sb2NrKTsKKwlza2JfcXVldWVfd2Fsaygmd2Rldi0+dHhfcGVuZGluZywgc2ti KSB7CisJCWhpZiA9IChzdHJ1Y3QgaGlmX21zZyAqKXNrYi0+ZGF0YTsKKwkJcmVxID0gKHN0cnVj dCBoaWZfcmVxX3R4ICopaGlmLT5ib2R5OworCQlpZiAocmVxLT5wYWNrZXRfaWQgIT0gcGFja2V0 X2lkKQorCQkJY29udGludWU7CisJCXNwaW5fdW5sb2NrX2JoKCZ3ZGV2LT50eF9wZW5kaW5nLmxv Y2spOworCQl3dmlmID0gd2Rldl90b193dmlmKHdkZXYsIGhpZi0+aW50ZXJmYWNlKTsKKwkJaWYg KHd2aWYpIHsKKwkJCXF1ZXVlID0gJnd2aWYtPnR4X3F1ZXVlW3NrYl9nZXRfcXVldWVfbWFwcGlu Zyhza2IpXTsKKwkJCVdBUk5fT04oc2tiX2dldF9xdWV1ZV9tYXBwaW5nKHNrYikgPiAzKTsKKwkJ CVdBUk5fT04oIWF0b21pY19yZWFkKCZxdWV1ZS0+cGVuZGluZ19mcmFtZXMpKTsKKwkJCWF0b21p Y19kZWMoJnF1ZXVlLT5wZW5kaW5nX2ZyYW1lcyk7CisJCX0KKwkJc2tiX3VubGluayhza2IsICZ3 ZGV2LT50eF9wZW5kaW5nKTsKKwkJcmV0dXJuIHNrYjsKKwl9CisJc3Bpbl91bmxvY2tfYmgoJndk ZXYtPnR4X3BlbmRpbmcubG9jayk7CisJV0FSTigxLCAiY2Fubm90IGZpbmQgcGFja2V0IGluIHBl bmRpbmcgcXVldWUiKTsKKwlyZXR1cm4gTlVMTDsKK30KKwordm9pZCB3ZnhfcGVuZGluZ19kdW1w X29sZF9mcmFtZXMoc3RydWN0IHdmeF9kZXYgKndkZXYsIHVuc2lnbmVkIGludCBsaW1pdF9tcykK K3sKKwlrdGltZV90IG5vdyA9IGt0aW1lX2dldCgpOworCXN0cnVjdCB3ZnhfdHhfcHJpdiAqdHhf cHJpdjsKKwlzdHJ1Y3QgaGlmX3JlcV90eCAqcmVxOworCXN0cnVjdCBza19idWZmICpza2I7CisJ Ym9vbCBmaXJzdCA9IHRydWU7CisKKwlzcGluX2xvY2tfYmgoJndkZXYtPnR4X3BlbmRpbmcubG9j ayk7CisJc2tiX3F1ZXVlX3dhbGsoJndkZXYtPnR4X3BlbmRpbmcsIHNrYikgeworCQl0eF9wcml2 ID0gd2Z4X3NrYl90eF9wcml2KHNrYik7CisJCXJlcSA9IHdmeF9za2JfdHhyZXEoc2tiKTsKKwkJ aWYgKGt0aW1lX2FmdGVyKG5vdywga3RpbWVfYWRkX21zKHR4X3ByaXYtPnhtaXRfdGltZXN0YW1w LAorCQkJCQkJICBsaW1pdF9tcykpKSB7CisJCQlpZiAoZmlyc3QpIHsKKwkJCQlkZXZfaW5mbyh3 ZGV2LT5kZXYsICJmcmFtZXMgc3R1Y2sgaW4gZmlybXdhcmUgc2luY2UgJWRtcyBvciBtb3JlOlxu IiwKKwkJCQkJIGxpbWl0X21zKTsKKwkJCQlmaXJzdCA9IGZhbHNlOworCQkJfQorCQkJZGV2X2lu Zm8od2Rldi0+ZGV2LCAiICAgaWQgJTA4eCBzZW50ICVsbGRtcyBhZ29cbiIsCisJCQkJIHJlcS0+ cGFja2V0X2lkLAorCQkJCSBrdGltZV9tc19kZWx0YShub3csIHR4X3ByaXYtPnhtaXRfdGltZXN0 YW1wKSk7CisJCX0KKwl9CisJc3Bpbl91bmxvY2tfYmgoJndkZXYtPnR4X3BlbmRpbmcubG9jayk7 Cit9CisKK3Vuc2lnbmVkIGludCB3ZnhfcGVuZGluZ19nZXRfcGt0X3VzX2RlbGF5KHN0cnVjdCB3 ZnhfZGV2ICp3ZGV2LAorCQkJCQkgIHN0cnVjdCBza19idWZmICpza2IpCit7CisJa3RpbWVfdCBu b3cgPSBrdGltZV9nZXQoKTsKKwlzdHJ1Y3Qgd2Z4X3R4X3ByaXYgKnR4X3ByaXYgPSB3Znhfc2ti X3R4X3ByaXYoc2tiKTsKKworCXJldHVybiBrdGltZV91c19kZWx0YShub3csIHR4X3ByaXYtPnht aXRfdGltZXN0YW1wKTsKK30KKworYm9vbCB3ZnhfdHhfcXVldWVzX2hhc19jYWIoc3RydWN0IHdm eF92aWYgKnd2aWYpCit7CisJaW50IGk7CisKKwlpZiAod3ZpZi0+dmlmLT50eXBlICE9IE5MODAy MTFfSUZUWVBFX0FQKQorCQlyZXR1cm4gZmFsc2U7CisJZm9yIChpID0gMDsgaSA8IElFRUU4MDIx MV9OVU1fQUNTOyArK2kpCisJCS8qIE5vdGU6IHNpbmNlIG9ubHkgQVAgY2FuIGhhdmUgbWNhc3Qg ZnJhbWVzIGluIHF1ZXVlIGFuZCBvbmx5CisJCSAqIG9uZSB2aWYgY2FuIGJlIEFQLCBhbGwgcXVl dWVkIGZyYW1lcyBoYXMgc2FtZSBpbnRlcmZhY2UgaWQKKwkJICovCisJCWlmICghc2tiX3F1ZXVl X2VtcHR5X2xvY2tsZXNzKCZ3dmlmLT50eF9xdWV1ZVtpXS5jYWIpKQorCQkJcmV0dXJuIHRydWU7 CisJcmV0dXJuIGZhbHNlOworfQorCitzdGF0aWMgaW50IHdmeF90eF9xdWV1ZV9nZXRfd2VpZ2h0 KHN0cnVjdCB3ZnhfcXVldWUgKnF1ZXVlKQoreworCXJldHVybiBhdG9taWNfcmVhZCgmcXVldWUt PnBlbmRpbmdfZnJhbWVzKSAqIHF1ZXVlLT5wcmlvcml0eTsKK30KKworc3RhdGljIHN0cnVjdCBz a19idWZmICp3ZnhfdHhfcXVldWVzX2dldF9za2Ioc3RydWN0IHdmeF9kZXYgKndkZXYpCit7CisJ c3RydWN0IHdmeF9xdWV1ZSAqcXVldWVzW0lFRUU4MDIxMV9OVU1fQUNTICogQVJSQVlfU0laRSh3 ZGV2LT52aWYpXTsKKwlpbnQgaSwgaiwgbnVtX3F1ZXVlcyA9IDA7CisJc3RydWN0IHdmeF92aWYg Knd2aWY7CisJc3RydWN0IGhpZl9tc2cgKmhpZjsKKwlzdHJ1Y3Qgc2tfYnVmZiAqc2tiOworCisJ Lyogc29ydCB0aGUgcXVldWVzICovCisJd3ZpZiA9IE5VTEw7CisJd2hpbGUgKCh3dmlmID0gd3Zp Zl9pdGVyYXRlKHdkZXYsIHd2aWYpKSAhPSBOVUxMKSB7CisJCWZvciAoaSA9IDA7IGkgPCBJRUVF ODAyMTFfTlVNX0FDUzsgaSsrKSB7CisJCQlXQVJOX09OKG51bV9xdWV1ZXMgPj0gQVJSQVlfU0la RShxdWV1ZXMpKTsKKwkJCXF1ZXVlc1tudW1fcXVldWVzXSA9ICZ3dmlmLT50eF9xdWV1ZVtpXTsK KwkJCWZvciAoaiA9IG51bV9xdWV1ZXM7IGogPiAwOyBqLS0pCisJCQkJaWYgKHdmeF90eF9xdWV1 ZV9nZXRfd2VpZ2h0KHF1ZXVlc1tqXSkgPAorCQkJCSAgICB3ZnhfdHhfcXVldWVfZ2V0X3dlaWdo dChxdWV1ZXNbaiAtIDFdKSkKKwkJCQkJc3dhcChxdWV1ZXNbaiAtIDFdLCBxdWV1ZXNbal0pOwor CQkJbnVtX3F1ZXVlcysrOworCQl9CisJfQorCisJd3ZpZiA9IE5VTEw7CisJd2hpbGUgKCh3dmlm ID0gd3ZpZl9pdGVyYXRlKHdkZXYsIHd2aWYpKSAhPSBOVUxMKSB7CisJCWlmICghd3ZpZi0+YWZ0 ZXJfZHRpbV90eF9hbGxvd2VkKQorCQkJY29udGludWU7CisJCWZvciAoaSA9IDA7IGkgPCBudW1f cXVldWVzOyBpKyspIHsKKwkJCXNrYiA9IHNrYl9kZXF1ZXVlKCZxdWV1ZXNbaV0tPmNhYik7CisJ CQlpZiAoIXNrYikKKwkJCQljb250aW51ZTsKKwkJCS8qIE5vdGU6IHNpbmNlIG9ubHkgQVAgY2Fu IGhhdmUgbWNhc3QgZnJhbWVzIGluIHF1ZXVlCisJCQkgKiBhbmQgb25seSBvbmUgdmlmIGNhbiBi ZSBBUCwgYWxsIHF1ZXVlZCBmcmFtZXMgaGFzCisJCQkgKiBzYW1lIGludGVyZmFjZSBpZAorCQkJ ICovCisJCQloaWYgPSAoc3RydWN0IGhpZl9tc2cgKilza2ItPmRhdGE7CisJCQlXQVJOX09OKGhp Zi0+aW50ZXJmYWNlICE9IHd2aWYtPmlkKTsKKwkJCVdBUk5fT04ocXVldWVzW2ldICE9CisJCQkJ Jnd2aWYtPnR4X3F1ZXVlW3NrYl9nZXRfcXVldWVfbWFwcGluZyhza2IpXSk7CisJCQlhdG9taWNf aW5jKCZxdWV1ZXNbaV0tPnBlbmRpbmdfZnJhbWVzKTsKKwkJCXRyYWNlX3F1ZXVlc19zdGF0cyh3 ZGV2LCBxdWV1ZXNbaV0pOworCQkJcmV0dXJuIHNrYjsKKwkJfQorCQkvKiBObyBtb3JlIG11bHRp Y2FzdCB0byBzZW50ICovCisJCXd2aWYtPmFmdGVyX2R0aW1fdHhfYWxsb3dlZCA9IGZhbHNlOwor CQlzY2hlZHVsZV93b3JrKCZ3dmlmLT51cGRhdGVfdGltX3dvcmspOworCX0KKworCWZvciAoaSA9 IDA7IGkgPCBudW1fcXVldWVzOyBpKyspIHsKKwkJc2tiID0gc2tiX2RlcXVldWUoJnF1ZXVlc1tp XS0+bm9ybWFsKTsKKwkJaWYgKHNrYikgeworCQkJYXRvbWljX2luYygmcXVldWVzW2ldLT5wZW5k aW5nX2ZyYW1lcyk7CisJCQl0cmFjZV9xdWV1ZXNfc3RhdHMod2RldiwgcXVldWVzW2ldKTsKKwkJ CXJldHVybiBza2I7CisJCX0KKwl9CisJcmV0dXJuIE5VTEw7Cit9CisKK3N0cnVjdCBoaWZfbXNn ICp3ZnhfdHhfcXVldWVzX2dldChzdHJ1Y3Qgd2Z4X2RldiAqd2RldikKK3sKKwlzdHJ1Y3Qgd2Z4 X3R4X3ByaXYgKnR4X3ByaXY7CisJc3RydWN0IHNrX2J1ZmYgKnNrYjsKKworCWlmIChhdG9taWNf cmVhZCgmd2Rldi0+dHhfbG9jaykpCisJCXJldHVybiBOVUxMOworCXNrYiA9IHdmeF90eF9xdWV1 ZXNfZ2V0X3NrYih3ZGV2KTsKKwlpZiAoIXNrYikKKwkJcmV0dXJuIE5VTEw7CisJc2tiX3F1ZXVl X3RhaWwoJndkZXYtPnR4X3BlbmRpbmcsIHNrYik7CisJd2FrZV91cCgmd2Rldi0+dHhfZGVxdWV1 ZSk7CisJdHhfcHJpdiA9IHdmeF9za2JfdHhfcHJpdihza2IpOworCXR4X3ByaXYtPnhtaXRfdGlt ZXN0YW1wID0ga3RpbWVfZ2V0KCk7CisJcmV0dXJuIChzdHJ1Y3QgaGlmX21zZyAqKXNrYi0+ZGF0 YTsKK30KZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3NpbGFicy93ZngvcXVldWUu aCBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3NpbGFicy93ZngvcXVldWUuaApuZXcgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLmE0ODQyY2FiNjY5YwotLS0gL2Rldi9udWxsCisr KyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3NpbGFicy93ZngvcXVldWUuaApAQCAtMCwwICsxLDQ1 IEBACisvKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5ICovCisvKgorICog TygxKSBUWCBxdWV1ZSB3aXRoIGJ1aWx0LWluIGFsbG9jYXRvci4KKyAqCisgKiBDb3B5cmlnaHQg KGMpIDIwMTctMjAyMCwgU2lsaWNvbiBMYWJvcmF0b3JpZXMsIEluYy4KKyAqIENvcHlyaWdodCAo YykgMjAxMCwgU1QtRXJpY3Nzb24KKyAqLworI2lmbmRlZiBXRlhfUVVFVUVfSAorI2RlZmluZSBX RlhfUVVFVUVfSAorCisjaW5jbHVkZSA8bGludXgvc2tidWZmLmg+CisjaW5jbHVkZSA8bGludXgv YXRvbWljLmg+CisKK3N0cnVjdCB3ZnhfZGV2Oworc3RydWN0IHdmeF92aWY7CisKK3N0cnVjdCB3 ZnhfcXVldWUgeworCXN0cnVjdCBza19idWZmX2hlYWQJbm9ybWFsOworCXN0cnVjdCBza19idWZm X2hlYWQJY2FiOyAvKiBDb250ZW50IEFmdGVyIChEVElNKSBCZWFjb24gKi8KKwlhdG9taWNfdAkJ cGVuZGluZ19mcmFtZXM7CisJaW50CQkJcHJpb3JpdHk7Cit9OworCit2b2lkIHdmeF90eF9sb2Nr KHN0cnVjdCB3ZnhfZGV2ICp3ZGV2KTsKK3ZvaWQgd2Z4X3R4X3VubG9jayhzdHJ1Y3Qgd2Z4X2Rl diAqd2Rldik7Cit2b2lkIHdmeF90eF9mbHVzaChzdHJ1Y3Qgd2Z4X2RldiAqd2Rldik7Cit2b2lk IHdmeF90eF9sb2NrX2ZsdXNoKHN0cnVjdCB3ZnhfZGV2ICp3ZGV2KTsKKwordm9pZCB3ZnhfdHhf cXVldWVzX2luaXQoc3RydWN0IHdmeF92aWYgKnd2aWYpOwordm9pZCB3ZnhfdHhfcXVldWVzX2No ZWNrX2VtcHR5KHN0cnVjdCB3ZnhfdmlmICp3dmlmKTsKK2Jvb2wgd2Z4X3R4X3F1ZXVlc19oYXNf Y2FiKHN0cnVjdCB3ZnhfdmlmICp3dmlmKTsKK3ZvaWQgd2Z4X3R4X3F1ZXVlc19wdXQoc3RydWN0 IHdmeF92aWYgKnd2aWYsIHN0cnVjdCBza19idWZmICpza2IpOworc3RydWN0IGhpZl9tc2cgKndm eF90eF9xdWV1ZXNfZ2V0KHN0cnVjdCB3ZnhfZGV2ICp3ZGV2KTsKKworYm9vbCB3ZnhfdHhfcXVl dWVfZW1wdHkoc3RydWN0IHdmeF92aWYgKnd2aWYsIHN0cnVjdCB3ZnhfcXVldWUgKnF1ZXVlKTsK K3ZvaWQgd2Z4X3R4X3F1ZXVlX2Ryb3Aoc3RydWN0IHdmeF92aWYgKnd2aWYsIHN0cnVjdCB3Znhf cXVldWUgKnF1ZXVlLAorCQkgICAgICAgc3RydWN0IHNrX2J1ZmZfaGVhZCAqZHJvcHBlZCk7CisK K3N0cnVjdCBza19idWZmICp3ZnhfcGVuZGluZ19nZXQoc3RydWN0IHdmeF9kZXYgKndkZXYsIHUz MiBwYWNrZXRfaWQpOwordm9pZCB3ZnhfcGVuZGluZ19kcm9wKHN0cnVjdCB3ZnhfZGV2ICp3ZGV2 LCBzdHJ1Y3Qgc2tfYnVmZl9oZWFkICpkcm9wcGVkKTsKK3Vuc2lnbmVkIGludCB3ZnhfcGVuZGlu Z19nZXRfcGt0X3VzX2RlbGF5KHN0cnVjdCB3ZnhfZGV2ICp3ZGV2LAorCQkJCQkgIHN0cnVjdCBz a19idWZmICpza2IpOwordm9pZCB3ZnhfcGVuZGluZ19kdW1wX29sZF9mcmFtZXMoc3RydWN0IHdm eF9kZXYgKndkZXYsIHVuc2lnbmVkIGludCBsaW1pdF9tcyk7CisKKyNlbmRpZgotLSAKMi4zMC4y Cgo=