摘要
使用新的核心和開機映像檔自動重新啟動系統。
宣告
#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
執行指令碼