45 BOOLEAN InterruptState;
54 ASSERT (Msr.GhcbInfo.Function == 0);
66 if (SevEsData->VcCount > VMGEXIT_MAXIMUM_VC_COUNT) {
68 }
else if (SevEsData->VcCount > 1) {
72 if (SevEsData->GhcbBackupPages ==
NULL) {
81 GhcbBackup = (GHCB *)SevEsData->GhcbBackupPages;
82 GhcbBackup += (SevEsData->VcCount - 2);
84 CopyMem (GhcbBackup, Ghcb,
sizeof (*Ghcb));
89 if (GhcbBackup !=
NULL) {
93 CopyMem (Ghcb, GhcbBackup,
sizeof (*Ghcb));
BOOLEAN EFIAPI GetInterruptState(VOID)
VOID EFIAPI EnableInterrupts(VOID)
VOID EFIAPI DisableInterrupts(VOID)
VOID *EFIAPI CopyMem(OUT VOID *DestinationBuffer, IN CONST VOID *SourceBuffer, IN UINTN Length)
#define ASSERT(Expression)
UINT64 EFIAPI AsmReadMsr64(IN UINT32 Index)
EFI_STATUS EFIAPI VmgExitHandleVc(IN OUT EFI_EXCEPTION_TYPE *ExceptionType, IN OUT EFI_SYSTEM_CONTEXT SystemContext)
EFI_STATUS EFIAPI InternalVmgExitHandleVc(IN OUT GHCB *Ghcb, IN OUT EFI_EXCEPTION_TYPE *ExceptionType, IN OUT EFI_SYSTEM_CONTEXT SystemContext)
VOID EFIAPI VmgExitIssueAssert(IN OUT SEV_ES_PER_CPU_DATA *SevEsData)