ve_info
static int ve_instr_len(struct ve_info *ve)
static int handle_halt(struct ve_info *ve)
static int read_msr(struct pt_regs *regs, struct ve_info *ve)
static int write_msr(struct pt_regs *regs, struct ve_info *ve)
static int handle_cpuid(struct pt_regs *regs, struct ve_info *ve)
static int handle_mmio(struct pt_regs *regs, struct ve_info *ve)
static int handle_io(struct pt_regs *regs, struct ve_info *ve)
struct ve_info ve;
void tdx_get_ve_info(struct ve_info *ve)
static int virt_exception_user(struct pt_regs *regs, struct ve_info *ve)
static int virt_exception_kernel(struct pt_regs *regs, struct ve_info *ve)
bool tdx_handle_virt_exception(struct pt_regs *regs, struct ve_info *ve)
void tdx_get_ve_info(struct ve_info *ve);
bool tdx_handle_virt_exception(struct pt_regs *regs, struct ve_info *ve);
struct ve_info ve;
if (vmx->ve_info)
vmcs_write64(VE_INFORMATION_ADDRESS, __pa(vmx->ve_info));
if (vmx->ve_info)
__pa(vmx->ve_info));
struct vmx_ve_information *ve_info = vmx->ve_info;
WARN_ONCE(ve_info->exit_reason != EXIT_REASON_EPT_VIOLATION,
"Unexpected #VE on VM-Exit reason 0x%x", ve_info->exit_reason);
kvm_mmu_print_sptes(vcpu, ve_info->guest_physical_address, "#VE");
struct vmx_ve_information *ve_info = vmx->ve_info;
ve_info_pa == __pa(ve_info) ? "" : "(corrupted!)");
ve_info->exit_reason, ve_info->delivery,
ve_info->exit_qualification,
ve_info->guest_linear_address,
ve_info->guest_physical_address, ve_info->eptp_index);
free_page((unsigned long)vmx->ve_info);
BUILD_BUG_ON(sizeof(*vmx->ve_info) > PAGE_SIZE);
vmx->ve_info = page_to_virt(page);
struct vmx_ve_information *ve_info;