Commit 461b3f2a authored by Jussi Kivilinna's avatar Jussi Kivilinna Committed by John W. Linville

rndis_wlan: cleanup, rename structure members

Rename members of ndis_80211_* structures to match the style of
the rest of the code.
Signed-off-by: default avatarJussi Kivilinna <jussi.kivilinna@mbnet.fi>
Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
parent 1e41e1d2
...@@ -195,80 +195,80 @@ enum ndis_80211_priv_filter { ...@@ -195,80 +195,80 @@ enum ndis_80211_priv_filter {
}; };
struct ndis_80211_ssid { struct ndis_80211_ssid {
__le32 SsidLength; __le32 length;
u8 Ssid[NDIS_802_11_LENGTH_SSID]; u8 essid[NDIS_802_11_LENGTH_SSID];
} __attribute__((packed)); } __attribute__((packed));
struct ndis_80211_conf_freq_hop { struct ndis_80211_conf_freq_hop {
__le32 Length; __le32 length;
__le32 HopPattern; __le32 hop_pattern;
__le32 HopSet; __le32 hop_set;
__le32 DwellTime; __le32 dwell_time;
} __attribute__((packed)); } __attribute__((packed));
struct ndis_80211_conf { struct ndis_80211_conf {
__le32 Length; __le32 length;
__le32 BeaconPeriod; __le32 beacon_period;
__le32 ATIMWindow; __le32 atim_window;
__le32 DSConfig; __le32 ds_config;
struct ndis_80211_conf_freq_hop FHConfig; struct ndis_80211_conf_freq_hop fh_config;
} __attribute__((packed)); } __attribute__((packed));
struct ndis_80211_bssid_ex { struct ndis_80211_bssid_ex {
__le32 Length; __le32 length;
u8 MacAddress[6]; u8 mac[6];
u8 Padding[2]; u8 padding[2];
struct ndis_80211_ssid Ssid; struct ndis_80211_ssid ssid;
__le32 Privacy; __le32 privacy;
__le32 Rssi; __le32 rssi;
__le32 NetworkTypeInUse; __le32 net_type;
struct ndis_80211_conf Configuration; struct ndis_80211_conf config;
__le32 InfrastructureMode; __le32 net_infra;
u8 SupportedRates[NDIS_802_11_LENGTH_RATES_EX]; u8 rates[NDIS_802_11_LENGTH_RATES_EX];
__le32 IELength; __le32 ie_length;
u8 IEs[0]; u8 ies[0];
} __attribute__((packed)); } __attribute__((packed));
struct ndis_80211_bssid_list_ex { struct ndis_80211_bssid_list_ex {
__le32 NumberOfItems; __le32 num_items;
struct ndis_80211_bssid_ex Bssid[0]; struct ndis_80211_bssid_ex bssid[0];
} __attribute__((packed)); } __attribute__((packed));
struct ndis_80211_fixed_ies { struct ndis_80211_fixed_ies {
u8 Timestamp[8]; u8 timestamp[8];
__le16 BeaconInterval; __le16 beacon_interval;
__le16 Capabilities; __le16 capabilities;
} __attribute__((packed)); } __attribute__((packed));
struct ndis_80211_wep_key { struct ndis_80211_wep_key {
__le32 Length; __le32 size;
__le32 KeyIndex; __le32 index;
__le32 KeyLength; __le32 length;
u8 KeyMaterial[32]; u8 material[32];
} __attribute__((packed)); } __attribute__((packed));
struct ndis_80211_key { struct ndis_80211_key {
__le32 Length; __le32 size;
__le32 KeyIndex; __le32 index;
__le32 KeyLength; __le32 length;
u8 Bssid[6]; u8 bssid[6];
u8 Padding[6]; u8 padding[6];
u8 KeyRSC[8]; u8 rsc[8];
u8 KeyMaterial[32]; u8 material[32];
} __attribute__((packed)); } __attribute__((packed));
struct ndis_80211_remove_key { struct ndis_80211_remove_key {
__le32 Length; __le32 size;
__le32 KeyIndex; __le32 index;
u8 Bssid[6]; u8 bssid[6];
} __attribute__((packed)); } __attribute__((packed));
struct ndis_config_param { struct ndis_config_param {
__le32 ParameterNameOffset; __le32 name_offs;
__le32 ParameterNameLength; __le32 name_length;
__le32 ParameterType; __le32 type;
__le32 ParameterValueOffset; __le32 value_offs;
__le32 ParameterValueLength; __le32 value_length;
} __attribute__((packed)); } __attribute__((packed));
/* these have to match what is in wpa_supplicant */ /* these have to match what is in wpa_supplicant */
...@@ -512,12 +512,11 @@ static int rndis_set_config_parameter(struct usbnet *dev, char *param, ...@@ -512,12 +512,11 @@ static int rndis_set_config_parameter(struct usbnet *dev, char *param,
devdbg(dev, "setting config parameter: %s, value: %d", devdbg(dev, "setting config parameter: %s, value: %d",
param, *(u32 *)value); param, *(u32 *)value);
infobuf->ParameterNameOffset = cpu_to_le32(sizeof(*infobuf)); infobuf->name_offs = cpu_to_le32(sizeof(*infobuf));
infobuf->ParameterNameLength = cpu_to_le32(param_len); infobuf->name_length = cpu_to_le32(param_len);
infobuf->ParameterType = cpu_to_le32(value_type); infobuf->type = cpu_to_le32(value_type);
infobuf->ParameterValueOffset = cpu_to_le32(sizeof(*infobuf) + infobuf->value_offs = cpu_to_le32(sizeof(*infobuf) + param_len);
param_len); infobuf->value_length = cpu_to_le32(value_len);
infobuf->ParameterValueLength = cpu_to_le32(value_len);
/* simple string to unicode string conversion */ /* simple string to unicode string conversion */
unibuf = (void *)infobuf + sizeof(*infobuf); unibuf = (void *)infobuf + sizeof(*infobuf);
...@@ -631,14 +630,14 @@ static int get_essid(struct usbnet *usbdev, struct ndis_80211_ssid *ssid) ...@@ -631,14 +630,14 @@ static int get_essid(struct usbnet *usbdev, struct ndis_80211_ssid *ssid)
ret = rndis_query_oid(usbdev, OID_802_11_SSID, ssid, &len); ret = rndis_query_oid(usbdev, OID_802_11_SSID, ssid, &len);
if (ret != 0) if (ret != 0)
ssid->SsidLength = 0; ssid->length = 0;
#ifdef DEBUG #ifdef DEBUG
{ {
unsigned char tmp[NDIS_802_11_LENGTH_SSID + 1]; unsigned char tmp[NDIS_802_11_LENGTH_SSID + 1];
memcpy(tmp, ssid->Ssid, le32_to_cpu(ssid->SsidLength)); memcpy(tmp, ssid->essid, le32_to_cpu(ssid->length));
tmp[le32_to_cpu(ssid->SsidLength)] = 0; tmp[le32_to_cpu(ssid->length)] = 0;
devdbg(usbdev, "get_essid: '%s', ret: %d", tmp, ret); devdbg(usbdev, "get_essid: '%s', ret: %d", tmp, ret);
} }
#endif #endif
...@@ -707,12 +706,12 @@ static int disassociate(struct usbnet *usbdev, int reset_ssid) ...@@ -707,12 +706,12 @@ static int disassociate(struct usbnet *usbdev, int reset_ssid)
/* disassociate causes radio to be turned off; if reset_ssid /* disassociate causes radio to be turned off; if reset_ssid
* is given, set random ssid to enable radio */ * is given, set random ssid to enable radio */
if (reset_ssid) { if (reset_ssid) {
ssid.SsidLength = cpu_to_le32(sizeof(ssid.Ssid)); ssid.length = cpu_to_le32(sizeof(ssid.essid));
get_random_bytes(&ssid.Ssid[2], sizeof(ssid.Ssid)-2); get_random_bytes(&ssid.essid[2], sizeof(ssid.essid)-2);
ssid.Ssid[0] = 0x1; ssid.essid[0] = 0x1;
ssid.Ssid[1] = 0xff; ssid.essid[1] = 0xff;
for (i = 2; i < sizeof(ssid.Ssid); i++) for (i = 2; i < sizeof(ssid.essid); i++)
ssid.Ssid[i] = 0x1 + (ssid.Ssid[i] * 0xfe / 0xff); ssid.essid[i] = 0x1 + (ssid.essid[i] * 0xfe / 0xff);
ret = set_essid(usbdev, &ssid); ret = set_essid(usbdev, &ssid);
} }
return ret; return ret;
...@@ -900,13 +899,13 @@ static int add_wep_key(struct usbnet *usbdev, char *key, int key_len, int index) ...@@ -900,13 +899,13 @@ static int add_wep_key(struct usbnet *usbdev, char *key, int key_len, int index)
memset(&ndis_key, 0, sizeof(ndis_key)); memset(&ndis_key, 0, sizeof(ndis_key));
ndis_key.Length = cpu_to_le32(sizeof(ndis_key)); ndis_key.size = cpu_to_le32(sizeof(ndis_key));
ndis_key.KeyLength = cpu_to_le32(key_len); ndis_key.length = cpu_to_le32(key_len);
ndis_key.KeyIndex = cpu_to_le32(index); ndis_key.index = cpu_to_le32(index);
memcpy(&ndis_key.KeyMaterial, key, key_len); memcpy(&ndis_key.material, key, key_len);
if (index == priv->encr_tx_key_index) { if (index == priv->encr_tx_key_index) {
ndis_key.KeyIndex |= cpu_to_le32(1 << 31); ndis_key.index |= cpu_to_le32(1 << 31);
ret = set_encr_mode(usbdev, IW_AUTH_CIPHER_WEP104, ret = set_encr_mode(usbdev, IW_AUTH_CIPHER_WEP104,
IW_AUTH_CIPHER_NONE); IW_AUTH_CIPHER_NONE);
if (ret) if (ret)
...@@ -947,17 +946,17 @@ static int remove_key(struct usbnet *usbdev, int index, u8 bssid[ETH_ALEN]) ...@@ -947,17 +946,17 @@ static int remove_key(struct usbnet *usbdev, int index, u8 bssid[ETH_ALEN])
priv->wpa_cipher_pair == IW_AUTH_CIPHER_CCMP || priv->wpa_cipher_pair == IW_AUTH_CIPHER_CCMP ||
priv->wpa_cipher_group == IW_AUTH_CIPHER_TKIP || priv->wpa_cipher_group == IW_AUTH_CIPHER_TKIP ||
priv->wpa_cipher_group == IW_AUTH_CIPHER_CCMP) { priv->wpa_cipher_group == IW_AUTH_CIPHER_CCMP) {
remove_key.Length = cpu_to_le32(sizeof(remove_key)); remove_key.size = cpu_to_le32(sizeof(remove_key));
remove_key.KeyIndex = cpu_to_le32(index); remove_key.index = cpu_to_le32(index);
if (bssid) { if (bssid) {
/* pairwise key */ /* pairwise key */
if (memcmp(bssid, ffff_bssid, ETH_ALEN) != 0) if (memcmp(bssid, ffff_bssid, ETH_ALEN) != 0)
remove_key.KeyIndex |= cpu_to_le32(1 << 30); remove_key.index |= cpu_to_le32(1 << 30);
memcpy(remove_key.Bssid, bssid, memcpy(remove_key.bssid, bssid,
sizeof(remove_key.Bssid)); sizeof(remove_key.bssid));
} else } else
memset(remove_key.Bssid, 0xff, memset(remove_key.bssid, 0xff,
sizeof(remove_key.Bssid)); sizeof(remove_key.bssid));
ret = rndis_set_oid(usbdev, OID_802_11_REMOVE_KEY, &remove_key, ret = rndis_set_oid(usbdev, OID_802_11_REMOVE_KEY, &remove_key,
sizeof(remove_key)); sizeof(remove_key));
...@@ -1187,11 +1186,11 @@ static int rndis_iw_set_essid(struct net_device *dev, ...@@ -1187,11 +1186,11 @@ static int rndis_iw_set_essid(struct net_device *dev,
if (length > NDIS_802_11_LENGTH_SSID) if (length > NDIS_802_11_LENGTH_SSID)
length = NDIS_802_11_LENGTH_SSID; length = NDIS_802_11_LENGTH_SSID;
ssid.SsidLength = cpu_to_le32(length); ssid.length = cpu_to_le32(length);
if (length > 0) if (length > 0)
memcpy(ssid.Ssid, essid, length); memcpy(ssid.essid, essid, length);
else else
memset(ssid.Ssid, 0, NDIS_802_11_LENGTH_SSID); memset(ssid.essid, 0, NDIS_802_11_LENGTH_SSID);
set_assoc_params(usbdev); set_assoc_params(usbdev);
...@@ -1211,10 +1210,10 @@ static int rndis_iw_get_essid(struct net_device *dev, ...@@ -1211,10 +1210,10 @@ static int rndis_iw_get_essid(struct net_device *dev,
ret = get_essid(usbdev, &ssid); ret = get_essid(usbdev, &ssid);
if (ret == 0 && le32_to_cpu(ssid.SsidLength) > 0) { if (ret == 0 && le32_to_cpu(ssid.length) > 0) {
wrqu->essid.flags = 1; wrqu->essid.flags = 1;
wrqu->essid.length = le32_to_cpu(ssid.SsidLength); wrqu->essid.length = le32_to_cpu(ssid.length);
memcpy(essid, ssid.Ssid, wrqu->essid.length); memcpy(essid, ssid.essid, wrqu->essid.length);
essid[wrqu->essid.length] = 0; essid[wrqu->essid.length] = 0;
} else { } else {
memset(essid, 0, sizeof(NDIS_802_11_LENGTH_SSID)); memset(essid, 0, sizeof(NDIS_802_11_LENGTH_SSID));
...@@ -1525,54 +1524,54 @@ static int rndis_iw_set_encode_ext(struct net_device *dev, ...@@ -1525,54 +1524,54 @@ static int rndis_iw_set_encode_ext(struct net_device *dev,
ext->alg == IW_ENCODE_ALG_NONE || ext->key_len == 0) ext->alg == IW_ENCODE_ALG_NONE || ext->key_len == 0)
return remove_key(usbdev, keyidx, NULL); return remove_key(usbdev, keyidx, NULL);
if (ext->key_len > sizeof(ndis_key.KeyMaterial)) if (ext->key_len > sizeof(ndis_key.material))
return -1; return -1;
memset(&ndis_key, 0, sizeof(ndis_key)); memset(&ndis_key, 0, sizeof(ndis_key));
ndis_key.Length = cpu_to_le32(sizeof(ndis_key) - ndis_key.size = cpu_to_le32(sizeof(ndis_key) -
sizeof(ndis_key.KeyMaterial) + ext->key_len); sizeof(ndis_key.material) + ext->key_len);
ndis_key.KeyLength = cpu_to_le32(ext->key_len); ndis_key.length = cpu_to_le32(ext->key_len);
ndis_key.KeyIndex = cpu_to_le32(keyidx); ndis_key.index = cpu_to_le32(keyidx);
if (ext->ext_flags & IW_ENCODE_EXT_RX_SEQ_VALID) { if (ext->ext_flags & IW_ENCODE_EXT_RX_SEQ_VALID) {
memcpy(ndis_key.KeyRSC, ext->rx_seq, 6); memcpy(ndis_key.rsc, ext->rx_seq, 6);
ndis_key.KeyIndex |= cpu_to_le32(1 << 29); ndis_key.index |= cpu_to_le32(1 << 29);
} }
addr = ext->addr.sa_data; addr = ext->addr.sa_data;
if (ext->ext_flags & IW_ENCODE_EXT_GROUP_KEY) { if (ext->ext_flags & IW_ENCODE_EXT_GROUP_KEY) {
/* group key */ /* group key */
if (priv->infra_mode == ndis_80211_infra_adhoc) if (priv->infra_mode == ndis_80211_infra_adhoc)
memset(ndis_key.Bssid, 0xff, ETH_ALEN); memset(ndis_key.bssid, 0xff, ETH_ALEN);
else else
get_bssid(usbdev, ndis_key.Bssid); get_bssid(usbdev, ndis_key.bssid);
} else { } else {
/* pairwise key */ /* pairwise key */
ndis_key.KeyIndex |= cpu_to_le32(1 << 30); ndis_key.index |= cpu_to_le32(1 << 30);
memcpy(ndis_key.Bssid, addr, ETH_ALEN); memcpy(ndis_key.bssid, addr, ETH_ALEN);
} }
if (ext->ext_flags & IW_ENCODE_EXT_SET_TX_KEY) if (ext->ext_flags & IW_ENCODE_EXT_SET_TX_KEY)
ndis_key.KeyIndex |= cpu_to_le32(1 << 31); ndis_key.index |= cpu_to_le32(1 << 31);
if (ext->alg == IW_ENCODE_ALG_TKIP && ext->key_len == 32) { if (ext->alg == IW_ENCODE_ALG_TKIP && ext->key_len == 32) {
/* wpa_supplicant gives us the Michael MIC RX/TX keys in /* wpa_supplicant gives us the Michael MIC RX/TX keys in
* different order than NDIS spec, so swap the order here. */ * different order than NDIS spec, so swap the order here. */
memcpy(ndis_key.KeyMaterial, ext->key, 16); memcpy(ndis_key.material, ext->key, 16);
memcpy(ndis_key.KeyMaterial + 16, ext->key + 24, 8); memcpy(ndis_key.material + 16, ext->key + 24, 8);
memcpy(ndis_key.KeyMaterial + 24, ext->key + 16, 8); memcpy(ndis_key.material + 24, ext->key + 16, 8);
} else } else
memcpy(ndis_key.KeyMaterial, ext->key, ext->key_len); memcpy(ndis_key.material, ext->key, ext->key_len);
ret = rndis_set_oid(usbdev, OID_802_11_ADD_KEY, &ndis_key, ret = rndis_set_oid(usbdev, OID_802_11_ADD_KEY, &ndis_key,
le32_to_cpu(ndis_key.Length)); le32_to_cpu(ndis_key.size));
devdbg(usbdev, "SIOCSIWENCODEEXT: OID_802_11_ADD_KEY -> %08X", ret); devdbg(usbdev, "SIOCSIWENCODEEXT: OID_802_11_ADD_KEY -> %08X", ret);
if (ret != 0) if (ret != 0)
return ret; return ret;
priv->encr_key_len[keyidx] = ext->key_len; priv->encr_key_len[keyidx] = ext->key_len;
memcpy(&priv->encr_keys[keyidx], ndis_key.KeyMaterial, ext->key_len); memcpy(&priv->encr_keys[keyidx], ndis_key.material, ext->key_len);
if (ext->ext_flags & IW_ENCODE_EXT_SET_TX_KEY) if (ext->ext_flags & IW_ENCODE_EXT_SET_TX_KEY)
priv->encr_tx_key_index = keyidx; priv->encr_tx_key_index = keyidx;
...@@ -1617,27 +1616,24 @@ static char *rndis_translate_scan(struct net_device *dev, ...@@ -1617,27 +1616,24 @@ static char *rndis_translate_scan(struct net_device *dev,
unsigned char sbuf[32]; unsigned char sbuf[32];
DECLARE_MAC_BUF(mac); DECLARE_MAC_BUF(mac);
bssid_len = le32_to_cpu(bssid->Length); bssid_len = le32_to_cpu(bssid->length);
devdbg(usbdev, "BSSID %s", print_mac(mac, bssid->MacAddress)); devdbg(usbdev, "BSSID %s", print_mac(mac, bssid->mac));
iwe.cmd = SIOCGIWAP; iwe.cmd = SIOCGIWAP;
iwe.u.ap_addr.sa_family = ARPHRD_ETHER; iwe.u.ap_addr.sa_family = ARPHRD_ETHER;
memcpy(iwe.u.ap_addr.sa_data, bssid->MacAddress, ETH_ALEN); memcpy(iwe.u.ap_addr.sa_data, bssid->mac, ETH_ALEN);
cev = iwe_stream_add_event(cev, end_buf, &iwe, IW_EV_ADDR_LEN); cev = iwe_stream_add_event(cev, end_buf, &iwe, IW_EV_ADDR_LEN);
devdbg(usbdev, "SSID(%d) %s", devdbg(usbdev, "SSID(%d) %s", le32_to_cpu(bssid->ssid.length),
le32_to_cpu(bssid->Ssid.SsidLength), bssid->ssid.essid);
bssid->Ssid.Ssid);
iwe.cmd = SIOCGIWESSID; iwe.cmd = SIOCGIWESSID;
iwe.u.essid.length = le32_to_cpu(bssid->Ssid.SsidLength); iwe.u.essid.length = le32_to_cpu(bssid->ssid.length);
iwe.u.essid.flags = 1; iwe.u.essid.flags = 1;
cev = iwe_stream_add_point(cev, end_buf, &iwe, cev = iwe_stream_add_point(cev, end_buf, &iwe, bssid->ssid.essid);
bssid->Ssid.Ssid);
devdbg(usbdev, "MODE %d", devdbg(usbdev, "MODE %d", le32_to_cpu(bssid->net_infra));
le32_to_cpu(bssid->InfrastructureMode));
iwe.cmd = SIOCGIWMODE; iwe.cmd = SIOCGIWMODE;
switch (le32_to_cpu(bssid->InfrastructureMode)) { switch (le32_to_cpu(bssid->net_infra)) {
case ndis_80211_infra_adhoc: case ndis_80211_infra_adhoc:
iwe.u.mode = IW_MODE_ADHOC; iwe.u.mode = IW_MODE_ADHOC;
break; break;
...@@ -1651,26 +1647,24 @@ static char *rndis_translate_scan(struct net_device *dev, ...@@ -1651,26 +1647,24 @@ static char *rndis_translate_scan(struct net_device *dev,
} }
cev = iwe_stream_add_event(cev, end_buf, &iwe, IW_EV_UINT_LEN); cev = iwe_stream_add_event(cev, end_buf, &iwe, IW_EV_UINT_LEN);
devdbg(usbdev, "FREQ %d kHz", devdbg(usbdev, "FREQ %d kHz", le32_to_cpu(bssid->config.ds_config));
le32_to_cpu(bssid->Configuration.DSConfig));
iwe.cmd = SIOCGIWFREQ; iwe.cmd = SIOCGIWFREQ;
dsconfig_to_freq(le32_to_cpu(bssid->Configuration.DSConfig), dsconfig_to_freq(le32_to_cpu(bssid->config.ds_config), &iwe.u.freq);
&iwe.u.freq);
cev = iwe_stream_add_event(cev, end_buf, &iwe, IW_EV_FREQ_LEN); cev = iwe_stream_add_event(cev, end_buf, &iwe, IW_EV_FREQ_LEN);
devdbg(usbdev, "QUAL %d", le32_to_cpu(bssid->Rssi)); devdbg(usbdev, "QUAL %d", le32_to_cpu(bssid->rssi));
iwe.cmd = IWEVQUAL; iwe.cmd = IWEVQUAL;
iwe.u.qual.qual = level_to_qual(le32_to_cpu(bssid->Rssi)); iwe.u.qual.qual = level_to_qual(le32_to_cpu(bssid->rssi));
iwe.u.qual.level = le32_to_cpu(bssid->Rssi); iwe.u.qual.level = le32_to_cpu(bssid->rssi);
iwe.u.qual.updated = IW_QUAL_QUAL_UPDATED iwe.u.qual.updated = IW_QUAL_QUAL_UPDATED
| IW_QUAL_LEVEL_UPDATED | IW_QUAL_LEVEL_UPDATED
| IW_QUAL_NOISE_INVALID; | IW_QUAL_NOISE_INVALID;
cev = iwe_stream_add_event(cev, end_buf, &iwe, IW_EV_QUAL_LEN); cev = iwe_stream_add_event(cev, end_buf, &iwe, IW_EV_QUAL_LEN);
devdbg(usbdev, "ENCODE %d", le32_to_cpu(bssid->Privacy)); devdbg(usbdev, "ENCODE %d", le32_to_cpu(bssid->privacy));
iwe.cmd = SIOCGIWENCODE; iwe.cmd = SIOCGIWENCODE;
iwe.u.data.length = 0; iwe.u.data.length = 0;
if (le32_to_cpu(bssid->Privacy) == ndis_80211_priv_accept_all) if (le32_to_cpu(bssid->privacy) == ndis_80211_priv_accept_all)
iwe.u.data.flags = IW_ENCODE_DISABLED; iwe.u.data.flags = IW_ENCODE_DISABLED;
else else
iwe.u.data.flags = IW_ENCODE_ENABLED | IW_ENCODE_NOKEY; iwe.u.data.flags = IW_ENCODE_ENABLED | IW_ENCODE_NOKEY;
...@@ -1680,10 +1674,10 @@ static char *rndis_translate_scan(struct net_device *dev, ...@@ -1680,10 +1674,10 @@ static char *rndis_translate_scan(struct net_device *dev,
devdbg(usbdev, "RATES:"); devdbg(usbdev, "RATES:");
current_val = cev + IW_EV_LCP_LEN; current_val = cev + IW_EV_LCP_LEN;
iwe.cmd = SIOCGIWRATE; iwe.cmd = SIOCGIWRATE;
for (i = 0; i < sizeof(bssid->SupportedRates); i++) { for (i = 0; i < sizeof(bssid->rates); i++) {
if (bssid->SupportedRates[i] & 0x7f) { if (bssid->rates[i] & 0x7f) {
iwe.u.bitrate.value = iwe.u.bitrate.value =
((bssid->SupportedRates[i] & 0x7f) * ((bssid->rates[i] & 0x7f) *
500000); 500000);
devdbg(usbdev, " %d", iwe.u.bitrate.value); devdbg(usbdev, " %d", iwe.u.bitrate.value);
current_val = iwe_stream_add_value(cev, current_val = iwe_stream_add_value(cev,
...@@ -1695,23 +1689,23 @@ static char *rndis_translate_scan(struct net_device *dev, ...@@ -1695,23 +1689,23 @@ static char *rndis_translate_scan(struct net_device *dev,
if ((current_val - cev) > IW_EV_LCP_LEN) if ((current_val - cev) > IW_EV_LCP_LEN)
cev = current_val; cev = current_val;
beacon = le32_to_cpu(bssid->Configuration.BeaconPeriod); beacon = le32_to_cpu(bssid->config.beacon_period);
devdbg(usbdev, "BCN_INT %d", beacon); devdbg(usbdev, "BCN_INT %d", beacon);
iwe.cmd = IWEVCUSTOM; iwe.cmd = IWEVCUSTOM;
snprintf(sbuf, sizeof(sbuf), "bcn_int=%d", beacon); snprintf(sbuf, sizeof(sbuf), "bcn_int=%d", beacon);
iwe.u.data.length = strlen(sbuf); iwe.u.data.length = strlen(sbuf);
cev = iwe_stream_add_point(cev, end_buf, &iwe, sbuf); cev = iwe_stream_add_point(cev, end_buf, &iwe, sbuf);
atim = le32_to_cpu(bssid->Configuration.ATIMWindow); atim = le32_to_cpu(bssid->config.atim_window);
devdbg(usbdev, "ATIM %d", atim); devdbg(usbdev, "ATIM %d", atim);
iwe.cmd = IWEVCUSTOM; iwe.cmd = IWEVCUSTOM;
snprintf(sbuf, sizeof(sbuf), "atim=%u", atim); snprintf(sbuf, sizeof(sbuf), "atim=%u", atim);
iwe.u.data.length = strlen(sbuf); iwe.u.data.length = strlen(sbuf);
cev = iwe_stream_add_point(cev, end_buf, &iwe, sbuf); cev = iwe_stream_add_point(cev, end_buf, &iwe, sbuf);
ie = (void *)(bssid->IEs + sizeof(struct ndis_80211_fixed_ies)); ie = (void *)(bssid->ies + sizeof(struct ndis_80211_fixed_ies));
ie_len = min(bssid_len - (int)sizeof(*bssid), ie_len = min(bssid_len - (int)sizeof(*bssid),
(int)le32_to_cpu(bssid->IELength)); (int)le32_to_cpu(bssid->ie_length));
ie_len -= sizeof(struct ndis_80211_fixed_ies); ie_len -= sizeof(struct ndis_80211_fixed_ies);
while (ie_len >= sizeof(*ie) && sizeof(*ie) + ie->len <= ie_len) { while (ie_len >= sizeof(*ie) && sizeof(*ie) + ie->len <= ie_len) {
if ((ie->id == MFIE_TYPE_GENERIC && ie->len >= 4 && if ((ie->id == MFIE_TYPE_GENERIC && ie->len >= 4 &&
...@@ -1758,16 +1752,16 @@ static int rndis_iw_get_scan(struct net_device *dev, ...@@ -1758,16 +1752,16 @@ static int rndis_iw_get_scan(struct net_device *dev,
goto out; goto out;
bssid_list = buf; bssid_list = buf;
bssid = bssid_list->Bssid; bssid = bssid_list->bssid;
bssid_len = le32_to_cpu(bssid->Length); bssid_len = le32_to_cpu(bssid->length);
count = le32_to_cpu(bssid_list->NumberOfItems); count = le32_to_cpu(bssid_list->num_items);
devdbg(usbdev, "SIOCGIWSCAN: %d BSSIDs found", count); devdbg(usbdev, "SIOCGIWSCAN: %d BSSIDs found", count);
while (count && ((void *)bssid + bssid_len) <= (buf + len)) { while (count && ((void *)bssid + bssid_len) <= (buf + len)) {
cev = rndis_translate_scan(dev, cev, extra + IW_SCAN_MAX_DATA, cev = rndis_translate_scan(dev, cev, extra + IW_SCAN_MAX_DATA,
bssid); bssid);
bssid = (void *)bssid + bssid_len; bssid = (void *)bssid + bssid_len;
bssid_len = le32_to_cpu(bssid->Length); bssid_len = le32_to_cpu(bssid->length);
count--; count--;
} }
...@@ -1960,7 +1954,7 @@ static int rndis_iw_set_freq(struct net_device *dev, ...@@ -1960,7 +1954,7 @@ static int rndis_iw_set_freq(struct net_device *dev,
return 0; return 0;
} }
config.DSConfig = cpu_to_le32(dsconfig); config.ds_config = cpu_to_le32(dsconfig);
devdbg(usbdev, "SIOCSIWFREQ: %d * 10^%d", wrqu->freq.m, wrqu->freq.e); devdbg(usbdev, "SIOCSIWFREQ: %d * 10^%d", wrqu->freq.m, wrqu->freq.e);
return rndis_set_oid(usbdev, OID_802_11_CONFIGURATION, &config, return rndis_set_oid(usbdev, OID_802_11_CONFIGURATION, &config,
...@@ -1978,7 +1972,7 @@ static int rndis_iw_get_freq(struct net_device *dev, ...@@ -1978,7 +1972,7 @@ static int rndis_iw_get_freq(struct net_device *dev,
len = sizeof(config); len = sizeof(config);
ret = rndis_query_oid(usbdev, OID_802_11_CONFIGURATION, &config, &len); ret = rndis_query_oid(usbdev, OID_802_11_CONFIGURATION, &config, &len);
if (ret == 0) if (ret == 0)
dsconfig_to_freq(le32_to_cpu(config.DSConfig), &wrqu->freq); dsconfig_to_freq(le32_to_cpu(config.ds_config), &wrqu->freq);
devdbg(usbdev, "SIOCGIWFREQ: %d", wrqu->freq.m); devdbg(usbdev, "SIOCGIWFREQ: %d", wrqu->freq.m);
return ret; return ret;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment