[U-Boot] [PATCH 5/9] Drop command-processing code when CONFIG_CMDLINE is disabled
Simon Glass
sjg at chromium.org
Fri Feb 26 05:00:52 CET 2016
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 at chromium.org>
---
cmd/help.c | 4 ++++
common/cli.c | 17 ++++++++++++++++-
common/command.c | 6 ++++++
3 files changed, 26 insertions(+), 1 deletion(-)
diff --git a/cmd/help.c b/cmd/help.c
index 6ff494d..701ae7e 100644
--- a/cmd/help.c
+++ b/cmd/help.c
@@ -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(
diff --git a/common/cli.c b/common/cli.c
index 119d282..9b4b3e5 100644
--- a/common/cli.c
+++ b/common/cli.c
@@ -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*/
}
diff --git a/common/command.c b/common/command.c
index 858e288..e5d9b9c 100644
--- a/common/command.c
+++ b/common/command.c
@@ -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[])
--
2.7.0.rc3.207.g0ac5344
More information about the U-Boot
mailing list