From 5e1fa5cd4090f229a40903f13abf328e86271717 Mon Sep 17 00:00:00 2001 From: Michael Brown Date: Fri, 1 Nov 2013 02:22:12 +0000 Subject: [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 --- src/hci/commands/menu_cmd.c | 4 ++-- src/hci/commands/ping_cmd.c | 7 ++++--- src/hci/commands/sync_cmd.c | 9 +++------ 3 files changed, 9 insertions(+), 11 deletions(-) (limited to 'src/hci/commands') diff --git a/src/hci/commands/menu_cmd.c b/src/hci/commands/menu_cmd.c index 0ad53dbd4..6ff30083b 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 a042b8faa..4959f6a00 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 #include #include +#include #include /** @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 221e87395..ee932939c 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 #include #include -#include #include /** @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; } -- cgit v1.2.3-55-g7522