vmo_replace_as_executable - add execute rights to a vmo
#include <zircon/syscalls.h> zx_status_t zx_vmo_replace_as_executable(zx_handle_t vmo, zx_handle_t vmex, zx_handle_t* out);
vmo_replace_as_executable() creates a replacement for vmo, referring to the same underlying VM object, adding the right ZX_RIGHT_EXECUTE.
vmo is always invalidated.
vmex must be a valid ZX_RSRC_KIND_VMEX resource handle, or ZX_HANDLE_INVALID (to ease migration of old code).
TODO(SEC-42): Disallow ZX_HANDLE_INVALID.
vmo_replace_as_executable() returns ZX_OK on success. In the event of failure, a negative error value is returned.
ZX_ERR_BAD_HANDLE vmo isn‘t a valid VM object handle, or vmex isn’t a valid ZX_RSRC_KIND_VMEX resource handle.
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.