| Turnstone Operating System
    | 
VMExit handler for 64-bit mode. More...
#include <hypervisor/hypervisor_vmx_vmcs_ops.h>#include <hypervisor/hypervisor_vmx_ops.h>#include <hypervisor/hypervisor_utils.h>#include <hypervisor/hypervisor_vmx_macros.h>#include <hypervisor/hypervisor_ept.h>#include <hypervisor/hypervisor_ipc.h>#include <hypervisor/hypervisor_vm.h>#include <hypervisor/hypervisor_guestlib.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>| Typedefs | |
| typedef uint64_t(* | vmx_vmexit_handler_t) (vmx_vmcs_vmexit_info_t *vmexit_info) | 
| Functions | |
| MODULE ("turnstone.hypervisor.vmx") | |
| uint64_t | hypervisor_vmx_vmcs_exit_handler_entry (uint64_t rsp) | 
| void | hypervisor_vmx_vmcs_exit_handler_error (int64_t error_code) | 
| static void | hypervisor_vmx_exit_handler (void) | 
| static void | hypervisor_vmx_goto_next_instruction (vmx_vmcs_vmexit_info_t *vmexit_info) | 
| static uint64_t | hypervisor_vmcs_external_interrupt_handler (vmx_vmcs_vmexit_info_t *vmexit_info) | 
| static uint64_t | hypervisor_vmcs_ept_misconfig_handler (vmx_vmcs_vmexit_info_t *vmexit_info) | 
| static uint64_t | hypervisor_vmcs_hlt_handler (vmx_vmcs_vmexit_info_t *vmexit_info) | 
| static uint64_t | hypervisor_vmcs_pause_handler (vmx_vmcs_vmexit_info_t *vmexit_info) | 
| static void | hypervisor_vmcs_io_fast_string_printf_io (vmx_vmcs_vmexit_info_t *vmexit_info) | 
| static uint64_t | hypervisor_vmcs_io_instruction_handler (vmx_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 (vmx_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 (vmx_vmcs_vmexit_info_t *vmexit_info) | 
| static uint64_t | hypervisor_vmcs_rdmsr_handler (vmx_vmcs_vmexit_info_t *vmexit_info) | 
| static uint64_t | hypervisor_vmcs_wrmsr_handler (vmx_vmcs_vmexit_info_t *vmexit_info) | 
| static uint64_t | hypervisor_vmcs_control_register_access_handler (vmx_vmcs_vmexit_info_t *vmexit_info) | 
| static uint64_t | hypervisor_vmcs_exception_or_nmi_handler (vmx_vmcs_vmexit_info_t *exit_info) | 
| static int8_t | hypervisor_vmx_dump_vmcs (vmx_vmcs_vmexit_info_t vmexit_info) | 
| static uint64_t | hypervisor_vmcs_vmcalls_handler (vmx_vmcs_vmexit_info_t *vmexit_info) | 
| int8_t | hypervisor_vmx_vmcs_prepare_vmexit_handlers (void) | 
| Variables | |
| static vmx_vmexit_handler_t | vmexit_handlers [VMX_VMEXIT_REASON_COUNT] = {0} | 
VMExit handler for 64-bit mode.
This work is licensed under TURNSTONE OS Public License. Please read and understand latest version of Licence.