diff options
author | Michael Brown | 2013-11-01 03:22:12 +0100 |
---|---|---|
committer | Michael Brown | 2013-11-01 03:26:19 +0100 |
commit | 5e1fa5cd4090f229a40903f13abf328e86271717 (patch) | |
tree | 77a6302aeeb86f6c86fe95fb757a952a4ef7490e /src/hci/commands | |
parent | [ipv6] Add ndp_tx_router_solicitation() to send router solicitations (diff) | |
download | ipxe-5e1fa5cd4090f229a40903f13abf328e86271717.tar.gz ipxe-5e1fa5cd4090f229a40903f13abf328e86271717.tar.xz ipxe-5e1fa5cd4090f229a40903f13abf328e86271717.zip |
[parseopt] Add parse_timeout()
Parsing a timeout value (specified in milliseconds) into an internal
timeout value measured in timer ticks is a common operation. Provide
a parse_timeout() value to carry out this conversion automatically.
Signed-off-by: Michael Brown <mcb30@ipxe.org>
Diffstat (limited to 'src/hci/commands')
-rw-r--r-- | src/hci/commands/menu_cmd.c | 4 | ||||
-rw-r--r-- | src/hci/commands/ping_cmd.c | 7 | ||||
-rw-r--r-- | src/hci/commands/sync_cmd.c | 9 |
3 files changed, 9 insertions, 11 deletions
diff --git a/src/hci/commands/menu_cmd.c b/src/hci/commands/menu_cmd.c index 0ad53dbd..6ff30083 100644 --- a/src/hci/commands/menu_cmd.c +++ b/src/hci/commands/menu_cmd.c @@ -194,7 +194,7 @@ struct choose_options { /** Menu name */ char *menu; /** Timeout */ - unsigned int timeout; + unsigned long timeout; /** Default selection */ char *select; /** Keep menu */ @@ -208,7 +208,7 @@ static struct option_descriptor choose_opts[] = { OPTION_DESC ( "default", 'd', required_argument, struct choose_options, select, parse_string ), OPTION_DESC ( "timeout", 't', required_argument, - struct choose_options, timeout, parse_integer ), + struct choose_options, timeout, parse_timeout ), OPTION_DESC ( "keep", 'k', no_argument, struct choose_options, keep, parse_flag ), }; diff --git a/src/hci/commands/ping_cmd.c b/src/hci/commands/ping_cmd.c index a042b8fa..4959f6a0 100644 --- a/src/hci/commands/ping_cmd.c +++ b/src/hci/commands/ping_cmd.c @@ -27,6 +27,7 @@ FILE_LICENCE ( GPL2_OR_LATER ); #include <getopt.h> #include <ipxe/command.h> #include <ipxe/parseopt.h> +#include <ipxe/timer.h> #include <usr/pingmgmt.h> /** @file @@ -39,14 +40,14 @@ FILE_LICENCE ( GPL2_OR_LATER ); #define PING_DEFAULT_SIZE 64 /** Default timeout */ -#define PING_DEFAULT_TIMEOUT 1000 +#define PING_DEFAULT_TIMEOUT TICKS_PER_SEC /** "ping" options */ struct ping_options { /** Payload length */ unsigned int size; /** Timeout (in ms) */ - unsigned int timeout; + unsigned long timeout; }; /** "ping" option list */ @@ -54,7 +55,7 @@ static struct option_descriptor ping_opts[] = { OPTION_DESC ( "size", 's', required_argument, struct ping_options, size, parse_integer ), OPTION_DESC ( "timeout", 't', required_argument, - struct ping_options, timeout, parse_integer ), + struct ping_options, timeout, parse_timeout ), }; /** "ping" command descriptor */ diff --git a/src/hci/commands/sync_cmd.c b/src/hci/commands/sync_cmd.c index 221e8739..ee932939 100644 --- a/src/hci/commands/sync_cmd.c +++ b/src/hci/commands/sync_cmd.c @@ -24,7 +24,6 @@ FILE_LICENCE ( GPL2_OR_LATER ); #include <getopt.h> #include <ipxe/command.h> #include <ipxe/parseopt.h> -#include <ipxe/timer.h> #include <ipxe/pending.h> /** @file @@ -36,13 +35,13 @@ FILE_LICENCE ( GPL2_OR_LATER ); /** "sync" options */ struct sync_options { /** Timeout */ - unsigned int timeout; + unsigned long timeout; }; /** "sync" option list */ static struct option_descriptor sync_opts[] = { OPTION_DESC ( "timeout", 't', required_argument, - struct sync_options, timeout, parse_integer ), + struct sync_options, timeout, parse_timeout ), }; /** "sync" command descriptor */ @@ -59,7 +58,6 @@ static struct command_descriptor sync_cmd = */ static int sync_exec ( int argc, char **argv ) { struct sync_options opts; - unsigned long timeout; int rc; /* Parse options */ @@ -67,8 +65,7 @@ static int sync_exec ( int argc, char **argv ) { return rc; /* Wait for pending operations to complete */ - timeout = ( ( opts.timeout * TICKS_PER_SEC ) / 1000 ); - if ( ( rc = pending_wait ( timeout ) ) != 0 ) { + if ( ( rc = pending_wait ( opts.timeout ) ) != 0 ) { printf ( "Operations did not complete: %s\n", strerror ( rc ) ); return rc; } |