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 lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 8FC0BC83013 for ; Wed, 2 Jul 2025 09:43:52 +0000 (UTC) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1uWu08-0000Ks-Ir; Wed, 02 Jul 2025 05:43:36 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1uWu07-0000KY-N9 for grub-devel@gnu.org; Wed, 02 Jul 2025 05:43:35 -0400 Received: from mail-pg1-x534.google.com ([2607:f8b0:4864:20::534]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1uWu01-0005X8-LW for grub-devel@gnu.org; Wed, 02 Jul 2025 05:43:35 -0400 Received: by mail-pg1-x534.google.com with SMTP id 41be03b00d2f7-b2c4e46a89fso3788126a12.2 for ; Wed, 02 Jul 2025 02:43:28 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1751449406; x=1752054206; darn=gnu.org; h=references:in-reply-to:message-id:date:subject:cc:to:from:from:to :cc:subject:date:message-id:reply-to; bh=jV3uA6EbVc085aygQ3Y/1r6OQfhe5kSoTlgM+rpuToA=; b=eDTrs0apjmJ6zel9iWaICWd0lHAEvFTaWI+A1NXT1+MztU5qVKHwzNE3Y2DmN8pU/G Ne3xU5rLZ1SQEsktRf5gh7JH9ESn4GgAQGCbXkeugCUV4B7ng6hcRghz/nWLgBs3Vyw+ UgvxarenhMLaT/GMI2ck6VV0tt2YSXDenwUtEbcRglvIHtZVCO+FhofMP6Dn5VKZRz7e KKWf+iWC8cN132HiznTe6Ug8JioBB6WKE1aMkATWYKe7l2793q/TXaPXH758yiTHdosc Yd5lo8N8ZAmdR4/HuyI/tfRVQvomyMUCcY1fF3E+dmyP7xVRyfH8QP4gU5eHzVeeB4v6 OrNA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1751449406; x=1752054206; h=references:in-reply-to:message-id:date:subject:cc:to:from :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=jV3uA6EbVc085aygQ3Y/1r6OQfhe5kSoTlgM+rpuToA=; b=wf+pIu3tGs82uETtQBIrHJ1+I+4X0zA5xlEcNHvO2Ex3PGF8kJ9pa8MvjYl7zTHiXs 8MgOPGeFTVCiZdD4bHgbN08/YxnVV9y7jahiSLL0sPyx+mL6lXMGr8XoMI4CmiEGbunL mJQROM2aXRCiUn/HNUALunZqwtMeJu8DasWOZIUjQZCKibr9bQ3Guvdm3mL04SI2hiSN kz/+Q7v5alizYtN71NjUZ6jB52NJ4UWP/Ne51GqcYPHSj2d4KS7H8Dn5bjl8rSYz46rB MaDirXAv+ZWdwplx63gQcM/ZZvfVdq2E2TagV2Ry5BbEBeAHjg2f6MC5IYzoV50ZzHQf wX0g== X-Gm-Message-State: AOJu0Yxi7SMDzBlPVe0hZ6d42Z0RzRoS/BkvuaNfNi+78qBlCctTXSVL EklDyHFKo1yfmHPpfZxuhtu4qKLtIQuijncL1XRNzOwmxUXRhy0riSyDtv/C6tUx6FE= X-Gm-Gg: ASbGncu9UoTEZv7HR7t97iBmLIEwca3tI/n9AWipPdbcyVK4vxr2fN250s3wM/rVtdA edkHZlIqjdDVSgLO0EaW3P3VDPSeC8EpKXq1DvKg99nISVpQHqVfHJXCFSvALzMhI328x3qOFG8 b1IxJdYs7RZzlEpyHaMhvm+4l7fWej4nX2r5E33L1l+8dDtr0jKjfrpWXqwKFagBQi7QH+zqhaV 26EPoiwpbIscdJyvhKv27uP9PjmTZVrxSLj5CUdWOKlus4zb9Igk/E17KZXLxWRk5EltADHHR8p FImcXFCYzt3TZaF/5J2eA1bwChJoHOSc9t7GkmpsXxCGIC54yuZywEBQHzw= X-Google-Smtp-Source: AGHT+IHTYuyr95eiu+bWre2M1hSBK+DT/i3JvABjMlL2kMCZeAjmj844ot1UPJ57Wv78wJKfO+UnPw== X-Received: by 2002:a17:90b:3c87:b0:311:c939:c851 with SMTP id 98e67ed59e1d1-31a90b27899mr3772760a91.4.1751449406192; Wed, 02 Jul 2025 02:43:26 -0700 (PDT) Received: from localhost ([112.64.138.194]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-315f5384107sm18457234a91.5.2025.07.02.02.43.25 (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Wed, 02 Jul 2025 02:43:25 -0700 (PDT) From: chench246 To: grub-devel@gnu.org Cc: khaliidcaliy@gmail.com, sudhakar@linux.ibm.com, chench246 Subject: [PATCH v3 1/2] efi/tpcm: Add UEFI interface for TPCM module Date: Wed, 2 Jul 2025 17:42:32 +0800 Message-Id: <20250702094233.37633-2-chench246@gmail.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20250702094233.37633-1-chench246@gmail.com> References: <20250628080936.1876-1-khaliidcaliy@gmail.com> <20250702094233.37633-1-chench246@gmail.com> Received-SPF: pass client-ip=2607:f8b0:4864:20::534; envelope-from=chench246@gmail.com; helo=mail-pg1-x534.google.com X-Spam_score_int: -17 X-Spam_score: -1.8 X-Spam_bar: - X-Spam_report: (-1.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: grub-devel@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: The development of GNU GRUB List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: The development of GNU GRUB MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: grub-devel-bounces+grub-devel=archiver.kernel.org@gnu.org Sender: grub-devel-bounces+grub-devel=archiver.kernel.org@gnu.org VFBDTShUcnVzdGVkIFBsYXRmb3JtIENvbnRyb2wgTW9kdWxlKSBpcyBhIENoaW5lc2Ugc3RhbmRh cmQsIGFuZAp0aGUgaW50ZXJmYWNlIGltcGxlbWVudGF0aW9uIGNvbXBsaWVzIHdpdGggVUVGSSBz cGVjaWZpY2F0aW9uLiBJZgp0cGNtIHJlbGF0ZWQgcHJvdG9jb2wgaXMgbm90IGltcGxlbWVudGVk IGluIFVFRkksIHRoZW4gdHBjbSBtb2R1bGUKZGlyZWN0bHkgcmV0dXJucyBOT05FLgoKU2lnbmVk LW9mZi1ieTogaGFvIGNoZW4gPGNoZW5jaDI0NkBnbWFpbC5jb20+Ci0tLQogZ3J1Yi1jb3JlL2Nv bW1hbmRzL2VmaS90cGNtLmMgfCAxNjMgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KwogaW5jbHVkZS9ncnViL2VmaS90cGNtLmggICAgICAgfCAgNjEgKysrKysrKysrKysrKwogaW5j bHVkZS9ncnViL2Vyci5oICAgICAgICAgICAgfCAgIDMgKy0KIDMgZmlsZXMgY2hhbmdlZCwgMjI2 IGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKIGNyZWF0ZSBtb2RlIDEwMDc1NSBncnViLWNv cmUvY29tbWFuZHMvZWZpL3RwY20uYwogY3JlYXRlIG1vZGUgMTAwNjQ0IGluY2x1ZGUvZ3J1Yi9l ZmkvdHBjbS5oCgpkaWZmIC0tZ2l0IGEvZ3J1Yi1jb3JlL2NvbW1hbmRzL2VmaS90cGNtLmMgYi9n cnViLWNvcmUvY29tbWFuZHMvZWZpL3RwY20uYwpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAw MDAwMDAwMDAuLjU3Y2QxNDdkYwotLS0gL2Rldi9udWxsCisrKyBiL2dydWItY29yZS9jb21tYW5k cy9lZmkvdHBjbS5jCkBAIC0wLDAgKzEsMTYzIEBACisvKgorICogIEdSVUIgIC0tICBHUmFuZCBV bmlmaWVkIEJvb3Rsb2FkZXIKKyAqICBDb3B5cmlnaHQgKEMpIDIwMjUgIEZyZWUgU29mdHdhcmUg Rm91bmRhdGlvbiwgSW5jLgorICoKKyAqICBHUlVCIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4g cmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKyAqICBpdCB1bmRlciB0aGUgdGVybXMgb2Yg dGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorICogIHRoZSBG cmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2Us IG9yCisgKiAgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiAgR1JV QiBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICog IGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJh bnR5IG9mCisgKiAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQ VVJQT1NFLiAgU2VlIHRoZQorICogIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3Jl IGRldGFpbHMuCisgKgorICogIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhl IEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiAgYWxvbmcgd2l0aCBHUlVCLiAgSWYgbm90 LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgorICoKKyAqICBFRkkgVFBDTSBz dXBwb3J0IGNvZGUuCisgKi8KKworI2luY2x1ZGUgPGdydWIvZXJyLmg+CisjaW5jbHVkZSA8Z3J1 Yi9lZmkvdHBjbS5oPgorCisKK3N0YXRpYyBncnViX3VpbnQzMl90IGdfbWVhc3VyZWRfaWQgPSBT VEFHRV9TVEFSVDsKKworLyoKKyAqIGdldF90cGNtX3N0YWdlOgorICogVFBDTSBkb2VzIG5vdCBt YWtlIGEgZGlzdGluY3Rpb24gd2l0aCB0aGUgdHlwZSBvZgorICogbWVhc3VyZWQgdGFyZ2V0LCBz byB3ZSB1c2UgZ19tZWFzdXJlZF9pZCBkaXJlY3RseQorICogZm9yIHRoZSBzdGFnZS4KKyAqLwor c3RhdGljIGdydWJfdWludDMyX3QKK2dldF90cGNtX3N0YWdlICh2b2lkKQoreworICAgIGdydWJf dWludDMyX3Qgc3RhZ2UgPSBTVEFHRV9JTlZBTElEOworCisgICAgc3RhZ2UgPSBnX21lYXN1cmVk X2lkOworCisgICAgaWYgKHN0YWdlIDwgU1RBR0VfU1RBUlQgfHwgc3RhZ2UgPiBTVEFHRV9FTkQp CisgICAgICBzdGFnZSA9IFNUQUdFX0lOVkFMSUQ7CisKKyAgICByZXR1cm4gc3RhZ2U7Cit9CisK Ky8qCisgKiB1cGRhdGVfbWVhc3VyZWRfaWQ6CisgKiB1cGRhdGUgZ19tZWFzdXJlZF9pZCArMSBl dmVyeSB0aW1lIG1lYXN1cmVkLCBhbmQgZ19tZWFzdXJlZF9pZAorICogd2lsbCBuZXZlciBiZSBk ZWNyZWFzZWQuCisgKi8KK3N0YXRpYyB2b2lkCit1cGRhdGVfbWVhc3VyZWRfaWQgKHZvaWQpCit7 CisgICAgZ19tZWFzdXJlZF9pZCsrOworfQorCisvKgorICogbWVhc3VyZV9tZW1vcnk6CisgKiBt ZWFzdXJlIHRoZSBtZW1lcnkgcmVnaW9uLS0oYWRkciwgc2l6ZSkgdGhyb3VnaCB0aGUgVFBDTSBw cm90b2NvbC4KKyAqIGlmIFRQQ00gcHJvdG9jb2wgaXMgbm90IGV4aXN0IGluIEJJT1MsIGl0IHdp bGwgcmV0dXJuIFNVQ0MgdG8ga2VlcAorICogY29tcGF0aWJsZSB3aXRoIG5vbi1tZWFzdXJlbWVu dC1zdXBwb3J0IGJpb3M7IGlmIFRQQ00gcHJvdG9jb2wgaXMKKyAqIGV4aXN0IGJ1dCBub3QgZW5h YmxlZCwgaXQgd2lsbCBhbHNvIHJldHVybiBTVUNDLgorICovCitzdGF0aWMgZ3J1Yl9lcnJfdAor bWVhc3VyZV9tZW1vcnkgKGVudW0gZ3J1Yl9maWxlX3R5cGUgdHlwZSBfX2F0dHJpYnV0ZV9fKCh1 bnVzZWQpKSwKKyAgICAgICAgICAgICAgICBjaGFyICpkZXNjLCBncnViX2FkZHJfdCBhZGRyLCBn cnViX3NpemVfdCBzaXplKQoreworICAgIGdydWJfZWZpX2hhbmRsZV90ICAgKmhhbmRsZXMgPSBO VUxMOworICAgIGdydWJfZWZpX3VpbnRuX3QgICAgbnVtX2hhbmRsZXM7CisgICAgZ3J1Yl9lZmlf aGFuZGxlX3QgICBncnViX2MycF9oYW5kbGUgPSAwOworICAgIGdydWJfZXJyX3QgIHRlc3RfYzJw X2VyciA9IEdSVUJfRVJSX0JBRF9PUzsKKyAgICBncnViX2d1aWRfdCAgICAgICAgIGMycF9ndWlk ID0gQzJQR1VJRDsKKyAgICBncnViX3VpbnQzMl90ICAgICAgIG1lYXN1cmVfcmVzdWx0ID0gMDsK KyAgICBncnViX3VpbnQzMl90ICAgICAgIGNvbnRyb2xfcmVzdWx0ID0gMDsKKyAgICBncnViX2Vm aV9ib29sZWFuX3QgICAgdmVyaWZ5X2VuYWJsZSA9IGZhbHNlOworICAgIGdydWJfc2l6ZV90ICAg ICAgICAgZGVzY19sZW4gPSAwOworCisgICAgaGFuZGxlcyA9IGdydWJfZWZpX2xvY2F0ZV9oYW5k bGUgKEdSVUJfRUZJX0JZX1BST1RPQ09MLCAmYzJwX2d1aWQsIE5VTEwsICZudW1faGFuZGxlcyk7 CisgICAgaWYgKGhhbmRsZXMgIT0gTlVMTCAmJiBudW1faGFuZGxlcyA+IDApCisgICAgeworICAg ICAgICBzdHJ1Y3QgYzJwX3Byb3RvY29sICpjMnA7CisKKyAgICAgICAgZ3J1Yl9jMnBfaGFuZGxl ID0gaGFuZGxlc1swXTsKKyAgICAgICAgZ3J1Yl9kcHJpbnRmICgidHBjbSIsICJtZWFzdWUgbWVt b3J5IGFkZHIgMHglbHggc2l6ZSAweCVseCAgXG4iLCBhZGRyLCBzaXplKTsKKyAgICAgICAgYzJw ID0gZ3J1Yl9lZmlfb3Blbl9wcm90b2NvbCAoZ3J1Yl9jMnBfaGFuZGxlLCAmYzJwX2d1aWQsCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdSVUJfRUZJX09QRU5fUFJPVE9D T0xfR0VUX1BST1RPQ09MKTsKKyAgICAgICAgaWYgKGMycCAhPSBOVUxMKQorICAgICAgICB7Cisg ICAgICAgICAgICB2ZXJpZnlfZW5hYmxlID0gYzJwLT52ZXJpZnlfaXNfZW5hYmxlZCAoYzJwKTsK KyAgICAgICAgICAgIGlmICh2ZXJpZnlfZW5hYmxlID09IHRydWUpCisgICAgICAgICAgICB7Cisg ICAgICAgICAgICAgICAgc3RydWN0IGFkZHJfcmFuZ2UgcmFuZ2U7CisgICAgICAgICAgICAgICAg Z3J1Yl9lZmlfc3RhdHVzX3Qgc3RhdHVzID0gMDsKKyAgICAgICAgICAgICAgICBncnViX3VpbnQz Ml90IHN0YWdlID0gU1RBR0VfSU5WQUxJRDsKKworICAgICAgICAgICAgICAgIHJhbmdlLnN0YXJ0 ICA9IGFkZHI7CisgICAgICAgICAgICAgICAgcmFuZ2UubGVuZ3RoID0gc2l6ZTsKKworICAgICAg ICAgICAgICAgIHN0YWdlID0gZ2V0X3RwY21fc3RhZ2UgKCk7CisgICAgICAgICAgICAgICAgaWYg KHN0YWdlICE9IFNUQUdFX0lOVkFMSUQpCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAg ICAgICAgICBkZXNjX2xlbiA9IGdydWJfc3RybGVuIChkZXNjKSArIDE7CisgICAgICAgICAgICAg ICAgICAgIHN0YXR1cyA9IGMycC0+dmVyaWZ5X3JhdyAoYzJwLCBzdGFnZSwgKGdydWJfdWludDY0 X3QpZGVzYywgZGVzY19sZW4sIDEsICZyYW5nZSwgJm1lYXN1cmVfcmVzdWx0LCAmY29udHJvbF9y ZXN1bHQpOworICAgICAgICAgICAgICAgICAgICBpZiAoc3RhdHVzID09IDAgJiYgKGNvbnRyb2xf cmVzdWx0ICYgTUVBU1VSRV9BQ1RJT05fTUFTSykgPT0gMCkKKyAgICAgICAgICAgICAgICAgICAg eworICAgICAgICAgICAgICAgICAgICAgICAgZ3J1Yl9kcHJpbnRmICgidHBjbSIsICJ2ZXJpZnlf cmF3IHN1Y2Nlc3MuIHN0YWdlWyVkXWRlc2M6WyVzXVxuIiwgc3RhZ2UsIGRlc2MpOworICAgICAg ICAgICAgICAgICAgICAgICAgdGVzdF9jMnBfZXJyID0gR1JVQl9FUlJfTk9ORTsKKyAgICAgICAg ICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAg ICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGdydWJfZHByaW50ZiAoInRwY20iLCAidmVy aWZ5X3JhdyBlcnJvclxuIik7CisgICAgICAgICAgICAgICAgICAgICAgICB3aGlsZSAoMSkKKyAg ICAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBncnVi X2Vycm9yIChHUlVCX0VSUl9UUENNX1ZFUklGWSwgInRwY20gdmVyaWZ5IGVycm9yLiBzdGFnZVsl ZF1kZXNjWyVzXVxuIiwgc3RhZ2UsIGRlc2MpOworICAgICAgICAgICAgICAgICAgICAgICAgICAg IGFzbSB2b2xhdGlsZSAoImhsdCIpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAg ICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGVsc2UK KyAgICAgICAgICAgICAgICAgIGdydWJfZHByaW50ZiAoInRwY20iLCAiaW52YWxpZCBzdGFnZVxu Iik7CisKKyAgICAgICAgICAgICAgICB1cGRhdGVfbWVhc3VyZWRfaWQgKCk7CisKKyAgICAgICAg ICAgIH0KKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBn cnViX2RwcmludGYgKCJ0cGNtIiwgImltYWdlIHZlcmlmeSBub3QgZW5hYmxlZFxuIik7CisgICAg ICAgICAgICAgICAgdGVzdF9jMnBfZXJyID0gR1JVQl9FUlJfTk9ORTsKKyAgICAgICAgICAgIH0K KyAgICAgICAgfQorICAgICAgICBlbHNlCisgICAgICAgICAgICBncnViX2RwcmludGYgKCJ0cGNt IiwgIm9wZW4gYzJwIHByb3RvY29sIGZhaWxlZFxuIik7CisgICAgfQorICAgIGVsc2UKKyAgICB7 CisgICAgICAgIC8qIGtlZXAgY29tcGF0aWJsZSB3aXRoIG5vbi1tZWFzdXJlbWVudC1zdXBwb3J0 IGJpb3MuICovCisgICAgICAgIGdydWJfZHByaW50ZiAoInRwY20iLCAibm90IGZvdW5kIEMyUCBw cm90b2NvbFxuIik7CisgICAgICAgIHRlc3RfYzJwX2VyciA9IEdSVUJfRVJSX05PTkU7CisgICAg fQorCisgICAgcmV0dXJuIHRlc3RfYzJwX2VycjsKK30KKworLyogZ3J1Yl90cGNtX21lYXN1cmVf bWVtb3J5ICovCitncnViX2Vycl90CitncnViX3RwY21fbWVhc3VyZV9tZW1vcnkgKHZvaWQgKmNv bnRleHQsIGdydWJfYWRkcl90IGJ1ZiwgZ3J1Yl9zaXplX3Qgc2l6ZSkKK3sKKyAgICBjaGFyICpw X2NvbnRleHQgPSAoY2hhciAqKSBjb250ZXh0OworICAgIGNoYXIgKnAsICpwX2Rlc2M7CisgICAg Y2hhciB0bXBbVFBDTV9NQVhfQlVGX1NJWkVdID0geycwJ307CisgICAgZW51bSBncnViX2ZpbGVf dHlwZSB0eXBlOworCisgICAgaWYgKHBfY29udGV4dCA9PSBOVUxMKQorICAgICAgICByZXR1cm4g R1JVQl9FUlJfQlVHOworCisgICAgcCA9IGdydWJfc3RyY2hyIChwX2NvbnRleHQsICd8Jyk7Cisg ICAgcF9kZXNjID0gcCArIDE7CisgICAgZ3J1Yl9tZW1jcHkgKHRtcCwgcF9jb250ZXh0LCAocCAt IHBfY29udGV4dCkpOworICAgIHR5cGUgPSBncnViX3N0cnRvdWwgKHRtcCwgMCwgMTApOworCisg ICAgcmV0dXJuIG1lYXN1cmVfbWVtb3J5ICh0eXBlLCBwX2Rlc2MsIGJ1Ziwgc2l6ZSk7Cit9CisK ZGlmZiAtLWdpdCBhL2luY2x1ZGUvZ3J1Yi9lZmkvdHBjbS5oIGIvaW5jbHVkZS9ncnViL2VmaS90 cGNtLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwLi5lNTRhZWU2YzIKLS0t IC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL2dydWIvZWZpL3RwY20uaApAQCAtMCwwICsxLDYxIEBA CisvKgorICogIEdSVUIgIC0tICBHUmFuZCBVbmlmaWVkIEJvb3Rsb2FkZXIKKyAqICBDb3B5cmln aHQgKEMpIDIwMjUgIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorICoKKyAqICBHUlVC IGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkK KyAqICBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl IGFzIHB1Ymxpc2hlZCBieQorICogIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIGVpdGhl ciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yCisgKiAgKGF0IHlvdXIgb3B0aW9uKSBhbnkg bGF0ZXIgdmVyc2lvbi4KKyAqCisgKiAgR1JVQiBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0 aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0 aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiAgTUVSQ0hBTlRBQklMSVRZIG9y IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorICogIEdOVSBHZW5l cmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogIFlvdSBzaG91bGQg aGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisg KiAgYWxvbmcgd2l0aCBHUlVCLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNl bnNlcy8+LgorICovCisKKyNpZm5kZWYgR1JVQl9FRklfVFBDTV9IRUFERVIKKyNkZWZpbmUgR1JV Ql9FRklfVFBDTV9IRUFERVIgMQorCisjaW5jbHVkZSA8Z3J1Yi9maWxlLmg+CisjaW5jbHVkZSA8 Z3J1Yi9lZmkvYXBpLmg+CisjaW5jbHVkZSA8Z3J1Yi9lZmkvZWZpLmg+CisKKyNkZWZpbmUgQzJQ R1VJRCAgICAgICAgICAgICAgICAgICAgICAgICAgezB4Zjg5YWI1Y2QsIDB4MjgyOSwgMHg0MjJm LCB7MHhhNSwgMHhmMywgMHgwMywgMHgyOCwgMHhlMCwgMHg2YywgMHhmYywgMHhiYn19CisjZGVm aW5lIE1FQVNVUkVfUkVTVUxUX01BU0sgICAgICAgICAgKDB4ZmYwMCkKKyNkZWZpbmUgTUVBU1VS RV9SRVNVTFRfU0hJRlQgICAgICAgICAoMTYpCisjZGVmaW5lIE1FQVNVUkVfQUNUSU9OX01BU0sg ICAgICAgICAgKDB4MSkKKyNkZWZpbmUgVFBDTV9NQVhfQlVGX1NJWkUgICAgICAgICAgICAxMjgK KworLyoKKyAqIHN0YWdlIGxheW91dDoKKyAqIDIwMDB+Mjk5OTogKzEgZXZlcnkgdGltZQorICov CisKKyNkZWZpbmUgU1RBR0VfU1RBUlQgICAgICAyMDAwCisjZGVmaW5lIFNUQUdFX0VORCAgICAg ICAgMjk5OQorI2RlZmluZSBTVEFHRV9JTlZBTElEICAgIDMwMDAKKworc3RydWN0IGFkZHJfcmFu Z2UgeworICAgIGdydWJfdWludDY0X3Qgc3RhcnQ7CisgICAgZ3J1Yl91aW50NjRfdCBsZW5ndGg7 Cit9Oworc3RydWN0IGMycF9wcm90b2NvbCB7CisgICAgZ3J1Yl9lZmlfc3RhdHVzX3QgKF9fZ3J1 Yl9lZmlfYXBpICp2ZXJpZnlfcmF3KSAoc3RydWN0IGMycF9wcm90b2NvbCAqdGhpcywKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdydWJfdWludDMyX3QgbWVhc3VyZV9zdGFn ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdydWJfdWludDY0X3QgaW1h Z2VfaW5mbywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdydWJfdWludDMy X3QgaW1hZ2VfaW5mb19zaXplLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Z3J1Yl91aW50MzJfdCBudW1fYWRkcl9yYW5nZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHN0cnVjdCBhZGRyX3JhbmdlIHJhbmdlc1tdLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgZ3J1Yl91aW50MzJfdCAqbWVhc3VyZV9yZXN1bHQsCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBncnViX3VpbnQzMl90ICpjb250cm9sX3Jlc3Vs dCk7CisgICAgZ3J1Yl9lZmlfYm9vbGVhbl90IChfX2dydWJfZWZpX2FwaSAqdmVyaWZ5X2lzX2Vu YWJsZWQpKHN0cnVjdCBjMnBfcHJvdG9jb2wgKnRoaXMpOworfTsKK3R5cGVkZWYgc3RydWN0IGMy cF9wcm90b2NvbCBjMnBfcHJvdG9jb2xfdDsKKworZ3J1Yl9lcnJfdAorZ3J1Yl90cGNtX21lYXN1 cmVfbWVtb3J5ICh2b2lkICpjb250ZXh0LCBncnViX2FkZHJfdCBidWYsIGdydWJfc2l6ZV90IHNp emUpOworCisjZW5kaWYKZGlmZiAtLWdpdCBhL2luY2x1ZGUvZ3J1Yi9lcnIuaCBiL2luY2x1ZGUv Z3J1Yi9lcnIuaAppbmRleCAyMDJmYThhN2EuLjRkMjc1NjA5NyAxMDA2NDQKLS0tIGEvaW5jbHVk ZS9ncnViL2Vyci5oCisrKyBiL2luY2x1ZGUvZ3J1Yi9lcnIuaApAQCAtNzUsNyArNzUsOCBAQCB0 eXBlZGVmIGVudW0KICAgICBHUlVCX0VSUl9CQURfU0lHTkFUVVJFLAogICAgIEdSVUJfRVJSX0JB RF9GSVJNV0FSRSwKICAgICBHUlVCX0VSUl9TVElMTF9SRUZFUkVOQ0VELAotICAgIEdSVUJfRVJS X1JFQ1VSU0lPTl9ERVBUSAorICAgIEdSVUJfRVJSX1JFQ1VSU0lPTl9ERVBUSCwKKyAgICBHUlVC X0VSUl9UUENNX1ZFUklGWQogICB9CiBncnViX2Vycl90OwogCi0tIAoyLjE3LjEKCgpfX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpHcnViLWRldmVsIG1haWxp bmcgbGlzdApHcnViLWRldmVsQGdudS5vcmcKaHR0cHM6Ly9saXN0cy5nbnUub3JnL21haWxtYW4v bGlzdGluZm8vZ3J1Yi1kZXZlbAo=