Changeset View
Changeset View
Standalone View
Standalone View
head/sys/amd64/vmm/intel/vmx.c
Show First 20 Lines • Show All 2,740 Lines • ▼ Show 20 Lines | do { | ||||
if (vcpu_should_yield(vm, vcpu)) { | if (vcpu_should_yield(vm, vcpu)) { | ||||
enable_intr(); | enable_intr(); | ||||
vm_exit_astpending(vmx->vm, vcpu, rip); | vm_exit_astpending(vmx->vm, vcpu, rip); | ||||
vmx_astpending_trace(vmx, vcpu, rip); | vmx_astpending_trace(vmx, vcpu, rip); | ||||
handled = HANDLED; | handled = HANDLED; | ||||
break; | break; | ||||
} | } | ||||
if (vcpu_debugged(vm, vcpu)) { | |||||
enable_intr(); | |||||
vm_exit_debug(vmx->vm, vcpu, rip); | |||||
break; | |||||
} | |||||
vmx_run_trace(vmx, vcpu); | vmx_run_trace(vmx, vcpu); | ||||
vmx_dr_enter_guest(vmxctx); | vmx_dr_enter_guest(vmxctx); | ||||
rc = vmx_enter_guest(vmxctx, vmx, launched); | rc = vmx_enter_guest(vmxctx, vmx, launched); | ||||
vmx_dr_leave_guest(vmxctx); | vmx_dr_leave_guest(vmxctx); | ||||
/* Collect some information for VM exit processing */ | /* Collect some information for VM exit processing */ | ||||
vmexit->rip = rip = vmcs_guest_rip(); | vmexit->rip = rip = vmcs_guest_rip(); | ||||
vmexit->inst_length = vmexit_instruction_length(); | vmexit->inst_length = vmexit_instruction_length(); | ||||
▲ Show 20 Lines • Show All 797 Lines • Show Last 20 Lines |