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 561 of file ../../zircon/kernel/arch/x86/hypervisor/vcpu.cc

void ~AutoVmcs ()

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

void Invalidate ()

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

void InterruptWindowExiting (bool enable)

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

void IssueInterrupt (uint32_t vector)

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

uint16_t Read (VmcsField16 field)

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

uint32_t Read (VmcsField32 field)

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

uint64_t Read (VmcsField64 field)

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

uint64_t Read (VmcsFieldXX field)

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

void Write (VmcsField16 field, uint16_t val)

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

void Write (VmcsField32 field, uint32_t val)

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

void Write (VmcsField64 field, uint64_t val)

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

void Write (VmcsFieldXX field, uint64_t val)

Defined at line 657 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 662 of file ../../zircon/kernel/arch/x86/hypervisor/vcpu.cc