From 0952a8812ffcfa22fc5f613fdca527175ffc5c6b Mon Sep 17 00:00:00 2001 From: ckolivas Date: Sun, 29 Sep 2013 02:45:45 +1000 Subject: [PATCH] Use macro expansion to iterate over all the drivers without explicitly writing them out in usbutils.c --- usbutils.c | 42 +++++++----------------------------------- 1 file changed, 7 insertions(+), 35 deletions(-) diff --git a/usbutils.c b/usbutils.c index 909cd37c..54b90549 100644 --- a/usbutils.c +++ b/usbutils.c @@ -3234,42 +3234,14 @@ void usb_initialise() quit(1, "Invalid --usb DRV:limit - limit must be >= 0"); found = false; -#ifdef USE_BFLSC - if (strcasecmp(ptr, bflsc_drv.name) == 0) { - drv_count[bflsc_drv.drv_id].limit = lim; - found = true; + /* Use the DRIVER_PARSE_COMMANDS macro to iterate + * over all the drivers. */ +#define DRIVER_ADD_COMMAND(X) if (strcasecmp(ptr, X##_drv.name) == 0) { \ + drv_count[X##_drv.drv_id].limit = lim; \ + found = true; \ } -#endif -#ifdef USE_BITFORCE - if (!found && strcasecmp(ptr, bitforce_drv.name) == 0) { - drv_count[bitforce_drv.drv_id].limit = lim; - found = true; - } -#endif -#ifdef USE_BITFURY - if (!found && strcasecmp(ptr, bitfury_drv.name) == 0) { - drv_count[bitfury_drv.drv_id].limit = lim; - found = true; - } -#endif -#ifdef USE_MODMINER - if (!found && strcasecmp(ptr, modminer_drv.name) == 0) { - drv_count[modminer_drv.drv_id].limit = lim; - found = true; - } -#endif -#ifdef USE_ICARUS - if (!found && strcasecmp(ptr, icarus_drv.name) == 0) { - drv_count[icarus_drv.drv_id].limit = lim; - found = true; - } -#endif -#ifdef USE_AVALON - if (!found && strcasecmp(ptr, avalon_drv.name) == 0) { - drv_count[avalon_drv.drv_id].limit = lim; - found = true; - } -#endif + DRIVER_PARSE_COMMANDS +#undef DRIVER_ADD_COMMAND if (!found) quit(1, "Invalid --usb DRV:limit - unknown DRV='%s'", ptr);