Browse Source

Use macro expansion to iterate over all the drivers without explicitly writing them out in usbutils.c

nfactor-troky
ckolivas 11 years ago
parent
commit
0952a8812f
  1. 42
      usbutils.c

42
usbutils.c

@ -3234,42 +3234,14 @@ void usb_initialise() @@ -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);

Loading…
Cancel
Save