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_KIND_SYSTEM 类型 ZX_RSRC_SYSTEM_MEXEC_BASE

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 而言过小。 在这种情况下,调用方应使用较大的 缓冲区。

另请参阅