2 * Intel Wireless Multicomm 3200 WiFi driver
4 * Copyright (C) 2009 Intel Corporation <ilw@linux.intel.com>
5 * Samuel Ortiz <samuel.ortiz@intel.com>
6 * Zhu Yi <yi.zhu@intel.com>
8 * This program is free software; you can redistribute it and/or
9 * modify it under the terms of the GNU General Public License version
10 * 2 as published by the Free Software Foundation.
12 * This program is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU General Public License for more details.
17 * You should have received a copy of the GNU General Public License
18 * along with this program; if not, write to the Free Software
19 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
24 #include <linux/wireless.h>
25 #include <net/cfg80211.h>
30 static int iwm_wext_siwessid(struct net_device *dev,
31 struct iw_request_info *info,
32 struct iw_point *data, char *ssid)
34 struct iwm_priv *iwm = ndev_to_iwm(dev);
36 switch (iwm->conf.mode) {
38 return cfg80211_ibss_wext_siwessid(dev, info, data, ssid);
40 return cfg80211_mgd_wext_siwessid(dev, info, data, ssid);
46 static int iwm_wext_giwessid(struct net_device *dev,
47 struct iw_request_info *info,
48 struct iw_point *data, char *ssid)
50 struct iwm_priv *iwm = ndev_to_iwm(dev);
52 switch (iwm->conf.mode) {
54 return cfg80211_ibss_wext_giwessid(dev, info, data, ssid);
56 return cfg80211_mgd_wext_giwessid(dev, info, data, ssid);
62 static const iw_handler iwm_handlers[] =
64 (iw_handler) NULL, /* SIOCSIWCOMMIT */
65 (iw_handler) cfg80211_wext_giwname, /* SIOCGIWNAME */
66 (iw_handler) NULL, /* SIOCSIWNWID */
67 (iw_handler) NULL, /* SIOCGIWNWID */
68 (iw_handler) cfg80211_wext_siwfreq, /* SIOCSIWFREQ */
69 (iw_handler) cfg80211_wext_giwfreq, /* SIOCGIWFREQ */
70 (iw_handler) cfg80211_wext_siwmode, /* SIOCSIWMODE */
71 (iw_handler) cfg80211_wext_giwmode, /* SIOCGIWMODE */
72 (iw_handler) NULL, /* SIOCSIWSENS */
73 (iw_handler) NULL, /* SIOCGIWSENS */
74 (iw_handler) NULL /* not used */, /* SIOCSIWRANGE */
75 (iw_handler) cfg80211_wext_giwrange, /* SIOCGIWRANGE */
76 (iw_handler) NULL /* not used */, /* SIOCSIWPRIV */
77 (iw_handler) NULL /* kernel code */, /* SIOCGIWPRIV */
78 (iw_handler) NULL /* not used */, /* SIOCSIWSTATS */
79 (iw_handler) NULL /* kernel code */, /* SIOCGIWSTATS */
80 (iw_handler) NULL, /* SIOCSIWSPY */
81 (iw_handler) NULL, /* SIOCGIWSPY */
82 (iw_handler) NULL, /* SIOCSIWTHRSPY */
83 (iw_handler) NULL, /* SIOCGIWTHRSPY */
84 (iw_handler) cfg80211_wext_siwap, /* SIOCSIWAP */
85 (iw_handler) cfg80211_wext_giwap, /* SIOCGIWAP */
86 (iw_handler) NULL, /* SIOCSIWMLME */
87 (iw_handler) NULL, /* SIOCGIWAPLIST */
88 (iw_handler) cfg80211_wext_siwscan, /* SIOCSIWSCAN */
89 (iw_handler) cfg80211_wext_giwscan, /* SIOCGIWSCAN */
90 (iw_handler) iwm_wext_siwessid, /* SIOCSIWESSID */
91 (iw_handler) iwm_wext_giwessid, /* SIOCGIWESSID */
92 (iw_handler) NULL, /* SIOCSIWNICKN */
93 (iw_handler) NULL, /* SIOCGIWNICKN */
94 (iw_handler) NULL, /* -- hole -- */
95 (iw_handler) NULL, /* -- hole -- */
96 (iw_handler) NULL, /* SIOCSIWRATE */
97 (iw_handler) cfg80211_wext_giwrate, /* SIOCGIWRATE */
98 (iw_handler) cfg80211_wext_siwrts, /* SIOCSIWRTS */
99 (iw_handler) cfg80211_wext_giwrts, /* SIOCGIWRTS */
100 (iw_handler) cfg80211_wext_siwfrag, /* SIOCSIWFRAG */
101 (iw_handler) cfg80211_wext_giwfrag, /* SIOCGIWFRAG */
102 (iw_handler) cfg80211_wext_siwtxpower, /* SIOCSIWTXPOW */
103 (iw_handler) cfg80211_wext_giwtxpower, /* SIOCGIWTXPOW */
104 (iw_handler) NULL, /* SIOCSIWRETRY */
105 (iw_handler) NULL, /* SIOCGIWRETRY */
106 (iw_handler) cfg80211_wext_siwencode, /* SIOCSIWENCODE */
107 (iw_handler) cfg80211_wext_giwencode, /* SIOCGIWENCODE */
108 (iw_handler) cfg80211_wext_siwpower, /* SIOCSIWPOWER */
109 (iw_handler) cfg80211_wext_giwpower, /* SIOCGIWPOWER */
110 (iw_handler) NULL, /* -- hole -- */
111 (iw_handler) NULL, /* -- hole -- */
112 (iw_handler) cfg80211_wext_siwgenie, /* SIOCSIWGENIE */
113 (iw_handler) NULL, /* SIOCGIWGENIE */
114 (iw_handler) cfg80211_wext_siwauth, /* SIOCSIWAUTH */
115 (iw_handler) cfg80211_wext_giwauth, /* SIOCGIWAUTH */
116 (iw_handler) cfg80211_wext_siwencodeext, /* SIOCSIWENCODEEXT */
117 (iw_handler) NULL, /* SIOCGIWENCODEEXT */
118 (iw_handler) NULL, /* SIOCSIWPMKSA */
119 (iw_handler) NULL, /* -- hole -- */
122 const struct iw_handler_def iwm_iw_handler_def = {
123 .num_standard = ARRAY_SIZE(iwm_handlers),
124 .standard = (iw_handler *) iwm_handlers,
125 .get_wireless_stats = cfg80211_wireless_stats,