mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-11-28 15:41:40 +00:00
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>
This commit is contained in:
parent
009dde1955
commit
5307153236
9 changed files with 34 additions and 43 deletions
|
@ -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
|
||||
|
|
|
@ -169,7 +169,7 @@ int au_do_update(int i, long sz)
|
|||
k++;
|
||||
}
|
||||
|
||||
builtin_run_command(addr, 0);
|
||||
run_command(addr, 0);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
|
@ -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:
|
||||
|
|
|
@ -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));
|
||||
|
|
|
@ -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 */
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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,
|
||||
|
|
Loading…
Reference in a new issue