X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=common%2Fcmd_misc.c;h=b0ced2f3b884e1eaa47f88bab3ab00a1c1937123;hb=b9e186fc31683a4f1b6880c086950b2270e62e24;hp=e3e0e44869133b60b2db37151424eba8d7ef251d;hpb=3863585bb1c1e8f89b4a2e90c4b83f8b81b8e029;p=u-boot diff --git a/common/cmd_misc.c b/common/cmd_misc.c index e3e0e44869..b0ced2f3b8 100644 --- a/common/cmd_misc.c +++ b/common/cmd_misc.c @@ -27,30 +27,31 @@ #include #include -#if (CONFIG_COMMANDS & CFG_CMD_MISC) - int do_sleep (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]) { + ulong start = get_timer(0); ulong delay; if (argc != 2) { - printf ("Usage:\n%s\n", cmdtp->usage); + cmd_usage(cmdtp); return 1; } - delay = simple_strtoul(argv[1], NULL, 10); + delay = simple_strtoul(argv[1], NULL, 10) * CONFIG_SYS_HZ; - while (delay) { - int i; - for (i=0; i<1000; ++i) { - if (ctrlc ()) { - return (-1); - } - udelay (1000); + while (get_timer(start) < delay) { + if (ctrlc ()) { + return (-1); } - --delay; + udelay (100); } + return 0; } -#endif /* CFG_CMD_MISC */ +U_BOOT_CMD( + sleep , 2, 1, do_sleep, + "delay execution for some time", + "N\n" + " - delay execution for N seconds (N is _decimal_ !!!)" +);