audk/MdePkg/Include/Library
Tom Lendacky f8422f1e0b MdePkg/BaseLib: Add support for the VMGEXIT instruction
BZ: https://bugzilla.tianocore.org/show_bug.cgi?id=2198

VMGEXIT is a new instruction used for Hypervisor/Guest communication when
running as an SEV-ES guest. A VMGEXIT will cause an automatic exit (AE)
to occur, resulting in a #VMEXIT with an exit code value of 0x403.

Since SEV-ES is only supported in X64, provide the necessary X64 support
to execute the VMGEXIT instruction, which is coded as "rep vmmcall". For
IA32, since "vmmcall" is not supported in NASM 32-bit mode and VMGEXIT
should never be called, provide a stub implementation that is identical
to CpuBreakpoint().

Cc: Michael D Kinney <michael.d.kinney@intel.com>
Cc: Liming Gao <liming.gao@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
Reviewed-by: Laszlo Ersek <lersek@redhat.com>
Signed-off-by: Tom Lendacky <thomas.lendacky@amd.com>
Regression-tested-by: Laszlo Ersek <lersek@redhat.com>
2020-08-16 16:45:42 +00:00
..
BaseLib.h MdePkg/BaseLib: Add support for the VMGEXIT instruction 2020-08-16 16:45:42 +00:00
BaseMemoryLib.h MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
CacheMaintenanceLib.h MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
CpuLib.h MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
DebugLib.h MdePkg/Include: Hook DebugLib _ASSERT() for unit tests 2020-07-15 05:25:21 +00:00
DebugPrintErrorLevelLib.h MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
DevicePathLib.h MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
DxeCoreEntryPoint.h MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
DxeServicesLib.h MdePkg/Library/Dxe: Fix various typos 2020-02-10 22:30:07 +00:00
DxeServicesTableLib.h MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
ExtractGuidedSectionLib.h MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
FileHandleLib.h MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
HobLib.h MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
HstiLib.h MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
IoLib.h MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
MemoryAllocationLib.h MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
MmServicesTableLib.h MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
OrderedCollectionLib.h MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
PcdLib.h MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
PciCf8Lib.h MdePkg/Library/Pci: Fix various typos 2020-02-10 22:30:07 +00:00
PciExpressLib.h MdePkg/Library/Pci: Fix various typos 2020-02-10 22:30:07 +00:00
PciLib.h MdePkg/Library/Pci: Fix various typos 2020-02-10 22:30:07 +00:00
PciSegmentInfoLib.h MdePkg/PciSegmentInfoLib: Add missing EFIAPI to GetPciSegmentInfo() 2020-06-24 05:46:27 +00:00
PciSegmentLib.h MdePkg/Library/Pci: Fix various typos 2020-02-10 22:30:07 +00:00
PeCoffExtraActionLib.h MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
PeCoffGetEntryPointLib.h MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
PeCoffLib.h MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
PeiCoreEntryPoint.h MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
PeiServicesLib.h MdePkg/PeiServicesLib.h: Change comments of PeiServicesResetSystem2 2019-04-28 09:40:12 +08:00
PeiServicesTablePointerLib.h MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
PeimEntryPoint.h MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
PerformanceLib.h MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
PostCodeLib.h MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
PrintLib.h MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
ReportStatusCodeLib.h MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
ResourcePublicationLib.h MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
RngLib.h MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
S3BootScriptLib.h MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
S3IoLib.h MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
S3PciLib.h MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
S3PciSegmentLib.h MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
S3SmbusLib.h MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
S3StallLib.h MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
SafeIntLib.h MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
SerialPortLib.h MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
SmbusLib.h MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
SmiHandlerProfileLib.h MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
SmmIoLib.h MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
SmmLib.h MdePkg/Library/Smm: Fix various typos 2020-02-10 22:30:07 +00:00
SmmMemLib.h MdePkg/Library/Smm: Fix various typos 2020-02-10 22:30:07 +00:00
SmmPeriodicSmiLib.h MdePkg/Library/Smm: Fix various typos 2020-02-10 22:30:07 +00:00
SmmServicesTableLib.h MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
StandaloneMmDriverEntryPoint.h MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
SynchronizationLib.h MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
TimerLib.h MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
UefiApplicationEntryPoint.h MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
UefiBootServicesTableLib.h MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
UefiDecompressLib.h MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
UefiDriverEntryPoint.h MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
UefiLib.h MdePkg: Update the comments of IsLanguageSupported 2019-11-20 15:03:24 +00:00
UefiRuntimeLib.h MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
UefiRuntimeServicesTableLib.h MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
UefiScsiLib.h MdePkg: Implement SCSI commands for Security Protocol In/Out 2019-09-29 16:43:45 +08:00
UefiUsbLib.h MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
UnitTestLib.h MdePkg/Include: Add UT_EXPECT_ASSERT_FAILURE() to UnitTestLib 2020-07-15 05:25:21 +00:00