Lines Matching refs:VmcsFieldXX

176 uint64_t AutoVmcs::Read(VmcsFieldXX field) const {
196 void AutoVmcs::Write(VmcsFieldXX field, uint64_t val) {
474 vmcs.Write(VmcsFieldXX::HOST_CR0, x86_get_cr0());
475 vmcs.Write(VmcsFieldXX::HOST_CR3, x86_get_cr3());
476 vmcs.Write(VmcsFieldXX::HOST_CR4, x86_get_cr4());
484 vmcs.Write(VmcsFieldXX::HOST_FS_BASE, read_msr(X86_MSR_IA32_FS_BASE));
485 vmcs.Write(VmcsFieldXX::HOST_GS_BASE, read_msr(X86_MSR_IA32_GS_BASE));
486 vmcs.Write(VmcsFieldXX::HOST_TR_BASE, reinterpret_cast<uint64_t>(&percpu->default_tss));
487 vmcs.Write(VmcsFieldXX::HOST_GDTR_BASE, reinterpret_cast<uint64_t>(gdt_get()));
488 vmcs.Write(VmcsFieldXX::HOST_IDTR_BASE, reinterpret_cast<uint64_t>(idt_get_readonly()));
489 vmcs.Write(VmcsFieldXX::HOST_IA32_SYSENTER_ESP, 0);
490 vmcs.Write(VmcsFieldXX::HOST_IA32_SYSENTER_EIP, 0);
492 vmcs.Write(VmcsFieldXX::HOST_RSP, reinterpret_cast<uint64_t>(vmx_state));
493 vmcs.Write(VmcsFieldXX::HOST_RIP, reinterpret_cast<uint64_t>(vmx_exit_entry));
506 vmcs.Write(VmcsFieldXX::GUEST_CR0, cr0);
509 vmcs.Write(VmcsFieldXX::CR0_GUEST_HOST_MASK, X86_CR0_NE);
510 vmcs.Write(VmcsFieldXX::CR0_READ_SHADOW, X86_CR0_NE);
520 vmcs.Write(VmcsFieldXX::GUEST_CR4, cr4);
524 vmcs.Write(VmcsFieldXX::CR4_GUEST_HOST_MASK, X86_CR4_VMXE);
525 vmcs.Write(VmcsFieldXX::CR4_READ_SHADOW, 0);
559 vmcs.Write(VmcsFieldXX::GUEST_CS_BASE, 0);
561 vmcs.Write(VmcsFieldXX::GUEST_RIP, entry);
564 vmcs.Write(VmcsFieldXX::GUEST_CS_BASE, entry);
566 vmcs.Write(VmcsFieldXX::GUEST_RIP, 0);
569 vmcs.Write(VmcsFieldXX::GUEST_TR_BASE, 0);
572 vmcs.Write(VmcsFieldXX::GUEST_DS_BASE, 0);
574 vmcs.Write(VmcsFieldXX::GUEST_SS_BASE, 0);
576 vmcs.Write(VmcsFieldXX::GUEST_ES_BASE, 0);
578 vmcs.Write(VmcsFieldXX::GUEST_FS_BASE, 0);
580 vmcs.Write(VmcsFieldXX::GUEST_GS_BASE, 0);
583 vmcs.Write(VmcsFieldXX::GUEST_GDTR_BASE, 0);
585 vmcs.Write(VmcsFieldXX::GUEST_IDTR_BASE, 0);
589 vmcs.Write(VmcsFieldXX::GUEST_RFLAGS, X86_FLAGS_RESERVED_ONES);
593 vmcs.Write(VmcsFieldXX::GUEST_PENDING_DEBUG_EXCEPTIONS, 0);
597 vmcs.Write(VmcsFieldXX::GUEST_IA32_SYSENTER_ESP, 0);
598 vmcs.Write(VmcsFieldXX::GUEST_IA32_SYSENTER_EIP, 0);
601 vmcs.Write(VmcsFieldXX::GUEST_RSP, 0);
602 vmcs.Write(VmcsFieldXX::GUEST_CR3, 0);
710 if (vector < X86_INT_PLATFORM_BASE || vmcs->Read(VmcsFieldXX::GUEST_RFLAGS) & X86_FLAGS_IF) {
751 ktrace_vcpu_exit(VCPU_FAILURE, vmcs.Read(VmcsFieldXX::GUEST_RIP));
814 state->rsp = vmcs.Read(VmcsFieldXX::GUEST_RSP);
815 state->rflags = vmcs.Read(VmcsFieldXX::GUEST_RFLAGS) & X86_FLAGS_USER;
832 vmcs.Write(VmcsFieldXX::GUEST_RSP, state->rsp);
834 const uint64_t rflags = vmcs.Read(VmcsFieldXX::GUEST_RFLAGS);
837 vmcs.Write(VmcsFieldXX::GUEST_RFLAGS, user_flags);