zx_system_mexec_payload_get

摘要

傳回 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_SYSTEM_MEXEC_BASEZX_RSRC_KIND_SYSTEM 類型。

bufferbuffer_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 來說太小。在這個情況下,呼叫端應使用較大的緩衝區再次進行系統呼叫。

另請參閱