summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNikolai Kondrashov <spbnick@gmail.com>2010-11-14 17:20:21 +0300
committerNikolai Kondrashov <spbnick@gmail.com>2010-11-14 17:20:21 +0300
commitfcd12f67a7c93c16be6fda0c0ad451d2226025b7 (patch)
tree1b255564ad7612c89c1b0796f230630d8289ce80
parent3ef1aa3e27b4d46e7f05c700e38929cb82681bb6 (diff)
downloadusbhid-dump-fcd12f67a7c93c16be6fda0c0ad451d2226025b7.tar.gz
Replace usbhid_dump_ prefix with uhd_
Replace usbhid_dump_ and USBHID_DUMP_ symbol prefixes with uhd_ and UHD_ respectively to make them shorter.
-rw-r--r--include/usbhid_dump/iface.h57
-rw-r--r--include/usbhid_dump/libusb.h6
-rw-r--r--include/usbhid_dump/str.h8
-rw-r--r--lib/iface.c78
-rw-r--r--lib/str.c2
-rw-r--r--src/usbhid-dump.c56
6 files changed, 101 insertions, 106 deletions
diff --git a/include/usbhid_dump/iface.h b/include/usbhid_dump/iface.h
index 8bd591a..9438dce 100644
--- a/include/usbhid_dump/iface.h
+++ b/include/usbhid_dump/iface.h
@@ -24,8 +24,8 @@
* @(#) $Id$
*/
-#ifndef __USBHID_DUMP_IFACE_H__
-#define __USBHID_DUMP_IFACE_H__
+#ifndef __UHD_IFACE_H__
+#define __UHD_IFACE_H__
#include <stdbool.h>
#include <libusb-1.0/libusb.h>
@@ -34,10 +34,10 @@
extern "C" {
#endif
-typedef struct usbhid_dump_iface usbhid_dump_iface;
+typedef struct uhd_iface uhd_iface;
-struct usbhid_dump_iface {
- usbhid_dump_iface *next;
+struct uhd_iface {
+ uhd_iface *next;
libusb_device_handle *handle; /**< Device handle */
uint8_t number; /**< Interface number */
uint8_t int_in_ep_addr; /**< Interrupt IN EP address */
@@ -59,27 +59,27 @@ struct usbhid_dump_iface {
for the interface */
};
-extern bool usbhid_dump_iface_valid(const usbhid_dump_iface *iface);
+extern bool uhd_iface_valid(const uhd_iface *iface);
-extern usbhid_dump_iface *usbhid_dump_iface_new(
+extern uhd_iface *uhd_iface_new(
libusb_device_handle *handle,
uint8_t number,
uint8_t int_in_ep_addr,
uint16_t int_in_ep_maxp);
-extern void usbhid_dump_iface_free(usbhid_dump_iface *iface);
+extern void uhd_iface_free(uhd_iface *iface);
-extern bool usbhid_dump_iface_list_valid(const usbhid_dump_iface *list);
+extern bool uhd_iface_list_valid(const uhd_iface *list);
static inline bool
-usbhid_dump_iface_list_empty(const usbhid_dump_iface *list)
+uhd_iface_list_empty(const uhd_iface *list)
{
return list == NULL;
}
-extern size_t usbhid_dump_iface_list_len(const usbhid_dump_iface *list);
+extern size_t uhd_iface_list_len(const uhd_iface *list);
-extern void usbhid_dump_iface_list_free(usbhid_dump_iface *list);
+extern void uhd_iface_list_free(uhd_iface *list);
/**
@@ -91,8 +91,8 @@ extern void usbhid_dump_iface_list_free(usbhid_dump_iface *list);
* @return Libusb error code.
*/
enum libusb_error
-usbhid_dump_iface_list_new_from_dev(libusb_device_handle *handle,
- usbhid_dump_iface **plist);
+uhd_iface_list_new_from_dev(libusb_device_handle *handle,
+ uhd_iface **plist);
/**
* Filter an interface list by an optional interface number, resulting
@@ -104,8 +104,8 @@ usbhid_dump_iface_list_new_from_dev(libusb_device_handle *handle,
*
* @return The resulting list head
*/
-extern usbhid_dump_iface *usbhid_dump_iface_list_fltr_by_num(
- usbhid_dump_iface *list,
+extern uhd_iface *uhd_iface_list_fltr_by_num(
+ uhd_iface *list,
int number);
/**
@@ -115,8 +115,7 @@ extern usbhid_dump_iface *usbhid_dump_iface_list_fltr_by_num(
*
* @return Libusb error code.
*/
-extern enum libusb_error usbhid_dump_iface_list_detach(
- usbhid_dump_iface *list);
+extern enum libusb_error uhd_iface_list_detach(uhd_iface *list);
/**
* Attach all interfaces in a list to their kernel drivers (if were detached
@@ -126,8 +125,7 @@ extern enum libusb_error usbhid_dump_iface_list_detach(
*
* @return Libusb error code.
*/
-extern enum libusb_error usbhid_dump_iface_list_attach(
- usbhid_dump_iface *list);
+extern enum libusb_error uhd_iface_list_attach(uhd_iface *list);
/**
* Claim all interfaces in a list.
@@ -136,8 +134,7 @@ extern enum libusb_error usbhid_dump_iface_list_attach(
*
* @return Libusb error code.
*/
-extern enum libusb_error usbhid_dump_iface_list_claim(
- usbhid_dump_iface *list);
+extern enum libusb_error uhd_iface_list_claim(uhd_iface *list);
/**
* Set idle duration on all interfaces in a list; ignore errors indicating
@@ -149,8 +146,8 @@ extern enum libusb_error usbhid_dump_iface_list_claim(
*
* @return Libusb error code.
*/
-extern enum libusb_error usbhid_dump_iface_list_set_idle(
- const usbhid_dump_iface *list,
+extern enum libusb_error uhd_iface_list_set_idle(
+ const uhd_iface *list,
uint8_t duration,
unsigned int timeout);
@@ -164,8 +161,8 @@ extern enum libusb_error usbhid_dump_iface_list_set_idle(
*
* @return Libusb error code.
*/
-extern enum libusb_error usbhid_dump_iface_list_set_protocol(
- const usbhid_dump_iface *list,
+extern enum libusb_error uhd_iface_list_set_protocol(
+ const uhd_iface *list,
bool report,
unsigned int timeout);
@@ -176,8 +173,7 @@ extern enum libusb_error usbhid_dump_iface_list_set_protocol(
*
* @return Libusb error code.
*/
-extern enum libusb_error usbhid_dump_iface_list_clear_halt(
- usbhid_dump_iface *list);
+extern enum libusb_error uhd_iface_list_clear_halt(uhd_iface *list);
/**
* Release all interfaces in a list (if were claimed before).
*
@@ -185,11 +181,10 @@ extern enum libusb_error usbhid_dump_iface_list_clear_halt(
*
* @return Libusb error code.
*/
-extern enum libusb_error usbhid_dump_iface_list_release(
- usbhid_dump_iface *list);
+extern enum libusb_error uhd_iface_list_release(uhd_iface *list);
#ifdef __cplusplus
} /* extern "C" */
#endif
-#endif /* __USBHID_DUMP_IFACE_H__ */
+#endif /* __UHD_IFACE_H__ */
diff --git a/include/usbhid_dump/libusb.h b/include/usbhid_dump/libusb.h
index 91ad476..fe33706 100644
--- a/include/usbhid_dump/libusb.h
+++ b/include/usbhid_dump/libusb.h
@@ -24,8 +24,8 @@
* @(#) $Id$
*/
-#ifndef __USBHID_DUMP_LIBUSB_H__
-#define __USBHID_DUMP_LIBUSB_H__
+#ifndef __UHD_LIBUSB_H__
+#define __UHD_LIBUSB_H__
#include <libusb-1.0/libusb.h>
@@ -45,4 +45,4 @@ extern enum libusb_error libusb_open_device_with_bus_dev(
} /* extern "C" */
#endif
-#endif /* __USBHID_DUMP_LIBUSB_H__ */
+#endif /* __UHD_LIBUSB_H__ */
diff --git a/include/usbhid_dump/str.h b/include/usbhid_dump/str.h
index 14d00eb..a34dcb1 100644
--- a/include/usbhid_dump/str.h
+++ b/include/usbhid_dump/str.h
@@ -24,8 +24,8 @@
* @(#) $Id$
*/
-#ifndef __USBHID_DUMP_STR_H__
-#define __USBHID_DUMP_STR_H__
+#ifndef __UHD_STR_H__
+#define __UHD_STR_H__
#include <stdbool.h>
@@ -33,10 +33,10 @@
extern "C" {
#endif
-extern bool usbhid_dump_strisblank(const char *str);
+extern bool uhd_strisblank(const char *str);
#ifdef __cplusplus
} /* extern "C" */
#endif
-#endif /* __USBHID_DUMP_STR_H__ */
+#endif /* __UHD_STR_H__ */
diff --git a/lib/iface.c b/lib/iface.c
index 573d760..0487486 100644
--- a/lib/iface.c
+++ b/lib/iface.c
@@ -30,20 +30,20 @@
#include <stdio.h>
bool
-usbhid_dump_iface_valid(const usbhid_dump_iface *iface)
+uhd_iface_valid(const uhd_iface *iface)
{
return iface != NULL &&
iface->handle != NULL &&
iface->number < UINT8_MAX;
}
-usbhid_dump_iface *
-usbhid_dump_iface_new(libusb_device_handle *handle,
+uhd_iface *
+uhd_iface_new(libusb_device_handle *handle,
uint8_t number,
uint8_t int_in_ep_addr,
uint16_t int_in_ep_maxp)
{
- usbhid_dump_iface *iface;
+ uhd_iface *iface;
iface = malloc(sizeof(*iface));
if (iface == NULL)
@@ -63,22 +63,22 @@ usbhid_dump_iface_new(libusb_device_handle *handle,
void
-usbhid_dump_iface_free(usbhid_dump_iface *iface)
+uhd_iface_free(uhd_iface *iface)
{
if (iface == NULL)
return;
- assert(usbhid_dump_iface_valid(iface));
+ assert(uhd_iface_valid(iface));
free(iface);
}
bool
-usbhid_dump_iface_list_valid(const usbhid_dump_iface *list)
+uhd_iface_list_valid(const uhd_iface *list)
{
for (; list != NULL; list = list->next)
- if (!usbhid_dump_iface_valid(list))
+ if (!uhd_iface_valid(list))
return false;
return true;
@@ -86,7 +86,7 @@ usbhid_dump_iface_list_valid(const usbhid_dump_iface *list)
size_t
-usbhid_dump_iface_list_len(const usbhid_dump_iface *list)
+uhd_iface_list_len(const uhd_iface *list)
{
size_t len = 0;
@@ -98,21 +98,21 @@ usbhid_dump_iface_list_len(const usbhid_dump_iface *list)
void
-usbhid_dump_iface_list_free(usbhid_dump_iface *list)
+uhd_iface_list_free(uhd_iface *list)
{
- usbhid_dump_iface *next;
+ uhd_iface *next;
for (; list != NULL; list = next)
{
next = list->next;
- usbhid_dump_iface_free(list);
+ uhd_iface_free(list);
}
}
enum libusb_error
-usbhid_dump_iface_list_new_from_dev(libusb_device_handle *handle,
- usbhid_dump_iface **plist)
+uhd_iface_list_new_from_dev(libusb_device_handle *handle,
+ uhd_iface **plist)
{
enum libusb_error err = LIBUSB_ERROR_OTHER;
@@ -121,9 +121,9 @@ usbhid_dump_iface_list_new_from_dev(libusb_device_handle *handle,
const struct libusb_endpoint_descriptor *ep_list;
uint8_t ep_num;
const struct libusb_endpoint_descriptor *ep;
- usbhid_dump_iface *list = NULL;
- usbhid_dump_iface *last = NULL;
- usbhid_dump_iface *iface;
+ uhd_iface *list = NULL;
+ uhd_iface *last = NULL;
+ uhd_iface *iface;
assert(handle != NULL);
@@ -153,7 +153,7 @@ usbhid_dump_iface_list_new_from_dev(libusb_device_handle *handle,
LIBUSB_ENDPOINT_IN)
continue;
- iface = usbhid_dump_iface_new(
+ iface = uhd_iface_new(
handle,
libusb_iface->altsetting->bInterfaceNumber,
ep->bEndpointAddress, ep->wMaxPacketSize);
@@ -182,7 +182,7 @@ usbhid_dump_iface_list_new_from_dev(libusb_device_handle *handle,
cleanup:
- usbhid_dump_iface_list_free(list);
+ uhd_iface_list_free(list);
if (config != NULL)
libusb_free_config_descriptor(config);
@@ -191,15 +191,15 @@ cleanup:
}
-usbhid_dump_iface *
-usbhid_dump_iface_list_fltr_by_num(usbhid_dump_iface *list,
+uhd_iface *
+uhd_iface_list_fltr_by_num(uhd_iface *list,
int number)
{
- usbhid_dump_iface *prev;
- usbhid_dump_iface *iface;
- usbhid_dump_iface *next;
+ uhd_iface *prev;
+ uhd_iface *iface;
+ uhd_iface *next;
- assert(usbhid_dump_iface_list_valid(list));
+ assert(uhd_iface_list_valid(list));
assert(number < UINT8_MAX);
if (number < 0)
@@ -225,11 +225,11 @@ usbhid_dump_iface_list_fltr_by_num(usbhid_dump_iface *list,
enum libusb_error
-usbhid_dump_iface_list_detach(usbhid_dump_iface *list)
+uhd_iface_list_detach(uhd_iface *list)
{
enum libusb_error err;
- assert(usbhid_dump_iface_list_valid(list));
+ assert(uhd_iface_list_valid(list));
for (; list != NULL; list = list->next)
{
@@ -245,11 +245,11 @@ usbhid_dump_iface_list_detach(usbhid_dump_iface *list)
enum libusb_error
-usbhid_dump_iface_list_attach(usbhid_dump_iface *list)
+uhd_iface_list_attach(uhd_iface *list)
{
enum libusb_error err;
- assert(usbhid_dump_iface_list_valid(list));
+ assert(uhd_iface_list_valid(list));
for (; list != NULL; list = list->next)
if (list->detached)
@@ -265,11 +265,11 @@ usbhid_dump_iface_list_attach(usbhid_dump_iface *list)
enum libusb_error
-usbhid_dump_iface_list_claim(usbhid_dump_iface *list)
+uhd_iface_list_claim(uhd_iface *list)
{
enum libusb_error err;
- assert(usbhid_dump_iface_list_valid(list));
+ assert(uhd_iface_list_valid(list));
for (; list != NULL; list = list->next)
{
@@ -285,11 +285,11 @@ usbhid_dump_iface_list_claim(usbhid_dump_iface *list)
enum libusb_error
-usbhid_dump_iface_list_clear_halt(usbhid_dump_iface *list)
+uhd_iface_list_clear_halt(uhd_iface *list)
{
enum libusb_error err;
- assert(usbhid_dump_iface_list_valid(list));
+ assert(uhd_iface_list_valid(list));
for (; list != NULL; list = list->next)
{
@@ -303,13 +303,13 @@ usbhid_dump_iface_list_clear_halt(usbhid_dump_iface *list)
enum libusb_error
-usbhid_dump_iface_list_set_idle(const usbhid_dump_iface *list,
+uhd_iface_list_set_idle(const uhd_iface *list,
uint8_t duration,
unsigned int timeout)
{
int rc;
- assert(usbhid_dump_iface_list_valid(list));
+ assert(uhd_iface_list_valid(list));
for (; list != NULL; list = list->next)
{
@@ -338,13 +338,13 @@ usbhid_dump_iface_list_set_idle(const usbhid_dump_iface *list,
enum libusb_error
-usbhid_dump_iface_list_set_protocol(const usbhid_dump_iface *list,
+uhd_iface_list_set_protocol(const uhd_iface *list,
bool report,
unsigned int timeout)
{
int rc;
- assert(usbhid_dump_iface_list_valid(list));
+ assert(uhd_iface_list_valid(list));
for (; list != NULL; list = list->next)
{
@@ -373,11 +373,11 @@ usbhid_dump_iface_list_set_protocol(const usbhid_dump_iface *list,
enum libusb_error
-usbhid_dump_iface_list_release(usbhid_dump_iface *list)
+uhd_iface_list_release(uhd_iface *list)
{
enum libusb_error err;
- assert(usbhid_dump_iface_list_valid(list));
+ assert(uhd_iface_list_valid(list));
for (; list != NULL; list = list->next)
if (list->claimed)
diff --git a/lib/str.c b/lib/str.c
index ceff86d..af886c9 100644
--- a/lib/str.c
+++ b/lib/str.c
@@ -28,7 +28,7 @@
#include <ctype.h>
bool
-usbhid_dump_strisblank(const char *str)
+uhd_strisblank(const char *str)
{
for (; *str != '\0'; str++)
if (!isblank(*str))
diff --git a/src/usbhid-dump.c b/src/usbhid-dump.c
index 2b8a71e..445b201 100644
--- a/src/usbhid-dump.c
+++ b/src/usbhid-dump.c
@@ -195,9 +195,9 @@ dump(uint8_t iface_num,
static bool
-dump_iface_list_descriptor(const usbhid_dump_iface *list)
+dump_iface_list_descriptor(const uhd_iface *list)
{
- const usbhid_dump_iface *iface;
+ const uhd_iface *iface;
uint8_t buf[MAX_DESCRIPTOR_SIZE];
int rc;
enum libusb_error err;
@@ -228,12 +228,12 @@ static void
dump_iface_list_stream_cb(struct libusb_transfer *transfer)
{
enum libusb_error err;
- usbhid_dump_iface *iface;
+ uhd_iface *iface;
assert(transfer != NULL);
- iface = (usbhid_dump_iface *)transfer->user_data;
- assert(usbhid_dump_iface_valid(iface));
+ iface = (uhd_iface *)transfer->user_data;
+ assert(uhd_iface_valid(iface));
/* Clear interface "has transfer submitted" flag */
iface->submitted = false;
@@ -275,28 +275,28 @@ dump_iface_list_stream_cb(struct libusb_transfer *transfer)
static bool
-dump_iface_list_stream(libusb_context *ctx, usbhid_dump_iface *list)
+dump_iface_list_stream(libusb_context *ctx, uhd_iface *list)
{
bool result = false;
enum libusb_error err;
size_t transfer_num = 0;
struct libusb_transfer **transfer_list = NULL;
struct libusb_transfer **ptransfer;
- usbhid_dump_iface *iface;
+ uhd_iface *iface;
bool submitted = false;
/* Set report protocol on all interfaces */
- err = usbhid_dump_iface_list_set_protocol(list, true, TIMEOUT);
+ err = uhd_iface_list_set_protocol(list, true, TIMEOUT);
if (err != LIBUSB_SUCCESS)
LIBUSB_ERROR_CLEANUP("set report protocol");
/* Set infinite idle duration on all interfaces */
- err = usbhid_dump_iface_list_set_idle(list, 0, TIMEOUT);
+ err = uhd_iface_list_set_idle(list, 0, TIMEOUT);
if (err != LIBUSB_SUCCESS)
LIBUSB_ERROR_CLEANUP("set infinite idle duration");
/* Calculate number of interfaces and thus transfers */
- transfer_num = usbhid_dump_iface_list_len(list);
+ transfer_num = uhd_iface_list_len(list);
/* Allocate transfer list */
transfer_list = malloc(sizeof(*transfer_list) * transfer_num);
@@ -359,7 +359,7 @@ dump_iface_list_stream(libusb_context *ctx, usbhid_dump_iface *list)
if (err != LIBUSB_SUCCESS)
LIBUSB_ERROR_CLEANUP("submit a transfer");
/* Set interface "has transfer submitted" flag */
- ((usbhid_dump_iface *)(*ptransfer)->user_data)->submitted = true;
+ ((uhd_iface *)(*ptransfer)->user_data)->submitted = true;
/* Set "have any submitted transfers" flag */
submitted = true;
}
@@ -378,7 +378,7 @@ dump_iface_list_stream(libusb_context *ctx, usbhid_dump_iface *list)
(size_t)(ptransfer - transfer_list) < transfer_num;
ptransfer++)
{
- iface = (usbhid_dump_iface *)(*ptransfer)->user_data;
+ iface = (uhd_iface *)(*ptransfer)->user_data;
if (iface != NULL && iface->submitted)
submitted = true;
@@ -401,7 +401,7 @@ cleanup:
(size_t)(ptransfer - transfer_list) < transfer_num;
ptransfer++)
{
- iface = (usbhid_dump_iface *)(*ptransfer)->user_data;
+ iface = (uhd_iface *)(*ptransfer)->user_data;
if (iface != NULL && iface->submitted)
{
@@ -439,7 +439,7 @@ cleanup:
(size_t)(ptransfer - transfer_list) < transfer_num;
ptransfer++)
{
- iface = (usbhid_dump_iface *)(*ptransfer)->user_data;
+ iface = (uhd_iface *)(*ptransfer)->user_data;
if (iface != NULL && iface->submitted)
submitted = true;
@@ -456,7 +456,7 @@ cleanup:
(size_t)(ptransfer - transfer_list) < transfer_num;
ptransfer++)
{
- iface = (usbhid_dump_iface *)(*ptransfer)->user_data;
+ iface = (uhd_iface *)(*ptransfer)->user_data;
/*
* Only free a transfer if it is not submitted. Better leak some
@@ -484,7 +484,7 @@ run(bool dump_descriptor,
enum libusb_error err;
libusb_context *ctx = NULL;
libusb_device_handle *handle = NULL;
- usbhid_dump_iface *iface_list = NULL;
+ uhd_iface *iface_list = NULL;
/* Initialize libusb context */
err = libusb_init(&ctx);
@@ -500,23 +500,23 @@ run(bool dump_descriptor,
LIBUSB_FAILURE_CLEANUP("find and open the device");
/* Retrieve the list of HID interfaces from a device */
- err = usbhid_dump_iface_list_new_from_dev(handle, &iface_list);
+ err = uhd_iface_list_new_from_dev(handle, &iface_list);
if (err != LIBUSB_SUCCESS)
LIBUSB_FAILURE_CLEANUP("find a HID interface");
/* Filter the interface list by specified interface number */
- iface_list = usbhid_dump_iface_list_fltr_by_num(iface_list, iface_num);
- if (usbhid_dump_iface_list_empty(iface_list))
+ iface_list = uhd_iface_list_fltr_by_num(iface_list, iface_num);
+ if (uhd_iface_list_empty(iface_list))
ERROR_CLEANUP("No matching HID interfaces");
/* Detach interfaces */
- err = usbhid_dump_iface_list_detach(iface_list);
+ err = uhd_iface_list_detach(iface_list);
if (err != LIBUSB_SUCCESS)
LIBUSB_FAILURE_CLEANUP("detach the interface(s) from "
"the kernel drivers");
/* Claim interfaces */
- err = usbhid_dump_iface_list_claim(iface_list);
+ err = uhd_iface_list_claim(iface_list);
if (err != LIBUSB_SUCCESS)
LIBUSB_FAILURE_CLEANUP("claim the interface(s)");
@@ -529,17 +529,17 @@ run(bool dump_descriptor,
cleanup:
/* Release the interfaces back */
- err = usbhid_dump_iface_list_release(iface_list);
+ err = uhd_iface_list_release(iface_list);
if (err != LIBUSB_SUCCESS)
LIBUSB_FAILURE("release the interface(s)");
/* Attach interfaces back */
- err = usbhid_dump_iface_list_attach(iface_list);
+ err = uhd_iface_list_attach(iface_list);
if (err != LIBUSB_SUCCESS)
LIBUSB_FAILURE("attach the interface(s) to the kernel drivers");
/* Free the interface list */
- usbhid_dump_iface_list_free(iface_list);
+ uhd_iface_list_free(iface_list);
/* Free the device */
if (handle != NULL)
@@ -685,21 +685,21 @@ main(int argc, char **argv)
*/
errno = 0;
bus_num = strtol(bus_str, &end, 0);
- if (errno != 0 || !usbhid_dump_strisblank(end) ||
+ if (errno != 0 || !uhd_strisblank(end) ||
bus_num <= 0 || bus_num > 255)
USAGE_ERROR("Invalid bus number \"%s\"", bus_str);
errno = 0;
dev_num = strtol(dev_str, &end, 0);
- if (errno != 0 || !usbhid_dump_strisblank(end) ||
+ if (errno != 0 || !uhd_strisblank(end) ||
dev_num <= 0 || dev_num > 255)
USAGE_ERROR("Invalid device address \"%s\"", dev_str);
- if (!usbhid_dump_strisblank(if_str))
+ if (!uhd_strisblank(if_str))
{
errno = 0;
if_num = strtol(if_str, &end, 0);
- if (errno != 0 || !usbhid_dump_strisblank(end) ||
+ if (errno != 0 || !uhd_strisblank(end) ||
if_num < 0 || if_num >= 255)
USAGE_ERROR("Invalid interface number \"%s\"", if_str);
}