* [U-Boot] [PATCH] cmd_time: merge run_command_and_time_it with cmd_process
@ 2012-12-03 15:28 Richard Genoud
2012-12-03 16:01 ` Stefan Roese
0 siblings, 1 reply; 4+ messages in thread
From: Richard Genoud @ 2012-12-03 15:28 UTC (permalink / raw)
To: u-boot
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);
rc = cmd_call(cmdtp, flag, argc, argv);
+ if (ticks) *ticks = get_timer(*ticks);
*repeatable &= cmdtp->repeatable;
}
if (rc == CMD_RET_USAGE)
diff --git a/common/hush.c b/common/hush.c
index eb6c879..cc81c9c 100644
--- a/common/hush.c
+++ b/common/hush.c
@@ -1665,7 +1665,7 @@ static int run_pipe_real(struct pipe *pi)
}
/* Process the command */
return cmd_process(flag, child->argc, child->argv,
- &flag_repeat);
+ &flag_repeat, NULL);
#endif
}
#ifndef __U_BOOT__
diff --git a/common/main.c b/common/main.c
index 5362781..7bdba3e 100644
--- a/common/main.c
+++ b/common/main.c
@@ -1442,7 +1442,7 @@ static int builtin_run_command(const char *cmd, int flag)
continue;
}
- if (cmd_process(flag, argc, argv, &repeatable))
+ if (cmd_process(flag, argc, argv, &repeatable, NULL))
rc = -1;
/* Did the user stop this? */
diff --git a/include/command.h b/include/command.h
index 10bc260..1344d71 100644
--- a/include/command.h
+++ b/include/command.h
@@ -139,10 +139,12 @@ enum command_ret_t {
* @param repeatable This function sets this to 0 if the command is not
* repeatable. If the command is repeatable, the value
* is left unchanged.
+ * @param ticks If ticks is not null, this function set it to the
+ * number of ticks the command took to complete.
* @return 0 if the command succeeded, 1 if it failed
*/
int cmd_process(int flag, int argc, char * const argv[],
- int *repeatable);
+ int *repeatable, ulong *ticks);
#endif /* __ASSEMBLY__ */
--
1.7.2.5
^ permalink raw reply related [flat|nested] 4+ messages in thread
* [U-Boot] [PATCH] cmd_time: merge run_command_and_time_it with cmd_process
2012-12-03 15:28 [U-Boot] [PATCH] cmd_time: merge run_command_and_time_it with cmd_process Richard Genoud
@ 2012-12-03 16:01 ` Stefan Roese
2012-12-03 16:23 ` Richard Genoud
0 siblings, 1 reply; 4+ messages in thread
From: Stefan Roese @ 2012-12-03 16:01 UTC (permalink / raw)
To: u-boot
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
^ permalink raw reply [flat|nested] 4+ messages in thread
* [U-Boot] [PATCH] cmd_time: merge run_command_and_time_it with cmd_process
2012-12-03 16:01 ` Stefan Roese
@ 2012-12-03 16:23 ` Richard Genoud
2012-12-03 21:32 ` Che-liang Chiou
0 siblings, 1 reply; 4+ messages in thread
From: Richard Genoud @ 2012-12-03 16:23 UTC (permalink / raw)
To: u-boot
2012/12/3 Stefan Roese <sr@denx.de>:
>> @@ -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
>
Ok, I'll resend it with new lines (I thought it was a little bit more
readable without new lines).
Thanks !
Richard.
^ permalink raw reply [flat|nested] 4+ messages in thread
* [U-Boot] [PATCH] cmd_time: merge run_command_and_time_it with cmd_process
2012-12-03 16:23 ` Richard Genoud
@ 2012-12-03 21:32 ` Che-liang Chiou
0 siblings, 0 replies; 4+ messages in thread
From: Che-liang Chiou @ 2012-12-03 21:32 UTC (permalink / raw)
To: u-boot
Acked-by: Che-Liang Chiou <clchiou@chromium.org>
On Mon, Dec 3, 2012 at 8:23 AM, Richard Genoud <richard.genoud@gmail.com> wrote:
> 2012/12/3 Stefan Roese <sr@denx.de>:
>>> @@ -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
>>
> Ok, I'll resend it with new lines (I thought it was a little bit more
> readable without new lines).
> Thanks !
>
> Richard.
> _______________________________________________
> U-Boot mailing list
> U-Boot at lists.denx.de
> http://lists.denx.de/mailman/listinfo/u-boot
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2012-12-03 21:32 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-12-03 15:28 [U-Boot] [PATCH] cmd_time: merge run_command_and_time_it with cmd_process Richard Genoud
2012-12-03 16:01 ` Stefan Roese
2012-12-03 16:23 ` Richard Genoud
2012-12-03 21:32 ` Che-liang Chiou
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox