class Guest
Defined at line 28 of file ../../src/virtualization/bin/vmm/guest.h
Public Members
static const size_t kMaxVcpus
Public Methods
zx::result<ktl::unique_ptr<Guest>> Create ()
static
Defined at line 40 of file ../../zircon/kernel/arch/x86/hypervisor/guest.cc
const PhysMem & phys_mem ()
Defined at line 45 of file ../../src/virtualization/bin/vmm/guest.h
const zx::guest & object ()
Defined at line 46 of file ../../src/virtualization/bin/vmm/guest.h
void Guest (const Guest & )
Defined at line 47 of file ../../zircon/kernel/arch/x86/include/arch/hypervisor.h
void Guest (Guest && )
Defined at line 48 of file ../../zircon/kernel/arch/x86/include/arch/hypervisor.h
Guest & operator= (const Guest & )
Defined at line 49 of file ../../zircon/kernel/arch/x86/include/arch/hypervisor.h
Guest & operator= (Guest && )
Defined at line 50 of file ../../zircon/kernel/arch/x86/include/arch/hypervisor.h
hypervisor::GuestPhysicalAspace & PhysicalAspace ()
Defined at line 57 of file ../../zircon/kernel/arch/x86/include/arch/hypervisor.h
fbl::RefPtr<VmAddressRegion> RootVmar ()
Defined at line 58 of file ../../zircon/kernel/arch/x86/include/arch/hypervisor.h
hypervisor::TrapMap & Traps ()
Defined at line 59 of file ../../zircon/kernel/arch/x86/include/arch/hypervisor.h
zx_paddr_t MsrBitmapsAddress ()
Defined at line 60 of file ../../zircon/kernel/arch/x86/include/arch/hypervisor.h
zx::result<uint16_t> TryAllocVpid ()
Defined at line 62 of file ../../zircon/kernel/arch/x86/include/arch/hypervisor.h
zx::result<> FreeVpid (uint16_t vpid)
Defined at line 63 of file ../../zircon/kernel/arch/x86/include/arch/hypervisor.h
const IoMappingList & mappings ()
Defined at line 87 of file ../../src/virtualization/bin/vmm/guest.h
const VcpuArray & vcpus ()
Defined at line 88 of file ../../src/virtualization/bin/vmm/guest.h
const std::vector<GuestMemoryRegion> & memory_regions ()
Defined at line 89 of file ../../src/virtualization/bin/vmm/guest.h
uint64_t mem_pluggable_region_addr ()
Defined at line 91 of file ../../src/virtualization/bin/vmm/guest.h
zx_status_t Init (uint64_t guest_memory, uint64_t pluggable_region_size, uint64_t pluggable_region_alignment)
Defined at line 244 of file ../../src/virtualization/bin/vmm/guest.cc
zx_status_t CreateMapping (TrapType type, uint64_t addr, size_t size, uint64_t offset, IoHandler * handler, async_dispatcher_t * dispatcher)
Setup a trap to delegate accesses to an IO region to |handler|.
Defined at line 350 of file ../../src/virtualization/bin/vmm/guest.cc
void ~Guest ()
Defined at line 93 of file ../../zircon/kernel/arch/x86/hypervisor/guest.cc
zx_status_t CreateSubVmar (uint64_t addr, size_t size, zx::vmar * vmar)
Creates a VMAR for a specific region of guest memory.
Defined at line 362 of file ../../src/virtualization/bin/vmm/guest.cc
zx::result<> SetTrap (uint32_t kind, zx_vaddr_t addr, size_t len, fbl::RefPtr<PortDispatcher> port, uint64_t key)
Defined at line 95 of file ../../zircon/kernel/arch/x86/hypervisor/guest.cc
zx_status_t StartVcpu (uint64_t id, zx_gpaddr_t entry, zx_gpaddr_t boot_ptr)
Starts a VCPU. The first VCPU must have an |id| of 0.
Defined at line 368 of file ../../src/virtualization/bin/vmm/guest.cc
zx_status_t Interrupt (uint64_t mask, uint32_t vector)
Signals an interrupt to the VCPUs indicated by |mask|.
Defined at line 390 of file ../../src/virtualization/bin/vmm/guest.cc
void set_stop_callback (fit::function<void (fit::result< ::fuchsia::virtualization::GuestError>)> stop_callback)
Sets a stop callback that can be triggered by a VCPU to stop VMM execution.
Defined at line 409 of file ../../src/virtualization/bin/vmm/guest.cc
void Stop (fit::result< ::fuchsia::virtualization::GuestError> result)
Stop the VMM with the given error code.
Defined at line 414 of file ../../src/virtualization/bin/vmm/guest.cc
uint64_t GetPageAlignedGuestMemory (uint64_t guest_memory)
Returns zx_system_get_page_size aligned guest memory.
Defined at line 118 of file ../../src/virtualization/bin/vmm/guest.cc
bool PageAlignGuestMemoryRegion (GuestMemoryRegion & region)
Attempts to page align the start and end of a guest memory region. Returns false if the
resulting region is zero (or less) pages long.
Defined at line 133 of file ../../src/virtualization/bin/vmm/guest.cc
cpp20::span<const GuestMemoryRegion> GetDefaultRestrictionsForArchitecture ()
Returns a non-overlapping list of restricted memory regions, ordered by base address.
Defined at line 113 of file ../../src/virtualization/bin/vmm/guest.cc
bool GenerateGuestMemoryRegions (uint64_t guest_memory, cpp20::span<const GuestMemoryRegion> restrictions, std::vector<GuestMemoryRegion> * regions)
Generates guest memory regions with total size |guest_memory|, avoiding any device memory.
Defined at line 167 of file ../../src/virtualization/bin/vmm/guest.cc
bool FitPluggableRegionBase (cpp20::span<const GuestMemoryRegion> restrictions, uint64_t base, uint64_t size, uint64_t alignment, uint64_t * result_base)
Find the aligned base offset for the pluggable memory region avoiding restricted regions
Defined at line 229 of file ../../src/virtualization/bin/vmm/guest.cc