mirror of
https://github.com/u-boot/u-boot.git
synced 2025-05-09 03:21:51 +00:00
sandbox: implement reset
Up to now the sandbox would shutdown upon a cold reset request. Instead it should be reset. In our coding we use static variables like LIST_HEAD(efi_obj_list). A reset can occur at any time, e.g. via an UEFI binary calling the reset service. The only safe way to return to an initial state is to relaunch the U-Boot binary. The reset implementation uses execv() to relaunch U-Boot. Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de> Reviewed-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
parent
c0b19f25a1
commit
329dccc067
6 changed files with 61 additions and 0 deletions
|
@ -84,6 +84,16 @@ void sandbox_set_enable_pci_map(int enable);
|
|||
*/
|
||||
int sandbox_read_fdt_from_file(void);
|
||||
|
||||
/**
|
||||
* sandbox_reset() - reset sandbox
|
||||
*
|
||||
* This functions implements the cold reboot of the sandbox. It relaunches the
|
||||
* U-Boot binary with the same command line parameters as the original call.
|
||||
* The PID of the process stays the same. All file descriptors that have not
|
||||
* been opened with O_CLOEXEC stay open including stdin, stdout, stderr.
|
||||
*/
|
||||
void sandbox_reset(void);
|
||||
|
||||
/* Exit sandbox (quit U-Boot) */
|
||||
void sandbox_exit(void);
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue