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.