diff --git a/src/add-ons/kernel/drivers/network/wlan/idualwifi7260/glue.c b/src/add-ons/kernel/drivers/network/wlan/idualwifi7260/glue.c index 5a40cf1812..a221c129a1 100644 --- a/src/add-ons/kernel/drivers/network/wlan/idualwifi7260/glue.c +++ b/src/add-ons/kernel/drivers/network/wlan/idualwifi7260/glue.c @@ -26,7 +26,7 @@ NO_HAIKU_FBSD_MII_DRIVER(); NO_HAIKU_REENABLE_INTERRUPTS(); HAIKU_DRIVER_REQUIREMENTS(FBSD_TASKQUEUES | FBSD_WLAN); HAIKU_FIRMWARE_VERSION(1); -HAIKU_FIRMWARE_NAME_MAP(6) = { +HAIKU_FIRMWARE_NAME_MAP({ {"iwm3160fw", "iwm-3160-17.ucode"}, {"iwm3168fw", "iwm-3168-22.ucode"}, {"iwm7260fw", "iwm-7260-17.ucode"}, @@ -34,7 +34,7 @@ HAIKU_FIRMWARE_NAME_MAP(6) = { {"iwm7265Dfw", "iwm-7265D-22.ucode"}, {"iwm8000Cfw", "iwm-8000C-22.ucode"}, {"iwm8265fw", "iwm-8265-22.ucode"}, -}; +}); int diff --git a/src/add-ons/kernel/drivers/network/wlan/iprowifi2100/glue.c b/src/add-ons/kernel/drivers/network/wlan/iprowifi2100/glue.c index 1d26d7be64..e324a7f93a 100644 --- a/src/add-ons/kernel/drivers/network/wlan/iprowifi2100/glue.c +++ b/src/add-ons/kernel/drivers/network/wlan/iprowifi2100/glue.c @@ -23,11 +23,11 @@ NO_HAIKU_FBSD_MII_DRIVER(); NO_HAIKU_REENABLE_INTERRUPTS(); HAIKU_DRIVER_REQUIREMENTS(FBSD_TASKQUEUES | FBSD_SWI_TASKQUEUE | FBSD_WLAN); HAIKU_FIRMWARE_VERSION(130); -HAIKU_FIRMWARE_NAME_MAP(3) = { +HAIKU_FIRMWARE_NAME_MAP({ {"ipw_bss", "ipw2100-1.3.fw"}, {"ipw_ibss", "ipw2100-1.3-i.fw"}, {"ipw_monitor", "ipw2100-1.3-p.fw"} -}; +}); int diff --git a/src/add-ons/kernel/drivers/network/wlan/iprowifi2200/glue.c b/src/add-ons/kernel/drivers/network/wlan/iprowifi2200/glue.c index 8eca0d0851..02cbf47f6b 100644 --- a/src/add-ons/kernel/drivers/network/wlan/iprowifi2200/glue.c +++ b/src/add-ons/kernel/drivers/network/wlan/iprowifi2200/glue.c @@ -22,8 +22,11 @@ HAIKU_FBSD_WLAN_DRIVER_GLUE(iprowifi2200, iwi, pci) NO_HAIKU_FBSD_MII_DRIVER(); HAIKU_DRIVER_REQUIREMENTS(FBSD_TASKQUEUES | FBSD_WLAN); HAIKU_FIRMWARE_VERSION(300); -HAIKU_FIRMWARE_NAME_MAP(3) = {{"iwi_bss", "ipw2200-bss.fw"}, - {"iwi_ibss", "ipw2200-ibss.fw"}, {"iwi_monitor", "ipw2200-sniffer.fw"}}; +HAIKU_FIRMWARE_NAME_MAP({ + {"iwi_bss", "ipw2200-bss.fw"}, + {"iwi_ibss", "ipw2200-ibss.fw"}, + {"iwi_monitor", "ipw2200-sniffer.fw"} +}); int diff --git a/src/add-ons/kernel/drivers/network/wlan/iprowifi3945/glue.c b/src/add-ons/kernel/drivers/network/wlan/iprowifi3945/glue.c index f3b84110ef..8a2e994fc3 100644 --- a/src/add-ons/kernel/drivers/network/wlan/iprowifi3945/glue.c +++ b/src/add-ons/kernel/drivers/network/wlan/iprowifi3945/glue.c @@ -25,7 +25,7 @@ NO_HAIKU_FBSD_MII_DRIVER(); NO_HAIKU_REENABLE_INTERRUPTS(); HAIKU_DRIVER_REQUIREMENTS(FBSD_TASKQUEUES | FBSD_WLAN); HAIKU_FIRMWARE_VERSION(2144); -HAIKU_FIRMWARE_NAME_MAP(1) = {{"wpifw", "iwlwifi-3945-2.ucode"}}; +HAIKU_FIRMWARE_NAME_MAP({{"wpifw", "iwlwifi-3945-2.ucode"}}); int diff --git a/src/add-ons/kernel/drivers/network/wlan/iprowifi4965/glue.c b/src/add-ons/kernel/drivers/network/wlan/iprowifi4965/glue.c index d67d05469a..80387322e4 100644 --- a/src/add-ons/kernel/drivers/network/wlan/iprowifi4965/glue.c +++ b/src/add-ons/kernel/drivers/network/wlan/iprowifi4965/glue.c @@ -26,7 +26,7 @@ NO_HAIKU_FBSD_MII_DRIVER(); NO_HAIKU_REENABLE_INTERRUPTS(); HAIKU_DRIVER_REQUIREMENTS(FBSD_TASKQUEUES | FBSD_WLAN); HAIKU_FIRMWARE_VERSION(44417); -HAIKU_FIRMWARE_NAME_MAP(13) = { +HAIKU_FIRMWARE_NAME_MAP({ {"iwn100fw", "iwlwifi-100-5.ucode"}, {"iwn105fw", "iwlwifi-105-6.ucode"}, {"iwn135fw", "iwlwifi-135-6.ucode"}, @@ -40,7 +40,7 @@ HAIKU_FIRMWARE_NAME_MAP(13) = { {"iwn6000g2afw", "iwlwifi-6000g2a-6.ucode"}, {"iwn6000g2bfw", "iwlwifi-6000g2b-6.ucode"}, {"iwn6050fw", "iwlwifi-6050-5.ucode"} -}; +}); int diff --git a/src/add-ons/kernel/drivers/network/wlan/ralinkwifi/glue.c b/src/add-ons/kernel/drivers/network/wlan/ralinkwifi/glue.c index 3c906eb7b4..f3893c5f27 100644 --- a/src/add-ons/kernel/drivers/network/wlan/ralinkwifi/glue.c +++ b/src/add-ons/kernel/drivers/network/wlan/ralinkwifi/glue.c @@ -28,12 +28,12 @@ HAIKU_FBSD_WLAN_DRIVER_GLUE(ralinkwifi, ral, pci) HAIKU_DRIVER_REQUIREMENTS(FBSD_TASKQUEUES | FBSD_SWI_TASKQUEUE | FBSD_WLAN); HAIKU_FIRMWARE_VERSION(0); -HAIKU_FIRMWARE_NAME_MAP(4) = { +HAIKU_FIRMWARE_NAME_MAP({ {"rt2561fw", "rt2561.bin"}, {"rt2561sfw", "rt2561s.bin"}, {"rt2661fw", "rt2661.bin"}, {"rt2860fw", "rt2860.bin"} -}; +}); NO_HAIKU_FBSD_MII_DRIVER(); NO_HAIKU_REENABLE_INTERRUPTS(); diff --git a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/glue.c b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/glue.c index e67e085ccc..e89a2b1c55 100644 --- a/src/add-ons/kernel/drivers/network/wlan/realtekwifi/glue.c +++ b/src/add-ons/kernel/drivers/network/wlan/realtekwifi/glue.c @@ -24,11 +24,11 @@ HAIKU_FBSD_WLAN_DRIVER_GLUE(realtekwifi, rtwn_pci, pci) HAIKU_DRIVER_REQUIREMENTS(FBSD_WLAN); HAIKU_FIRMWARE_VERSION(0); -HAIKU_FIRMWARE_NAME_MAP(3) = { +HAIKU_FIRMWARE_NAME_MAP({ {"rtwn-rtl8188eefw", "rtl8188eefw.ucode"}, {"rtwn-rtl8192cfwE", "rtl8192cfwE.ucode"}, {"rtwn-rtl8192cfwE_B", "rtl8192cfwE_B.ucode"}, -}; +}); NO_HAIKU_FBSD_MII_DRIVER(); NO_HAIKU_REENABLE_INTERRUPTS(); diff --git a/src/libs/compat/freebsd_network/compat/sys/haiku-module.h b/src/libs/compat/freebsd_network/compat/sys/haiku-module.h index 5c569de0cf..ef28192c2a 100644 --- a/src/libs/compat/freebsd_network/compat/sys/haiku-module.h +++ b/src/libs/compat/freebsd_network/compat/sys/haiku-module.h @@ -234,9 +234,17 @@ extern const uint __haiku_firmware_version; extern const uint __haiku_firmware_parts_count; extern const char* __haiku_firmware_name_map[][2]; -#define HAIKU_FIRMWARE_NAME_MAP(firmwarePartsCount) \ - const uint __haiku_firmware_parts_count = firmwarePartsCount; \ - const char* __haiku_firmware_name_map[firmwarePartsCount][2] +/* + * Provide a firmware name mapping as a multi-dimentional const char* array. + * + * HAIKU_FIRMWARE_NAME_MAP({ + * {"name-used-by-driver", "actual-name-of-firmware-file-on-disk"}, + * ... + * }); + */ +#define HAIKU_FIRMWARE_NAME_MAP(...) \ + const char* __haiku_firmware_name_map[][2] = __VA_ARGS__; \ + const uint __haiku_firmware_parts_count = B_COUNT_OF(__haiku_firmware_name_map) #define NO_HAIKU_FIRMWARE_NAME_MAP() \ const uint __haiku_firmware_parts_count = 0; \