Skip to content

Instantly share code, notes, and snippets.

@ambroff
Last active October 14, 2019 17:51
Show Gist options
  • Save ambroff/5567d3cb4c09c911168bdf3307915544 to your computer and use it in GitHub Desktop.
Save ambroff/5567d3cb4c09c911168bdf3307915544 to your computer and use it in GitHub Desktop.
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 d45323202e..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(7) = {
+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(7) = {
{"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..6fc14e1a17 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; \
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment