Create a guest.
#include <zircon/syscalls.h> zx_status_t zx_guest_create(zx_handle_t resource, uint32_t options, zx_handle_t* guest_handle, zx_handle_t* vmar_handle);
zx_guest_create() creates a guest, which is a virtual machine that can be run
within the hypervisor, with vmar_handle used to represent the physical address
space of the guest.
To create a guest, a resource of ZX_RSRC_KIND_HYPERVISOR must be supplied.
Additionally, a VMO should be mapped into vmar_handle to provide a guest with physical memory.
The following rights will be set on the handle guest_handle by default:
ZX_RIGHT_TRANSFER — guest_handle may be transferred over a channel.
ZX_RIGHT_DUPLICATE — guest_handle may be duplicated.
ZX_RIGHT_WRITE — A trap to be may be set using
ZX_RIGHT_MANAGE_PROCESS — A VCPU may be created using
zx_vmo_create() for the set of rights applied to vmar_handle.
resource must have resource kind ZX_RSRC_KIND_HYPERVISOR.
zx_guest_create() returns ZX_OK on success. On failure, an error value is
ZX_ERR_ACCESS_DENIED resource is not of ZX_RSRC_KIND_HYPERVISOR.
ZX_ERR_INVALID_ARGS guest_handle or vmar_handle is an invalid pointer, or options is nonzero.
ZX_ERR_NO_MEMORY Failure due to lack of memory. There is no good way for userspace to handle this (unlikely) error. In a future build this error will no longer occur.
ZX_ERR_WRONG_TYPE resource is not a handle to a resource.
Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 4.0 License, and code samples are licensed under the Apache 2.0 License. For details, see the Google Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.
Last updated 2019-11-21.