|
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 |