aboutsummaryrefslogtreecommitdiff
path: root/common/command.c
diff options
context:
space:
mode:
authorSimon Glass2012-02-14 19:59:23 +0000
committerWolfgang Denk2012-03-06 21:09:34 +0100
commitbdf8e34b936e2b94990ab6ce8dd5463d14d173dd (patch)
tree1cd5822ee530eaba3b22fb6fcf50967c6fce6d19 /common/command.c
parent7fed89e00e0836f7894f350716b3f182ee562760 (diff)
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 <sjg@chromium.org>
Diffstat (limited to 'common/command.c')
-rw-r--r--common/command.c21
1 files changed, 21 insertions, 0 deletions
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;
+}