> -----Original Message----- > From: devel@edk2.groups.io <devel@edk2.groups.io> On Behalf Of > Lendacky, Thomas > Sent: Friday, June 19, 2020 9:51 PM > To: devel@edk2.groups.io; Dong, Eric <eric.d...@intel.com> > Cc: Brijesh Singh <brijesh.si...@amd.com>; Ard Biesheuvel > <ard.biesheu...@arm.com>; Justen, Jordan L <jordan.l.jus...@intel.com>; > Laszlo Ersek <ler...@redhat.com>; Gao, Liming <liming....@intel.com>; > Kinney, Michael D <michael.d.kin...@intel.com>; Ni, Ray <ray...@intel.com> > Subject: Re: [edk2-devel] [PATCH v9 08/46] UefiCpuPkg: Implement library > support for VMGEXIT > > On 6/19/20 2:47 AM, Dong, Eric via groups.io wrote: > > > > > >> -----Original Message----- > >> From: devel@edk2.groups.io <devel@edk2.groups.io> On Behalf Of > >> Lendacky, Thomas > >> Sent: Thursday, June 18, 2020 10:09 PM > >> To: Dong, Eric <eric.d...@intel.com>; devel@edk2.groups.io > >> Cc: Brijesh Singh <brijesh.si...@amd.com>; Ard Biesheuvel > >> <ard.biesheu...@arm.com>; Justen, Jordan L > >> <jordan.l.jus...@intel.com>; Laszlo Ersek <ler...@redhat.com>; Gao, > >> Liming <liming....@intel.com>; Kinney, Michael D > >> <michael.d.kin...@intel.com>; Ni, Ray <ray...@intel.com> > >> Subject: Re: [edk2-devel] [PATCH v9 08/46] UefiCpuPkg: Implement > >> library support for VMGEXIT > >> > >> On 6/18/20 2:23 AM, Dong, Eric wrote: > >>> Hi Tom, > >>> > >>> When use VS2015 to build this code, it reports below error. Please > >>> help to > >> fix it. > >>> > >>> k:\edk2\UefiCpuPkg\Include\Library/VmgExitLib.h: error C2220: > >>> warning treated as error - no 'object' file generated > >>> k:\edk2\UefiCpuPkg\Include\Library/VmgExitLib.h: warning C4335: Mac > >>> file format detected: please convert the source file to either DOS > >>> or UNIX format > >> > >> That is strange... I didn't see this when I ran through the CI. When > >> I do a file command against the file it reports: > >> > >> UefiCpuPkg/Include/Library/VmgExitLib.h: C source, ASCII text, with > >> CRLF line terminators > >> > >> I'll investigate this and try and figure out what's going on, but if > >> anyone else has some ideas, please let me know. > > > > Hi Tom, > > > > I met this error again when I trig below patch from AMD again for CPU > change. > > "UefiCpuPkg: Move StandardSignatureIsAuthenticAMD to BaseUefiCpuLib" > > Hmmm... I think we could be running into issues with sending patches > through our mail servers. Let me send you the patch series directly using > some changes I made to my git config file to see if that helps. Would that be > ok?
Yes, please do it. Thanks, Eric > > Thanks, > Tom > > > > > I'm not sure whether this is patch issue, or our internal test sever issue. > > I > have reported this error to our internal team to check also. > > Please check it from your side and make sure no error from your side. I will > update the status from my side when I get the update. > > > > Thanks, > > Eric > > > >> > >> Thanks, > >> Tom > >> > >>> > >>> Thanks, > >>> Eric > >>> > >>>> -----Original Message----- > >>>> From: Tom Lendacky <thomas.lenda...@amd.com> > >>>> Sent: Friday, June 5, 2020 9:27 PM > >>>> To: devel@edk2.groups.io > >>>> Cc: Brijesh Singh <brijesh.si...@amd.com>; Ard Biesheuvel > >>>> <ard.biesheu...@arm.com>; Dong, Eric <eric.d...@intel.com>; Justen, > >>>> Jordan L <jordan.l.jus...@intel.com>; Laszlo Ersek > >>>> <ler...@redhat.com>; Gao, Liming <liming....@intel.com>; Kinney, > >>>> Michael D <michael.d.kin...@intel.com>; Ni, Ray <ray...@intel.com> > >>>> Subject: [PATCH v9 08/46] UefiCpuPkg: Implement library support for > >>>> VMGEXIT > >>>> > >>>> BZ: > >>>> > >> > https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fbug > >>>> > >> > zilla.tianocore.org%2Fshow_bug.cgi%3Fid%3D2198&data=02%7C01%7Ct > >> ho > >>>> > >> > mas.lendacky%40amd.com%7Cd75554da4959407c967608d8135877be%7C3dd > >> 8961fe > >>>> > >> > 4884e608e11a82d994e183d%7C0%7C0%7C637280617975250842&sdata= > >> fBlK2B > >>>> > FkRdAS5EWcM8YShf1ZswfRN%2F41L7XeUsb4ZCs%3D&reserved=0 > >>>> > >>>> To support handling #VC exceptions and issuing VMGEXIT > >>>> instructions, create a library with functions that can be used to > >>>> perform these #VC/VMGEXIT related operations. This includes > functions for: > >>>> - Handling #VC exceptions > >>>> - Preparing for and issuing a VMGEXIT > >>>> - Performing MMIO-related write operations to support flash > emulation > >>>> - Performing AP related boot opeations > >>>> > >>>> The base functions in this driver will not do anything and will > >>>> return an error if a return value is required. It is expected that > >>>> other packages (like OvmfPkg) will create a version of the library > >>>> to fully support an SEV-ES guest. > >>>> > >>>> Cc: Eric Dong <eric.d...@intel.com> > >>>> Cc: Ray Ni <ray...@intel.com> > >>>> Cc: Laszlo Ersek <ler...@redhat.com> > >>>> Signed-off-by: Tom Lendacky <thomas.lenda...@amd.com> > >>>> --- > >>>> UefiCpuPkg/UefiCpuPkg.dec | 3 + > >>>> UefiCpuPkg/UefiCpuPkg.dsc | 2 + > >>>> UefiCpuPkg/Library/VmgExitLibNull/VmgExitLibNull.inf | 27 +++++ > >>>> UefiCpuPkg/Include/Library/VmgExitLib.h | 103 > >> +++++++++++++++++ > >>>> UefiCpuPkg/Library/VmgExitLibNull/VmgExitLibNull.c | 121 > >>>> ++++++++++++++++++++ > >>>> UefiCpuPkg/Library/VmgExitLibNull/VmgExitLibNull.uni | 15 +++ > >>>> 6 files changed, 271 insertions(+) > >>>> > >>>> diff --git a/UefiCpuPkg/UefiCpuPkg.dec b/UefiCpuPkg/UefiCpuPkg.dec > >>>> index df5d02bae6b4..cb92f34b6f55 100644 > >>>> --- a/UefiCpuPkg/UefiCpuPkg.dec > >>>> +++ b/UefiCpuPkg/UefiCpuPkg.dec > >>>> @@ -53,6 +53,9 @@ [LibraryClasses.IA32, LibraryClasses.X64] > >>>> ## > >>>> > >>>> MpInitLib|Include/Library/MpInitLib.h > >>>> > >>>> > >>>> > >>>> + ## @libraryclass Provides function to support VMGEXIT processing. > >>>> > >>>> + VmgExitLib|Include/Library/VmgExitLib.h > >>>> > >>>> + > >>>> > >>>> [Guids] > >>>> > >>>> gUefiCpuPkgTokenSpaceGuid = { 0xac05bf33, 0x995a, 0x4ed4, > { 0xaa, > >>>> 0xb8, 0xef, 0x7a, 0xe8, 0xf, 0x5c, 0xb0 }} > >>>> > >>>> gMsegSmramGuid = { 0x5802bce4, 0xeeee, 0x4e33, { > >>>> 0xa1, > 0x30, > >>>> 0xeb, 0xad, 0x27, 0xf0, 0xe4, 0x39 }} > >>>> > >>>> diff --git a/UefiCpuPkg/UefiCpuPkg.dsc b/UefiCpuPkg/UefiCpuPkg.dsc > >>>> index afa304128221..f0e58b90ff0a 100644 > >>>> --- a/UefiCpuPkg/UefiCpuPkg.dsc > >>>> +++ b/UefiCpuPkg/UefiCpuPkg.dsc > >>>> @@ -56,6 +56,7 @@ [LibraryClasses] > >>>> > >>>> > >> > PeCoffGetEntryPointLib|MdePkg/Library/BasePeCoffGetEntryPointLib/Base > >>>> PeCoffGetEntryPointLib.inf > >>>> > >>>> > >>>> > >> > PeCoffExtraActionLib|MdePkg/Library/BasePeCoffExtraActionLibNull/Base > >>>> PeCoffExtraActionLib|P > >>>> eCoffExtraActionLibNull.inf > >>>> > >>>> > >>>> > >> > TpmMeasurementLib|MdeModulePkg/Library/TpmMeasurementLibNull/Tp > >>>> mMeasurementLibNull.inf > >>>> > >>>> + VmgExitLib|UefiCpuPkg/Library/VmgExitLibNull/VmgExitLibNull.inf > >>>> > >>>> > >>>> > >>>> [LibraryClasses.common.SEC] > >>>> > >>>> > >>>> > >> > PlatformSecLib|UefiCpuPkg/Library/PlatformSecLibNull/PlatformSecLibNu > >>>> PlatformSecLib|ll.i > >>>> nf > >>>> > >>>> @@ -143,6 +144,7 @@ [Components.IA32, Components.X64] > >>>> > >>>> > >> > UefiCpuPkg/Library/SmmCpuPlatformHookLibNull/SmmCpuPlatformHookLib > >>>> Null.inf > >>>> > >>>> UefiCpuPkg/Library/SmmCpuFeaturesLib/SmmCpuFeaturesLib.inf > >>>> > >>>> > UefiCpuPkg/Library/SmmCpuFeaturesLib/SmmCpuFeaturesLibStm.inf > >>>> > >>>> + UefiCpuPkg/Library/VmgExitLibNull/VmgExitLibNull.inf > >>>> > >>>> UefiCpuPkg/PiSmmCommunication/PiSmmCommunicationPei.inf > >>>> > >>>> UefiCpuPkg/PiSmmCommunication/PiSmmCommunicationSmm.inf > >>>> > >>>> UefiCpuPkg/SecCore/SecCore.inf > >>>> > >>>> diff --git a/UefiCpuPkg/Library/VmgExitLibNull/VmgExitLibNull.inf > >>>> b/UefiCpuPkg/Library/VmgExitLibNull/VmgExitLibNull.inf > >>>> new file mode 100644 > >>>> index 000000000000..d8770a21c355 > >>>> --- /dev/null > >>>> +++ b/UefiCpuPkg/Library/VmgExitLibNull/VmgExitLibNull.inf > >>>> @@ -0,0 +1,27 @@ > >>>> +## @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 > >>>> > >>>> + > >>>> > >>>> +[Packages] > >>>> > >>>> + MdePkg/MdePkg.dec > >>>> > >>>> + UefiCpuPkg/UefiCpuPkg.dec > >>>> > >>>> + > >>>> > >>>> +[LibraryClasses] > >>>> > >>>> + BaseLib > >>>> > >>>> + > >>>> > >>>> diff --git a/UefiCpuPkg/Include/Library/VmgExitLib.h > >>>> b/UefiCpuPkg/Include/Library/VmgExitLib.h > >>>> new file mode 100644 > >>>> index 000000000000..0b2f39026a4a > >>>> --- /dev/null > >>>> +++ b/UefiCpuPkg/Include/Library/VmgExitLib.h > >>>> @@ -0,0 +1,103 @@ > >>>> +/** @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> > >>>> > >>>> + > >>>> > >>>> + > >>>> > >>>> +/** > >>>> > >>>> + 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. > >>>> > >>>> + > >>>> > >>>> + @return 0 VMGEXIT succeeded. > >>>> > >>>> + @return Others VMGEXIT processing did not succeed. > Exception > >>>> > >>>> + number to be propagated. > >>>> > >>>> + > >>>> > >>>> +**/ > >>>> > >>>> +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 > >>>> > >>>> + > >>>> > >>>> +**/ > >>>> > >>>> +VOID > >>>> > >>>> +EFIAPI > >>>> > >>>> +VmgInit ( > >>>> > >>>> + IN OUT GHCB *Ghcb > >>>> > >>>> + ); > >>>> > >>>> + > >>>> > >>>> +/** > >>>> > >>>> + 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 > >>>> > >>>> + > >>>> > >>>> +**/ > >>>> > >>>> +VOID > >>>> > >>>> +EFIAPI > >>>> > >>>> +VmgDone ( > >>>> > >>>> + IN OUT GHCB *Ghcb > >>>> > >>>> + ); > >>>> > >>>> + > >>>> > >>>> +/** > >>>> > >>>> + 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 > >>>> > >>>> + ); > >>>> > >>>> + > >>>> > >>>> +#endif > >>>> > >>>> diff --git a/UefiCpuPkg/Library/VmgExitLibNull/VmgExitLibNull.c > >>>> b/UefiCpuPkg/Library/VmgExitLibNull/VmgExitLibNull.c > >>>> new file mode 100644 > >>>> index 000000000000..30a239df298e > >>>> --- /dev/null > >>>> +++ b/UefiCpuPkg/Library/VmgExitLibNull/VmgExitLibNull.c > >>>> @@ -0,0 +1,121 @@ > >>>> +/** @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. > >>>> > >>>> + > >>>> > >>>> + @return 0 VMGEXIT succeeded. > >>>> > >>>> + @return Others VMGEXIT processing did not succeed. > Exception > >>>> > >>>> + event to be propagated. > >>>> > >>>> + > >>>> > >>>> +**/ > >>>> > >>>> +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. > >>>> > >>>> + > >>>> > >>>> + The base library function does nothing. > >>>> > >>>> + > >>>> > >>>> + @param[in, out] Ghcb A pointer to the GHCB > >>>> > >>>> + > >>>> > >>>> +**/ > >>>> > >>>> +VOID > >>>> > >>>> +EFIAPI > >>>> > >>>> +VmgInit ( > >>>> > >>>> + IN OUT GHCB *Ghcb > >>>> > >>>> + ) > >>>> > >>>> +{ > >>>> > >>>> +} > >>>> > >>>> + > >>>> > >>>> +/** > >>>> > >>>> + Perform post-VMGEXIT cleanup. > >>>> > >>>> + > >>>> > >>>> + Performs the necessary steps to cleanup after invoking VMGEXIT. > >>>> + Must be > >>>> > >>>> + called after obtaining needed fields within the GHCB. > >>>> > >>>> + > >>>> > >>>> + The base library function does nothing. > >>>> > >>>> + > >>>> > >>>> + @param[in, out] Ghcb A pointer to the GHCB > >>>> > >>>> + > >>>> > >>>> +**/ > >>>> > >>>> +VOID > >>>> > >>>> +EFIAPI > >>>> > >>>> +VmgDone ( > >>>> > >>>> + IN OUT GHCB *Ghcb > >>>> > >>>> + ) > >>>> > >>>> +{ > >>>> > >>>> +} > >>>> > >>>> + > >>>> > >>>> +/** > >>>> > >>>> + 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.uni > >>>> b/UefiCpuPkg/Library/VmgExitLibNull/VmgExitLibNull.uni > >>>> new file mode 100644 > >>>> index 000000000000..8639bc0e8ce9 > >>>> --- /dev/null > >>>> +++ b/UefiCpuPkg/Library/VmgExitLibNull/VmgExitLibNull.uni > >>>> @@ -0,0 +1,15 @@ > >>>> +// /** @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." > >>>> > >>>> + > >>>> > >>>> -- > >>>> 2.27.0 > >>> > >> > >> > > > > > > > > -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#61524): https://edk2.groups.io/g/devel/message/61524 Mute This Topic: https://groups.io/mt/74692413/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-