summaryrefslogtreecommitdiffstats
path: root/src/hci/commands
diff options
context:
space:
mode:
authorMichael Brown2013-11-01 03:22:12 +0100
committerMichael Brown2013-11-01 03:26:19 +0100
commit5e1fa5cd4090f229a40903f13abf328e86271717 (patch)
tree77a6302aeeb86f6c86fe95fb757a952a4ef7490e /src/hci/commands
parent[ipv6] Add ndp_tx_router_solicitation() to send router solicitations (diff)
downloadipxe-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.c4
-rw-r--r--src/hci/commands/ping_cmd.c7
-rw-r--r--src/hci/commands/sync_cmd.c9
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;
}