| # zx_system_mexec |
| |
| ## NAME |
| |
| <!-- Updated by update-docs-from-fidl, do not edit. --> |
| |
| Soft reboot the system with a new kernel and bootimage. |
| |
| ## SYNOPSIS |
| |
| <!-- Updated by update-docs-from-fidl, do not edit. --> |
| |
| ```c |
| #include <zircon/syscalls.h> |
| |
| zx_status_t zx_system_mexec(zx_handle_t resource, |
| zx_handle_t kernel_vmo, |
| zx_handle_t bootimage_vmo); |
| ``` |
| |
| ## DESCRIPTION |
| |
| `zx_system_mexec()` accepts two vmo handles: *kernel_vmo* should contain a |
| kernel image and *bootimage_vmo* should contain an initrd whose address shall |
| be passed to the new kernel as a kernel argument. |
| |
| To supplant the running kernel, a *resource* of **ZX_RSRC_KIND_ROOT** must be |
| supplied. |
| |
| Upon success, `zx_system_mexec()` shall supplant the currently running kernel |
| image with the kernel image contained within *kernel_vmo*, load the ramdisk |
| contained within *bootimage_vmo* to a location in physical memory and branch |
| directly into the new kernel while providing the address of the loaded initrd |
| to the new kernel. |
| |
| To use the `zx_system_mexec()` function, you must specify |
| `kernel.enable-debugging-syscalls=true` on the kernel command line. Otherwise, |
| the function returns **ZX_ERR_NOT_SUPPORTED**. |
| |
| ## RIGHTS |
| |
| <!-- Updated by update-docs-from-fidl, do not edit. --> |
| |
| *resource* must have resource kind **ZX_RSRC_KIND_ROOT**. |
| |
| *kernel_vmo* must be of type **ZX_OBJ_TYPE_VMO** and have **ZX_RIGHT_READ**. |
| |
| *bootimage_vmo* must be of type **ZX_OBJ_TYPE_VMO** and have **ZX_RIGHT_READ**. |
| |
| ## RETURN VALUE |
| |
| `zx_system_mexec()` shall not return upon success. |
| |
| **ZX_ERR_NOT_SUPPORTED** `kernel.enable-debugging-syscalls` is not set to `true` |
| on the kernel command line. |
| |
| ## SEE ALSO |
| |
| - [`zx_system_mexec_payload_get()`] |
| |
| <!-- References updated by update-docs-from-fidl, do not edit. --> |
| |
| [`zx_system_mexec_payload_get()`]: system_mexec_payload_get.md |