diff options
| author | Simon Glass <sjg@chromium.org> | 2012-02-14 19:59:21 +0000 | 
|---|---|---|
| committer | Wolfgang Denk <wd@denx.de> | 2012-03-06 21:09:26 +0100 | 
| commit | 5307153236caaf2304e578c148e00a4b65cb8604 (patch) | |
| tree | 6c15ac7b41232fd580a2a2ff75ee5bdee76a20e7 | |
| parent | 009dde1955583e306cf904c864068f3acb0db499 (diff) | |
| download | olio-uboot-2014.01-5307153236caaf2304e578c148e00a4b65cb8604.tar.xz olio-uboot-2014.01-5307153236caaf2304e578c148e00a4b65cb8604.zip | |
Stop using builtin_run_command()
Boards can select either the 'built-in' parser or the hush parser. We
should not call builtin_run_command() if we are using the hush parser.
We use run_command() instead, since it knows how to call the correct
parser.
Signed-off-by: Simon Glass <sjg@chromium.org>
Acked-by: Mike Frysinger <vapier@gentoo.org>
| -rw-r--r-- | arch/arm/cpu/arm926ejs/kirkwood/cpu.c | 7 | ||||
| -rw-r--r-- | board/esd/common/auto_update.c | 2 | ||||
| -rw-r--r-- | board/esd/common/cmd_loadpci.c | 2 | ||||
| -rw-r--r-- | board/esd/du440/du440.c | 2 | ||||
| -rw-r--r-- | common/cmd_bedbug.c | 2 | ||||
| -rw-r--r-- | common/cmd_bootm.c | 8 | ||||
| -rw-r--r-- | common/cmd_source.c | 4 | ||||
| -rw-r--r-- | common/main.c | 49 | ||||
| -rw-r--r-- | include/common.h | 1 | 
9 files changed, 34 insertions, 43 deletions
| diff --git a/arch/arm/cpu/arm926ejs/kirkwood/cpu.c b/arch/arm/cpu/arm926ejs/kirkwood/cpu.c index 54d15ea34..fba5e0145 100644 --- a/arch/arm/cpu/arm926ejs/kirkwood/cpu.c +++ b/arch/arm/cpu/arm926ejs/kirkwood/cpu.c @@ -226,12 +226,7 @@ static void kw_sysrst_action(void)  	}  	debug("Starting %s process...\n", __FUNCTION__); -#if !defined(CONFIG_SYS_HUSH_PARSER) -	ret = builtin_run_command(s, 0); -#else -	ret = parse_string_outer(s, FLAG_PARSE_SEMICOLON -				  | FLAG_EXIT_FROM_LOOP); -#endif +	ret = run_command(s, 0);  	if (ret < 0)  		debug("Error.. %s failed\n", __FUNCTION__);  	else diff --git a/board/esd/common/auto_update.c b/board/esd/common/auto_update.c index 4cc15fa2b..fc60545d0 100644 --- a/board/esd/common/auto_update.c +++ b/board/esd/common/auto_update.c @@ -169,7 +169,7 @@ int au_do_update(int i, long sz)  				k++;  			} -			builtin_run_command(addr, 0); +			run_command(addr, 0);  			return 0;  		} diff --git a/board/esd/common/cmd_loadpci.c b/board/esd/common/cmd_loadpci.c index c2bf2792e..8fcae63f2 100644 --- a/board/esd/common/cmd_loadpci.c +++ b/board/esd/common/cmd_loadpci.c @@ -110,7 +110,7 @@ int do_loadpci(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])  			 * Call run_cmd  			 */  			printf("running command at addr 0x%s ...\n", addr); -			builtin_run_command((char *)la, 0); +			run_command((char *)la, 0);  			break;  		default: diff --git a/board/esd/du440/du440.c b/board/esd/du440/du440.c index 75fb20079..1ada1bc98 100644 --- a/board/esd/du440/du440.c +++ b/board/esd/du440/du440.c @@ -831,7 +831,7 @@ int do_time(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])  	*d = '\0';  	start = get_ticks(); -	ret = builtin_run_command(cmd, 0); +	ret = run_command(cmd, 0);  	end = get_ticks();  	printf("ticks=%ld\n", (ulong)(end - start)); diff --git a/common/cmd_bedbug.c b/common/cmd_bedbug.c index 0228ee875..5b0812382 100644 --- a/common/cmd_bedbug.c +++ b/common/cmd_bedbug.c @@ -237,7 +237,7 @@ void bedbug_main_loop (unsigned long addr, struct pt_regs *regs)  		if (len == -1)  			printf ("<INTERRUPT>\n");  		else -			rc = builtin_run_command(lastcommand, flag); +			rc = run_command(lastcommand, flag);  		if (rc <= 0) {  			/* invalid command or not repeatable, forget it */ diff --git a/common/cmd_bootm.c b/common/cmd_bootm.c index 2e3e1593c..6bfef6292 100644 --- a/common/cmd_bootm.c +++ b/common/cmd_bootm.c @@ -1045,14 +1045,8 @@ int do_bootd(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])  {  	int rcode = 0; -#ifndef CONFIG_SYS_HUSH_PARSER -	if (builtin_run_command(getenv("bootcmd"), flag) < 0) +	if (run_command(getenv("bootcmd"), flag) < 0)  		rcode = 1; -#else -	if (parse_string_outer(getenv("bootcmd"), -			FLAG_PARSE_SEMICOLON | FLAG_EXIT_FROM_LOOP) != 0) -		rcode = 1; -#endif  	return rcode;  } diff --git a/common/cmd_source.c b/common/cmd_source.c index 481241cfd..32fff5cec 100644 --- a/common/cmd_source.c +++ b/common/cmd_source.c @@ -179,7 +179,7 @@ source (ulong addr, const char *fit_uname)  				if (*line) {  					debug ("** exec: \"%s\"\n",  						line); -					if (builtin_run_command(line, 0) < 0) { +					if (run_command(line, 0) < 0) {  						rcode = 1;  						break;  					} @@ -189,7 +189,7 @@ source (ulong addr, const char *fit_uname)  			++next;  		}  		if (rcode == 0 && *line) -			rcode = (builtin_run_command(line, 0) >= 0); +			rcode = (run_command(line, 0) >= 0);  	}  #endif  	free (cmd); diff --git a/common/main.c b/common/main.c index 797b245c3..10ee12c27 100644 --- a/common/main.c +++ b/common/main.c @@ -267,26 +267,6 @@ int abortboot(int bootdelay)  # endif	/* CONFIG_AUTOBOOT_KEYED */  #endif	/* CONFIG_BOOTDELAY >= 0  */ -/* - * Return 0 on success, or != 0 on error. - */ -int run_command(const char *cmd, int flag) -{ -#ifndef CONFIG_SYS_HUSH_PARSER -	/* -	 * builtin_run_command can return 0 or 1 for success, so clean up -	 * its result. -	 */ -	if (builtin_run_command(cmd, flag) == -1) -		return 1; - -	return 0; -#else -	return parse_string_outer(cmd, -			FLAG_PARSE_SEMICOLON | FLAG_EXIT_FROM_LOOP); -#endif -} -  /****************************************************************************/  void main_loop (void) @@ -458,7 +438,7 @@ void main_loop (void)  		if (len == -1)  			puts ("<INTERRUPT>\n");  		else -			rc = builtin_run_command(lastcommand, flag); +			rc = run_command(lastcommand, flag);  		if (rc <= 0) {  			/* invalid command or not repeatable, forget it */ @@ -1278,8 +1258,7 @@ static void process_macros (const char *input, char *output)   * the environment data, which may change magicly when the command we run   * creates or modifies environment variables (like "bootp" does).   */ - -int builtin_run_command(const char *cmd, int flag) +static int builtin_run_command(const char *cmd, int flag)  {  	cmd_tbl_t *cmdtp;  	char cmdbuf[CONFIG_SYS_CBSIZE];	/* working copy of cmd		*/ @@ -1404,6 +1383,30 @@ int builtin_run_command(const char *cmd, int flag)  	return rc ? rc : repeatable;  } +/* + * Run a command using the selected parser. + * + * @param cmd	Command to run + * @param flag	Execution flags (CMD_FLAG_...) + * @return 0 on success, or != 0 on error. + */ +int run_command(const char *cmd, int flag) +{ +#ifndef CONFIG_SYS_HUSH_PARSER +	/* +	 * builtin_run_command can return 0 or 1 for success, so clean up +	 * its result. +	 */ +	if (builtin_run_command(cmd, flag) == -1) +		return 1; + +	return 0; +#else +	return parse_string_outer(cmd, +			FLAG_PARSE_SEMICOLON | FLAG_EXIT_FROM_LOOP); +#endif +} +  /****************************************************************************/  #if defined(CONFIG_CMD_RUN) diff --git a/include/common.h b/include/common.h index e8b62a96c..0bda04981 100644 --- a/include/common.h +++ b/include/common.h @@ -260,7 +260,6 @@ int	print_buffer (ulong addr, void* data, uint width, uint count, uint linelen);  /* common/main.c */  void	main_loop	(void); -int builtin_run_command(const char *cmd, int flag);  int run_command(const char *cmd, int flag);  int	readline	(const char *const prompt);  int	readline_into_buffer(const char *const prompt, char *buffer, |