projects
/
oweals
/
u-boot.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
checkpatch.pl: Request a test when a new command is added
[oweals/u-boot.git]
/
common
/
command.c
diff --git
a/common/command.c
b/common/command.c
index e14d1fa1d6b4c4425f9c5b74e65ada06a67524b5..4f49f15bfdfba3602c4bea27c6b12b9931781b2d 100644
(file)
--- a/
common/command.c
+++ b/
common/command.c
@@
-11,6
+11,8
@@
#include <common.h>
#include <command.h>
#include <console.h>
#include <common.h>
#include <command.h>
#include <console.h>
+#include <env.h>
+#include <log.h>
#include <linux/ctype.h>
/*
#include <linux/ctype.h>
/*
@@
-18,14
+20,14
@@
* for long help messages
*/
* for long help messages
*/
-int _do_help(
cmd_tbl_t *cmd_start, int cmd_items, cmd_tbl_t *cmdtp, int flag
,
- int
argc, char *
const argv[])
+int _do_help(
struct cmd_tbl *cmd_start, int cmd_items, struct cmd_tbl *cmdtp
,
+ int
flag, int argc, char *
const argv[])
{
int i;
int rcode = 0;
if (argc == 1) { /* show list of commands */
{
int i;
int rcode = 0;
if (argc == 1) { /* show list of commands */
-
cmd_tbl_t
*cmd_array[cmd_items];
+
struct cmd_tbl
*cmd_array[cmd_items];
int i, j, swaps;
/* Make array of commands from .uboot_cmd section */
int i, j, swaps;
/* Make array of commands from .uboot_cmd section */
@@
-40,7
+42,7
@@
int _do_help(cmd_tbl_t *cmd_start, int cmd_items, cmd_tbl_t *cmdtp, int flag,
for (j = 0; j < i; ++j) {
if (strcmp(cmd_array[j]->name,
cmd_array[j + 1]->name) > 0) {
for (j = 0; j < i; ++j) {
if (strcmp(cmd_array[j]->name,
cmd_array[j + 1]->name) > 0) {
-
cmd_tbl_t
*tmp;
+
struct cmd_tbl
*tmp;
tmp = cmd_array[j];
cmd_array[j] = cmd_array[j + 1];
cmd_array[j + 1] = tmp;
tmp = cmd_array[j];
cmd_array[j] = cmd_array[j + 1];
cmd_array[j + 1] = tmp;
@@
-82,11
+84,12
@@
int _do_help(cmd_tbl_t *cmd_start, int cmd_items, cmd_tbl_t *cmdtp, int flag,
}
/* find command table entry for a command */
}
/* find command table entry for a command */
-cmd_tbl_t *find_cmd_tbl(const char *cmd, cmd_tbl_t *table, int table_len)
+struct cmd_tbl *find_cmd_tbl(const char *cmd, struct cmd_tbl *table,
+ int table_len)
{
#ifdef CONFIG_CMDLINE
{
#ifdef CONFIG_CMDLINE
-
cmd_tbl_t
*cmdtp;
-
cmd_tbl_t *cmdtp_temp = table;
/* Init value */
+
struct cmd_tbl
*cmdtp;
+
struct cmd_tbl *cmdtp_temp = table;
/* Init value */
const char *p;
int len;
int n_found = 0;
const char *p;
int len;
int n_found = 0;
@@
-116,14
+119,14
@@
cmd_tbl_t *find_cmd_tbl(const char *cmd, cmd_tbl_t *table, int table_len)
return NULL; /* not found or ambiguous command */
}
return NULL; /* not found or ambiguous command */
}
-
cmd_tbl_t
*find_cmd(const char *cmd)
+
struct cmd_tbl
*find_cmd(const char *cmd)
{
{
-
cmd_tbl_t *start = ll_entry_start(cmd_tbl_t
, cmd);
- const int len = ll_entry_count(
cmd_tbl_t
, cmd);
+
struct cmd_tbl *start = ll_entry_start(struct cmd_tbl
, cmd);
+ const int len = ll_entry_count(
struct cmd_tbl
, cmd);
return find_cmd_tbl(cmd, start, len);
}
return find_cmd_tbl(cmd, start, len);
}
-int cmd_usage(const
cmd_tbl_t
*cmdtp)
+int cmd_usage(const
struct cmd_tbl
*cmdtp)
{
printf("%s - %s\n\n", cmdtp->name, cmdtp->usage);
{
printf("%s - %s\n\n", cmdtp->name, cmdtp->usage);
@@
-144,7
+147,8
@@
int cmd_usage(const cmd_tbl_t *cmdtp)
#ifdef CONFIG_AUTO_COMPLETE
static char env_complete_buf[512];
#ifdef CONFIG_AUTO_COMPLETE
static char env_complete_buf[512];
-int var_complete(int argc, char * const argv[], char last_char, int maxv, char *cmdv[])
+int var_complete(int argc, char *const argv[], char last_char, int maxv,
+ char *cmdv[])
{
int space;
{
int space;
@@
-162,7
+166,7
@@
int var_complete(int argc, char * const argv[], char last_char, int maxv, char *
return 0;
}
return 0;
}
-static int dollar_complete(int argc, char *
const argv[], char last_char,
+static int dollar_complete(int argc, char *const argv[], char last_char,
int maxv, char *cmdv[])
{
/* Make sure the last argument starts with a $. */
int maxv, char *cmdv[])
{
/* Make sure the last argument starts with a $. */
@@
-176,12
+180,12
@@
static int dollar_complete(int argc, char * const argv[], char last_char,
/*************************************************************************************/
/*************************************************************************************/
-int complete_subcmdv(
cmd_tbl_t
*cmdtp, int count, int argc,
- char *
const argv[], char last_char,
+int complete_subcmdv(
struct cmd_tbl
*cmdtp, int count, int argc,
+ char *const argv[], char last_char,
int maxv, char *cmdv[])
{
#ifdef CONFIG_CMDLINE
int maxv, char *cmdv[])
{
#ifdef CONFIG_CMDLINE
- const
cmd_tbl_t
*cmdend = cmdtp + count;
+ const
struct cmd_tbl
*cmdend = cmdtp + count;
const char *p;
int len, clen;
int n_found = 0;
const char *p;
int len, clen;
int n_found = 0;
@@
-253,12
+257,12
@@
int complete_subcmdv(cmd_tbl_t *cmdtp, int count, int argc,
#endif
}
#endif
}
-static int complete_cmdv(int argc, char *
const argv[], char last_char,
+static int complete_cmdv(int argc, char *const argv[], char last_char,
int maxv, char *cmdv[])
{
#ifdef CONFIG_CMDLINE
int maxv, char *cmdv[])
{
#ifdef CONFIG_CMDLINE
- return complete_subcmdv(ll_entry_start(
cmd_tbl_t
, cmd),
- ll_entry_count(
cmd_tbl_t
, cmd), argc, argv,
+ return complete_subcmdv(ll_entry_start(
struct cmd_tbl
, cmd),
+ ll_entry_count(
struct cmd_tbl
, cmd), argc, argv,
last_char, maxv, cmdv);
#else
return 0;
last_char, maxv, cmdv);
#else
return 0;
@@
-295,7
+299,8
@@
static int make_argv(char *s, int argvsz, char *argv[])
return argc;
}
return argc;
}
-static void print_argv(const char *banner, const char *leader, const char *sep, int linemax, char * const argv[])
+static void print_argv(const char *banner, const char *leader, const char *sep,
+ int linemax, char *const argv[])
{
int ll = leader != NULL ? strlen(leader) : 0;
int sl = sep != NULL ? strlen(sep) : 0;
{
int ll = leader != NULL ? strlen(leader) : 0;
int sl = sep != NULL ? strlen(sep) : 0;
@@
-322,7
+327,7
@@
static void print_argv(const char *banner, const char *leader, const char *sep,
printf("\n");
}
printf("\n");
}
-static int find_common_prefix(char *
const argv[])
+static int find_common_prefix(char *const argv[])
{
int i, len;
char *anchor, *s, *t;
{
int i, len;
char *anchor, *s, *t;
@@
-356,8
+361,13
@@
int cmd_auto_complete(const char *const prompt, char *buf, int *np, int *colp)
int i, j, k, len, seplen, argc;
int cnt;
char last_char;
int i, j, k, len, seplen, argc;
int cnt;
char last_char;
+#ifdef CONFIG_CMDLINE_PS_SUPPORT
+ const char *ps_prompt = env_get("PS1");
+#else
+ const char *ps_prompt = CONFIG_SYS_PROMPT;
+#endif
- if (strcmp(prompt,
CONFIG_SYS_PROMPT
) != 0)
+ if (strcmp(prompt,
ps_prompt
) != 0)
return 0; /* not in normal console */
cnt = strlen(buf);
return 0; /* not in normal console */
cnt = strlen(buf);
@@
-463,7
+473,7
@@
int cmd_get_data_size(char* arg, int default_size)
return 2;
case 'l':
return 4;
return 2;
case 'l':
return 4;
-#ifdef
CONFIG_SYS
_SUPPORT_64BIT_DATA
+#ifdef
MEM
_SUPPORT_64BIT_DATA
case 'q':
return 8;
#endif
case 'q':
return 8;
#endif
@@
-480,7
+490,7
@@
int cmd_get_data_size(char* arg, int default_size)
#if defined(CONFIG_NEEDS_MANUAL_RELOC)
DECLARE_GLOBAL_DATA_PTR;
#if defined(CONFIG_NEEDS_MANUAL_RELOC)
DECLARE_GLOBAL_DATA_PTR;
-void fixup_cmdtable(
cmd_tbl_t
*cmdtp, int size)
+void fixup_cmdtable(
struct cmd_tbl
*cmdtp, int size)
{
int i;
{
int i;
@@
-490,13
+500,18
@@
void fixup_cmdtable(cmd_tbl_t *cmdtp, int size)
for (i = 0; i < size; i++) {
ulong addr;
for (i = 0; i < size; i++) {
ulong addr;
+ addr = (ulong)(cmdtp->cmd_rep) + gd->reloc_off;
+ cmdtp->cmd_rep =
+ (int (*)(struct cmd_tbl *, int, int,
+ char * const [], int *))addr;
+
addr = (ulong)(cmdtp->cmd) + gd->reloc_off;
#ifdef DEBUG_COMMANDS
printf("Command \"%s\": 0x%08lx => 0x%08lx\n",
cmdtp->name, (ulong)(cmdtp->cmd), addr);
#endif
addr = (ulong)(cmdtp->cmd) + gd->reloc_off;
#ifdef DEBUG_COMMANDS
printf("Command \"%s\": 0x%08lx => 0x%08lx\n",
cmdtp->name, (ulong)(cmdtp->cmd), addr);
#endif
- cmdtp->cmd =
-
(int (*)(struct cmd_tbl_s *, int, int, char *
const []))addr;
+ cmdtp->cmd =
(int (*)(struct cmd_tbl *, int, int,
+
char *
const []))addr;
addr = (ulong)(cmdtp->name) + gd->reloc_off;
cmdtp->name = (char *)addr;
if (cmdtp->usage) {
addr = (ulong)(cmdtp->name) + gd->reloc_off;
cmdtp->name = (char *)addr;
if (cmdtp->usage) {
@@
-521,24
+536,24
@@
void fixup_cmdtable(cmd_tbl_t *cmdtp, int size)
}
#endif
}
#endif
-int cmd_always_repeatable(
cmd_tbl_t
*cmdtp, int flag, int argc,
- char *
const argv[], int *repeatable)
+int cmd_always_repeatable(
struct cmd_tbl
*cmdtp, int flag, int argc,
+ char *const argv[], int *repeatable)
{
*repeatable = 1;
return cmdtp->cmd(cmdtp, flag, argc, argv);
}
{
*repeatable = 1;
return cmdtp->cmd(cmdtp, flag, argc, argv);
}
-int cmd_never_repeatable(
cmd_tbl_t
*cmdtp, int flag, int argc,
- char *
const argv[], int *repeatable)
+int cmd_never_repeatable(
struct cmd_tbl
*cmdtp, int flag, int argc,
+ char *const argv[], int *repeatable)
{
*repeatable = 0;
return cmdtp->cmd(cmdtp, flag, argc, argv);
}
{
*repeatable = 0;
return cmdtp->cmd(cmdtp, flag, argc, argv);
}
-int cmd_discard_repeatable(
cmd_tbl_t
*cmdtp, int flag, int argc,
- char *
const argv[])
+int cmd_discard_repeatable(
struct cmd_tbl
*cmdtp, int flag, int argc,
+ char *const argv[])
{
int repeatable;
{
int repeatable;
@@
-557,8
+572,8
@@
int cmd_discard_repeatable(cmd_tbl_t *cmdtp, int flag, int argc,
* @param repeatable Can the command be repeated
* @return 0 if command succeeded, else non-zero (CMD_RET_...)
*/
* @param repeatable Can the command be repeated
* @return 0 if command succeeded, else non-zero (CMD_RET_...)
*/
-static int cmd_call(
cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]
,
- int *repeatable)
+static int cmd_call(
struct cmd_tbl *cmdtp, int flag, int argc
,
+
char *const argv[],
int *repeatable)
{
int result;
{
int result;
@@
-568,11
+583,25
@@
static int cmd_call(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[],
return result;
}
return result;
}
-enum command_ret_t cmd_process(int flag, int argc, char *
const argv[],
+enum command_ret_t cmd_process(int flag, int argc, char *const argv[],
int *repeatable, ulong *ticks)
{
enum command_ret_t rc = CMD_RET_SUCCESS;
int *repeatable, ulong *ticks)
{
enum command_ret_t rc = CMD_RET_SUCCESS;
- cmd_tbl_t *cmdtp;
+ struct cmd_tbl *cmdtp;
+
+#if defined(CONFIG_SYS_XTRACE)
+ char *xtrace;
+
+ xtrace = env_get("xtrace");
+ if (xtrace) {
+ puts("+");
+ for (int i = 0; i < argc; i++) {
+ puts(" ");
+ puts(argv[i]);
+ }
+ puts("\n");
+ }
+#endif
/* Look up command in command table */
cmdtp = find_cmd(argv[0]);
/* Look up command in command table */
cmdtp = find_cmd(argv[0]);
@@
-613,7
+642,7
@@
enum command_ret_t cmd_process(int flag, int argc, char * const argv[],
return rc;
}
return rc;
}
-int cmd_process_error(
cmd_tbl_t
*cmdtp, int err)
+int cmd_process_error(
struct cmd_tbl
*cmdtp, int err)
{
if (err == CMD_RET_USAGE)
return CMD_RET_USAGE;
{
if (err == CMD_RET_USAGE)
return CMD_RET_USAGE;