From bdf8e34b936e2b94990ab6ce8dd5463d14d173dd Mon Sep 17 00:00:00 2001 From: Simon Glass Date: Tue, 14 Feb 2012 19:59:23 +0000 Subject: Create a single cmd_call() function to handle command execution We should aim for a single point of entry to the commands, whichever parser is used. Signed-off-by: Simon Glass --- common/command.c | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) (limited to 'common/command.c') diff --git a/common/command.c b/common/command.c index c5cecd3bf57..fe290759cd0 100644 --- a/common/command.c +++ b/common/command.c @@ -487,3 +487,24 @@ void fixup_cmdtable(cmd_tbl_t *cmdtp, int size) } } #endif + +/** + * Call a command function. This should be the only route in U-Boot to call + * a command, so that we can track whether we are waiting for input or + * executing a command. + * + * @param cmdtp Pointer to the command to execute + * @param flag Some flags normally 0 (see CMD_FLAG_.. above) + * @param argc Number of arguments (arg 0 must be the command text) + * @param argv Arguments + * @return 0 if command succeeded, else non-zero (CMD_RET_...) + */ +int cmd_call(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]) +{ + int result; + + result = (cmdtp->cmd)(cmdtp, flag, argc, argv); + if (result) + debug("Command failed, result=%d", result); + return result; +} -- cgit v1.2.3