2010-03-18 06:21:44

by Joe Perches

[permalink] [raw]
Subject: [PATCH v2 0/7] wireless: Use macros from wireless.h

Move the STD_IW_HANDLER macro from orinoco to wireless.h
Use the wireless.h macros in various wireless files
Remove local #defines of IW_IOCTL

Joe Perches (7):
wireless.h: Add STD_IW_HANDLER macro
net/wireless/wext_core.c: Use IW_IOCTL_IDX macro
net/wireless/wext-core.c: Use IW_EVENT_IDX macro
drivers/net/wireless: Use STD_IW_HANDLER macro
drivers/net: Remove local #define IW_IOCTL, use STD_IW_HANDLER
orinoco/wext.c: Remove local #define STD_IW_HANDLER
wireless.h: Use SIOCIWFIRST not SIOCSIWCOMMIT for range check

drivers/net/ps3_gelic_wireless.c | 35 ++++----
drivers/net/wireless/ipw2x00/ipw2200.c | 83 ++++++++++----------
drivers/net/wireless/orinoco/wext.c | 2 -
drivers/net/wireless/ray_cs.c | 40 +++++-----
drivers/net/wireless/wl3501_cs.c | 52 ++++++------
include/linux/wireless.h | 4 +-
net/wireless/wext-core.c | 134 ++++++++++++++++----------------
7 files changed, 174 insertions(+), 176 deletions(-)



2010-03-18 17:22:43

by Joe Perches

[permalink] [raw]
Subject: [PATCH v2 8/7] iw_handler.h: Use SIOCIWFIRST not SIOCSIWCOMMIT for offset comment

On Thu, 2010-03-18 at 13:12 -0400, Pavel Roskin wrote:
> please change a comment referring to SIOCSIWCOMMIT in
> include/net/iw_handler.h

Signed-off-by: Joe Perches <[email protected]>
---
diff --git a/include/net/iw_handler.h b/include/net/iw_handler.h
index b2b98f3..3afdb21 100644
--- a/include/net/iw_handler.h
+++ b/include/net/iw_handler.h
@@ -323,7 +323,7 @@ typedef int (*iw_handler)(struct net_device *dev, struct iw_request_info *info,
struct iw_handler_def {

/* Array of handlers for standard ioctls
- * We will call dev->wireless_handlers->standard[ioctl - SIOCSIWCOMMIT]
+ * We will call dev->wireless_handlers->standard[ioctl - SIOCIWFIRST]
*/
const iw_handler * standard;
/* Number of handlers defined (more precisely, index of the



2010-03-18 17:37:03

by Joe Perches

[permalink] [raw]
Subject: Re: [PATCH v2 1/7] wireless.h: Add STD_IW_HANDLER macro

On Thu, 2010-03-18 at 13:23 -0400, Pavel Roskin wrote:
> On Wed, 2010-03-17 at 23:21 -0700, Joe Perches wrote:
> > Copied from orinoco, initialize a iw_handler array entry
> > +#define STD_IW_HANDLER(id, func) \
> > + [IW_IOCTL_IDX(id)] = (iw_handler) func
> Three objections.
> 1) STD_IW_HANDLER is a poor name for a header. The name should start
> with IW, just like those above and below it.

Is IW_HANDLER ok with you?

> 3) Abstracting a cast is bad unless it's the whole purpose of the macro.
> While Orinoco needs the cast, other drivers may not need it. Using a
> cast could prevent gcc from finding a legitimate problem.

I've no objection to moving the casts to the uses
of the macro where necessary.


2010-03-18 17:25:27

by Pavel Roskin

[permalink] [raw]
Subject: Re: [PATCH v2 4/7] drivers/net/wireless: Use STD_IW_HANDLER macro

On Wed, 2010-03-17 at 23:21 -0700, Joe Perches wrote:
> Convert direct uses of [ (foo - SIOCIWFIRST) , fn)
>
> Signed-off-by: Joe Perches <[email protected]>
...
> static const iw_handler wl3501_handler[] = {
> - [SIOCGIWNAME - SIOCIWFIRST] = wl3501_get_name,
...
> + STD_IW_HANDLER(SIOCGIWNAME, wl3501_get_name),

You are introducing an unnecessary cast here. That's bad.

--
Regards,
Pavel Roskin

2010-03-18 17:23:44

by Pavel Roskin

[permalink] [raw]
Subject: Re: [PATCH v2 1/7] wireless.h: Add STD_IW_HANDLER macro

On Wed, 2010-03-17 at 23:21 -0700, Joe Perches wrote:
> Copied from orinoco, initialize a iw_handler array entry
>
> Signed-off-by: Joe Perches <[email protected]>
> ---
> include/linux/wireless.h | 2 ++
> 1 files changed, 2 insertions(+), 0 deletions(-)
>
> diff --git a/include/linux/wireless.h b/include/linux/wireless.h
> index 5b4c6c7..ad9f8d5 100644
> --- a/include/linux/wireless.h
> +++ b/include/linux/wireless.h
> @@ -346,6 +346,8 @@
> #define SIOCIWFIRST 0x8B00
> #define SIOCIWLAST SIOCIWLASTPRIV /* 0x8BFF */
> #define IW_IOCTL_IDX(cmd) ((cmd) - SIOCIWFIRST)
> +#define STD_IW_HANDLER(id, func) \
> + [IW_IOCTL_IDX(id)] = (iw_handler) func
>
> /* Odd : get (world access), even : set (root access) */
> #define IW_IS_SET(cmd) (!((cmd) & 0x1))

Three objections.

1) STD_IW_HANDLER is a poor name for a header. The name should start
with IW, just like those above and below it.

2) Adding STD_IW_HANDLER to wireless.h and removing it from Orinoco in
separate commits might create several commits in which Orinoco may not
compile. I think gcc would not object if you copy the definition
exactly, but I would not rely on it. Making life miserable for
bisectors is bad - they are useful creatures. Of course, the argument
is moot if you use a different name for the new macro.

3) Abstracting a cast is bad unless it's the whole purpose of the macro.
While Orinoco needs the cast, other drivers may not need it. Using a
cast could prevent gcc from finding a legitimate problem.

--
Regards,
Pavel Roskin

2010-03-18 06:21:44

by Joe Perches

[permalink] [raw]
Subject: [PATCH v2 1/7] wireless.h: Add STD_IW_HANDLER macro

Copied from orinoco, initialize a iw_handler array entry

Signed-off-by: Joe Perches <[email protected]>
---
include/linux/wireless.h | 2 ++
1 files changed, 2 insertions(+), 0 deletions(-)

diff --git a/include/linux/wireless.h b/include/linux/wireless.h
index 5b4c6c7..ad9f8d5 100644
--- a/include/linux/wireless.h
+++ b/include/linux/wireless.h
@@ -346,6 +346,8 @@
#define SIOCIWFIRST 0x8B00
#define SIOCIWLAST SIOCIWLASTPRIV /* 0x8BFF */
#define IW_IOCTL_IDX(cmd) ((cmd) - SIOCIWFIRST)
+#define STD_IW_HANDLER(id, func) \
+ [IW_IOCTL_IDX(id)] = (iw_handler) func

