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 47D24C35FFF for ; Fri, 21 Mar 2025 08:01:15 +0000 (UTC) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1tvXIB-0001nD-Em; Fri, 21 Mar 2025 03:59:47 -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 1tvXI2-0001kw-Ms for grub-devel@gnu.org; Fri, 21 Mar 2025 03:59:39 -0400 Received: from mail-wr1-x430.google.com ([2a00:1450:4864:20::430]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1tvXHz-0003Oy-Na for grub-devel@gnu.org; Fri, 21 Mar 2025 03:59:38 -0400 Received: by mail-wr1-x430.google.com with SMTP id ffacd0b85a97d-3914aba1ce4so1348416f8f.2 for ; Fri, 21 Mar 2025 00:59:35 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=google; t=1742543974; x=1743148774; darn=gnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=tEe4+/InGEjaI0K9KrPq+x0zp9j9RztDmTyHrN0o1Gs=; b=Jp446G/4XWjjNumHjL4ndrKss8IsRjtNtNYxQ8Gw6GgoyyEF7f9YO396ATUdzZXKHS 3gsVi1aF5ywdAK9naOxVk8UjJM+H/iAmNO5LoQmk6yZD4s/O7Eh51XnG1JP5vVgWn4fu Bgf2+auXRu7hPpfrR3uofu2ywUaD0wDQS3iBXqwwfCHnP1t8/mBW0Nqc6pEMD3WfPVTd TGo5mfryC7n0XSBH7V8GWUYfsDrQcNZNXtb+q3BZI4qruJEo33z0S+/iF2xJkSc4/H+u a17FV5Ttija6PZAlPnykEhr/Q3mlc4tQOWTyJuV45NRuQfSP0N8dL9ZlLJUJzdaLNxJ1 91oA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1742543974; x=1743148774; h=content-transfer-encoding:mime-version: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=tEe4+/InGEjaI0K9KrPq+x0zp9j9RztDmTyHrN0o1Gs=; b=i0VVp5/nHQg8CTqrNFO3ROI08+TVBuhpqrD6F9PGnLMcWMqSikTkCcohU0fl64pLj5 DaWVtavsioeS3VmdGKBUx3JAhhN5XjzAppmfkbMNnOiqyxfMusbZ+GVVgqJC3/vzk8su zuJUeZcp98r6BiCbZV55H93668nH/QE84OF0OOUVFop0uSI+Cf/l+GSa7L++5At3ILxU j7Wy2XuQFYol7I0VvBt7Da/lE3uNOROwpblTZEJN74yYJkZ+MT7NAshkP4lgAqHZu/F3 5Tu10Qz01iEe/i4BLOEjtCn4QRt2w9B96OHkZeMxG5UAuP7OqwZh+G1OFVBBBiQ3bcX/ uB0Q== X-Gm-Message-State: AOJu0Yzz0LKp+yPpGB/PrMXjG3cRq39mhhBv60Oq5LCslNUaisS/jxqJ S0pibGDqFJCkBIddXYmceNLi7iXBaAHVxzQTpGX0M8QFlYp1IEtDJKCbIC2Uagbar+IrF9zCrqV o X-Gm-Gg: ASbGnctyVdBGHZGSsu+yEMAXhO8rV0ZNLJSb7um9+qSkoAc08PUBUohsYMaMa1wGRQA suqelOgNBHN+oILMMaLNfyYmj4+Tz1845r5RZsHgCgEar9UovLnyRsnqWI7CNgtI+WdpFtXMdjE hnr+/4D/XB0TFY52E4btucoHP1uPUPshBhrXOTbBcCDCZE2m0IMelY2uXLup3G1PhEMhwLnQqEF RJ80hDza7ba8b2Cavt3mlD5eYmxonKim0SJE3FSmqGwleTUwfrgFVVwoXd98PQ7UF7iFhQKCKnI nbdvzAJTwozmFvrWOQe+H7/Nf1UNoALPi7a3kvcyCSD0nnLqP7RUio824Ud2HlRJ1W2xVSzhGWY = X-Google-Smtp-Source: AGHT+IG0KDDJkwohe3pBuXLhwcdm+6nwGA64ArH59E02p3qvdLzEfNnjoWGeGmobYKbSw3AHlxMfnA== X-Received: by 2002:a05:6000:1a8a:b0:390:f6aa:4e7c with SMTP id ffacd0b85a97d-3997f911525mr2541289f8f.28.1742543974047; Fri, 21 Mar 2025 00:59:34 -0700 (PDT) Received: from localhost (111-240-129-118.dynamic-ip.hinet.net. [111.240.129.118]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-227811da32fsm10227295ad.182.2025.03.21.00.59.33 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 21 Mar 2025 00:59:33 -0700 (PDT) To: The development of GNU GRUB Subject: [PATCH v4 04/12] tss2: Add TPM 2.0 NV index commands Date: Fri, 21 Mar 2025 15:59:00 +0800 Message-ID: <20250321075908.10523-5-glin@suse.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250321075908.10523-1-glin@suse.com> References: <20250321075908.10523-1-glin@suse.com> MIME-Version: 1.0 Received-SPF: pass client-ip=2a00:1450:4864:20::430; envelope-from=glin@suse.com; helo=mail-wr1-x430.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 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, 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: , From: Gary Lin via Grub-devel Reply-To: The development of GNU GRUB Cc: Gary Lin , Daniel Kiper , mchang@suse.com, patrick.colp@oracle.com, Stefan Berger , jejb@linux.ibm.com, Glenn Washburn 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 VGhlIGZvbGxvd2luZyBUUE0gMi4wIGNvbW1hbmRzIGFyZSBpbnRyb2R1Y2VkIHRvIHRzczIgdG8g YWNjZXNzIHRoZQpUUE0gbm9uLXZvbGF0aWxlIG1lbW9yeSBhc3NvY2lhdGVkIHdpdGggdGhlIE5W IGluZGV4IGhhbmRsZXMuCgotIFRQTTJfTlZfRGVmaW5lU3BhY2UKLSBUUE0yX05WX1VuZGVmaW5l U3BhY2UKLSBUUE0yX05WX1JlYWRQdWJsaWMKLSBUUE0yX05WX1JlYWQKLSBUUE0yX05WX1dyaXRl CgpUaGUgcmVsYXRlZCBtYXJzaGFsL3VubWFyc2hhbCBmdW5jdGlvbnMgYXJlIGFsc28gaW50cm9k dWNlZC4KClNpZ25lZC1vZmYtYnk6IEdhcnkgTGluIDxnbGluQHN1c2UuY29tPgpSZXZpZXdlZC1i eTogU3RlZmFuIEJlcmdlciA8c3RlZmFuYkBsaW51eC5pYm0uY29tPgotLS0KIGdydWItY29yZS9s aWIvdHNzMi90cG0yX2NtZC5jICAgfCAyMDEgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysKIGdydWItY29yZS9saWIvdHNzMi90cG0yX2NtZC5oICAgfCAgMzIgKysrKysKIGdydWItY29y ZS9saWIvdHNzMi90c3MyX211LmMgICAgfCAgMzkgKysrKysrKwogZ3J1Yi1jb3JlL2xpYi90c3My L3RzczJfbXUuaCAgICB8ICAxMiArKwogZ3J1Yi1jb3JlL2xpYi90c3MyL3RzczJfdHlwZXMuaCB8 ICAgNiArCiA1IGZpbGVzIGNoYW5nZWQsIDI5MCBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEv Z3J1Yi1jb3JlL2xpYi90c3MyL3RwbTJfY21kLmMgYi9ncnViLWNvcmUvbGliL3RzczIvdHBtMl9j bWQuYwppbmRleCAyMTFkODA3ZDUuLjZkMjVkYjFhYiAxMDA2NDQKLS0tIGEvZ3J1Yi1jb3JlL2xp Yi90c3MyL3RwbTJfY21kLmMKKysrIGIvZ3J1Yi1jb3JlL2xpYi90c3MyL3RwbTJfY21kLmMKQEAg LTEwNDUsMyArMTA0NSwyMDQgQEAgZ3J1Yl90cG0yX3Rlc3RwYXJtcyAoY29uc3QgVFBNVF9QVUJM SUNfUEFSTVNfdCAqcGFybXMsCiAKICAgcmV0dXJuIFRQTV9SQ19TVUNDRVNTOwogfQorCitUUE1f UkNfdAorZ3J1Yl90cG0yX252X2RlZmluZXNwYWNlIChjb25zdCBUUE1JX1JIX1BST1ZJU0lPTl90 IGF1dGhIYW5kbGUsCisJCQkgIGNvbnN0IFRQTVNfQVVUSF9DT01NQU5EX3QgKmF1dGhDb21tYW5k LAorCQkJICBjb25zdCBUUE0yQl9BVVRIX3QgKmF1dGgsCisJCQkgIGNvbnN0IFRQTTJCX05WX1BV QkxJQ190ICpwdWJsaWNJbmZvKQoreworICBUUE1fUkNfdCByYzsKKyAgc3RydWN0IGdydWJfdHBt Ml9idWZmZXIgaW47CisgIHN0cnVjdCBncnViX3RwbTJfYnVmZmVyIG91dDsKKyAgVFBNSV9TVF9D T01NQU5EX1RBR190IHRhZyA9IGF1dGhDb21tYW5kID8gVFBNX1NUX1NFU1NJT05TIDogVFBNX1NU X05PX1NFU1NJT05TOworICBUUE1fUkNfdCByZXNwb25zZUNvZGU7CisKKyAgaWYgKHB1YmxpY0lu Zm8gPT0gTlVMTCkKKyAgICByZXR1cm4gVFBNX1JDX1ZBTFVFOworCisgIC8qIE1hcnNoYWwgKi8K KyAgZ3J1Yl90cG0yX2J1ZmZlcl9pbml0ICgmaW4pOworICBncnViX3RwbTJfYnVmZmVyX3BhY2tf dTMyICgmaW4sIGF1dGhIYW5kbGUpOworICBpZiAoYXV0aENvbW1hbmQgIT0gTlVMTCkKKyAgICBn cnViX1RzczJfTVVfVFBNU19BVVRIX0NPTU1BTkRfTWFyc2hhbCAoJmluLCBhdXRoQ29tbWFuZCk7 CisgIGlmIChhdXRoICE9IE5VTEwpCisgICAgZ3J1Yl9Uc3MyX01VX1RQTTJCX01hcnNoYWwgKCZp biwgYXV0aC0+c2l6ZSwgYXV0aC0+YnVmZmVyKTsKKyAgZWxzZQorICAgIGdydWJfdHBtMl9idWZm ZXJfcGFja191MTYgKCZpbiwgMCk7CisgIGdydWJfVHNzMl9NVV9UUE0yQl9OVl9QVUJMSUNfTWFy c2hhbCAoJmluLCBwdWJsaWNJbmZvKTsKKyAgaWYgKGluLmVycm9yICE9IDApCisgICAgcmV0dXJu IFRQTV9SQ19GQUlMVVJFOworCisgIC8qIFN1Ym1pdCAqLworICBncnViX3RwbTJfYnVmZmVyX2lu aXQgKCZvdXQpOworICByYyA9IHRwbTJfc3VibWl0X2NvbW1hbmQgKHRhZywgVFBNX0NDX05WX0Rl ZmluZVNwYWNlLCAmcmVzcG9uc2VDb2RlLCAmaW4sICZvdXQpOworICBpZiAocmMgIT0gVFBNX1JD X1NVQ0NFU1MpCisgICAgcmV0dXJuIHJjOworICBpZiAocmVzcG9uc2VDb2RlICE9IFRQTV9SQ19T VUNDRVNTKQorICAgIHJldHVybiByZXNwb25zZUNvZGU7CisKKyAgLyogVW5tYXJzaGFsICovCisg IGlmIChvdXQuZXJyb3IgIT0gMCkKKyAgICByZXR1cm4gVFBNX1JDX0ZBSUxVUkU7CisKKyAgcmV0 dXJuIFRQTV9SQ19TVUNDRVNTOworfQorCitUUE1fUkNfdAorZ3J1Yl90cG0yX252X3VuZGVmaW5l c3BhY2UgKGNvbnN0IFRQTUlfUkhfUFJPVklTSU9OX3QgYXV0aEhhbmRsZSwKKwkJCSAgICBjb25z dCBUUE1JX1JIX05WX0lOREVYX3QgbnZJbmRleCwKKwkJCSAgICBjb25zdCBUUE1TX0FVVEhfQ09N TUFORF90ICphdXRoQ29tbWFuZCkKK3sKKyAgVFBNX1JDX3QgcmM7CisgIHN0cnVjdCBncnViX3Rw bTJfYnVmZmVyIGluOworICBzdHJ1Y3QgZ3J1Yl90cG0yX2J1ZmZlciBvdXQ7CisgIFRQTUlfU1Rf Q09NTUFORF9UQUdfdCB0YWcgPSBhdXRoQ29tbWFuZCA/IFRQTV9TVF9TRVNTSU9OUyA6IFRQTV9T VF9OT19TRVNTSU9OUzsKKyAgVFBNX1JDX3QgcmVzcG9uc2VDb2RlOworCisgIC8qIE1hcnNoYWwg Ki8KKyAgZ3J1Yl90cG0yX2J1ZmZlcl9pbml0ICgmaW4pOworICBncnViX3RwbTJfYnVmZmVyX3Bh Y2tfdTMyICgmaW4sIGF1dGhIYW5kbGUpOworICBncnViX3RwbTJfYnVmZmVyX3BhY2tfdTMyICgm aW4sIG52SW5kZXgpOworICBpZiAoYXV0aENvbW1hbmQgIT0gTlVMTCkKKyAgICBncnViX1RzczJf TVVfVFBNU19BVVRIX0NPTU1BTkRfTWFyc2hhbCAoJmluLCBhdXRoQ29tbWFuZCk7CisgIGlmIChp bi5lcnJvciAhPSAwKQorICAgIHJldHVybiBUUE1fUkNfRkFJTFVSRTsKKworICAvKiBTdWJtaXQg Ki8KKyAgZ3J1Yl90cG0yX2J1ZmZlcl9pbml0ICgmb3V0KTsKKyAgcmMgPSB0cG0yX3N1Ym1pdF9j b21tYW5kICh0YWcsIFRQTV9DQ19OVl9VbmRlZmluZVNwYWNlLCAmcmVzcG9uc2VDb2RlLCAmaW4s ICZvdXQpOworICBpZiAocmMgIT0gVFBNX1JDX1NVQ0NFU1MpCisgICAgcmV0dXJuIHJjOworICBp ZiAocmVzcG9uc2VDb2RlICE9IFRQTV9SQ19TVUNDRVNTKQorICAgIHJldHVybiByZXNwb25zZUNv ZGU7CisKKyAgLyogVW5tYXJzaGFsICovCisgIGlmIChvdXQuZXJyb3IgIT0gMCkKKyAgICByZXR1 cm4gVFBNX1JDX0ZBSUxVUkU7CisKKyAgcmV0dXJuIFRQTV9SQ19TVUNDRVNTOworfQorCitUUE1f UkNfdAorZ3J1Yl90cG0yX252X3JlYWRwdWJsaWMgKGNvbnN0IFRQTUlfUkhfTlZfSU5ERVhfdCBu dkluZGV4LAorCQkJIGNvbnN0IFRQTVNfQVVUSF9DT01NQU5EX3QgKmF1dGhDb21tYW5kLAorCQkJ IFRQTTJCX05WX1BVQkxJQ190ICpudlB1YmxpYywKKwkJCSBUUE0yQl9OQU1FX3QgKm52TmFtZSkK K3sKKyAgVFBNX1JDX3QgcmM7CisgIHN0cnVjdCBncnViX3RwbTJfYnVmZmVyIGluOworICBzdHJ1 Y3QgZ3J1Yl90cG0yX2J1ZmZlciBvdXQ7CisgIFRQTUlfU1RfQ09NTUFORF9UQUdfdCB0YWcgPSBh dXRoQ29tbWFuZCA/IFRQTV9TVF9TRVNTSU9OUyA6IFRQTV9TVF9OT19TRVNTSU9OUzsKKyAgVFBN X1JDX3QgcmVzcG9uc2VDb2RlOworICBncnViX3VpbnQzMl90IHBhcmFtX3NpemU7CisKKyAgLyog TWFyc2hhbCAqLworICBncnViX3RwbTJfYnVmZmVyX2luaXQgKCZpbik7CisgIGdydWJfdHBtMl9i dWZmZXJfcGFja191MzIgKCZpbiwgbnZJbmRleCk7CisgIGlmIChhdXRoQ29tbWFuZCAhPSBOVUxM KQorICAgIGdydWJfVHNzMl9NVV9UUE1TX0FVVEhfQ09NTUFORF9NYXJzaGFsICgmaW4sIGF1dGhD b21tYW5kKTsKKyAgaWYgKGluLmVycm9yICE9IDApCisgICAgcmV0dXJuIFRQTV9SQ19GQUlMVVJF OworCisgIC8qIFN1Ym1pdCAqLworICBncnViX3RwbTJfYnVmZmVyX2luaXQgKCZvdXQpOworICBy YyA9IHRwbTJfc3VibWl0X2NvbW1hbmQgKHRhZywgVFBNX0NDX05WX1JlYWRQdWJsaWMsICZyZXNw b25zZUNvZGUsICZpbiwgJm91dCk7CisgIGlmIChyYyAhPSBUUE1fUkNfU1VDQ0VTUykKKyAgICBy ZXR1cm4gcmM7CisgIGlmIChyZXNwb25zZUNvZGUgIT0gVFBNX1JDX1NVQ0NFU1MpCisgICAgcmV0 dXJuIHJlc3BvbnNlQ29kZTsKKworICAvKiBVbm1hcnNoYWwgKi8KKyAgaWYgKHRhZyA9PSBUUE1f U1RfU0VTU0lPTlMpCisgICAgZ3J1Yl90cG0yX2J1ZmZlcl91bnBhY2tfdTMyICgmb3V0LCAmcGFy YW1fc2l6ZSk7CisgIGdydWJfVHNzMl9NVV9UUE0yQl9OVl9QVUJMSUNfVW5tYXJzaGFsICgmb3V0 LCBudlB1YmxpYyk7CisgIGdydWJfVHNzMl9NVV9UUE0yQl9OQU1FX1VubWFyc2hhbCAoJm91dCwg bnZOYW1lKTsKKyAgaWYgKG91dC5lcnJvciAhPSAwKQorICAgIHJldHVybiBUUE1fUkNfRkFJTFVS RTsKKworICByZXR1cm4gVFBNX1JDX1NVQ0NFU1M7Cit9CisKK1RQTV9SQ190CitncnViX3RwbTJf bnZfcmVhZCAoY29uc3QgVFBNSV9SSF9OVl9BVVRIX3QgYXV0aEhhbmRsZSwKKwkJICAgY29uc3Qg VFBNSV9SSF9OVl9JTkRFWF90IG52SW5kZXgsCisJCSAgIGNvbnN0IFRQTVNfQVVUSF9DT01NQU5E X3QgKmF1dGhDb21tYW5kLAorCQkgICBjb25zdCBncnViX3VpbnQxNl90IHNpemUsCisJCSAgIGNv bnN0IGdydWJfdWludDE2X3Qgb2Zmc2V0LAorCQkgICBUUE0yQl9NQVhfTlZfQlVGRkVSX3QgKmRh dGEpCit7CisgIFRQTV9SQ190IHJjOworICBzdHJ1Y3QgZ3J1Yl90cG0yX2J1ZmZlciBpbjsKKyAg c3RydWN0IGdydWJfdHBtMl9idWZmZXIgb3V0OworICBUUE1JX1NUX0NPTU1BTkRfVEFHX3QgdGFn ID0gYXV0aENvbW1hbmQgPyBUUE1fU1RfU0VTU0lPTlMgOiBUUE1fU1RfTk9fU0VTU0lPTlM7Cisg IFRQTV9SQ190IHJlc3BvbnNlQ29kZTsKKyAgZ3J1Yl91aW50MzJfdCBwYXJhbV9zaXplOworCisg IC8qIE1hcnNoYWwgKi8KKyAgZ3J1Yl90cG0yX2J1ZmZlcl9pbml0ICgmaW4pOworICBncnViX3Rw bTJfYnVmZmVyX3BhY2tfdTMyICgmaW4sIGF1dGhIYW5kbGUpOworICBncnViX3RwbTJfYnVmZmVy X3BhY2tfdTMyICgmaW4sIG52SW5kZXgpOworICBpZiAoYXV0aENvbW1hbmQgIT0gTlVMTCkKKyAg ICBncnViX1RzczJfTVVfVFBNU19BVVRIX0NPTU1BTkRfTWFyc2hhbCAoJmluLCBhdXRoQ29tbWFu ZCk7CisgIGdydWJfdHBtMl9idWZmZXJfcGFja191MTYgKCZpbiwgc2l6ZSk7CisgIGdydWJfdHBt Ml9idWZmZXJfcGFja191MTYgKCZpbiwgb2Zmc2V0KTsKKyAgaWYgKGluLmVycm9yICE9IDApCisg ICAgcmV0dXJuIFRQTV9SQ19GQUlMVVJFOworCisgIC8qIFN1Ym1pdCAqLworICBncnViX3RwbTJf YnVmZmVyX2luaXQgKCZvdXQpOworICByYyA9IHRwbTJfc3VibWl0X2NvbW1hbmQgKHRhZywgVFBN X0NDX05WX1JlYWQsICZyZXNwb25zZUNvZGUsICZpbiwgJm91dCk7CisgIGlmIChyYyAhPSBUUE1f UkNfU1VDQ0VTUykKKyAgICByZXR1cm4gcmM7CisgIGlmIChyZXNwb25zZUNvZGUgIT0gVFBNX1JD X1NVQ0NFU1MpCisgICAgcmV0dXJuIHJlc3BvbnNlQ29kZTsKKworICAvKiBVbm1hcnNoYWwgKi8K KyAgaWYgKHRhZyA9PSBUUE1fU1RfU0VTU0lPTlMpCisgICAgZ3J1Yl90cG0yX2J1ZmZlcl91bnBh Y2tfdTMyICgmb3V0LCAmcGFyYW1fc2l6ZSk7CisgIGdydWJfVHNzMl9NVV9UUE0yQl9OQVhfTlZf QlVGRkVSX1VubWFyc2hhbCAoJm91dCwgZGF0YSk7CisgIGlmIChvdXQuZXJyb3IgIT0gMCkKKyAg ICByZXR1cm4gVFBNX1JDX0ZBSUxVUkU7CisKKyAgcmV0dXJuIFRQTV9SQ19TVUNDRVNTOworfQor CitUUE1fUkNfdAorZ3J1Yl90cG0yX252X3dyaXRlIChjb25zdCBUUE1JX1JIX05WX0FVVEhfdCBh dXRoSGFuZGxlLAorCQkgICAgY29uc3QgVFBNSV9SSF9OVl9JTkRFWF90IG52SW5kZXgsCisJCSAg ICBjb25zdCBUUE1TX0FVVEhfQ09NTUFORF90ICphdXRoQ29tbWFuZCwKKwkJICAgIGNvbnN0IFRQ TTJCX01BWF9OVl9CVUZGRVJfdCAqZGF0YSwKKwkJICAgIGNvbnN0IGdydWJfdWludDE2X3Qgb2Zm c2V0KQoreworICBUUE1fUkNfdCByYzsKKyAgc3RydWN0IGdydWJfdHBtMl9idWZmZXIgaW47Cisg IHN0cnVjdCBncnViX3RwbTJfYnVmZmVyIG91dDsKKyAgVFBNSV9TVF9DT01NQU5EX1RBR190IHRh ZyA9IGF1dGhDb21tYW5kID8gVFBNX1NUX1NFU1NJT05TIDogVFBNX1NUX05PX1NFU1NJT05TOwor ICBUUE1fUkNfdCByZXNwb25zZUNvZGU7CisKKyAgLyogTWFyc2hhbCAqLworICBncnViX3RwbTJf YnVmZmVyX2luaXQgKCZpbik7CisgIGdydWJfdHBtMl9idWZmZXJfcGFja191MzIgKCZpbiwgYXV0 aEhhbmRsZSk7CisgIGdydWJfdHBtMl9idWZmZXJfcGFja191MzIgKCZpbiwgbnZJbmRleCk7Cisg IGlmIChhdXRoQ29tbWFuZCAhPSBOVUxMKQorICAgIGdydWJfVHNzMl9NVV9UUE1TX0FVVEhfQ09N TUFORF9NYXJzaGFsICgmaW4sIGF1dGhDb21tYW5kKTsKKyAgZ3J1Yl9Uc3MyX01VX1RQTTJCX01h cnNoYWwgKCZpbiwgZGF0YS0+c2l6ZSwgZGF0YS0+YnVmZmVyKTsKKyAgZ3J1Yl90cG0yX2J1ZmZl cl9wYWNrX3UxNiAoJmluLCBvZmZzZXQpOworICBpZiAoaW4uZXJyb3IgIT0gMCkKKyAgICByZXR1 cm4gVFBNX1JDX0ZBSUxVUkU7CisKKyAgLyogU3VibWl0ICovCisgIGdydWJfdHBtMl9idWZmZXJf aW5pdCAoJm91dCk7CisgIHJjID0gdHBtMl9zdWJtaXRfY29tbWFuZCAodGFnLCBUUE1fQ0NfTlZf V3JpdGUsICZyZXNwb25zZUNvZGUsICZpbiwgJm91dCk7CisgIGlmIChyYyAhPSBUUE1fUkNfU1VD Q0VTUykKKyAgICByZXR1cm4gcmM7CisgIGlmIChyZXNwb25zZUNvZGUgIT0gVFBNX1JDX1NVQ0NF U1MpCisgICAgcmV0dXJuIHJlc3BvbnNlQ29kZTsKKworICAvKiBVbm1hcnNoYWwgKi8KKyAgaWYg KG91dC5lcnJvciAhPSAwKQorICAgIHJldHVybiBUUE1fUkNfRkFJTFVSRTsKKworICByZXR1cm4g VFBNX1JDX1NVQ0NFU1M7Cit9CmRpZmYgLS1naXQgYS9ncnViLWNvcmUvbGliL3RzczIvdHBtMl9j bWQuaCBiL2dydWItY29yZS9saWIvdHNzMi90cG0yX2NtZC5oCmluZGV4IGQzMTNjYmEwMC4uOTBi NDJlZmVjIDEwMDY0NAotLS0gYS9ncnViLWNvcmUvbGliL3RzczIvdHBtMl9jbWQuaAorKysgYi9n cnViLWNvcmUvbGliL3RzczIvdHBtMl9jbWQuaApAQCAtMTU0LDQgKzE1NCwzNiBAQCBleHRlcm4g VFBNX1JDX3QKIGdydWJfdHBtMl90ZXN0cGFybXMgKGNvbnN0IFRQTVRfUFVCTElDX1BBUk1TX3Qg KnBhcm1zLAogCQkgICAgIGNvbnN0IFRQTVNfQVVUSF9DT01NQU5EX3QgKmF1dGhDb21tYW5kKTsK IAorZXh0ZXJuIFRQTV9SQ190CitncnViX3RwbTJfbnZfZGVmaW5lc3BhY2UgKGNvbnN0IFRQTUlf UkhfUFJPVklTSU9OX3QgYXV0aEhhbmRsZSwKKwkJCSAgY29uc3QgVFBNU19BVVRIX0NPTU1BTkRf dCAqYXV0aENvbW1hbmQsCisJCQkgIGNvbnN0IFRQTTJCX0FVVEhfdCAqYXV0aCwKKwkJCSAgY29u c3QgVFBNMkJfTlZfUFVCTElDX3QgKnB1YmxpY0luZm8pOworCitleHRlcm4gVFBNX1JDX3QKK2dy dWJfdHBtMl9udl91bmRlZmluZXNwYWNlIChjb25zdCBUUE1JX1JIX1BST1ZJU0lPTl90IGF1dGhI YW5kbGUsCisJCQkgICAgY29uc3QgVFBNSV9SSF9OVl9JTkRFWF90IG52SW5kZXgsCisJCQkgICAg Y29uc3QgVFBNU19BVVRIX0NPTU1BTkRfdCAqYXV0aENvbW1hbmQpOworCitleHRlcm4gVFBNX1JD X3QKK2dydWJfdHBtMl9udl9yZWFkcHVibGljIChjb25zdCBUUE1JX1JIX05WX0lOREVYX3QgbnZJ bmRleCwKKwkJCSBjb25zdCBUUE1TX0FVVEhfQ09NTUFORF90ICphdXRoQ29tbWFuZCwKKwkJCSBU UE0yQl9OVl9QVUJMSUNfdCAqbnZQdWJsaWMsCisJCQkgVFBNMkJfTkFNRV90ICpudk5hbWUpOwor CitleHRlcm4gVFBNX1JDX3QKK2dydWJfdHBtMl9udl9yZWFkIChjb25zdCBUUE1JX1JIX05WX0FV VEhfdCBhdXRoSGFuZGxlLAorCQkgICBjb25zdCBUUE1JX1JIX05WX0lOREVYX3QgbnZJbmRleCwK KwkJICAgY29uc3QgVFBNU19BVVRIX0NPTU1BTkRfdCAqYXV0aENvbW1hbmQsCisJCSAgIGNvbnN0 IGdydWJfdWludDE2X3Qgc2l6ZSwKKwkJICAgY29uc3QgZ3J1Yl91aW50MTZfdCBvZmZzZXQsCisJ CSAgIFRQTTJCX01BWF9OVl9CVUZGRVJfdCAqZGF0YSk7CisKK2V4dGVybiBUUE1fUkNfdAorZ3J1 Yl90cG0yX252X3dyaXRlIChjb25zdCBUUE1JX1JIX05WX0FVVEhfdCBhdXRoSGFuZGxlLAorCQkg ICAgY29uc3QgVFBNSV9SSF9OVl9JTkRFWF90IG52SW5kZXgsCisJCSAgICBjb25zdCBUUE1TX0FV VEhfQ09NTUFORF90ICphdXRoQ29tbWFuZCwKKwkJICAgIGNvbnN0IFRQTTJCX01BWF9OVl9CVUZG RVJfdCAqZGF0YSwKKwkJICAgIGNvbnN0IGdydWJfdWludDE2X3Qgb2Zmc2V0KTsKKwogI2VuZGlm IC8qICEgR1JVQl9UUE0yX0NPTU1BTkRTX0hFQURFUiAqLwpkaWZmIC0tZ2l0IGEvZ3J1Yi1jb3Jl L2xpYi90c3MyL3RzczJfbXUuYyBiL2dydWItY29yZS9saWIvdHNzMi90c3MyX211LmMKaW5kZXgg ODYxMzRjYzBhLi44MTZlNWIzN2YgMTAwNjQ0Ci0tLSBhL2dydWItY29yZS9saWIvdHNzMi90c3My X211LmMKKysrIGIvZ3J1Yi1jb3JlL2xpYi90c3MyL3RzczJfbXUuYwpAQCAtMTcsNiArMTcsNyBA QAogICogIGFsb25nIHdpdGggR1JVQi4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcv bGljZW5zZXMvPi4KICAqLwogCisjaW5jbHVkZSA8Z3J1Yi9tbS5oPgogI2luY2x1ZGUgPGdydWIv bWlzYy5oPgogCiAjaW5jbHVkZSA8dHNzMl9tdS5oPgpAQCAtNTcyLDYgKzU3MywzNyBAQCBncnVi X1RzczJfTVVfVFBNVF9US19WRVJJRklFRF9NYXJzaGFsIChncnViX3RwbTJfYnVmZmVyX3QgYnVm ZmVyLAogICBncnViX1RzczJfTVVfVFBNMkJfTWFyc2hhbCAoYnVmZmVyLCBwLT5kaWdlc3Quc2l6 ZSwgcC0+ZGlnZXN0LmJ1ZmZlcik7CiB9CiAKK3ZvaWQKK2dydWJfVHNzMl9NVV9UUE1TX05WX1BV QkxJQ19NYXJzaGFsIChncnViX3RwbTJfYnVmZmVyX3QgYnVmZmVyLAorCQkJCSAgICAgY29uc3Qg VFBNU19OVl9QVUJMSUNfdCAqcCkKK3sKKyAgZ3J1Yl90cG0yX2J1ZmZlcl9wYWNrX3UzMiAoYnVm ZmVyLCBwLT5udkluZGV4KTsKKyAgZ3J1Yl90cG0yX2J1ZmZlcl9wYWNrX3UxNiAoYnVmZmVyLCBw LT5uYW1lQWxnKTsKKyAgZ3J1Yl90cG0yX2J1ZmZlcl9wYWNrX3UzMiAoYnVmZmVyLCBwLT5hdHRy aWJ1dGVzKTsKKyAgZ3J1Yl9Uc3MyX01VX1RQTTJCX01hcnNoYWwgKGJ1ZmZlciwgcC0+YXV0aFBv bGljeS5zaXplLCBwLT5hdXRoUG9saWN5LmJ1ZmZlcik7CisgIGdydWJfdHBtMl9idWZmZXJfcGFj a191MTYgKGJ1ZmZlciwgcC0+ZGF0YVNpemUpOworfQorCit2b2lkCitncnViX1RzczJfTVVfVFBN MkJfTlZfUFVCTElDX01hcnNoYWwgKGdydWJfdHBtMl9idWZmZXJfdCBidWZmZXIsCisJCQkJICAg ICAgY29uc3QgVFBNMkJfTlZfUFVCTElDX3QgKnApCit7CisgIGdydWJfdWludDMyX3Qgc3RhcnQ7 CisgIGdydWJfdWludDE2X3Qgc2l6ZTsKKworICBpZiAocCAhPSBOVUxMKQorICAgIHsKKyAgICAg IGdydWJfdHBtMl9idWZmZXJfcGFja191MTYgKGJ1ZmZlciwgcC0+c2l6ZSk7CisKKyAgICAgIHN0 YXJ0ID0gYnVmZmVyLT5zaXplOworICAgICAgZ3J1Yl9Uc3MyX01VX1RQTVNfTlZfUFVCTElDX01h cnNoYWwgKGJ1ZmZlciwgJnAtPm52UHVibGljKTsKKyAgICAgIHNpemUgPSBncnViX2NwdV90b19i ZTE2IChidWZmZXItPnNpemUgLSBzdGFydCk7CisgICAgICBncnViX21lbWNweSAoJmJ1ZmZlci0+ ZGF0YVtzdGFydCAtIHNpemVvZiAoZ3J1Yl91aW50MTZfdCldLCAmc2l6ZSwgc2l6ZW9mIChzaXpl KSk7CisgICAgfQorICBlbHNlCisgICAgZ3J1Yl90cG0yX2J1ZmZlcl9wYWNrX3UxNiAoYnVmZmVy LCAwKTsKK30KKwogc3RhdGljIHZvaWQKIF9fVHNzMl9NVV9UUE0yQl9CVUZGRVJfVW5tYXJzaGFs IChncnViX3RwbTJfYnVmZmVyX3QgYnVmZmVyLAogCQkJCSAgVFBNMkJfdCAqcCwgZ3J1Yl91aW50 MTZfdCBib3VuZCkKQEAgLTk4Miw2ICsxMDE0LDEzIEBAIGdydWJfVHNzMl9NVV9UUE0yQl9OVl9Q VUJMSUNfVW5tYXJzaGFsIChncnViX3RwbTJfYnVmZmVyX3QgYnVmZmVyLAogICBncnViX1RzczJf TVVfVFBNU19OVl9QVUJMSUNfVW5tYXJzaGFsIChidWZmZXIsICZwLT5udlB1YmxpYyk7CiB9CiAK K3ZvaWQKK2dydWJfVHNzMl9NVV9UUE0yQl9OQVhfTlZfQlVGRkVSX1VubWFyc2hhbCAoZ3J1Yl90 cG0yX2J1ZmZlcl90IGJ1ZmZlciwKKwkJCQkJICAgIFRQTTJCX01BWF9OVl9CVUZGRVJfdCAqcCkK K3sKKyAgVFBNMkJfQlVGRkVSX1VOTUFSU0hBTCAoYnVmZmVyLCBUUE0yQl9NQVhfTlZfQlVGRkVS X3QsIHApOworfQorCiB2b2lkCiBncnViX1RzczJfTVVfVFBNMkJfTkFNRV9Vbm1hcnNoYWwgKGdy dWJfdHBtMl9idWZmZXJfdCBidWZmZXIsCiAJCQkJICAgVFBNMkJfTkFNRV90ICpuKQpkaWZmIC0t Z2l0IGEvZ3J1Yi1jb3JlL2xpYi90c3MyL3RzczJfbXUuaCBiL2dydWItY29yZS9saWIvdHNzMi90 c3MyX211LmgKaW5kZXggOGY4MjEyNmUxLi42NDQwZGU1N2MgMTAwNjQ0Ci0tLSBhL2dydWItY29y ZS9saWIvdHNzMi90c3MyX211LmgKKysrIGIvZ3J1Yi1jb3JlL2xpYi90c3MyL3RzczJfbXUuaApA QCAtMTkzLDYgKzE5MywxNCBAQCBleHRlcm4gdm9pZAogZ3J1Yl9Uc3MyX01VX1RQTVRfVEtfVkVS SUZJRURfTWFyc2hhbCAoZ3J1Yl90cG0yX2J1ZmZlcl90IGJ1ZmZlciwKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFRQTVRfVEtfVkVSSUZJRURfdCAqcCk7CiAK K2V4dGVybiB2b2lkCitncnViX1RzczJfTVVfVFBNU19OVl9QVUJMSUNfTWFyc2hhbCAoZ3J1Yl90 cG0yX2J1ZmZlcl90IGJ1ZmZlciwKKwkJCQkgICAgIGNvbnN0IFRQTVNfTlZfUFVCTElDX3QgKnAp OworCitleHRlcm4gdm9pZAorZ3J1Yl9Uc3MyX01VX1RQTTJCX05WX1BVQkxJQ19NYXJzaGFsIChn cnViX3RwbTJfYnVmZmVyX3QgYnVmZmVyLAorCQkJCSAgICAgIGNvbnN0IFRQTTJCX05WX1BVQkxJ Q190ICpwKTsKKwogZXh0ZXJuIHZvaWQKIGdydWJfVHNzMl9NVV9UUE1TX0FVVEhfUkVTUE9OU0Vf VW5tYXJzaGFsIChncnViX3RwbTJfYnVmZmVyX3QgYnVmZmVyLAogCQkJCQkgICBUUE1TX0FVVEhf UkVTUE9OU0VfdCAqcCk7CkBAIC0zMzYsNiArMzQ0LDEwIEBAIGV4dGVybiB2b2lkCiBncnViX1Rz czJfTVVfVFBNMkJfTlZfUFVCTElDX1VubWFyc2hhbCAoZ3J1Yl90cG0yX2J1ZmZlcl90IGJ1ZmZl ciwKIAkJCQkJVFBNMkJfTlZfUFVCTElDX3QgKnApOwogCitleHRlcm4gdm9pZAorZ3J1Yl9Uc3My X01VX1RQTTJCX05BWF9OVl9CVUZGRVJfVW5tYXJzaGFsIChncnViX3RwbTJfYnVmZmVyX3QgYnVm ZmVyLAorCQkJCQkgICAgVFBNMkJfTUFYX05WX0JVRkZFUl90ICpwKTsKKwogZXh0ZXJuIHZvaWQK IGdydWJfVHNzMl9NVV9UUE0yQl9OQU1FX1VubWFyc2hhbCAoZ3J1Yl90cG0yX2J1ZmZlcl90IGJ1 ZmZlciwKIAkJCQkgICBUUE0yQl9OQU1FX3QgKm4pOwpkaWZmIC0tZ2l0IGEvZ3J1Yi1jb3JlL2xp Yi90c3MyL3RzczJfdHlwZXMuaCBiL2dydWItY29yZS9saWIvdHNzMi90c3MyX3R5cGVzLmgKaW5k ZXggNWIxYTc5NDdkLi5iZGRkZTcxOTEgMTAwNjQ0Ci0tLSBhL2dydWItY29yZS9saWIvdHNzMi90 c3MyX3R5cGVzLmgKKysrIGIvZ3J1Yi1jb3JlL2xpYi90c3MyL3RzczJfdHlwZXMuaApAQCAtMjcw LDYgKzI3MCw3IEBAIHR5cGVkZWYgVFBNX0hBTkRMRV90IFRQTUlfUkhfTlZfSU5ERVhfdDsKIAog LyogVFBNX0hUX3QgQ29uc3RhbnRzICovCiB0eXBlZGVmIGdydWJfdWludDhfdCBUUE1fSFRfdDsK KyNkZWZpbmUgVFBNX0hUX05WX0lOREVYICAgKChUUE1fSFRfdCkgMHgwMSkKICNkZWZpbmUgVFBN X0hUX1BFUk1BTkVOVCAgKChUUE1fSFRfdCkgMHg0MCkKICNkZWZpbmUgVFBNX0hUX1BFUlNJU1RF TlQgKChUUE1fSFRfdCkgMHg4MSkKIApAQCAtMzAwLDYgKzMwMSw3IEBAIHR5cGVkZWYgVFBNX0hB TkRMRV90IFRQTV9IQ190OwogI2RlZmluZSBUUE1fSFJfSEFORExFX01BU0sgICAoKFRQTV9IQ190 KSAweDAwRkZGRkZGKQogI2RlZmluZSBUUE1fSFJfUkFOR0VfTUFTSyAgICAoKFRQTV9IQ190KSAw eEZGMDAwMDAwKQogI2RlZmluZSBUUE1fSFJfU0hJRlQgICAgICAgICAoKFRQTV9IQ190KSAyNCkK KyNkZWZpbmUgVFBNX0hSX05WX0lOREVYICAgICAgKChUUE1fSENfdCkgKFRQTV9IVF9OVl9JTkRF WCA8PCBUUE1fSFJfU0hJRlQpKQogI2RlZmluZSBUUE1fSFJfUEVSU0lTVEVOVCAgICAoKFRQTV9I Q190KSAoVFBNX0hUX1BFUlNJU1RFTlQgPDwgVFBNX0hSX1NISUZUKSkKICNkZWZpbmUgVFBNX0hS X1BFUk1BTkVOVCAgICAgKChUUE1fSENfdCkgKFRQTV9IVF9QRVJNQU5FTlQgPDwgVFBNX0hSX1NI SUZUKSkKICNkZWZpbmUgVFBNX1BFUlNJU1RFTlRfRklSU1QgKChUUE1fSENfdCkgKFRQTV9IUl9Q RVJTSVNURU5UICsgMCkpCkBAIC0zMDgsNiArMzEwLDcgQEAgdHlwZWRlZiBUUE1fSEFORExFX3Qg VFBNX0hDX3Q7CiAjZGVmaW5lIFRQTV9QRVJNQU5FTlRfTEFTVCAgICgoVFBNX0hDX3QpIFRQTV9S SF9MQVNUKQogCiAvKiBUUE0gSGFuZGxlIFR5cGUgQ2hlY2tzICovCisjZGVmaW5lIFRQTV9IVF9J U19OVklOREVYKEhBTkRMRSkgKCgoSEFORExFKSA+PiBUUE1fSFJfU0hJRlQpID09IFRQTV9IVF9O Vl9JTkRFWCkKICNkZWZpbmUgVFBNX0hUX0lTX1BFUk1BTkVOVChIQU5ETEUpICgoKEhBTkRMRSkg Pj4gVFBNX0hSX1NISUZUKSA9PSBUUE1fSFRfUEVSTUFORU5UKQogI2RlZmluZSBUUE1fSFRfSVNf UEVSU0lTVEVOVChIQU5ETEUpICgoKEhBTkRMRSkgPj4gVFBNX0hSX1NISUZUKSA9PSBUUE1fSFRf UEVSU0lTVEVOVCkKIApAQCAtMzM0LDggKzMzNywxMSBAQCB0eXBlZGVmIGdydWJfdWludDMyX3Qg VFBNX0NDX3Q7CiAjZGVmaW5lIFRQTV9DQ19SZWFkUHVibGljICAgICAgICgoVFBNX0NDX3QpIDB4 MDAwMDAxNzMpCiAjZGVmaW5lIFRQTV9DQ19TdGFydEF1dGhTZXNzaW9uICgoVFBNX0NDX3QpIDB4 MDAwMDAxNzYpCiAjZGVmaW5lIFRQTV9DQ19Qb2xpY3lQQ1IgICAgICAgICgoVFBNX0NDX3QpIDB4 MDAwMDAxN2YpCisjZGVmaW5lIFRQTV9DQ19OVl9EZWZpbmVTcGFjZSAgICgoVFBNX0NDX3QpIDB4 MDAwMDAxMmEpCiAjZGVmaW5lIFRQTV9DQ19OVl9SZWFkICAgICAgICAgICgoVFBNX0NDX3QpIDB4 MDAwMDAxNGUpCiAjZGVmaW5lIFRQTV9DQ19OVl9SZWFkUHVibGljICAgICgoVFBNX0NDX3QpIDB4 MDAwMDAxNjkpCisjZGVmaW5lIFRQTV9DQ19OVl9Xcml0ZSAgICAgICAgICgoVFBNX0NDX3QpIDB4 MDAwMDAxMzcpCisjZGVmaW5lIFRQTV9DQ19OVl9VbmRlZmluZVNwYWNlICgoVFBNX0NDX3QpIDB4 MDAwMDAxMjIpCiAjZGVmaW5lIFRQTV9DQ19HZXRDYXBhYmlsaXR5ICAgICgoVFBNX0NDX3QpIDB4 MDAwMDAxN2EpCiAjZGVmaW5lIFRQTV9DQ19QQ1JfUmVhZCAgICAgICAgICgoVFBNX0NDX3QpIDB4 MDAwMDAxN2UpCiAjZGVmaW5lIFRQTV9DQ19Mb2FkICAgICAgICAgICAgICgoVFBNX0NDX3QpIDB4 MDAwMDAxNTcpCi0tIAoyLjQzLjAKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fXwpHcnViLWRldmVsIG1haWxpbmcgbGlzdApHcnViLWRldmVsQGdudS5vcmcK aHR0cHM6Ly9saXN0cy5nbnUub3JnL21haWxtYW4vbGlzdGluZm8vZ3J1Yi1kZXZlbAo=