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 X-Spam-Level: X-Spam-Status: No, score=-12.5 required=3.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, MSGID_FROM_MTA_HEADER,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED, USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 2E097C43467 for ; Mon, 12 Oct 2020 10:47:40 +0000 (UTC) Received: from hemlock.osuosl.org (smtp2.osuosl.org [140.211.166.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id AE0A7208FE for ; Mon, 12 Oct 2020 10:47:39 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (1024-bit key) header.d=silabs.onmicrosoft.com header.i=@silabs.onmicrosoft.com header.b="IhFrQxpm" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org AE0A7208FE Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=silabs.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=driverdev-devel-bounces@linuxdriverproject.org Received: from localhost (localhost [127.0.0.1]) by hemlock.osuosl.org (Postfix) with ESMTP id 35CD487277; Mon, 12 Oct 2020 10:47:39 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from hemlock.osuosl.org ([127.0.0.1]) by localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 1OVY0jNMs11K; Mon, 12 Oct 2020 10:47:36 +0000 (UTC) Received: from ash.osuosl.org (ash.osuosl.org [140.211.166.34]) by hemlock.osuosl.org (Postfix) with ESMTP id E19AA87317; Mon, 12 Oct 2020 10:47:36 +0000 (UTC) Received: from whitealder.osuosl.org (smtp1.osuosl.org [140.211.166.138]) by ash.osuosl.org (Postfix) with ESMTP id 793EF1BF95A for ; Mon, 12 Oct 2020 10:47:33 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by whitealder.osuosl.org (Postfix) with ESMTP id 69FBE869F8 for ; Mon, 12 Oct 2020 10:47:33 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from whitealder.osuosl.org ([127.0.0.1]) by localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id FAo1QbQWDrqV for ; Mon, 12 Oct 2020 10:47:25 +0000 (UTC) X-Greylist: from auto-whitelisted by SQLgrey-1.7.6 Received: from NAM11-DM6-obe.outbound.protection.outlook.com (mail-dm6nam11on2081.outbound.protection.outlook.com [40.107.223.81]) by whitealder.osuosl.org (Postfix) with ESMTPS id 24AC586A08 for ; Mon, 12 Oct 2020 10:47:22 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=aKJ+NRGcZMTQNlvuDXIrdLT0eWoNu+M80e3n8+iOCF8ce7DFYu4pr844KetmLyZ5GFF2OhFMlcKvN6TuvE/g3xgyJEaQeRKPhaC0dnAIGSy6RyIR+j4nYwf2HjtwgjAhYoRnZmmMb5BInbr7C5qQeqTyk7AW4oeWGXoicozhEJCTkB+uPHs0obSDEqzReFTVsbP3uzKEr60UXN8u82RkguYPAtcOyR+Qk3Ljm+IjSgew+MsZQ2v7TLBodrK5i04u/1H6chnvKZrYO2TIHgiclcWufnhnRhka37vZir7mFyewjcRuuQfESbpfY0cusXe6q5+fgzPTlVZq+/RPAHbeKg== 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=avmXx+dXA4M7vEFGc5mUuiRWmSiPmhrFJykm4WmwTBM=; b=Ss34a7cK149jQr/UsY/k7h79KiW4FguTUe5IYvRU6MKhjLg7172cPEJ39/eJHxRiHfjVpO1Rih8UZr4Ntdjp+Ph8U4lxJi+ISsRlvFlfHBs//N1bg02hd3k3VVwkfufKzkga1cBNj3ibBejiyE7Zpz61rS0SnfOkCbCFfrovKj+mNDK1XgwydQoqbDSQdHmiP1e1qBkBkt2r5dOeFasJuy5vNylSdsAd2ekk7X/rfSoUo9rZ07FJy2kvix74ui5jYbHlMvroUpXSGhQGy+R+jW811dwEJeygWIcxZiG3CsA1KtTGjAbEiMqGPlF0cso1NDYw4zEKb7/ZM0DfksLjyQ== 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=avmXx+dXA4M7vEFGc5mUuiRWmSiPmhrFJykm4WmwTBM=; b=IhFrQxpmrIgmzOKJxQhu4fD2f3mrxJa9ekNWORr26zNHcr8q9iLKuKrAxG+IsN6g8BYLfYaKSDqKGNSQ/dMHWfdhH9NLYpLHIHyb1hYq+VCYy8kFdodZmKMpAkD9DPgC7GLM40DVRFUcbtyQPS6Fw0lKCFz/wuxx4IElSIkhReg= 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 SA0PR11MB4734.namprd11.prod.outlook.com (2603:10b6:806:99::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3455.23; Mon, 12 Oct 2020 10:47:20 +0000 Received: from SN6PR11MB2718.namprd11.prod.outlook.com ([fe80::4f5:fbe5:44a7:cb8a]) by SN6PR11MB2718.namprd11.prod.outlook.com ([fe80::4f5:fbe5:44a7:cb8a%5]) with mapi id 15.20.3455.029; Mon, 12 Oct 2020 10:47:20 +0000 From: Jerome Pouiller To: linux-wireless@vger.kernel.org, netdev@vger.kernel.org Subject: [PATCH 08/23] wfx: add hwio.c/hwio.h Date: Mon, 12 Oct 2020 12:46:33 +0200 Message-Id: <20201012104648.985256-9-Jerome.Pouiller@silabs.com> X-Mailer: git-send-email 2.28.0 In-Reply-To: <20201012104648.985256-1-Jerome.Pouiller@silabs.com> References: <20201012104648.985256-1-Jerome.Pouiller@silabs.com> X-Originating-IP: [82.67.86.106] X-ClientProxiedBy: PR3P189CA0005.EURP189.PROD.OUTLOOK.COM (2603:10a6:102:52::10) To SN6PR11MB2718.namprd11.prod.outlook.com (2603:10b6:805:63::18) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from pc-42.home (82.67.86.106) by PR3P189CA0005.EURP189.PROD.OUTLOOK.COM (2603:10a6:102:52::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3455.21 via Frontend Transport; Mon, 12 Oct 2020 10:47:19 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: cf85d46a-3758-414f-5867-08d86e9c3204 X-MS-TrafficTypeDiagnostic: SA0PR11MB4734: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:483; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: oCqPh85ww6JgQLk/C2482qcbXl8mCMGl7KFdul7yuQSfoBKChipKHN5VbTEQU5ZJZqFeEn9m1NmZb3Pqi112ZfuPdPgTKUofhfMwpZ4Iw5SeJfQmrlk9sJ2Y3c401tbsbNtOYoygk/pYP+LSNkuiwQi4lKSfJxwbAkXfnbrUqmbHiHJ6pa/czmerqVL+bQsoDitY3XfWrOPR31fIPaMhkr8y/cp1v1+ER5myH+tyZaW1noZo9rMLLoDZDbr7f9GaIGBudrYNfccx8d3X30RElLsBv5j9QEgNDgc/tShcRlr3ta4d7CLC6YK+RVSKXcGNQBYFMVTG4JOBSNbPlTJ+xw== 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:(39850400004)(396003)(366004)(136003)(346002)(376002)(66556008)(66476007)(6512007)(26005)(36756003)(66946007)(16526019)(186003)(316002)(4326008)(2616005)(956004)(1076003)(30864003)(5660300002)(107886003)(6486002)(54906003)(86362001)(8676002)(83380400001)(8936002)(66574015)(52116002)(2906002)(6506007)(8886007)(6666004)(478600001); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData: tbo8N3IP35JM0q594vl64DtM57Fjt1++n+L9btX5GXVq68X9CMpJcLvkUN6SFdYowvbkvpi4q/QfxseQiCH4IAkojcLXCyI1x7Rc4+/BYxMXrIdwPNy1gQMXgnfgwA01lR3AhupNFsSmSng92xG9zD4wg+Ax8ULPRDH6BHuo/Wudww7hDa95aoYto40avvgiGEu1rw0QDfP5UFYRYgUjRXIySr6suZRpNoIRzFHoCpoC1Y7Qwhu1BR7hiOhiTyugsL4J5fzUpWZ0fIP3yoR6kHLVOKHSk8pZOIBVbDfj59BeW4mJ3/lTzdLOUYMgctUyLxNgFq+nFcwjpQoX+3a1GLP9L5mUqDLMAYi/wCO3Uz1NUm0GmuSNTIQm2lGBisbE7t/rgAnsn08tqV/l+/VRUOMOByc0OwF6aUGwR2LerFHFAGC/nqyrOvXsWW5ooTlNZE/nMj532Ueu52LJH1oZHF9VlMmVCPcYTIRi5e2ms1BvIbAvFzibBXbUPr+dihf1tejdE+XN5L+//sccRwYS0bmZSjrO5nBA+mkFIt7Ak8MHjW8uhUo6IlDHXRdRbgEo4EzWq/varP57vQjNCjOfN+YIjnBKonBtR3ocAvVbpd7KhvpbIq38WZoDh+8LlLEbfsNPGWYlgGU9L5rmTfe0iA== X-OriginatorOrg: silabs.com X-MS-Exchange-CrossTenant-Network-Message-Id: cf85d46a-3758-414f-5867-08d86e9c3204 X-MS-Exchange-CrossTenant-AuthSource: SN6PR11MB2718.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Oct 2020 10:47:20.7613 (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: XxZbnG7nk+kuglVJOSc4n3+D/N1MJpKkHUPhwnNzJUDeWcUiCV6Ta3RAhAEkCV00iJ84gGZXFk3Q105IR2jixA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA0PR11MB4734 X-BeenThere: driverdev-devel@linuxdriverproject.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Linux Driver Project Developer List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: devel@driverdev.osuosl.org, devicetree@vger.kernel.org, Greg Kroah-Hartman , linux-kernel@vger.kernel.org, Rob Herring , "David S . Miller" , Kalle Valo Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: driverdev-devel-bounces@linuxdriverproject.org Sender: "devel" RnJvbTogSsOpcsO0bWUgUG91aWxsZXIgPGplcm9tZS5wb3VpbGxlckBzaWxhYnMuY29tPgoKU2ln bmVkLW9mZi1ieTogSsOpcsO0bWUgUG91aWxsZXIgPGplcm9tZS5wb3VpbGxlckBzaWxhYnMuY29t PgotLS0KIGRyaXZlcnMvbmV0L3dpcmVsZXNzL3NpbGFicy93ZngvaHdpby5jIHwgMzUyICsrKysr KysrKysrKysrKysrKysrKysrKysKIGRyaXZlcnMvbmV0L3dpcmVsZXNzL3NpbGFicy93ZngvaHdp by5oIHwgIDc1ICsrKysrKwogMiBmaWxlcyBjaGFuZ2VkLCA0MjcgaW5zZXJ0aW9ucygrKQogY3Jl YXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvbmV0L3dpcmVsZXNzL3NpbGFicy93ZngvaHdpby5jCiBj cmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy9uZXQvd2lyZWxlc3Mvc2lsYWJzL3dmeC9od2lvLmgK CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9zaWxhYnMvd2Z4L2h3aW8uYyBiL2Ry aXZlcnMvbmV0L3dpcmVsZXNzL3NpbGFicy93ZngvaHdpby5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDAwMDAwMDAwMDAwMC4uMzZmYmM1YjVkNjRjCi0tLSAvZGV2L251bGwKKysrIGIvZHJp dmVycy9uZXQvd2lyZWxlc3Mvc2lsYWJzL3dmeC9od2lvLmMKQEAgLTAsMCArMSwzNTIgQEAKKy8v IFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHkKKy8qCisgKiBMb3ctbGV2ZWwg SS9PIGZ1bmN0aW9ucy4KKyAqCisgKiBDb3B5cmlnaHQgKGMpIDIwMTctMjAyMCwgU2lsaWNvbiBM YWJvcmF0b3JpZXMsIEluYy4KKyAqIENvcHlyaWdodCAoYykgMjAxMCwgU1QtRXJpY3Nzb24KKyAq LworI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgorI2luY2x1ZGUgPGxpbnV4L2RlbGF5Lmg+Cisj aW5jbHVkZSA8bGludXgvc2xhYi5oPgorCisjaW5jbHVkZSAiaHdpby5oIgorI2luY2x1ZGUgIndm eC5oIgorI2luY2x1ZGUgImJ1cy5oIgorI2luY2x1ZGUgInRyYWNlcy5oIgorCisvKgorICogSW50 ZXJuYWwgaGVscGVycy4KKyAqCisgKiBBYm91dCBDT05GSUdfVk1BUF9TVEFDSzoKKyAqIFdoZW4g Q09ORklHX1ZNQVBfU1RBQ0sgaXMgZW5hYmxlZCwgaXQgaXMgbm90IHBvc3NpYmxlIHRvIHJ1biBE TUEgb24gc3RhY2sKKyAqIGFsbG9jYXRlZCBkYXRhLiBGdW5jdGlvbnMgYmVsb3cgdGhhdCB3b3Jr IHdpdGggcmVnaXN0ZXJzIChha2EgZnVuY3Rpb25zCisgKiBlbmRpbmcgd2l0aCAiMzIiKSBhdXRv bWF0aWNhbGx5IHJlYWxsb2NhdGUgYnVmZmVycyB3aXRoIGttYWxsb2MuIEhvd2V2ZXIsCisgKiBm dW5jdGlvbnMgdGhhdCB3b3JrIHdpdGggYXJiaXRyYXJ5IGxlbmd0aCBidWZmZXJzIGxldCdzIGNh bGxlciB0byBoYW5kbGUKKyAqIG1lbW9yeSBsb2NhdGlvbi4gSW4gZG91YnQsIGVuYWJsZSBDT05G SUdfREVCVUdfU0cgdG8gZGV0ZWN0IGJhZGx5IGxvY2F0ZWQKKyAqIGJ1ZmZlci4KKyAqLworCitz dGF0aWMgaW50IHJlYWQzMihzdHJ1Y3Qgd2Z4X2RldiAqd2RldiwgaW50IHJlZywgdTMyICp2YWwp Cit7CisJaW50IHJldDsKKwlfX2xlMzIgKnRtcCA9IGttYWxsb2Moc2l6ZW9mKHUzMiksIEdGUF9L RVJORUwpOworCisJKnZhbCA9IH4wOyAvLyBOZXZlciByZXR1cm4gdW5kZWZpbmVkIHZhbHVlCisJ aWYgKCF0bXApCisJCXJldHVybiAtRU5PTUVNOworCXJldCA9IHdkZXYtPmh3YnVzX29wcy0+Y29w eV9mcm9tX2lvKHdkZXYtPmh3YnVzX3ByaXYsIHJlZywgdG1wLAorCQkJCQkgICAgc2l6ZW9mKHUz MikpOworCWlmIChyZXQgPj0gMCkKKwkJKnZhbCA9IGxlMzJfdG9fY3B1KCp0bXApOworCWtmcmVl KHRtcCk7CisJaWYgKHJldCkKKwkJZGV2X2Vycih3ZGV2LT5kZXYsICIlczogYnVzIGNvbW11bmlj YXRpb24gZXJyb3I6ICVkXG4iLAorCQkJX19mdW5jX18sIHJldCk7CisJcmV0dXJuIHJldDsKK30K Kworc3RhdGljIGludCB3cml0ZTMyKHN0cnVjdCB3ZnhfZGV2ICp3ZGV2LCBpbnQgcmVnLCB1MzIg dmFsKQoreworCWludCByZXQ7CisJX19sZTMyICp0bXAgPSBrbWFsbG9jKHNpemVvZih1MzIpLCBH RlBfS0VSTkVMKTsKKworCWlmICghdG1wKQorCQlyZXR1cm4gLUVOT01FTTsKKwkqdG1wID0gY3B1 X3RvX2xlMzIodmFsKTsKKwlyZXQgPSB3ZGV2LT5od2J1c19vcHMtPmNvcHlfdG9faW8od2Rldi0+ aHdidXNfcHJpdiwgcmVnLCB0bXAsCisJCQkJCSAgc2l6ZW9mKHUzMikpOworCWtmcmVlKHRtcCk7 CisJaWYgKHJldCkKKwkJZGV2X2Vycih3ZGV2LT5kZXYsICIlczogYnVzIGNvbW11bmljYXRpb24g ZXJyb3I6ICVkXG4iLAorCQkJX19mdW5jX18sIHJldCk7CisJcmV0dXJuIHJldDsKK30KKworc3Rh dGljIGludCByZWFkMzJfbG9ja2VkKHN0cnVjdCB3ZnhfZGV2ICp3ZGV2LCBpbnQgcmVnLCB1MzIg KnZhbCkKK3sKKwlpbnQgcmV0OworCisJd2Rldi0+aHdidXNfb3BzLT5sb2NrKHdkZXYtPmh3YnVz X3ByaXYpOworCXJldCA9IHJlYWQzMih3ZGV2LCByZWcsIHZhbCk7CisJX3RyYWNlX2lvX3JlYWQz MihyZWcsICp2YWwpOworCXdkZXYtPmh3YnVzX29wcy0+dW5sb2NrKHdkZXYtPmh3YnVzX3ByaXYp OworCXJldHVybiByZXQ7Cit9CisKK3N0YXRpYyBpbnQgd3JpdGUzMl9sb2NrZWQoc3RydWN0IHdm eF9kZXYgKndkZXYsIGludCByZWcsIHUzMiB2YWwpCit7CisJaW50IHJldDsKKworCXdkZXYtPmh3 YnVzX29wcy0+bG9jayh3ZGV2LT5od2J1c19wcml2KTsKKwlyZXQgPSB3cml0ZTMyKHdkZXYsIHJl ZywgdmFsKTsKKwlfdHJhY2VfaW9fd3JpdGUzMihyZWcsIHZhbCk7CisJd2Rldi0+aHdidXNfb3Bz LT51bmxvY2sod2Rldi0+aHdidXNfcHJpdik7CisJcmV0dXJuIHJldDsKK30KKworc3RhdGljIGlu dCB3cml0ZTMyX2JpdHNfbG9ja2VkKHN0cnVjdCB3ZnhfZGV2ICp3ZGV2LCBpbnQgcmVnLCB1MzIg bWFzaywgdTMyIHZhbCkKK3sKKwlpbnQgcmV0OworCXUzMiB2YWxfciwgdmFsX3c7CisKKwlXQVJO X09OKH5tYXNrICYgdmFsKTsKKwl2YWwgJj0gbWFzazsKKwl3ZGV2LT5od2J1c19vcHMtPmxvY2so d2Rldi0+aHdidXNfcHJpdik7CisJcmV0ID0gcmVhZDMyKHdkZXYsIHJlZywgJnZhbF9yKTsKKwlf dHJhY2VfaW9fcmVhZDMyKHJlZywgdmFsX3IpOworCWlmIChyZXQgPCAwKQorCQlnb3RvIGVycjsK Kwl2YWxfdyA9ICh2YWxfciAmIH5tYXNrKSB8IHZhbDsKKwlpZiAodmFsX3cgIT0gdmFsX3IpIHsK KwkJcmV0ID0gd3JpdGUzMih3ZGV2LCByZWcsIHZhbF93KTsKKwkJX3RyYWNlX2lvX3dyaXRlMzIo cmVnLCB2YWxfdyk7CisJfQorZXJyOgorCXdkZXYtPmh3YnVzX29wcy0+dW5sb2NrKHdkZXYtPmh3 YnVzX3ByaXYpOworCXJldHVybiByZXQ7Cit9CisKK3N0YXRpYyBpbnQgaW5kaXJlY3RfcmVhZChz dHJ1Y3Qgd2Z4X2RldiAqd2RldiwgaW50IHJlZywgdTMyIGFkZHIsCisJCQkgdm9pZCAqYnVmLCBz aXplX3QgbGVuKQoreworCWludCByZXQ7CisJaW50IGk7CisJdTMyIGNmZzsKKwl1MzIgcHJlZmV0 Y2g7CisKKwlXQVJOX09OKGxlbiA+PSAweDIwMDApOworCVdBUk5fT04ocmVnICE9IFdGWF9SRUdf QUhCX0RQT1JUICYmIHJlZyAhPSBXRlhfUkVHX1NSQU1fRFBPUlQpOworCisJaWYgKHJlZyA9PSBX RlhfUkVHX0FIQl9EUE9SVCkKKwkJcHJlZmV0Y2ggPSBDRkdfUFJFRkVUQ0hfQUhCOworCWVsc2Ug aWYgKHJlZyA9PSBXRlhfUkVHX1NSQU1fRFBPUlQpCisJCXByZWZldGNoID0gQ0ZHX1BSRUZFVENI X1NSQU07CisJZWxzZQorCQlyZXR1cm4gLUVOT0RFVjsKKworCXJldCA9IHdyaXRlMzIod2Rldiwg V0ZYX1JFR19CQVNFX0FERFIsIGFkZHIpOworCWlmIChyZXQgPCAwKQorCQlnb3RvIGVycjsKKwor CXJldCA9IHJlYWQzMih3ZGV2LCBXRlhfUkVHX0NPTkZJRywgJmNmZyk7CisJaWYgKHJldCA8IDAp CisJCWdvdG8gZXJyOworCisJcmV0ID0gd3JpdGUzMih3ZGV2LCBXRlhfUkVHX0NPTkZJRywgY2Zn IHwgcHJlZmV0Y2gpOworCWlmIChyZXQgPCAwKQorCQlnb3RvIGVycjsKKworCWZvciAoaSA9IDA7 IGkgPCAyMDsgaSsrKSB7CisJCXJldCA9IHJlYWQzMih3ZGV2LCBXRlhfUkVHX0NPTkZJRywgJmNm Zyk7CisJCWlmIChyZXQgPCAwKQorCQkJZ290byBlcnI7CisJCWlmICghKGNmZyAmIHByZWZldGNo KSkKKwkJCWJyZWFrOworCQl1c2xlZXBfcmFuZ2UoMjAwLCAyNTApOworCX0KKwlpZiAoaSA9PSAy MCkgeworCQlyZXQgPSAtRVRJTUVET1VUOworCQlnb3RvIGVycjsKKwl9CisKKwlyZXQgPSB3ZGV2 LT5od2J1c19vcHMtPmNvcHlfZnJvbV9pbyh3ZGV2LT5od2J1c19wcml2LCByZWcsIGJ1ZiwgbGVu KTsKKworZXJyOgorCWlmIChyZXQgPCAwKQorCQltZW1zZXQoYnVmLCAweEZGLCBsZW4pOyAvLyBO ZXZlciByZXR1cm4gdW5kZWZpbmVkIHZhbHVlCisJcmV0dXJuIHJldDsKK30KKworc3RhdGljIGlu dCBpbmRpcmVjdF93cml0ZShzdHJ1Y3Qgd2Z4X2RldiAqd2RldiwgaW50IHJlZywgdTMyIGFkZHIs CisJCQkgIGNvbnN0IHZvaWQgKmJ1Ziwgc2l6ZV90IGxlbikKK3sKKwlpbnQgcmV0OworCisJV0FS Tl9PTihsZW4gPj0gMHgyMDAwKTsKKwlXQVJOX09OKHJlZyAhPSBXRlhfUkVHX0FIQl9EUE9SVCAm JiByZWcgIT0gV0ZYX1JFR19TUkFNX0RQT1JUKTsKKwlyZXQgPSB3cml0ZTMyKHdkZXYsIFdGWF9S RUdfQkFTRV9BRERSLCBhZGRyKTsKKwlpZiAocmV0IDwgMCkKKwkJcmV0dXJuIHJldDsKKworCXJl dHVybiB3ZGV2LT5od2J1c19vcHMtPmNvcHlfdG9faW8od2Rldi0+aHdidXNfcHJpdiwgcmVnLCBi dWYsIGxlbik7Cit9CisKK3N0YXRpYyBpbnQgaW5kaXJlY3RfcmVhZF9sb2NrZWQoc3RydWN0IHdm eF9kZXYgKndkZXYsIGludCByZWcsIHUzMiBhZGRyLAorCQkJCXZvaWQgKmJ1Ziwgc2l6ZV90IGxl bikKK3sKKwlpbnQgcmV0OworCisJd2Rldi0+aHdidXNfb3BzLT5sb2NrKHdkZXYtPmh3YnVzX3By aXYpOworCXJldCA9IGluZGlyZWN0X3JlYWQod2RldiwgcmVnLCBhZGRyLCBidWYsIGxlbik7CisJ X3RyYWNlX2lvX2luZF9yZWFkKHJlZywgYWRkciwgYnVmLCBsZW4pOworCXdkZXYtPmh3YnVzX29w cy0+dW5sb2NrKHdkZXYtPmh3YnVzX3ByaXYpOworCXJldHVybiByZXQ7Cit9CisKK3N0YXRpYyBp bnQgaW5kaXJlY3Rfd3JpdGVfbG9ja2VkKHN0cnVjdCB3ZnhfZGV2ICp3ZGV2LCBpbnQgcmVnLCB1 MzIgYWRkciwKKwkJCQkgY29uc3Qgdm9pZCAqYnVmLCBzaXplX3QgbGVuKQoreworCWludCByZXQ7 CisKKwl3ZGV2LT5od2J1c19vcHMtPmxvY2sod2Rldi0+aHdidXNfcHJpdik7CisJcmV0ID0gaW5k aXJlY3Rfd3JpdGUod2RldiwgcmVnLCBhZGRyLCBidWYsIGxlbik7CisJX3RyYWNlX2lvX2luZF93 cml0ZShyZWcsIGFkZHIsIGJ1ZiwgbGVuKTsKKwl3ZGV2LT5od2J1c19vcHMtPnVubG9jayh3ZGV2 LT5od2J1c19wcml2KTsKKwlyZXR1cm4gcmV0OworfQorCitzdGF0aWMgaW50IGluZGlyZWN0X3Jl YWQzMl9sb2NrZWQoc3RydWN0IHdmeF9kZXYgKndkZXYsIGludCByZWcsCisJCQkJICB1MzIgYWRk ciwgdTMyICp2YWwpCit7CisJaW50IHJldDsKKwlfX2xlMzIgKnRtcCA9IGttYWxsb2Moc2l6ZW9m KHUzMiksIEdGUF9LRVJORUwpOworCisJaWYgKCF0bXApCisJCXJldHVybiAtRU5PTUVNOworCXdk ZXYtPmh3YnVzX29wcy0+bG9jayh3ZGV2LT5od2J1c19wcml2KTsKKwlyZXQgPSBpbmRpcmVjdF9y ZWFkKHdkZXYsIHJlZywgYWRkciwgdG1wLCBzaXplb2YodTMyKSk7CisJKnZhbCA9IGxlMzJfdG9f Y3B1KCp0bXApOworCV90cmFjZV9pb19pbmRfcmVhZDMyKHJlZywgYWRkciwgKnZhbCk7CisJd2Rl di0+aHdidXNfb3BzLT51bmxvY2sod2Rldi0+aHdidXNfcHJpdik7CisJa2ZyZWUodG1wKTsKKwly ZXR1cm4gcmV0OworfQorCitzdGF0aWMgaW50IGluZGlyZWN0X3dyaXRlMzJfbG9ja2VkKHN0cnVj dCB3ZnhfZGV2ICp3ZGV2LCBpbnQgcmVnLAorCQkJCSAgIHUzMiBhZGRyLCB1MzIgdmFsKQorewor CWludCByZXQ7CisJX19sZTMyICp0bXAgPSBrbWFsbG9jKHNpemVvZih1MzIpLCBHRlBfS0VSTkVM KTsKKworCWlmICghdG1wKQorCQlyZXR1cm4gLUVOT01FTTsKKwkqdG1wID0gY3B1X3RvX2xlMzIo dmFsKTsKKwl3ZGV2LT5od2J1c19vcHMtPmxvY2sod2Rldi0+aHdidXNfcHJpdik7CisJcmV0ID0g aW5kaXJlY3Rfd3JpdGUod2RldiwgcmVnLCBhZGRyLCB0bXAsIHNpemVvZih1MzIpKTsKKwlfdHJh Y2VfaW9faW5kX3dyaXRlMzIocmVnLCBhZGRyLCB2YWwpOworCXdkZXYtPmh3YnVzX29wcy0+dW5s b2NrKHdkZXYtPmh3YnVzX3ByaXYpOworCWtmcmVlKHRtcCk7CisJcmV0dXJuIHJldDsKK30KKwor aW50IHdmeF9kYXRhX3JlYWQoc3RydWN0IHdmeF9kZXYgKndkZXYsIHZvaWQgKmJ1Ziwgc2l6ZV90 IGxlbikKK3sKKwlpbnQgcmV0OworCisJV0FSTigobG9uZylidWYgJiAzLCAiJXM6IHVuYWxpZ25l ZCBidWZmZXIiLCBfX2Z1bmNfXyk7CisJd2Rldi0+aHdidXNfb3BzLT5sb2NrKHdkZXYtPmh3YnVz X3ByaXYpOworCXJldCA9IHdkZXYtPmh3YnVzX29wcy0+Y29weV9mcm9tX2lvKHdkZXYtPmh3YnVz X3ByaXYsCisJCQkJCSAgICBXRlhfUkVHX0lOX09VVF9RVUVVRSwgYnVmLCBsZW4pOworCV90cmFj ZV9pb19yZWFkKFdGWF9SRUdfSU5fT1VUX1FVRVVFLCBidWYsIGxlbik7CisJd2Rldi0+aHdidXNf b3BzLT51bmxvY2sod2Rldi0+aHdidXNfcHJpdik7CisJaWYgKHJldCkKKwkJZGV2X2Vycih3ZGV2 LT5kZXYsICIlczogYnVzIGNvbW11bmljYXRpb24gZXJyb3I6ICVkXG4iLAorCQkJX19mdW5jX18s IHJldCk7CisJcmV0dXJuIHJldDsKK30KKworaW50IHdmeF9kYXRhX3dyaXRlKHN0cnVjdCB3Znhf ZGV2ICp3ZGV2LCBjb25zdCB2b2lkICpidWYsIHNpemVfdCBsZW4pCit7CisJaW50IHJldDsKKwor CVdBUk4oKGxvbmcpYnVmICYgMywgIiVzOiB1bmFsaWduZWQgYnVmZmVyIiwgX19mdW5jX18pOwor CXdkZXYtPmh3YnVzX29wcy0+bG9jayh3ZGV2LT5od2J1c19wcml2KTsKKwlyZXQgPSB3ZGV2LT5o d2J1c19vcHMtPmNvcHlfdG9faW8od2Rldi0+aHdidXNfcHJpdiwKKwkJCQkJICBXRlhfUkVHX0lO X09VVF9RVUVVRSwgYnVmLCBsZW4pOworCV90cmFjZV9pb193cml0ZShXRlhfUkVHX0lOX09VVF9R VUVVRSwgYnVmLCBsZW4pOworCXdkZXYtPmh3YnVzX29wcy0+dW5sb2NrKHdkZXYtPmh3YnVzX3By aXYpOworCWlmIChyZXQpCisJCWRldl9lcnIod2Rldi0+ZGV2LCAiJXM6IGJ1cyBjb21tdW5pY2F0 aW9uIGVycm9yOiAlZFxuIiwKKwkJCV9fZnVuY19fLCByZXQpOworCXJldHVybiByZXQ7Cit9CisK K2ludCBzcmFtX2J1Zl9yZWFkKHN0cnVjdCB3ZnhfZGV2ICp3ZGV2LCB1MzIgYWRkciwgdm9pZCAq YnVmLCBzaXplX3QgbGVuKQoreworCXJldHVybiBpbmRpcmVjdF9yZWFkX2xvY2tlZCh3ZGV2LCBX RlhfUkVHX1NSQU1fRFBPUlQsIGFkZHIsIGJ1ZiwgbGVuKTsKK30KKworaW50IGFoYl9idWZfcmVh ZChzdHJ1Y3Qgd2Z4X2RldiAqd2RldiwgdTMyIGFkZHIsIHZvaWQgKmJ1Ziwgc2l6ZV90IGxlbikK K3sKKwlyZXR1cm4gaW5kaXJlY3RfcmVhZF9sb2NrZWQod2RldiwgV0ZYX1JFR19BSEJfRFBPUlQs IGFkZHIsIGJ1ZiwgbGVuKTsKK30KKworaW50IHNyYW1fYnVmX3dyaXRlKHN0cnVjdCB3ZnhfZGV2 ICp3ZGV2LCB1MzIgYWRkciwgY29uc3Qgdm9pZCAqYnVmLCBzaXplX3QgbGVuKQoreworCXJldHVy biBpbmRpcmVjdF93cml0ZV9sb2NrZWQod2RldiwgV0ZYX1JFR19TUkFNX0RQT1JULCBhZGRyLCBi dWYsIGxlbik7Cit9CisKK2ludCBhaGJfYnVmX3dyaXRlKHN0cnVjdCB3ZnhfZGV2ICp3ZGV2LCB1 MzIgYWRkciwgY29uc3Qgdm9pZCAqYnVmLCBzaXplX3QgbGVuKQoreworCXJldHVybiBpbmRpcmVj dF93cml0ZV9sb2NrZWQod2RldiwgV0ZYX1JFR19BSEJfRFBPUlQsIGFkZHIsIGJ1ZiwgbGVuKTsK K30KKworaW50IHNyYW1fcmVnX3JlYWQoc3RydWN0IHdmeF9kZXYgKndkZXYsIHUzMiBhZGRyLCB1 MzIgKnZhbCkKK3sKKwlyZXR1cm4gaW5kaXJlY3RfcmVhZDMyX2xvY2tlZCh3ZGV2LCBXRlhfUkVH X1NSQU1fRFBPUlQsIGFkZHIsIHZhbCk7Cit9CisKK2ludCBhaGJfcmVnX3JlYWQoc3RydWN0IHdm eF9kZXYgKndkZXYsIHUzMiBhZGRyLCB1MzIgKnZhbCkKK3sKKwlyZXR1cm4gaW5kaXJlY3RfcmVh ZDMyX2xvY2tlZCh3ZGV2LCBXRlhfUkVHX0FIQl9EUE9SVCwgYWRkciwgdmFsKTsKK30KKworaW50 IHNyYW1fcmVnX3dyaXRlKHN0cnVjdCB3ZnhfZGV2ICp3ZGV2LCB1MzIgYWRkciwgdTMyIHZhbCkK K3sKKwlyZXR1cm4gaW5kaXJlY3Rfd3JpdGUzMl9sb2NrZWQod2RldiwgV0ZYX1JFR19TUkFNX0RQ T1JULCBhZGRyLCB2YWwpOworfQorCitpbnQgYWhiX3JlZ193cml0ZShzdHJ1Y3Qgd2Z4X2RldiAq d2RldiwgdTMyIGFkZHIsIHUzMiB2YWwpCit7CisJcmV0dXJuIGluZGlyZWN0X3dyaXRlMzJfbG9j a2VkKHdkZXYsIFdGWF9SRUdfQUhCX0RQT1JULCBhZGRyLCB2YWwpOworfQorCitpbnQgY29uZmln X3JlZ19yZWFkKHN0cnVjdCB3ZnhfZGV2ICp3ZGV2LCB1MzIgKnZhbCkKK3sKKwlyZXR1cm4gcmVh ZDMyX2xvY2tlZCh3ZGV2LCBXRlhfUkVHX0NPTkZJRywgdmFsKTsKK30KKworaW50IGNvbmZpZ19y ZWdfd3JpdGUoc3RydWN0IHdmeF9kZXYgKndkZXYsIHUzMiB2YWwpCit7CisJcmV0dXJuIHdyaXRl MzJfbG9ja2VkKHdkZXYsIFdGWF9SRUdfQ09ORklHLCB2YWwpOworfQorCitpbnQgY29uZmlnX3Jl Z193cml0ZV9iaXRzKHN0cnVjdCB3ZnhfZGV2ICp3ZGV2LCB1MzIgbWFzaywgdTMyIHZhbCkKK3sK KwlyZXR1cm4gd3JpdGUzMl9iaXRzX2xvY2tlZCh3ZGV2LCBXRlhfUkVHX0NPTkZJRywgbWFzaywg dmFsKTsKK30KKworaW50IGNvbnRyb2xfcmVnX3JlYWQoc3RydWN0IHdmeF9kZXYgKndkZXYsIHUz MiAqdmFsKQoreworCXJldHVybiByZWFkMzJfbG9ja2VkKHdkZXYsIFdGWF9SRUdfQ09OVFJPTCwg dmFsKTsKK30KKworaW50IGNvbnRyb2xfcmVnX3dyaXRlKHN0cnVjdCB3ZnhfZGV2ICp3ZGV2LCB1 MzIgdmFsKQoreworCXJldHVybiB3cml0ZTMyX2xvY2tlZCh3ZGV2LCBXRlhfUkVHX0NPTlRST0ws IHZhbCk7Cit9CisKK2ludCBjb250cm9sX3JlZ193cml0ZV9iaXRzKHN0cnVjdCB3ZnhfZGV2ICp3 ZGV2LCB1MzIgbWFzaywgdTMyIHZhbCkKK3sKKwlyZXR1cm4gd3JpdGUzMl9iaXRzX2xvY2tlZCh3 ZGV2LCBXRlhfUkVHX0NPTlRST0wsIG1hc2ssIHZhbCk7Cit9CisKK2ludCBpZ3ByX3JlZ19yZWFk KHN0cnVjdCB3ZnhfZGV2ICp3ZGV2LCBpbnQgaW5kZXgsIHUzMiAqdmFsKQoreworCWludCByZXQ7 CisKKwkqdmFsID0gfjA7IC8vIE5ldmVyIHJldHVybiB1bmRlZmluZWQgdmFsdWUKKwlyZXQgPSB3 cml0ZTMyX2xvY2tlZCh3ZGV2LCBXRlhfUkVHX1NFVF9HRU5fUl9XLCBJR1BSX1JXIHwgaW5kZXgg PDwgMjQpOworCWlmIChyZXQpCisJCXJldHVybiByZXQ7CisJcmV0ID0gcmVhZDMyX2xvY2tlZCh3 ZGV2LCBXRlhfUkVHX1NFVF9HRU5fUl9XLCB2YWwpOworCWlmIChyZXQpCisJCXJldHVybiByZXQ7 CisJKnZhbCAmPSBJR1BSX1ZBTFVFOworCXJldHVybiByZXQ7Cit9CisKK2ludCBpZ3ByX3JlZ193 cml0ZShzdHJ1Y3Qgd2Z4X2RldiAqd2RldiwgaW50IGluZGV4LCB1MzIgdmFsKQoreworCXJldHVy biB3cml0ZTMyX2xvY2tlZCh3ZGV2LCBXRlhfUkVHX1NFVF9HRU5fUl9XLCBpbmRleCA8PCAyNCB8 IHZhbCk7Cit9CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9zaWxhYnMvd2Z4L2h3 aW8uaCBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3NpbGFicy93ZngvaHdpby5oCm5ldyBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uMGI4ZTRmNzE1N2RmCi0tLSAvZGV2L251bGwK KysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3Mvc2lsYWJzL3dmeC9od2lvLmgKQEAgLTAsMCArMSw3 NSBAQAorLyogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb25seSAqLworLyoKKyAq IExvdy1sZXZlbCBBUEkuCisgKgorICogQ29weXJpZ2h0IChjKSAyMDE3LTIwMjAsIFNpbGljb24g TGFib3JhdG9yaWVzLCBJbmMuCisgKiBDb3B5cmlnaHQgKGMpIDIwMTAsIFNULUVyaWNzc29uCisg Ki8KKyNpZm5kZWYgV0ZYX0hXSU9fSAorI2RlZmluZSBXRlhfSFdJT19ICisKKyNpbmNsdWRlIDxs aW51eC90eXBlcy5oPgorCitzdHJ1Y3Qgd2Z4X2RldjsKKworaW50IHdmeF9kYXRhX3JlYWQoc3Ry dWN0IHdmeF9kZXYgKndkZXYsIHZvaWQgKmJ1Ziwgc2l6ZV90IGJ1Zl9sZW4pOworaW50IHdmeF9k YXRhX3dyaXRlKHN0cnVjdCB3ZnhfZGV2ICp3ZGV2LCBjb25zdCB2b2lkICpidWYsIHNpemVfdCBi dWZfbGVuKTsKKworaW50IHNyYW1fYnVmX3JlYWQoc3RydWN0IHdmeF9kZXYgKndkZXYsIHUzMiBh ZGRyLCB2b2lkICpidWYsIHNpemVfdCBsZW4pOworaW50IHNyYW1fYnVmX3dyaXRlKHN0cnVjdCB3 ZnhfZGV2ICp3ZGV2LCB1MzIgYWRkciwgY29uc3Qgdm9pZCAqYnVmLCBzaXplX3QgbGVuKTsKKwor aW50IGFoYl9idWZfcmVhZChzdHJ1Y3Qgd2Z4X2RldiAqd2RldiwgdTMyIGFkZHIsIHZvaWQgKmJ1 Ziwgc2l6ZV90IGxlbik7CitpbnQgYWhiX2J1Zl93cml0ZShzdHJ1Y3Qgd2Z4X2RldiAqd2Rldiwg dTMyIGFkZHIsIGNvbnN0IHZvaWQgKmJ1Ziwgc2l6ZV90IGxlbik7CisKK2ludCBzcmFtX3JlZ19y ZWFkKHN0cnVjdCB3ZnhfZGV2ICp3ZGV2LCB1MzIgYWRkciwgdTMyICp2YWwpOworaW50IHNyYW1f cmVnX3dyaXRlKHN0cnVjdCB3ZnhfZGV2ICp3ZGV2LCB1MzIgYWRkciwgdTMyIHZhbCk7CisKK2lu dCBhaGJfcmVnX3JlYWQoc3RydWN0IHdmeF9kZXYgKndkZXYsIHUzMiBhZGRyLCB1MzIgKnZhbCk7 CitpbnQgYWhiX3JlZ193cml0ZShzdHJ1Y3Qgd2Z4X2RldiAqd2RldiwgdTMyIGFkZHIsIHUzMiB2 YWwpOworCisjZGVmaW5lIENGR19FUlJfU1BJX0ZSQU1FICAgICAgICAgIDB4MDAwMDAwMDEgLy8g b25seSB3aXRoIFNQSQorI2RlZmluZSBDRkdfRVJSX1NESU9fQlVGX01JU01BVENIICAweDAwMDAw MDAxIC8vIG9ubHkgd2l0aCBTRElPCisjZGVmaW5lIENGR19FUlJfQlVGX1VOREVSUlVOICAgICAg IDB4MDAwMDAwMDIKKyNkZWZpbmUgQ0ZHX0VSUl9EQVRBX0lOX1RPT19MQVJHRSAgMHgwMDAwMDAw NAorI2RlZmluZSBDRkdfRVJSX0hPU1RfTk9fT1VUX1FVRVVFICAweDAwMDAwMDA4CisjZGVmaW5l IENGR19FUlJfQlVGX09WRVJSVU4gICAgICAgIDB4MDAwMDAwMTAKKyNkZWZpbmUgQ0ZHX0VSUl9E QVRBX09VVF9UT09fTEFSR0UgMHgwMDAwMDAyMAorI2RlZmluZSBDRkdfRVJSX0hPU1RfTk9fSU5f UVVFVUUgICAweDAwMDAwMDQwCisjZGVmaW5lIENGR19FUlJfSE9TVF9DUkNfTUlTUyAgICAgIDB4 MDAwMDAwODAgLy8gb25seSB3aXRoIFNESU8KKyNkZWZpbmUgQ0ZHX1NQSV9JR05PUkVfQ1MgICAg ICAgICAgMHgwMDAwMDA4MCAvLyBvbmx5IHdpdGggU1BJCisjZGVmaW5lIENGR19CWVRFX09SREVS X01BU0sgICAgICAgIDB4MDAwMDAzMDAgLy8gb25seSB3cml0YWJsZSB3aXRoIFNQSQorI2RlZmlu ZSAgICAgQ0ZHX0JZVEVfT1JERVJfQkFEQyAgICAweDAwMDAwMDAwCisjZGVmaW5lICAgICBDRkdf QllURV9PUkRFUl9EQ0JBICAgIDB4MDAwMDAxMDAKKyNkZWZpbmUgICAgIENGR19CWVRFX09SREVS X0FCQ0QgICAgMHgwMDAwMDIwMCAvLyBTRElPIGFsd2F5cyB1c2UgdGhpcyB2YWx1ZQorI2RlZmlu ZSBDRkdfRElSRUNUX0FDQ0VTU19NT0RFICAgICAweDAwMDAwNDAwCisjZGVmaW5lIENGR19QUkVG RVRDSF9BSEIgICAgICAgICAgIDB4MDAwMDA4MDAKKyNkZWZpbmUgQ0ZHX0RJU0FCTEVfQ1BVX0NM SyAgICAgICAgMHgwMDAwMTAwMAorI2RlZmluZSBDRkdfUFJFRkVUQ0hfU1JBTSAgICAgICAgICAw eDAwMDAyMDAwCisjZGVmaW5lIENGR19DUFVfUkVTRVQgICAgICAgICAgICAgIDB4MDAwMDQwMDAK KyNkZWZpbmUgQ0ZHX1NESU9fRElTQUJMRV9JUlEgICAgICAgMHgwMDAwODAwMCAvLyBvbmx5IHdp dGggU0RJTworI2RlZmluZSBDRkdfSVJRX0VOQUJMRV9EQVRBICAgICAgICAweDAwMDEwMDAwCisj ZGVmaW5lIENGR19JUlFfRU5BQkxFX1dSRFkgICAgICAgIDB4MDAwMjAwMDAKKyNkZWZpbmUgQ0ZH X0NMS19SSVNFX0VER0UgICAgICAgICAgMHgwMDA0MDAwMAorI2RlZmluZSBDRkdfU0RJT19ESVNB QkxFX0NSQ19DSEsgICAweDAwMDgwMDAwIC8vIG9ubHkgd2l0aCBTRElPCisjZGVmaW5lIENGR19S RVNFUlZFRCAgICAgICAgICAgICAgIDB4MDBGMDAwMDAKKyNkZWZpbmUgQ0ZHX0RFVklDRV9JRF9N QUpPUiAgICAgICAgMHgwNzAwMDAwMAorI2RlZmluZSBDRkdfREVWSUNFX0lEX1JFU0VSVkVEICAg ICAweDc4MDAwMDAwCisjZGVmaW5lIENGR19ERVZJQ0VfSURfVFlQRSAgICAgICAgIDB4ODAwMDAw MDAKK2ludCBjb25maWdfcmVnX3JlYWQoc3RydWN0IHdmeF9kZXYgKndkZXYsIHUzMiAqdmFsKTsK K2ludCBjb25maWdfcmVnX3dyaXRlKHN0cnVjdCB3ZnhfZGV2ICp3ZGV2LCB1MzIgdmFsKTsKK2lu dCBjb25maWdfcmVnX3dyaXRlX2JpdHMoc3RydWN0IHdmeF9kZXYgKndkZXYsIHUzMiBtYXNrLCB1 MzIgdmFsKTsKKworI2RlZmluZSBDVFJMX05FWFRfTEVOX01BU0sgICAweDAwMDAwRkZGCisjZGVm aW5lIENUUkxfV0xBTl9XQUtFVVAgICAgIDB4MDAwMDEwMDAKKyNkZWZpbmUgQ1RSTF9XTEFOX1JF QURZICAgICAgMHgwMDAwMjAwMAoraW50IGNvbnRyb2xfcmVnX3JlYWQoc3RydWN0IHdmeF9kZXYg KndkZXYsIHUzMiAqdmFsKTsKK2ludCBjb250cm9sX3JlZ193cml0ZShzdHJ1Y3Qgd2Z4X2RldiAq d2RldiwgdTMyIHZhbCk7CitpbnQgY29udHJvbF9yZWdfd3JpdGVfYml0cyhzdHJ1Y3Qgd2Z4X2Rl diAqd2RldiwgdTMyIG1hc2ssIHUzMiB2YWwpOworCisjZGVmaW5lIElHUFJfUlcgICAgICAgICAg MHg4MDAwMDAwMAorI2RlZmluZSBJR1BSX0lOREVYICAgICAgIDB4N0YwMDAwMDAKKyNkZWZpbmUg SUdQUl9WQUxVRSAgICAgICAweDAwRkZGRkZGCitpbnQgaWdwcl9yZWdfcmVhZChzdHJ1Y3Qgd2Z4 X2RldiAqd2RldiwgaW50IGluZGV4LCB1MzIgKnZhbCk7CitpbnQgaWdwcl9yZWdfd3JpdGUoc3Ry dWN0IHdmeF9kZXYgKndkZXYsIGludCBpbmRleCwgdTMyIHZhbCk7CisKKyNlbmRpZiAvKiBXRlhf SFdJT19IICovCi0tIAoyLjI4LjAKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fCmRldmVsIG1haWxpbmcgbGlzdApkZXZlbEBsaW51eGRyaXZlcnByb2plY3Qu b3JnCmh0dHA6Ly9kcml2ZXJkZXYubGludXhkcml2ZXJwcm9qZWN0Lm9yZy9tYWlsbWFuL2xpc3Rp bmZvL2RyaXZlcmRldi1kZXZlbAo=