Summary
Return a ZBI containing ZBI entries necessary to boot this system.
Declaration
#include <zircon/syscalls.h>
zx_status_t zx_system_mexec_payload_get(zx_handle_t resource,
void* buffer,
size_t buffer_size);
Description
zx_system_mexec_payload_get()
accepts a resource handle and a
pointer/length corresponding to an output buffer. The head of the buffer is
overwritten with non-bootable ZBI containing a sequence of entries that should
be appended to a ZBI before passing that image to zx_system_mexec()
; the
tail of the buffer is left untouched.
resource must be of type ZX_RSRC_KIND_SYSTEM
with base
ZX_RSRC_SYSTEM_MEXEC_BASE
.
buffer and buffer_size must point to a buffer that is no longer than 16KiB.
To use the zx_system_mexec_payload_get()
function, you must specify
kernel.enable-debugging-syscalls=true
on the kernel command line. Otherwise,
the function returns ZX_ERR_NOT_SUPPORTED
.
Rights
resource must have resource kind ZX_RSRC_KIND_SYSTEM
with base
ZX_RSRC_SYSTEM_MEXEC_BASE
.
Return value
zx_system_mexec_payload_get()
returns ZX_OK
on success.
ZX_ERR_NOT_SUPPORTED
kernel.enable-debugging-syscalls
is not set to true
on the kernel command line.
ZX_ERR_BUFFER_TOO_SMALL
If the provided buffer is too small for the ZBI.
In this case, the caller is expected to make the syscall again with a larger
buffer.