From: Min M Xu <min.m...@intel.com> BZ: https://bugzilla.tianocore.org/show_bug.cgi?id=4123
VmgExitLib is replaced by CcExitLib. So it is deleted from UefiCpuPkg. Cc: Guo Dong <guo.d...@intel.com> Cc: Ray Ni <ray...@intel.com> Signed-off-by: Min Xu <min.m...@intel.com> --- 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/Library/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.<BR> - SPDX-License-Identifier: BSD-2-Clause-Patent - -**/ - -#ifndef __VMG_EXIT_LIB_H__ -#define __VMG_EXIT_LIB_H__ - -#include <Protocol/DebugSupport.h> -#include <Register/Amd/Ghcb.h> - -#define VE_EXCEPTION 20 - -/** - Perform VMGEXIT. - - Sets the necessary fields of the GHCB, invokes the VMGEXIT instruction and - 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 marked - 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 marked - valid. Return whether the bit in the ValidBitmap is set for the input offset. - - @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 set - 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 value 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 set - 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 value 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.<BR> - - SPDX-License-Identifier: BSD-2-Clause-Patent - -**/ -#include <Base.h> -#include <Uefi.h> -#include <Library/VmgExitLib.h> - -/** - 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 set - 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 value to - propagate provided - -**/ -EFI_STATUS -EFIAPI -VmTdExitHandleVe ( - IN OUT EFI_EXCEPTION_TYPE *ExceptionType, - IN OUT EFI_SYSTEM_CONTEXT SystemContext - ) -{ - *ExceptionType = VE_EXCEPTION; - - return EFI_UNSUPPORTED; -} diff --git a/UefiCpuPkg/Library/VmgExitLibNull/VmgExitLibNull.c b/UefiCpuPkg/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.<BR> - SPDX-License-Identifier: BSD-2-Clause-Patent - -**/ - -#include <Base.h> -#include <Uefi.h> -#include <Library/VmgExitLib.h> - -/** - Perform VMGEXIT. - - Sets the necessary fields of the GHCB, invokes the VMGEXIT instruction and - 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 = 0; - Event.Elements.Vector = GP_EXCEPTION; - Event.Elements.Type = GHCB_EVENT_INJECTION_TYPE_EXCEPTION; - Event.Elements.Valid = 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 marked - valid. Set the bit in ValidBitmap for the input offset. - - @param[in, out] Ghcb Pointer to the Guest-Hypervisor Communication Block - @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 marked - valid. Return whether the bit in the ValidBitmap is set for the input offset. - - @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 set - 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 value to - propagate provided - -**/ -EFI_STATUS -EFIAPI -VmgExitHandleVc ( - IN OUT EFI_EXCEPTION_TYPE *ExceptionType, - IN OUT EFI_SYSTEM_CONTEXT SystemContext - ) -{ - *ExceptionType = VC_EXCEPTION; - - return EFI_UNSUPPORTED; -} diff --git a/UefiCpuPkg/Library/VmgExitLibNull/VmgExitLibNull.inf b/UefiCpuPkg/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.<BR> -# SPDX-License-Identifier: BSD-2-Clause-Patent -# -## - -[Defines] - INF_VERSION = 0x00010005 - BASE_NAME = VmgExitLibNull - MODULE_UNI_FILE = VmgExitLibNull.uni - FILE_GUID = 3cd7368f-ef9b-4a9b-9571-2ed93813677e - MODULE_TYPE = BASE - VERSION_STRING = 1.0 - LIBRARY_CLASS = 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/UefiCpuPkg/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.<BR> -// SPDX-License-Identifier: BSD-2-Clause-Patent -// -// **/ - - -#string STR_MODULE_ABSTRACT #language en-US "VMGEXIT support NULL library instance" - -#string STR_MODULE_DESCRIPTION #language en-US "VMGEXIT support NULL 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 - ## @libraryclass Provides function to support VMGEXIT processing. - VmgExitLib|Include/Library/VmgExitLib.h - ## @libraryclass Provides function to support CcExit processing. CcExitLib|Include/Library/CcExitLib.h 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/BasePeCoffGetEntryPointLib.inf PeCoffExtraActionLib|MdePkg/Library/BasePeCoffExtraActionLibNull/BasePeCoffExtraActionLibNull.inf TpmMeasurementLib|MdeModulePkg/Library/TpmMeasurementLibNull/TpmMeasurementLibNull.inf - VmgExitLib|UefiCpuPkg/Library/VmgExitLibNull/VmgExitLibNull.inf CcExitLib|UefiCpuPkg/Library/CcExitLibNull/CcExitLibNull.inf MicrocodeLib|UefiCpuPkg/Library/MicrocodeLib/MicrocodeLib.inf SmmCpuRendezvousLib|UefiCpuPkg/Library/SmmCpuRendezvousLib/SmmCpuRendezvousLib.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 -- 2.29.2.windows.2 -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#96013): https://edk2.groups.io/g/devel/message/96013 Mute This Topic: https://groups.io/mt/94856335/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-