Add qemu 2.4.0
[kvmfornfv.git] / qemu / roms / u-boot / common / cmd_time.c
diff --git a/qemu/roms/u-boot/common/cmd_time.c b/qemu/roms/u-boot/common/cmd_time.c
new file mode 100644 (file)
index 0000000..de57e3b
--- /dev/null
@@ -0,0 +1,44 @@
+/*
+ * Copyright (c) 2011 The Chromium OS Authors.
+ * SPDX-License-Identifier:    GPL-2.0+
+ */
+
+#include <common.h>
+#include <command.h>
+
+static void report_time(ulong cycles)
+{
+       ulong minutes, seconds, milliseconds;
+       ulong total_seconds, remainder;
+
+       total_seconds = cycles / CONFIG_SYS_HZ;
+       remainder = cycles % CONFIG_SYS_HZ;
+       minutes = total_seconds / 60;
+       seconds = total_seconds % 60;
+       /* approximate millisecond value */
+       milliseconds = (remainder * 1000 + CONFIG_SYS_HZ / 2) / CONFIG_SYS_HZ;
+
+       printf("\ntime:");
+       if (minutes)
+               printf(" %lu minutes,", minutes);
+       printf(" %lu.%03lu seconds\n", seconds, milliseconds);
+}
+
+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 = cmd_process(0, argc - 1, argv + 1, &repeatable, &cycles);
+       report_time(cycles);
+
+       return retval;
+}
+
+U_BOOT_CMD(time, CONFIG_SYS_MAXARGS, 0, do_time,
+               "run commands and summarize execution time",
+               "command [args...]\n");