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 mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 3BAB5C433F5 for ; Tue, 5 Oct 2021 13:57:42 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 2318561074 for ; Tue, 5 Oct 2021 13:57:42 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S236626AbhJEN7a (ORCPT ); Tue, 5 Oct 2021 09:59:30 -0400 Received: from mail-co1nam11on2041.outbound.protection.outlook.com ([40.107.220.41]:59136 "EHLO NAM11-CO1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S236188AbhJEN56 (ORCPT ); Tue, 5 Oct 2021 09:57:58 -0400 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=mZdfIyRhdCJEg+53PnmUIhE/6jia4PAJqj7ynfepdnvLlJ4Dl1yk5KcWT9it6leqUv5rFZznE2Nx4eaOOFRwjB6xnGiUmXw12+nyb1wNMOgk6YpdsAT1mjwvnneowObslXfO6cgMHpWAY3AeG9XivKa/e+/RkuWrFGu6KHzsNsQpSNi30wXtYMskkiINbbJqA+hu2oMot6eozUQzyF9ZWvrAlZuKWwNj+gdH0O1WJq/EqoT9AVPydaeFwalzxwUrNFaa5sFUoDVK8cIls4bH9eF7LbOytB9+HlMjMO9iOq84sQQo/BEXzzo5yg+fGYzg+dNywRhCYBKyZtg6sgZ8Ig== 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=E278tkYB81u38EUwqGEDgq28Gn2rJRzCfkaK8J/UlNo=; b=OUmi9Av+jZ0/SymxcvreWuMP8A+3O4fLmIAmjbzju9PUkzsrWxE5XaKeVMZAqpiWpTsKr+VjjF/JT7hsjj5Lvs/F8QbXPqBdIBIDx6QqTYI5uFErgZZMlZoHp2l4qqSS1fiRC5w47h/zaUJZ6ndXtgnLtCbu6RCuyI5ttdjl8K0caWbbaQQrEo9vSllh9I9GZ7Xp4oKjq4tLcFhOnYXfhws6Su0olo4zgkvm82WPNvpJeStWSo+U0p38m/nRICKmC2FdjVz6N73dc9BP2lEvvtZTT4T3Mr/9Xo6PFvoahDzF41Hf8/KE7B5X48oiSpg3rq8ONKDEAb6feJ7FkTolLw== 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=E278tkYB81u38EUwqGEDgq28Gn2rJRzCfkaK8J/UlNo=; b=a7gcfaoKI12nOUT4V+VYpt1wPD2mVIy3XHKUKzS3qHCLCNCrmBVp/cuxWcL0spv103cBILG4PdEimyddE6AZQWRMHQF2JR15Wokm83Zr+X11UX9XC2GVk8ofWPjB6auUHTEa86f9tHBqwqu+d95I6Ll37Mf4+C/7W1hHw1pVHfg= 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 PH0PR11MB5657.namprd11.prod.outlook.com (2603:10b6:510:ee::19) by PH0PR11MB5642.namprd11.prod.outlook.com (2603:10b6:510:e5::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4566.14; Tue, 5 Oct 2021 13:55:22 +0000 Received: from PH0PR11MB5657.namprd11.prod.outlook.com ([fe80::31cb:3b13:b0e8:d8f4]) by PH0PR11MB5657.namprd11.prod.outlook.com ([fe80::31cb:3b13:b0e8:d8f4%9]) with mapi id 15.20.4566.022; Tue, 5 Oct 2021 13:55:22 +0000 From: Jerome Pouiller To: linux-wireless@vger.kernel.org, netdev@vger.kernel.org, Kalle Valo Cc: devel@driverdev.osuosl.org, linux-kernel@vger.kernel.org, Greg Kroah-Hartman , "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 v8 21/24] wfx: add debug.c/debug.h Date: Tue, 5 Oct 2021 15:53:57 +0200 Message-Id: <20211005135400.788058-22-Jerome.Pouiller@silabs.com> X-Mailer: git-send-email 2.33.0 In-Reply-To: <20211005135400.788058-1-Jerome.Pouiller@silabs.com> References: <20211005135400.788058-1-Jerome.Pouiller@silabs.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: base64 X-ClientProxiedBy: PR3P189CA0084.EURP189.PROD.OUTLOOK.COM (2603:10a6:102:b4::29) To PH0PR11MB5657.namprd11.prod.outlook.com (2603:10b6:510:ee::19) MIME-Version: 1.0 Received: from pc-42.silabs.com (37.71.187.125) by PR3P189CA0084.EURP189.PROD.OUTLOOK.COM (2603:10a6:102:b4::29) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4566.14 via Frontend Transport; Tue, 5 Oct 2021 13:55:19 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 4b040a1b-1409-4601-ab02-08d98807c64e X-MS-TrafficTypeDiagnostic: PH0PR11MB5642: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:989; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 2oaJqxp0LNBmoF1XL8oNs9GUskc94MaerG8SA9YxBdjPeaHY8OKPtJARHYnd0LB8Egq+J+BYczD0Z2ajkGrxXb/uooYsy2EpUmlkwv4ftxcEeaxvi3KYmGZjgP2raOzqWvZxuaw7Vqw3ovtZJsfQapcmo4GFxLt78k05mM7OCUlLqzMApv5Si5TyaEMfZ1zr9jm7dW+Gv9jTVZHLtRwZBCZheP9xw5uBY5phll8GJFeOYYv6tDKECtYT/PMHfTL0ox9vHyt1ptzdzxDRyUFrqc4D8cKc6tYZetp+YeJ+5c+xCgyzsAEsmx6vJGeHB0CKiyxtV68SJauBQ/PufCAMalFDyeH2ApidrwTCQCLwVWwxAa5lMw3G4dFtQF3lt+2OJtNLJzGa25s2g9Pq+gO1yDkyIfgcBCMMtOrHgfxK1VYJwGMEfxOXc5QgTnKRsDHvl5dBA3dFVVAkmhFnS2Y5zqAMMyA+tNP/WmAmuZn5VWchfErYyiGMlEtNI1BouGViUcK/gCEXDZFSDCPTXmo51KzusfQgo7Mv5tWUHrPD8J3ai5E1weoch2jdaoi0VmvnEVFj0Yt7AMc5UN5XikmTpkB7AhvcdV+WeUsDVGLSpCwBXyenj5n52F+PRpO8QTPiz/0H4x+00eVdEq2NLHp1ATE8PhJdCA33ui4ITfcFfDAQRSY2Iq4CQW//QMCzxw4hcZ0XiV//teKafSh1vs+yuA== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PH0PR11MB5657.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(86362001)(5660300002)(26005)(30864003)(52116002)(7696005)(956004)(8676002)(2616005)(38100700002)(8936002)(38350700002)(4326008)(6666004)(186003)(7416002)(6916009)(66574015)(107886003)(83380400001)(36756003)(66476007)(66556008)(508600001)(2906002)(316002)(6486002)(1076003)(66946007)(54906003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?ZEpCc3FYeUFaUXk3dzZtVTNFS2g5S1FONjg5WllFWTVaeno0azhZb1FJK2Ju?= =?utf-8?B?V1FPVXlYSk9DWDBlODlmK2ZpN3hHSHVMSllrL0R1UVNvWkFMeEovZmxJTDBD?= =?utf-8?B?eDBvSFRQdVlmRUVaRkc0ZFlBaTA5UFZZTXVsVTdoYkttK0hmaTBQYnFMMEh0?= =?utf-8?B?Q3YzQ0pmVkVMeDk1NVJDaVBIQ0pTdW0wMFlONFRoaHFCYmZ0VlZNUDNaL2tv?= =?utf-8?B?bVUxUnU0MksrSy9NWHprUlFkcTFacmlra3hKUTNwa2hKQjkrM3RvN1BtZ1ZN?= =?utf-8?B?bzduRnlJcERFa0RvSnB6YUsxazljOER5Z1ZVQzg2ZitRaXRRYWk4VURLYk5V?= =?utf-8?B?ZDZpbitNbFNYZkVFaFlRd2prdndkaTRXV2NFU2YzK3VTOEVlS0RVQUF1YVVn?= =?utf-8?B?bm5sTzY5TW0rMkpHU2RqRnBvT0J1WlJhWEc1WStJL29XUkVIVU1iV09BSDdD?= =?utf-8?B?M0hpZnhwdVVIMXNGTmdlTVI4RllSRjRQNUNUYVdOU21nSGVITXFPcU13RFcy?= =?utf-8?B?eXowbjZVRGFIamU1aWoxL0lEMjYrZjUydVZzUzhBTUFzbUMreE9lbHRPazRC?= =?utf-8?B?cWlFTGJxYWxmczhrcTNGV003Y0dTUUFGaE1ZME5iZXlVR0lVM0czd2E5TG1W?= =?utf-8?B?aU9YVk9Cb090L1l4MGpYeVpJUHNKVG8wdXhEcG43ODF6L0pBNkNVeDlUejdR?= =?utf-8?B?Y002b3NCV1lyNnQ0SXlBRGpvSHZlQmRGWXQ0cTdQcHRSamZsSVZDbjlNTnpG?= =?utf-8?B?QXR2cGpROUMxYlVtTk9ONkZNRzVYZ1Z3enBtNzE3MUN6QkNKc09zVzlReXB6?= =?utf-8?B?VlZCNUVFYUxVWEhmTGxrc1A2dkUxMDlNcllYMkpORFgvbitUWkZQNHJYWmNs?= =?utf-8?B?a3ZSdnBDSHQ1bmZZYU8yNnBZRlNRTW5wOVo4ZjFlLytaK2g2MXNoRjlZQ1Z0?= =?utf-8?B?dUx4YTJDNTJRQitIRGloakRQWklqSEdheHdmS1YrQVk1aTI1UE9ZSkNWaC9p?= =?utf-8?B?NHdQaXJzeTFGemhDRGFib01GT1pXVkFqLzJ4bEE0MUtKZ3Q1c0lOTE5rbmZt?= =?utf-8?B?cHp4eGNVcGt4WjRIMmR4TjllY2o5YmxxYjZmOW16ZTVCWHd0SUJSWmlmU0JC?= =?utf-8?B?b1RydHo3VUdUc2ltUnAzNVdIS3pRaTgyUy8reDVFbmdoZmFQdTAyQmE2bU8r?= =?utf-8?B?YUV6KytWbkFFSjhPbTVxRDZOUUpjYlpTL0VPNG5weWVJMHZ1enlBMmFEeWg4?= =?utf-8?B?QjlKUVZrbGlrMFRYK0Y3NVJVeTQzaUlVNGdXTGhQV2NucGRoVGJtVm9MZm9X?= =?utf-8?B?c1ZGSGZxbjExTTBaUlVoVXBnanhodnJPM0EybmRzUnJXS2pqMExiVnI1RjFx?= =?utf-8?B?K09OMk0rcDM3L00yaXR4VldTTHJPZXJpci9UcnBQaklOdGJubHJ3cm9qUi9l?= =?utf-8?B?NXUzbzk3VnVDNGJGWjFpVU9NVlhaUjZvYXA0TVVCdDhORVllVnlCQlowbnNa?= =?utf-8?B?VGp6SFRkL20vcXAxbVlIWVFwcVJhOThiQ0lEMFltaklmSGovNVZQRUxUcmJz?= =?utf-8?B?bVZDbXBqQ09WSzlVK3ZlbHRBSkFENDgwZlBkZmx5dkxrUjRyZ2J4bVd3ZldR?= =?utf-8?B?SXU3eWRCR0RLdlk0S3B5ZjFRSEx2NThubnNHSG9UMFJWZXFHSVphS3ExeFRX?= =?utf-8?B?ZVlxdjE5MDdjY3JEaWNnMTZTR0IxU2ZsZnMvOE1kZUZuMDJRcE44VGYxdlgy?= =?utf-8?Q?9Uk/vGqYUbqJeJawpcjcKQ4X41+R3OHVTbJf/Od?= X-OriginatorOrg: silabs.com X-MS-Exchange-CrossTenant-Network-Message-Id: 4b040a1b-1409-4601-ab02-08d98807c64e X-MS-Exchange-CrossTenant-AuthSource: PH0PR11MB5657.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Oct 2021 13:55:22.5457 (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: XfB0hY7qiqXwifhzEClewLfl+M5ktl2HGrpxXDI6qdelNveJk09xiDIyGdr0aB41wc8sRJa/fJ1nw4o2tQw4xQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR11MB5642 Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org RnJvbTogSsOpcsO0bWUgUG91aWxsZXIgPGplcm9tZS5wb3VpbGxlckBzaWxhYnMuY29tPgoKU2ln bmVkLW9mZi1ieTogSsOpcsO0bWUgUG91aWxsZXIgPGplcm9tZS5wb3VpbGxlckBzaWxhYnMuY29t PgotLS0KIGRyaXZlcnMvbmV0L3dpcmVsZXNzL3NpbGFicy93ZngvZGVidWcuYyB8IDM0MiArKysr KysrKysrKysrKysrKysrKysrKysKIGRyaXZlcnMvbmV0L3dpcmVsZXNzL3NpbGFicy93ZngvZGVi dWcuaCB8ICAxOSArKwogMiBmaWxlcyBjaGFuZ2VkLCAzNjEgaW5zZXJ0aW9ucygrKQogY3JlYXRl IG1vZGUgMTAwNjQ0IGRyaXZlcnMvbmV0L3dpcmVsZXNzL3NpbGFicy93ZngvZGVidWcuYwogY3Jl YXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvbmV0L3dpcmVsZXNzL3NpbGFicy93ZngvZGVidWcuaAoK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3NpbGFicy93ZngvZGVidWcuYyBiL2Ry aXZlcnMvbmV0L3dpcmVsZXNzL3NpbGFicy93ZngvZGVidWcuYwpuZXcgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCAwMDAwMDAwMDAwMDAuLmE0YmM3ZTU2NmMyMwotLS0gL2Rldi9udWxsCisrKyBiL2Ry aXZlcnMvbmV0L3dpcmVsZXNzL3NpbGFicy93ZngvZGVidWcuYwpAQCAtMCwwICsxLDM0MiBAQAor Ly8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb25seQorLyoKKyAqIERlYnVnZnMg aW50ZXJmYWNlLgorICoKKyAqIENvcHlyaWdodCAoYykgMjAxNy0yMDIwLCBTaWxpY29uIExhYm9y YXRvcmllcywgSW5jLgorICogQ29weXJpZ2h0IChjKSAyMDEwLCBTVC1Fcmljc3NvbgorICovCisj aW5jbHVkZSA8bGludXgvZGVidWdmcy5oPgorI2luY2x1ZGUgPGxpbnV4L3NlcV9maWxlLmg+Cisj aW5jbHVkZSA8bGludXgvY3JjMzIuaD4KKworI2luY2x1ZGUgImRlYnVnLmgiCisjaW5jbHVkZSAi d2Z4LmgiCisjaW5jbHVkZSAic3RhLmgiCisjaW5jbHVkZSAibWFpbi5oIgorI2luY2x1ZGUgImhp Zl90eC5oIgorI2luY2x1ZGUgImhpZl90eF9taWIuaCIKKworI2RlZmluZSBDUkVBVEVfVFJBQ0Vf UE9JTlRTCisjaW5jbHVkZSAidHJhY2VzLmgiCisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgdHJhY2Vf cHJpbnRfZmxhZ3MgaGlmX21zZ19wcmludF9tYXBbXSA9IHsKKwloaWZfbXNnX2xpc3QsCit9Owor CitzdGF0aWMgY29uc3Qgc3RydWN0IHRyYWNlX3ByaW50X2ZsYWdzIGhpZl9taWJfcHJpbnRfbWFw W10gPSB7CisJaGlmX21pYl9saXN0LAorfTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCB0cmFjZV9w cmludF9mbGFncyB3ZnhfcmVnX3ByaW50X21hcFtdID0geworCXdmeF9yZWdfbGlzdCwKK307CisK K3N0YXRpYyBjb25zdCBjaGFyICpnZXRfc3ltYm9sKHVuc2lnbmVkIGxvbmcgdmFsLAorCQkJICAg ICAgY29uc3Qgc3RydWN0IHRyYWNlX3ByaW50X2ZsYWdzICpzeW1ib2xfYXJyYXkpCit7CisJaW50 IGk7CisKKwlmb3IgKGkgPSAwOyBzeW1ib2xfYXJyYXlbaV0ubWFzayAhPSAtMTsgaSsrKSB7CisJ CWlmICh2YWwgPT0gc3ltYm9sX2FycmF5W2ldLm1hc2spCisJCQlyZXR1cm4gc3ltYm9sX2FycmF5 W2ldLm5hbWU7CisJfQorCisJcmV0dXJuICJ1bmtub3duIjsKK30KKworY29uc3QgY2hhciAqd2Z4 X2dldF9oaWZfbmFtZSh1bnNpZ25lZCBsb25nIGlkKQoreworCXJldHVybiBnZXRfc3ltYm9sKGlk LCBoaWZfbXNnX3ByaW50X21hcCk7Cit9CisKK2NvbnN0IGNoYXIgKndmeF9nZXRfbWliX25hbWUo dW5zaWduZWQgbG9uZyBpZCkKK3sKKwlyZXR1cm4gZ2V0X3N5bWJvbChpZCwgaGlmX21pYl9wcmlu dF9tYXApOworfQorCitjb25zdCBjaGFyICp3ZnhfZ2V0X3JlZ19uYW1lKHVuc2lnbmVkIGxvbmcg aWQpCit7CisJcmV0dXJuIGdldF9zeW1ib2woaWQsIHdmeF9yZWdfcHJpbnRfbWFwKTsKK30KKwor c3RhdGljIGludCB3ZnhfY291bnRlcnNfc2hvdyhzdHJ1Y3Qgc2VxX2ZpbGUgKnNlcSwgdm9pZCAq dikKK3sKKwlpbnQgcmV0LCBpOworCXN0cnVjdCB3ZnhfZGV2ICp3ZGV2ID0gc2VxLT5wcml2YXRl OworCXN0cnVjdCB3ZnhfaGlmX21pYl9leHRlbmRlZF9jb3VudF90YWJsZSBjb3VudGVyc1szXTsK KworCWZvciAoaSA9IDA7IGkgPCBBUlJBWV9TSVpFKGNvdW50ZXJzKTsgaSsrKSB7CisJCXJldCA9 IHdmeF9oaWZfZ2V0X2NvdW50ZXJzX3RhYmxlKHdkZXYsIGksIGNvdW50ZXJzICsgaSk7CisJCWlm IChyZXQgPCAwKQorCQkJcmV0dXJuIHJldDsKKwkJaWYgKHJldCA+IDApCisJCQlyZXR1cm4gLUVJ TzsKKwl9CisKKwlzZXFfcHJpbnRmKHNlcSwgIiUtMjRzICUxMnMgJTEycyAlMTJzXG4iLAorCQkg ICAiIiwgImdsb2JhbCIsICJpZmFjZSAwIiwgImlmYWNlIDEiKTsKKworI2RlZmluZSBQVVRfQ09V TlRFUihuYW1lKSBcCisJc2VxX3ByaW50ZihzZXEsICIlLTI0cyAlMTJkICUxMmQgJTEyZFxuIiwg I25hbWUsIFwKKwkJICAgbGUzMl90b19jcHUoY291bnRlcnNbMl0uY291bnRfIyNuYW1lKSwgXAor CQkgICBsZTMyX3RvX2NwdShjb3VudGVyc1swXS5jb3VudF8jI25hbWUpLCBcCisJCSAgIGxlMzJf dG9fY3B1KGNvdW50ZXJzWzFdLmNvdW50XyMjbmFtZSkpCisKKwlQVVRfQ09VTlRFUih0eF9mcmFt ZXMpOworCVBVVF9DT1VOVEVSKHR4X2ZyYW1lc19tdWx0aWNhc3QpOworCVBVVF9DT1VOVEVSKHR4 X2ZyYW1lc19zdWNjZXNzKTsKKwlQVVRfQ09VTlRFUih0eF9mcmFtZXNfcmV0cmllZCk7CisJUFVU X0NPVU5URVIodHhfZnJhbWVzX211bHRpX3JldHJpZWQpOworCVBVVF9DT1VOVEVSKHR4X2ZyYW1l c19mYWlsZWQpOworCisJUFVUX0NPVU5URVIoYWNrX2ZhaWxlZCk7CisJUFVUX0NPVU5URVIocnRz X3N1Y2Nlc3MpOworCVBVVF9DT1VOVEVSKHJ0c19mYWlsZWQpOworCisJUFVUX0NPVU5URVIocnhf ZnJhbWVzKTsKKwlQVVRfQ09VTlRFUihyeF9mcmFtZXNfbXVsdGljYXN0KTsKKwlQVVRfQ09VTlRF UihyeF9mcmFtZXNfc3VjY2Vzcyk7CisJUFVUX0NPVU5URVIocnhfZnJhbWVzX2ZhaWxlZCk7CisJ UFVUX0NPVU5URVIoZHJvcF9wbGNwKTsKKwlQVVRfQ09VTlRFUihkcm9wX2Zjcyk7CisJUFVUX0NP VU5URVIoZHJvcF9ub19rZXkpOworCVBVVF9DT1VOVEVSKGRyb3BfZGVjcnlwdGlvbik7CisJUFVU X0NPVU5URVIoZHJvcF90a2lwX21pYyk7CisJUFVUX0NPVU5URVIoZHJvcF9iaXBfbWljKTsKKwlQ VVRfQ09VTlRFUihkcm9wX2NtYWNfaWN2KTsKKwlQVVRfQ09VTlRFUihkcm9wX2NtYWNfcmVwbGF5 KTsKKwlQVVRfQ09VTlRFUihkcm9wX2NjbXBfcmVwbGF5KTsKKwlQVVRfQ09VTlRFUihkcm9wX2R1 cGxpY2F0ZSk7CisKKwlQVVRfQ09VTlRFUihyeF9iY25fbWlzcyk7CisJUFVUX0NPVU5URVIocnhf YmNuX3N1Y2Nlc3MpOworCVBVVF9DT1VOVEVSKHJ4X2Jjbl9kdGltKTsKKwlQVVRfQ09VTlRFUihy eF9iY25fZHRpbV9haWQwX2Nscik7CisJUFVUX0NPVU5URVIocnhfYmNuX2R0aW1fYWlkMF9zZXQp OworCisjdW5kZWYgUFVUX0NPVU5URVIKKworCWZvciAoaSA9IDA7IGkgPCBBUlJBWV9TSVpFKGNv dW50ZXJzWzBdLnJlc2VydmVkKTsgaSsrKQorCQlzZXFfcHJpbnRmKHNlcSwgInJlc2VydmVkWyUw MmRdJTEycyAlMTJkICUxMmQgJTEyZFxuIiwgaSwgIiIsCisJCQkgICBsZTMyX3RvX2NwdShjb3Vu dGVyc1syXS5yZXNlcnZlZFtpXSksCisJCQkgICBsZTMyX3RvX2NwdShjb3VudGVyc1swXS5yZXNl cnZlZFtpXSksCisJCQkgICBsZTMyX3RvX2NwdShjb3VudGVyc1sxXS5yZXNlcnZlZFtpXSkpOwor CisJcmV0dXJuIDA7Cit9CitERUZJTkVfU0hPV19BVFRSSUJVVEUod2Z4X2NvdW50ZXJzKTsKKwor c3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBjaGFubmVsX25hbWVzW10gPSB7CisJWzBdID0gIjFN IiwKKwlbMV0gPSAiMk0iLAorCVsyXSA9ICI1LjVNIiwKKwlbM10gPSAiMTFNIiwKKwkvKiBFbnRy aWVzIDQgYW5kIDUgZG9lcyBub3QgZXhpc3QgKi8KKwlbNl0gPSAiNk0iLAorCVs3XSA9ICI5TSIs CisJWzhdID0gIjEyTSIsCisJWzldID0gIjE4TSIsCisJWzEwXSA9ICIyNE0iLAorCVsxMV0gPSAi MzZNIiwKKwlbMTJdID0gIjQ4TSIsCisJWzEzXSA9ICI1NE0iLAorCVsxNF0gPSAiTUNTMCIsCisJ WzE1XSA9ICJNQ1MxIiwKKwlbMTZdID0gIk1DUzIiLAorCVsxN10gPSAiTUNTMyIsCisJWzE4XSA9 ICJNQ1M0IiwKKwlbMTldID0gIk1DUzUiLAorCVsyMF0gPSAiTUNTNiIsCisJWzIxXSA9ICJNQ1M3 IiwKK307CisKK3N0YXRpYyBpbnQgd2Z4X3J4X3N0YXRzX3Nob3coc3RydWN0IHNlcV9maWxlICpz ZXEsIHZvaWQgKnYpCit7CisJc3RydWN0IHdmeF9kZXYgKndkZXYgPSBzZXEtPnByaXZhdGU7CisJ c3RydWN0IHdmeF9oaWZfcnhfc3RhdHMgKnN0ID0gJndkZXYtPnJ4X3N0YXRzOworCWludCBpOwor CisJbXV0ZXhfbG9jaygmd2Rldi0+cnhfc3RhdHNfbG9jayk7CisJc2VxX3ByaW50ZihzZXEsICJU aW1lc3RhbXA6ICVkdXNcbiIsIHN0LT5kYXRlKTsKKwlzZXFfcHJpbnRmKHNlcSwgIkxvdyBwb3dl ciBjbG9jazogZnJlcXVlbmN5ICV1SHosIGV4dGVybmFsICVzXG4iLAorCQkgICBsZTMyX3RvX2Nw dShzdC0+cHdyX2Nsa19mcmVxKSwKKwkJICAgc3QtPmlzX2V4dF9wd3JfY2xrID8gInllcyIgOiAi bm8iKTsKKwlzZXFfcHJpbnRmKHNlcSwKKwkJICAgIk51bS4gb2YgZnJhbWVzOiAlZCwgUEVSICh4 MTBlNCk6ICVkLCBUaHJvdWdocHV0OiAlZEticHMvc1xuIiwKKwkJICAgc3QtPm5iX3J4X2ZyYW1l LCBzdC0+cGVyX3RvdGFsLCBzdC0+dGhyb3VnaHB1dCk7CisJc2VxX3B1dHMoc2VxLCAiICAgICAg IE51bS4gb2YgICAgICBQRVIgICAgIFJTU0kgICAgICBTTlIgICAgICBDRk9cbiIpOworCXNlcV9w dXRzKHNlcSwgIiAgICAgICAgZnJhbWVzICAoeDEwZTQpICAgIChkQm0pICAgICAoZEIpICAgIChr SHopXG4iKTsKKwlmb3IgKGkgPSAwOyBpIDwgQVJSQVlfU0laRShjaGFubmVsX25hbWVzKTsgaSsr KSB7CisJCWlmIChjaGFubmVsX25hbWVzW2ldKQorCQkJc2VxX3ByaW50ZihzZXEsICIlNXMgJThk ICU4ZCAlOGQgJThkICU4ZFxuIiwKKwkJCQkgICBjaGFubmVsX25hbWVzW2ldLAorCQkJCSAgIGxl MzJfdG9fY3B1KHN0LT5uYl9yeF9ieV9yYXRlW2ldKSwKKwkJCQkgICBsZTE2X3RvX2NwdShzdC0+ cGVyW2ldKSwKKwkJCQkgICAoczE2KWxlMTZfdG9fY3B1KHN0LT5yc3NpW2ldKSAvIDEwMCwKKwkJ CQkgICAoczE2KWxlMTZfdG9fY3B1KHN0LT5zbnJbaV0pIC8gMTAwLAorCQkJCSAgIChzMTYpbGUx Nl90b19jcHUoc3QtPmNmb1tpXSkpOworCX0KKwltdXRleF91bmxvY2soJndkZXYtPnJ4X3N0YXRz X2xvY2spOworCisJcmV0dXJuIDA7Cit9CitERUZJTkVfU0hPV19BVFRSSUJVVEUod2Z4X3J4X3N0 YXRzKTsKKworc3RhdGljIGludCB3ZnhfdHhfcG93ZXJfbG9vcF9zaG93KHN0cnVjdCBzZXFfZmls ZSAqc2VxLCB2b2lkICp2KQoreworCXN0cnVjdCB3ZnhfZGV2ICp3ZGV2ID0gc2VxLT5wcml2YXRl OworCXN0cnVjdCB3ZnhfaGlmX3R4X3Bvd2VyX2xvb3BfaW5mbyAqc3QgPSAmd2Rldi0+dHhfcG93 ZXJfbG9vcF9pbmZvOworCWludCB0bXA7CisKKwltdXRleF9sb2NrKCZ3ZGV2LT50eF9wb3dlcl9s b29wX2luZm9fbG9jayk7CisJdG1wID0gbGUxNl90b19jcHUoc3QtPnR4X2dhaW5fZGlnKTsKKwlz ZXFfcHJpbnRmKHNlcSwgIlR4IGdhaW4gZGlnaXRhbDogJWRcbiIsIHRtcCk7CisJdG1wID0gbGUx Nl90b19jcHUoc3QtPnR4X2dhaW5fcGEpOworCXNlcV9wcmludGYoc2VxLCAiVHggZ2FpbiBQQTog JWRcbiIsIHRtcCk7CisJdG1wID0gKHMxNilsZTE2X3RvX2NwdShzdC0+dGFyZ2V0X3BvdXQpOwor CXNlcV9wcmludGYoc2VxLCAiVGFyZ2V0IFBvdXQ6ICVkLiUwMmQgZEJtXG4iLCB0bXAgLyA0LCAo dG1wICUgNCkgKiAyNSk7CisJdG1wID0gKHMxNilsZTE2X3RvX2NwdShzdC0+cF9lc3RpbWF0aW9u KTsKKwlzZXFfcHJpbnRmKHNlcSwgIkZFTSBQb3V0OiAlZC4lMDJkIGRCbVxuIiwgdG1wIC8gNCwg KHRtcCAlIDQpICogMjUpOworCXRtcCA9IGxlMTZfdG9fY3B1KHN0LT52cGRldCk7CisJc2VxX3By aW50ZihzZXEsICJWcGRldDogJWQgbVZcbiIsIHRtcCk7CisJc2VxX3ByaW50ZihzZXEsICJNZWFz dXJlIGluZGV4OiAlZFxuIiwgc3QtPm1lYXN1cmVtZW50X2luZGV4KTsKKwltdXRleF91bmxvY2so JndkZXYtPnR4X3Bvd2VyX2xvb3BfaW5mb19sb2NrKTsKKworCXJldHVybiAwOworfQorREVGSU5F X1NIT1dfQVRUUklCVVRFKHdmeF90eF9wb3dlcl9sb29wKTsKKworc3RhdGljIHNzaXplX3Qgd2Z4 X3NlbmRfcGRzX3dyaXRlKHN0cnVjdCBmaWxlICpmaWxlLAorCQkJCSAgY29uc3QgY2hhciBfX3Vz ZXIgKnVzZXJfYnVmLAorCQkJCSAgc2l6ZV90IGNvdW50LCBsb2ZmX3QgKnBwb3MpCit7CisJc3Ry dWN0IHdmeF9kZXYgKndkZXYgPSBmaWxlLT5wcml2YXRlX2RhdGE7CisJY2hhciAqYnVmOworCWlu dCByZXQ7CisKKwlpZiAoKnBwb3MgIT0gMCkgeworCQlkZXZfZGJnKHdkZXYtPmRldiwgIlBEUyBk YXRhIG11c3QgYmUgd3JpdHRlbiBpbiBvbmUgdHJhbnNhY3Rpb24iKTsKKwkJcmV0dXJuIC1FQlVT WTsKKwl9CisJYnVmID0gbWVtZHVwX3VzZXIodXNlcl9idWYsIGNvdW50KTsKKwlpZiAoSVNfRVJS KGJ1ZikpCisJCXJldHVybiBQVFJfRVJSKGJ1Zik7CisJKnBwb3MgPSAqcHBvcyArIGNvdW50Owor CXJldCA9IHdmeF9zZW5kX3Bkcyh3ZGV2LCBidWYsIGNvdW50KTsKKwlrZnJlZShidWYpOworCWlm IChyZXQgPCAwKQorCQlyZXR1cm4gcmV0OworCXJldHVybiBjb3VudDsKK30KKworc3RhdGljIGNv bnN0IHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgd2Z4X3NlbmRfcGRzX2ZvcHMgPSB7CisJLm9wZW4g PSBzaW1wbGVfb3BlbiwKKwkud3JpdGUgPSB3Znhfc2VuZF9wZHNfd3JpdGUsCit9OworCitzdHJ1 Y3QgZGJnZnNfaGlmX21zZyB7CisJc3RydWN0IHdmeF9kZXYgKndkZXY7CisJc3RydWN0IGNvbXBs ZXRpb24gY29tcGxldGU7CisJdTggcmVwbHlbMTAyNF07CisJaW50IHJldDsKK307CisKK3N0YXRp YyBzc2l6ZV90IHdmeF9zZW5kX2hpZl9tc2dfd3JpdGUoc3RydWN0IGZpbGUgKmZpbGUsCisJCQkJ ICAgICAgY29uc3QgY2hhciBfX3VzZXIgKnVzZXJfYnVmLAorCQkJCSAgICAgIHNpemVfdCBjb3Vu dCwgbG9mZl90ICpwcG9zKQoreworCXN0cnVjdCBkYmdmc19oaWZfbXNnICpjb250ZXh0ID0gZmls ZS0+cHJpdmF0ZV9kYXRhOworCXN0cnVjdCB3ZnhfZGV2ICp3ZGV2ID0gY29udGV4dC0+d2RldjsK KwlzdHJ1Y3Qgd2Z4X2hpZl9tc2cgKnJlcXVlc3Q7CisKKwlpZiAoY29tcGxldGlvbl9kb25lKCZj b250ZXh0LT5jb21wbGV0ZSkpIHsKKwkJZGV2X2RiZyh3ZGV2LT5kZXYsICJyZWFkIHByZXZpb3Vz IHJlc3VsdCBiZWZvcmUgc3RhcnQgYSBuZXcgb25lXG4iKTsKKwkJcmV0dXJuIC1FQlVTWTsKKwl9 CisJaWYgKGNvdW50IDwgc2l6ZW9mKHN0cnVjdCB3ZnhfaGlmX21zZykpCisJCXJldHVybiAtRUlO VkFMOworCisJLyogd2Z4X2NtZF9zZW5kKCkgY2hlY2tzIHRoYXQgcmVwbHkgYnVmZmVyIGlzIHdp ZGUgZW5vdWdoLCBidXQgZG9lcyBub3QKKwkgKiByZXR1cm4gcHJlY2lzZSBsZW5ndGggcmVhZC4g VXNlciBoYXZlIHRvIGtub3cgaG93IG1hbnkgYnl0ZXMgc2hvdWxkCisJICogYmUgcmVhZC4gRmls bGluZyByZXBseSBidWZmZXIgd2l0aCBhIG1lbW9yeSBwYXR0ZXJuIG1heSBoZWxwIHVzZXIuCisJ ICovCisJbWVtc2V0KGNvbnRleHQtPnJlcGx5LCAweEZGLCBzaXplb2YoY29udGV4dC0+cmVwbHkp KTsKKwlyZXF1ZXN0ID0gbWVtZHVwX3VzZXIodXNlcl9idWYsIGNvdW50KTsKKwlpZiAoSVNfRVJS KHJlcXVlc3QpKQorCQlyZXR1cm4gUFRSX0VSUihyZXF1ZXN0KTsKKwlpZiAobGUxNl90b19jcHUo cmVxdWVzdC0+bGVuKSAhPSBjb3VudCkgeworCQlrZnJlZShyZXF1ZXN0KTsKKwkJcmV0dXJuIC1F SU5WQUw7CisJfQorCWNvbnRleHQtPnJldCA9IHdmeF9jbWRfc2VuZCh3ZGV2LCByZXF1ZXN0LCBj b250ZXh0LT5yZXBseSwKKwkJCQkgICAgc2l6ZW9mKGNvbnRleHQtPnJlcGx5KSwgZmFsc2UpOwor CisJa2ZyZWUocmVxdWVzdCk7CisJY29tcGxldGUoJmNvbnRleHQtPmNvbXBsZXRlKTsKKwlyZXR1 cm4gY291bnQ7Cit9CisKK3N0YXRpYyBzc2l6ZV90IHdmeF9zZW5kX2hpZl9tc2dfcmVhZChzdHJ1 Y3QgZmlsZSAqZmlsZSwgY2hhciBfX3VzZXIgKnVzZXJfYnVmLAorCQkJCSAgICAgc2l6ZV90IGNv dW50LCBsb2ZmX3QgKnBwb3MpCit7CisJc3RydWN0IGRiZ2ZzX2hpZl9tc2cgKmNvbnRleHQgPSBm aWxlLT5wcml2YXRlX2RhdGE7CisJaW50IHJldDsKKworCWlmIChjb3VudCA+IHNpemVvZihjb250 ZXh0LT5yZXBseSkpCisJCXJldHVybiAtRUlOVkFMOworCXJldCA9IHdhaXRfZm9yX2NvbXBsZXRp b25faW50ZXJydXB0aWJsZSgmY29udGV4dC0+Y29tcGxldGUpOworCWlmIChyZXQpCisJCXJldHVy biByZXQ7CisJaWYgKGNvbnRleHQtPnJldCA8IDApCisJCXJldHVybiBjb250ZXh0LT5yZXQ7CisJ LyogQmUgY2FyZWZ1bCwgd3JpdGUoKSBpcyB3YWl0aW5nIGZvciBhIGZ1bGwgbWVzc2FnZSB3aGls ZSByZWFkKCkKKwkgKiBvbmx5IHJldHVybnMgYSBwYXlsb2FkCisJICovCisJaWYgKGNvcHlfdG9f dXNlcih1c2VyX2J1ZiwgY29udGV4dC0+cmVwbHksIGNvdW50KSkKKwkJcmV0dXJuIC1FRkFVTFQ7 CisKKwlyZXR1cm4gY291bnQ7Cit9CisKK3N0YXRpYyBpbnQgd2Z4X3NlbmRfaGlmX21zZ19vcGVu KHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpmaWxlKQoreworCXN0cnVjdCBkYmdm c19oaWZfbXNnICpjb250ZXh0ID0ga3phbGxvYyhzaXplb2YoKmNvbnRleHQpLCBHRlBfS0VSTkVM KTsKKworCWlmICghY29udGV4dCkKKwkJcmV0dXJuIC1FTk9NRU07CisJY29udGV4dC0+d2RldiA9 IGlub2RlLT5pX3ByaXZhdGU7CisJaW5pdF9jb21wbGV0aW9uKCZjb250ZXh0LT5jb21wbGV0ZSk7 CisJZmlsZS0+cHJpdmF0ZV9kYXRhID0gY29udGV4dDsKKwlyZXR1cm4gMDsKK30KKworc3RhdGlj IGludCB3Znhfc2VuZF9oaWZfbXNnX3JlbGVhc2Uoc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0 IGZpbGUgKmZpbGUpCit7CisJc3RydWN0IGRiZ2ZzX2hpZl9tc2cgKmNvbnRleHQgPSBmaWxlLT5w cml2YXRlX2RhdGE7CisKKwlrZnJlZShjb250ZXh0KTsKKwlyZXR1cm4gMDsKK30KKworc3RhdGlj IGNvbnN0IHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgd2Z4X3NlbmRfaGlmX21zZ19mb3BzID0gewor CS5vcGVuID0gd2Z4X3NlbmRfaGlmX21zZ19vcGVuLAorCS5yZWxlYXNlID0gd2Z4X3NlbmRfaGlm X21zZ19yZWxlYXNlLAorCS53cml0ZSA9IHdmeF9zZW5kX2hpZl9tc2dfd3JpdGUsCisJLnJlYWQg PSB3Znhfc2VuZF9oaWZfbXNnX3JlYWQsCit9OworCitpbnQgd2Z4X2RlYnVnX2luaXQoc3RydWN0 IHdmeF9kZXYgKndkZXYpCit7CisJc3RydWN0IGRlbnRyeSAqZDsKKworCWQgPSBkZWJ1Z2ZzX2Ny ZWF0ZV9kaXIoIndmeCIsIHdkZXYtPmh3LT53aXBoeS0+ZGVidWdmc2Rpcik7CisJZGVidWdmc19j cmVhdGVfZmlsZSgiY291bnRlcnMiLCAwNDQ0LCBkLCB3ZGV2LCAmd2Z4X2NvdW50ZXJzX2ZvcHMp OworCWRlYnVnZnNfY3JlYXRlX2ZpbGUoInJ4X3N0YXRzIiwgMDQ0NCwgZCwgd2RldiwgJndmeF9y eF9zdGF0c19mb3BzKTsKKwlkZWJ1Z2ZzX2NyZWF0ZV9maWxlKCJ0eF9wb3dlcl9sb29wIiwgMDQ0 NCwgZCwgd2RldiwKKwkJCSAgICAmd2Z4X3R4X3Bvd2VyX2xvb3BfZm9wcyk7CisJZGVidWdmc19j cmVhdGVfZmlsZSgic2VuZF9wZHMiLCAwMjAwLCBkLCB3ZGV2LCAmd2Z4X3NlbmRfcGRzX2ZvcHMp OworCWRlYnVnZnNfY3JlYXRlX2ZpbGUoInNlbmRfaGlmX21zZyIsIDA2MDAsIGQsIHdkZXYsCisJ CQkgICAgJndmeF9zZW5kX2hpZl9tc2dfZm9wcyk7CisKKwlyZXR1cm4gMDsKK30KZGlmZiAtLWdp dCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3NpbGFicy93ZngvZGVidWcuaCBiL2RyaXZlcnMvbmV0 L3dpcmVsZXNzL3NpbGFicy93ZngvZGVidWcuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw MDAwMDAwMDAwMDAuLjM4NDA1NzVlNWUyOAotLS0gL2Rldi9udWxsCisrKyBiL2RyaXZlcnMvbmV0 L3dpcmVsZXNzL3NpbGFicy93ZngvZGVidWcuaApAQCAtMCwwICsxLDE5IEBACisvKiBTUERYLUxp Y2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5ICovCisvKgorICogRGVidWdmcyBpbnRlcmZh Y2UuCisgKgorICogQ29weXJpZ2h0IChjKSAyMDE3LTIwMTksIFNpbGljb24gTGFib3JhdG9yaWVz LCBJbmMuCisgKiBDb3B5cmlnaHQgKGMpIDIwMTEsIFNULUVyaWNzc29uCisgKi8KKyNpZm5kZWYg V0ZYX0RFQlVHX0gKKyNkZWZpbmUgV0ZYX0RFQlVHX0gKKworc3RydWN0IHdmeF9kZXY7CisKK2lu dCB3ZnhfZGVidWdfaW5pdChzdHJ1Y3Qgd2Z4X2RldiAqd2Rldik7CisKK2NvbnN0IGNoYXIgKndm eF9nZXRfaGlmX25hbWUodW5zaWduZWQgbG9uZyBpZCk7Citjb25zdCBjaGFyICp3ZnhfZ2V0X21p Yl9uYW1lKHVuc2lnbmVkIGxvbmcgaWQpOworY29uc3QgY2hhciAqd2Z4X2dldF9yZWdfbmFtZSh1 bnNpZ25lZCBsb25nIGlkKTsKKworI2VuZGlmCi0tIAoyLjMzLjAKCg==