@@ -367,31 +367,23 @@ static int vcpu_vpid_free(struct vcpu_t *vcpu)
367367}
368368
369369static int (* handler_funcs [])(struct vcpu_t * vcpu , struct hax_tunnel * htun ) = {
370- exit_exc_nmi ,
371- exit_interrupt ,
372- exit_triple_fault ,
373- 0 , 0 , 0 , 0 ,
374- exit_interrupt_window , // Interrupt window
375- exit_interrupt_window , // NMI window
376- 0 ,
377- exit_cpuid ,
378- 0 ,
379- exit_hlt ,
380- 0 ,
381- exit_invlpg ,
382- 0 ,
383- exit_rdtsc ,
384- 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , // 17 ... 27
385- exit_cr_access ,
386- exit_dr_access ,
387- exit_io_access ,
388- exit_msr_read ,
389- exit_msr_write ,
390- exit_invalid_guest_state ,
391- 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , // 34 ... 47
392- exit_ept_violation ,
393- exit_ept_misconfiguration ,
394- 0 , 0 , 0 , 0 , 0 , 0 // 50 ... 55
370+ [VMX_EXIT_INT_EXCEPTION_NMI ] = exit_exc_nmi ,
371+ [VMX_EXIT_EXT_INTERRUPT ] = exit_interrupt ,
372+ [VMX_EXIT_TRIPLE_FAULT ] = exit_triple_fault ,
373+ [VMX_EXIT_PENDING_INTERRUPT ] = exit_interrupt_window ,
374+ [VMX_EXIT_PENDING_NMI ] = exit_interrupt_window ,
375+ [VMX_EXIT_CPUID ] = exit_cpuid ,
376+ [VMX_EXIT_HLT ] = exit_hlt ,
377+ [VMX_EXIT_INVLPG ] = exit_invlpg ,
378+ [VMX_EXIT_RDTSC ] = exit_rdtsc ,
379+ [VMX_EXIT_CR_ACCESS ] = exit_cr_access ,
380+ [VMX_EXIT_DR_ACCESS ] = exit_dr_access ,
381+ [VMX_EXIT_IO ] = exit_io_access ,
382+ [VMX_EXIT_MSR_READ ] = exit_msr_read ,
383+ [VMX_EXIT_MSR_WRITE ] = exit_msr_write ,
384+ [VMX_EXIT_FAILED_VMENTER_GS ] = exit_invalid_guest_state ,
385+ [VMX_EXIT_EPT_VIOLATION ] = exit_ept_violation ,
386+ [VMX_EXIT_EPT_MISCONFIG ] = exit_ept_misconfiguration ,
395387};
396388
397389static int nr_handlers = ARRAY_ELEMENTS (handler_funcs );
0 commit comments