]> git.ipfire.org Git - thirdparty/ipxe.git/commitdiff
[cmdline] Make "sleep" command available by default
authorMichael Brown <mcb30@ipxe.org>
Mon, 24 Oct 2011 14:39:05 +0000 (15:39 +0100)
committerMichael Brown <mcb30@ipxe.org>
Mon, 24 Oct 2011 14:39:05 +0000 (15:39 +0100)
The "sleep" command is generally useful to have.  For example:

  :dhcp_retry
  dhcp && goto dhcp_done
  sleep 5
  goto dhcp_retry
  :dhcp_done

Make the "sleep" command available by default, leaving TIME_CMD
controlling only the (fairly specialist) "time" command.

Signed-off-by: Michael Brown <mcb30@ipxe.org>
src/core/exec.c
src/hci/commands/time_cmd.c

index bfc0c97f05e75cbf285291a7242f0116d7d5754f..cbbccdfa4cda3827cd67d84c4d95f4feb26e4573 100644 (file)
@@ -31,6 +31,7 @@ FILE_LICENCE ( GPL2_OR_LATER );
 #include <ipxe/command.h>
 #include <ipxe/parseopt.h>
 #include <ipxe/settings.h>
+#include <ipxe/nap.h>
 #include <ipxe/shell.h>
 
 /** @file
@@ -527,3 +528,42 @@ struct command iseq_command __command = {
        .name = "iseq",
        .exec = iseq_exec,
 };
+
+/** "sleep" options */
+struct sleep_options {};
+
+/** "sleep" option list */
+static struct option_descriptor sleep_opts[] = {};
+
+/** "sleep" command descriptor */
+static struct command_descriptor sleep_cmd =
+       COMMAND_DESC ( struct sleep_options, sleep_opts, 1, 1, "<seconds>" );
+
+/**
+ * "sleep" command
+ *
+ * @v argc             Argument count
+ * @v argv             Argument list
+ * @ret rc             Return status code
+ */
+static int sleep_exec ( int argc, char **argv ) {
+       struct sleep_options opts;
+       unsigned long start, delay;
+       int rc;
+
+       /* Parse options */
+       if ( ( rc = parse_options ( argc, argv, &sleep_cmd, &opts ) ) != 0 )
+               return rc;
+
+       start = currticks();
+       delay = strtoul ( argv[1], NULL, 0 ) * ticks_per_sec();
+       while ( ( currticks() - start ) <= delay )
+               cpu_nap();
+       return 0;
+}
+
+/** "sleep" command */
+struct command sleep_command __command = {
+       .name = "sleep",
+       .exec = sleep_exec,
+};
index 1dd175783c05f52309209c05785f6830c469dd96..6c9556cebddc21656bfd6b812897e7b6977b3b87 100644 (file)
@@ -27,7 +27,6 @@ FILE_LICENCE ( GPL2_OR_LATER );
 #include <unistd.h>
 #include <ipxe/command.h>
 #include <ipxe/parseopt.h>
-#include <ipxe/nap.h>
 #include <ipxe/timer.h>
 
 /** @file
@@ -78,42 +77,3 @@ struct command time_command __command = {
        .name = "time",
        .exec = time_exec,
 };
-
-/** "sleep" options */
-struct sleep_options {};
-
-/** "sleep" option list */
-static struct option_descriptor sleep_opts[] = {};
-
-/** "sleep" command descriptor */
-static struct command_descriptor sleep_cmd =
-       COMMAND_DESC ( struct sleep_options, sleep_opts, 1, 1, "<seconds>" );
-
-/**
- * "sleep" command
- *
- * @v argc             Argument count
- * @v argv             Argument list
- * @ret rc             Return status code
- */
-static int sleep_exec ( int argc, char **argv ) {
-       struct sleep_options opts;
-       unsigned long start, delay;
-       int rc;
-
-       /* Parse options */
-       if ( ( rc = parse_options ( argc, argv, &sleep_cmd, &opts ) ) != 0 )
-               return rc;
-
-       start = currticks();
-       delay = strtoul ( argv[1], NULL, 0 ) * ticks_per_sec();
-       while ( ( currticks() - start ) <= delay )
-               cpu_nap();
-       return 0;
-}
-
-/** "sleep" command */
-struct command sleep_command __command = {
-       .name = "sleep",
-       .exec = sleep_exec,
-};