摘要
为 VMO 添加执行权限。
声明
#include <zircon/syscalls.h>
zx_status_t zx_vmo_replace_as_executable(zx_handle_t handle,
zx_handle_t vmex,
zx_handle_t* out);
说明
zx_vmo_replace_as_executable()
创建 handle 的替换,引用
同一个底层虚拟内存对象 (VMO),
添加正确的 ZX_RIGHT_EXECUTE
。
handle 始终无效。
权限
handle 的类型必须为 ZX_OBJ_TYPE_VMO
。
vmex 必须具有基本资源种类 ZX_RSRC_KIND_SYSTEM
ZX_RSRC_SYSTEM_VMEX_BASE
。
返回值
如果成功,zx_vmo_replace_as_executable()
会返回 ZX_OK
。在活动中
则会返回负的错误值。
错误
ZX_ERR_BAD_HANDLE
handle 不是有效的虚拟机对象句柄,或者
vmex 不是有效的 ZX_RSRC_KIND_SYSTEM
资源句柄
ZX_RSRC_SYSTEM_VMEX_BASE
。
ZX_ERR_NO_MEMORY
因内存不足而失败。
用户空间没有好办法处理这种(不太可能)错误。
在将来的版本中,此错误不会再发生。