command: Introduce functions to obtain command arguments

Add some functions which provide an argument to a command, or NULL if
the argument does not exist.

Use the same numbering as argv[] since it seems less confusing than the
previous idea.

Signed-off-by: Simon Glass <sjg@chromium.org>
Suggested-by: Tom Rini <trini@konsulko.com>
This commit is contained in:
Simon Glass 2023-11-18 14:05:20 -07:00 committed by Tom Rini
parent 1047b5340c
commit 8632b36b96
10 changed files with 49 additions and 16 deletions

View file

@ -60,6 +60,39 @@ struct cmd_tbl {
#endif
};
/**
* cmd_arg_get() - Get a particular argument
*
* @argc: Number of arguments
* @argv: Argument vector of length @argc
* @argnum: Argument to get (0=first)
* Return: Pointer to argument @argnum if it exists, else NULL
*/
static inline const char *cmd_arg_get(int argc, char *const argv[], int argnum)
{
return argc > argnum ? argv[argnum] : NULL;
}
static inline const char *cmd_arg0(int argc, char *const argv[])
{
return cmd_arg_get(argc, argv, 0);
}
static inline const char *cmd_arg1(int argc, char *const argv[])
{
return cmd_arg_get(argc, argv, 1);
}
static inline const char *cmd_arg2(int argc, char *const argv[])
{
return cmd_arg_get(argc, argv, 2);
}
static inline const char *cmd_arg3(int argc, char *const argv[])
{
return cmd_arg_get(argc, argv, 3);
}
#if defined(CONFIG_CMD_RUN)
int do_run(struct cmd_tbl *cmdtp, int flag, int argc,
char *const argv[]);