[U-Boot] [PATCH] cmd_time: merge run_command_and_time_it with cmd_process
Stefan Roese
sr at denx.de
Mon Dec 3 17:01:51 CET 2012
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 at 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
More information about the U-Boot
mailing list