Summary
Destroy a virtual memory address region.
Declaration
#include <zircon/syscalls.h>
zx_status_t zx_vmar_destroy(zx_handle_t handle);
Description
zx_vmar_destroy()
unmaps all mappings within the given region, and destroys
all sub-regions of the region. Note that this operation is logically recursive.
This operation does not close handle. Any outstanding handles to this VMAR will remain valid handles, but all VMAR operations on them will fail.
The root VMAR, as obtained by zx_process_create()
, cannot be destroyed.
Rights
TODO(https://fxbug.dev/42107318)
Return value
zx_vmar_destroy()
returns ZX_OK
on success.
Errors
ZX_ERR_ACCESS_DENIED
handle does not have ZX_RIGHT_OP_CHILDREN
.
ZX_ERR_BAD_HANDLE
handle is not a valid handle.
ZX_ERR_WRONG_TYPE
handle is not a VMAR handle.
ZX_ERR_BAD_STATE
This region is already destroyed.
ZX_ERR_NOT_SUPPORTED
handle is a root VMAR.