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() 會開始或繼續執行帳號代碼,並封鎖直到其執行為止 已暫停執行作業。在暫停執行時,packet 會填入原因 等待暫停處理原因後,如要繼續執行作業,請呼叫 zx_vcpu_enter()

如果 zx_vcpu_enter() 因為 zx_vcpu_kick() 而傳回 ZX_ERR_CANCELED 處理常式,如要恢復執行作業,請再次呼叫 zx_vcpu_enter()

必須在建立於建立帳號代碼的相同執行緒上呼叫 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 帳號代碼是無效的帳號代碼。

ZX_ERR_BAD_STATE 處理常式處於不良狀態,因此無法執行。

由於 zx_vcpu_kick(),系統已取消 ZX_ERR_CANCELED帳號代碼執行作業 在處理常式上呼叫的函式。

ZX_ERR_INTERNAL 執行處理常式時發生錯誤。

ZX_ERR_INVALID_ARGS「packet」是無效的指標。

ZX_ERR_NOT_SUPPORTED 發生不支援的作業 執行「處理常式」

ZX_ERR_WRONG_TYPE 處理常式不是 vCPU 的控制代碼。

另請參閱