Hi Jak, Daniel,
(Dropped Bart from CC)
On Thursday 10 July 2008 05:16:20 Daniel Baumann wrote:
Julian Andres Klode wrote:
Sorry, I wasn't at home in the last 2 weeks. Should get uploaded this
week. I will do some final builds and tests and see if my AM sponsors it,
else I will look for another sponsor.
No worries, I figured you were busy with life.
take your time - there won't be a 2.6.25 upload anymore anyways; please
directly head for 2.6.26.
The following patch will be required for 2.6.26, it has been submitted to
ndiswrapper upstream and requires testing. Jak, pick it up if you like.
Thanks, Kel.
---
Adapt to Linux 2.6.26 WEXT API change.
Add compat defines for iwe_stream_add_{event,point,value}() and
iwe_stream_lcp_len() in reaction to change in WEXT API [0] of Linux 2.6.26.
Based on patches committed to Madwifi [1,2].
[0]
http://git.kernel.org/?p=linux/kernel/git/davem/wireless-2.6.git;a=commitdiff;h=ccc580571cf0799d0460a085a7632b77753f083e
[1] http://madwifi.org/changeset/3750
[2] http://madwifi.org/changeset/3760
Signed-off-by: Kel Modderman [EMAIL PROTECTED]
---
--- a/driver/iw_ndis.c
+++ b/driver/iw_ndis.c
@@ -1015,7 +1015,16 @@
return 0;
}
-static char *ndis_translate_scan(struct net_device *dev, char *event,
+#if LINUX_VERSION_CODE KERNEL_VERSION(2, 6, 26)
+#defineiwe_stream_add_event(a, b, c, d, e) iwe_stream_add_event(b,
c, d, e)
+#defineiwe_stream_add_point(a, b, c, d, e) iwe_stream_add_point(b,
c, d, e)
+#defineiwe_stream_add_value(a, b, c, d, e, f) \
+ iwe_stream_add_value(b, c, d, e, f)
+#defineiwe_stream_lcp_len(...) IW_EV_LCP_LEN
+#endif
+
+static char *ndis_translate_scan(struct net_device *dev,
+struct iw_request_info *info, char *event,
char *end_buf, void *item)
{
struct iw_event iwe;
@@ -1034,7 +1043,8 @@
iwe.u.ap_addr.sa_family = ARPHRD_ETHER;
iwe.len = IW_EV_ADDR_LEN;
memcpy(iwe.u.ap_addr.sa_data, bssid-mac, ETH_ALEN);
- event = iwe_stream_add_event(event, end_buf, iwe, IW_EV_ADDR_LEN);
+ event = iwe_stream_add_event(info, event, end_buf, iwe,
+IW_EV_ADDR_LEN);
/* add essid */
memset(iwe, 0, sizeof(iwe));
@@ -1044,13 +1054,15 @@
iwe.u.data.length = IW_ESSID_MAX_SIZE;
iwe.u.data.flags = 1;
iwe.len = IW_EV_POINT_LEN + iwe.u.data.length;
- event = iwe_stream_add_point(event, end_buf, iwe, bssid-ssid.essid);
+ event = iwe_stream_add_point(info, event, end_buf, iwe,
+bssid-ssid.essid);
/* add protocol name */
memset(iwe, 0, sizeof(iwe));
iwe.cmd = SIOCGIWNAME;
strncpy(iwe.u.name, network_type_to_name(bssid-net_type), IFNAMSIZ);
- event = iwe_stream_add_event(event, end_buf, iwe, IW_EV_CHAR_LEN);
+ event = iwe_stream_add_event(info, event, end_buf, iwe,
+IW_EV_CHAR_LEN);
/* add mode */
memset(iwe, 0, sizeof(iwe));
@@ -1061,7 +1073,8 @@
iwe.u.mode = IW_MODE_INFRA;
else // if (bssid-mode == Ndis802_11AutoUnknown)
iwe.u.mode = IW_MODE_AUTO;
- event = iwe_stream_add_event(event, end_buf, iwe, IW_EV_UINT_LEN);
+ event = iwe_stream_add_event(info, event, end_buf, iwe,
+IW_EV_UINT_LEN);
/* add freq */
memset(iwe, 0, sizeof(iwe));
@@ -1076,7 +1089,8 @@
/* convert from kHz to Hz */
iwe.u.freq.e += 3;
iwe.len = IW_EV_FREQ_LEN;
- event = iwe_stream_add_event(event, end_buf, iwe, IW_EV_FREQ_LEN);
+ event = iwe_stream_add_event(info, event, end_buf, iwe,
+IW_EV_FREQ_LEN);
/* add qual */
memset(iwe, 0, sizeof(iwe));
@@ -1090,7 +1104,8 @@
iwe.u.qual.noise = WL_NOISE;
iwe.u.qual.qual = i;
iwe.len = IW_EV_QUAL_LEN;
- event = iwe_stream_add_event(event, end_buf, iwe, IW_EV_QUAL_LEN);
+ event = iwe_stream_add_event(info, event, end_buf, iwe,
+IW_EV_QUAL_LEN);
/* add key info */
memset(iwe, 0, sizeof(iwe));
@@ -1101,11 +1116,12 @@
iwe.u.data.flags = IW_ENCODE_ENABLED | IW_ENCODE_NOKEY;
iwe.u.data.length = 0;
iwe.len = IW_EV_POINT_LEN;
- event = iwe_stream_add_point(event, end_buf, iwe, bssid-ssid.essid);
+ event = iwe_stream_add_point(info, event, end_buf, iwe,
+bssid-ssid.essid);
/* add rate */
memset(iwe, 0, sizeof(iwe));
- current_val = event + IW_EV_LCP_LEN;
+ current_val = event + iwe_stream_lcp_len(info);
iwe.cmd = SIOCGIWRATE;
if (bssid-length sizeof(*bssid))
nrates = NDIS_MAX_RATES_EX;
@@ -1115,26 +1131,27 @@
if