OvmfPkg/UefiCpuPkg: Add CcExit prefix to the APIs of CcExitLib

BZ: https://bugzilla.tianocore.org/show_bug.cgi?id=4123

APIs which are defined in CcExitLib.h are added with the CcExit prefix.
This is to make the APIs' name more meaningful.

This change impacts OvmfPkg/UefiCpuPkg.

Cc: Eric Dong <eric.dong@intel.com>
Cc: Ray Ni <ray.ni@intel.com>
Cc: Brijesh Singh <brijesh.singh@amd.com>
Cc: Erdem Aktas <erdemaktas@google.com>
Cc: Gerd Hoffmann <kraxel@redhat.com>
Cc: James Bottomley <jejb@linux.ibm.com>
Cc: Jiewen Yao <jiewen.yao@intel.com>
Cc: Tom Lendacky <thomas.lendacky@amd.com>
Reviewed-by: Jiewen Yao <jiewen.yao@intel.com>
Reviewed-by: Ray Ni <ray.ni@intel.com>
Signed-off-by: Min Xu <min.m.xu@intel.com>
This commit is contained in:
Min M Xu
2022-11-07 15:50:11 +08:00
committed by mergify[bot]
parent a89f558d3c
commit 765ba5bf05
15 changed files with 117 additions and 117 deletions

View File

