Lines Matching defs:vmexit

899 	VMM_CTR3(vmx->vm, vcpu, "%s %s vmexit at 0x%0lx",
909 VMM_CTR1(vmx->vm, vcpu, "astpending vmexit at 0x%0lx", rip);
967 vm_exit_update_rip(struct vm_exit *vmexit)
971 error = vmwrite(VMCS_GUEST_RIP, vmexit->rip + vmexit->inst_length);
1349 vmx_exit_process(struct vmx *vmx, int vcpu, struct vm_exit *vmexit)
1360 qual = vmexit->u.vmx.exit_qualification;
1361 reason = vmexit->u.vmx.exit_reason;
1362 vmexit->exitcode = VM_EXITCODE_BOGUS;
1388 vmwrite(VMCS_ENTRY_INST_LENGTH, vmexit->inst_length);
1404 vmexit->exitcode = VM_EXITCODE_RDMSR;
1405 vmexit->u.msr.code = ecx;
1417 vmexit->exitcode = VM_EXITCODE_WRMSR;
1418 vmexit->u.msr.code = ecx;
1419 vmexit->u.msr.wval = (uint64_t)edx << 32 | eax;
1425 vmexit->exitcode = VM_EXITCODE_HLT;
1429 vmexit->exitcode = VM_EXITCODE_MTRAP;
1433 vmexit->exitcode = VM_EXITCODE_PAUSE;
1465 vmexit->exitcode = VM_EXITCODE_INOUT;
1466 vmexit->u.inout.bytes = (qual & 0x7) + 1;
1467 vmexit->u.inout.in = (qual & 0x8) ? 1 : 0;
1468 vmexit->u.inout.string = (qual & 0x10) ? 1 : 0;
1469 vmexit->u.inout.rep = (qual & 0x20) ? 1 : 0;
1470 vmexit->u.inout.port = (uint16_t)(qual >> 16);
1471 vmexit->u.inout.eax = (uint32_t)(vmxctx->guest_rax);
1486 vmexit->exitcode = VM_EXITCODE_PAGING;
1487 vmexit->u.paging.gpa = gpa;
1488 vmexit->u.paging.fault_type = ept_fault_type(qual);
1489 vmexit->u.paging.protection = ept_protection(qual);
1491 vmexit->exitcode = VM_EXITCODE_INST_EMUL;
1492 vmexit->u.inst_emul.gpa = gpa;
1493 vmexit->u.inst_emul.gla = vmcs_gla();
1494 vmexit->u.inst_emul.cr3 = vmcs_guest_cr3();
1511 * guest rip in the VMCS and in 'vmexit'.
1513 vm_exit_update_rip(vmexit);
1514 vmexit->rip += vmexit->inst_length;
1515 vmexit->inst_length = 0;
1517 if (vmexit->exitcode == VM_EXITCODE_BOGUS) {
1522 vmexit->exitcode = VM_EXITCODE_VMX;
1523 vmexit->u.vmx.error = 0;
1542 struct vm_exit *vmexit;
1550 vmexit = vm_exitinfo(vmx->vm, vcpu);
1630 vmexit->rip = rip = vmcs_guest_rip();
1631 vmexit->inst_length = vmexit_instruction_length();
1632 vmexit->u.vmx.exit_reason = exit_reason = vmcs_exit_reason();
1633 vmexit->u.vmx.exit_qualification = vmcs_exit_qualification();
1637 vmexit->inst_length = 0;
1638 vmexit->exitcode = VM_EXITCODE_BOGUS;
1644 handled = vmx_exit_process(vmx, vcpu, vmexit);
1653 if ((handled && vmexit->exitcode != VM_EXITCODE_BOGUS) ||
1654 (!handled && vmexit->exitcode == VM_EXITCODE_BOGUS)) {
1656 handled, vmexit->exitcode);
1662 VMM_CTR1(vmx->vm, vcpu, "goto userland: exitcode %d",vmexit->exitcode);
1676 vmexit->exitcode = VM_EXITCODE_VMX;
1677 vmexit->u.vmx.exit_reason = (uint32_t)-1;
1678 vmexit->u.vmx.exit_qualification = (uint32_t)-1;
1679 vmexit->u.vmx.error = vie;