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 92BBAE68975 for ; Thu, 31 Oct 2024 11:36:00 +0000 (UTC) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1t6TSa-0003n7-K9; Thu, 31 Oct 2024 07:35:28 -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 1t6TSM-0003jX-0Q for grub-devel@gnu.org; Thu, 31 Oct 2024 07:35:17 -0400 Received: from mail-pg1-x529.google.com ([2607:f8b0:4864:20::529]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1t6TSI-0006bK-3i for grub-devel@gnu.org; Thu, 31 Oct 2024 07:35:13 -0400 Received: by mail-pg1-x529.google.com with SMTP id 41be03b00d2f7-7ae3d7222d4so659688a12.3 for ; Thu, 31 Oct 2024 04:35:08 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1730374507; x=1730979307; darn=gnu.org; h=message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=IsSpAFlGztQPs+y3h3hsWS2za2/F7+aXdMlNQl5szEo=; b=WgfGEbG4UY1XUuBa9EHSMiUpJmJ4gUAu8x0irmz/ctDvATum2s6iKXvmh5MXwl0K1R WIJfbGyGwRKogEO4giWRfH6jpbv9jm2QJ2Qru2pdcHTRiiNZq9bBEh//S1BtnBWL4H12 f/sS7dSbWBs+qjW5VYllskrAEv2YUobOL7aKve0uDDRLdKH4N/xNRJpLjrewiq4wa12Q fazdDtXrZfztYB3mn6S3muojYvYJOdK0Xt5RjxorShcWNIM6hgdUk/3I+1jfxXjJDTY0 76cOWfuOeArboRKXw0F8MNFRMW3cP7XlI0kFdJEEIsAKhHYrEl5HWvnmo2Nrt+KalZFc FFwQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1730374507; x=1730979307; h=message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=IsSpAFlGztQPs+y3h3hsWS2za2/F7+aXdMlNQl5szEo=; b=mz0vwa3FlPtQJtdqqoAk1LIaDu6nni45jb9tJegtAlsI6eMtlnEPZo1hfKertblnGo YXxHH8gm9MXSms2irk3rG3T8BVdD+x6DVMGDR77XpzljfZAxdamd8t8Ng/vNyGu7PtTq RRhSdphSu94Fmv0nhfEROp+oJMEzjMhxQuIGT6+ul8tswMdiH1sU0+Dg/N++357B/jWM 0Y70VYjvu5wFIdfo2RDSMmCclN/ihH+0Yh27xBn7JHLw3UZAO1nrLheODGFhBYcVKdMn L9cNsiqLchSbd3PyCzcjNXzGXAYKoPROFpYAOO8CSbxrOx/ZtrvOVLnz87bC+/01+o6n bpfg== X-Gm-Message-State: AOJu0YzlbN8IfWfgT09REwDq6tXyhmB3TW83OOIPHsPgPvBKvT9+yLQY zQb4kkZ9NQlrH4ef6GEEzXE5F95eC+NBCjq5+tIpfBv7iSC8Ce8HiJA7vA== X-Google-Smtp-Source: AGHT+IHOsrZ3PLZSUDGz7gYXWFbrEa2eone79p95KIGKiiwkcuAaSgO2EALOZB1S65W2y10xezoVgg== X-Received: by 2002:a17:90b:52c8:b0:2e2:a013:859a with SMTP id 98e67ed59e1d1-2e93c128a9cmr3384548a91.7.1730374506498; Thu, 31 Oct 2024 04:35:06 -0700 (PDT) Received: from localhost ([118.242.3.34]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-2e92fa4570fsm3270722a91.30.2024.10.31.04.35.05 (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Thu, 31 Oct 2024 04:35:06 -0700 (PDT) From: chench246 To: grub-devel@gnu.org Cc: chench246 , hao chen Subject: [PATCH] efi/tpcm: Add TPCM module support Date: Thu, 31 Oct 2024 19:34:58 +0800 Message-Id: <20241031113458.12111-1-chench246@gmail.com> X-Mailer: git-send-email 2.17.1 Received-SPF: pass client-ip=2607:f8b0:4864:20::529; envelope-from=chench246@gmail.com; helo=mail-pg1-x529.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 RnJvbTogY2hlbmNoMjQ2IDxjaGVuY2gyNDZAaG90bWFpbC5jb20+CgpUUENNKFRydXN0ZWQgUGxh dGZvcm0gQ29udHJvbCBNb2R1bGUpIGlzIGEgQ2hpbmVzZSBzdGFuZGFyZCBhbmQgaGFzIHNpbWls YXIgZnVuY3Rpb24KdG8gdHBtLCBidXQgdHBjbSBhZGRzIHRoZSBmdW5jdGlvbiBvZiBhY3RpdmUg bW9uaXRvcmluZyBhbmQgY29udHJvbCB0byB0aGUgc3lzdGVtLgpJdCBjYW4gcmVhbGl6ZSBhY3Rp dmUgc3RhcnR1cCBtZWFzdXJlbWVudCB3aGVuIHRoZSBzeXN0ZW0gc3RhcnRzLGFzIHdlbGwgYXMg ZHluYW1pYwptZWFzdXJlbWVudCBhbmQgbW9uaXRvcmluZyB3aGVuIHRoZSBwcm9ncmFtIGlzIHJ1 bm5pbmcsIGZ1cnRoZXIgZW5oYW5jZSB0aGUgc2VjdXJpdHkKb2YgdGhlIHN5c3RlbS4KClNpZ25l ZC1vZmYtYnk6IGhhbyBjaGVuIDxjaGVuY2gyNDZAZ21haWwuY29tPgotLS0KIGdydWItY29yZS9N YWtlZmlsZS5jb3JlLmRlZiAgIHwgICA3ICsrCiBncnViLWNvcmUvY29tbWFuZHMvZWZpL3RwY20u YyB8IDE2MyArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCiBncnViLWNvcmUvY29t bWFuZHMvdHBjbS5jICAgICB8ICA5OSArKysrKysrKysrKysrKysrKysrKysKIGluY2x1ZGUvZ3J1 Yi9lZmkvdHBjbS5oICAgICAgIHwgIDYwICsrKysrKysrKysrKysKIGluY2x1ZGUvZ3J1Yi9lcnIu aCAgICAgICAgICAgIHwgICAzICstCiA1IGZpbGVzIGNoYW5nZWQsIDMzMSBpbnNlcnRpb25zKCsp LCAxIGRlbGV0aW9uKC0pCiBjcmVhdGUgbW9kZSAxMDA3NTUgZ3J1Yi1jb3JlL2NvbW1hbmRzL2Vm aS90cGNtLmMKIGNyZWF0ZSBtb2RlIDEwMDc1NSBncnViLWNvcmUvY29tbWFuZHMvdHBjbS5jCiBj cmVhdGUgbW9kZSAxMDA2NDQgaW5jbHVkZS9ncnViL2VmaS90cGNtLmgKCmRpZmYgLS1naXQgYS9n cnViLWNvcmUvTWFrZWZpbGUuY29yZS5kZWYgYi9ncnViLWNvcmUvTWFrZWZpbGUuY29yZS5kZWYK aW5kZXggMDYzZWY1ZGQ3Li5mMTI1MDYwMWIgMTAwNjQ0Ci0tLSBhL2dydWItY29yZS9NYWtlZmls ZS5jb3JlLmRlZgorKysgYi9ncnViLWNvcmUvTWFrZWZpbGUuY29yZS5kZWYKQEAgLTI1NjIsNiAr MjU2MiwxMyBAQCBtb2R1bGUgPSB7CiAgIGVuYWJsZSA9IGVmaTsKIH07CiAKK21vZHVsZSA9IHsK KyAgbmFtZSA9IHRwY207CisgIGNvbW1vbiA9IGNvbW1hbmRzL3RwY20uYzsKKyAgZWZpID0gY29t bWFuZHMvZWZpL3RwY20uYzsKKyAgZW5hYmxlID0geDg2XzY0X2VmaTsKK307CisKIG1vZHVsZSA9 IHsKICAgbmFtZSA9IHRyOwogICBjb21tb24gPSBjb21tYW5kcy90ci5jOwpkaWZmIC0tZ2l0IGEv Z3J1Yi1jb3JlL2NvbW1hbmRzL2VmaS90cGNtLmMgYi9ncnViLWNvcmUvY29tbWFuZHMvZWZpL3Rw Y20uYwpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwMDAuLmJjOTdlODAwYwotLS0g L2Rldi9udWxsCisrKyBiL2dydWItY29yZS9jb21tYW5kcy9lZmkvdHBjbS5jCkBAIC0wLDAgKzEs MTYzIEBACisvKgorICogIEdSVUIgIC0tICBHUmFuZCBVbmlmaWVkIEJvb3Rsb2FkZXIKKyAqICBD b3B5cmlnaHQgKEMpIDIwMTggIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorICoKKyAq ICBHUlVCIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBt b2RpZnkKKyAqICBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBM aWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorICogIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24s IGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yCisgKiAgKGF0IHlvdXIgb3B0aW9u KSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiAgR1JVQiBpcyBkaXN0cmlidXRlZCBpbiB0aGUg aG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5U WTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiAgTUVSQ0hBTlRBQklM SVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorICogIEdO VSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogIFlvdSBz aG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNl bnNlCisgKiAgYWxvbmcgd2l0aCBHUlVCLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9y Zy9saWNlbnNlcy8+LgorICoKKyAqICBFRkkgVFBDTSBzdXBwb3J0IGNvZGUuCisgKi8KKworI2lu Y2x1ZGUgPGdydWIvZXJyLmg+CisjaW5jbHVkZSA8Z3J1Yi9lZmkvdHBjbS5oPgorCisKK3N0YXRp YyBncnViX3VpbnQzMl90IGdfbWVhc3VyZWRfaWQgPSBTVEFHRV9TVEFSVDsKKworLyoKKyAgICBn ZXRfdHBjbV9zdGFnZToKKyAgICAgIFRQQ00gZG9lcyBub3QgbWFrZSBhIGRpc3RpbmN0aW9uIHdp dGggdGhlIHR5cGUgb2YKKyAgICBtZWFzdXJlZCB0YXJnZXQsIHNvIHdlIHVzZSBnX21lYXN1cmVk X2lkIGRpcmVjdGx5CisgICAgZm9yIHRoZSBzdGFnZS4KKyAqLworc3RhdGljIGdydWJfdWludDMy X3QgZ2V0X3RwY21fc3RhZ2Uodm9pZCkKK3sKKyAgICBncnViX3VpbnQzMl90IHN0YWdlID0gU1RB R0VfSU5WQUxJRDsKKworICAgIHN0YWdlID0gZ19tZWFzdXJlZF9pZDsKKworICAgIGlmIChzdGFn ZSA8IFNUQUdFX1NUQVJUIHx8IHN0YWdlID4gU1RBR0VfRU5EKQorICAgICAgICBzdGFnZSA9IFNU QUdFX0lOVkFMSUQ7CisKKyAgICByZXR1cm4gc3RhZ2U7Cit9CisKKy8qCisgICAgdXBkYXRlX21l YXN1cmVkX2lkOgorICAgICAgdXBkYXRlIGdfbWVhc3VyZWRfaWQgKzEgZXZlcnkgdGltZSBtZWFz dXJlZCwgYW5kIGdfbWVhc3VyZWRfaWQKKyAgICB3aWxsIG5ldmVyIGJlIGRlY3JlYXNlZC4KKyAq Lworc3RhdGljIHZvaWQgdXBkYXRlX21lYXN1cmVkX2lkKHZvaWQpCit7CisgICAgZ19tZWFzdXJl ZF9pZCsrOworfQorCisvKgorICAgIG1lYXN1cmVfbWVtb3J5OgorICAgICAgbWVhc3VyZSB0aGUg bWVtZXJ5IHJlZ2lvbi0tKGFkZHIsIHNpemUpIHRocm91Z2ggdGhlIFRQQ00gcHJvdG9jb2wuCisg ICAgaWYgVFBDTSBwcm90b2NvbCBpcyBub3QgZXhpc3QgaW4gQklPUywgaXQgd2lsbCByZXR1cm4g U1VDQyB0byBrZWVwCisgICAgY29tcGF0aWJsZSB3aXRoIG5vbi1tZWFzdXJlbWVudC1zdXBwb3J0 IGJpb3M7IGlmIFRQQ00gcHJvdG9jb2wgaXMKKyAgICBleGlzdCBidXQgbm90IGVuYWJsZWQsIGl0 IHdpbGwgYWxzbyByZXR1cm4gU1VDQy4KKyAqLworc3RhdGljIGdydWJfZXJyX3QgbWVhc3VyZV9t ZW1vcnkoZW51bSBncnViX2ZpbGVfdHlwZSB0eXBlIF9fYXR0cmlidXRlX18oKHVudXNlZCkpLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhciAqZGVzYywKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGdydWJfYWRkcl90IGFkZHIsCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBncnViX3NpemVfdCBzaXplKQoreworICAgIGdydWJfZWZpX2hhbmRs ZV90ICAgKmhhbmRsZXMgPSAwOworICAgIGdydWJfZWZpX3VpbnRuX3QgICAgbnVtX2hhbmRsZXM7 CisgICAgZ3J1Yl9lZmlfaGFuZGxlX3QgICBncnViX2MycF9oYW5kbGUgPSAwOworICAgIGdydWJf ZXJyX3QgIHRlc3RfYzJwX2VyciA9IEdSVUJfRVJSX0JBRF9PUzsKKyAgICBncnViX2d1aWRfdCAg ICAgICAgIGMycF9ndWlkID0gQzJQR1VJRDsKKyAgICBncnViX3VpbnQzMl90ICAgICAgIG1lYXN1 cmVfcmVzdWx0ID0gMDsKKyAgICBncnViX3VpbnQzMl90ICAgICAgIGNvbnRyb2xfcmVzdWx0ID0g MDsKKyAgICBncnViX2VmaV9ib29sZWFuX3QgICAgdmVyaWZ5X2VuYWJsZSA9IDA7CisgICAgZ3J1 Yl9zaXplX3QgICAgICAgICBkZXNjX2xlbiA9IDA7CisKKyAgICBoYW5kbGVzID0gZ3J1Yl9lZmlf bG9jYXRlX2hhbmRsZShHUlVCX0VGSV9CWV9QUk9UT0NPTCwgJmMycF9ndWlkLCBOVUxMLCAmbnVt X2hhbmRsZXMpOworICAgIGlmIChoYW5kbGVzICYmIChudW1faGFuZGxlcyA+IDApKQorICAgIHsK KyAgICAgICAgc3RydWN0IGMycF9wcm90b2NvbCAqYzJwOworCisgICAgICAgIGdydWJfYzJwX2hh bmRsZSA9IGhhbmRsZXNbMF07CisgICAgICAgIGdydWJfZHByaW50ZiAoInRwY20iLCAibWVhc3Vl IG1lbW9yeSBhZGRyIDB4JWx4IHNpemUgMHglbHggIFxuIiwgYWRkciwgc2l6ZSk7CisgICAgICAg IGMycCA9IGdydWJfZWZpX29wZW5fcHJvdG9jb2woZ3J1Yl9jMnBfaGFuZGxlLCAmYzJwX2d1aWQs CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdSVUJfRUZJX09QRU5fUFJP VE9DT0xfR0VUX1BST1RPQ09MKTsKKyAgICAgICAgaWYgKGMycCkKKyAgICAgICAgeworICAgICAg ICAgICAgdmVyaWZ5X2VuYWJsZSA9IGMycC0+dmVyaWZ5X2lzX2VuYWJsZWQgKGMycCk7CisgICAg ICAgICAgICBpZiAodmVyaWZ5X2VuYWJsZSkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAg ICBzdHJ1Y3QgYWRkcl9yYW5nZSByYW5nZTsKKyAgICAgICAgICAgICAgICBncnViX2VmaV9zdGF0 dXNfdCBzdGF0dXMgPSAwOworICAgICAgICAgICAgICAgIGdydWJfdWludDMyX3Qgc3RhZ2UgPSBT VEFHRV9JTlZBTElEOworCisgICAgICAgICAgICAgICAgcmFuZ2Uuc3RhcnQgID0gYWRkcjsKKyAg ICAgICAgICAgICAgICByYW5nZS5sZW5ndGggPSBzaXplOworCisgICAgICAgICAgICAgICAgc3Rh Z2UgPSBnZXRfdHBjbV9zdGFnZSgpOworICAgICAgICAgICAgICAgIGlmIChzdGFnZSAhPSBTVEFH RV9JTlZBTElEKQorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgZGVzY19s ZW4gPSBncnViX3N0cmxlbihkZXNjKSArIDE7CisgICAgICAgICAgICAgICAgICAgIHN0YXR1cyA9 IGMycC0+dmVyaWZ5X3JhdyAoYzJwLCBzdGFnZSwgKGdydWJfdWludDY0X3QpZGVzYywgZGVzY19s ZW4sIDEsICZyYW5nZSwgJm1lYXN1cmVfcmVzdWx0LCAmY29udHJvbF9yZXN1bHQpOworICAgICAg ICAgICAgICAgICAgICBpZiAoKCFzdGF0dXMpICYmICgoY29udHJvbF9yZXN1bHQgJiBNRUFTVVJF X0FDVElPTl9NQVNLKSA9PSAwKSApCisgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAg ICAgICAgICAgICAgIGdydWJfZHByaW50ZiAoInRwY20iLCAidmVyaWZ5X3JhdyBzdWNjZXNzLiBz dGFnZVslZF1kZXNjOlslc11cbiIsIHN0YWdlLCBkZXNjKTsKKyAgICAgICAgICAgICAgICAgICAg ICAgIHRlc3RfYzJwX2VyciA9IEdSVUJfRVJSX05PTkU7CisgICAgICAgICAgICAgICAgICAgIH0K KyAgICAgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICB7CisgICAgICAg ICAgICAgICAgICAgICAgICBncnViX2RwcmludGYgKCJ0cGNtIiwgInZlcmlmeV9yYXcgZXJyb3Jc biIpOworICAgICAgICAgICAgICAgICAgICAgICAgd2hpbGUoMSkgCisgICAgICAgICAgICAgICAg ICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3J1Yl9lcnJvciAoR1JVQl9F UlJfVFBDTV9WRVJJRlksICJ0cGNtIHZlcmlmeSBlcnJvci4gc3RhZ2VbJWRdZGVzY1slc11cbiIs IHN0YWdlLCBkZXNjKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc20gdm9sYXRpbGUg KCJobHQiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAg fQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAg ICAgICAgICAgZ3J1Yl9kcHJpbnRmICgidHBjbSIsICJpbnZhbGlkIHN0YWdlXG4iKTsKKyAgICAg ICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICB1cGRhdGVfbWVhc3VyZWRfaWQoKTsKKwor ICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgZ3J1Yl9k cHJpbnRmICgidHBjbSIsICJpbWFnZSB2ZXJpZnkgbm90IGVuYWJsZWRcbiIpOworICAgICAgICAg ICAgICAgIHRlc3RfYzJwX2VyciA9IEdSVUJfRVJSX05PTkU7CisgICAgICAgICAgICB9CisgICAg ICAgIH0KKyAgICAgICAgZWxzZQorICAgICAgICAgICAgZ3J1Yl9kcHJpbnRmICgidHBjbSIsICJv cGVuIGMycCBwcm90b2NvbCBmYWlsZWRcbiIpOworICAgIH0KKyAgICBlbHNlCisgICAgeworICAg ICAgICAvKiBrZWVwIGNvbXBhdGlibGUgd2l0aCBub24tbWVhc3VyZW1lbnQtc3VwcG9ydCBiaW9z LiAqLworICAgICAgICBncnViX2RwcmludGYgKCJ0cGNtIiwgIm5vdCBmb3VuZCBDMlAgcHJvdG9j b2xcbiIpOworICAgICAgICB0ZXN0X2MycF9lcnIgPSBHUlVCX0VSUl9OT05FOworICAgIH0KKwor ICAgIHJldHVybiB0ZXN0X2MycF9lcnI7Cit9CisKKy8qCisgICAgZ3J1Yl90cGNtX21lYXN1cmVf bWVtb3J5OgorICovCitncnViX2Vycl90IGdydWJfdHBjbV9tZWFzdXJlX21lbW9yeSh2b2lkICpj b250ZXh0LCBncnViX2FkZHJfdCBidWYsIGdydWJfc2l6ZV90IHNpemUpCit7CisgICAgY2hhciAq cF9jb250ZXh0ID0gKGNoYXIgKiljb250ZXh0OworICAgIGNoYXIgKnAsICpwX2Rlc2M7CisgICAg Y2hhciB0bXBbVFBDTV9NQVhfQlVGX1NJWkVdID0geycwJ307CisgICAgZW51bSBncnViX2ZpbGVf dHlwZSB0eXBlOworCisgICAgaWYgKCFwX2NvbnRleHQpCisgICAgICAgIHJldHVybiBHUlVCX0VS Ul9CVUc7CisKKyAgICBwID0gZ3J1Yl9zdHJjaHIocF9jb250ZXh0LCAnfCcpOworICAgIHBfZGVz YyA9IHAgKyAxOworICAgIGdydWJfbWVtY3B5KHRtcCwgcF9jb250ZXh0LCAocC1wX2NvbnRleHQp KTsKKyAgICB0eXBlID0gZ3J1Yl9zdHJ0b3VsKHRtcCwgMCwgMTApOworCisgICAgcmV0dXJuIG1l YXN1cmVfbWVtb3J5KHR5cGUsIHBfZGVzYywgYnVmLCBzaXplKTsKK30KKwpkaWZmIC0tZ2l0IGEv Z3J1Yi1jb3JlL2NvbW1hbmRzL3RwY20uYyBiL2dydWItY29yZS9jb21tYW5kcy90cGNtLmMKbmV3 IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMDAwLi4xYzhiZDc3Y2UKLS0tIC9kZXYvbnVs bAorKysgYi9ncnViLWNvcmUvY29tbWFuZHMvdHBjbS5jCkBAIC0wLDAgKzEsOTkgQEAKKy8qCisg KiAgR1JVQiAgLS0gIEdSYW5kIFVuaWZpZWQgQm9vdGxvYWRlcgorICogIENvcHlyaWdodCAoQykg MjAxOCAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisgKgorICogIEdSVUIgaXMgZnJl ZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorICogIGl0 IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVi bGlzaGVkIGJ5CisgKiAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNp b24gMyBvZiB0aGUgTGljZW5zZSwgb3IKKyAqICAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2 ZXJzaW9uLgorICoKKyAqICBHUlVCIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQg d2lsbCBiZSB1c2VmdWwsCisgKiAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2 ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVT UyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisgKiAgR05VIEdlbmVyYWwgUHVi bGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiAgWW91IHNob3VsZCBoYXZlIHJl Y2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqICBhbG9u ZyB3aXRoIEdSVUIuICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4u CisgKgorICogIENvcmUgVFBDTSBzdXBwb3J0IGNvZGUuCisgKi8KKworI2luY2x1ZGUgPGdydWIv ZXJyLmg+CisjaW5jbHVkZSA8Z3J1Yi92ZXJpZnkuaD4KKyNpbmNsdWRlIDxncnViL2RsLmg+Cisj aW5jbHVkZSA8Z3J1Yi9lZmkvdHBjbS5oPgorCitHUlVCX01PRF9MSUNFTlNFICgiR1BMdjMrIik7 CisKK3N0YXRpYyBjaGFyIGNvbnRleHRfYnVmW1RQQ01fTUFYX0JVRl9TSVpFXTsKKworc3RhdGlj IGdydWJfZXJyX3QgZ3J1Yl90cGNtX3ZlcmlmeV9pbml0KGdydWJfZmlsZV90IGlvLAorICAgICAg ICAgICAgICAgICAgICAgIGVudW0gZ3J1Yl9maWxlX3R5cGUgdHlwZSwKKyAgICAgICAgICAgICAg ICAgICAgICB2b2lkICoqY29udGV4dCwgCisgICAgICAgICAgICAgICAgICAgICAgZW51bSBncnVi X3ZlcmlmeV9mbGFncyAqZmxhZ3MpCit7CisgICAgZ3J1Yl9tZW1zZXQoY29udGV4dF9idWYsIDAs IFRQQ01fTUFYX0JVRl9TSVpFKTsKKyAgICBncnViX3NucHJpbnRmKGNvbnRleHRfYnVmLCBUUENN X01BWF9CVUZfU0laRSwgIiVkfCVzIiwgKHR5cGUgJiBHUlVCX0ZJTEVfVFlQRV9NQVNLKSwgaW8t Pm5hbWUpOworICAgICpjb250ZXh0ID0gY29udGV4dF9idWY7CisgICAgKmZsYWdzIHw9IEdSVUJf VkVSSUZZX0ZMQUdTX1NJTkdMRV9DSFVOSzsKKworICAgIHJldHVybiBHUlVCX0VSUl9OT05FOwor fQorCitzdGF0aWMgZ3J1Yl9lcnJfdCBncnViX3RwY21fdmVyaWZ5X3dyaXRlKHZvaWQgKmNvbnRl eHQsIHZvaWQgKmJ1ZiAsIGdydWJfc2l6ZV90IHNpemUgKQoreworICAgIHJldHVybiBncnViX3Rw Y21fbWVhc3VyZV9tZW1vcnkoY29udGV4dCwgKGdydWJfYWRkcl90KWJ1Ziwgc2l6ZSk7Cit9CisK K3N0YXRpYyBncnViX2Vycl90IGdydWJfdHBjbV92ZXJpZnlfc3RyaW5nIChjaGFyICpzdHIsIGVu dW0gZ3J1Yl92ZXJpZnlfc3RyaW5nX3R5cGUgdHlwZSkKK3sKKyAgICBjb25zdCBjaGFyICpwcmVm aXggPSBOVUxMOworICAgIGNoYXIgKmRlc2NyaXB0aW9uLCAqY29udGV4dDsKKyAgICBncnViX2Vy cl90IHN0YXR1czsKKworICAgIHN3aXRjaCAodHlwZSkKKyAgICB7CisgICAgY2FzZSBHUlVCX1ZF UklGWV9LRVJORUxfQ01ETElORToKKyAgICAgIHByZWZpeCA9ICJrZXJuZWxfY21kbGluZTogIjsK KyAgICAgIGJyZWFrOworICAgIGNhc2UgR1JVQl9WRVJJRllfTU9EVUxFX0NNRExJTkU6CisgICAg ICBwcmVmaXggPSAibW9kdWxlX2NtZGxpbmU6ICI7CisgICAgICBicmVhazsKKyAgICBjYXNlIEdS VUJfVkVSSUZZX0NPTU1BTkQ6CisgICAgICBwcmVmaXggPSAiZ3J1Yl9jbWQ6ICI7CisgICAgICBi cmVhazsKKyAgICB9CisKKyAgICBjb250ZXh0ID0gZ3J1Yl96YWxsb2MoZ3J1Yl9zdHJsZW4gKHN0 cikgKyBncnViX3N0cmxlbiAocHJlZml4KSArIDEgKyA0KTsgIC8qIDQgZm9yIHR5cGUgKi8KKyAg ICBpZiAoIWNvbnRleHQpCisgICAgICAgIHJldHVybiBncnViX2Vycm5vOworCisgICAgZ3J1Yl9z bnByaW50Zihjb250ZXh0LCA0LCAiJWR8IiwgKHR5cGUgJiBHUlVCX0ZJTEVfVFlQRV9NQVNLKSk7 CisgICAgZGVzY3JpcHRpb24gPSBjb250ZXh0ICsgZ3J1Yl9zdHJsZW4oY29udGV4dCk7CisgICAg Z3J1Yl9tZW1jcHkoZGVzY3JpcHRpb24sIHByZWZpeCwgZ3J1Yl9zdHJsZW4gKHByZWZpeCkpOwor ICAgIGdydWJfbWVtY3B5KGRlc2NyaXB0aW9uICsgZ3J1Yl9zdHJsZW4gKHByZWZpeCksIHN0ciwg Z3J1Yl9zdHJsZW4gKHN0cikgKyAxKTsKKworICAgIHN0YXR1cyA9IGdydWJfdHBjbV9tZWFzdXJl X21lbW9yeShjb250ZXh0LCAoZ3J1Yl9hZGRyX3Qpc3RyLCBncnViX3N0cmxlbihzdHIpKTsKKwor ICAgIGdydWJfZnJlZShjb250ZXh0KTsKKworICAgIHJldHVybiBzdGF0dXM7Cit9CisKK3N0cnVj dCBncnViX2ZpbGVfdmVyaWZpZXIgZ3J1Yl90cGNtX3ZlcmlmaWVyID0geworICAgIC5uYW1lID0g InRwY20iLAorICAgIC5pbml0ICA9IGdydWJfdHBjbV92ZXJpZnlfaW5pdCwKKyAgICAud3JpdGUg PSBncnViX3RwY21fdmVyaWZ5X3dyaXRlLAorICAgIC52ZXJpZnlfc3RyaW5nID0gZ3J1Yl90cGNt X3ZlcmlmeV9zdHJpbmcsCit9OworCitHUlVCX01PRF9JTklUICh0cGNtKQoreworICAgIGdydWJf dmVyaWZpZXJfcmVnaXN0ZXIoJmdydWJfdHBjbV92ZXJpZmllcik7Cit9CisKK0dSVUJfTU9EX0ZJ TkkgKHRwY20pCit7CisgICAgZ3J1Yl92ZXJpZmllcl91bnJlZ2lzdGVyKCZncnViX3RwY21fdmVy aWZpZXIpOworfQorCmRpZmYgLS1naXQgYS9pbmNsdWRlL2dydWIvZWZpL3RwY20uaCBiL2luY2x1 ZGUvZ3J1Yi9lZmkvdHBjbS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMC4u YTRlMGM3NjVhCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9ncnViL2VmaS90cGNtLmgKQEAg LTAsMCArMSw2MCBAQAorLyoKKyAqICBHUlVCICAtLSAgR1JhbmQgVW5pZmllZCBCb290bG9hZGVy CisgKiAgQ29weXJpZ2h0IChDKSAyMDE4ICBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4K KyAqCisgKiAgR1JVQiBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBh bmQvb3IgbW9kaWZ5CisgKiAgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQ dWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKKyAqICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3Vu ZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvcgorICogIChhdCB5b3Vy IG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogIEdSVUIgaXMgZGlzdHJpYnV0ZWQg aW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqICBidXQgV0lUSE9VVCBBTlkg V0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogIE1FUkNI QU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUK KyAqICBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAq ICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJs aWMgTGljZW5zZQorICogIGFsb25nIHdpdGggR1JVQi4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3 LmdudS5vcmcvbGljZW5zZXMvPi4KKyAqLworCisjaWZuZGVmIEdSVUJfRUZJX1RQQ01fSEVBREVS CisjZGVmaW5lIEdSVUJfRUZJX1RQQ01fSEVBREVSIDEKKworI2luY2x1ZGUgPGdydWIvZmlsZS5o PgorI2luY2x1ZGUgPGdydWIvZWZpL2FwaS5oPgorI2luY2x1ZGUgPGdydWIvZWZpL2VmaS5oPgor CisjZGVmaW5lIEMyUEdVSUQgICAgICAgICB7MHhmODlhYjVjZCwgMHgyODI5LCAweDQyMmYsIHsw eGE1LCAweGYzLCAweDAzLCAweDI4LCAweGUwLCAweDZjLCAweGZjLCAweGJifX0KKyNkZWZpbmUg TUVBU1VSRV9SRVNVTFRfTUFTSyAgICAgICAgICAoMHhmZjAwKQorI2RlZmluZSBNRUFTVVJFX1JF U1VMVF9TSElGVCAgICAgICAgICgxNikKKyNkZWZpbmUgTUVBU1VSRV9BQ1RJT05fTUFTSyAgICAg ICAgICAoMHgxKQorI2RlZmluZSBUUENNX01BWF9CVUZfU0laRSAgICAgICAgICAgIDEyOAorCisv KgorICAgc3RhZ2UgbGF5b3V0OgorICAgICAyMDAwfjI5OTk6ICsxIGV2ZXJ5IHRpbWUKKyovCisK KyNkZWZpbmUgU1RBR0VfU1RBUlQgICAgICAyMDAwCisjZGVmaW5lIFNUQUdFX0VORCAgICAgICAg Mjk5OQorI2RlZmluZSBTVEFHRV9JTlZBTElEICAgIDMwMDAKKworc3RydWN0IGFkZHJfcmFuZ2Ug eworICAgIGdydWJfdWludDY0X3Qgc3RhcnQ7CisgICAgZ3J1Yl91aW50NjRfdCBsZW5ndGg7Cit9 Oworc3RydWN0IGMycF9wcm90b2NvbCB7CisgICAgZ3J1Yl9lZmlfc3RhdHVzX3QgKF9fZ3J1Yl9l ZmlfYXBpICp2ZXJpZnlfcmF3KSAoc3RydWN0IGMycF9wcm90b2NvbCAqdGhpcywKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdydWJfdWludDMyX3QgbWVhc3VyZV9zdGFnZSwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdydWJfdWludDY0X3QgaW1hZ2Vf aW5mbywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdydWJfdWludDMyX3Qg aW1hZ2VfaW5mb19zaXplLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3J1 Yl91aW50MzJfdCBudW1fYWRkcl9yYW5nZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHN0cnVjdCBhZGRyX3JhbmdlIHJhbmdlc1tdLAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgZ3J1Yl91aW50MzJfdCAqbWVhc3VyZV9yZXN1bHQsCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBncnViX3VpbnQzMl90ICpjb250cm9sX3Jlc3VsdCk7 CisgICAgZ3J1Yl9lZmlfYm9vbGVhbl90IChfX2dydWJfZWZpX2FwaSAqdmVyaWZ5X2lzX2VuYWJs ZWQpKHN0cnVjdCBjMnBfcHJvdG9jb2wgKnRoaXMpOworfTsKK3R5cGVkZWYgc3RydWN0IGMycF9w cm90b2NvbCBjMnBfcHJvdG9jb2xfdDsKKworZ3J1Yl9lcnJfdCBncnViX3RwY21fbWVhc3VyZV9t ZW1vcnkodm9pZCAqY29udGV4dCwgZ3J1Yl9hZGRyX3QgYnVmLCBncnViX3NpemVfdCBzaXplKTsK KworI2VuZGlmCmRpZmYgLS1naXQgYS9pbmNsdWRlL2dydWIvZXJyLmggYi9pbmNsdWRlL2dydWIv ZXJyLmgKaW5kZXggMWMwNzAzNGNkLi5mNTI2OGRkNDcgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvZ3J1 Yi9lcnIuaAorKysgYi9pbmNsdWRlL2dydWIvZXJyLmgKQEAgLTczLDcgKzczLDggQEAgdHlwZWRl ZiBlbnVtCiAgICAgR1JVQl9FUlJfTkVUX05PX0RPTUFJTiwKICAgICBHUlVCX0VSUl9FT0YsCiAg ICAgR1JVQl9FUlJfQkFEX1NJR05BVFVSRSwKLSAgICBHUlVCX0VSUl9CQURfRklSTVdBUkUKKyAg ICBHUlVCX0VSUl9CQURfRklSTVdBUkUsCisgICAgR1JVQl9FUlJfVFBDTV9WRVJJRlkKICAgfQog Z3J1Yl9lcnJfdDsKIAotLSAKMi4xNy4xCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX18KR3J1Yi1kZXZlbCBtYWlsaW5nIGxpc3QKR3J1Yi1kZXZlbEBnbnUu b3JnCmh0dHBzOi8vbGlzdHMuZ251Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL2dydWItZGV2ZWwK