@ -193,9 +193,9 @@ PageStateChangeVmgExit (
// //
while (Info->Header.CurrentEntry <= Info->Header.EndEntry) { while (Info->Header.CurrentEntry <= Info->Header.EndEntry) {
Ghcb->SaveArea.SwScratch = (UINT64)Ghcb->SharedBuffer; Ghcb->SaveArea.SwScratch = (UINT64)Ghcb->SharedBuffer;
VmgSetOffsetValid (Ghcb, GhcbSwScratch); CcExitVmgSetOffsetValid (Ghcb, GhcbSwScratch);
Status = VmgExit (Ghcb, SVM_EXIT_SNP_PAGE_STATE_CHANGE, 0, 0); Status = CcExitVmgExit (Ghcb, SVM_EXIT_SNP_PAGE_STATE_CHANGE, 0, 0);
// //
// The Page State Change VMGEXIT can pass the failure through the // The Page State Change VMGEXIT can pass the failure through the
@ -251,7 +251,7 @@ InternalSetPageState (
// //
// Initialize the GHCB // Initialize the GHCB
// //
VmgInit (Ghcb, &InterruptState); CcExitVmgInit (Ghcb, &InterruptState);
// //
// Build the page state structure // Build the page state structure
@ -293,7 +293,7 @@ InternalSetPageState (
PvalidateRange (Info, CurrentEntry, EndEntry, TRUE); PvalidateRange (Info, CurrentEntry, EndEntry, TRUE);
} }
VmgDone (Ghcb, InterruptState); CcExitVmgDone (Ghcb, InterruptState);
BaseAddress = NextAddress; BaseAddress = NextAddress;
} }

View File

@ -103,7 +103,7 @@ VmgExitErrorCheck (
**/ **/
UINT64 UINT64
EFIAPI EFIAPI
VmgExit ( CcExitVmgExit (
IN OUT GHCB *Ghcb, IN OUT GHCB *Ghcb,
IN UINT64 ExitCode, IN UINT64 ExitCode,
IN UINT64 ExitInfo1, IN UINT64 ExitInfo1,
@ -114,9 +114,9 @@ VmgExit (
Ghcb->SaveArea.SwExitInfo1 = ExitInfo1; Ghcb->SaveArea.SwExitInfo1 = ExitInfo1;
Ghcb->SaveArea.SwExitInfo2 = ExitInfo2; Ghcb->SaveArea.SwExitInfo2 = ExitInfo2;
VmgSetOffsetValid (Ghcb, GhcbSwExitCode); CcExitVmgSetOffsetValid (Ghcb, GhcbSwExitCode);
VmgSetOffsetValid (Ghcb, GhcbSwExitInfo1); CcExitVmgSetOffsetValid (Ghcb, GhcbSwExitInfo1);
VmgSetOffsetValid (Ghcb, GhcbSwExitInfo2); CcExitVmgSetOffsetValid (Ghcb, GhcbSwExitInfo2);
// //
// Guest memory is used for the guest-hypervisor communication, so fence // Guest memory is used for the guest-hypervisor communication, so fence
@ -138,12 +138,12 @@ VmgExit (
@param[in, out] Ghcb A pointer to the GHCB @param[in, out] Ghcb A pointer to the GHCB
@param[in, out] InterruptState A pointer to hold the current interrupt @param[in, out] InterruptState A pointer to hold the current interrupt
state, used for restoring in VmgDone () state, used for restoring in CcExitVmgDone ()
**/ **/
VOID VOID
EFIAPI EFIAPI
VmgInit ( CcExitVmgInit (
IN OUT GHCB *Ghcb, IN OUT GHCB *Ghcb,
IN OUT BOOLEAN *InterruptState IN OUT BOOLEAN *InterruptState
) )
@ -173,7 +173,7 @@ VmgInit (
**/ **/
VOID VOID
EFIAPI EFIAPI
VmgDone ( CcExitVmgDone (
IN OUT GHCB *Ghcb, IN OUT GHCB *Ghcb,
IN BOOLEAN InterruptState IN BOOLEAN InterruptState
) )
@ -195,7 +195,7 @@ VmgDone (
**/ **/
VOID VOID
EFIAPI EFIAPI
VmgSetOffsetValid ( CcExitVmgSetOffsetValid (
IN OUT GHCB *Ghcb, IN OUT GHCB *Ghcb,
IN GHCB_REGISTER Offset IN GHCB_REGISTER Offset
) )
@ -224,7 +224,7 @@ VmgSetOffsetValid (
**/ **/
BOOLEAN BOOLEAN
EFIAPI EFIAPI
VmgIsOffsetValid ( CcExitVmgIsOffsetValid (
IN GHCB *Ghcb, IN GHCB *Ghcb,
IN GHCB_REGISTER Offset IN GHCB_REGISTER Offset
) )

View File

@ -611,7 +611,7 @@ UnsupportedExit (
{ {
UINT64 Status; UINT64 Status;
Status = VmgExit (Ghcb, SVM_EXIT_UNSUPPORTED, Regs->ExceptionData, 0); Status = CcExitVmgExit (Ghcb, SVM_EXIT_UNSUPPORTED, Regs->ExceptionData, 0);
if (Status == 0) { if (Status == 0) {
GHCB_EVENT_INJECTION Event; GHCB_EVENT_INJECTION Event;
@ -755,8 +755,8 @@ MmioExit (
CopyMem (Ghcb->SharedBuffer, &InstructionData->Ext.RegData, Bytes); CopyMem (Ghcb->SharedBuffer, &InstructionData->Ext.RegData, Bytes);
Ghcb->SaveArea.SwScratch = (UINT64)Ghcb->SharedBuffer; Ghcb->SaveArea.SwScratch = (UINT64)Ghcb->SharedBuffer;
VmgSetOffsetValid (Ghcb, GhcbSwScratch); CcExitVmgSetOffsetValid (Ghcb, GhcbSwScratch);
Status = VmgExit (Ghcb, SVM_EXIT_MMIO_WRITE, ExitInfo1, ExitInfo2); Status = CcExitVmgExit (Ghcb, SVM_EXIT_MMIO_WRITE, ExitInfo1, ExitInfo2);
if (Status != 0) { if (Status != 0) {
return Status; return Status;
} }
@ -807,8 +807,8 @@ MmioExit (
CopyMem (Ghcb->SharedBuffer, &Regs->Rax, Bytes); CopyMem (Ghcb->SharedBuffer, &Regs->Rax, Bytes);
Ghcb->SaveArea.SwScratch = (UINT64)Ghcb->SharedBuffer; Ghcb->SaveArea.SwScratch = (UINT64)Ghcb->SharedBuffer;
VmgSetOffsetValid (Ghcb, GhcbSwScratch); CcExitVmgSetOffsetValid (Ghcb, GhcbSwScratch);
Status = VmgExit (Ghcb, SVM_EXIT_MMIO_WRITE, ExitInfo1, ExitInfo2); Status = CcExitVmgExit (Ghcb, SVM_EXIT_MMIO_WRITE, ExitInfo1, ExitInfo2);
if (Status != 0) { if (Status != 0) {
return Status; return Status;
} }
@ -843,8 +843,8 @@ MmioExit (
CopyMem (Ghcb->SharedBuffer, InstructionData->Immediate, Bytes); CopyMem (Ghcb->SharedBuffer, InstructionData->Immediate, Bytes);
Ghcb->SaveArea.SwScratch = (UINT64)Ghcb->SharedBuffer; Ghcb->SaveArea.SwScratch = (UINT64)Ghcb->SharedBuffer;
VmgSetOffsetValid (Ghcb, GhcbSwScratch); CcExitVmgSetOffsetValid (Ghcb, GhcbSwScratch);
Status = VmgExit (Ghcb, SVM_EXIT_MMIO_WRITE, ExitInfo1, ExitInfo2); Status = CcExitVmgExit (Ghcb, SVM_EXIT_MMIO_WRITE, ExitInfo1, ExitInfo2);
if (Status != 0) { if (Status != 0) {
return Status; return Status;
} }
@ -882,8 +882,8 @@ MmioExit (
ExitInfo2 = Bytes; ExitInfo2 = Bytes;
Ghcb->SaveArea.SwScratch = (UINT64)Ghcb->SharedBuffer; Ghcb->SaveArea.SwScratch = (UINT64)Ghcb->SharedBuffer;
VmgSetOffsetValid (Ghcb, GhcbSwScratch); CcExitVmgSetOffsetValid (Ghcb, GhcbSwScratch);
Status = VmgExit (Ghcb, SVM_EXIT_MMIO_READ, ExitInfo1, ExitInfo2); Status = CcExitVmgExit (Ghcb, SVM_EXIT_MMIO_READ, ExitInfo1, ExitInfo2);
if (Status != 0) { if (Status != 0) {
return Status; return Status;
} }
@ -942,8 +942,8 @@ MmioExit (
ExitInfo2 = Bytes; ExitInfo2 = Bytes;
Ghcb->SaveArea.SwScratch = (UINT64)Ghcb->SharedBuffer; Ghcb->SaveArea.SwScratch = (UINT64)Ghcb->SharedBuffer;
VmgSetOffsetValid (Ghcb, GhcbSwScratch); CcExitVmgSetOffsetValid (Ghcb, GhcbSwScratch);
Status = VmgExit (Ghcb, SVM_EXIT_MMIO_READ, ExitInfo1, ExitInfo2); Status = CcExitVmgExit (Ghcb, SVM_EXIT_MMIO_READ, ExitInfo1, ExitInfo2);
if (Status != 0) { if (Status != 0) {
return Status; return Status;
} }
@ -979,8 +979,8 @@ MmioExit (
ExitInfo2 = Bytes; ExitInfo2 = Bytes;
Ghcb->SaveArea.SwScratch = (UINT64)Ghcb->SharedBuffer; Ghcb->SaveArea.SwScratch = (UINT64)Ghcb->SharedBuffer;
VmgSetOffsetValid (Ghcb, GhcbSwScratch); CcExitVmgSetOffsetValid (Ghcb, GhcbSwScratch);
Status = VmgExit (Ghcb, SVM_EXIT_MMIO_READ, ExitInfo1, ExitInfo2); Status = CcExitVmgExit (Ghcb, SVM_EXIT_MMIO_READ, ExitInfo1, ExitInfo2);
if (Status != 0) { if (Status != 0) {
return Status; return Status;
} }
@ -1011,8 +1011,8 @@ MmioExit (
ExitInfo2 = Bytes; ExitInfo2 = Bytes;
Ghcb->SaveArea.SwScratch = (UINT64)Ghcb->SharedBuffer; Ghcb->SaveArea.SwScratch = (UINT64)Ghcb->SharedBuffer;
VmgSetOffsetValid (Ghcb, GhcbSwScratch); CcExitVmgSetOffsetValid (Ghcb, GhcbSwScratch);
Status = VmgExit (Ghcb, SVM_EXIT_MMIO_READ, ExitInfo1, ExitInfo2); Status = CcExitVmgExit (Ghcb, SVM_EXIT_MMIO_READ, ExitInfo1, ExitInfo2);
if (Status != 0) { if (Status != 0) {
return Status; return Status;
} }
@ -1068,11 +1068,11 @@ MwaitExit (
DecodeModRm (Regs, InstructionData); DecodeModRm (Regs, InstructionData);
Ghcb->SaveArea.Rax = Regs->Rax; Ghcb->SaveArea.Rax = Regs->Rax;
VmgSetOffsetValid (Ghcb, GhcbRax); CcExitVmgSetOffsetValid (Ghcb, GhcbRax);
Ghcb->SaveArea.Rcx = Regs->Rcx; Ghcb->SaveArea.Rcx = Regs->Rcx;
VmgSetOffsetValid (Ghcb, GhcbRcx); CcExitVmgSetOffsetValid (Ghcb, GhcbRcx);
return VmgExit (Ghcb, SVM_EXIT_MWAIT, 0, 0); return CcExitVmgExit (Ghcb, SVM_EXIT_MWAIT, 0, 0);
} }
/** /**
@ -1100,13 +1100,13 @@ MonitorExit (
DecodeModRm (Regs, InstructionData); DecodeModRm (Regs, InstructionData);
Ghcb->SaveArea.Rax = Regs->Rax; // Identity mapped, so VA = PA Ghcb->SaveArea.Rax = Regs->Rax; // Identity mapped, so VA = PA
VmgSetOffsetValid (Ghcb, GhcbRax); CcExitVmgSetOffsetValid (Ghcb, GhcbRax);
Ghcb->SaveArea.Rcx = Regs->Rcx; Ghcb->SaveArea.Rcx = Regs->Rcx;
VmgSetOffsetValid (Ghcb, GhcbRcx); CcExitVmgSetOffsetValid (Ghcb, GhcbRcx);
Ghcb->SaveArea.Rdx = Regs->Rdx; Ghcb->SaveArea.Rdx = Regs->Rdx;
VmgSetOffsetValid (Ghcb, GhcbRdx); CcExitVmgSetOffsetValid (Ghcb, GhcbRdx);
return VmgExit (Ghcb, SVM_EXIT_MONITOR, 0, 0); return CcExitVmgExit (Ghcb, SVM_EXIT_MONITOR, 0, 0);
} }
/** /**
@ -1131,7 +1131,7 @@ WbinvdExit (
IN SEV_ES_INSTRUCTION_DATA *InstructionData IN SEV_ES_INSTRUCTION_DATA *InstructionData
) )
{ {
return VmgExit (Ghcb, SVM_EXIT_WBINVD, 0, 0); return CcExitVmgExit (Ghcb, SVM_EXIT_WBINVD, 0, 0);
} }
/** /**
@ -1160,14 +1160,14 @@ RdtscpExit (
DecodeModRm (Regs, InstructionData); DecodeModRm (Regs, InstructionData);
Status = VmgExit (Ghcb, SVM_EXIT_RDTSCP, 0, 0); Status = CcExitVmgExit (Ghcb, SVM_EXIT_RDTSCP, 0, 0);
if (Status != 0) { if (Status != 0) {
return Status; return Status;
} }
if (!VmgIsOffsetValid (Ghcb, GhcbRax) || if (!CcExitVmgIsOffsetValid (Ghcb, GhcbRax) ||
!VmgIsOffsetValid (Ghcb, GhcbRcx) || !CcExitVmgIsOffsetValid (Ghcb, GhcbRcx) ||
!VmgIsOffsetValid (Ghcb, GhcbRdx)) !CcExitVmgIsOffsetValid (Ghcb, GhcbRdx))
{ {
return UnsupportedExit (Ghcb, Regs, InstructionData); return UnsupportedExit (Ghcb, Regs, InstructionData);
} }
@ -1206,16 +1206,16 @@ VmmCallExit (
DecodeModRm (Regs, InstructionData); DecodeModRm (Regs, InstructionData);
Ghcb->SaveArea.Rax = Regs->Rax; Ghcb->SaveArea.Rax = Regs->Rax;
VmgSetOffsetValid (Ghcb, GhcbRax); CcExitVmgSetOffsetValid (Ghcb, GhcbRax);
Ghcb->SaveArea.Cpl = (UINT8)(Regs->Cs & 0x3); Ghcb->SaveArea.Cpl = (UINT8)(Regs->Cs & 0x3);
VmgSetOffsetValid (Ghcb, GhcbCpl); CcExitVmgSetOffsetValid (Ghcb, GhcbCpl);
Status = VmgExit (Ghcb, SVM_EXIT_VMMCALL, 0, 0); Status = CcExitVmgExit (Ghcb, SVM_EXIT_VMMCALL, 0, 0);
if (Status != 0) { if (Status != 0) {
return Status; return Status;
} }
if (!VmgIsOffsetValid (Ghcb, GhcbRax)) { if (!CcExitVmgIsOffsetValid (Ghcb, GhcbRax)) {
return UnsupportedExit (Ghcb, Regs, InstructionData); return UnsupportedExit (Ghcb, Regs, InstructionData);
} }
@ -1254,28 +1254,28 @@ MsrExit (
case 0x30: // WRMSR case 0x30: // WRMSR
ExitInfo1 = 1; ExitInfo1 = 1;
Ghcb->SaveArea.Rax = Regs->Rax; Ghcb->SaveArea.Rax = Regs->Rax;
VmgSetOffsetValid (Ghcb, GhcbRax); CcExitVmgSetOffsetValid (Ghcb, GhcbRax);
Ghcb->SaveArea.Rdx = Regs->Rdx; Ghcb->SaveArea.Rdx = Regs->Rdx;
VmgSetOffsetValid (Ghcb, GhcbRdx); CcExitVmgSetOffsetValid (Ghcb, GhcbRdx);
// //
// fall through // fall through
// //
case 0x32: // RDMSR case 0x32: // RDMSR
Ghcb->SaveArea.Rcx = Regs->Rcx; Ghcb->SaveArea.Rcx = Regs->Rcx;
VmgSetOffsetValid (Ghcb, GhcbRcx); CcExitVmgSetOffsetValid (Ghcb, GhcbRcx);
break; break;
default: default:
return UnsupportedExit (Ghcb, Regs, InstructionData); return UnsupportedExit (Ghcb, Regs, InstructionData);
} }
Status = VmgExit (Ghcb, SVM_EXIT_MSR, ExitInfo1, 0); Status = CcExitVmgExit (Ghcb, SVM_EXIT_MSR, ExitInfo1, 0);
if (Status != 0) { if (Status != 0) {
return Status; return Status;
} }
if (ExitInfo1 == 0) { if (ExitInfo1 == 0) {
if (!VmgIsOffsetValid (Ghcb, GhcbRax) || if (!CcExitVmgIsOffsetValid (Ghcb, GhcbRax) ||
!VmgIsOffsetValid (Ghcb, GhcbRdx)) !CcExitVmgIsOffsetValid (Ghcb, GhcbRdx))
{ {
return UnsupportedExit (Ghcb, Regs, InstructionData); return UnsupportedExit (Ghcb, Regs, InstructionData);
} }
@ -1471,8 +1471,8 @@ IoioExit (
} }
Ghcb->SaveArea.SwScratch = (UINT64)Ghcb->SharedBuffer; Ghcb->SaveArea.SwScratch = (UINT64)Ghcb->SharedBuffer;
VmgSetOffsetValid (Ghcb, GhcbSwScratch); CcExitVmgSetOffsetValid (Ghcb, GhcbSwScratch);
Status = VmgExit (Ghcb, SVM_EXIT_IOIO_PROT, ExitInfo1, ExitInfo2); Status = CcExitVmgExit (Ghcb, SVM_EXIT_IOIO_PROT, ExitInfo1, ExitInfo2);
if (Status != 0) { if (Status != 0) {
return Status; return Status;
} }
@ -1495,15 +1495,15 @@ IoioExit (
CopyMem (&Ghcb->SaveArea.Rax, &Regs->Rax, IOIO_DATA_BYTES (ExitInfo1)); CopyMem (&Ghcb->SaveArea.Rax, &Regs->Rax, IOIO_DATA_BYTES (ExitInfo1));
} }
VmgSetOffsetValid (Ghcb, GhcbRax); CcExitVmgSetOffsetValid (Ghcb, GhcbRax);
Status = VmgExit (Ghcb, SVM_EXIT_IOIO_PROT, ExitInfo1, 0); Status = CcExitVmgExit (Ghcb, SVM_EXIT_IOIO_PROT, ExitInfo1, 0);
if (Status != 0) { if (Status != 0) {
return Status; return Status;
} }
if ((ExitInfo1 & IOIO_TYPE_IN) != 0) { if ((ExitInfo1 & IOIO_TYPE_IN) != 0) {
if (!VmgIsOffsetValid (Ghcb, GhcbRax)) { if (!CcExitVmgIsOffsetValid (Ghcb, GhcbRax)) {
return UnsupportedExit (Ghcb, Regs, InstructionData); return UnsupportedExit (Ghcb, Regs, InstructionData);
} }
@ -1536,7 +1536,7 @@ InvdExit (
IN SEV_ES_INSTRUCTION_DATA *InstructionData IN SEV_ES_INSTRUCTION_DATA *InstructionData
) )
{ {
return VmgExit (Ghcb, SVM_EXIT_INVD, 0, 0); return CcExitVmgExit (Ghcb, SVM_EXIT_INVD, 0, 0);
} }
/** /**
@ -1581,23 +1581,23 @@ GetCpuidHyp (
{ {
*UnsupportedExit = FALSE; *UnsupportedExit = FALSE;
Ghcb->SaveArea.Rax = EaxIn; Ghcb->SaveArea.Rax = EaxIn;
VmgSetOffsetValid (Ghcb, GhcbRax); CcExitVmgSetOffsetValid (Ghcb, GhcbRax);
Ghcb->SaveArea.Rcx = EcxIn; Ghcb->SaveArea.Rcx = EcxIn;
VmgSetOffsetValid (Ghcb, GhcbRcx); CcExitVmgSetOffsetValid (Ghcb, GhcbRcx);
if (EaxIn == CPUID_EXTENDED_STATE) { if (EaxIn == CPUID_EXTENDED_STATE) {
Ghcb->SaveArea.XCr0 = XCr0; Ghcb->SaveArea.XCr0 = XCr0;
VmgSetOffsetValid (Ghcb, GhcbXCr0); CcExitVmgSetOffsetValid (Ghcb, GhcbXCr0);
} }
*Status = VmgExit (Ghcb, SVM_EXIT_CPUID, 0, 0); *Status = CcExitVmgExit (Ghcb, SVM_EXIT_CPUID, 0, 0);
if (*Status != 0) { if (*Status != 0) {
return FALSE; return FALSE;
} }
if (!VmgIsOffsetValid (Ghcb, GhcbRax) || if (!CcExitVmgIsOffsetValid (Ghcb, GhcbRax) ||
!VmgIsOffsetValid (Ghcb, GhcbRbx) || !CcExitVmgIsOffsetValid (Ghcb, GhcbRbx) ||
!VmgIsOffsetValid (Ghcb, GhcbRcx) || !CcExitVmgIsOffsetValid (Ghcb, GhcbRcx) ||
!VmgIsOffsetValid (Ghcb, GhcbRdx)) !CcExitVmgIsOffsetValid (Ghcb, GhcbRdx))
{ {
*UnsupportedExit = TRUE; *UnsupportedExit = TRUE;
return FALSE; return FALSE;
@ -2049,15 +2049,15 @@ RdpmcExit (
UINT64 Status; UINT64 Status;
Ghcb->SaveArea.Rcx = Regs->Rcx; Ghcb->SaveArea.Rcx = Regs->Rcx;
VmgSetOffsetValid (Ghcb, GhcbRcx); CcExitVmgSetOffsetValid (Ghcb, GhcbRcx);
Status = VmgExit (Ghcb, SVM_EXIT_RDPMC, 0, 0); Status = CcExitVmgExit (Ghcb, SVM_EXIT_RDPMC, 0, 0);
if (Status != 0) { if (Status != 0) {
return Status; return Status;
} }
if (!VmgIsOffsetValid (Ghcb, GhcbRax) || if (!CcExitVmgIsOffsetValid (Ghcb, GhcbRax) ||
!VmgIsOffsetValid (Ghcb, GhcbRdx)) !CcExitVmgIsOffsetValid (Ghcb, GhcbRdx))
{ {
return UnsupportedExit (Ghcb, Regs, InstructionData); return UnsupportedExit (Ghcb, Regs, InstructionData);
} }
@ -2092,13 +2092,13 @@ RdtscExit (
{ {
UINT64 Status; UINT64 Status;
Status = VmgExit (Ghcb, SVM_EXIT_RDTSC, 0, 0); Status = CcExitVmgExit (Ghcb, SVM_EXIT_RDTSC, 0, 0);
if (Status != 0) { if (Status != 0) {
return Status; return Status;
} }
if (!VmgIsOffsetValid (Ghcb, GhcbRax) || if (!CcExitVmgIsOffsetValid (Ghcb, GhcbRax) ||
!VmgIsOffsetValid (Ghcb, GhcbRdx)) !CcExitVmgIsOffsetValid (Ghcb, GhcbRdx))
{ {
return UnsupportedExit (Ghcb, Regs, InstructionData); return UnsupportedExit (Ghcb, Regs, InstructionData);
} }
@ -2150,9 +2150,9 @@ Dr7WriteExit (
// Using a value of 0 for ExitInfo1 means RAX holds the value // Using a value of 0 for ExitInfo1 means RAX holds the value
// //
Ghcb->SaveArea.Rax = *Register; Ghcb->SaveArea.Rax = *Register;
VmgSetOffsetValid (Ghcb, GhcbRax); CcExitVmgSetOffsetValid (Ghcb, GhcbRax);
Status = VmgExit (Ghcb, SVM_EXIT_DR7_WRITE, 0, 0); Status = CcExitVmgExit (Ghcb, SVM_EXIT_DR7_WRITE, 0, 0);
if (Status != 0) { if (Status != 0) {
return Status; return Status;
} }
@ -2243,7 +2243,7 @@ InternalVmgExitHandleVc (
Regs = SystemContext.SystemContextX64; Regs = SystemContext.SystemContextX64;
VmgInit (Ghcb, &InterruptState); CcExitVmgInit (Ghcb, &InterruptState);
ExitCode = Regs->ExceptionData; ExitCode = Regs->ExceptionData;
switch (ExitCode) { switch (ExitCode) {
@ -2327,7 +2327,7 @@ InternalVmgExitHandleVc (
VcRet = EFI_PROTOCOL_ERROR; VcRet = EFI_PROTOCOL_ERROR;
} }
VmgDone (Ghcb, InterruptState); CcExitVmgDone (Ghcb, InterruptState);
return VcRet; return VcRet;
} }

View File

@ -464,7 +464,7 @@ MmioExit (
**/ **/
EFI_STATUS EFI_STATUS
EFIAPI EFIAPI
VmTdExitHandleVe ( CcExitHandleVe (
IN OUT EFI_EXCEPTION_TYPE *ExceptionType, IN OUT EFI_EXCEPTION_TYPE *ExceptionType,
IN OUT EFI_SYSTEM_CONTEXT SystemContext IN OUT EFI_SYSTEM_CONTEXT SystemContext
) )

View File

@ -33,7 +33,7 @@
**/ **/
EFI_STATUS EFI_STATUS
EFIAPI EFIAPI
VmgExitHandleVc ( CcExitHandleVc (
IN OUT EFI_EXCEPTION_TYPE *ExceptionType, IN OUT EFI_EXCEPTION_TYPE *ExceptionType,
IN OUT EFI_SYSTEM_CONTEXT SystemContext IN OUT EFI_SYSTEM_CONTEXT SystemContext
) )

View File

@ -33,7 +33,7 @@
**/ **/
EFI_STATUS EFI_STATUS
EFIAPI EFIAPI
VmgExitHandleVc ( CcExitHandleVc (
IN OUT EFI_EXCEPTION_TYPE *ExceptionType, IN OUT EFI_EXCEPTION_TYPE *ExceptionType,
IN OUT EFI_SYSTEM_CONTEXT SystemContext IN OUT EFI_SYSTEM_CONTEXT SystemContext
) )

View File

@ -50,7 +50,7 @@ AmdSevSnpInitialize (
} }
// //
// Query the hypervisor feature using the VmgExit and set the value in the // Query the hypervisor feature using the CcExitVmgExit and set the value in the
// hypervisor features PCD. // hypervisor features PCD.
// //
HvFeatures = GetHypervisorFeature (); HvFeatures = GetHypervisorFeature ();
@ -129,19 +129,19 @@ GetHypervisorFeature (
// //
// Initialize the GHCB // Initialize the GHCB
// //
VmgInit (Ghcb, &InterruptState); CcExitVmgInit (Ghcb, &InterruptState);
// //
// Query the Hypervisor Features. // Query the Hypervisor Features.
// //
Status = VmgExit (Ghcb, SVM_EXIT_HYPERVISOR_FEATURES, 0, 0); Status = CcExitVmgExit (Ghcb, SVM_EXIT_HYPERVISOR_FEATURES, 0, 0);
if ((Status != 0)) { if ((Status != 0)) {
SevEsProtocolFailure (GHCB_TERMINATE_GHCB_GENERAL); SevEsProtocolFailure (GHCB_TERMINATE_GHCB_GENERAL);
} }
Features = Ghcb->SaveArea.SwExitInfo2; Features = Ghcb->SaveArea.SwExitInfo2;
VmgDone (Ghcb, InterruptState); CcExitVmgDone (Ghcb, InterruptState);
return Features; return Features;
} }

View File

@ -82,12 +82,12 @@ QemuFlashPtrWrite (
// #VC exception. Instead, use the VMGEXIT MMIO write support directly // #VC exception. Instead, use the VMGEXIT MMIO write support directly
// to perform the update. // to perform the update.
// //
VmgInit (Ghcb, &InterruptState); CcExitVmgInit (Ghcb, &InterruptState);
Ghcb->SharedBuffer[0] = Value; Ghcb->SharedBuffer[0] = Value;
Ghcb->SaveArea.SwScratch = (UINT64)(UINTN)Ghcb->SharedBuffer; Ghcb->SaveArea.SwScratch = (UINT64)(UINTN)Ghcb->SharedBuffer;
VmgSetOffsetValid (Ghcb, GhcbSwScratch); CcExitVmgSetOffsetValid (Ghcb, GhcbSwScratch);
VmgExit (Ghcb, SVM_EXIT_MMIO_WRITE, PhysAddr, 1); CcExitVmgExit (Ghcb, SVM_EXIT_MMIO_WRITE, PhysAddr, 1);
VmgDone (Ghcb, InterruptState); CcExitVmgDone (Ghcb, InterruptState);
} else { } else {
*Ptr = Value; *Ptr = Value;
} }

View File

@ -41,7 +41,7 @@
**/ **/
UINT64 UINT64
EFIAPI EFIAPI
VmgExit ( CcExitVmgExit (
IN OUT GHCB *Ghcb, IN OUT GHCB *Ghcb,
IN UINT64 ExitCode, IN UINT64 ExitCode,
IN UINT64 ExitInfo1, IN UINT64 ExitInfo1,
@ -56,12 +56,12 @@ VmgExit (
@param[in, out] Ghcb A pointer to the GHCB @param[in, out] Ghcb A pointer to the GHCB
@param[in, out] InterruptState A pointer to hold the current interrupt @param[in, out] InterruptState A pointer to hold the current interrupt
state, used for restoring in VmgDone () state, used for restoring in CcExitVmgDone ()
**/ **/
VOID VOID
EFIAPI EFIAPI
VmgInit ( CcExitVmgInit (
IN OUT GHCB *Ghcb, IN OUT GHCB *Ghcb,
IN OUT BOOLEAN *InterruptState IN OUT BOOLEAN *InterruptState
); );
@ -79,7 +79,7 @@ VmgInit (
**/ **/
VOID VOID
EFIAPI EFIAPI
VmgDone ( CcExitVmgDone (
IN OUT GHCB *Ghcb, IN OUT GHCB *Ghcb,
IN BOOLEAN InterruptState IN BOOLEAN InterruptState
); );
@ -96,7 +96,7 @@ VmgDone (
**/ **/
VOID VOID
EFIAPI EFIAPI
VmgSetOffsetValid ( CcExitVmgSetOffsetValid (
IN OUT GHCB *Ghcb, IN OUT GHCB *Ghcb,
IN GHCB_REGISTER Offset IN GHCB_REGISTER Offset
); );
@ -116,7 +116,7 @@ VmgSetOffsetValid (
**/ **/
BOOLEAN BOOLEAN
EFIAPI EFIAPI
VmgIsOffsetValid ( CcExitVmgIsOffsetValid (
IN GHCB *Ghcb, IN GHCB *Ghcb,
IN GHCB_REGISTER Offset IN GHCB_REGISTER Offset
); );
@ -142,7 +142,7 @@ VmgIsOffsetValid (
**/ **/
EFI_STATUS EFI_STATUS
EFIAPI EFIAPI
VmgExitHandleVc ( CcExitHandleVc (
IN OUT EFI_EXCEPTION_TYPE *ExceptionType, IN OUT EFI_EXCEPTION_TYPE *ExceptionType,
IN OUT EFI_SYSTEM_CONTEXT SystemContext IN OUT EFI_SYSTEM_CONTEXT SystemContext
); );
@ -168,7 +168,7 @@ VmgExitHandleVc (
**/ **/
EFI_STATUS EFI_STATUS
EFIAPI EFIAPI
VmTdExitHandleVe ( CcExitHandleVe (
IN OUT EFI_EXCEPTION_TYPE *ExceptionType, IN OUT EFI_EXCEPTION_TYPE *ExceptionType,
IN OUT EFI_SYSTEM_CONTEXT SystemContext IN OUT EFI_SYSTEM_CONTEXT SystemContext
); );

View File

@ -35,7 +35,7 @@
**/ **/
UINT64 UINT64
EFIAPI EFIAPI
VmgExit ( CcExitVmgExit (
IN OUT GHCB *Ghcb, IN OUT GHCB *Ghcb,
IN UINT64 ExitCode, IN UINT64 ExitCode,
IN UINT64 ExitInfo1, IN UINT64 ExitInfo1,
@ -60,12 +60,12 @@ VmgExit (
@param[in, out] Ghcb A pointer to the GHCB @param[in, out] Ghcb A pointer to the GHCB
@param[in, out] InterruptState A pointer to hold the current interrupt @param[in, out] InterruptState A pointer to hold the current interrupt
state, used for restoring in VmgDone () state, used for restoring in CcExitVmgDone ()
**/ **/
VOID VOID
EFIAPI EFIAPI
VmgInit ( CcExitVmgInit (
IN OUT GHCB *Ghcb, IN OUT GHCB *Ghcb,
IN OUT BOOLEAN *InterruptState IN OUT BOOLEAN *InterruptState
) )
@ -85,7 +85,7 @@ VmgInit (
**/ **/
VOID VOID
EFIAPI EFIAPI
VmgDone ( CcExitVmgDone (
IN OUT GHCB *Ghcb, IN OUT GHCB *Ghcb,
IN BOOLEAN InterruptState IN BOOLEAN InterruptState
) )
@ -104,7 +104,7 @@ VmgDone (
**/ **/
VOID VOID
EFIAPI EFIAPI
VmgSetOffsetValid ( CcExitVmgSetOffsetValid (
IN OUT GHCB *Ghcb, IN OUT GHCB *Ghcb,
IN GHCB_REGISTER Offset IN GHCB_REGISTER Offset
) )
@ -126,7 +126,7 @@ VmgSetOffsetValid (
**/ **/
BOOLEAN BOOLEAN
EFIAPI EFIAPI
VmgIsOffsetValid ( CcExitVmgIsOffsetValid (
IN GHCB *Ghcb, IN GHCB *Ghcb,
IN GHCB_REGISTER Offset IN GHCB_REGISTER Offset
) )
@ -155,7 +155,7 @@ VmgIsOffsetValid (
**/ **/
EFI_STATUS EFI_STATUS
EFIAPI EFIAPI
VmgExitHandleVc ( CcExitHandleVc (
IN OUT EFI_EXCEPTION_TYPE *ExceptionType, IN OUT EFI_EXCEPTION_TYPE *ExceptionType,
IN OUT EFI_SYSTEM_CONTEXT SystemContext IN OUT EFI_SYSTEM_CONTEXT SystemContext
) )
@ -183,7 +183,7 @@ VmgExitHandleVc (
**/ **/
EFI_STATUS EFI_STATUS
EFIAPI EFIAPI
VmTdExitHandleVe ( CcExitHandleVe (
IN OUT EFI_EXCEPTION_TYPE *ExceptionType, IN OUT EFI_EXCEPTION_TYPE *ExceptionType,
IN OUT EFI_SYSTEM_CONTEXT SystemContext IN OUT EFI_SYSTEM_CONTEXT SystemContext
) )

View File

@ -40,7 +40,7 @@ CommonExceptionHandlerWorker (
// On other - ExceptionType contains (possibly new) exception // On other - ExceptionType contains (possibly new) exception
// value // value
// //
Status = VmgExitHandleVc (&ExceptionType, SystemContext); Status = CcExitHandleVc (&ExceptionType, SystemContext);
if (!EFI_ERROR (Status)) { if (!EFI_ERROR (Status)) {
return; return;
} }
@ -57,7 +57,7 @@ CommonExceptionHandlerWorker (
// On other - ExceptionType contains (possibly new) exception // On other - ExceptionType contains (possibly new) exception
// value // value
// //
Status = VmTdExitHandleVe (&ExceptionType, SystemContext); Status = CcExitHandleVe (&ExceptionType, SystemContext);
if (!EFI_ERROR (Status)) { if (!EFI_ERROR (Status)) {
return; return;
} }

View File

@ -39,7 +39,7 @@ CommonExceptionHandler (
// On other - ExceptionType contains (possibly new) exception // On other - ExceptionType contains (possibly new) exception
// value // value
// //
Status = VmgExitHandleVc (&ExceptionType, SystemContext); Status = CcExitHandleVc (&ExceptionType, SystemContext);
if (!EFI_ERROR (Status)) { if (!EFI_ERROR (Status)) {
return; return;
} }
@ -57,7 +57,7 @@ CommonExceptionHandler (
// On other - ExceptionType contains (possibly new) exception // On other - ExceptionType contains (possibly new) exception
// value // value
// //
Status = VmTdExitHandleVe (&ExceptionType, SystemContext); Status = CcExitHandleVe (&ExceptionType, SystemContext);
if (!EFI_ERROR (Status)) { if (!EFI_ERROR (Status)) {
return; return;
} }

View File

@ -209,7 +209,7 @@ SevEsPlaceApHlt (
Msr.GhcbPhysicalAddress = AsmReadMsr64 (MSR_SEV_ES_GHCB); Msr.GhcbPhysicalAddress = AsmReadMsr64 (MSR_SEV_ES_GHCB);
Ghcb = Msr.Ghcb; Ghcb = Msr.Ghcb;
VmgInit (Ghcb, &InterruptState); CcExitVmgInit (Ghcb, &InterruptState);
if (DoDecrement) { if (DoDecrement) {
DoDecrement = FALSE; DoDecrement = FALSE;
@ -221,13 +221,13 @@ SevEsPlaceApHlt (
InterlockedDecrement ((UINT32 *)&CpuMpData->MpCpuExchangeInfo->NumApsExecuting); InterlockedDecrement ((UINT32 *)&CpuMpData->MpCpuExchangeInfo->NumApsExecuting);
} }
Status = VmgExit (Ghcb, SVM_EXIT_AP_RESET_HOLD, 0, 0); Status = CcExitVmgExit (Ghcb, SVM_EXIT_AP_RESET_HOLD, 0, 0);
if ((Status == 0) && (Ghcb->SaveArea.SwExitInfo2 != 0)) { if ((Status == 0) && (Ghcb->SaveArea.SwExitInfo2 != 0)) {
VmgDone (Ghcb, InterruptState); CcExitVmgDone (Ghcb, InterruptState);
break; break;
} }
VmgDone (Ghcb, InterruptState); CcExitVmgDone (Ghcb, InterruptState);
} }
// //

View File

@ -222,9 +222,9 @@ GetSevEsAPMemory (
Msr.GhcbPhysicalAddress = AsmReadMsr64 (MSR_SEV_ES_GHCB); Msr.GhcbPhysicalAddress = AsmReadMsr64 (MSR_SEV_ES_GHCB);
Ghcb = Msr.Ghcb; Ghcb = Msr.Ghcb;
VmgInit (Ghcb, &InterruptState); CcExitVmgInit (Ghcb, &InterruptState);
VmgExit (Ghcb, SVM_EXIT_AP_JUMP_TABLE, 0, (UINT64)(UINTN)StartAddress); CcExitVmgExit (Ghcb, SVM_EXIT_AP_JUMP_TABLE, 0, (UINT64)(UINTN)StartAddress);
VmgDone (Ghcb, InterruptState); CcExitVmgDone (Ghcb, InterruptState);
return (UINTN)StartAddress; return (UINTN)StartAddress;
} }

View File

@ -150,16 +150,16 @@ SevSnpCreateSaveArea (
Msr.GhcbPhysicalAddress = AsmReadMsr64 (MSR_SEV_ES_GHCB); Msr.GhcbPhysicalAddress = AsmReadMsr64 (MSR_SEV_ES_GHCB);
Ghcb = Msr.Ghcb; Ghcb = Msr.Ghcb;
VmgInit (Ghcb, &InterruptState); CcExitVmgInit (Ghcb, &InterruptState);
Ghcb->SaveArea.Rax = SaveArea->SevFeatures; Ghcb->SaveArea.Rax = SaveArea->SevFeatures;
VmgSetOffsetValid (Ghcb, GhcbRax); CcExitVmgSetOffsetValid (Ghcb, GhcbRax);
VmgExitStatus = VmgExit ( VmgExitStatus = CcExitVmgExit (
Ghcb, Ghcb,
SVM_EXIT_SNP_AP_CREATION, SVM_EXIT_SNP_AP_CREATION,
ExitInfo1, ExitInfo1,
ExitInfo2 ExitInfo2
); );
VmgDone (Ghcb, InterruptState); CcExitVmgDone (Ghcb, InterruptState);
ASSERT (VmgExitStatus == 0); ASSERT (VmgExitStatus == 0);
if (VmgExitStatus != 0) { if (VmgExitStatus != 0) {