摘要
返回包含启动此系统所需的 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 而言过小。
在这种情况下,调用方应使用较大的
缓冲区。