Turnstone Operating System
Loading...
Searching...
No Matches
hypervisor_vmexit.64.c File Reference

VMExit handler for 64-bit mode. More...

#include <hypervisor/hypervisor_vmcsops.h>
#include <hypervisor/hypervisor_vmxops.h>
#include <hypervisor/hypervisor_utils.h>
#include <hypervisor/hypervisor_macros.h>
#include <hypervisor/hypervisor_ept.h>
#include <hypervisor/hypervisor_ipc.h>
#include <hypervisor/hypervisor_vm.h>
#include <cpu.h>
#include <cpu/crx.h>
#include <cpu/interrupt.h>
#include <cpu/task.h>
#include <logging.h>
#include <list.h>
#include <apic.h>
#include <ports.h>
#include <strings.h>

Functions

 MODULE ("turnstone.hypervisor")
 
static uint64_t hypervisor_vmcs_external_interrupt_handler (vmcs_vmexit_info_t *vmexit_info)
 
static uint64_t hypervisor_vmcs_ept_misconfig_handler (vmcs_vmexit_info_t *vmexit_info)
 
static uint64_t hypervisor_vmcs_hlt_handler (vmcs_vmexit_info_t *vmexit_info)
 
static uint64_t hypervisor_vmcs_pause_handler (vmcs_vmexit_info_t *vmexit_info)
 
static void hypervisor_vmcs_io_fast_string_printf_io (vmcs_vmexit_info_t *vmexit_info)
 
static uint64_t hypervisor_vmcs_io_instruction_handler (vmcs_vmexit_info_t *vmexit_info)
 
static void hypervisor_vapic_set_irr (hypervisor_vm_t *vm, uint32_t vector, boolean_t clear)
 
static void hypervisor_vapic_set_isr (hypervisor_vm_t *vm, uint32_t vector, boolean_t clear)
 
static void hypervisor_vmcs_find_next_x2apic_interrupt (vmcs_vmexit_info_t *vmexit_info, hypervisor_vm_t *vm, boolean_t iterate, boolean_t for_eoi)
 
static uint64_t hypervisor_vmcs_interrupt_window_handler (vmcs_vmexit_info_t *vmexit_info)
 
static uint64_t hypervisor_vmcs_rdmsr_handler (vmcs_vmexit_info_t *vmexit_info)
 
static uint64_t hypervisor_vmcs_wrmsr_handler (vmcs_vmexit_info_t *vmexit_info)
 
static uint64_t hypervisor_vmcs_control_register_access_handler (vmcs_vmexit_info_t *vmexit_info)
 
static uint64_t hypervisor_vmcs_exception_or_nmi_handler (vmcs_vmexit_info_t *exit_info)
 
uint64_t hypervisor_vmcs_exit_handler_entry (uint64_t rsp)
 
int8_t hypervisor_vmcs_prepare_vmexit_handlers (void)
 

Variables

vmexit_handler_t vmexit_handlers [VMX_VMEXIT_REASON_COUNT] = {0}
 

Detailed Description

VMExit handler for 64-bit mode.

This work is licensed under TURNSTONE OS Public License. Please read and understand latest version of Licence.