diff --git a/src/core/exec.c b/src/core/exec.c index bfc0c97f..cbbccdfa 100644 --- a/src/core/exec.c +++ b/src/core/exec.c @@ -31,6 +31,7 @@ FILE_LICENCE ( GPL2_OR_LATER ); #include #include #include +#include #include /** @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, "" ); + +/** + * "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, +}; diff --git a/src/hci/commands/time_cmd.c b/src/hci/commands/time_cmd.c index 1dd17578..6c9556ce 100644 --- a/src/hci/commands/time_cmd.c +++ b/src/hci/commands/time_cmd.c @@ -27,7 +27,6 @@ FILE_LICENCE ( GPL2_OR_LATER ); #include #include #include -#include #include /** @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, "" ); - -/** - * "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, -};