aboutsummaryrefslogtreecommitdiff
path: root/include/cli.h
diff options
context:
space:
mode:
authorSimon Glass <sjg@chromium.org>2014-04-10 20:01:35 -0600
committerTom Rini <trini@ti.com>2014-05-29 17:52:03 -0400
commitaffb215626f91e717088a27081d24c473895d47d (patch)
tree9ced673b20b48fb9a70253860e5cc6b7d9c79a29 /include/cli.h
parentc1bb2cd0b6a3d1b152be3686601234b3a363772b (diff)
downloadu-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.h33
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
*