diff options
Diffstat (limited to 'sys/dev/pcmcia/if_wi_pcmcia.c')
-rw-r--r-- | sys/dev/pcmcia/if_wi_pcmcia.c | 128 |
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 && |