MdePkg[all]
1.08
|
Data Structures | |
union | GHCB_EXIT_INFO |
union | GHCB_EVENT_INJECTION |
struct | SNP_PAGE_STATE_ENTRY |
struct | SNP_PAGE_STATE_HEADER |
struct | SNP_PAGE_STATE_CHANGE_INFO |
union | SEV_ES_SEGMENT_REGISTER_ATTRIBUTES |
struct | SEV_ES_SEGMENT_REGISTER |
struct | SEV_ES_SAVE_AREA |
Typedefs | |
struct { | |
UINT8 Reserved1 [203] | |
UINT8 Cpl | |
UINT8 Reserved8 [300] | |
UINT64 Rax | |
UINT8 Reserved4 [264] | |
UINT64 Rcx | |
UINT64 Rdx | |
UINT64 Rbx | |
UINT8 Reserved5 [112] | |
UINT64 SwExitCode | |
UINT64 SwExitInfo1 | |
UINT64 SwExitInfo2 | |
UINT64 SwScratch | |
UINT8 Reserved6 [56] | |
UINT64 XCr0 | |
UINT8 ValidBitmap [16] | |
UINT64 X87StateGpa | |
UINT8 Reserved7 [1016] | |
} | GHCB_SAVE_AREA |
struct { | |
GHCB_SAVE_AREA SaveArea | |
UINT8 SharedBuffer [2032] | |
UINT8 Reserved1 [10] | |
UINT16 ProtocolVersion | |
UINT32 GhcbUsage | |
} | GHCB |
Enumerations | |
enum | GHCB_REGISTER { GhcbCpl = GHCB_SAVE_AREA_QWORD_OFFSET (Cpl), GhcbRax = GHCB_SAVE_AREA_QWORD_OFFSET (Rax), GhcbRbx = GHCB_SAVE_AREA_QWORD_OFFSET (Rbx), GhcbRcx = GHCB_SAVE_AREA_QWORD_OFFSET (Rcx), GhcbRdx = GHCB_SAVE_AREA_QWORD_OFFSET (Rdx), GhcbXCr0 = GHCB_SAVE_AREA_QWORD_OFFSET (XCr0), GhcbSwExitCode = GHCB_SAVE_AREA_QWORD_OFFSET (SwExitCode), GhcbSwExitInfo1 = GHCB_SAVE_AREA_QWORD_OFFSET (SwExitInfo1), GhcbSwExitInfo2 = GHCB_SAVE_AREA_QWORD_OFFSET (SwExitInfo2), GhcbSwScratch = GHCB_SAVE_AREA_QWORD_OFFSET (SwScratch) } |
Guest-Hypervisor Communication Block (GHCB) Definition.
Provides data types allowing an SEV-ES guest to interact with the hypervisor using the GHCB protocol.
Copyright (C) 2020, Advanced Micro Devices, Inc. All rights reserved.
SPDX-License-Identifier: BSD-2-Clause-Patent
#define GHCB_EVENT_INJECTION_TYPE_EXCEPTION 3 |
#define GHCB_EVENT_INJECTION_TYPE_INT 0 |
#define GHCB_EVENT_INJECTION_TYPE_NMI 2 |
#define GHCB_EVENT_INJECTION_TYPE_SOFT_INT 4 |
#define GHCB_HV_FEATURES_SNP BIT0 |
#define GHCB_HV_FEATURES_SNP_AP_CREATE (GHCB_HV_FEATURES_SNP | BIT1) |
#define GHCB_HV_FEATURES_SNP_RESTRICTED_INJECTION (GHCB_HV_FEATURES_SNP_AP_CREATE | BIT2) |
#define GHCB_HV_FEATURES_SNP_RESTRICTED_INJECTION_TIMER (GHCB_HV_FEATURES_SNP_RESTRICTED_INJECTION | BIT3) |
#define GHCB_SAVE_AREA_QWORD_OFFSET | ( | RegisterField | ) | (OFFSET_OF (GHCB, SaveArea.RegisterField) / sizeof (UINT64)) |
#define GHCB_STANDARD_USAGE 0 |
#define GHCB_VERSION_MAX 1 |
#define GHCB_VERSION_MIN 1 |
#define GP_EXCEPTION 13 |
#define IOIO_ADDR_16 BIT7 |
#define IOIO_ADDR_32 BIT8 |
#define IOIO_ADDR_64 BIT9 |
#define IOIO_DATA_16 BIT5 |
#define IOIO_DATA_32 BIT6 |
#define IOIO_DATA_8 BIT4 |
#define IOIO_DATA_BYTES | ( | x | ) | (((x) & IOIO_DATA_MASK) >> IOIO_DATA_OFFSET) |
#define IOIO_DATA_OFFSET 4 |
#define IOIO_REP BIT3 |
#define IOIO_SEG_ES 0 |
#define IOIO_TYPE_IN 1 |
#define IOIO_TYPE_INS (IOIO_TYPE_IN | IOIO_TYPE_STR) |
#define IOIO_TYPE_OUT 0 |
#define IOIO_TYPE_OUTS (IOIO_TYPE_OUT | IOIO_TYPE_STR) |
#define IOIO_TYPE_STR BIT2 |
#define SEV_ES_RESET_CODE_SEGMENT_TYPE 0xA |
#define SEV_ES_RESET_DATA_SEGMENT_TYPE 0x2 |
#define SEV_ES_RESET_LDT_TYPE 0x2 |
#define SEV_ES_RESET_TSS_TYPE 0x3 |
#define SNP_PAGE_STATE_MAX_ENTRY 253 |
#define SNP_PAGE_STATE_PRIVATE 1 |
#define SNP_PAGE_STATE_PSMASH 3 |
#define SNP_PAGE_STATE_SHARED 2 |
#define SNP_PAGE_STATE_UNSMASH 4 |
#define SVM_EXIT_AP_JUMP_TABLE 0x80000005ULL |
#define SVM_EXIT_AP_RESET_HOLD 0x80000004ULL |
#define SVM_EXIT_CPUID 0x72ULL |
#define SVM_EXIT_DR7_READ 0x27ULL |
#define SVM_EXIT_DR7_WRITE 0x37ULL |
#define SVM_EXIT_HYPERVISOR_FEATURES 0x8000FFFDULL |
#define SVM_EXIT_INVD 0x76ULL |
#define SVM_EXIT_IOIO_PROT 0x7BULL |
#define SVM_EXIT_MMIO_READ 0x80000001ULL |
#define SVM_EXIT_MMIO_WRITE 0x80000002ULL |
#define SVM_EXIT_MONITOR 0x8AULL |
#define SVM_EXIT_MSR 0x7CULL |
#define SVM_EXIT_MWAIT 0x8BULL |
#define SVM_EXIT_NMI_COMPLETE 0x80000003ULL |
#define SVM_EXIT_NPF 0x400ULL |
#define SVM_EXIT_RDPMC 0x6FULL |
#define SVM_EXIT_RDTSC 0x6EULL |
#define SVM_EXIT_RDTSCP 0x87ULL |
#define SVM_EXIT_SNP_AP_CREATION 0x80000013ULL |
#define SVM_EXIT_SNP_PAGE_STATE_CHANGE 0x80000010ULL |
#define SVM_EXIT_UNSUPPORTED 0x8000FFFFULL |
#define SVM_EXIT_VMMCALL 0x81ULL |
#define SVM_EXIT_WBINVD 0x89ULL |
#define SVM_VMGEXIT_SNP_AP_CREATE 1 |
#define SVM_VMGEXIT_SNP_AP_CREATE_ON_INIT 0 |
#define SVM_VMGEXIT_SNP_AP_DESTROY 2 |
#define UD_EXCEPTION 6 |
#define VC_EXCEPTION 29 |
typedef { ... } GHCB |
typedef { ... } GHCB_SAVE_AREA |
enum GHCB_REGISTER |
UINT8 Cpl |
UINT32 GhcbUsage |
UINT16 ProtocolVersion |
UINT64 Rax |
UINT64 Rbx |
UINT64 Rcx |
UINT64 Rdx |
UINT8 Reserved1[10] |
UINT8 Reserved4[264] |
UINT8 Reserved5[112] |
UINT8 Reserved6[56] |
UINT8 Reserved7[1016] |
UINT8 Reserved8[300] |
GHCB_SAVE_AREA SaveArea |
UINT8 SharedBuffer[2032] |
UINT64 SwExitCode |
UINT64 SwExitInfo1 |
UINT64 SwExitInfo2 |
UINT64 SwScratch |
UINT8 ValidBitmap[16] |
UINT64 X87StateGpa |
UINT64 XCr0 |