X-Git-Url: http://v3vee.org/palacios/gitweb/gitweb.cgi?p=palacios.git;a=blobdiff_plain;f=palacios%2Finclude%2Fpalacios%2Fvmx_handler.h;h=e7871c0ab10cddce9d3ae9e924de106683f56f8e;hp=cd2f7e510d1c77fac3ff407e4a1fbe20c41f9373;hb=a24a1722328a575cec8dd8578902fd0f68c72c1c;hpb=cc8a46c3523fd92c97fae8ba2433119a91a86441 diff --git a/palacios/include/palacios/vmx_handler.h b/palacios/include/palacios/vmx_handler.h index cd2f7e5..e7871c0 100644 --- a/palacios/include/palacios/vmx_handler.h +++ b/palacios/include/palacios/vmx_handler.h @@ -27,47 +27,60 @@ /******************************************/ /* VMX Intercept Exit Codes */ /******************************************/ -#define VMEXIT_INFO_EXCEPTION_OR_NMI 0 -#define VMEXIT_EXTERNAL_INTR 1 -#define VMEXIT_TRIPLE_FAULT 2 -#define VMEXIT_INIT_SIGNAL 3 -#define VMEXIT_STARTUP_IPI 4 -#define VMEXIT_IO_SMI 5 -#define VMEXIT_OTHER_SMI 6 -#define VMEXIT_INTR_WINDOW 7 -#define VMEXIT_NMI_WINDOW 8 -#define VMEXIT_TASK_SWITCH 9 -#define VMEXIT_CPUID 10 -#define VMEXIT_HLT 12 -#define VMEXIT_INVD 13 -#define VMEXIT_INVLPG 14 -#define VMEXIT_RDPMC 15 -#define VMEXIT_RDTSC 16 -#define VMEXIT_RSM 17 -#define VMEXIT_VMCALL 18 -#define VMEXIT_VMCLEAR 19 -#define VMEXIT_VMLAUNCH 20 -#define VMEXIT_VMPTRLD 21 -#define VMEXIT_VMPTRST 22 -#define VMEXIT_VMREAD 23 -#define VMEXIT_VMRESUME 24 -#define VMEXIT_VMWRITE 25 -#define VMEXIT_VMXOFF 26 -#define VMEXIT_VMXON 27 -#define VMEXIT_CR_REG_ACCESSES 28 -#define VMEXIT_MOV_DR 29 -#define VMEXIT_IO_INSTR 30 -#define VMEXIT_RDMSR 31 -#define VMEXIT_WRMSR 32 -#define VMEXIT_ENTRY_FAIL_INVALID_GUEST_STATE 33 -#define VMEXIT_ENTRY_FAIL_MSR_LOAD 34 -#define VMEXIT_MWAIT 36 -#define VMEXIT_MONITOR 39 -#define VMEXIT_PAUSE 40 -#define VMEXIT_ENTRY_FAILURE_MACHINE_CHECK 41 -#define VMEXIT_TPR_BELOW_THRESHOLD 43 +typedef enum { + VMEXIT_INFO_EXCEPTION_OR_NMI = 0, + VMEXIT_EXTERNAL_INTR = 1, + VMEXIT_TRIPLE_FAULT = 2, + VMEXIT_INIT_SIGNAL = 3, + VMEXIT_STARTUP_IPI = 4, + VMEXIT_IO_SMI = 5, + VMEXIT_OTHER_SMI = 6, + VMEXIT_INTR_WINDOW = 7, + VMEXIT_NMI_WINDOW = 8, + VMEXIT_TASK_SWITCH = 9, + VMEXIT_CPUID = 10, + VMEXIT_HLT = 12, + VMEXIT_INVD = 13, + VMEXIT_INVLPG = 14, + VMEXIT_RDPMC = 15, + VMEXIT_RDTSC = 16, + VMEXIT_RSM = 17, + VMEXIT_VMCALL = 18, + VMEXIT_VMCLEAR = 19, + VMEXIT_VMLAUNCH = 20, + VMEXIT_VMPTRLD = 21, + VMEXIT_VMPTRST = 22, + VMEXIT_VMREAD = 23, + VMEXIT_VMRESUME = 24, + VMEXIT_VMWRITE = 25, + VMEXIT_VMXOFF = 26, + VMEXIT_VMXON = 27, + VMEXIT_CR_REG_ACCESSES = 28, + VMEXIT_MOV_DR = 29, + VMEXIT_IO_INSTR = 30, + VMEXIT_RDMSR = 31, + VMEXIT_WRMSR = 32, + VMEXIT_ENTRY_FAIL_INVALID_GUEST_STATE = 33, + VMEXIT_ENTRY_FAIL_MSR_LOAD = 34, + VMEXIT_MWAIT = 36, + VMEXIT_MONITOR = 39, + VMEXIT_PAUSE = 40, + VMEXIT_ENTRY_FAILURE_MACHINE_CHECK = 41, + VMEXIT_TPR_BELOW_THRESHOLD = 43, + VMEXIT_APIC = 44, + VMEXIT_GDTR_IDTR = 46, + VMEXIT_LDTR_TR = 47, + VMEXIT_EPT_VIOLATION = 48, + VMEXIT_EPT_CONFIG = 49, + VMEXIT_INVEPT = 50, + VMEXIT_RDTSCP = 51, + VMEXIT_EXPIRED_PREEMPT_TIMER = 52, + VMEXIT_INVVPID = 53, + VMEXIT_WBINVD = 54, + VMEXIT_XSETBV = 55 +} vmx_exit_t; -int v3_handle_vmx_exit(struct guest_info * info); +int v3_handle_vmx_exit(struct v3_gprs * gprs); #endif