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 38E3EC77B7F for ; Fri, 27 Jun 2025 07:44:37 +0000 (UTC) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1uV3ky-00017G-2Z; Fri, 27 Jun 2025 03:44:20 -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 1uV3kx-00016i-1x for grub-devel@gnu.org; Fri, 27 Jun 2025 03:44:19 -0400 Received: from mail-pj1-x102f.google.com ([2607:f8b0:4864:20::102f]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1uV3ku-0008NS-Ma for grub-devel@gnu.org; Fri, 27 Jun 2025 03:44:18 -0400 Received: by mail-pj1-x102f.google.com with SMTP id 98e67ed59e1d1-3139027b825so1346659a91.0 for ; Fri, 27 Jun 2025 00:44:16 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1751010252; x=1751615052; 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=3FoVenQ/TlVZTHRFbicmR3JN57py+QW+V/hvPOW8LTY=; b=IFMEsB5nOTQ0cOpKznBsFaAGQIV+z7mFmBrwciybFUVQXTCXkoOm5aDP2Jm/tZVnaX ICzxz8stST3G5kKCFvmwwYP6okKmKcRceSt7jHlSeuku7nmQI8j8u37PHnxEobmsRGNx gHEUL8E09q6eaF3LM938yMG/nnfbID5ZBUE9u2RQWUbWN1P/bC6kL/oJVdVMTMX9P2Vd jXwFPORYe0Yiws1at9/XTYFyR3bxAgAvx8HIHRTRYH5BX9Ns0vTK+E0mkRze4gcnvA1n URn4hWrI9M3geD64AO2xibcni4p5d2YDYQhkq4yGs4Lwz2Uah8ehoZpgSPAVA6PVP2qd piQw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1751010252; x=1751615052; 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=3FoVenQ/TlVZTHRFbicmR3JN57py+QW+V/hvPOW8LTY=; b=MSDjrNba1Kc8/kNAcQJW6dcsvG4TWcvJrBla4P8PeFQR7X75myj2y5hs4fpqAx7UUE avzdYVgNwmQRoOavE4dMr8o/jLhZFstNHl2GeXUh7avDkx5fdwcD12gpmt1T/XsVsxxq myUFzeac7or9qHUE3UioWVX9Y5zadaRuFbilzCdAFHBvyIO5XKNJp8Rh69kty9hULbyd JTrMaUUfAdLUAzcvOQAlK02eYJNd2LtaFbhmWeoADS3vAeGg1S00PZ89OkD7/kR7DXnR n7miNr0wPc/qVjc51jBCTSPjudGWzP0lJiAP8tk89bUH5SOQZuknY/kuY/mBLzl76rfn qPfg== X-Gm-Message-State: AOJu0YxSyryzlEoOOPGNvtekJ8xiEmf3gx6g/Doz8kSaZcVUbCdR8pwx mQseqLupyuZjIoNW43BkdGPTUQltEcVLAf/eh6kzVZh3idx+DUAdigWdrB58XkFMODg= X-Gm-Gg: ASbGncuPn//zmmmKtDkvQKiFMUKJidRKC0t/tDo3lYDicmQL6+TkC8nbGhxD+h3joO2 9z/4p/+AYeElIlsstVbdTgnxZDIuXeveIyODI8JoLVemPa79glA7ZbDGlZUmTzb9LWh7hR2AGGV ol4KEMsUxuX4ITDYj28AchVpPkmCkVHdysfPvG0SbVDpvsQ0CMx5Afkt2E9eMggsYVfiVxrp4xc BL4M3pXNiZ0ai70c/jd/rm0iJeUaZLP59DUT8GmBARQt5T96m++85YlLggDCEi3eehcv6JxbVKJ vFJZ+BfIkg+7sf5jyjevMsf4eNu2HAdH1JVIKbV9N4/P8DA7IAVS1pqHZrl/fiS7gYEREA== X-Google-Smtp-Source: AGHT+IEEuAUgLuMtiWXpzrvRW5ZMYKIQ4I5NwY+M7Aq0pMH3TKoIDAv/eKNbEXfZ9I8PZgbyjcOkHg== X-Received: by 2002:a17:90b:1dc4:b0:311:e8cc:4264 with SMTP id 98e67ed59e1d1-318c922ef55mr4315780a91.12.1751010252106; Fri, 27 Jun 2025 00:44:12 -0700 (PDT) Received: from localhost ([112.64.138.194]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-315f542e494sm5982204a91.31.2025.06.27.00.44.11 (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Fri, 27 Jun 2025 00:44:11 -0700 (PDT) From: chench246 To: grub-devel@gnu.org Cc: khaliidcaliy@gmail.com, chench246 Subject: [PATCH v2 1/2] efi/tpcm: Add UEFI interface for TPCM module Date: Fri, 27 Jun 2025 15:42:28 +0800 Message-Id: <20250627074229.31458-2-chench246@gmail.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20250627074229.31458-1-chench246@gmail.com> References: <20250515192659.3896-1-khaliidcaliy@gmail.com> <20250627074229.31458-1-chench246@gmail.com> Received-SPF: pass client-ip=2607:f8b0:4864:20::102f; envelope-from=chench246@gmail.com; helo=mail-pj1-x102f.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 KwogaW5jbHVkZS9ncnViL2VmaS90cGNtLmggICAgICAgfCAgNjAgKysrKysrKysrKysrKwogaW5j bHVkZS9ncnViL2Vyci5oICAgICAgICAgICAgfCAgIDMgKy0KIDMgZmlsZXMgY2hhbmdlZCwgMjI1 IGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKIGNyZWF0ZSBtb2RlIDEwMDc1NSBncnViLWNv cmUvY29tbWFuZHMvZWZpL3RwY20uYwogY3JlYXRlIG1vZGUgMTAwNjQ0IGluY2x1ZGUvZ3J1Yi9l ZmkvdHBjbS5oCgpkaWZmIC0tZ2l0IGEvZ3J1Yi1jb3JlL2NvbW1hbmRzL2VmaS90cGNtLmMgYi9n cnViLWNvcmUvY29tbWFuZHMvZWZpL3RwY20uYwpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAw MDAwMDAwMDAuLmJjOTdlODAwYwotLS0gL2Rldi9udWxsCisrKyBiL2dydWItY29yZS9jb21tYW5k cy9lZmkvdHBjbS5jCkBAIC0wLDAgKzEsMTYzIEBACisvKgorICogIEdSVUIgIC0tICBHUmFuZCBV bmlmaWVkIEJvb3Rsb2FkZXIKKyAqICBDb3B5cmlnaHQgKEMpIDIwMTggIEZyZWUgU29mdHdhcmUg Rm91bmRhdGlvbiwgSW5jLgorICoKKyAqICBHUlVCIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4g cmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKyAqICBpdCB1bmRlciB0aGUgdGVybXMgb2Yg dGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorICogIHRoZSBG cmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2Us IG9yCisgKiAgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiAgR1JV QiBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICog IGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJh bnR5IG9mCisgKiAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQ VVJQT1NFLiAgU2VlIHRoZQorICogIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3Jl IGRldGFpbHMuCisgKgorICogIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhl IEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiAgYWxvbmcgd2l0aCBHUlVCLiAgSWYgbm90 LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgorICoKKyAqICBFRkkgVFBDTSBz dXBwb3J0IGNvZGUuCisgKi8KKworI2luY2x1ZGUgPGdydWIvZXJyLmg+CisjaW5jbHVkZSA8Z3J1 Yi9lZmkvdHBjbS5oPgorCisKK3N0YXRpYyBncnViX3VpbnQzMl90IGdfbWVhc3VyZWRfaWQgPSBT VEFHRV9TVEFSVDsKKworLyoKKyAgICBnZXRfdHBjbV9zdGFnZToKKyAgICAgIFRQQ00gZG9lcyBu b3QgbWFrZSBhIGRpc3RpbmN0aW9uIHdpdGggdGhlIHR5cGUgb2YKKyAgICBtZWFzdXJlZCB0YXJn ZXQsIHNvIHdlIHVzZSBnX21lYXN1cmVkX2lkIGRpcmVjdGx5CisgICAgZm9yIHRoZSBzdGFnZS4K KyAqLworc3RhdGljIGdydWJfdWludDMyX3QgZ2V0X3RwY21fc3RhZ2Uodm9pZCkKK3sKKyAgICBn cnViX3VpbnQzMl90IHN0YWdlID0gU1RBR0VfSU5WQUxJRDsKKworICAgIHN0YWdlID0gZ19tZWFz dXJlZF9pZDsKKworICAgIGlmIChzdGFnZSA8IFNUQUdFX1NUQVJUIHx8IHN0YWdlID4gU1RBR0Vf RU5EKQorICAgICAgICBzdGFnZSA9IFNUQUdFX0lOVkFMSUQ7CisKKyAgICByZXR1cm4gc3RhZ2U7 Cit9CisKKy8qCisgICAgdXBkYXRlX21lYXN1cmVkX2lkOgorICAgICAgdXBkYXRlIGdfbWVhc3Vy ZWRfaWQgKzEgZXZlcnkgdGltZSBtZWFzdXJlZCwgYW5kIGdfbWVhc3VyZWRfaWQKKyAgICB3aWxs IG5ldmVyIGJlIGRlY3JlYXNlZC4KKyAqLworc3RhdGljIHZvaWQgdXBkYXRlX21lYXN1cmVkX2lk KHZvaWQpCit7CisgICAgZ19tZWFzdXJlZF9pZCsrOworfQorCisvKgorICAgIG1lYXN1cmVfbWVt b3J5OgorICAgICAgbWVhc3VyZSB0aGUgbWVtZXJ5IHJlZ2lvbi0tKGFkZHIsIHNpemUpIHRocm91 Z2ggdGhlIFRQQ00gcHJvdG9jb2wuCisgICAgaWYgVFBDTSBwcm90b2NvbCBpcyBub3QgZXhpc3Qg aW4gQklPUywgaXQgd2lsbCByZXR1cm4gU1VDQyB0byBrZWVwCisgICAgY29tcGF0aWJsZSB3aXRo IG5vbi1tZWFzdXJlbWVudC1zdXBwb3J0IGJpb3M7IGlmIFRQQ00gcHJvdG9jb2wgaXMKKyAgICBl eGlzdCBidXQgbm90IGVuYWJsZWQsIGl0IHdpbGwgYWxzbyByZXR1cm4gU1VDQy4KKyAqLworc3Rh dGljIGdydWJfZXJyX3QgbWVhc3VyZV9tZW1vcnkoZW51bSBncnViX2ZpbGVfdHlwZSB0eXBlIF9f YXR0cmlidXRlX18oKHVudXNlZCkpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Y2hhciAqZGVzYywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdydWJfYWRkcl90 IGFkZHIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBncnViX3NpemVfdCBzaXpl KQoreworICAgIGdydWJfZWZpX2hhbmRsZV90ICAgKmhhbmRsZXMgPSAwOworICAgIGdydWJfZWZp X3VpbnRuX3QgICAgbnVtX2hhbmRsZXM7CisgICAgZ3J1Yl9lZmlfaGFuZGxlX3QgICBncnViX2My cF9oYW5kbGUgPSAwOworICAgIGdydWJfZXJyX3QgIHRlc3RfYzJwX2VyciA9IEdSVUJfRVJSX0JB RF9PUzsKKyAgICBncnViX2d1aWRfdCAgICAgICAgIGMycF9ndWlkID0gQzJQR1VJRDsKKyAgICBn cnViX3VpbnQzMl90ICAgICAgIG1lYXN1cmVfcmVzdWx0ID0gMDsKKyAgICBncnViX3VpbnQzMl90 ICAgICAgIGNvbnRyb2xfcmVzdWx0ID0gMDsKKyAgICBncnViX2VmaV9ib29sZWFuX3QgICAgdmVy aWZ5X2VuYWJsZSA9IDA7CisgICAgZ3J1Yl9zaXplX3QgICAgICAgICBkZXNjX2xlbiA9IDA7CisK KyAgICBoYW5kbGVzID0gZ3J1Yl9lZmlfbG9jYXRlX2hhbmRsZShHUlVCX0VGSV9CWV9QUk9UT0NP TCwgJmMycF9ndWlkLCBOVUxMLCAmbnVtX2hhbmRsZXMpOworICAgIGlmIChoYW5kbGVzICYmIChu dW1faGFuZGxlcyA+IDApKQorICAgIHsKKyAgICAgICAgc3RydWN0IGMycF9wcm90b2NvbCAqYzJw OworCisgICAgICAgIGdydWJfYzJwX2hhbmRsZSA9IGhhbmRsZXNbMF07CisgICAgICAgIGdydWJf ZHByaW50ZiAoInRwY20iLCAibWVhc3VlIG1lbW9yeSBhZGRyIDB4JWx4IHNpemUgMHglbHggIFxu IiwgYWRkciwgc2l6ZSk7CisgICAgICAgIGMycCA9IGdydWJfZWZpX29wZW5fcHJvdG9jb2woZ3J1 Yl9jMnBfaGFuZGxlLCAmYzJwX2d1aWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIEdSVUJfRUZJX09QRU5fUFJPVE9DT0xfR0VUX1BST1RPQ09MKTsKKyAgICAgICAgaWYg KGMycCkKKyAgICAgICAgeworICAgICAgICAgICAgdmVyaWZ5X2VuYWJsZSA9IGMycC0+dmVyaWZ5 X2lzX2VuYWJsZWQgKGMycCk7CisgICAgICAgICAgICBpZiAodmVyaWZ5X2VuYWJsZSkKKyAgICAg ICAgICAgIHsKKyAgICAgICAgICAgICAgICBzdHJ1Y3QgYWRkcl9yYW5nZSByYW5nZTsKKyAgICAg ICAgICAgICAgICBncnViX2VmaV9zdGF0dXNfdCBzdGF0dXMgPSAwOworICAgICAgICAgICAgICAg IGdydWJfdWludDMyX3Qgc3RhZ2UgPSBTVEFHRV9JTlZBTElEOworCisgICAgICAgICAgICAgICAg cmFuZ2Uuc3RhcnQgID0gYWRkcjsKKyAgICAgICAgICAgICAgICByYW5nZS5sZW5ndGggPSBzaXpl OworCisgICAgICAgICAgICAgICAgc3RhZ2UgPSBnZXRfdHBjbV9zdGFnZSgpOworICAgICAgICAg ICAgICAgIGlmIChzdGFnZSAhPSBTVEFHRV9JTlZBTElEKQorICAgICAgICAgICAgICAgIHsKKyAg ICAgICAgICAgICAgICAgICAgZGVzY19sZW4gPSBncnViX3N0cmxlbihkZXNjKSArIDE7CisgICAg ICAgICAgICAgICAgICAgIHN0YXR1cyA9IGMycC0+dmVyaWZ5X3JhdyAoYzJwLCBzdGFnZSwgKGdy dWJfdWludDY0X3QpZGVzYywgZGVzY19sZW4sIDEsICZyYW5nZSwgJm1lYXN1cmVfcmVzdWx0LCAm Y29udHJvbF9yZXN1bHQpOworICAgICAgICAgICAgICAgICAgICBpZiAoKCFzdGF0dXMpICYmICgo Y29udHJvbF9yZXN1bHQgJiBNRUFTVVJFX0FDVElPTl9NQVNLKSA9PSAwKSApCisgICAgICAgICAg ICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGdydWJfZHByaW50ZiAoInRwY20i LCAidmVyaWZ5X3JhdyBzdWNjZXNzLiBzdGFnZVslZF1kZXNjOlslc11cbiIsIHN0YWdlLCBkZXNj KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RfYzJwX2VyciA9IEdSVUJfRVJSX05PTkU7 CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgZWxzZQorICAgICAg ICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICBncnViX2RwcmludGYgKCJ0 cGNtIiwgInZlcmlmeV9yYXcgZXJyb3JcbiIpOworICAgICAgICAgICAgICAgICAgICAgICAgd2hp bGUoMSkgCisgICAgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgZ3J1Yl9lcnJvciAoR1JVQl9FUlJfVFBDTV9WRVJJRlksICJ0cGNtIHZlcmlmeSBlcnJv ci4gc3RhZ2VbJWRdZGVzY1slc11cbiIsIHN0YWdlLCBkZXNjKTsKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICBhc20gdm9sYXRpbGUgKCJobHQiKTsKKyAgICAgICAgICAgICAgICAgICAgICAg IH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAg ICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgZ3J1Yl9kcHJpbnRmICgidHBjbSIsICJp bnZhbGlkIHN0YWdlXG4iKTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICB1 cGRhdGVfbWVhc3VyZWRfaWQoKTsKKworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSB7 CisgICAgICAgICAgICAgICAgZ3J1Yl9kcHJpbnRmICgidHBjbSIsICJpbWFnZSB2ZXJpZnkgbm90 IGVuYWJsZWRcbiIpOworICAgICAgICAgICAgICAgIHRlc3RfYzJwX2VyciA9IEdSVUJfRVJSX05P TkU7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgZWxzZQorICAgICAgICAgICAg Z3J1Yl9kcHJpbnRmICgidHBjbSIsICJvcGVuIGMycCBwcm90b2NvbCBmYWlsZWRcbiIpOworICAg IH0KKyAgICBlbHNlCisgICAgeworICAgICAgICAvKiBrZWVwIGNvbXBhdGlibGUgd2l0aCBub24t bWVhc3VyZW1lbnQtc3VwcG9ydCBiaW9zLiAqLworICAgICAgICBncnViX2RwcmludGYgKCJ0cGNt IiwgIm5vdCBmb3VuZCBDMlAgcHJvdG9jb2xcbiIpOworICAgICAgICB0ZXN0X2MycF9lcnIgPSBH UlVCX0VSUl9OT05FOworICAgIH0KKworICAgIHJldHVybiB0ZXN0X2MycF9lcnI7Cit9CisKKy8q CisgICAgZ3J1Yl90cGNtX21lYXN1cmVfbWVtb3J5OgorICovCitncnViX2Vycl90IGdydWJfdHBj bV9tZWFzdXJlX21lbW9yeSh2b2lkICpjb250ZXh0LCBncnViX2FkZHJfdCBidWYsIGdydWJfc2l6 ZV90IHNpemUpCit7CisgICAgY2hhciAqcF9jb250ZXh0ID0gKGNoYXIgKiljb250ZXh0OworICAg IGNoYXIgKnAsICpwX2Rlc2M7CisgICAgY2hhciB0bXBbVFBDTV9NQVhfQlVGX1NJWkVdID0geycw J307CisgICAgZW51bSBncnViX2ZpbGVfdHlwZSB0eXBlOworCisgICAgaWYgKCFwX2NvbnRleHQp CisgICAgICAgIHJldHVybiBHUlVCX0VSUl9CVUc7CisKKyAgICBwID0gZ3J1Yl9zdHJjaHIocF9j b250ZXh0LCAnfCcpOworICAgIHBfZGVzYyA9IHAgKyAxOworICAgIGdydWJfbWVtY3B5KHRtcCwg cF9jb250ZXh0LCAocC1wX2NvbnRleHQpKTsKKyAgICB0eXBlID0gZ3J1Yl9zdHJ0b3VsKHRtcCwg MCwgMTApOworCisgICAgcmV0dXJuIG1lYXN1cmVfbWVtb3J5KHR5cGUsIHBfZGVzYywgYnVmLCBz aXplKTsKK30KKwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9ncnViL2VmaS90cGNtLmggYi9pbmNsdWRl L2dydWIvZWZpL3RwY20uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAuLmE0 ZTBjNzY1YQotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvZ3J1Yi9lZmkvdHBjbS5oCkBAIC0w LDAgKzEsNjAgQEAKKy8qCisgKiAgR1JVQiAgLS0gIEdSYW5kIFVuaWZpZWQgQm9vdGxvYWRlcgor ICogIENvcHlyaWdodCAoQykgMjAxOCAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisg KgorICogIEdSVUIgaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5k L29yIG1vZGlmeQorICogIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVi bGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisgKiAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRh dGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3IKKyAqICAoYXQgeW91ciBv cHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqICBHUlVCIGlzIGRpc3RyaWJ1dGVkIGlu IHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiAgYnV0IFdJVEhPVVQgQU5ZIFdB UlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqICBNRVJDSEFO VEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisg KiAgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiAg WW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGlj IExpY2Vuc2UKKyAqICBhbG9uZyB3aXRoIEdSVUIuICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5n bnUub3JnL2xpY2Vuc2VzLz4uCisgKi8KKworI2lmbmRlZiBHUlVCX0VGSV9UUENNX0hFQURFUgor I2RlZmluZSBHUlVCX0VGSV9UUENNX0hFQURFUiAxCisKKyNpbmNsdWRlIDxncnViL2ZpbGUuaD4K KyNpbmNsdWRlIDxncnViL2VmaS9hcGkuaD4KKyNpbmNsdWRlIDxncnViL2VmaS9lZmkuaD4KKwor I2RlZmluZSBDMlBHVUlEICAgICAgICAgezB4Zjg5YWI1Y2QsIDB4MjgyOSwgMHg0MjJmLCB7MHhh NSwgMHhmMywgMHgwMywgMHgyOCwgMHhlMCwgMHg2YywgMHhmYywgMHhiYn19CisjZGVmaW5lIE1F QVNVUkVfUkVTVUxUX01BU0sgICAgICAgICAgKDB4ZmYwMCkKKyNkZWZpbmUgTUVBU1VSRV9SRVNV TFRfU0hJRlQgICAgICAgICAoMTYpCisjZGVmaW5lIE1FQVNVUkVfQUNUSU9OX01BU0sgICAgICAg ICAgKDB4MSkKKyNkZWZpbmUgVFBDTV9NQVhfQlVGX1NJWkUgICAgICAgICAgICAxMjgKKworLyoK KyAgIHN0YWdlIGxheW91dDoKKyAgICAgMjAwMH4yOTk5OiArMSBldmVyeSB0aW1lCisqLworCisj ZGVmaW5lIFNUQUdFX1NUQVJUICAgICAgMjAwMAorI2RlZmluZSBTVEFHRV9FTkQgICAgICAgIDI5 OTkKKyNkZWZpbmUgU1RBR0VfSU5WQUxJRCAgICAzMDAwCisKK3N0cnVjdCBhZGRyX3JhbmdlIHsK KyAgICBncnViX3VpbnQ2NF90IHN0YXJ0OworICAgIGdydWJfdWludDY0X3QgbGVuZ3RoOworfTsK K3N0cnVjdCBjMnBfcHJvdG9jb2wgeworICAgIGdydWJfZWZpX3N0YXR1c190IChfX2dydWJfZWZp X2FwaSAqdmVyaWZ5X3JhdykgKHN0cnVjdCBjMnBfcHJvdG9jb2wgKnRoaXMsCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBncnViX3VpbnQzMl90IG1lYXN1cmVfc3RhZ2UsCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBncnViX3VpbnQ2NF90IGltYWdlX2lu Zm8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBncnViX3VpbnQzMl90IGlt YWdlX2luZm9fc2l6ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdydWJf dWludDMyX3QgbnVtX2FkZHJfcmFuZ2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBzdHJ1Y3QgYWRkcl9yYW5nZSByYW5nZXNbXSwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGdydWJfdWludDMyX3QgKm1lYXN1cmVfcmVzdWx0LAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgZ3J1Yl91aW50MzJfdCAqY29udHJvbF9yZXN1bHQpOwor ICAgIGdydWJfZWZpX2Jvb2xlYW5fdCAoX19ncnViX2VmaV9hcGkgKnZlcmlmeV9pc19lbmFibGVk KShzdHJ1Y3QgYzJwX3Byb3RvY29sICp0aGlzKTsKK307Cit0eXBlZGVmIHN0cnVjdCBjMnBfcHJv dG9jb2wgYzJwX3Byb3RvY29sX3Q7CisKK2dydWJfZXJyX3QgZ3J1Yl90cGNtX21lYXN1cmVfbWVt b3J5KHZvaWQgKmNvbnRleHQsIGdydWJfYWRkcl90IGJ1ZiwgZ3J1Yl9zaXplX3Qgc2l6ZSk7CisK KyNlbmRpZgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9ncnViL2Vyci5oIGIvaW5jbHVkZS9ncnViL2Vy ci5oCmluZGV4IDIwMmZhOGE3YS4uNGQyNzU2MDk3IDEwMDY0NAotLS0gYS9pbmNsdWRlL2dydWIv ZXJyLmgKKysrIGIvaW5jbHVkZS9ncnViL2Vyci5oCkBAIC03NSw3ICs3NSw4IEBAIHR5cGVkZWYg ZW51bQogICAgIEdSVUJfRVJSX0JBRF9TSUdOQVRVUkUsCiAgICAgR1JVQl9FUlJfQkFEX0ZJUk1X QVJFLAogICAgIEdSVUJfRVJSX1NUSUxMX1JFRkVSRU5DRUQsCi0gICAgR1JVQl9FUlJfUkVDVVJT SU9OX0RFUFRICisgICAgR1JVQl9FUlJfUkVDVVJTSU9OX0RFUFRILAorICAgIEdSVUJfRVJSX1RQ Q01fVkVSSUZZCiAgIH0KIGdydWJfZXJyX3Q7CiAKLS0gCjIuMTcuMQoKCl9fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkdydWItZGV2ZWwgbWFpbGluZyBsaXN0 CkdydWItZGV2ZWxAZ251Lm9yZwpodHRwczovL2xpc3RzLmdudS5vcmcvbWFpbG1hbi9saXN0aW5m by9ncnViLWRldmVsCg==