diff options
author | Simon Glass <sjg@chromium.org> | 2014-04-10 20:01:35 -0600 |
---|---|---|
committer | Tom Rini <trini@ti.com> | 2014-05-29 17:52:03 -0400 |
commit | affb215626f91e717088a27081d24c473895d47d (patch) | |
tree | 9ced673b20b48fb9a70253860e5cc6b7d9c79a29 /include/cli.h | |
parent | c1bb2cd0b6a3d1b152be3686601234b3a363772b (diff) | |
download | u-boot-affb215626f91e717088a27081d24c473895d47d.zip u-boot-affb215626f91e717088a27081d24c473895d47d.tar.gz u-boot-affb215626f91e717088a27081d24c473895d47d.tar.bz2 |
main: Make the execution path a little clearer in main.c
bootdelay_process() never returns in some circumstances, whichs makes the
control flow confusing. Change it so that the decision about how to execute
the boot command is made in the main_loop() code, so it is easier to follow.
Move CLI stuff to cli.c.
Signed-off-by: Simon Glass <sjg@chromium.org>
Diffstat (limited to 'include/cli.h')
-rw-r--r-- | include/cli.h | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/include/cli.h b/include/cli.h index 5158976..6994262 100644 --- a/include/cli.h +++ b/include/cli.h @@ -100,6 +100,39 @@ int cli_readline_into_buffer(const char *const prompt, char *buffer, */ int cli_simple_parse_line(char *line, char *argv[]); +#ifdef CONFIG_OF_CONTROL +/** + * cli_process_fdt() - process the boot command from the FDT + * + * If bootcmmd is defined in the /config node of the FDT, we use that + * as the boot command. Further, if bootsecure is set to 1 (in the same + * node) then we return true, indicating that the command should be executed + * as securely as possible, avoiding the CLI parser. + * + * @cmdp: On entry, the command that will be executed if the FDT does + * not have a command. Returns the command to execute after + * checking the FDT. + * @return true to execute securely, else false + */ +bool cli_process_fdt(const char **cmdp); + +/** cli_secure_boot_cmd() - execute a command as securely as possible + * + * This avoids using the parser, thus executing the command with the + * smallest amount of code. Parameters are not supported. + */ +void cli_secure_boot_cmd(const char *cmd); +#else +static inline bool cli_process_fdt(const char **cmdp) +{ + return false; +} + +static inline void cli_secure_boot_cmd(const char *cmd) +{ +} +#endif /* CONFIG_OF_CONTROL */ + /** * Go into the command loop * |