class AutoVmcs

Defined at line 214 of file ../../zircon/kernel/arch/x86/hypervisor/vcpu_priv.h

A guard-like object that loads a VMCS within a given scope.

Public Methods

void AutoVmcs (paddr_t vmcs_address_, bool clear)

Constructing an AutoVmcs disables interrupts, disables preemption, and

marks the calling thread as not being allowed to block (in order to catch

programming errors). Destroying or |Invalidate|ing restores those previous

states.

Defined at line 563 of file ../../zircon/kernel/arch/x86/hypervisor/vcpu.cc

void ~AutoVmcs ()

Defined at line 574 of file ../../zircon/kernel/arch/x86/hypervisor/vcpu.cc

void Invalidate ()

Defined at line 583 of file ../../zircon/kernel/arch/x86/hypervisor/vcpu.cc

void InterruptWindowExiting (bool enable)

Defined at line 591 of file ../../zircon/kernel/arch/x86/hypervisor/vcpu.cc

void IssueInterrupt (uint32_t vector)

Defined at line 602 of file ../../zircon/kernel/arch/x86/hypervisor/vcpu.cc

uint16_t Read (VmcsField16 field)

Defined at line 624 of file ../../zircon/kernel/arch/x86/hypervisor/vcpu.cc

uint32_t Read (VmcsField32 field)

Defined at line 629 of file ../../zircon/kernel/arch/x86/hypervisor/vcpu.cc

uint64_t Read (VmcsField64 field)

Defined at line 634 of file ../../zircon/kernel/arch/x86/hypervisor/vcpu.cc

uint64_t Read (VmcsFieldXX field)

Defined at line 639 of file ../../zircon/kernel/arch/x86/hypervisor/vcpu.cc

void Write (VmcsField16 field, uint16_t val)

Defined at line 644 of file ../../zircon/kernel/arch/x86/hypervisor/vcpu.cc

void Write (VmcsField32 field, uint32_t val)

Defined at line 649 of file ../../zircon/kernel/arch/x86/hypervisor/vcpu.cc

void Write (VmcsField64 field, uint64_t val)

Defined at line 654 of file ../../zircon/kernel/arch/x86/hypervisor/vcpu.cc

void Write (VmcsFieldXX field, uint64_t val)

Defined at line 659 of file ../../zircon/kernel/arch/x86/hypervisor/vcpu.cc

zx::result<> SetControl (VmcsField32 controls, uint64_t true_msr, uint64_t old_msr, uint32_t set, uint32_t clear)

Defined at line 664 of file ../../zircon/kernel/arch/x86/hypervisor/vcpu.cc