1516fc7f3Shx /*
2516fc7f3Shx  * CDDL HEADER START
3516fc7f3Shx  *
4516fc7f3Shx  * The contents of this file are subject to the terms of the
5a399b765Szf  * Common Development and Distribution License (the "License").
6a399b765Szf  * You may not use this file except in compliance with the License.
7516fc7f3Shx  *
8516fc7f3Shx  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9516fc7f3Shx  * or http://www.opensolaris.org/os/licensing.
10516fc7f3Shx  * See the License for the specific language governing permissions
11516fc7f3Shx  * and limitations under the License.
12516fc7f3Shx  *
13516fc7f3Shx  * When distributing Covered Code, include this CDDL HEADER in each
14516fc7f3Shx  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15516fc7f3Shx  * If applicable, add the following below this CDDL HEADER, with the
16516fc7f3Shx  * fields enclosed by brackets "[]" replaced with your own identifying
17516fc7f3Shx  * information: Portions Copyright [yyyy] [name of copyright owner]
18516fc7f3Shx  *
19516fc7f3Shx  * CDDL HEADER END
20516fc7f3Shx  */
21516fc7f3Shx /*
22*e2cf88acSQuaker Fang  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
23516fc7f3Shx  * Use is subject to license terms.
24516fc7f3Shx  */
25516fc7f3Shx 
26516fc7f3Shx /*
27516fc7f3Shx  * Macro and date structures defined for 802.11 wifi config tool.
28516fc7f3Shx  */
29516fc7f3Shx 
30516fc7f3Shx #ifndef	__WIFI_IOCTL_H
31516fc7f3Shx #define	__WIFI_IOCTL_H
32516fc7f3Shx 
33516fc7f3Shx #include <sys/types.h>
34516fc7f3Shx 
35516fc7f3Shx #ifdef	__cplusplus
36516fc7f3Shx extern "C" {
37516fc7f3Shx #endif
38516fc7f3Shx 
39516fc7f3Shx #define	MAX_KEY_LENGTH 26
400d2f4bc9Sff #define	MAX_ESSID_LENGTH (32 + 1)	/* max essid length is 32 */
410d2f4bc9Sff 					/* one more for '\0' */
42516fc7f3Shx #define	MAX_CHANNEL_NUM	99
43516fc7f3Shx #define	MAX_RSSI 15
44516fc7f3Shx #define	MAX_NWEPKEYS 4
45516fc7f3Shx #define	NET_802_11 80211
46516fc7f3Shx #define	MAX_BUF_LEN 65536
47516fc7f3Shx #define	MAX_SCAN_SUPPORT_RATES 8
48516fc7f3Shx 
49516fc7f3Shx /*
50516fc7f3Shx  * ioctls
51516fc7f3Shx  */
52516fc7f3Shx #define	WLAN_IOCTL_BASE 0x1000
53516fc7f3Shx #define	WLAN_GET_VERSION (WLAN_IOCTL_BASE + 0x0)
54516fc7f3Shx #define	WLAN_SET_PARAM (WLAN_IOCTL_BASE + 0x2)
55516fc7f3Shx #define	WLAN_GET_PARAM (WLAN_IOCTL_BASE + 0x3)
56516fc7f3Shx #define	WLAN_COMMAND (WLAN_IOCTL_BASE + 0x4)
57516fc7f3Shx 
58516fc7f3Shx /*
59516fc7f3Shx  * parameters
60516fc7f3Shx  */
61516fc7f3Shx #define	WL_PARAMETERS_BASE 0x2000
62516fc7f3Shx #define	WL_BSSID (WL_PARAMETERS_BASE + 0x0)
63516fc7f3Shx #define	WL_ESSID (WL_PARAMETERS_BASE + 0x1)
64516fc7f3Shx #define	WL_NODE_NAME (WL_PARAMETERS_BASE + 0x2)
65516fc7f3Shx #define	WL_PHY_SUPPORT (WL_PARAMETERS_BASE + 0x3)
66516fc7f3Shx #define	WL_PHY_CONFIG (WL_PARAMETERS_BASE + 0x4)
67516fc7f3Shx #define	WL_DOMAIN (WL_PARAMETERS_BASE + 0x5)
68516fc7f3Shx #define	WL_POWER_MODE (WL_PARAMETERS_BASE + 0x6)
69516fc7f3Shx #define	WL_TX_POWER (WL_PARAMETERS_BASE + 0x7)
70516fc7f3Shx #define	WL_RSSI (WL_PARAMETERS_BASE + 0x8)
71516fc7f3Shx #define	WL_RSSI_THRESHOLD (WL_PARAMETERS_BASE + 0x9)
72516fc7f3Shx #define	WL_ESS_LIST (WL_PARAMETERS_BASE + 0xa)
73516fc7f3Shx #define	WL_BSS_TYPE (WL_PARAMETERS_BASE + 0xb)
74516fc7f3Shx #define	WL_CREATE_IBSS (WL_PARAMETERS_BASE + 0xc)
75516fc7f3Shx #define	WL_RTS_THRESHOLD (WL_PARAMETERS_BASE + 0xd)
76516fc7f3Shx #define	WL_SHORT_RETRY (WL_PARAMETERS_BASE + 0xe)
77516fc7f3Shx #define	WL_LONG_RETRY (WL_PARAMETERS_BASE + 0xf)
78516fc7f3Shx #define	WL_BEACON_PERIOD (WL_PARAMETERS_BASE + 0x10)
79516fc7f3Shx #define	WL_TX_LIFETIME (WL_PARAMETERS_BASE + 0x11)
80516fc7f3Shx #define	WL_RX_LIFETIME (WL_PARAMETERS_BASE + 0x12)
81516fc7f3Shx #define	WL_FRAG_THRESHOLD (WL_PARAMETERS_BASE + 0x13)
82516fc7f3Shx #define	WL_VENDOR_ID (WL_PARAMETERS_BASE + 0x14)
83516fc7f3Shx #define	WL_PRODUCT_ID (WL_PARAMETERS_BASE + 0x15)
84516fc7f3Shx #define	WL_NUM_ANTS (WL_PARAMETERS_BASE + 0x16)
85516fc7f3Shx #define	WL_RX_ANTENNA (WL_PARAMETERS_BASE + 0x17)
86516fc7f3Shx #define	WL_TX_ANTENNA (WL_PARAMETERS_BASE + 0x18)
87516fc7f3Shx #define	WL_SUPPORTED_RATES (WL_PARAMETERS_BASE + 0x19)
88516fc7f3Shx #define	WL_DESIRED_RATES (WL_PARAMETERS_BASE + 0x1a)
89516fc7f3Shx #define	WL_WEP_KEY_TAB (WL_PARAMETERS_BASE + 0x1b)
90516fc7f3Shx #define	WL_WEP_KEY_ID (WL_PARAMETERS_BASE + 0x1c)
91516fc7f3Shx #define	WL_WEP_MAPPING_TAB (WL_PARAMETERS_BASE + 0x1d)
92516fc7f3Shx #define	WL_WEP_MAPPING_LEN (WL_PARAMETERS_BASE + 0x1e)
93516fc7f3Shx #define	WL_ENCRYPTION (WL_PARAMETERS_BASE + 0x1f)
94516fc7f3Shx #define	WL_AUTH_MODE (WL_PARAMETERS_BASE + 0x20)
95516fc7f3Shx #define	WL_EXCL_UNENC (WL_PARAMETERS_BASE + 0x21)
96516fc7f3Shx #define	WL_RFMON (WL_PARAMETERS_BASE + 0x22)
97516fc7f3Shx #define	WL_RADIO (WL_PARAMETERS_BASE + 0x23)
98516fc7f3Shx #define	WL_LINKSTATUS (WL_PARAMETERS_BASE + 0x24)
99516fc7f3Shx #define	WL_DEV_DEPEND (WL_PARAMETERS_BASE + 0x25)
100516fc7f3Shx /*
101516fc7f3Shx  * commands
102516fc7f3Shx  */
103516fc7f3Shx #define	WL_COMMAND_BASE 0x3000
104516fc7f3Shx #define	WL_SCAN (WL_COMMAND_BASE + 0x0)
105516fc7f3Shx #define	WL_DISASSOCIATE (WL_COMMAND_BASE + 0x1)
106516fc7f3Shx #define	WL_REASSOCIATE (WL_COMMAND_BASE + 0x2)
107516fc7f3Shx #define	WL_LOAD_DEFAULTS (WL_COMMAND_BASE + 0x3)
108516fc7f3Shx #define	WL_ASSOCIAT (WL_COMMAND_BASE + 0x4)
109516fc7f3Shx 
110516fc7f3Shx /*
111516fc7f3Shx  * domains
112516fc7f3Shx  */
113516fc7f3Shx /* --USA */
114516fc7f3Shx #define	WL_DOMAIN_BASE 0x4000
115516fc7f3Shx #define	WL_DOMAIN_FCC (WL_DOMAIN_BASE + 0x0)
116516fc7f3Shx /* --Canada */
117516fc7f3Shx #define	WL_DOMAIN_DOC (WL_DOMAIN_BASE + 0x1)
118516fc7f3Shx /* --Most of Europe */
119516fc7f3Shx #define	WL_DOMAIN_ETSI (WL_DOMAIN_BASE + 0x2)
120516fc7f3Shx /* --Spain */
121516fc7f3Shx #define	WL_DOMAIN_SPAIN (WL_DOMAIN_BASE + 0x3)
122516fc7f3Shx /* --France */
123516fc7f3Shx #define	WL_DOMAIN_FRANCE (WL_DOMAIN_BASE + 0x4)
124516fc7f3Shx /* --Japan */
125516fc7f3Shx #define	WL_DOMAIN_MKK (WL_DOMAIN_BASE + 0x5)
126516fc7f3Shx 
127516fc7f3Shx /*
128516fc7f3Shx  * power mode
129516fc7f3Shx  */
130516fc7f3Shx 
131516fc7f3Shx #define	WL_PM_AM 0x0
132516fc7f3Shx #define	WL_PM_MPS 0x1
133516fc7f3Shx #define	WL_PM_FAST 0x2
134516fc7f3Shx #define	WL_PM_USER 0x3
135516fc7f3Shx 
136516fc7f3Shx /*
137516fc7f3Shx  * rates
138516fc7f3Shx  */
139516fc7f3Shx #define	WL_RATE_BASIC_SET 0x80
140516fc7f3Shx #define	WL_RATE_1M 2
141516fc7f3Shx #define	WL_RATE_2M 4
142516fc7f3Shx #define	WL_RATE_5_5M 11
143516fc7f3Shx #define	WL_RATE_6M 12
144516fc7f3Shx #define	WL_RATE_9M 18
145516fc7f3Shx #define	WL_RATE_11M 22
146516fc7f3Shx #define	WL_RATE_12M 24
147516fc7f3Shx #define	WL_RATE_18M 36
148516fc7f3Shx #define	WL_RATE_22M 44
149516fc7f3Shx #define	WL_RATE_24M 48
150516fc7f3Shx #define	WL_RATE_33M 66
151516fc7f3Shx #define	WL_RATE_36M 72
152516fc7f3Shx #define	WL_RATE_48M 96
153516fc7f3Shx #define	WL_RATE_54M 108
154516fc7f3Shx /*
155516fc7f3Shx  * wep operations
156516fc7f3Shx  */
157516fc7f3Shx #define	WL_WEP_OPERATION_BASE 0x6000
158516fc7f3Shx #define	WL_ADD (WL_WEP_OPERATION_BASE + 0x0)
159516fc7f3Shx #define	WL_DEL (WL_WEP_OPERATION_BASE + 0x1)
160516fc7f3Shx #define	WL_NUL (WL_WEP_OPERATION_BASE + 0x2)
161516fc7f3Shx #define	WL_IND (WL_WEP_OPERATION_BASE + 0x3)
162516fc7f3Shx 
163516fc7f3Shx #define	WL_NOENCRYPTION 0x0
164516fc7f3Shx #define	WL_ENC_WEP 0x1
165a399b765Szf #define	WL_ENC_WPA 0x2
166516fc7f3Shx #define	WL_OPENSYSTEM 0x1
167516fc7f3Shx #define	WL_SHAREDKEY 0x2
168516fc7f3Shx 
169516fc7f3Shx /*
170516fc7f3Shx  * linkstatus
171516fc7f3Shx  */
172516fc7f3Shx #define	WL_CONNECTED 0x0
173516fc7f3Shx #define	WL_NOTCONNECTED 0x1
174516fc7f3Shx 
175516fc7f3Shx /*
176516fc7f3Shx  * prives
177516fc7f3Shx  */
178516fc7f3Shx #define	WL_PRIV_BASE 0x7000
179516fc7f3Shx #define	WL_PRIV_RW (WL_PRIV_BASE + 0x0)
180516fc7f3Shx #define	WL_PRIV_R (WL_PRIV_BASE + 0x1)
181516fc7f3Shx #define	WL_PRIV_W (WL_PRIV_BASE + 0x2)
182516fc7f3Shx #define	WL_PRIV_INT (WL_PRIV_BASE + 0x3)
183516fc7f3Shx #define	WL_PRIV_INT_ARRAY (WL_PRIV_BASE + 0x4)
184516fc7f3Shx #define	WL_PRIV_BYTE (WL_PRIV_BASE + 0x5)
185516fc7f3Shx #define	WL_PRIV_BYTE_ARRAY (WL_PRIV_BASE + 0x6)
186516fc7f3Shx #define	WL_PRIV_STRING (WL_PRIV_BASE + 0x7)
187516fc7f3Shx #define	WL_PRIV_STRING_ARRAY (WL_PRIV_BASE + 0x8)
188516fc7f3Shx /*
189516fc7f3Shx  * return values
190516fc7f3Shx  */
191516fc7f3Shx #define	WL_SUCCESS 0x0
192516fc7f3Shx #define	WL_NOTSUPPORTED EINVAL
193516fc7f3Shx #define	WL_LACK_FEATURE ENOTSUP
194516fc7f3Shx #define	WL_HW_ERROR EIO
195516fc7f3Shx #define	WL_ACCESS_DENIED EACCES
196516fc7f3Shx #define	WL_RETURN_BASE	0x7000
197516fc7f3Shx #define	WL_READONLY (WL_RETURN_BASE + 0x1)
198516fc7f3Shx #define	WL_WRITEONLY (WL_RETURN_BASE + 0x2)
199516fc7f3Shx #define	WL_NOAP (WL_RETURN_BASE + 0x3)
200516fc7f3Shx /*
201516fc7f3Shx  * other values
202516fc7f3Shx  */
203516fc7f3Shx #define	WL_OTHER_BASE 0x8000
204516fc7f3Shx #define	WL_FHSS (WL_OTHER_BASE + 0x0)
205516fc7f3Shx #define	WL_DSSS (WL_OTHER_BASE + 0x1)
206516fc7f3Shx #define	WL_IRBASE (WL_OTHER_BASE + 0x2)
207516fc7f3Shx #define	WL_OFDM (WL_OTHER_BASE + 0x3)
208516fc7f3Shx #define	WL_HRDS (WL_OTHER_BASE + 0x4)
209516fc7f3Shx #define	WL_ERP (WL_OTHER_BASE + 0x5)
210516fc7f3Shx 
211516fc7f3Shx #define	WL_BSS_BSS 1
212516fc7f3Shx #define	WL_BSS_IBSS 3
213516fc7f3Shx #define	WL_BSS_ANY 2
214516fc7f3Shx /*
215516fc7f3Shx  * field_offset
216516fc7f3Shx  */
217516fc7f3Shx #define	WIFI_BUF_OFFSET		offsetof(wldp_t, wldp_buf)
218516fc7f3Shx 
219516fc7f3Shx /*
220516fc7f3Shx  * type definationes
221516fc7f3Shx  */
222516fc7f3Shx typedef boolean_t wl_create_ibss_t;
223516fc7f3Shx typedef char wl_bssid_t[6];
224516fc7f3Shx 
225516fc7f3Shx typedef struct wl_essid {
226516fc7f3Shx 	uint32_t wl_essid_length;
227516fc7f3Shx 	char wl_essid_essid[34];
228516fc7f3Shx }wl_essid_t;
229516fc7f3Shx 
230516fc7f3Shx typedef struct wl_nodename {
231516fc7f3Shx 	uint32_t wl_nodename_length;
232516fc7f3Shx 	char wl_nodename_name[34];
233516fc7f3Shx } wl_nodename_t;
234516fc7f3Shx 
235516fc7f3Shx typedef struct wl_phy_supported {
236516fc7f3Shx 	uint32_t wl_phy_support_num;
237516fc7f3Shx 	uint32_t wl_phy_support_phy_types[1];
238516fc7f3Shx } wl_phy_supported_t;
239516fc7f3Shx 
240516fc7f3Shx typedef struct wl_fhss {
241516fc7f3Shx 	uint32_t wl_fhss_subtype;
242516fc7f3Shx 	uint32_t wl_fhss_channel;
243516fc7f3Shx 	uint32_t wl_fhss_hoptime;
244516fc7f3Shx 	uint32_t wl_fhss_hoppattern;
245516fc7f3Shx 	uint32_t wl_fhss_hopset;
246516fc7f3Shx 	uint32_t wl_fhss_dwelltime;
247516fc7f3Shx } wl_fhss_t;
248516fc7f3Shx 
249516fc7f3Shx typedef struct wl_dsss {
250516fc7f3Shx 	uint32_t wl_dsss_subtype;
251516fc7f3Shx 	uint32_t wl_dsss_channel;
252516fc7f3Shx 	boolean_t wl_dsss_have_short_preamble;
253516fc7f3Shx 	uint32_t wl_dsss_preamble_mode;
254516fc7f3Shx 	boolean_t wl_dsss_agility_enabled;
255516fc7f3Shx 	boolean_t wl_dsss_have_pbcc;
256516fc7f3Shx 	boolean_t wl_dsss_pbcc_enable;
257516fc7f3Shx } wl_dsss_t;
258516fc7f3Shx 
259516fc7f3Shx typedef struct wl_ofdm {
260516fc7f3Shx 	uint32_t wl_ofdm_subtype;
261516fc7f3Shx 	uint32_t wl_ofdm_frequency;
262516fc7f3Shx 	uint32_t wl_ofdm_freq_supported;
263*e2cf88acSQuaker Fang 	boolean_t wl_ofdm_ht_enabled;
264516fc7f3Shx } wl_ofdm_t;
265516fc7f3Shx 
266516fc7f3Shx typedef struct wl_erp {
267516fc7f3Shx 	uint32_t wl_erp_subtype;
268516fc7f3Shx 	uint32_t wl_erp_channel;
269516fc7f3Shx 	boolean_t wl_erp_have_short_preamble;
270516fc7f3Shx 	uint32_t wl_erp_preamble_mode;
271516fc7f3Shx 	boolean_t wl_erp_have_agility;
272516fc7f3Shx 	boolean_t wl_erp_agility_enabled;
273516fc7f3Shx 	boolean_t wl_erp_have_pbcc;
274516fc7f3Shx 	boolean_t wl_erp_pbcc_enabled;
275516fc7f3Shx 	boolean_t wl_erp_have_dsss_ofdm;
276516fc7f3Shx 	boolean_t wl_erp_dsss_ofdm_enabled;
277516fc7f3Shx 	boolean_t wl_erp_have_sst;
278516fc7f3Shx 	boolean_t wl_erp_sst_enabled;
279*e2cf88acSQuaker Fang 	boolean_t wl_erp_ht_enabled;
280516fc7f3Shx } wl_erp_t;
281516fc7f3Shx 
282516fc7f3Shx typedef union wl_phy_conf {
283516fc7f3Shx 	wl_fhss_t wl_phy_fhss_conf;
284516fc7f3Shx 	wl_dsss_t wl_phy_dsss_conf;
285516fc7f3Shx 	wl_ofdm_t wl_phy_ofdm_conf;
286516fc7f3Shx 	wl_erp_t wl_phy_erp_conf;
287516fc7f3Shx } wl_phy_conf_t;
288516fc7f3Shx 
289516fc7f3Shx typedef uint32_t wl_domain_t;
290516fc7f3Shx 
291516fc7f3Shx typedef struct wl_ps_mode {
292516fc7f3Shx 	uint32_t wl_ps_mode;
293516fc7f3Shx 	uint32_t wl_ps_max_sleep;
294516fc7f3Shx 	uint32_t wl_ps_min_sleep;
295516fc7f3Shx 	uint32_t wl_ps_max_awake;
296516fc7f3Shx 	uint32_t wl_ps_min_awake;
297516fc7f3Shx 	boolean_t wl_ps_nobroadcast;
298516fc7f3Shx } wl_ps_mode_t;
299516fc7f3Shx 
300516fc7f3Shx typedef uint32_t wl_linkstatus_t;
301516fc7f3Shx typedef uint32_t wl_tx_pwer_t;
302516fc7f3Shx typedef uint32_t wl_rssi_t;
303516fc7f3Shx typedef uint32_t wl_rssi_threshold_t;
304516fc7f3Shx typedef uint32_t wl_bss_type_t;
305516fc7f3Shx typedef uint32_t wl_authmode_t;
306516fc7f3Shx typedef uint32_t wl_encryption_t;
307516fc7f3Shx typedef uint32_t wl_wep_key_id_t;
308516fc7f3Shx typedef boolean_t wl_radio_t;
309516fc7f3Shx typedef uint32_t wl_rts_threshold_t;
310516fc7f3Shx typedef uint32_t wl_short_retry_t;
311516fc7f3Shx typedef uint32_t wl_long_retry_t;
312516fc7f3Shx typedef uint32_t wl_beacon_period_t;
313516fc7f3Shx typedef uint32_t wl_tx_lifetime_t;
314516fc7f3Shx typedef uint32_t wl_rx_lifetime_t;
315516fc7f3Shx typedef uint32_t wl_frag_threshold_t;
316516fc7f3Shx typedef char wl_vendor_t[128];
317516fc7f3Shx typedef char wl_product_t[128];
318516fc7f3Shx typedef uint32_t wl_num_ants_t;
319516fc7f3Shx typedef uint32_t wl_rx_antenna_t;
320516fc7f3Shx typedef uint32_t wl_tx_antenna_t;
321516fc7f3Shx 
322516fc7f3Shx typedef struct wl_rates {
323516fc7f3Shx 	uint32_t wl_rates_num;
324516fc7f3Shx 	char wl_rates_rates[1];
325516fc7f3Shx } wl_rates_t;
326516fc7f3Shx 
327516fc7f3Shx typedef struct wl_ess_conf {
328516fc7f3Shx 	uint32_t wl_ess_conf_length;
329516fc7f3Shx 	wl_essid_t wl_ess_conf_essid;
330516fc7f3Shx 	wl_bssid_t wl_ess_conf_bssid;
331516fc7f3Shx 	char wl_ess_conf_reserved[2];
332516fc7f3Shx 	wl_bss_type_t wl_ess_conf_bsstype;
333516fc7f3Shx 	wl_authmode_t wl_ess_conf_authmode;
334516fc7f3Shx 	boolean_t wl_ess_conf_wepenabled;
335516fc7f3Shx 	wl_rssi_t wl_ess_conf_sl;
336516fc7f3Shx 	union {
337516fc7f3Shx 		wl_fhss_t wl_phy_fhss_conf;
338516fc7f3Shx 		wl_dsss_t wl_phy_dsss_conf;
339516fc7f3Shx 		wl_ofdm_t wl_phy_ofdm_conf;
340516fc7f3Shx 		wl_erp_t wl_phy_erp_conf;
341516fc7f3Shx 	} wl_phy_conf;
342516fc7f3Shx 	char wl_supported_rates[MAX_SCAN_SUPPORT_RATES];
343516fc7f3Shx } wl_ess_conf_t;
344516fc7f3Shx 
345516fc7f3Shx typedef struct wl_ess_list {
346516fc7f3Shx 	uint32_t wl_ess_list_num;
347516fc7f3Shx 	wl_ess_conf_t wl_ess_list_ess[1];
348516fc7f3Shx } wl_ess_list_t;
349516fc7f3Shx 
350516fc7f3Shx typedef struct wl_wep_key {
351516fc7f3Shx 	uint32_t wl_wep_length;
352516fc7f3Shx 	char wl_wep_key[MAX_KEY_LENGTH];
353516fc7f3Shx 	uint32_t wl_wep_operation;
354516fc7f3Shx } wl_wep_key_t;
355516fc7f3Shx typedef wl_wep_key_t wl_wep_key_tab_t[MAX_NWEPKEYS];
356516fc7f3Shx 
357516fc7f3Shx typedef struct wep_mapping {
358516fc7f3Shx 	uint32_t wl_wep_map_index;
359516fc7f3Shx 	boolean_t wl_wep_map_wepon;
360516fc7f3Shx 	char wl_wep_map_mac_addr[6];
361516fc7f3Shx 	char wl_wep_map_reserved[2];
362516fc7f3Shx 	wl_wep_key_t wl_wep_map_wepkey;
363516fc7f3Shx } wep_mapping_t;
364516fc7f3Shx typedef wep_mapping_t wep_mapping_tab_t[1];
365516fc7f3Shx 
366516fc7f3Shx typedef struct wl_priv_param {
367516fc7f3Shx 	char wl_priv_name[8];
368516fc7f3Shx 	uint32_t wl_priv_type;
369516fc7f3Shx 	uint32_t wl_priv_size;
370516fc7f3Shx 	char wl_priv_value[1];
371516fc7f3Shx } wl_priv_param_t;
372516fc7f3Shx 
373516fc7f3Shx typedef struct wl_dev_depend {
374516fc7f3Shx 	uint32_t wl_dev_depend_num;
375516fc7f3Shx 	uint32_t wl_dev_depend_ret_idx;
376516fc7f3Shx 	wl_priv_param_t wl_dev_depend_priv[1];
377516fc7f3Shx } wl_dev_depend_t;
378516fc7f3Shx 
379516fc7f3Shx typedef struct wlan_ver {
380516fc7f3Shx 	uint32_t wl_ver_major;
381516fc7f3Shx 	uint32_t wl_ver_minor;
382516fc7f3Shx } wlan_ver_t;
383516fc7f3Shx 
384516fc7f3Shx typedef struct wldp {
385516fc7f3Shx 	uint32_t wldp_length;
386516fc7f3Shx 	uint32_t wldp_type;
387516fc7f3Shx 	uint32_t wldp_result;
388516fc7f3Shx 	uint32_t wldp_id;
389516fc7f3Shx 	uint32_t wldp_buf[1];
390516fc7f3Shx } wldp_t;
391516fc7f3Shx 
392516fc7f3Shx #ifdef __cplusplus
393516fc7f3Shx }
394516fc7f3Shx #endif
395516fc7f3Shx 
396516fc7f3Shx #endif /* __WIFI_IOCTL_H */
397