diff options
author | Simon Glass <sjg@chromium.org> | 2014-04-10 20:01:34 -0600 |
---|---|---|
committer | Tom Rini <trini@ti.com> | 2014-05-29 17:51:42 -0400 |
commit | c1bb2cd0b6a3d1b152be3686601234b3a363772b (patch) | |
tree | 3e9227a68f254ed1439c5091d00563860b0ce207 | |
parent | 1364a0e48a64a29930a8b22620f420e8f4984cc7 (diff) | |
download | u-boot-c1bb2cd0b6a3d1b152be3686601234b3a363772b.zip u-boot-c1bb2cd0b6a3d1b152be3686601234b3a363772b.tar.gz u-boot-c1bb2cd0b6a3d1b152be3686601234b3a363772b.tar.bz2 |
main: Hide the hush/simple details inside cli.c
Move these details from main (which doesn't care which parser is used) to
cli.c where they belong.
Signed-off-by: Simon Glass <sjg@chromium.org>
-rw-r--r-- | common/cli.c | 22 | ||||
-rw-r--r-- | common/cli_simple.c | 2 | ||||
-rw-r--r-- | common/main.c | 16 | ||||
-rw-r--r-- | include/cli.h | 13 |
4 files changed, 37 insertions, 16 deletions
diff --git a/common/cli.c b/common/cli.c index 9cf7ba1..4ac9b3f 100644 --- a/common/cli.c +++ b/common/cli.c @@ -104,3 +104,25 @@ int do_run(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]) return 0; } #endif + +void cli_loop(void) +{ +#ifdef CONFIG_SYS_HUSH_PARSER + parse_file_outer(); + /* This point is never reached */ + for (;;); +#else + cli_simple_loop(); +#endif /*CONFIG_SYS_HUSH_PARSER*/ +} + +void cli_init(void) +{ +#ifdef CONFIG_SYS_HUSH_PARSER + u_boot_hush_start(); +#endif + +#if defined(CONFIG_HUSH_INIT_VAR) + hush_init_var(); +#endif +} diff --git a/common/cli_simple.c b/common/cli_simple.c index bba586e..413c2eb 100644 --- a/common/cli_simple.c +++ b/common/cli_simple.c @@ -256,7 +256,7 @@ int cli_simple_run_command(const char *cmd, int flag) return rc ? rc : repeatable; } -void cli_loop(void) +void cli_simple_loop(void) { static char lastcommand[CONFIG_SYS_CBSIZE] = { 0, }; diff --git a/common/main.c b/common/main.c index b4cf289..8c846c8 100644 --- a/common/main.c +++ b/common/main.c @@ -10,7 +10,6 @@ #include <common.h> #include <autoboot.h> #include <cli.h> -#include <cli_hush.h> #include <malloc.h> #include <version.h> @@ -71,13 +70,7 @@ void main_loop(void) setenv("ver", version_string); /* set version variable */ #endif /* CONFIG_VERSION_VARIABLE */ -#ifdef CONFIG_SYS_HUSH_PARSER - u_boot_hush_start(); -#endif - -#if defined(CONFIG_HUSH_INIT_VAR) - hush_init_var(); -#endif + cli_init(); run_preboot_environment_command(); @@ -89,11 +82,6 @@ void main_loop(void) /* * Main Loop for Monitor Command Processing */ -#ifdef CONFIG_SYS_HUSH_PARSER - parse_file_outer(); - /* This point is never reached */ - for (;;); -#else + cli_loop(); -#endif /*CONFIG_SYS_HUSH_PARSER*/ } diff --git a/include/cli.h b/include/cli.h index 10dbc66..5158976 100644 --- a/include/cli.h +++ b/include/cli.h @@ -14,7 +14,7 @@ * This will return if we get a timeout waiting for a command. See * CONFIG_BOOT_RETRY_TIME. */ -void cli_loop(void); +void cli_simple_loop(void); /** * cli_simple_run_command() - Execute a command with the simple CLI @@ -100,6 +100,17 @@ int cli_readline_into_buffer(const char *const prompt, char *buffer, */ int cli_simple_parse_line(char *line, char *argv[]); +/** + * Go into the command loop + * + * This will return if we get a timeout waiting for a command, but only for + * the simple parser (not hush). See CONFIG_BOOT_RETRY_TIME. + */ +void cli_loop(void); + +/** Set up the command line interpreter ready for action */ +void cli_init(void); + #define endtick(seconds) (get_ticks() + (uint64_t)(seconds) * get_tbclk()) #endif |