摘要
傳回一個 ZBI,其中包含啟動此系統所需的 ZBI 項目。
宣告
#include <zircon/syscalls.h>
zx_status_t zx_system_mexec_payload_get(zx_handle_t resource,
void* buffer,
size_t buffer_size);
說明
zx_system_mexec_payload_get()
會接受資源控制代碼和
對應至輸出緩衝區的指標/長度。緩衝區的頭是
使用無法啟動的 ZBI 覆寫,其中包含一系列應
附加至 ZBI,然後再傳遞至 zx_system_mexec()
;這個
緩衝區的尾會維持不變
resource 類型必須是 ZX_RSRC_KIND_SYSTEM
類型 (有底數)
ZX_RSRC_SYSTEM_MEXEC_BASE
。
buffer 和 buffer_size 指向長度不超過 16KiB 的緩衝區。
如要使用 zx_system_mexec_payload_get()
函式,您必須指定
kernel.enable-debugging-syscalls=true
執行。否則
這個函式會傳回 ZX_ERR_NOT_SUPPORTED
。
權限
resource 必須包含有基準的 ZX_RSRC_KIND_SYSTEM
種類資源
ZX_RSRC_SYSTEM_MEXEC_BASE
。
傳回值
zx_system_mexec_payload_get()
會在成功時傳回 ZX_OK
。
ZX_ERR_NOT_SUPPORTED
kernel.enable-debugging-syscalls
未設為 true
執行指令碼
ZX_ERR_BUFFER_TOO_SMALL
如果提供的緩衝區太小,無法用於 ZBI。
在這種情況下,呼叫端應以較大的
緩衝區。