
On 12/03/2012 04:28 PM, Richard Genoud wrote:
As far as every arch has a get_timer function, run_command_and_time_it code can now disappear.
Signed-off-by: Richard Genoud richard.genoud@gmail.com
common/cmd_time.c | 33 ++------------------------------- common/command.c | 4 +++- common/hush.c | 2 +- common/main.c | 2 +- include/command.h | 4 +++- 5 files changed, 10 insertions(+), 35 deletions(-)
diff --git a/common/cmd_time.c b/common/cmd_time.c index 6dbdbbf..9808cd6 100644 --- a/common/cmd_time.c +++ b/common/cmd_time.c @@ -22,36 +22,6 @@ #include <common.h> #include <command.h>
-/*
- TODO(clchiou): This function actually minics the bottom-half of the
- run_command() function. Since this function has ARM-dependent timer
- codes, we cannot merge it with the run_command() for now.
- */
-static int run_command_and_time_it(int flag, int argc, char * const argv[],
ulong *cycles)
-{
- cmd_tbl_t *cmdtp = find_cmd(argv[0]);
- int retval = 0;
- if (!cmdtp) {
printf("%s: command not found\n", argv[0]);
return 1;
- }
- if (argc > cmdtp->maxargs)
return CMD_RET_USAGE;
- /*
* TODO(clchiou): get_timer_masked() is only defined in certain ARM
* boards. We could use the new timer API that Graeme is proposing
* so that this piece of code would be arch-independent.
*/
- *cycles = get_timer_masked();
- retval = cmdtp->cmd(cmdtp, flag, argc, argv);
- *cycles = get_timer_masked() - *cycles;
- return retval;
-}
static void report_time(ulong cycles) { ulong minutes, seconds, milliseconds; @@ -75,11 +45,12 @@ static int do_time(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]) { ulong cycles = 0; int retval = 0;
int repeatable;
if (argc == 1) return CMD_RET_USAGE;
- retval = run_command_and_time_it(0, argc - 1, argv + 1, &cycles);
retval = cmd_process(0, argc - 1, argv + 1, &repeatable, &cycles); report_time(cycles);
return retval;
diff --git a/common/command.c b/common/command.c index 50c8429..a58dca6 100644 --- a/common/command.c +++ b/common/command.c @@ -513,7 +513,7 @@ static int cmd_call(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]) }
enum command_ret_t cmd_process(int flag, int argc, char * const argv[],
int *repeatable)
int *repeatable, ulong *ticks)
{ enum command_ret_t rc = CMD_RET_SUCCESS; cmd_tbl_t *cmdtp; @@ -543,7 +543,9 @@ enum command_ret_t cmd_process(int flag, int argc, char * const argv[],
/* If OK so far, then do the command */ if (!rc) {
if (ticks) *ticks = get_timer(0);
Newline please:
if (ticks) *ticks = get_timer(0);
rc = cmd_call(cmdtp, flag, argc, argv);
if (ticks) *ticks = get_timer(*ticks);
Here as well.
Thanks, Stefan