Lines Matching refs:vmexit

562 svm_handle_inout(struct svm_softc *svm_sc, int vcpu, struct vm_exit *vmexit)  in svm_handle_inout()  argument
573 inout = &vmexit->u.inout; in svm_handle_inout()
604 vmexit->exitcode = VM_EXITCODE_INST_EMUL; in svm_handle_inout()
605 bzero(&vmexit->u.inst_emul, in svm_handle_inout()
606 sizeof (vmexit->u.inst_emul)); in svm_handle_inout()
634 vmexit->exitcode = VM_EXITCODE_INOUT; in svm_handle_inout()
635 vie_init_inout(vie, inout, vmexit->inst_length, &paging); in svm_handle_inout()
638 vmexit->inst_length = 0; in svm_handle_inout()
674 svm_handle_mmio_emul(struct svm_softc *svm_sc, int vcpu, struct vm_exit *vmexit, in svm_handle_mmio_emul() argument
688 vmexit->exitcode = VM_EXITCODE_MMIO_EMUL; in svm_handle_mmio_emul()
689 vmexit->u.mmio_emul.gpa = gpa; in svm_handle_mmio_emul()
690 vmexit->u.mmio_emul.gla = VIE_INVALID_GLA; in svm_handle_mmio_emul()
696 vmexit->u.mmio_emul.cs_base = seg->base; in svm_handle_mmio_emul()
697 vmexit->u.mmio_emul.cs_d = 0; in svm_handle_mmio_emul()
702 vmexit->u.mmio_emul.cs_base = seg->base; in svm_handle_mmio_emul()
707 vmexit->u.mmio_emul.cs_d = (seg->attrib & VMCB_CS_ATTRIB_D) ? in svm_handle_mmio_emul()
711 vmexit->u.mmio_emul.cs_base = 0; in svm_handle_mmio_emul()
712 vmexit->u.mmio_emul.cs_d = 0; in svm_handle_mmio_emul()
871 svm_inst_emul_other(struct svm_softc *svm_sc, int vcpu, struct vm_exit *vmexit) in svm_inst_emul_other() argument
877 vmexit->exitcode = VM_EXITCODE_INST_EMUL; in svm_inst_emul_other()
878 bzero(&vmexit->u.inst_emul, sizeof (vmexit->u.inst_emul)); in svm_inst_emul_other()
884 vmexit->inst_length = 0; in svm_inst_emul_other()
1192 svm_handle_msr(struct svm_softc *svm_sc, int vcpu, struct vm_exit *vmexit, in svm_handle_msr() argument
1242 vmexit->exitcode = is_wrmsr ? in svm_handle_msr()
1244 vmexit->u.msr.code = ecx; in svm_handle_msr()
1245 vmexit->u.msr.wval = val; in svm_handle_msr()
1295 svm_vmexit(struct svm_softc *svm_sc, int vcpu, struct vm_exit *vmexit) in svm_vmexit() argument
1314 vmexit->exitcode = VM_EXITCODE_BOGUS; in svm_vmexit()
1315 vmexit->rip = state->rip; in svm_vmexit()
1316 vmexit->inst_length = nrip_valid(code) ? ctrl->nrip - state->rip : 0; in svm_vmexit()
1326 vm_exit_svm(vmexit, code, info1, info2); in svm_vmexit()
1333 KASSERT(vmexit->inst_length >= 0 && vmexit->inst_length <= 15, in svm_vmexit()
1335 vmexit->inst_length, code, info1, info2)); in svm_vmexit()
1354 svm_inst_emul_other(svm_sc, vcpu, vmexit); in svm_vmexit()
1373 svm_inst_emul_other(svm_sc, vcpu, vmexit); in svm_vmexit()
1380 vmexit->inst_length = 0; in svm_vmexit()
1446 vmexit->inst_length = 0; in svm_vmexit()
1452 VERIFY0(vmexit->inst_length); in svm_vmexit()
1463 handled = svm_handle_msr(svm_sc, vcpu, vmexit, info1 != 0); in svm_vmexit()
1470 handled = svm_handle_inout(svm_sc, vcpu, vmexit); in svm_vmexit()
1510 vmexit->exitcode = VM_EXITCODE_HLT; in svm_vmexit()
1511 vmexit->u.hlt.rflags = state->rflags; in svm_vmexit()
1514 vmexit->exitcode = VM_EXITCODE_PAUSE; in svm_vmexit()
1522 vmexit->exitcode = VM_EXITCODE_PAGING; in svm_vmexit()
1523 vmexit->u.paging.gpa = info2; in svm_vmexit()
1524 vmexit->u.paging.fault_type = npf_fault_type(info1); in svm_vmexit()
1527 svm_handle_mmio_emul(svm_sc, vcpu, vmexit, info2); in svm_vmexit()
1532 vmexit->exitcode = VM_EXITCODE_MONITOR; in svm_vmexit()
1535 vmexit->exitcode = VM_EXITCODE_MWAIT; in svm_vmexit()
1542 DTRACE_PROBE3(vmm__vexit, int, vcpu, uint64_t, vmexit->rip, uint32_t, in svm_vmexit()
1546 vmexit->rip += vmexit->inst_length; in svm_vmexit()
1547 vmexit->inst_length = 0; in svm_vmexit()
1548 state->rip = vmexit->rip; in svm_vmexit()
1550 if (vmexit->exitcode == VM_EXITCODE_BOGUS) { in svm_vmexit()
1555 vm_exit_svm(vmexit, code, info1, info2); in svm_vmexit()
1894 struct vm_exit *vmexit; in svm_vmrun() local
1907 vmexit = vm_exitinfo(vm, vcpu); in svm_vmrun()
2049 handled = svm_vmexit(svm_sc, vcpu, vmexit); in svm_vmrun()