From nobody Mon Feb 9 18:43:15 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) client-ip=66.175.222.108; envelope-from=bounce+27952+95848+1787277+3901457@groups.io; helo=mail02.groups.io; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) smtp.mailfrom=bounce+27952+95848+1787277+3901457@groups.io; dmarc=fail(p=none dis=none) header.from=intel.com ARC-Seal: i=1; a=rsa-sha256; t=1667365882; cv=none; d=zohomail.com; s=zohoarc; b=UB1/VARWVs+E4AHZ9f7RaHfqc53B2y7ShMs+9TQbAbl1yE1LF8dq50x6E2n80UFyrBzmjsTR/DajGvn6iZ81Q2uXmY/R0eJtXbz/x8KNtr0eEgcpHWhFKbkDc0+ER/cRMda9C36KT5fMHaM9TvrXqm7BGDjpuWiJKK2cVtwr4qU= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1667365882; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Reply-To:References:Sender:Subject:To; bh=HLvqCdPzxmN3g59Ps5yU+WUak8R8YeQAmqDgWcv3MHY=; b=WWIfveQBkxUYJSMzf4WtnspAclILraLZKO8YacKnm+rhbKLeERXHq5+wFbAj7/EeanrODhiNUvn/m6tunwLYAK4NNoCJmqXCY4ezwHu5f+f5/zFFLDlpOfMcI+9wJH8CvXLia5gNtKKQT7Bdc83u1tSdqgUi0Gw/pPUtVWMbNsQ= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) smtp.mailfrom=bounce+27952+95848+1787277+3901457@groups.io; dmarc=fail header.from= (p=none dis=none) Received: from mail02.groups.io (mail02.groups.io [66.175.222.108]) by mx.zohomail.com with SMTPS id 1667365882300447.9446265297029; Tue, 1 Nov 2022 22:11:22 -0700 (PDT) Return-Path: X-Received: by 127.0.0.2 with SMTP id M5n3YY1788612xXXsGkECaGX; Tue, 01 Nov 2022 22:11:22 -0700 X-Received: from mga18.intel.com (mga18.intel.com [134.134.136.126]) by mx.groups.io with SMTP id smtpd.web12.2946.1667365881329104475 for ; Tue, 01 Nov 2022 22:11:21 -0700 X-IronPort-AV: E=McAfee;i="6500,9779,10518"; a="292626302" X-IronPort-AV: E=Sophos;i="5.95,232,1661842800"; d="scan'208";a="292626302" X-Received: from fmsmga005.fm.intel.com ([10.253.24.32]) by orsmga106.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 01 Nov 2022 22:11:19 -0700 X-IronPort-AV: E=McAfee;i="6500,9779,10518"; a="963386198" X-IronPort-AV: E=Sophos;i="5.95,232,1661842800"; d="scan'208";a="963386198" X-Received: from mxu9-mobl1.ccr.corp.intel.com ([10.238.0.248]) by fmsmga005-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 01 Nov 2022 22:11:18 -0700 From: "Min Xu" To: devel@edk2.groups.io Cc: Min M Xu , Guo Dong , Ray Ni Subject: [edk2-devel] [PATCH 7/8] UefiCpuPkg: Delete VmgExitLib Date: Wed, 2 Nov 2022 13:10:49 +0800 Message-Id: <20221102051050.852-8-min.m.xu@intel.com> In-Reply-To: <20221102051050.852-1-min.m.xu@intel.com> References: <20221102051050.852-1-min.m.xu@intel.com> MIME-Version: 1.0 Precedence: Bulk List-Unsubscribe: List-Subscribe: List-Help: Sender: devel@edk2.groups.io List-Id: Mailing-List: list devel@edk2.groups.io; contact devel+owner@edk2.groups.io Reply-To: devel@edk2.groups.io,min.m.xu@intel.com X-Gm-Message-State: rvhepshU5NT5E5dADkjdaNinx1787277AA= Content-Transfer-Encoding: quoted-printable DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=groups.io; q=dns/txt; s=20140610; t=1667365882; bh=NRMOwglo3vd5guHpGOpNjYuEwIyd/VYhX6d7ZYTUgls=; h=Cc:Date:From:Reply-To:Subject:To; b=Rp6Vw3J3BXoHyKsjVvKlnGVsaUzcq08R82t9GtIQ4CwigPypSag9QBiItDhqnoW9B8L jvpa/CcreYUZnhF/6iFiT3WP4rCtGMfkwYQH6eIvA/hNARgPPmeYjwJBj1/El0yrfPe2S A3WhKLX0VyDl9OzfCWfsh+ueW7MTYKxyVVI= X-ZohoMail-DKIM: pass (identity @groups.io) X-ZM-MESSAGEID: 1667365884422100005 Content-Type: text/plain; charset="utf-8" From: Min M Xu BZ: https://bugzilla.tianocore.org/show_bug.cgi?id=3D4123 VmgExitLib is replaced by CcExitLib. So it is deleted from UefiCpuPkg. Cc: Guo Dong Cc: Ray Ni Signed-off-by: Min Xu --- UefiCpuPkg/Include/Library/VmgExitLib.h | 173 ------------------ .../Library/VmgExitLibNull/VmTdExitNull.c | 38 ---- .../Library/VmgExitLibNull/VmgExitLibNull.c | 165 ----------------- .../Library/VmgExitLibNull/VmgExitLibNull.inf | 28 --- .../Library/VmgExitLibNull/VmgExitLibNull.uni | 15 -- UefiCpuPkg/UefiCpuPkg.dec | 3 - UefiCpuPkg/UefiCpuPkg.dsc | 2 - 7 files changed, 424 deletions(-) delete mode 100644 UefiCpuPkg/Include/Library/VmgExitLib.h delete mode 100644 UefiCpuPkg/Library/VmgExitLibNull/VmTdExitNull.c delete mode 100644 UefiCpuPkg/Library/VmgExitLibNull/VmgExitLibNull.c delete mode 100644 UefiCpuPkg/Library/VmgExitLibNull/VmgExitLibNull.inf delete mode 100644 UefiCpuPkg/Library/VmgExitLibNull/VmgExitLibNull.uni diff --git a/UefiCpuPkg/Include/Library/VmgExitLib.h b/UefiCpuPkg/Include/L= ibrary/VmgExitLib.h deleted file mode 100644 index f9f911099a7b..000000000000 --- a/UefiCpuPkg/Include/Library/VmgExitLib.h +++ /dev/null @@ -1,173 +0,0 @@ -/** @file - Public header file for the VMGEXIT Support library class. - - This library class defines some routines used when invoking the VMGEXIT - instruction in support of SEV-ES and to handle #VC exceptions. - - Copyright (C) 2020, Advanced Micro Devices, Inc. All rights reserved.
- SPDX-License-Identifier: BSD-2-Clause-Patent - -**/ - -#ifndef __VMG_EXIT_LIB_H__ -#define __VMG_EXIT_LIB_H__ - -#include -#include - -#define VE_EXCEPTION 20 - -/** - Perform VMGEXIT. - - Sets the necessary fields of the GHCB, invokes the VMGEXIT instruction a= nd - then handles the return actions. - - @param[in, out] Ghcb A pointer to the GHCB - @param[in] ExitCode VMGEXIT code to be assigned to the SwExitCode - field of the GHCB. - @param[in] ExitInfo1 VMGEXIT information to be assigned to the - SwExitInfo1 field of the GHCB. - @param[in] ExitInfo2 VMGEXIT information to be assigned to the - SwExitInfo2 field of the GHCB. - - @retval 0 VMGEXIT succeeded. - @return Exception number to be propagated, VMGEXIT - processing did not succeed. - -**/ -UINT64 -EFIAPI -VmgExit ( - IN OUT GHCB *Ghcb, - IN UINT64 ExitCode, - IN UINT64 ExitInfo1, - IN UINT64 ExitInfo2 - ); - -/** - Perform pre-VMGEXIT initialization/preparation. - - Performs the necessary steps in preparation for invoking VMGEXIT. Must be - called before setting any fields within the GHCB. - - @param[in, out] Ghcb A pointer to the GHCB - @param[in, out] InterruptState A pointer to hold the current interrupt - state, used for restoring in VmgDone () - -**/ -VOID -EFIAPI -VmgInit ( - IN OUT GHCB *Ghcb, - IN OUT BOOLEAN *InterruptState - ); - -/** - Perform post-VMGEXIT cleanup. - - Performs the necessary steps to cleanup after invoking VMGEXIT. Must be - called after obtaining needed fields within the GHCB. - - @param[in, out] Ghcb A pointer to the GHCB - @param[in] InterruptState An indicator to conditionally (re)enable - interrupts - -**/ -VOID -EFIAPI -VmgDone ( - IN OUT GHCB *Ghcb, - IN BOOLEAN InterruptState - ); - -/** - Marks a specified offset as valid in the GHCB. - - The ValidBitmap area represents the areas of the GHCB that have been mar= ked - valid. Set the bit in ValidBitmap for the input offset. - - @param[in, out] Ghcb A pointer to the GHCB - @param[in] Offset Qword offset in the GHCB to mark valid - -**/ -VOID -EFIAPI -VmgSetOffsetValid ( - IN OUT GHCB *Ghcb, - IN GHCB_REGISTER Offset - ); - -/** - Checks if a specified offset is valid in the GHCB. - - The ValidBitmap area represents the areas of the GHCB that have been mar= ked - valid. Return whether the bit in the ValidBitmap is set for the input of= fset. - - @param[in] Ghcb A pointer to the GHCB - @param[in] Offset Qword offset in the GHCB to mark valid - - @retval TRUE Offset is marked valid in the GHCB - @retval FALSE Offset is not marked valid in the GHCB - -**/ -BOOLEAN -EFIAPI -VmgIsOffsetValid ( - IN GHCB *Ghcb, - IN GHCB_REGISTER Offset - ); - -/** - Handle a #VC exception. - - Performs the necessary processing to handle a #VC exception. - - The base library function returns an error equal to VC_EXCEPTION, - to be propagated to the standard exception handling stack. - - @param[in, out] ExceptionType Pointer to an EFI_EXCEPTION_TYPE to be s= et - as value to use on error. - @param[in, out] SystemContext Pointer to EFI_SYSTEM_CONTEXT - - @retval EFI_SUCCESS Exception handled - @retval EFI_UNSUPPORTED #VC not supported, (new) exception value= to - propagate provided - @retval EFI_PROTOCOL_ERROR #VC handling failed, (new) exception val= ue to - propagate provided - -**/ -EFI_STATUS -EFIAPI -VmgExitHandleVc ( - IN OUT EFI_EXCEPTION_TYPE *ExceptionType, - IN OUT EFI_SYSTEM_CONTEXT SystemContext - ); - -/** - Handle a #VE exception. - - Performs the necessary processing to handle a #VE exception. - - The base library function returns an error equal to VE_EXCEPTION, - to be propagated to the standard exception handling stack. - - @param[in, out] ExceptionType Pointer to an EFI_EXCEPTION_TYPE to be s= et - as value to use on error. - @param[in, out] SystemContext Pointer to EFI_SYSTEM_CONTEXT - - @retval EFI_SUCCESS Exception handled - @retval EFI_UNSUPPORTED #VE not supported, (new) exception value= to - propagate provided - @retval EFI_PROTOCOL_ERROR #VE handling failed, (new) exception val= ue to - propagate provided - -**/ -EFI_STATUS -EFIAPI -VmTdExitHandleVe ( - IN OUT EFI_EXCEPTION_TYPE *ExceptionType, - IN OUT EFI_SYSTEM_CONTEXT SystemContext - ); - -#endif diff --git a/UefiCpuPkg/Library/VmgExitLibNull/VmTdExitNull.c b/UefiCpuPkg/= Library/VmgExitLibNull/VmTdExitNull.c deleted file mode 100644 index 6a4e8087cb89..000000000000 --- a/UefiCpuPkg/Library/VmgExitLibNull/VmTdExitNull.c +++ /dev/null @@ -1,38 +0,0 @@ -/** @file - - Copyright (c) 2021, Intel Corporation. All rights reserved.
- - SPDX-License-Identifier: BSD-2-Clause-Patent - -**/ -#include -#include -#include - -/** - Handle a #VE exception. - - Performs the necessary processing to handle a #VE exception. - - @param[in, out] ExceptionType Pointer to an EFI_EXCEPTION_TYPE to be s= et - as value to use on error. - @param[in, out] SystemContext Pointer to EFI_SYSTEM_CONTEXT - - @retval EFI_SUCCESS Exception handled - @retval EFI_UNSUPPORTED #VE not supported, (new) exception value= to - propagate provided - @retval EFI_PROTOCOL_ERROR #VE handling failed, (new) exception val= ue to - propagate provided - -**/ -EFI_STATUS -EFIAPI -VmTdExitHandleVe ( - IN OUT EFI_EXCEPTION_TYPE *ExceptionType, - IN OUT EFI_SYSTEM_CONTEXT SystemContext - ) -{ - *ExceptionType =3D VE_EXCEPTION; - - return EFI_UNSUPPORTED; -} diff --git a/UefiCpuPkg/Library/VmgExitLibNull/VmgExitLibNull.c b/UefiCpuPk= g/Library/VmgExitLibNull/VmgExitLibNull.c deleted file mode 100644 index d661d8597434..000000000000 --- a/UefiCpuPkg/Library/VmgExitLibNull/VmgExitLibNull.c +++ /dev/null @@ -1,165 +0,0 @@ -/** @file - VMGEXIT Base Support Library. - - Copyright (C) 2020, Advanced Micro Devices, Inc. All rights reserved.
- SPDX-License-Identifier: BSD-2-Clause-Patent - -**/ - -#include -#include -#include - -/** - Perform VMGEXIT. - - Sets the necessary fields of the GHCB, invokes the VMGEXIT instruction a= nd - then handles the return actions. - - The base library function returns an error in the form of a - GHCB_EVENT_INJECTION representing a GP_EXCEPTION. - - @param[in, out] Ghcb A pointer to the GHCB - @param[in] ExitCode VMGEXIT code to be assigned to the SwExitCode - field of the GHCB. - @param[in] ExitInfo1 VMGEXIT information to be assigned to the - SwExitInfo1 field of the GHCB. - @param[in] ExitInfo2 VMGEXIT information to be assigned to the - SwExitInfo2 field of the GHCB. - - @retval 0 VMGEXIT succeeded. - @return Exception number to be propagated, VMGEXIT - processing did not succeed. - -**/ -UINT64 -EFIAPI -VmgExit ( - IN OUT GHCB *Ghcb, - IN UINT64 ExitCode, - IN UINT64 ExitInfo1, - IN UINT64 ExitInfo2 - ) -{ - GHCB_EVENT_INJECTION Event; - - Event.Uint64 =3D 0; - Event.Elements.Vector =3D GP_EXCEPTION; - Event.Elements.Type =3D GHCB_EVENT_INJECTION_TYPE_EXCEPTION; - Event.Elements.Valid =3D 1; - - return Event.Uint64; -} - -/** - Perform pre-VMGEXIT initialization/preparation. - - Performs the necessary steps in preparation for invoking VMGEXIT. Must be - called before setting any fields within the GHCB. - - @param[in, out] Ghcb A pointer to the GHCB - @param[in, out] InterruptState A pointer to hold the current interrupt - state, used for restoring in VmgDone () - -**/ -VOID -EFIAPI -VmgInit ( - IN OUT GHCB *Ghcb, - IN OUT BOOLEAN *InterruptState - ) -{ -} - -/** - Perform post-VMGEXIT cleanup. - - Performs the necessary steps to cleanup after invoking VMGEXIT. Must be - called after obtaining needed fields within the GHCB. - - @param[in, out] Ghcb A pointer to the GHCB - @param[in] InterruptState An indicator to conditionally (re)enable - interrupts - -**/ -VOID -EFIAPI -VmgDone ( - IN OUT GHCB *Ghcb, - IN BOOLEAN InterruptState - ) -{ -} - -/** - Marks a field at the specified offset as valid in the GHCB. - - The ValidBitmap area represents the areas of the GHCB that have been mar= ked - valid. Set the bit in ValidBitmap for the input offset. - - @param[in, out] Ghcb Pointer to the Guest-Hypervisor Communication Bl= ock - @param[in] Offset Qword offset in the GHCB to mark valid - -**/ -VOID -EFIAPI -VmgSetOffsetValid ( - IN OUT GHCB *Ghcb, - IN GHCB_REGISTER Offset - ) -{ -} - -/** - Checks if a specified offset is valid in the GHCB. - - The ValidBitmap area represents the areas of the GHCB that have been mar= ked - valid. Return whether the bit in the ValidBitmap is set for the input of= fset. - - @param[in] Ghcb A pointer to the GHCB - @param[in] Offset Qword offset in the GHCB to mark valid - - @retval TRUE Offset is marked valid in the GHCB - @retval FALSE Offset is not marked valid in the GHCB - -**/ -BOOLEAN -EFIAPI -VmgIsOffsetValid ( - IN GHCB *Ghcb, - IN GHCB_REGISTER Offset - ) -{ - return FALSE; -} - -/** - Handle a #VC exception. - - Performs the necessary processing to handle a #VC exception. - - The base library function returns an error equal to VC_EXCEPTION, - to be propagated to the standard exception handling stack. - - @param[in, out] ExceptionType Pointer to an EFI_EXCEPTION_TYPE to be s= et - as value to use on error. - @param[in, out] SystemContext Pointer to EFI_SYSTEM_CONTEXT - - @retval EFI_SUCCESS Exception handled - @retval EFI_UNSUPPORTED #VC not supported, (new) exception value= to - propagate provided - @retval EFI_PROTOCOL_ERROR #VC handling failed, (new) exception val= ue to - propagate provided - -**/ -EFI_STATUS -EFIAPI -VmgExitHandleVc ( - IN OUT EFI_EXCEPTION_TYPE *ExceptionType, - IN OUT EFI_SYSTEM_CONTEXT SystemContext - ) -{ - *ExceptionType =3D VC_EXCEPTION; - - return EFI_UNSUPPORTED; -} diff --git a/UefiCpuPkg/Library/VmgExitLibNull/VmgExitLibNull.inf b/UefiCpu= Pkg/Library/VmgExitLibNull/VmgExitLibNull.inf deleted file mode 100644 index 4aab601939ff..000000000000 --- a/UefiCpuPkg/Library/VmgExitLibNull/VmgExitLibNull.inf +++ /dev/null @@ -1,28 +0,0 @@ -## @file -# VMGEXIT Support Library. -# -# Copyright (C) 2020, Advanced Micro Devices, Inc. All rights reserved. -# SPDX-License-Identifier: BSD-2-Clause-Patent -# -## - -[Defines] - INF_VERSION =3D 0x00010005 - BASE_NAME =3D VmgExitLibNull - MODULE_UNI_FILE =3D VmgExitLibNull.uni - FILE_GUID =3D 3cd7368f-ef9b-4a9b-9571-2ed93813677e - MODULE_TYPE =3D BASE - VERSION_STRING =3D 1.0 - LIBRARY_CLASS =3D VmgExitLib - -[Sources.common] - VmgExitLibNull.c - VmTdExitNull.c - -[Packages] - MdePkg/MdePkg.dec - UefiCpuPkg/UefiCpuPkg.dec - -[LibraryClasses] - BaseLib - diff --git a/UefiCpuPkg/Library/VmgExitLibNull/VmgExitLibNull.uni b/UefiCpu= Pkg/Library/VmgExitLibNull/VmgExitLibNull.uni deleted file mode 100644 index 8639bc0e8ce9..000000000000 --- a/UefiCpuPkg/Library/VmgExitLibNull/VmgExitLibNull.uni +++ /dev/null @@ -1,15 +0,0 @@ -// /** @file -// VMGEXIT support library instance. -// -// VMGEXIT support library instance. -// -// Copyright (C) 2020, Advanced Micro Devices, Inc. All rights reserved. -// SPDX-License-Identifier: BSD-2-Clause-Patent -// -// **/ - - -#string STR_MODULE_ABSTRACT #language en-US "VMGEXIT support N= ULL library instance" - -#string STR_MODULE_DESCRIPTION #language en-US "VMGEXIT support N= ULL library instance." - diff --git a/UefiCpuPkg/UefiCpuPkg.dec b/UefiCpuPkg/UefiCpuPkg.dec index 8058b679412f..cff239d5283e 100644 --- a/UefiCpuPkg/UefiCpuPkg.dec +++ b/UefiCpuPkg/UefiCpuPkg.dec @@ -53,9 +53,6 @@ ## MpInitLib|Include/Library/MpInitLib.h =20 - ## @libraryclass Provides function to support VMGEXIT processing. - VmgExitLib|Include/Library/VmgExitLib.h - ## @libraryclass Provides function to support CcExit processing. CcExitLib|Include/Library/CcExitLib.h =20 diff --git a/UefiCpuPkg/UefiCpuPkg.dsc b/UefiCpuPkg/UefiCpuPkg.dsc index 57c74ba844d2..67b0ce46e455 100644 --- a/UefiCpuPkg/UefiCpuPkg.dsc +++ b/UefiCpuPkg/UefiCpuPkg.dsc @@ -59,7 +59,6 @@ PeCoffGetEntryPointLib|MdePkg/Library/BasePeCoffGetEntryPointLib/BasePeC= offGetEntryPointLib.inf PeCoffExtraActionLib|MdePkg/Library/BasePeCoffExtraActionLibNull/BasePeC= offExtraActionLibNull.inf TpmMeasurementLib|MdeModulePkg/Library/TpmMeasurementLibNull/TpmMeasurem= entLibNull.inf - VmgExitLib|UefiCpuPkg/Library/VmgExitLibNull/VmgExitLibNull.inf CcExitLib|UefiCpuPkg/Library/CcExitLibNull/CcExitLibNull.inf MicrocodeLib|UefiCpuPkg/Library/MicrocodeLib/MicrocodeLib.inf SmmCpuRendezvousLib|UefiCpuPkg/Library/SmmCpuRendezvousLib/SmmCpuRendezv= ousLib.inf @@ -164,7 +163,6 @@ UefiCpuPkg/Library/SmmCpuFeaturesLib/SmmCpuFeaturesLib.inf UefiCpuPkg/Library/SmmCpuFeaturesLib/SmmCpuFeaturesLibStm.inf UefiCpuPkg/Library/SmmCpuFeaturesLib/StandaloneMmCpuFeaturesLib.inf - UefiCpuPkg/Library/VmgExitLibNull/VmgExitLibNull.inf UefiCpuPkg/Library/CcExitLibNull/CcExitLibNull.inf UefiCpuPkg/PiSmmCommunication/PiSmmCommunicationPei.inf UefiCpuPkg/PiSmmCommunication/PiSmmCommunicationSmm.inf --=20 2.29.2.windows.2 -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#95848): https://edk2.groups.io/g/devel/message/95848 Mute This Topic: https://groups.io/mt/94728443/1787277 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org] -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-