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 覆盖,其中包含应在将图像传递给 zx_system_mexec() 之前附加到 ZBI 的一系列条目;缓冲区的尾部保持不变。

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_SYSTEM_MEXEC_BASE 的资源种类 ZX_RSRC_KIND_SYSTEM

返回值

zx_system_mexec_payload_get() 会在成功时返回 ZX_OK

内核命令行中的 ZX_ERR_NOT_SUPPORTED kernel.enable-debugging-syscalls 未设置为 true

ZX_ERR_BUFFER_TOO_SMALL:如果提供的缓冲区对于 ZBI 来说过小。 在这种情况下,调用方应使用更大的缓冲区再次执行系统调用。

另请参阅