zx_vcpu_create

摘要

建立 vCPU。

宣告

#include <zircon/syscalls.h>

zx_status_t zx_vcpu_create(zx_handle_t guest,
                           uint32_t options,
                           zx_vaddr_t entry,
                           zx_handle_t* out);

說明

zx_vcpu_create() 會在訪客中建立 vCPU 以執行 虛擬機器每位訪客可以建立一或多個 vCPU, 因此 vCPU 數量不需要與 這類機制更為快速

entry 是指示指標,用來表示訪客實體中的位置 系統應會開始執行 vCPU 的記憶體

out 會繫結至建立該執行緒的執行緒,以及在該區塊上執行的所有系統呼叫 必須從相同的執行緒呼叫,但 zx_vcpu_interrupt()

執行緒中一次只能存在一個 vCPU。執行緒可以建立另一個 vCPU 先停用現有的帳戶

N.B.VCPU 是虛擬 CPU 的縮寫。

根據預設,帳號代碼將設定以下權限:

ZX_RIGHT_DUPLICATE - out 可能會重複。

ZX_RIGHT_TRANSFER - 傳出可透過管道轉移。

ZX_RIGHT_EXECUTE - out 可能恢復執行 (或已開始)

ZX_RIGHT_SIGNAL - out 可能中斷

ZX_RIGHT_READ - out 可能有狀態讀取

ZX_RIGHT_WRITE — 可能已寫入狀態

權限

guest 必須是 ZX_OBJ_TYPE_GUEST 類型,且包含 ZX_RIGHT_MANAGE_THREAD

傳回值

zx_vcpu_create() 會在成功時傳回 ZX_OK。失敗時,錯誤值為 。

錯誤

ZX_ERR_ACCESS_DENIED 訪客沒有ZX_RIGHT_MANAGE_THREAD 沒錯

ZX_ERR_BAD_HANDLE 訪客是無效的帳號代碼。

ZX_ERR_BAD_STATE 執行緒目前具有 vCPU。只能有一個 vCPU 避免在執行緒上運作

ZX_ERR_INVALID_ARGS args 包含無效引數,或 out 為 指標無效,或 options 為非零。

ZX_ERR_NO_MEMORY 因記憶體不足而失敗。 使用者空間無法妥善處理這種 (異常) 錯誤。 在日後的版本中不會再發生這個錯誤。

ZX_ERR_WRONG_TYPE 訪客不是訪客的控制代碼。

另請參閱