zx_vcpu_enter

摘要

输入 vCPU,使其继续执行。

声明

#include <zircon/syscalls.h>
#include <zircon/syscalls/port.h>

zx_status_t zx_vcpu_enter(zx_handle_t handle, zx_port_packet_t* packet);

说明

zx_vcpu_enter() 开始或继续执行 handle,并阻止,直到 已暂停执行。执行暂停时,packet 会填充原因 暂停时间。处理原因后,可通过调用 zx_vcpu_enter()

如果 zx_vcpu_enter()zx_vcpu_kick() 而返回 ZX_ERR_CANCELED 通过 handle 调用,可以通过再次调用 zx_vcpu_enter() 来恢复执行。

必须在创建 handle 的同一线程上调用 zx_vcpu_enter()

权限

handle 的类型必须为 ZX_OBJ_TYPE_VCPU 且包含 ZX_RIGHT_EXECUTE

返回值

如果成功,zx_vcpu_enter() 会返回 ZX_OK。如果失败,错误值为 返回。

错误

ZX_ERR_ACCESS_DENIED 句柄没有 ZX_RIGHT_EXECUTE 权限。

ZX_ERR_BAD_HANDLE handle 是无效的句柄。

ZX_ERR_BAD_STATE handle 处于错误状态,无法执行。

由于 zx_vcpu_kick(),已取消 handleZX_ERR_CANCELED 执行 在 handle 上调用的方法。

ZX_ERR_INTERNAL执行 handle 时出错。

ZX_ERR_INVALID_ARGS packet 是无效的指针。

ZX_ERR_NOT_SUPPORTED 发生错误 执行 handle

ZX_ERR_WRONG_TYPE handle 不是 vCPU 的句柄。

另请参阅