Drop command-processing code when CONFIG_CMDLINE is disabled

Command parsing and processing code is not needed when the command line is
disabled. Remove this code in that case.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Tom Rini <trini@konsulko.com>
This commit is contained in:
Simon Glass 2016-03-19 02:18:38 -06:00 committed by Tom Rini
parent 74322201dd
commit f8bb696435
4 changed files with 44 additions and 1 deletions

View file

@ -10,9 +10,13 @@
static int do_help(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
{
#ifdef CONFIG_CMDLINE
cmd_tbl_t *start = ll_entry_start(cmd_tbl_t, cmd);
const int len = ll_entry_count(cmd_tbl_t, cmd);
return _do_help(start, len, cmdtp, flag, argc, argv);
#else
return 0;
#endif
}
U_BOOT_CMD(

View file

@ -18,6 +18,7 @@
DECLARE_GLOBAL_DATA_PTR;
#ifdef CONFIG_CMDLINE
/*
* Run a command using the selected parser.
*
@ -68,6 +69,7 @@ int run_command_repeatable(const char *cmd, int flag)
return 0;
#endif
}
#endif /* CONFIG_CMDLINE */
int run_command_list(const char *cmd, int len, int flag)
{
@ -102,7 +104,11 @@ int run_command_list(const char *cmd, int len, int flag)
* doing a malloc() which is actually required only in a case that
* is pretty rare.
*/
#ifdef CONFIG_CMDLINE
rcode = cli_simple_run_command_list(buff, flag);
#else
rcode = board_run_command(buff);
#endif
#endif
if (need_buff)
free(buff);
@ -166,7 +172,9 @@ bool cli_process_fdt(const char **cmdp)
*/
void cli_secure_boot_cmd(const char *cmd)
{
#ifdef CONFIG_CMDLINE
cmd_tbl_t *cmdtp;
#endif
int rc;
if (!cmd) {
@ -178,6 +186,7 @@ void cli_secure_boot_cmd(const char *cmd)
disable_ctrlc(1);
/* Find the command directly. */
#ifdef CONFIG_CMDLINE
cmdtp = find_cmd(cmd);
if (!cmdtp) {
printf("## Error: \"%s\" not defined\n", cmd);
@ -187,6 +196,10 @@ void cli_secure_boot_cmd(const char *cmd)
/* Run the command, forcing no flags and faking argc and argv. */
rc = (cmdtp->cmd)(cmdtp, 0, 1, (char **)&cmd);
#else
rc = board_run_command(cmd);
#endif
/* Shouldn't ever return from boot command. */
printf("## Error: \"%s\" returned (code %d)\n", cmd, rc);
@ -205,8 +218,10 @@ void cli_loop(void)
parse_file_outer();
/* This point is never reached */
for (;;);
#else
#elif defined(CONFIG_CMDINE)
cli_simple_loop();
#else
printf("## U-Boot command line is disabled. Please enable CONFIG_CMDLINE\n");
#endif /*CONFIG_SYS_HUSH_PARSER*/
}

View file

@ -85,6 +85,7 @@ int _do_help(cmd_tbl_t *cmd_start, int cmd_items, cmd_tbl_t *cmdtp, int flag,
/* find command table entry for a command */
cmd_tbl_t *find_cmd_tbl(const char *cmd, cmd_tbl_t *table, int table_len)
{
#ifdef CONFIG_CMDLINE
cmd_tbl_t *cmdtp;
cmd_tbl_t *cmdtp_temp = table; /* Init value */
const char *p;
@ -111,6 +112,7 @@ cmd_tbl_t *find_cmd_tbl(const char *cmd, cmd_tbl_t *table, int table_len)
if (n_found == 1) { /* exactly one match */
return cmdtp_temp;
}
#endif /* CONFIG_CMDLINE */
return NULL; /* not found or ambiguous command */
}
@ -162,6 +164,7 @@ int var_complete(int argc, char * const argv[], char last_char, int maxv, char *
static int complete_cmdv(int argc, char * const argv[], char last_char, int maxv, char *cmdv[])
{
#ifdef CONFIG_CMDLINE
cmd_tbl_t *cmdtp = ll_entry_start(cmd_tbl_t, cmd);
const int count = ll_entry_count(cmd_tbl_t, cmd);
const cmd_tbl_t *cmdend = cmdtp + count;
@ -231,6 +234,9 @@ static int complete_cmdv(int argc, char * const argv[], char last_char, int maxv
cmdv[n_found] = NULL;
return n_found;
#else
return 0;
#endif
}
static int make_argv(char *s, int argvsz, char *argv[])

View file

@ -144,6 +144,24 @@ int cmd_process(int flag, int argc, char * const argv[],
int *repeatable, unsigned long *ticks);
void fixup_cmdtable(cmd_tbl_t *cmdtp, int size);
/**
* board_run_command() - Fallback function to execute a command
*
* When no command line features are enabled in U-Boot, this function is
* called to execute a command. Typically the function can look at the
* command and perform a few very specific tasks, such as booting the
* system in a particular way.
*
* This function is only used when CONFIG_CMDLINE is not enabled.
*
* In normal situations this function should not return, since U-Boot will
* simply hang.
*
* @cmdline: Command line string to execute
* @return 0 if OK, 1 for error
*/
int board_run_command(const char *cmdline);
#endif /* __ASSEMBLY__ */
/*