zx_system_mexec

摘要

使用新的核心和開機映像檔自動重新啟動系統。

宣告

#include <zircon/syscalls.h>

zx_status_t zx_system_mexec(zx_handle_t resource,
                            zx_handle_t kernel_vmo,
                            zx_handle_t bootimage_vmo);

說明

zx_system_mexec() 接受兩個 Vmo 控制代碼:kernel_vmo 應包含 核心映像檔和 bootimage_vmo 必須包含初始指令, 做為核心引數傳遞至新核心。

如要取代執行中的核心,請將 ZX_RSRC_KIND_SYSTEM資源搭配基準 必須提供 ZX_RSRC_SYSTEM_MEXEC_BASE

成功後,zx_system_mexec() 會取代目前執行中的核心 含有 kernel_vmo 內核心映像檔的映像檔,請載入 ramdisk 包含在 bootimage_vmo 內至實體記憶體和分支版本中的位置 並直接傳入新的核心,同時提供所載入初始化的位址 新增到新的核心

如要使用 zx_system_mexec() 函式,您必須指定 kernel.enable-debugging-syscalls=true 執行。否則 這個函式會傳回 ZX_ERR_NOT_SUPPORTED

權限

resource 必須包含有基準的 ZX_RSRC_KIND_SYSTEM 種類資源 ZX_RSRC_SYSTEM_MEXEC_BASE

kernel_vmo 必須是 ZX_OBJ_TYPE_VMO 類型,且包含 ZX_RIGHT_READ

bootimage_vmo 必須是 ZX_OBJ_TYPE_VMO 類型,且含有 ZX_RIGHT_READ

傳回值

成功後,zx_system_mexec()不得傳回。

ZX_ERR_NOT_SUPPORTED kernel.enable-debugging-syscalls未設為 true 執行指令碼

另請參閱