summaryrefslogtreecommitdiff
path: root/sys/dev/pcmcia/if_wi_pcmcia.c
diff options
context:
space:
mode:
Diffstat (limited to 'sys/dev/pcmcia/if_wi_pcmcia.c')
-rw-r--r--sys/dev/pcmcia/if_wi_pcmcia.c128
1 files changed, 43 insertions, 85 deletions
diff --git a/sys/dev/pcmcia/if_wi_pcmcia.c b/sys/dev/pcmcia/if_wi_pcmcia.c
index 89d99f968bc..9d36714edce 100644
--- a/sys/dev/pcmcia/if_wi_pcmcia.c
+++ b/sys/dev/pcmcia/if_wi_pcmcia.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: if_wi_pcmcia.c,v 1.44 2003/10/26 15:34:16 drahn Exp $ */
+/* $OpenBSD: if_wi_pcmcia.c,v 1.45 2003/12/16 03:20:00 millert Exp $ */
/* $NetBSD: if_wi_pcmcia.c,v 1.14 2001/11/26 04:34:56 ichiro Exp $ */
/*
@@ -92,202 +92,158 @@ static const struct wi_pcmcia_product {
u_int16_t pp_vendor;
u_int16_t pp_product;
const char *pp_cisinfo[4];
- const char *pp_name;
} wi_pcmcia_products[] = {
{ PCMCIA_VENDOR_LUCENT,
PCMCIA_PRODUCT_LUCENT_WAVELAN_IEEE,
- PCMCIA_CIS_LUCENT_WAVELAN_IEEE,
- "WaveLAN/IEEE"
+ PCMCIA_CIS_LUCENT_WAVELAN_IEEE
},
{ PCMCIA_VENDOR_3COM,
PCMCIA_PRODUCT_3COM_3CRWE737A,
- PCMCIA_CIS_3COM_3CRWE737A,
- "3Com AirConnect Wireless LAN"
+ PCMCIA_CIS_3COM_3CRWE737A
},
{ PCMCIA_VENDOR_3COM,
PCMCIA_PRODUCT_3COM_3CRWE777A,
- PCMCIA_CIS_3COM_3CRWE777A,
- "3Com AirConnect Wireless LAN"
+ PCMCIA_CIS_3COM_3CRWE777A
},
{ PCMCIA_VENDOR_COREGA,
PCMCIA_PRODUCT_COREGA_WIRELESS_LAN_PCC_11,
- PCMCIA_CIS_COREGA_WIRELESS_LAN_PCC_11,
- "Corega Wireless LAN PCC-11"
+ PCMCIA_CIS_COREGA_WIRELESS_LAN_PCC_11
},
{ PCMCIA_VENDOR_COREGA,
PCMCIA_PRODUCT_COREGA_WIRELESS_LAN_PCCA_11,
- PCMCIA_CIS_COREGA_WIRELESS_LAN_PCCA_11,
- "Corega Wireless LAN PCCA-11",
+ PCMCIA_CIS_COREGA_WIRELESS_LAN_PCCA_11
},
{ PCMCIA_VENDOR_COREGA,
PCMCIA_PRODUCT_COREGA_WIRELESS_LAN_PCCB_11,
- PCMCIA_CIS_COREGA_WIRELESS_LAN_PCCB_11,
- "Corega Wireless LAN PCCB-11",
+ PCMCIA_CIS_COREGA_WIRELESS_LAN_PCCB_11
},
{ PCMCIA_VENDOR_COREGA,
PCMCIA_PRODUCT_COREGA_WIRELESS_LAN_PCCL_11,
- PCMCIA_CIS_COREGA_WIRELESS_LAN_PCCL_11,
- "Corega Wireless LAN PCCL-11",
+ PCMCIA_CIS_COREGA_WIRELESS_LAN_PCCL_11
},
{ PCMCIA_VENDOR_INTEL,
PCMCIA_PRODUCT_INTEL_PRO_WLAN_2011,
- PCMCIA_CIS_INTEL_PRO_WLAN_2011,
- "Intel PRO/Wireless 2011",
+ PCMCIA_CIS_INTEL_PRO_WLAN_2011
},
{ PCMCIA_VENDOR_INTERSIL,
PCMCIA_PRODUCT_INTERSIL_PRISM2,
- PCMCIA_CIS_INTERSIL_PRISM2,
- "Intersil Prism II",
+ PCMCIA_CIS_INTERSIL_PRISM2
},
{ PCMCIA_VENDOR_SAMSUNG,
PCMCIA_PRODUCT_SAMSUNG_SWL_2000N,
- PCMCIA_CIS_SAMSUNG_SWL_2000N,
- "Samsung MagicLAN SWL-2000N",
+ PCMCIA_CIS_SAMSUNG_SWL_2000N
},
{ PCMCIA_VENDOR_LINKSYS2,
PCMCIA_PRODUCT_LINKSYS2_IWN,
- PCMCIA_CIS_LINKSYS2_IWN,
- "Linksys Instant Wireless Network",
+ PCMCIA_CIS_LINKSYS2_IWN
},
{ PCMCIA_VENDOR_LINKSYS2,
PCMCIA_PRODUCT_LINKSYS2_IWN2,
- PCMCIA_CIS_LINKSYS2_IWN2,
- "Linksys Instant Wireless Network",
+ PCMCIA_CIS_LINKSYS2_IWN2
},
{ PCMCIA_VENDOR_LUCENT,
PCMCIA_PRODUCT_LUCENT_WAVELAN_IEEE,
- PCMCIA_CIS_SMC_2632W,
- "SMC 2632 EZ Connect Wireless PC Card",
+ PCMCIA_CIS_SMC_2632W
},
{ PCMCIA_VENDOR_LUCENT,
PCMCIA_PRODUCT_LUCENT_WAVELAN_IEEE,
- PCMCIA_CIS_NANOSPEED_PRISM2,
- "NANOSPEED ROOT-RZ2000 WLAN Card",
+ PCMCIA_CIS_NANOSPEED_PRISM2
},
{ PCMCIA_VENDOR_ELSA,
PCMCIA_PRODUCT_ELSA_XI300_IEEE,
- PCMCIA_CIS_ELSA_XI300_IEEE,
- "XI300 Wireless LAN",
+ PCMCIA_CIS_ELSA_XI300_IEEE
},
{ PCMCIA_VENDOR_ELSA,
PCMCIA_PRODUCT_ELSA_XI325_IEEE,
- PCMCIA_CIS_ELSA_XI325_IEEE,
- "XI325 Wireless LAN",
+ PCMCIA_CIS_ELSA_XI325_IEEE
},
{ PCMCIA_VENDOR_COMPAQ,
PCMCIA_PRODUCT_COMPAQ_NC5004,
- PCMCIA_CIS_COMPAQ_NC5004,
- "Compaq Agency NC5004 Wireless Card",
+ PCMCIA_CIS_COMPAQ_NC5004
},
{ PCMCIA_VENDOR_CONTEC,
PCMCIA_PRODUCT_CONTEC_FX_DS110_PCC,
- PCMCIA_CIS_CONTEC_FX_DS110_PCC,
- "Contec FLEXLAN/FX-DS110-PCC",
+ PCMCIA_CIS_CONTEC_FX_DS110_PCC
},
{ PCMCIA_VENDOR_TDK,
PCMCIA_PRODUCT_TDK_LAK_CD011WL,
- PCMCIA_CIS_TDK_LAK_CD011WL,
- "TDK LAK-CD011WL",
+ PCMCIA_CIS_TDK_LAK_CD011WL
},
{ PCMCIA_VENDOR_LUCENT,
PCMCIA_PRODUCT_LUCENT_WAVELAN_IEEE,
- PCMCIA_CIS_NEC_CMZ_RT_WP,
- "NEC Wireless Card CMZ-RT-WP",
+ PCMCIA_CIS_NEC_CMZ_RT_WP
},
{ PCMCIA_VENDOR_LUCENT,
PCMCIA_PRODUCT_LUCENT_WAVELAN_IEEE,
- PCMCIA_CIS_NTT_ME_WLAN,
- "NTT-ME 11Mbps Wireless LAN PC Card",
+ PCMCIA_CIS_NTT_ME_WLAN
},
{ PCMCIA_VENDOR_ADDTRON,
PCMCIA_PRODUCT_ADDTRON_AWP100,
- PCMCIA_CIS_ADDTRON_AWP100,
- "Addtron AWP-100",
+ PCMCIA_CIS_ADDTRON_AWP100
},
{ PCMCIA_VENDOR_LUCENT,
PCMCIA_PRODUCT_LUCENT_WAVELAN_IEEE,
- PCMCIA_CIS_CABLETRON_ROAMABOUT,
- "Cabletron RoamAbout",
+ PCMCIA_CIS_CABLETRON_ROAMABOUT
},
{ PCMCIA_VENDOR_IODATA2,
PCMCIA_PRODUCT_IODATA2_WNB11PCM,
- PCMCIA_CIS_IODATA2_WNB11PCM,
- "I-O DATA WN-B11/PCM",
+ PCMCIA_CIS_IODATA2_WNB11PCM
},
{ PCMCIA_VENDOR_GEMTEK,
PCMCIA_PRODUCT_GEMTEK_WLAN,
- PCMCIA_CIS_GEMTEK_WLAN,
- "GEMTEK Prism2_5 WaveLAN Card"
+ PCMCIA_CIS_GEMTEK_WLAN
},
{ PCMCIA_VENDOR_ELSA,
PCMCIA_PRODUCT_ELSA_XI800_IEEE,
- PCMCIA_CIS_ELSA_XI800_IEEE,
- "ELSA XI800 CF Wireless LAN"
+ PCMCIA_CIS_ELSA_XI800_IEEE
},
{ PCMCIA_VENDOR_BUFFALO,
PCMCIA_PRODUCT_BUFFALO_WLI_PCM_S11,
- PCMCIA_CIS_BUFFALO_WLI_PCM_S11,
- "BUFFALO AirStation 11Mbps WLAN"
+ PCMCIA_CIS_BUFFALO_WLI_PCM_S11
},
{ PCMCIA_VENDOR_BUFFALO,
PCMCIA_PRODUCT_BUFFALO_WLI_CF_S11G,
- PCMCIA_CIS_BUFFALO_WLI_CF_S11G,
- "BUFFALO AirStation 11Mbps CF WLAN"
+ PCMCIA_CIS_BUFFALO_WLI_CF_S11G
},
{ PCMCIA_VENDOR_EMTAC,
PCMCIA_PRODUCT_EMTAC_WLAN,
- PCMCIA_CIS_EMTAC_WLAN,
- "EMTAC A2424i 11Mbps WLAN Card"
+ PCMCIA_CIS_EMTAC_WLAN
},
{ PCMCIA_VENDOR_SIMPLETECH,
PCMCIA_PRODUCT_SIMPLETECH_SPECTRUM24_ALT,
- PCMCIA_CIS_SIMPLETECH_SPECTRUM24_ALT,
- "LA4111 Spectrum24 WLAN PC Card"
+ PCMCIA_CIS_SIMPLETECH_SPECTRUM24_ALT
},
{ PCMCIA_VENDOR_ERICSSON,
PCMCIA_PRODUCT_ERICSSON_WIRELESSLAN,
- PCMCIA_CIS_ERICSSON_WIRELESSLAN,
- "DSSS Wireless LAN PC Card"
+ PCMCIA_CIS_ERICSSON_WIRELESSLAN
},
{ PCMCIA_VENDOR_PROXIM,
PCMCIA_PRODUCT_PROXIM_RANGELANDS_8430,
- PCMCIA_CIS_PROXIM_RANGELANDS_8430,
- "Proxim RangeLAN-DS/LAN PC CARD",
+ PCMCIA_CIS_PROXIM_RANGELANDS_8430
},
{ PCMCIA_VENDOR_ACTIONTEC,
PCMCIA_PRODUCT_ACTIONTEC_HWC01170,
- PCMCIA_CIS_ACTIONTEC_HWC01170,
- "ACTIONTEC PRISM Wireless LAN PC CARD",
+ PCMCIA_CIS_ACTIONTEC_HWC01170
},
{ PCMCIA_VENDOR_NOKIA,
PCMCIA_PRODUCT_NOKIA_C020_WLAN,
- PCMCIA_CIS_NOKIA_C020_WLAN,
- "NOKIA C020 Wireless LAN PC CARD",
+ PCMCIA_CIS_NOKIA_C020_WLAN
},
{ PCMCIA_VENDOR_NOKIA,
PCMCIA_PRODUCT_NOKIA_C110_WLAN,
- PCMCIA_CIS_NOKIA_C110_WLAN,
- "NOKIA C110 Wireless LAN PC CARD",
+ PCMCIA_CIS_NOKIA_C110_WLAN
},
{ PCMCIA_VENDOR_NETGEAR2,
PCMCIA_PRODUCT_NETGEAR2_MA401RA,
- PCMCIA_CIS_NETGEAR2_MA401RA,
- "Netgear MA401RA Wireless LAN PC CARD",
+ PCMCIA_CIS_NETGEAR2_MA401RA
},
{ PCMCIA_VENDOR_AIRVAST,
PCMCIA_PRODUCT_AIRVAST_WN_100,
- PCMCIA_CIS_AIRVAST_WN_100,
- "AirVast WN-100 Wireless LAN PC CARD",
+ PCMCIA_CIS_AIRVAST_WN_100
},
{ PCMCIA_VENDOR_SIEMENS,
PCMCIA_PRODUCT_SIEMENS_SS1021,
- PCMCIA_CIS_SIEMENS_SS1021,
- "SpeedStream 1021 Wireless PCMCIA CARD",
- },
- { 0,
- 0,
- { NULL, NULL, NULL, NULL },
- NULL,
+ PCMCIA_CIS_SIEMENS_SS1021
}
};
@@ -298,12 +254,14 @@ wi_lookup(pa)
struct pcmcia_attach_args *pa;
{
const struct wi_pcmcia_product *pp;
+ const struct wi_pcmcia_product *epp = wi_pcmcia_products +
+ sizeof(wi_pcmcia_products) / sizeof(wi_pcmcia_products[0]);
/*
* Several PRISM II-based cards use the Lucent WaveLAN vendor
* and product IDs so we match by CIS information first.
*/
- for (pp = wi_pcmcia_products; pp->pp_name != NULL; pp++) {
+ for (pp = wi_pcmcia_products; pp < epp; pp++) {
if (pa->card->cis1_info[0] != NULL &&
pp->pp_cisinfo[0] != NULL &&
strcmp(pa->card->cis1_info[0], pp->pp_cisinfo[0]) == 0 &&
@@ -314,7 +272,7 @@ wi_lookup(pa)
}
/* Match by vendor/product ID. */
- for (pp = wi_pcmcia_products; pp->pp_name != NULL; pp++) {
+ for (pp = wi_pcmcia_products; pp < epp; pp++) {
if (pa->manufacturer != PCMCIA_VENDOR_INVALID &&
pa->manufacturer == pp->pp_vendor &&
pa->product != PCMCIA_PRODUCT_INVALID &&