/* Odd : get (world access), even : set (root access) */
#define IW_IS_SET(cmd) (!((cmd) & 0x1))
--
1.7.0.14.g7e948


2010-03-18 06:21:45

by Joe Perches

[permalink] [raw]
Subject: [PATCH v2 3/7] net/wireless/wext-core.c: Use IW_EVENT_IDX macro

There's a wireless.h macro for this, might as well use it.

Signed-off-by: Joe Perches <[email protected]>
---
net/wireless/wext-core.c | 22 +++++++++++-----------
1 files changed, 11 insertions(+), 11 deletions(-)

diff --git a/net/wireless/wext-core.c b/net/wireless/wext-core.c
index dbde22b..bfcbeee 100644
--- a/net/wireless/wext-core.c
+++ b/net/wireless/wext-core.c
@@ -261,44 +261,44 @@ static const unsigned standard_ioctl_num = ARRAY_SIZE(standard_ioctl);
* we know about.
*/
static const struct iw_ioctl_description standard_event[] = {
- [IWEVTXDROP - IWEVFIRST] = {
+ [IW_EVENT_IDX(IWEVTXDROP)] = {
.header_type = IW_HEADER_TYPE_ADDR,
},
- [IWEVQUAL - IWEVFIRST] = {
+ [IW_EVENT_IDX(IWEVQUAL)] = {
.header_type = IW_HEADER_TYPE_QUAL,
},
- [IWEVCUSTOM - IWEVFIRST] = {
+ [IW_EVENT_IDX(IWEVCUSTOM)] = {
.header_type = IW_HEADER_TYPE_POINT,
.token_size = 1,
.max_tokens = IW_CUSTOM_MAX,
},
- [IWEVREGISTERED - IWEVFIRST] = {
+ [IW_EVENT_IDX(IWEVREGISTERED)] = {
.header_type = IW_HEADER_TYPE_ADDR,
},
- [IWEVEXPIRED - IWEVFIRST] = {
+ [IW_EVENT_IDX(IWEVEXPIRED)] = {
.header_type = IW_HEADER_TYPE_ADDR,
},
- [IWEVGENIE - IWEVFIRST] = {
+ [IW_EVENT_IDX(IWEVGENIE)] = {
.header_type = IW_HEADER_TYPE_POINT,
.token_size = 1,
.max_tokens = IW_GENERIC_IE_MAX,
},
- [IWEVMICHAELMICFAILURE - IWEVFIRST] = {
+ [IW_EVENT_IDX(IWEVMICHAELMICFAILURE)] = {
.header_type = IW_HEADER_TYPE_POINT,
.token_size = 1,
.max_tokens = sizeof(struct iw_michaelmicfailure),
},
- [IWEVASSOCREQIE - IWEVFIRST] = {
+ [IW_EVENT_IDX(IWEVASSOCREQIE)] = {
.header_type = IW_HEADER_TYPE_POINT,
.token_size = 1,
.max_tokens = IW_GENERIC_IE_MAX,
},
- [IWEVASSOCRESPIE - IWEVFIRST] = {
+ [IW_EVENT_IDX(IWEVASSOCRESPIE)] = {
.header_type = IW_HEADER_TYPE_POINT,
.token_size = 1,
.max_tokens = IW_GENERIC_IE_MAX,
},
- [IWEVPMKIDCAND - IWEVFIRST] = {
+ [IW_EVENT_IDX(IWEVPMKIDCAND)] = {
.header_type = IW_HEADER_TYPE_POINT,
.token_size = 1,
.max_tokens = sizeof(struct iw_pmkid_cand),
@@ -453,7 +453,7 @@ void wireless_send_event(struct net_device * dev,
if (cmd_index < standard_ioctl_num)
descr = &(standard_ioctl[cmd_index]);
} else {
- cmd_index = cmd - IWEVFIRST;
+ cmd_index = IW_EVENT_IDX(cmd);
if (cmd_index < standard_event_num)
descr = &(standard_event[cmd_index]);
}
--
1.7.0.14.g7e948


2010-03-18 17:07:41

by Johannes Berg

[permalink] [raw]
Subject: Re: [PATCH v2 0/7] wireless: Use macros from wireless.h

On Wed, 2010-03-17 at 23:21 -0700, Joe Perches wrote:
> Move the STD_IW_HANDLER macro from orinoco to wireless.h
> Use the wireless.h macros in various wireless files
> Remove local #defines of IW_IOCTL

I really don't want to debug any breakage here, but otherwise I don't
care and this is fine with me.

johannes


2010-03-31 17:55:30

by Geoff Levand

[permalink] [raw]
Subject: Re: [PATCH v2 5/7] drivers/net: Remove local #define IW_IOCTL, use STD_IW_HANDLER

Hi,

On 03/17/2010 11:21 PM, Joe Perches wrote:
> Use #define STD_IW_HANDLER from wireless.h instead
>
> Signed-off-by: Joe Perches <[email protected]>
> ---
> drivers/net/ps3_gelic_wireless.c | 35 +++++++-------
> drivers/net/wireless/ipw2x00/ipw2200.c | 83 ++++++++++++++++----------------
> 2 files changed, 58 insertions(+), 60 deletions(-)

Sorry for the delay. This looks fine for the PS3.

Acked-by: Geoff Levand <[email protected]>


2010-03-18 06:21:51

by Joe Perches

[permalink] [raw]
Subject: [PATCH v2 6/7] orinoco/wext.c: Remove local #define STD_IW_HANDLER

It's been copied into wireless.h, so this one isn't necessary

Signed-off-by: Joe Perches <[email protected]>
---
drivers/net/wireless/orinoco/wext.c | 2 --
1 files changed, 0 insertions(+), 2 deletions(-)

diff --git a/drivers/net/wireless/orinoco/wext.c b/drivers/net/wireless/orinoco/wext.c
index 31ca241..069c333 100644
--- a/drivers/net/wireless/orinoco/wext.c
+++ b/drivers/net/wireless/orinoco/wext.c
@@ -1505,8 +1505,6 @@ static const struct iw_priv_args orinoco_privtab[] = {
* Structures to export the Wireless Handlers
*/

-#define STD_IW_HANDLER(id, func) \
- [IW_IOCTL_IDX(id)] = (iw_handler) func
static const iw_handler orinoco_handler[] = {
STD_IW_HANDLER(SIOCSIWCOMMIT, orinoco_ioctl_commit),
STD_IW_HANDLER(SIOCGIWNAME, cfg80211_wext_giwname),
--
1.7.0.14.g7e948


2010-03-18 06:21:45

by Joe Perches

[permalink] [raw]
Subject: [PATCH v2 2/7] net/wireless/wext_core.c: Use IW_IOCTL_IDX macro

There's a wireless.h macro for this, might as well use it.

Signed-off-by: Joe Perches <[email protected]>
---
net/wireless/wext-core.c | 112 +++++++++++++++++++++++-----------------------
1 files changed, 56 insertions(+), 56 deletions(-)

diff --git a/net/wireless/wext-core.c b/net/wireless/wext-core.c
index 5e1656b..dbde22b 100644
--- a/net/wireless/wext-core.c
+++ b/net/wireless/wext-core.c
@@ -28,226 +28,226 @@ typedef int (*wext_ioctl_func)(struct net_device *, struct iwreq *,
* know about.
*/
static const struct iw_ioctl_description standard_ioctl[] = {
- [SIOCSIWCOMMIT - SIOCIWFIRST] = {
+ [IW_IOCTL_IDX(SIOCSIWCOMMIT)] = {
.header_type = IW_HEADER_TYPE_NULL,
},
- [SIOCGIWNAME - SIOCIWFIRST] = {
+ [IW_IOCTL_IDX(SIOCGIWNAME)] = {
.header_type = IW_HEADER_TYPE_CHAR,
.flags = IW_DESCR_FLAG_DUMP,
},
- [SIOCSIWNWID - SIOCIWFIRST] = {
+ [IW_IOCTL_IDX(SIOCSIWNWID)] = {
.header_type = IW_HEADER_TYPE_PARAM,
.flags = IW_DESCR_FLAG_EVENT,
},
- [SIOCGIWNWID - SIOCIWFIRST] = {
+ [IW_IOCTL_IDX(SIOCGIWNWID)] = {
.header_type = IW_HEADER_TYPE_PARAM,
.flags = IW_DESCR_FLAG_DUMP,
},
- [SIOCSIWFREQ - SIOCIWFIRST] = {
+ [IW_IOCTL_IDX(SIOCSIWFREQ)] = {
.header_type = IW_HEADER_TYPE_FREQ,
.flags = IW_DESCR_FLAG_EVENT,
},
- [SIOCGIWFREQ - SIOCIWFIRST] = {
+ [IW_IOCTL_IDX(SIOCGIWFREQ)] = {
.header_type = IW_HEADER_TYPE_FREQ,
.flags = IW_DESCR_FLAG_DUMP,
},
- [SIOCSIWMODE - SIOCIWFIRST] = {
+ [IW_IOCTL_IDX(SIOCSIWMODE)] = {
.header_type = IW_HEADER_TYPE_UINT,
.flags = IW_DESCR_FLAG_EVENT,
},
- [SIOCGIWMODE - SIOCIWFIRST] = {
+ [IW_IOCTL_IDX(SIOCGIWMODE)] = {
.header_type = IW_HEADER_TYPE_UINT,
.flags = IW_DESCR_FLAG_DUMP,
},
- [SIOCSIWSENS - SIOCIWFIRST] = {
+ [IW_IOCTL_IDX(SIOCSIWSENS)] = {
.header_type = IW_HEADER_TYPE_PARAM,
},
- [SIOCGIWSENS - SIOCIWFIRST] = {
+ [IW_IOCTL_IDX(SIOCGIWSENS)] = {
.header_type = IW_HEADER_TYPE_PARAM,
},
- [SIOCSIWRANGE - SIOCIWFIRST] = {
+ [IW_IOCTL_IDX(SIOCSIWRANGE)] = {
.header_type = IW_HEADER_TYPE_NULL,
},
- [SIOCGIWRANGE - SIOCIWFIRST] = {
+ [IW_IOCTL_IDX(SIOCGIWRANGE)] = {
.header_type = IW_HEADER_TYPE_POINT,
.token_size = 1,
.max_tokens = sizeof(struct iw_range),
.flags = IW_DESCR_FLAG_DUMP,
},
- [SIOCSIWPRIV - SIOCIWFIRST] = {
+ [IW_IOCTL_IDX(SIOCSIWPRIV)] = {
.header_type = IW_HEADER_TYPE_NULL,
},
- [SIOCGIWPRIV - SIOCIWFIRST] = { /* (handled directly by us) */
+ [IW_IOCTL_IDX(SIOCGIWPRIV)] = { /* (handled directly by us) */
.header_type = IW_HEADER_TYPE_POINT,
.token_size = sizeof(struct iw_priv_args),
.max_tokens = 16,
.flags = IW_DESCR_FLAG_NOMAX,
},
- [SIOCSIWSTATS - SIOCIWFIRST] = {
+ [IW_IOCTL_IDX(SIOCSIWSTATS)] = {
.header_type = IW_HEADER_TYPE_NULL,
},
- [SIOCGIWSTATS - SIOCIWFIRST] = { /* (handled directly by us) */
+ [IW_IOCTL_IDX(SIOCGIWSTATS)] = { /* (handled directly by us) */
.header_type = IW_HEADER_TYPE_POINT,
.token_size = 1,
.max_tokens = sizeof(struct iw_statistics),
.flags = IW_DESCR_FLAG_DUMP,
},
- [SIOCSIWSPY - SIOCIWFIRST] = {
+ [IW_IOCTL_IDX(SIOCSIWSPY)] = {
.header_type = IW_HEADER_TYPE_POINT,
.token_size = sizeof(struct sockaddr),
.max_tokens = IW_MAX_SPY,
},
- [SIOCGIWSPY - SIOCIWFIRST] = {
+ [IW_IOCTL_IDX(SIOCGIWSPY)] = {
.header_type = IW_HEADER_TYPE_POINT,
.token_size = sizeof(struct sockaddr) +
sizeof(struct iw_quality),
.max_tokens = IW_MAX_SPY,
},
- [SIOCSIWTHRSPY - SIOCIWFIRST] = {
+ [IW_IOCTL_IDX(SIOCSIWTHRSPY)] = {
.header_type = IW_HEADER_TYPE_POINT,
.token_size = sizeof(struct iw_thrspy),
.min_tokens = 1,
.max_tokens = 1,
},
- [SIOCGIWTHRSPY - SIOCIWFIRST] = {
+ [IW_IOCTL_IDX(SIOCGIWTHRSPY)] = {
.header_type = IW_HEADER_TYPE_POINT,
.token_size = sizeof(struct iw_thrspy),
.min_tokens = 1,
.max_tokens = 1,
},
- [SIOCSIWAP - SIOCIWFIRST] = {
+ [IW_IOCTL_IDX(SIOCSIWAP)] = {
.header_type = IW_HEADER_TYPE_ADDR,
},
- [SIOCGIWAP - SIOCIWFIRST] = {
+ [IW_IOCTL_IDX(SIOCGIWAP)] = {
.header_type = IW_HEADER_TYPE_ADDR,
.flags = IW_DESCR_FLAG_DUMP,
},
- [SIOCSIWMLME - SIOCIWFIRST] = {
+ [IW_IOCTL_IDX(SIOCSIWMLME)] = {
.header_type = IW_HEADER_TYPE_POINT,
.token_size = 1,
.min_tokens = sizeof(struct iw_mlme),
.max_tokens = sizeof(struct iw_mlme),
},
- [SIOCGIWAPLIST - SIOCIWFIRST] = {
+ [IW_IOCTL_IDX(SIOCGIWAPLIST)] = {
.header_type = IW_HEADER_TYPE_POINT,
.token_size = sizeof(struct sockaddr) +
sizeof(struct iw_quality),
.max_tokens = IW_MAX_AP,
.flags = IW_DESCR_FLAG_NOMAX,
},
- [SIOCSIWSCAN - SIOCIWFIRST] = {
+ [IW_IOCTL_IDX(SIOCSIWSCAN)] = {
.header_type = IW_HEADER_TYPE_POINT,
.token_size = 1,
.min_tokens = 0,
.max_tokens = sizeof(struct iw_scan_req),
},
- [SIOCGIWSCAN - SIOCIWFIRST] = {
+ [IW_IOCTL_IDX(SIOCGIWSCAN)] = {
.header_type = IW_HEADER_TYPE_POINT,
.token_size = 1,
.max_tokens = IW_SCAN_MAX_DATA,
.flags = IW_DESCR_FLAG_NOMAX,
},
- [SIOCSIWESSID - SIOCIWFIRST] = {
+ [IW_IOCTL_IDX(SIOCSIWESSID)] = {
.header_type = IW_HEADER_TYPE_POINT,
.token_size = 1,
.max_tokens = IW_ESSID_MAX_SIZE,
.flags = IW_DESCR_FLAG_EVENT,
},
- [SIOCGIWESSID - SIOCIWFIRST] = {
+ [IW_IOCTL_IDX(SIOCGIWESSID)] = {
.header_type = IW_HEADER_TYPE_POINT,
.token_size = 1,
.max_tokens = IW_ESSID_MAX_SIZE,
.flags = IW_DESCR_FLAG_DUMP,
},
- [SIOCSIWNICKN - SIOCIWFIRST] = {
+ [IW_IOCTL_IDX(SIOCSIWNICKN)] = {
.header_type = IW_HEADER_TYPE_POINT,
.token_size = 1,
.max_tokens = IW_ESSID_MAX_SIZE,
},
- [SIOCGIWNICKN - SIOCIWFIRST] = {
+ [IW_IOCTL_IDX(SIOCGIWNICKN)] = {
.header_type = IW_HEADER_TYPE_POINT,
.token_size = 1,
.max_tokens = IW_ESSID_MAX_SIZE,
},
- [SIOCSIWRATE - SIOCIWFIRST] = {
+ [IW_IOCTL_IDX(SIOCSIWRATE)] = {
.header_type = IW_HEADER_TYPE_PARAM,
},
- [SIOCGIWRATE - SIOCIWFIRST] = {
+ [IW_IOCTL_IDX(SIOCGIWRATE)] = {
.header_type = IW_HEADER_TYPE_PARAM,
},
- [SIOCSIWRTS - SIOCIWFIRST] = {
+ [IW_IOCTL_IDX(SIOCSIWRTS)] = {
.header_type = IW_HEADER_TYPE_PARAM,
},
- [SIOCGIWRTS - SIOCIWFIRST] = {
+ [IW_IOCTL_IDX(SIOCGIWRTS)] = {
.header_type = IW_HEADER_TYPE_PARAM,
},
- [SIOCSIWFRAG - SIOCIWFIRST] = {
+ [IW_IOCTL_IDX(SIOCSIWFRAG)] = {
.header_type = IW_HEADER_TYPE_PARAM,
},
- [SIOCGIWFRAG - SIOCIWFIRST] = {
+ [IW_IOCTL_IDX(SIOCGIWFRAG)] = {
.header_type = IW_HEADER_TYPE_PARAM,
},
- [SIOCSIWTXPOW - SIOCIWFIRST] = {
+ [IW_IOCTL_IDX(SIOCSIWTXPOW)] = {
.header_type = IW_HEADER_TYPE_PARAM,
},
- [SIOCGIWTXPOW - SIOCIWFIRST] = {
+ [IW_IOCTL_IDX(SIOCGIWTXPOW)] = {
.header_type = IW_HEADER_TYPE_PARAM,
},
- [SIOCSIWRETRY - SIOCIWFIRST] = {
+ [IW_IOCTL_IDX(SIOCSIWRETRY)] = {
.header_type = IW_HEADER_TYPE_PARAM,
},
- [SIOCGIWRETRY - SIOCIWFIRST] = {
+ [IW_IOCTL_IDX(SIOCGIWRETRY)] = {
.header_type = IW_HEADER_TYPE_PARAM,
},
- [SIOCSIWENCODE - SIOCIWFIRST] = {
+ [IW_IOCTL_IDX(SIOCSIWENCODE)] = {
.header_type = IW_HEADER_TYPE_POINT,
.token_size = 1,
.max_tokens = IW_ENCODING_TOKEN_MAX,
.flags = IW_DESCR_FLAG_EVENT | IW_DESCR_FLAG_RESTRICT,
},
- [SIOCGIWENCODE - SIOCIWFIRST] = {
+ [IW_IOCTL_IDX(SIOCGIWENCODE)] = {
.header_type = IW_HEADER_TYPE_POINT,
.token_size = 1,
.max_tokens = IW_ENCODING_TOKEN_MAX,
.flags = IW_DESCR_FLAG_DUMP | IW_DESCR_FLAG_RESTRICT,
},
- [SIOCSIWPOWER - SIOCIWFIRST] = {
+ [IW_IOCTL_IDX(SIOCSIWPOWER)] = {
.header_type = IW_HEADER_TYPE_PARAM,
},
- [SIOCGIWPOWER - SIOCIWFIRST] = {
+ [IW_IOCTL_IDX(SIOCGIWPOWER)] = {
.header_type = IW_HEADER_TYPE_PARAM,
},
- [SIOCSIWGENIE - SIOCIWFIRST] = {
+ [IW_IOCTL_IDX(SIOCSIWGENIE)] = {
.header_type = IW_HEADER_TYPE_POINT,
.token_size = 1,
.max_tokens = IW_GENERIC_IE_MAX,
},
- [SIOCGIWGENIE - SIOCIWFIRST] = {
+ [IW_IOCTL_IDX(SIOCGIWGENIE)] = {
.header_type = IW_HEADER_TYPE_POINT,
.token_size = 1,
.max_tokens = IW_GENERIC_IE_MAX,
},
- [SIOCSIWAUTH - SIOCIWFIRST] = {
+ [IW_IOCTL_IDX(SIOCSIWAUTH)] = {
.header_type = IW_HEADER_TYPE_PARAM,
},
- [SIOCGIWAUTH - SIOCIWFIRST] = {
+ [IW_IOCTL_IDX(SIOCGIWAUTH)] = {
.header_type = IW_HEADER_TYPE_PARAM,
},
- [SIOCSIWENCODEEXT - SIOCIWFIRST] = {
+ [IW_IOCTL_IDX(SIOCSIWENCODEEXT)] = {
.header_type = IW_HEADER_TYPE_POINT,
.token_size = 1,
.min_tokens = sizeof(struct iw_encode_ext),
.max_tokens = sizeof(struct iw_encode_ext) +
IW_ENCODING_TOKEN_MAX,
},
- [SIOCGIWENCODEEXT - SIOCIWFIRST] = {
+ [IW_IOCTL_IDX(SIOCGIWENCODEEXT)] = {
.header_type = IW_HEADER_TYPE_POINT,
.token_size = 1,
.min_tokens = sizeof(struct iw_encode_ext),
.max_tokens = sizeof(struct iw_encode_ext) +
IW_ENCODING_TOKEN_MAX,
},
- [SIOCSIWPMKSA - SIOCIWFIRST] = {
+ [IW_IOCTL_IDX(SIOCSIWPMKSA)] = {
.header_type = IW_HEADER_TYPE_POINT,
.token_size = 1,
.min_tokens = sizeof(struct iw_pmksa),
@@ -449,7 +449,7 @@ void wireless_send_event(struct net_device * dev,

/* Get the description of the Event */
if (cmd <= SIOCIWLAST) {
- cmd_index = cmd - SIOCIWFIRST;
+ cmd_index = IW_IOCTL_IDX(cmd);
if (cmd_index < standard_ioctl_num)
descr = &(standard_ioctl[cmd_index]);
} else {
@@ -662,7 +662,7 @@ static iw_handler get_handler(struct net_device *dev, unsigned int cmd)
return NULL;

/* Try as a standard command */
- index = cmd - SIOCIWFIRST;
+ index = IW_IOCTL_IDX(cmd);
if (index < handlers->num_standard)
return handlers->standard[index];

@@ -954,9 +954,9 @@ static int ioctl_standard_call(struct net_device * dev,
int ret = -EINVAL;

/* Get the description of the IOCTL */
- if ((cmd - SIOCIWFIRST) >= standard_ioctl_num)
+ if (IW_IOCTL_IDX(cmd) >= standard_ioctl_num)
return -EOPNOTSUPP;
- descr = &(standard_ioctl[cmd - SIOCIWFIRST]);
+ descr = &(standard_ioctl[IW_IOCTL_IDX(cmd)]);

/* Check if we have a pointer to user space data or not */
if (descr->header_type != IW_HEADER_TYPE_POINT) {
@@ -1012,7 +1012,7 @@ static int compat_standard_call(struct net_device *dev,
struct iw_point iwp;
int err;

- descr = standard_ioctl + (cmd - SIOCIWFIRST);
+ descr = standard_ioctl + IW_IOCTL_IDX(cmd);

if (descr->header_type != IW_HEADER_TYPE_POINT)
return ioctl_standard_call(dev, iwr, cmd, info, handler);
--
1.7.0.14.g7e948


2010-03-18 06:21:49

by Joe Perches

[permalink] [raw]
Subject: [PATCH v2 4/7] drivers/net/wireless: Use STD_IW_HANDLER macro

Convert direct uses of [ (foo - SIOCIWFIRST) , fn)

Signed-off-by: Joe Perches <[email protected]>
---
drivers/net/wireless/ray_cs.c | 40 ++++++++++++++--------------
drivers/net/wireless/wl3501_cs.c | 52 +++++++++++++++++++-------------------
2 files changed, 46 insertions(+), 46 deletions(-)

diff --git a/drivers/net/wireless/ray_cs.c b/drivers/net/wireless/ray_cs.c
index 84c530a..d25ed5a 100644
--- a/drivers/net/wireless/ray_cs.c
+++ b/drivers/net/wireless/ray_cs.c
@@ -1531,28 +1531,28 @@ static iw_stats *ray_get_wireless_stats(struct net_device *dev)
*/

static const iw_handler ray_handler[] = {
- [SIOCSIWCOMMIT - SIOCIWFIRST] = (iw_handler) ray_commit,
- [SIOCGIWNAME - SIOCIWFIRST] = (iw_handler) ray_get_name,
- [SIOCSIWFREQ - SIOCIWFIRST] = (iw_handler) ray_set_freq,
- [SIOCGIWFREQ - SIOCIWFIRST] = (iw_handler) ray_get_freq,
- [SIOCSIWMODE - SIOCIWFIRST] = (iw_handler) ray_set_mode,
- [SIOCGIWMODE - SIOCIWFIRST] = (iw_handler) ray_get_mode,
- [SIOCGIWRANGE - SIOCIWFIRST] = (iw_handler) ray_get_range,
+ STD_IW_HANDLER(SIOCSIWCOMMIT, ray_commit),
+ STD_IW_HANDLER(SIOCGIWNAME, ray_get_name),
+ STD_IW_HANDLER(SIOCSIWFREQ, ray_set_freq),
+ STD_IW_HANDLER(SIOCGIWFREQ, ray_get_freq),
+ STD_IW_HANDLER(SIOCSIWMODE, ray_set_mode),
+ STD_IW_HANDLER(SIOCGIWMODE, ray_get_mode),
+ STD_IW_HANDLER(SIOCGIWRANGE, ray_get_range),
#ifdef WIRELESS_SPY
- [SIOCSIWSPY - SIOCIWFIRST] = (iw_handler) iw_handler_set_spy,
- [SIOCGIWSPY - SIOCIWFIRST] = (iw_handler) iw_handler_get_spy,
- [SIOCSIWTHRSPY - SIOCIWFIRST] = (iw_handler) iw_handler_set_thrspy,
- [SIOCGIWTHRSPY - SIOCIWFIRST] = (iw_handler) iw_handler_get_thrspy,
+ STD_IW_HANDLER(SIOCSIWSPY, iw_handler_set_spy),
+ STD_IW_HANDLER(SIOCGIWSPY, iw_handler_get_spy),
+ STD_IW_HANDLER(SIOCSIWTHRSPY, iw_handler_set_thrspy),
+ STD_IW_HANDLER(SIOCGIWTHRSPY, iw_handler_get_thrspy),
#endif /* WIRELESS_SPY */
- [SIOCGIWAP - SIOCIWFIRST] = (iw_handler) ray_get_wap,
- [SIOCSIWESSID - SIOCIWFIRST] = (iw_handler) ray_set_essid,
- [SIOCGIWESSID - SIOCIWFIRST] = (iw_handler) ray_get_essid,
- [SIOCSIWRATE - SIOCIWFIRST] = (iw_handler) ray_set_rate,
- [SIOCGIWRATE - SIOCIWFIRST] = (iw_handler) ray_get_rate,
- [SIOCSIWRTS - SIOCIWFIRST] = (iw_handler) ray_set_rts,
- [SIOCGIWRTS - SIOCIWFIRST] = (iw_handler) ray_get_rts,
- [SIOCSIWFRAG - SIOCIWFIRST] = (iw_handler) ray_set_frag,
- [SIOCGIWFRAG - SIOCIWFIRST] = (iw_handler) ray_get_frag,
+ STD_IW_HANDLER(SIOCGIWAP, ray_get_wap),
+ STD_IW_HANDLER(SIOCSIWESSID, ray_set_essid),
+ STD_IW_HANDLER(SIOCGIWESSID, ray_get_essid),
+ STD_IW_HANDLER(SIOCSIWRATE, ray_set_rate),
+ STD_IW_HANDLER(SIOCGIWRATE, ray_get_rate),
+ STD_IW_HANDLER(SIOCSIWRTS, ray_set_rts),
+ STD_IW_HANDLER(SIOCGIWRTS, ray_get_rts),
+ STD_IW_HANDLER(SIOCSIWFRAG, ray_set_frag),
+ STD_IW_HANDLER(SIOCGIWFRAG, ray_get_frag),
};

#define SIOCSIPFRAMING SIOCIWFIRSTPRIV /* Set framing mode */
diff --git a/drivers/net/wireless/wl3501_cs.c b/drivers/net/wireless/wl3501_cs.c
index 7b9621d..d72f588 100644
--- a/drivers/net/wireless/wl3501_cs.c
+++ b/drivers/net/wireless/wl3501_cs.c
@@ -1834,32 +1834,32 @@ out:
}

static const iw_handler wl3501_handler[] = {
- [SIOCGIWNAME - SIOCIWFIRST] = wl3501_get_name,
- [SIOCSIWFREQ - SIOCIWFIRST] = wl3501_set_freq,
- [SIOCGIWFREQ - SIOCIWFIRST] = wl3501_get_freq,
- [SIOCSIWMODE - SIOCIWFIRST] = wl3501_set_mode,
- [SIOCGIWMODE - SIOCIWFIRST] = wl3501_get_mode,
- [SIOCGIWSENS - SIOCIWFIRST] = wl3501_get_sens,
- [SIOCGIWRANGE - SIOCIWFIRST] = wl3501_get_range,
- [SIOCSIWSPY - SIOCIWFIRST] = iw_handler_set_spy,
- [SIOCGIWSPY - SIOCIWFIRST] = iw_handler_get_spy,
- [SIOCSIWTHRSPY - SIOCIWFIRST] = iw_handler_set_thrspy,
- [SIOCGIWTHRSPY - SIOCIWFIRST] = iw_handler_get_thrspy,
- [SIOCSIWAP - SIOCIWFIRST] = wl3501_set_wap,
- [SIOCGIWAP - SIOCIWFIRST] = wl3501_get_wap,
- [SIOCSIWSCAN - SIOCIWFIRST] = wl3501_set_scan,
- [SIOCGIWSCAN - SIOCIWFIRST] = wl3501_get_scan,
- [SIOCSIWESSID - SIOCIWFIRST] = wl3501_set_essid,
- [SIOCGIWESSID - SIOCIWFIRST] = wl3501_get_essid,
- [SIOCSIWNICKN - SIOCIWFIRST] = wl3501_set_nick,
- [SIOCGIWNICKN - SIOCIWFIRST] = wl3501_get_nick,
- [SIOCGIWRATE - SIOCIWFIRST] = wl3501_get_rate,
- [SIOCGIWRTS - SIOCIWFIRST] = wl3501_get_rts_threshold,
- [SIOCGIWFRAG - SIOCIWFIRST] = wl3501_get_frag_threshold,
- [SIOCGIWTXPOW - SIOCIWFIRST] = wl3501_get_txpow,
- [SIOCGIWRETRY - SIOCIWFIRST] = wl3501_get_retry,
- [SIOCGIWENCODE - SIOCIWFIRST] = wl3501_get_encode,
- [SIOCGIWPOWER - SIOCIWFIRST] = wl3501_get_power,
+ STD_IW_HANDLER(SIOCGIWNAME, wl3501_get_name),
+ STD_IW_HANDLER(SIOCSIWFREQ, wl3501_set_freq),
+ STD_IW_HANDLER(SIOCGIWFREQ, wl3501_get_freq),
+ STD_IW_HANDLER(SIOCSIWMODE, wl3501_set_mode),
+ STD_IW_HANDLER(SIOCGIWMODE, wl3501_get_mode),
+ STD_IW_HANDLER(SIOCGIWSENS, wl3501_get_sens),
+ STD_IW_HANDLER(SIOCGIWRANGE, wl3501_get_range),
+ STD_IW_HANDLER(SIOCSIWSPY, iw_handler_set_spy),
+ STD_IW_HANDLER(SIOCGIWSPY, iw_handler_get_spy),
+ STD_IW_HANDLER(SIOCSIWTHRSPY, iw_handler_set_thrspy),
+ STD_IW_HANDLER(SIOCGIWTHRSPY, iw_handler_get_thrspy),
+ STD_IW_HANDLER(SIOCSIWAP, wl3501_set_wap),
+ STD_IW_HANDLER(SIOCGIWAP, wl3501_get_wap),
+ STD_IW_HANDLER(SIOCSIWSCAN, wl3501_set_scan),
+ STD_IW_HANDLER(SIOCGIWSCAN, wl3501_get_scan),
+ STD_IW_HANDLER(SIOCSIWESSID, wl3501_set_essid),
+ STD_IW_HANDLER(SIOCGIWESSID, wl3501_get_essid),
+ STD_IW_HANDLER(SIOCSIWNICKN, wl3501_set_nick),
+ STD_IW_HANDLER(SIOCGIWNICKN, wl3501_get_nick),
+ STD_IW_HANDLER(SIOCGIWRATE, wl3501_get_rate),
+ STD_IW_HANDLER(SIOCGIWRTS, wl3501_get_rts_threshold),
+ STD_IW_HANDLER(SIOCGIWFRAG, wl3501_get_frag_threshold),
+ STD_IW_HANDLER(SIOCGIWTXPOW, wl3501_get_txpow),
+ STD_IW_HANDLER(SIOCGIWRETRY, wl3501_get_retry),
+ STD_IW_HANDLER(SIOCGIWENCODE, wl3501_get_encode),
+ STD_IW_HANDLER(SIOCGIWPOWER, wl3501_get_power),
};

static const struct iw_handler_def wl3501_handler_def = {
--
1.7.0.14.g7e948


2010-03-18 06:21:51

by Joe Perches

[permalink] [raw]
Subject: [PATCH v2 7/7] wireless.h: Use SIOCIWFIRST not SIOCSIWCOMMIT for range check

These two #defines use the same value, but
SIOCIWFIRST makes more sense in this use.

Signed-off-by: Joe Perches <[email protected]>
---
include/linux/wireless.h | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/include/linux/wireless.h b/include/linux/wireless.h
index ad9f8d5..1a61099 100644
--- a/include/linux/wireless.h
+++ b/include/linux/wireless.h
@@ -650,7 +650,7 @@
* 32 bit bitmasks. Note : 32 bits = 0x20 = 2^5. */
#define IW_EVENT_CAPA_BASE(cmd) ((cmd >= SIOCIWFIRSTPRIV) ? \
(cmd - SIOCIWFIRSTPRIV + 0x60) : \
- (cmd - SIOCSIWCOMMIT))
+ (cmd - SIOCIWFIRST))
#define IW_EVENT_CAPA_INDEX(cmd) (IW_EVENT_CAPA_BASE(cmd) >> 5)
#define IW_EVENT_CAPA_MASK(cmd) (1 << (IW_EVENT_CAPA_BASE(cmd) & 0x1F))
/* Event capability constants - event autogenerated by the kernel
--
1.7.0.14.g7e948


2010-03-18 17:12:18

by Pavel Roskin

[permalink] [raw]
Subject: Re: [PATCH v2 7/7] wireless.h: Use SIOCIWFIRST not SIOCSIWCOMMIT for range check

On Wed, 2010-03-17 at 23:21 -0700, Joe Perches wrote:
> These two #defines use the same value, but
> SIOCIWFIRST makes more sense in this use.

Agreed. Also please change a comment referring to SIOCSIWCOMMIT in
include/net/iw_handler.h

It would be great if you don't copy LKML next time. It's a purely
wireless issues. I don't like having a dilemma between cross-posting
and trimming the recipient list.

--
Regards,
Pavel Roskin

2010-03-18 06:21:50

by Joe Perches

[permalink] [raw]
Subject: [PATCH v2 5/7] drivers/net: Remove local #define IW_IOCTL, use STD_IW_HANDLER

Use #define STD_IW_HANDLER from wireless.h instead

Signed-off-by: Joe Perches <[email protected]>
---
drivers/net/ps3_gelic_wireless.c | 35 +++++++-------
drivers/net/wireless/ipw2x00/ipw2200.c | 83 ++++++++++++++++----------------
2 files changed, 58 insertions(+), 60 deletions(-)

diff --git a/drivers/net/ps3_gelic_wireless.c b/drivers/net/ps3_gelic_wireless.c
index 2663b2f..2bc8935 100644
--- a/drivers/net/ps3_gelic_wireless.c
+++ b/drivers/net/ps3_gelic_wireless.c
@@ -2279,26 +2279,25 @@ void gelic_wl_interrupt(struct net_device *netdev, u64 status)
/*
* driver helpers
*/
-#define IW_IOCTL(n) [(n) - SIOCSIWCOMMIT]
static const iw_handler gelic_wl_wext_handler[] =
{
- IW_IOCTL(SIOCGIWNAME) = gelic_wl_get_name,
- IW_IOCTL(SIOCGIWRANGE) = gelic_wl_get_range,
- IW_IOCTL(SIOCSIWSCAN) = gelic_wl_set_scan,
- IW_IOCTL(SIOCGIWSCAN) = gelic_wl_get_scan,
- IW_IOCTL(SIOCSIWAUTH) = gelic_wl_set_auth,
- IW_IOCTL(SIOCGIWAUTH) = gelic_wl_get_auth,
- IW_IOCTL(SIOCSIWESSID) = gelic_wl_set_essid,
- IW_IOCTL(SIOCGIWESSID) = gelic_wl_get_essid,
- IW_IOCTL(SIOCSIWENCODE) = gelic_wl_set_encode,
- IW_IOCTL(SIOCGIWENCODE) = gelic_wl_get_encode,
- IW_IOCTL(SIOCSIWAP) = gelic_wl_set_ap,
- IW_IOCTL(SIOCGIWAP) = gelic_wl_get_ap,
- IW_IOCTL(SIOCSIWENCODEEXT) = gelic_wl_set_encodeext,
- IW_IOCTL(SIOCGIWENCODEEXT) = gelic_wl_get_encodeext,
- IW_IOCTL(SIOCSIWMODE) = gelic_wl_set_mode,
- IW_IOCTL(SIOCGIWMODE) = gelic_wl_get_mode,
- IW_IOCTL(SIOCGIWNICKN) = gelic_wl_get_nick,
+ STD_IW_HANDLER(SIOCGIWNAME, gelic_wl_get_name),
+ STD_IW_HANDLER(SIOCGIWRANGE, gelic_wl_get_range),
+ STD_IW_HANDLER(SIOCSIWSCAN, gelic_wl_set_scan),
+ STD_IW_HANDLER(SIOCGIWSCAN, gelic_wl_get_scan),
+ STD_IW_HANDLER(SIOCSIWAUTH, gelic_wl_set_auth),
+ STD_IW_HANDLER(SIOCGIWAUTH, gelic_wl_get_auth),
+ STD_IW_HANDLER(SIOCSIWESSID, gelic_wl_set_essid),
+ STD_IW_HANDLER(SIOCGIWESSID, gelic_wl_get_essid),
+ STD_IW_HANDLER(SIOCSIWENCODE, gelic_wl_set_encode),
+ STD_IW_HANDLER(SIOCGIWENCODE, gelic_wl_get_encode),
+ STD_IW_HANDLER(SIOCSIWAP, gelic_wl_set_ap),
+ STD_IW_HANDLER(SIOCGIWAP, gelic_wl_get_ap),
+ STD_IW_HANDLER(SIOCSIWENCODEEXT, gelic_wl_set_encodeext),
+ STD_IW_HANDLER(SIOCGIWENCODEEXT, gelic_wl_get_encodeext),
+ STD_IW_HANDLER(SIOCSIWMODE, gelic_wl_set_mode),
+ STD_IW_HANDLER(SIOCGIWMODE, gelic_wl_get_mode),
+ STD_IW_HANDLER(SIOCGIWNICKN, gelic_wl_get_nick),
};

static const struct iw_handler_def gelic_wl_wext_handler_def = {
diff --git a/drivers/net/wireless/ipw2x00/ipw2200.c b/drivers/net/wireless/ipw2x00/ipw2200.c
index 5c7aa1b..1e84888 100644
--- a/drivers/net/wireless/ipw2x00/ipw2200.c
+++ b/drivers/net/wireless/ipw2x00/ipw2200.c
@@ -9995,49 +9995,48 @@ static int ipw_wx_sw_reset(struct net_device *dev,
}

/* Rebase the WE IOCTLs to zero for the handler array */
-#define IW_IOCTL(x) [(x)-SIOCSIWCOMMIT]
static iw_handler ipw_wx_handlers[] = {
- IW_IOCTL(SIOCGIWNAME) = (iw_handler) cfg80211_wext_giwname,
- IW_IOCTL(SIOCSIWFREQ) = ipw_wx_set_freq,
- IW_IOCTL(SIOCGIWFREQ) = ipw_wx_get_freq,
- IW_IOCTL(SIOCSIWMODE) = ipw_wx_set_mode,
- IW_IOCTL(SIOCGIWMODE) = ipw_wx_get_mode,
- IW_IOCTL(SIOCSIWSENS) = ipw_wx_set_sens,
- IW_IOCTL(SIOCGIWSENS) = ipw_wx_get_sens,
- IW_IOCTL(SIOCGIWRANGE) = ipw_wx_get_range,
- IW_IOCTL(SIOCSIWAP) = ipw_wx_set_wap,
- IW_IOCTL(SIOCGIWAP) = ipw_wx_get_wap,
- IW_IOCTL(SIOCSIWSCAN) = ipw_wx_set_scan,
- IW_IOCTL(SIOCGIWSCAN) = ipw_wx_get_scan,
- IW_IOCTL(SIOCSIWESSID) = ipw_wx_set_essid,
- IW_IOCTL(SIOCGIWESSID) = ipw_wx_get_essid,
- IW_IOCTL(SIOCSIWNICKN) = ipw_wx_set_nick,
- IW_IOCTL(SIOCGIWNICKN) = ipw_wx_get_nick,
- IW_IOCTL(SIOCSIWRATE) = ipw_wx_set_rate,
- IW_IOCTL(SIOCGIWRATE) = ipw_wx_get_rate,
- IW_IOCTL(SIOCSIWRTS) = ipw_wx_set_rts,
- IW_IOCTL(SIOCGIWRTS) = ipw_wx_get_rts,
- IW_IOCTL(SIOCSIWFRAG) = ipw_wx_set_frag,
- IW_IOCTL(SIOCGIWFRAG) = ipw_wx_get_frag,
- IW_IOCTL(SIOCSIWTXPOW) = ipw_wx_set_txpow,
- IW_IOCTL(SIOCGIWTXPOW) = ipw_wx_get_txpow,
- IW_IOCTL(SIOCSIWRETRY) = ipw_wx_set_retry,
- IW_IOCTL(SIOCGIWRETRY) = ipw_wx_get_retry,
- IW_IOCTL(SIOCSIWENCODE) = ipw_wx_set_encode,
- IW_IOCTL(SIOCGIWENCODE) = ipw_wx_get_encode,
- IW_IOCTL(SIOCSIWPOWER) = ipw_wx_set_power,
- IW_IOCTL(SIOCGIWPOWER) = ipw_wx_get_power,
- IW_IOCTL(SIOCSIWSPY) = iw_handler_set_spy,
- IW_IOCTL(SIOCGIWSPY) = iw_handler_get_spy,
- IW_IOCTL(SIOCSIWTHRSPY) = iw_handler_set_thrspy,
- IW_IOCTL(SIOCGIWTHRSPY) = iw_handler_get_thrspy,
- IW_IOCTL(SIOCSIWGENIE) = ipw_wx_set_genie,
- IW_IOCTL(SIOCGIWGENIE) = ipw_wx_get_genie,
- IW_IOCTL(SIOCSIWMLME) = ipw_wx_set_mlme,
- IW_IOCTL(SIOCSIWAUTH) = ipw_wx_set_auth,
- IW_IOCTL(SIOCGIWAUTH) = ipw_wx_get_auth,
- IW_IOCTL(SIOCSIWENCODEEXT) = ipw_wx_set_encodeext,
- IW_IOCTL(SIOCGIWENCODEEXT) = ipw_wx_get_encodeext,
+ STD_IW_HANDLER(SIOCGIWNAME, cfg80211_wext_giwname),
+ STD_IW_HANDLER(SIOCSIWFREQ, ipw_wx_set_freq),
+ STD_IW_HANDLER(SIOCGIWFREQ, ipw_wx_get_freq),
+ STD_IW_HANDLER(SIOCSIWMODE, ipw_wx_set_mode),
+ STD_IW_HANDLER(SIOCGIWMODE, ipw_wx_get_mode),
+ STD_IW_HANDLER(SIOCSIWSENS, ipw_wx_set_sens),
+ STD_IW_HANDLER(SIOCGIWSENS, ipw_wx_get_sens),
+ STD_IW_HANDLER(SIOCGIWRANGE, ipw_wx_get_range),
+ STD_IW_HANDLER(SIOCSIWAP, ipw_wx_set_wap),
+ STD_IW_HANDLER(SIOCGIWAP, ipw_wx_get_wap),
+ STD_IW_HANDLER(SIOCSIWSCAN, ipw_wx_set_scan),
+ STD_IW_HANDLER(SIOCGIWSCAN, ipw_wx_get_scan),
+ STD_IW_HANDLER(SIOCSIWESSID, ipw_wx_set_essid),
+ STD_IW_HANDLER(SIOCGIWESSID, ipw_wx_get_essid),
+ STD_IW_HANDLER(SIOCSIWNICKN, ipw_wx_set_nick),
+ STD_IW_HANDLER(SIOCGIWNICKN, ipw_wx_get_nick),
+ STD_IW_HANDLER(SIOCSIWRATE, ipw_wx_set_rate),
+ STD_IW_HANDLER(SIOCGIWRATE, ipw_wx_get_rate),
+ STD_IW_HANDLER(SIOCSIWRTS, ipw_wx_set_rts),
+ STD_IW_HANDLER(SIOCGIWRTS, ipw_wx_get_rts),
+ STD_IW_HANDLER(SIOCSIWFRAG, ipw_wx_set_frag),
+ STD_IW_HANDLER(SIOCGIWFRAG, ipw_wx_get_frag),
+ STD_IW_HANDLER(SIOCSIWTXPOW, ipw_wx_set_txpow),
+ STD_IW_HANDLER(SIOCGIWTXPOW, ipw_wx_get_txpow),
+ STD_IW_HANDLER(SIOCSIWRETRY, ipw_wx_set_retry),
+ STD_IW_HANDLER(SIOCGIWRETRY, ipw_wx_get_retry),
+ STD_IW_HANDLER(SIOCSIWENCODE, ipw_wx_set_encode),
+ STD_IW_HANDLER(SIOCGIWENCODE, ipw_wx_get_encode),
+ STD_IW_HANDLER(SIOCSIWPOWER, ipw_wx_set_power),
+ STD_IW_HANDLER(SIOCGIWPOWER, ipw_wx_get_power),
+ STD_IW_HANDLER(SIOCSIWSPY, iw_handler_set_spy),
+ STD_IW_HANDLER(SIOCGIWSPY, iw_handler_get_spy),
+ STD_IW_HANDLER(SIOCSIWTHRSPY, iw_handler_set_thrspy),
+ STD_IW_HANDLER(SIOCGIWTHRSPY, iw_handler_get_thrspy),
+ STD_IW_HANDLER(SIOCSIWGENIE, ipw_wx_set_genie),
+ STD_IW_HANDLER(SIOCGIWGENIE, ipw_wx_get_genie),
+ STD_IW_HANDLER(SIOCSIWMLME, ipw_wx_set_mlme),
+ STD_IW_HANDLER(SIOCSIWAUTH, ipw_wx_set_auth),
+ STD_IW_HANDLER(SIOCGIWAUTH, ipw_wx_get_auth),
+ STD_IW_HANDLER(SIOCSIWENCODEEXT, ipw_wx_set_encodeext),
+ STD_IW_HANDLER(SIOCGIWENCODEEXT, ipw_wx_get_encodeext),
};

enum {
--
1.7.0.14.g7e948