Use macro expansion in usb_find_devices to avoid explicitly listing them all.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45
diff --git a/usbutils.c b/usbutils.c
index 54b9054..c428b04 100644
--- a/usbutils.c
+++ b/usbutils.c
@@ -1851,35 +1851,11 @@ static struct usb_find_devices *usb_check(__maybe_unused struct device_drv *drv,
return NULL;
}
-#ifdef USE_BFLSC
- if (drv->drv_id == DRIVER_bflsc)
- return usb_check_each(DRIVER_bflsc, drv, dev);
-#endif
-
-#ifdef USE_BITFORCE
- if (drv->drv_id == DRIVER_bitforce)
- return usb_check_each(DRIVER_bitforce, drv, dev);
-#endif
-
-#ifdef USE_BITFURY
- if (drv->drv_id == DRIVER_bitfury)
- return usb_check_each(DRIVER_bitfury, drv, dev);
-#endif
-
-#ifdef USE_MODMINER
- if (drv->drv_id == DRIVER_modminer)
- return usb_check_each(DRIVER_modminer, drv, dev);
-#endif
-
-#ifdef USE_ICARUS
- if (drv->drv_id == DRIVER_icarus)
- return usb_check_each(DRIVER_icarus, drv, dev);
-#endif
-
-#ifdef USE_AVALON
- if (drv->drv_id == DRIVER_avalon)
- return usb_check_each(DRIVER_avalon, drv, dev);
-#endif
+#define DRIVER_ADD_COMMAND(X) \
+ if (drv->drv_id == DRIVER_##X) \
+ return usb_check_each(DRIVER_##X, drv, dev);
+ DRIVER_PARSE_COMMANDS
+#undef DRIVER_ADD_COMMAND
return NULL;
}