aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorJouni Malinen <j@w1.fi>2011-01-30 19:29:25 (GMT)
committerJouni Malinen <j@w1.fi>2011-01-30 19:29:25 (GMT)
commitdf077c6262f5a49ee9208041b05d639f20a61a26 (patch)
treeca9d4fe894610adc558a96aedc43912684a198e7 /src
parentf1bed4a70ddb4a9e7e11e3ebac6f9c479c502ceb (diff)
downloadhostap-df077c6262f5a49ee9208041b05d639f20a61a26.zip
hostap-df077c6262f5a49ee9208041b05d639f20a61a26.tar.gz
hostap-df077c6262f5a49ee9208041b05d639f20a61a26.tar.bz2
Remove obsolete drivers wrappers: atmel, ndiswrapper, ipw, hermes
There is no real reason to maintain these in the current development branch anymore. If someone really needs support for the obsolete driver interfaces, these can be found in older wpa_supplicant branches. driver_atmel.c - vendor-specific interface for ATMEL AT76C5XXx cards - for some old out-of-tree driver; not for the upstream atmel* drivers driver_ndiswrapper.c - vendor-specific interface for an out-of-tree driver - ndiswrapper should work with driver_wext.c, too driver_ipw.c - vendor-specific interface for old ipw2100/2200 driver - the upstream driver works with driver_wext.c (and does not work with the old interface) driver_hermes.c - vendor driver that was not even included in the main wpa_supplicant releases
Diffstat (limited to 'src')
-rw-r--r--src/drivers/driver_atmel.c500
-rw-r--r--src/drivers/driver_ipw.c473
-rw-r--r--src/drivers/driver_ndiswrapper.c378
-rw-r--r--src/drivers/drivers.c25
-rw-r--r--src/drivers/drivers.mak24
5 files changed, 0 insertions, 1400 deletions
diff --git a/src/drivers/driver_atmel.c b/src/drivers/driver_atmel.c
deleted file mode 100644
index 8d748d3..0000000
--- a/src/drivers/driver_atmel.c
+++ /dev/null
@@ -1,500 +0,0 @@
-/*
- * WPA Supplicant - Driver interaction with Atmel Wireless LAN drivers
- * Copyright (c) 2000-2005, ATMEL Corporation
- * Copyright (c) 2004-2007, Jouni Malinen <j@w1.fi>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- *
- * Alternatively, this software may be distributed under the terms of BSD
- * license.
- *
- * See README and COPYING for more details.
- */
-
-/******************************************************************************
- Copyright 2000-2001 ATMEL Corporation.
-
- WPA Supplicant - driver interaction with Atmel Wireless lan drivers.
-
- This is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with Atmel wireless lan drivers; if not, write to the Free Software
- Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-
-******************************************************************************/
-
-/*
- * Alternatively, this software may be distributed under the terms of BSD
- * license.
- */
-
-#include "includes.h"
-#include <sys/ioctl.h>
-
-#include "wireless_copy.h"
-#include "common.h"
-#include "driver.h"
-#include "driver_wext.h"
-
-struct wpa_driver_atmel_data {
- void *wext; /* private data for driver_wext */
- void *ctx;
- char ifname[IFNAMSIZ + 1];
- int sock;
-};
-
-
-#define ATMEL_WPA_IOCTL (SIOCIWFIRSTPRIV + 2)
-#define ATMEL_WPA_IOCTL_PARAM (SIOCIWFIRSTPRIV + 3)
-#define ATMEL_WPA_IOCTL_GET_PARAM (SIOCIWFIRSTPRIV + 4)
-
-
-/* ATMEL_WPA_IOCTL ioctl() cmd: */
-enum {
- SET_WPA_ENCRYPTION = 1,
- SET_CIPHER_SUITES = 2,
- MLME_STA_DEAUTH = 3,
- MLME_STA_DISASSOC = 4
-};
-
-/* ATMEL_WPA_IOCTL_PARAM ioctl() cmd: */
-enum {
- ATMEL_PARAM_WPA = 1,
- ATMEL_PARAM_PRIVACY_INVOKED = 2,
- ATMEL_PARAM_WPA_TYPE = 3
-};
-
-#define MAX_KEY_LENGTH 40
-
-struct atmel_param{
- unsigned char sta_addr[6];
- int cmd;
- u8 alg;
- u8 key_idx;
- u8 set_tx;
- u8 seq[8];
- u8 seq_len;
- u16 key_len;
- u8 key[MAX_KEY_LENGTH];
- struct{
- int reason_code;
- u8 state;
- }mlme;
- u8 pairwise_suite;
- u8 group_suite;
- u8 key_mgmt_suite;
-};
-
-
-
-static int atmel_ioctl(struct wpa_driver_atmel_data *drv,
- struct atmel_param *param,
- int len, int show_err)
-{
- struct iwreq iwr;
-
- os_memset(&iwr, 0, sizeof(iwr));
- os_strlcpy(iwr.ifr_name, drv->ifname, IFNAMSIZ);
- iwr.u.data.pointer = (caddr_t) param;
- iwr.u.data.length = len;
-
- if (ioctl(drv->sock, ATMEL_WPA_IOCTL, &iwr) < 0) {
- int ret;
- ret = errno;
- if (show_err)
- perror("ioctl[ATMEL_WPA_IOCTL]");
- return ret;
- }
-
- return 0;
-}
-
-
-static int atmel2param(struct wpa_driver_atmel_data *drv, int param, int value)
-{
- struct iwreq iwr;
- int *i, ret = 0;
-
- os_memset(&iwr, 0, sizeof(iwr));
- os_strlcpy(iwr.ifr_name, drv->ifname, IFNAMSIZ);
- i = (int *) iwr.u.name;
- *i++ = param;
- *i++ = value;
-
- if (ioctl(drv->sock, ATMEL_WPA_IOCTL_PARAM, &iwr) < 0) {
- perror("ioctl[ATMEL_WPA_IOCTL_PARAM]");
- ret = -1;
- }
- return ret;
-}
-
-
-#if 0
-static int wpa_driver_atmel_set_wpa_ie(struct wpa_driver_atmel_data *drv,
- const char *wpa_ie, size_t wpa_ie_len)
-{
- struct atmel_param *param;
- int res;
- size_t blen = ATMEL_GENERIC_ELEMENT_HDR_LEN + wpa_ie_len;
- if (blen < sizeof(*param))
- blen = sizeof(*param);
-
- param = os_zalloc(blen);
- if (param == NULL)
- return -1;
-
- param->cmd = ATMEL_SET_GENERIC_ELEMENT;
- param->u.generic_elem.len = wpa_ie_len;
- os_memcpy(param->u.generic_elem.data, wpa_ie, wpa_ie_len);
- res = atmel_ioctl(drv, param, blen, 1);
-
- os_free(param);
-
- return res;
-}
-#endif
-
-
-static int wpa_driver_atmel_set_wpa(void *priv, int enabled)
-{
- struct wpa_driver_atmel_data *drv = priv;
- int ret = 0;
-
- printf("wpa_driver_atmel_set_wpa %s\n", drv->ifname);
-
- wpa_printf(MSG_DEBUG, "%s: enabled=%d", __FUNCTION__, enabled);
-
-#if 0
- if (!enabled && wpa_driver_atmel_set_wpa_ie(drv, NULL, 0) < 0)
- ret = -1;
-#endif
- if (atmel2param(drv, ATMEL_PARAM_PRIVACY_INVOKED, enabled) < 0)
- ret = -1;
- if (atmel2param(drv, ATMEL_PARAM_WPA, enabled) < 0)
- ret = -1;
-
- return ret;
-}
-
-
-static int wpa_driver_atmel_set_key(const char *ifname, void *priv,
- enum wpa_alg alg, const u8 *addr,
- int key_idx, int set_tx,
- const u8 *seq, size_t seq_len,
- const u8 *key, size_t key_len)
-{
- struct wpa_driver_atmel_data *drv = priv;
- int ret = 0;
- struct atmel_param *param;
- u8 *buf;
- u8 alg_type;
-
- size_t blen;
- char *alg_name;
-
- switch (alg) {
- case WPA_ALG_NONE:
- alg_name = "none";
- alg_type = 0;
- break;
- case WPA_ALG_WEP:
- alg_name = "WEP";
- alg_type = 1;
- break;
- case WPA_ALG_TKIP:
- alg_name = "TKIP";
- alg_type = 2;
- break;
- case WPA_ALG_CCMP:
- alg_name = "CCMP";
- alg_type = 3;
- break;
- default:
- return -1;
- }
-
- wpa_printf(MSG_DEBUG, "%s: alg=%s key_idx=%d set_tx=%d seq_len=%lu "
- "key_len=%lu", __FUNCTION__, alg_name, key_idx, set_tx,
- (unsigned long) seq_len, (unsigned long) key_len);
-
- if (seq_len > 8)
- return -2;
-
- blen = sizeof(*param) + key_len;
- buf = os_zalloc(blen);
- if (buf == NULL)
- return -1;
-
- param = (struct atmel_param *) buf;
-
- param->cmd = SET_WPA_ENCRYPTION;
-
- if (addr == NULL)
- os_memset(param->sta_addr, 0xff, ETH_ALEN);
- else
- os_memcpy(param->sta_addr, addr, ETH_ALEN);
-
- param->alg = alg_type;
- param->key_idx = key_idx;
- param->set_tx = set_tx;
- if (seq)
- os_memcpy(param->seq, seq, seq_len);
- param->seq_len = seq_len;
- param->key_len = key_len;
- os_memcpy((u8 *)param->key, key, key_len);
-
- if (atmel_ioctl(drv, param, blen, 1)) {
- wpa_printf(MSG_WARNING, "Failed to set encryption.");
- /* TODO: show key error*/
- ret = -1;
- }
- os_free(buf);
-
- return ret;
-}
-
-
-static int wpa_driver_atmel_set_countermeasures(void *priv,
- int enabled)
-{
- /* FIX */
- printf("wpa_driver_atmel_set_countermeasures - not yet "
- "implemented\n");
- return 0;
-}
-
-
-static int wpa_driver_atmel_mlme(void *priv, const u8 *addr, int cmd,
- int reason_code)
-{
- struct wpa_driver_atmel_data *drv = priv;
- struct atmel_param param;
- int ret;
- int mgmt_error = 0xaa;
-
- os_memset(&param, 0, sizeof(param));
- os_memcpy(param.sta_addr, addr, ETH_ALEN);
- param.cmd = cmd;
- param.mlme.reason_code = reason_code;
- param.mlme.state = mgmt_error;
- ret = atmel_ioctl(drv, &param, sizeof(param), 1);
- return ret;
-}
-
-
-#if 0
-static int wpa_driver_atmel_set_suites(struct wpa_driver_atmel_data *drv,
- u8 pairwise_suite, u8 group_suite,
- u8 key_mgmt_suite)
-{
- struct atmel_param param;
- int ret;
-
- os_memset(&param, 0, sizeof(param));
- param.cmd = SET_CIPHER_SUITES;
- param.pairwise_suite = pairwise_suite;
- param.group_suite = group_suite;
- param.key_mgmt_suite = key_mgmt_suite;
-
- ret = atmel_ioctl(drv, &param, sizeof(param), 1);
- return ret;
-}
-#endif
-
-
-static int wpa_driver_atmel_deauthenticate(void *priv, const u8 *addr,
- int reason_code)
-{
- struct wpa_driver_atmel_data *drv = priv;
- printf("wpa_driver_atmel_deauthenticate\n");
- wpa_printf(MSG_DEBUG, "%s", __FUNCTION__);
- return wpa_driver_atmel_mlme(drv, addr, MLME_STA_DEAUTH,
- reason_code);
-
-}
-
-
-static int wpa_driver_atmel_disassociate(void *priv, const u8 *addr,
- int reason_code)
-{
- struct wpa_driver_atmel_data *drv = priv;
- printf("wpa_driver_atmel_disassociate\n");
- wpa_printf(MSG_DEBUG, "%s", __FUNCTION__);
- return wpa_driver_atmel_mlme(drv, addr, MLME_STA_DISASSOC,
- reason_code);
-
-}
-
-
-#if 0
-/* Atmel driver uses specific values for each cipher suite */
-static int convertSuiteToDriver(enum wpa_cipher suite)
-{
- u8 suite_type;
-
- switch(suite) {
- case CIPHER_NONE:
- suite_type = 0;
- break;
- case CIPHER_WEP40:
- suite_type = 1;
- break;
- case CIPHER_TKIP:
- suite_type = 2;
- break;
- case CIPHER_WEP104:
- suite_type = 5;
- break;
- case CIPHER_CCMP:
- suite_type = 3;
- break;
- default:
- suite_type = 2;
- }
-
- return suite_type;
-
-}
-#endif
-
-static int
-wpa_driver_atmel_associate(void *priv,
- struct wpa_driver_associate_params *params)
-{
- struct wpa_driver_atmel_data *drv = priv;
- int ret = 0;
-#if 0
- u8 pairwise_suite_driver;
- u8 group_suite_driver;
- u8 key_mgmt_suite_driver;
-
- pairwise_suite_driver = convertSuiteToDriver(params->pairwise_suite);
- group_suite_driver = convertSuiteToDriver(params->group_suite);
- key_mgmt_suite_driver = convertSuiteToDriver(params->key_mgmt_suite);
-
- if (wpa_driver_atmel_set_suites(drv, pairwise_suite_driver,
- group_suite_driver,
- key_mgmt_suite_driver) < 0){
- printf("wpa_driver_atmel_set_suites.\n");
- ret = -1;
- }
- if (wpa_driver_wext_set_freq(drv->wext, params->freq) < 0) {
- printf("wpa_driver_atmel_set_freq.\n");
- ret = -1;
- }
-#endif
- if (wpa_driver_wext_set_ssid(drv->wext, params->ssid, params->ssid_len)
- < 0) {
- printf("FAILED : wpa_driver_atmel_set_ssid.\n");
- ret = -1;
- }
- if (wpa_driver_wext_set_bssid(drv->wext, params->bssid) < 0) {
- printf("FAILED : wpa_driver_atmel_set_bssid.\n");
- ret = -1;
- }
-
- return ret;
-}
-
-
-static int wpa_driver_atmel_get_bssid(void *priv, u8 *bssid)
-{
- struct wpa_driver_atmel_data *drv = priv;
- return wpa_driver_wext_get_bssid(drv->wext, bssid);
-}
-
-
-static int wpa_driver_atmel_get_ssid(void *priv, u8 *ssid)
-{
- struct wpa_driver_atmel_data *drv = priv;
- return wpa_driver_wext_get_ssid(drv->wext, ssid);
-}
-
-
-static int wpa_driver_atmel_scan(void *priv,
- struct wpa_driver_scan_params *params)
-{
- struct wpa_driver_atmel_data *drv = priv;
- return wpa_driver_wext_scan(drv->wext, params);
-}
-
-
-static struct wpa_scan_results * wpa_driver_atmel_get_scan_results(void *priv)
-{
- struct wpa_driver_atmel_data *drv = priv;
- return wpa_driver_wext_get_scan_results(drv->wext);
-}
-
-
-static int wpa_driver_atmel_set_operstate(void *priv, int state)
-{
- struct wpa_driver_atmel_data *drv = priv;
- return wpa_driver_wext_set_operstate(drv->wext, state);
-}
-
-
-static void * wpa_driver_atmel_init(void *ctx, const char *ifname)
-{
- struct wpa_driver_atmel_data *drv;
-
- drv = os_zalloc(sizeof(*drv));
- if (drv == NULL)
- return NULL;
- drv->wext = wpa_driver_wext_init(ctx, ifname);
- if (drv->wext == NULL) {
- os_free(drv);
- return NULL;
- }
-
- drv->ctx = ctx;
- os_strlcpy(drv->ifname, ifname, sizeof(drv->ifname));
- drv->sock = socket(PF_INET, SOCK_DGRAM, 0);
- if (drv->sock < 0) {
- wpa_driver_wext_deinit(drv->wext);
- os_free(drv);
- return NULL;
- }
-
- wpa_driver_atmel_set_wpa(drv, 1);
-
- return drv;
-}
-
-
-static void wpa_driver_atmel_deinit(void *priv)
-{
- struct wpa_driver_atmel_data *drv = priv;
- wpa_driver_atmel_set_wpa(drv, 0);
- wpa_driver_wext_deinit(drv->wext);
- close(drv->sock);
- os_free(drv);
-}
-
-
-const struct wpa_driver_ops wpa_driver_atmel_ops = {
- .name = "atmel",
- .desc = "ATMEL AT76C5XXx (USB, PCMCIA)",
- .get_bssid = wpa_driver_atmel_get_bssid,
- .get_ssid = wpa_driver_atmel_get_ssid,
- .set_key = wpa_driver_atmel_set_key,
- .init = wpa_driver_atmel_init,
- .deinit = wpa_driver_atmel_deinit,
- .set_countermeasures = wpa_driver_atmel_set_countermeasures,
- .scan2 = wpa_driver_atmel_scan,
- .get_scan_results2 = wpa_driver_atmel_get_scan_results,
- .deauthenticate = wpa_driver_atmel_deauthenticate,
- .disassociate = wpa_driver_atmel_disassociate,
- .associate = wpa_driver_atmel_associate,
- .set_operstate = wpa_driver_atmel_set_operstate,
-};
diff --git a/src/drivers/driver_ipw.c b/src/drivers/driver_ipw.c
deleted file mode 100644
index d6c8f29..0000000
--- a/src/drivers/driver_ipw.c
+++ /dev/null
@@ -1,473 +0,0 @@
-/*
- * WPA Supplicant - driver interaction with Linux ipw2100/2200 drivers
- * Copyright (c) 2005 Zhu Yi <yi.zhu@intel.com>
- * Copyright (c) 2004 Lubomir Gelo <lgelo@cnc.sk>
- * Copyright (c) 2003-2004, Jouni Malinen <j@w1.fi>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- *
- * Alternatively, this software may be distributed under the terms of BSD
- * license.
- *
- * See README and COPYING for more details.
- *
- * Please note that ipw2100/2200 drivers change to use generic Linux wireless
- * extensions if the kernel includes support for WE-18 or newer (Linux 2.6.13
- * or newer). driver_wext.c should be used in those cases.
- */
-
-#include "includes.h"
-#include <sys/ioctl.h>
-
-#include "wireless_copy.h"
-#include "common.h"
-#include "driver.h"
-#include "driver_wext.h"
-
-struct wpa_driver_ipw_data {
- void *wext; /* private data for driver_wext */
- void *ctx;
- char ifname[IFNAMSIZ + 1];
- int sock;
-};
-
-/* following definitions must be kept in sync with ipw2100.c and ipw2200.c */
-
-#define IPW_IOCTL_WPA_SUPPLICANT SIOCIWFIRSTPRIV+30
-
-#define IPW_CMD_SET_WPA_PARAM 1
-#define IPW_CMD_SET_WPA_IE 2
-#define IPW_CMD_SET_ENCRYPTION 3
-#define IPW_CMD_MLME 4
-
-#define IPW_PARAM_WPA_ENABLED 1
-#define IPW_PARAM_TKIP_COUNTERMEASURES 2
-#define IPW_PARAM_DROP_UNENCRYPTED 3
-#define IPW_PARAM_PRIVACY_INVOKED 4
-#define IPW_PARAM_AUTH_ALGS 5
-#define IPW_PARAM_IEEE_802_1X 6
-
-#define IPW_MLME_STA_DEAUTH 1
-#define IPW_MLME_STA_DISASSOC 2
-
-#define IPW_CRYPT_ERR_UNKNOWN_ALG 2
-#define IPW_CRYPT_ERR_UNKNOWN_ADDR 3
-#define IPW_CRYPT_ERR_CRYPT_INIT_FAILED 4
-#define IPW_CRYPT_ERR_KEY_SET_FAILED 5
-#define IPW_CRYPT_ERR_TX_KEY_SET_FAILED 6
-#define IPW_CRYPT_ERR_CARD_CONF_FAILED 7
-
-#define IPW_CRYPT_ALG_NAME_LEN 16
-
-struct ipw_param {
- u32 cmd;
- u8 sta_addr[ETH_ALEN];
- union {
- struct {
- u8 name;
- u32 value;
- } wpa_param;
- struct {
- u32 len;
- u8 reserved[32];
- u8 data[0];
- } wpa_ie;
- struct{
- u32 command;
- u32 reason_code;
- } mlme;
- struct {
- u8 alg[IPW_CRYPT_ALG_NAME_LEN];
- u8 set_tx;
- u32 err;
- u8 idx;
- u8 seq[8];
- u16 key_len;
- u8 key[0];
- } crypt;
-
- } u;
-};
-
-/* end of ipw2100.c and ipw2200.c code */
-
-static int wpa_driver_ipw_set_auth_alg(void *priv, int auth_alg);
-
-static int ipw_ioctl(struct wpa_driver_ipw_data *drv,
- struct ipw_param *param, int len, int show_err)
-{
- struct iwreq iwr;
-
- os_memset(&iwr, 0, sizeof(iwr));
- os_strlcpy(iwr.ifr_name, drv->ifname, IFNAMSIZ);
- iwr.u.data.pointer = (caddr_t) param;
- iwr.u.data.length = len;
-
- if (ioctl(drv->sock, IPW_IOCTL_WPA_SUPPLICANT, &iwr) < 0) {
- int ret = errno;
- if (show_err)
- perror("ioctl[IPW_IOCTL_WPA_SUPPLICANT]");
- return ret;
- }
-
- return 0;
-}
-
-
-static void ipw_show_set_key_error(struct ipw_param *param)
-{
- switch (param->u.crypt.err) {
- case IPW_CRYPT_ERR_UNKNOWN_ALG:
- wpa_printf(MSG_INFO, "Unknown algorithm '%s'.",
- param->u.crypt.alg);
- wpa_printf(MSG_INFO, "You may need to load kernel module to "
- "register that algorithm.");
- wpa_printf(MSG_INFO, "E.g., 'modprobe ieee80211_crypt_wep' for"
- " WEP.");
- break;
- case IPW_CRYPT_ERR_UNKNOWN_ADDR:
- wpa_printf(MSG_INFO, "Unknown address " MACSTR ".",
- MAC2STR(param->sta_addr));
- break;
- case IPW_CRYPT_ERR_CRYPT_INIT_FAILED:
- wpa_printf(MSG_INFO, "Crypt algorithm initialization failed.");
- break;
- case IPW_CRYPT_ERR_KEY_SET_FAILED:
- wpa_printf(MSG_INFO, "Key setting failed.");
- break;
- case IPW_CRYPT_ERR_TX_KEY_SET_FAILED:
- wpa_printf(MSG_INFO, "TX key index setting failed.");
- break;
- case IPW_CRYPT_ERR_CARD_CONF_FAILED:
- wpa_printf(MSG_INFO, "Card configuration failed.");
- break;
- }
-}
-
-
-static int ipw_set_wpa_ie(struct wpa_driver_ipw_data *drv,
- const u8 *wpa_ie, size_t wpa_ie_len)
-{
- struct ipw_param *param;
- int ret;
- size_t blen = sizeof(*param) + wpa_ie_len;
-
- param = os_zalloc(blen);
- if (param == NULL)
- return -1;
-
- param->cmd = IPW_CMD_SET_WPA_IE;
- param->u.wpa_ie.len = wpa_ie_len;
- os_memcpy(param->u.wpa_ie.data, wpa_ie, wpa_ie_len);
-
- ret = ipw_ioctl(drv, param, blen, 1);
-
- os_free(param);
- return ret;
-}
-
-
-static int ipw_set_wpa_param(struct wpa_driver_ipw_data *drv, u8 name,
- u32 value)
-{
- struct ipw_param param;
-
- os_memset(&param, 0, sizeof(param));
- param.cmd = IPW_CMD_SET_WPA_PARAM;
- param.u.wpa_param.name = name;
- param.u.wpa_param.value = value;
-
- return ipw_ioctl(drv, &param, sizeof(param), 1);
-}
-
-
-static int ipw_mlme(struct wpa_driver_ipw_data *drv, const u8 *addr,
- int cmd, int reason)
-{
- struct ipw_param param;
-
- os_memset(&param, 0, sizeof(param));
- os_memcpy(param.sta_addr, addr, ETH_ALEN);
- param.cmd = IPW_CMD_MLME;
- param.u.mlme.command = cmd;
- param.u.mlme.reason_code = reason;
-
- return ipw_ioctl(drv, &param, sizeof(param), 1);
-}
-
-
-static int wpa_driver_ipw_set_wpa(void *priv, int enabled)
-{
- struct wpa_driver_ipw_data *drv = priv;
- int ret = 0;
-
- wpa_printf(MSG_DEBUG, "%s: enabled=%d", __FUNCTION__, enabled);
-
- if (!enabled && ipw_set_wpa_ie(drv, NULL, 0) < 0)
- ret = -1;
-
- if (ipw_set_wpa_param(drv, IPW_PARAM_WPA_ENABLED, enabled) < 0)
- ret = -1;
-
- return ret;
-}
-
-
-static int wpa_driver_ipw_set_key(const char *ifname, void *priv,
- enum wpa_alg alg, const u8 *addr,
- int key_idx, int set_tx,
- const u8 *seq, size_t seq_len,
- const u8 *key, size_t key_len)
-{
- struct wpa_driver_ipw_data *drv = priv;
- struct ipw_param *param;
- u8 *buf;
- size_t blen;
- int ret = 0;
- char *alg_name;
-
- switch (alg) {
- case WPA_ALG_NONE:
- alg_name = "none";
- break;
- case WPA_ALG_WEP:
- alg_name = "WEP";
- break;
- case WPA_ALG_TKIP:
- alg_name = "TKIP";
- break;
- case WPA_ALG_CCMP:
- alg_name = "CCMP";
- break;
- default:
- return -1;
- }
-
- wpa_printf(MSG_DEBUG, "%s: alg=%s key_idx=%d set_tx=%d seq_len=%lu "
- "key_len=%lu", __FUNCTION__, alg_name, key_idx, set_tx,
- (unsigned long) seq_len, (unsigned long) key_len);
-
- if (seq_len > 8)
- return -2;
-
- blen = sizeof(*param) + key_len;
- buf = os_zalloc(blen);
- if (buf == NULL)
- return -1;
-
- param = (struct ipw_param *) buf;
- param->cmd = IPW_CMD_SET_ENCRYPTION;
- os_memset(param->sta_addr, 0xff, ETH_ALEN);
- os_strlcpy((char *) param->u.crypt.alg, alg_name,
- IPW_CRYPT_ALG_NAME_LEN);
- param->u.crypt.set_tx = set_tx ? 1 : 0;
- param->u.crypt.idx = key_idx;
- if (seq)
- os_memcpy(param->u.crypt.seq, seq, seq_len);
- param->u.crypt.key_len = key_len;
- os_memcpy((u8 *) (param + 1), key, key_len);
-
- if (ipw_ioctl(drv, param, blen, 1)) {
- wpa_printf(MSG_WARNING, "Failed to set encryption.");
- ipw_show_set_key_error(param);
- ret = -1;
- }
- os_free(buf);
-
- return ret;
-}
-
-
-static int wpa_driver_ipw_set_countermeasures(void *priv, int enabled)
-{
- struct wpa_driver_ipw_data *drv = priv;
- wpa_printf(MSG_DEBUG, "%s: enabled=%d", __FUNCTION__, enabled);
- return ipw_set_wpa_param(drv, IPW_PARAM_TKIP_COUNTERMEASURES,
- enabled);
-
-}
-
-
-static int wpa_driver_ipw_set_drop_unencrypted(void *priv, int enabled)
-{
- struct wpa_driver_ipw_data *drv = priv;
- wpa_printf(MSG_DEBUG, "%s: enabled=%d", __FUNCTION__, enabled);
- return ipw_set_wpa_param(drv, IPW_PARAM_DROP_UNENCRYPTED,
- enabled);
-}
-
-
-static int wpa_driver_ipw_deauthenticate(void *priv, const u8 *addr,
- int reason_code)
-{
- struct wpa_driver_ipw_data *drv = priv;
- return ipw_mlme(drv, addr, IPW_MLME_STA_DEAUTH, reason_code);
-}
-
-
-static int wpa_driver_ipw_disassociate(void *priv, const u8 *addr,
- int reason_code)
-{
- struct wpa_driver_ipw_data *drv = priv;
- return ipw_mlme(drv, addr, IPW_MLME_STA_DISASSOC, reason_code);
-}
-
-
-static int
-wpa_driver_ipw_associate(void *priv, struct wpa_driver_associate_params *params)
-{
- struct wpa_driver_ipw_data *drv = priv;
- int ret = 0;
- int unencrypted_eapol;
-
- if (wpa_driver_ipw_set_auth_alg(drv, params->auth_alg) < 0)
- ret = -1;
- if (wpa_driver_ipw_set_drop_unencrypted(drv, params->drop_unencrypted)
- < 0)
- ret = -1;
- if (ipw_set_wpa_ie(drv, params->wpa_ie, params->wpa_ie_len) < 0)
- ret = -1;
- if (wpa_driver_wext_set_ssid(drv->wext, params->ssid,
- params->ssid_len) < 0)
- ret = -1;
- if (wpa_driver_wext_set_bssid(drv->wext, params->bssid) < 0)
- ret = -1;
-
- if (params->key_mgmt_suite == KEY_MGMT_802_1X ||
- params->key_mgmt_suite == KEY_MGMT_PSK)
- unencrypted_eapol = 0;
- else
- unencrypted_eapol = 1;
-
- if (ipw_set_wpa_param(drv, IPW_PARAM_IEEE_802_1X,
- unencrypted_eapol) < 0) {
- wpa_printf(MSG_DEBUG, "ipw: Failed to configure "
- "ieee_802_1x param");
- }
-
- return ret;
-}
-
-
-static int wpa_driver_ipw_set_auth_alg(void *priv, int auth_alg)
-{
- struct wpa_driver_ipw_data *drv = priv;
- int algs = 0;
-
- if (auth_alg & WPA_AUTH_ALG_OPEN)
- algs |= 1;
- if (auth_alg & WPA_AUTH_ALG_SHARED)
- algs |= 2;
- if (auth_alg & WPA_AUTH_ALG_LEAP)
- algs |= 4;
- if (algs == 0)
- algs = 1; /* at least one algorithm should be set */
-
- wpa_printf(MSG_DEBUG, "%s: auth_alg=0x%x", __FUNCTION__, algs);
- return ipw_set_wpa_param(drv, IPW_PARAM_AUTH_ALGS, algs);
-}
-
-
-static int wpa_driver_ipw_get_bssid(void *priv, u8 *bssid)
-{
- struct wpa_driver_ipw_data *drv = priv;
- return wpa_driver_wext_get_bssid(drv->wext, bssid);
-}
-
-
-static int wpa_driver_ipw_get_ssid(void *priv, u8 *ssid)
-{
- struct wpa_driver_ipw_data *drv = priv;
- return wpa_driver_wext_get_ssid(drv->wext, ssid);
-}
-
-
-static int wpa_driver_ipw_scan(void *priv,
- struct wpa_driver_scan_params *params)
-{
- struct wpa_driver_ipw_data *drv = priv;
- return wpa_driver_wext_scan(drv->wext, params);
-}
-
-
-static struct wpa_scan_results * wpa_driver_ipw_get_scan_results(void *priv)
-{
- struct wpa_driver_ipw_data *drv = priv;
- return wpa_driver_wext_get_scan_results(drv->wext);
-}
-
-
-static int wpa_driver_ipw_set_operstate(void *priv, int state)
-{
- struct wpa_driver_ipw_data *drv = priv;
- return wpa_driver_wext_set_operstate(drv->wext, state);
-}
-
-
-static void * wpa_driver_ipw_init(void *ctx, const char *ifname)
-{
- struct wpa_driver_ipw_data *drv;
- int ver;
-
- wpa_printf(MSG_DEBUG, "%s is called", __FUNCTION__);
- drv = os_zalloc(sizeof(*drv));
- if (drv == NULL)
- return NULL;
- drv->wext = wpa_driver_wext_init(ctx, ifname);
- if (drv->wext == NULL) {
- os_free(drv);
- return NULL;
- }
-
- ver = wpa_driver_wext_get_version(drv->wext);
- if (ver >= 18) {
- wpa_printf(MSG_WARNING, "Linux wireless extensions version %d "
- "detected.", ver);
- wpa_printf(MSG_WARNING, "ipw2x00 driver uses driver_wext "
- "(-Dwext) instead of driver_ipw.");
- }
-
- drv->ctx = ctx;
- os_strlcpy(drv->ifname, ifname, sizeof(drv->ifname));
- drv->sock = socket(PF_INET, SOCK_DGRAM, 0);
- if (drv->sock < 0) {
- wpa_driver_wext_deinit(drv->wext);
- os_free(drv);
- return NULL;
- }
-
- wpa_driver_ipw_set_wpa(drv, 1);
-
- return drv;
-}
-
-
-static void wpa_driver_ipw_deinit(void *priv)
-{
- struct wpa_driver_ipw_data *drv = priv;
- wpa_driver_ipw_set_wpa(drv, 0);
- wpa_driver_wext_deinit(drv->wext);
- close(drv->sock);
- os_free(drv);
-}
-
-
-const struct wpa_driver_ops wpa_driver_ipw_ops = {
- .name = "ipw",
- .desc = "Intel ipw2100/2200 driver (old; use wext with Linux 2.6.13 "
- "or newer)",
- .get_bssid = wpa_driver_ipw_get_bssid,
- .get_ssid = wpa_driver_ipw_get_ssid,
- .set_key = wpa_driver_ipw_set_key,
- .set_countermeasures = wpa_driver_ipw_set_countermeasures,
- .scan2 = wpa_driver_ipw_scan,
- .get_scan_results2 = wpa_driver_ipw_get_scan_results,
- .deauthenticate = wpa_driver_ipw_deauthenticate,
- .disassociate = wpa_driver_ipw_disassociate,
- .associate = wpa_driver_ipw_associate,
- .init = wpa_driver_ipw_init,
- .deinit = wpa_driver_ipw_deinit,
- .set_operstate = wpa_driver_ipw_set_operstate,
-};
diff --git a/src/drivers/driver_ndiswrapper.c b/src/drivers/driver_ndiswrapper.c
deleted file mode 100644
index 3abdb64..0000000
--- a/src/drivers/driver_ndiswrapper.c
+++ /dev/null
@@ -1,378 +0,0 @@
-/*
- * WPA Supplicant - driver interaction with Linux ndiswrapper
- * Copyright (c) 2004-2006, Giridhar Pemmasani <giri@lmc.cs.sunysb.edu>
- * Copyright (c) 2004-2006, Jouni Malinen <j@w1.fi>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- *
- * Alternatively, this software may be distributed under the terms of BSD
- * license.
- *
- * See README and COPYING for more details.
- *
- * Please note that ndiswrapper supports WPA configuration via Linux wireless
- * extensions and if the kernel includes support for this, driver_wext.c should
- * be used instead of this driver wrapper.
- */
-
-#include "includes.h"
-#include <sys/ioctl.h>
-
-#include "wireless_copy.h"
-#include "common.h"
-#include "driver.h"
-#include "driver_wext.h"
-
-struct wpa_driver_ndiswrapper_data {
- void *wext; /* private data for driver_wext */
- void *ctx;
- char ifname[IFNAMSIZ + 1];
- int sock;
-};
-
-
-struct wpa_key {
- enum wpa_alg alg;
- const u8 *addr;
- int key_index;
- int set_tx;
- const u8 *seq;
- size_t seq_len;
- const u8 *key;
- size_t key_len;
-};
-
-struct wpa_assoc_info {
- const u8 *bssid;
- const u8 *ssid;
- size_t ssid_len;
- int freq;
- const u8 *wpa_ie;
- size_t wpa_ie_len;
- enum wpa_cipher pairwise_suite;
- enum wpa_cipher group_suite;
- enum wpa_key_mgmt key_mgmt_suite;
- int auth_alg;
- int mode;
-};
-
-#define PRIV_RESET SIOCIWFIRSTPRIV+0
-#define WPA_SET_WPA SIOCIWFIRSTPRIV+1
-#define WPA_SET_KEY SIOCIWFIRSTPRIV+2
-#define WPA_ASSOCIATE SIOCIWFIRSTPRIV+3
-#define WPA_DISASSOCIATE SIOCIWFIRSTPRIV+4
-#define WPA_DROP_UNENCRYPTED SIOCIWFIRSTPRIV+5
-#define WPA_SET_COUNTERMEASURES SIOCIWFIRSTPRIV+6
-#define WPA_DEAUTHENTICATE SIOCIWFIRSTPRIV+7
-#define WPA_SET_AUTH_ALG SIOCIWFIRSTPRIV+8
-#define WPA_INIT SIOCIWFIRSTPRIV+9
-#define WPA_DEINIT SIOCIWFIRSTPRIV+10
-#define WPA_GET_CAPA SIOCIWFIRSTPRIV+11
-
-static int wpa_ndiswrapper_set_auth_alg(void *priv, int auth_alg);
-
-static int get_socket(void)
-{
- static const int families[] = {
- AF_INET, AF_IPX, AF_AX25, AF_APPLETALK
- };
- unsigned int i;
- int sock;
-
- for (i = 0; i < sizeof(families) / sizeof(int); ++i) {
- sock = socket(families[i], SOCK_DGRAM, 0);
- if (sock >= 0)
- return sock;
- }
-
- return -1;
-}
-
-static int iw_set_ext(struct wpa_driver_ndiswrapper_data *drv, int request,
- struct iwreq *pwrq)
-{
- os_strlcpy(pwrq->ifr_name, drv->ifname, IFNAMSIZ);
- return ioctl(drv->sock, request, pwrq);
-}
-
-static int wpa_ndiswrapper_set_wpa(void *priv, int enabled)
-{
- struct wpa_driver_ndiswrapper_data *drv = priv;
- struct iwreq priv_req;
- int ret = 0;
-
- os_memset(&priv_req, 0, sizeof(priv_req));
-
- priv_req.u.data.flags = enabled;
- if (iw_set_ext(drv, WPA_SET_WPA, &priv_req) < 0)
- ret = -1;
- return ret;
-}
-
-static int wpa_ndiswrapper_set_key(const char *ifname, void *priv,
- enum wpa_alg alg, const u8 *addr,
- int key_idx, int set_tx,
- const u8 *seq, size_t seq_len,
- const u8 *key, size_t key_len)
-{
- struct wpa_driver_ndiswrapper_data *drv = priv;
- struct wpa_key wpa_key;
- int ret = 0;
- struct iwreq priv_req;
-
- os_memset(&priv_req, 0, sizeof(priv_req));
-
- wpa_key.alg = alg;
- wpa_key.addr = addr;
- wpa_key.key_index = key_idx;
- wpa_key.set_tx = set_tx;
- wpa_key.seq = seq ? seq : (u8 *) "";
- wpa_key.seq_len = seq_len;
- wpa_key.key = key;
- wpa_key.key_len = key_len;
-
- priv_req.u.data.pointer = (void *)&wpa_key;
- priv_req.u.data.length = sizeof(wpa_key);
-
- if (iw_set_ext(drv, WPA_SET_KEY, &priv_req) < 0)
- ret = -1;
-
- if (alg == WPA_ALG_NONE) {
- /*
- * ndiswrapper did not seem to be clearing keys properly in
- * some cases with WPA_SET_KEY. For example, roaming from WPA
- * enabled AP to plaintext one seemed to fail since the driver
- * did not associate. Try to make sure the keys are cleared so
- * that plaintext APs can be used in all cases.
- */
- wpa_driver_wext_set_key(ifname, drv->wext, alg, addr, key_idx,
- set_tx, seq, seq_len, key, key_len);
- }
-
- return ret;
-}
-
-static int wpa_ndiswrapper_set_countermeasures(void *priv, int enabled)
-{
- struct wpa_driver_ndiswrapper_data *drv = priv;
- int ret = 0;
- struct iwreq priv_req;
-
- os_memset(&priv_req, 0, sizeof(priv_req));
-
- priv_req.u.param.value = enabled;
- if (iw_set_ext(drv, WPA_SET_COUNTERMEASURES, &priv_req) < 0)
- ret = -1;
-
- return ret;
-}
-
-static int wpa_ndiswrapper_set_drop_unencrypted(void *priv,
- int enabled)
-{
- struct wpa_driver_ndiswrapper_data *drv = priv;
- int ret = 0;
- struct iwreq priv_req;
-
- os_memset(&priv_req, 0, sizeof(priv_req));
-
- priv_req.u.param.value = enabled;
- if (iw_set_ext(drv, WPA_DROP_UNENCRYPTED, &priv_req) < 0)
- ret = -1;
- return ret;
-}
-
-static int wpa_ndiswrapper_deauthenticate(void *priv, const u8 *addr,
- int reason_code)
-{
- struct wpa_driver_ndiswrapper_data *drv = priv;
- int ret = 0;
- struct iwreq priv_req;
-
- os_memset(&priv_req, 0, sizeof(priv_req));
-
- priv_req.u.param.value = reason_code;
- os_memcpy(&priv_req.u.ap_addr.sa_data, addr, ETH_ALEN);
- if (iw_set_ext(drv, WPA_DEAUTHENTICATE, &priv_req) < 0)
- ret = -1;
- return ret;
-}
-
-static int wpa_ndiswrapper_disassociate(void *priv, const u8 *addr,
- int reason_code)
-{
- struct wpa_driver_ndiswrapper_data *drv = priv;
- int ret = 0;
- struct iwreq priv_req;
-
- os_memset(&priv_req, 0, sizeof(priv_req));
-
- os_memcpy(&priv_req.u.ap_addr.sa_data, addr, ETH_ALEN);
- if (iw_set_ext(drv, WPA_DISASSOCIATE, &priv_req) < 0)
- ret = -1;
- return ret;
-}
-
-static int
-wpa_ndiswrapper_associate(void *priv,
- struct wpa_driver_associate_params *params)
-{
- struct wpa_driver_ndiswrapper_data *drv = priv;
- int ret = 0;
- struct wpa_assoc_info wpa_assoc_info;
- struct iwreq priv_req;
-
- if (wpa_ndiswrapper_set_drop_unencrypted(drv,
- params->drop_unencrypted) < 0)
- ret = -1;
- if (wpa_ndiswrapper_set_auth_alg(drv, params->auth_alg) < 0)
- ret = -1;
-
- os_memset(&priv_req, 0, sizeof(priv_req));
- os_memset(&wpa_assoc_info, 0, sizeof(wpa_assoc_info));
-
- wpa_assoc_info.bssid = params->bssid;
- wpa_assoc_info.ssid = params->ssid;
- wpa_assoc_info.ssid_len = params->ssid_len;
- wpa_assoc_info.freq = params->freq;
- wpa_assoc_info.wpa_ie = params->wpa_ie;
- wpa_assoc_info.wpa_ie_len = params->wpa_ie_len;
- wpa_assoc_info.pairwise_suite = params->pairwise_suite;
- wpa_assoc_info.group_suite = params->group_suite;
- wpa_assoc_info.key_mgmt_suite = params->key_mgmt_suite;
- wpa_assoc_info.auth_alg = params->auth_alg;
- wpa_assoc_info.mode = params->mode;
-
- priv_req.u.data.pointer = (void *)&wpa_assoc_info;
- priv_req.u.data.length = sizeof(wpa_assoc_info);
-
- if (iw_set_ext(drv, WPA_ASSOCIATE, &priv_req) < 0)
- ret = -1;
- return ret;
-}
-
-static int wpa_ndiswrapper_set_auth_alg(void *priv, int auth_alg)
-{
- struct wpa_driver_ndiswrapper_data *drv = priv;
- int ret = 0;
- struct iwreq priv_req;
-
- os_memset(&priv_req, 0, sizeof(priv_req));
-
- priv_req.u.param.value = auth_alg;
- if (iw_set_ext(drv, WPA_SET_AUTH_ALG, &priv_req) < 0)
- ret = -1;
- return ret;
-}
-
-static int wpa_ndiswrapper_get_bssid(void *priv, u8 *bssid)
-{
- struct wpa_driver_ndiswrapper_data *drv = priv;
- return wpa_driver_wext_get_bssid(drv->wext, bssid);
-}
-
-
-static int wpa_ndiswrapper_get_ssid(void *priv, u8 *ssid)
-{
- struct wpa_driver_ndiswrapper_data *drv = priv;
- return wpa_driver_wext_get_ssid(drv->wext, ssid);
-}
-
-
-static int wpa_ndiswrapper_scan(void *priv,
- struct wpa_driver_scan_params *params)
-{
- struct wpa_driver_ndiswrapper_data *drv = priv;
- return wpa_driver_wext_scan(drv->wext, params);
-}
-
-
-static struct wpa_scan_results * wpa_ndiswrapper_get_scan_results(void *priv)
-{
- struct wpa_driver_ndiswrapper_data *drv = priv;
- return wpa_driver_wext_get_scan_results(drv->wext);
-}
-
-
-static int wpa_ndiswrapper_get_capa(void *priv, struct wpa_driver_capa *capa)
-{
- struct wpa_driver_ndiswrapper_data *drv = priv;
- int ret = 0;
- struct iwreq priv_req;
-
- os_memset(&priv_req, 0, sizeof(priv_req));
-
- priv_req.u.data.pointer = (void *) capa;
- priv_req.u.data.length = sizeof(*capa);
- if (iw_set_ext(drv, WPA_GET_CAPA, &priv_req) < 0)
- ret = -1;
- return ret;
-
-}
-
-
-static int wpa_ndiswrapper_set_operstate(void *priv, int state)
-{
- struct wpa_driver_ndiswrapper_data *drv = priv;
- return wpa_driver_wext_set_operstate(drv->wext, state);
-}
-
-
-static void * wpa_ndiswrapper_init(void *ctx, const char *ifname)
-{
- struct wpa_driver_ndiswrapper_data *drv;
-
- drv = os_zalloc(sizeof(*drv));
- if (drv == NULL)
- return NULL;
- drv->wext = wpa_driver_wext_init(ctx, ifname);
- if (drv->wext == NULL) {
- os_free(drv);
- return NULL;
- }
-
- drv->ctx = ctx;
- os_strlcpy(drv->ifname, ifname, sizeof(drv->ifname));
- drv->sock = get_socket();
- if (drv->sock < 0) {
- wpa_driver_wext_deinit(drv->wext);
- os_free(drv);
- return NULL;
- }
-
- wpa_ndiswrapper_set_wpa(drv, 1);
-
- return drv;
-}
-
-
-static void wpa_ndiswrapper_deinit(void *priv)
-{
- struct wpa_driver_ndiswrapper_data *drv = priv;
- wpa_ndiswrapper_set_wpa(drv, 0);
- wpa_driver_wext_deinit(drv->wext);
- close(drv->sock);
- os_free(drv);
-}
-
-
-const struct wpa_driver_ops wpa_driver_ndiswrapper_ops = {
- .name = "ndiswrapper",
- .desc = "Linux ndiswrapper (deprecated; use wext)",
- .set_key = wpa_ndiswrapper_set_key,
- .set_countermeasures = wpa_ndiswrapper_set_countermeasures,
- .deauthenticate = wpa_ndiswrapper_deauthenticate,
- .disassociate = wpa_ndiswrapper_disassociate,
- .associate = wpa_ndiswrapper_associate,
-
- .get_bssid = wpa_ndiswrapper_get_bssid,
- .get_ssid = wpa_ndiswrapper_get_ssid,
- .scan2 = wpa_ndiswrapper_scan,
- .get_scan_results2 = wpa_ndiswrapper_get_scan_results,
- .init = wpa_ndiswrapper_init,
- .deinit = wpa_ndiswrapper_deinit,
- .get_capa = wpa_ndiswrapper_get_capa,
- .set_operstate = wpa_ndiswrapper_set_operstate,
-};
diff --git a/src/drivers/drivers.c b/src/drivers/drivers.c
index bffbbde..b710778 100644
--- a/src/drivers/drivers.c
+++ b/src/drivers/drivers.c
@@ -24,25 +24,12 @@ extern struct wpa_driver_ops wpa_driver_nl80211_ops; /* driver_nl80211.c */
#ifdef CONFIG_DRIVER_HOSTAP
extern struct wpa_driver_ops wpa_driver_hostap_ops; /* driver_hostap.c */
#endif /* CONFIG_DRIVER_HOSTAP */
-#ifdef CONFIG_DRIVER_HERMES
-extern struct wpa_driver_ops wpa_driver_hermes_ops; /* driver_hermes.c */
-#endif /* CONFIG_DRIVER_HERMES */
#ifdef CONFIG_DRIVER_MADWIFI
extern struct wpa_driver_ops wpa_driver_madwifi_ops; /* driver_madwifi.c */
#endif /* CONFIG_DRIVER_MADWIFI */
-#ifdef CONFIG_DRIVER_ATMEL
-extern struct wpa_driver_ops wpa_driver_atmel_ops; /* driver_atmel.c */
-#endif /* CONFIG_DRIVER_ATMEL */
-#ifdef CONFIG_DRIVER_NDISWRAPPER
-/* driver_ndiswrapper.c */
-extern struct wpa_driver_ops wpa_driver_ndiswrapper_ops;
-#endif /* CONFIG_DRIVER_NDISWRAPPER */
#ifdef CONFIG_DRIVER_BROADCOM
extern struct wpa_driver_ops wpa_driver_broadcom_ops; /* driver_broadcom.c */
#endif /* CONFIG_DRIVER_BROADCOM */
-#ifdef CONFIG_DRIVER_IPW
-extern struct wpa_driver_ops wpa_driver_ipw_ops; /* driver_ipw.c */
-#endif /* CONFIG_DRIVER_IPW */
#ifdef CONFIG_DRIVER_BSD
extern struct wpa_driver_ops wpa_driver_bsd_ops; /* driver_bsd.c */
#endif /* CONFIG_DRIVER_BSD */
@@ -87,24 +74,12 @@ struct wpa_driver_ops *wpa_drivers[] =
#ifdef CONFIG_DRIVER_HOSTAP
&wpa_driver_hostap_ops,
#endif /* CONFIG_DRIVER_HOSTAP */
-#ifdef CONFIG_DRIVER_HERMES
- &wpa_driver_hermes_ops,
-#endif /* CONFIG_DRIVER_HERMES */
#ifdef CONFIG_DRIVER_MADWIFI
&wpa_driver_madwifi_ops,
#endif /* CONFIG_DRIVER_MADWIFI */
-#ifdef CONFIG_DRIVER_ATMEL
- &wpa_driver_atmel_ops,
-#endif /* CONFIG_DRIVER_ATMEL */
-#ifdef CONFIG_DRIVER_NDISWRAPPER
- &wpa_driver_ndiswrapper_ops,
-#endif /* CONFIG_DRIVER_NDISWRAPPER */
#ifdef CONFIG_DRIVER_BROADCOM
&wpa_driver_broadcom_ops,
#endif /* CONFIG_DRIVER_BROADCOM */
-#ifdef CONFIG_DRIVER_IPW
- &wpa_driver_ipw_ops,
-#endif /* CONFIG_DRIVER_IPW */
#ifdef CONFIG_DRIVER_BSD
&wpa_driver_bsd_ops,
#endif /* CONFIG_DRIVER_BSD */
diff --git a/src/drivers/drivers.mak b/src/drivers/drivers.mak
index 4a98f05..ebf39c8 100644
--- a/src/drivers/drivers.mak
+++ b/src/drivers/drivers.mak
@@ -97,24 +97,6 @@ NEED_LINUX_IOCTL=y
NEED_RFKILL=y
endif
-ifdef CONFIG_DRIVER_HERMES
-DRV_WPA_CFLAGS += -DCONFIG_DRIVER_HERMES
-DRV_WPA_OBJS += ../src/drivers/driver_hermes.o
-CONFIG_WIRELESS_EXTENSION=y
-endif
-
-ifdef CONFIG_DRIVER_ATMEL
-DRV_WPA_CFLAGS += -DCONFIG_DRIVER_ATMEL
-DRV_WPA_OBJS += ../src/drivers/driver_atmel.o
-CONFIG_WIRELESS_EXTENSION=y
-endif
-
-ifdef CONFIG_DRIVER_NDISWRAPPER
-DRV_WPA_CFLAGS += -DCONFIG_DRIVER_NDISWRAPPER
-DRV_WPA_OBJS += ../src/drivers/driver_ndiswrapper.o
-CONFIG_WIRELESS_EXTENSION=y
-endif
-
ifdef CONFIG_DRIVER_RALINK
DRV_WPA_CFLAGS += -DCONFIG_DRIVER_RALINK
DRV_WPA_OBJS += ../src/drivers/driver_ralink.o
@@ -127,12 +109,6 @@ DRV_WPA_CFLAGS += -DCONFIG_DRIVER_BROADCOM
DRV_WPA_OBJS += ../src/drivers/driver_broadcom.o
endif
-ifdef CONFIG_DRIVER_IPW
-DRV_WPA_CFLAGS += -DCONFIG_DRIVER_IPW
-DRV_WPA_OBJS += ../src/drivers/driver_ipw.o
-CONFIG_WIRELESS_EXTENSION=y
-endif
-
ifdef CONFIG_DRIVER_NDIS
DRV_WPA_CFLAGS += -DCONFIG_DRIVER_NDIS
DRV_WPA_OBJS += ../src/drivers/driver_ndis.o