1655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng/****************************************************************************
2655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ****************************************************************************
3655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ***
4655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ***   This header was automatically generated from a Linux kernel header
5655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ***   of the same name, to make information necessary for userspace to
6655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ***   call into the kernel available to libc.  It contains only constants,
7655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ***   structures, and macros generated from the original header, and thus,
8655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ***   contains no copyrightable information.
9655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ***
10655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ***   To edit the content of this header, modify the corresponding
11655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ***   source file (e.g. under external/kernel-headers/original/) then
12655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ***   run bionic/libc/kernel/tools/update_all.py
13655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ***
14655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ***   Any manual change here will be lost the next time this script will
15655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ***   be run. You've been warned!
16655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ***
17655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ****************************************************************************
18655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ****************************************************************************/
19655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#ifndef _UAPI_LINUX_WIRELESS_H
20655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define _UAPI_LINUX_WIRELESS_H
21655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#include <linux/types.h>
22655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#include <linux/socket.h>
23655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#include <linux/if.h>
24655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define WIRELESS_EXT 22
25655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define SIOCSIWCOMMIT 0x8B00
26655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define SIOCGIWNAME 0x8B01
27655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define SIOCSIWNWID 0x8B02
28655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define SIOCGIWNWID 0x8B03
29655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define SIOCSIWFREQ 0x8B04
30655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define SIOCGIWFREQ 0x8B05
31655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define SIOCSIWMODE 0x8B06
32655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define SIOCGIWMODE 0x8B07
33655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define SIOCSIWSENS 0x8B08
34655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define SIOCGIWSENS 0x8B09
35655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define SIOCSIWRANGE 0x8B0A
36655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define SIOCGIWRANGE 0x8B0B
37655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define SIOCSIWPRIV 0x8B0C
38655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define SIOCGIWPRIV 0x8B0D
39655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define SIOCSIWSTATS 0x8B0E
40655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define SIOCGIWSTATS 0x8B0F
41655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define SIOCSIWSPY 0x8B10
42655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define SIOCGIWSPY 0x8B11
43655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define SIOCSIWTHRSPY 0x8B12
44655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define SIOCGIWTHRSPY 0x8B13
45655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define SIOCSIWAP 0x8B14
46655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define SIOCGIWAP 0x8B15
47655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define SIOCGIWAPLIST 0x8B17
48655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define SIOCSIWSCAN 0x8B18
49655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define SIOCGIWSCAN 0x8B19
50655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define SIOCSIWESSID 0x8B1A
51655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define SIOCGIWESSID 0x8B1B
52655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define SIOCSIWNICKN 0x8B1C
53655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define SIOCGIWNICKN 0x8B1D
54655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define SIOCSIWRATE 0x8B20
55655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define SIOCGIWRATE 0x8B21
56655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define SIOCSIWRTS 0x8B22
57655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define SIOCGIWRTS 0x8B23
58655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define SIOCSIWFRAG 0x8B24
59655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define SIOCGIWFRAG 0x8B25
60655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define SIOCSIWTXPOW 0x8B26
61655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define SIOCGIWTXPOW 0x8B27
62655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define SIOCSIWRETRY 0x8B28
63655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define SIOCGIWRETRY 0x8B29
64655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define SIOCSIWENCODE 0x8B2A
65655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define SIOCGIWENCODE 0x8B2B
66655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define SIOCSIWPOWER 0x8B2C
67655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define SIOCGIWPOWER 0x8B2D
68655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define SIOCSIWGENIE 0x8B30
69655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define SIOCGIWGENIE 0x8B31
70655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define SIOCSIWMLME 0x8B16
71655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define SIOCSIWAUTH 0x8B32
72655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define SIOCGIWAUTH 0x8B33
73655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define SIOCSIWENCODEEXT 0x8B34
74655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define SIOCGIWENCODEEXT 0x8B35
75655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define SIOCSIWPMKSA 0x8B36
76655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define SIOCIWFIRSTPRIV 0x8BE0
77655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define SIOCIWLASTPRIV 0x8BFF
78655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define SIOCIWFIRST 0x8B00
79655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define SIOCIWLAST SIOCIWLASTPRIV
80655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define IW_IOCTL_IDX(cmd) ((cmd) - SIOCIWFIRST)
81d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao#define IW_HANDLER(id,func) [IW_IOCTL_IDX(id)] = func
82d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao#define IW_IS_SET(cmd) (! ((cmd) & 0x1))
83655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define IW_IS_GET(cmd) ((cmd) & 0x1)
84655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define IWEVTXDROP 0x8C00
85655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define IWEVQUAL 0x8C01
86655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define IWEVCUSTOM 0x8C02
87655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define IWEVREGISTERED 0x8C03
88655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define IWEVEXPIRED 0x8C04
89655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define IWEVGENIE 0x8C05
90655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define IWEVMICHAELMICFAILURE 0x8C06
91655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define IWEVASSOCREQIE 0x8C07
92655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define IWEVASSOCRESPIE 0x8C08
93655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define IWEVPMKIDCAND 0x8C09
94655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define IWEVFIRST 0x8C00
95655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define IW_EVENT_IDX(cmd) ((cmd) - IWEVFIRST)
96655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define IW_PRIV_TYPE_MASK 0x7000
97655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define IW_PRIV_TYPE_NONE 0x0000
98655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define IW_PRIV_TYPE_BYTE 0x1000
99655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define IW_PRIV_TYPE_CHAR 0x2000
100655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define IW_PRIV_TYPE_INT 0x4000
101655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define IW_PRIV_TYPE_FLOAT 0x5000
102655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define IW_PRIV_TYPE_ADDR 0x6000
103655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define IW_PRIV_SIZE_FIXED 0x0800
104655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define IW_PRIV_SIZE_MASK 0x07FF
105655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define IW_MAX_FREQUENCIES 32
106655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define IW_MAX_BITRATES 32
107655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define IW_MAX_TXPOWER 8
108655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define IW_MAX_SPY 8
109655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define IW_MAX_AP 64
110655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define IW_ESSID_MAX_SIZE 32
111655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define IW_MODE_AUTO 0
112655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define IW_MODE_ADHOC 1
113655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define IW_MODE_INFRA 2
114655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define IW_MODE_MASTER 3
115655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define IW_MODE_REPEAT 4
116655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define IW_MODE_SECOND 5
117655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define IW_MODE_MONITOR 6
118655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define IW_MODE_MESH 7
119655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define IW_QUAL_QUAL_UPDATED 0x01
120655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define IW_QUAL_LEVEL_UPDATED 0x02
121655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define IW_QUAL_NOISE_UPDATED 0x04
122655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define IW_QUAL_ALL_UPDATED 0x07
123655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define IW_QUAL_DBM 0x08
124655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define IW_QUAL_QUAL_INVALID 0x10
125655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define IW_QUAL_LEVEL_INVALID 0x20
126655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define IW_QUAL_NOISE_INVALID 0x40
127655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define IW_QUAL_RCPI 0x80
128655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define IW_QUAL_ALL_INVALID 0x70
129655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define IW_FREQ_AUTO 0x00
130655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define IW_FREQ_FIXED 0x01
131655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define IW_MAX_ENCODING_SIZES 8
132655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define IW_ENCODING_TOKEN_MAX 64
133655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define IW_ENCODE_INDEX 0x00FF
134655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define IW_ENCODE_FLAGS 0xFF00
135655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define IW_ENCODE_MODE 0xF000
136655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define IW_ENCODE_DISABLED 0x8000
137655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define IW_ENCODE_ENABLED 0x0000
138655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define IW_ENCODE_RESTRICTED 0x4000
139655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define IW_ENCODE_OPEN 0x2000
140655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define IW_ENCODE_NOKEY 0x0800
141655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define IW_ENCODE_TEMP 0x0400
142655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define IW_POWER_ON 0x0000
143655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define IW_POWER_TYPE 0xF000
144655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define IW_POWER_PERIOD 0x1000
145655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define IW_POWER_TIMEOUT 0x2000
146655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define IW_POWER_MODE 0x0F00
147655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define IW_POWER_UNICAST_R 0x0100
148655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define IW_POWER_MULTICAST_R 0x0200
149655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define IW_POWER_ALL_R 0x0300
150655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define IW_POWER_FORCE_S 0x0400
151655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define IW_POWER_REPEATER 0x0800
152655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define IW_POWER_MODIFIER 0x000F
153655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define IW_POWER_MIN 0x0001
154655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define IW_POWER_MAX 0x0002
155655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define IW_POWER_RELATIVE 0x0004
156655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define IW_TXPOW_TYPE 0x00FF
157655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define IW_TXPOW_DBM 0x0000
158655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define IW_TXPOW_MWATT 0x0001
159655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define IW_TXPOW_RELATIVE 0x0002
160655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define IW_TXPOW_RANGE 0x1000
161655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define IW_RETRY_ON 0x0000
162655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define IW_RETRY_TYPE 0xF000
163655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define IW_RETRY_LIMIT 0x1000
164655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define IW_RETRY_LIFETIME 0x2000
165655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define IW_RETRY_MODIFIER 0x00FF
166655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define IW_RETRY_MIN 0x0001
167655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define IW_RETRY_MAX 0x0002
168655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define IW_RETRY_RELATIVE 0x0004
169655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define IW_RETRY_SHORT 0x0010
170655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define IW_RETRY_LONG 0x0020
171655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define IW_SCAN_DEFAULT 0x0000
172655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define IW_SCAN_ALL_ESSID 0x0001
173655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define IW_SCAN_THIS_ESSID 0x0002
174655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define IW_SCAN_ALL_FREQ 0x0004
175655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define IW_SCAN_THIS_FREQ 0x0008
176655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define IW_SCAN_ALL_MODE 0x0010
177655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define IW_SCAN_THIS_MODE 0x0020
178655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define IW_SCAN_ALL_RATE 0x0040
179655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define IW_SCAN_THIS_RATE 0x0080
180655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define IW_SCAN_TYPE_ACTIVE 0
181655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define IW_SCAN_TYPE_PASSIVE 1
182655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define IW_SCAN_MAX_DATA 4096
183655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define IW_SCAN_CAPA_NONE 0x00
184655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define IW_SCAN_CAPA_ESSID 0x01
185655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define IW_SCAN_CAPA_BSSID 0x02
186655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define IW_SCAN_CAPA_CHANNEL 0x04
187655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define IW_SCAN_CAPA_MODE 0x08
188655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define IW_SCAN_CAPA_RATE 0x10
189655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define IW_SCAN_CAPA_TYPE 0x20
190655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define IW_SCAN_CAPA_TIME 0x40
191655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define IW_CUSTOM_MAX 256
192655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define IW_GENERIC_IE_MAX 1024
193655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define IW_MLME_DEAUTH 0
194655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define IW_MLME_DISASSOC 1
195655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define IW_MLME_AUTH 2
196655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define IW_MLME_ASSOC 3
197655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define IW_AUTH_INDEX 0x0FFF
198655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define IW_AUTH_FLAGS 0xF000
199655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define IW_AUTH_WPA_VERSION 0
200655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define IW_AUTH_CIPHER_PAIRWISE 1
201655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define IW_AUTH_CIPHER_GROUP 2
202655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define IW_AUTH_KEY_MGMT 3
203655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define IW_AUTH_TKIP_COUNTERMEASURES 4
204655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define IW_AUTH_DROP_UNENCRYPTED 5
205655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define IW_AUTH_80211_AUTH_ALG 6
206655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define IW_AUTH_WPA_ENABLED 7
207655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define IW_AUTH_RX_UNENCRYPTED_EAPOL 8
208655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define IW_AUTH_ROAMING_CONTROL 9
209655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define IW_AUTH_PRIVACY_INVOKED 10
210655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define IW_AUTH_CIPHER_GROUP_MGMT 11
211655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define IW_AUTH_MFP 12
212655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define IW_AUTH_WPA_VERSION_DISABLED 0x00000001
213655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define IW_AUTH_WPA_VERSION_WPA 0x00000002
214655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define IW_AUTH_WPA_VERSION_WPA2 0x00000004
215655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define IW_AUTH_CIPHER_NONE 0x00000001
216655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define IW_AUTH_CIPHER_WEP40 0x00000002
217655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define IW_AUTH_CIPHER_TKIP 0x00000004
218655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define IW_AUTH_CIPHER_CCMP 0x00000008
219655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define IW_AUTH_CIPHER_WEP104 0x00000010
220655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define IW_AUTH_CIPHER_AES_CMAC 0x00000020
221655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define IW_AUTH_KEY_MGMT_802_1X 1
222655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define IW_AUTH_KEY_MGMT_PSK 2
223655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define IW_AUTH_ALG_OPEN_SYSTEM 0x00000001
224655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define IW_AUTH_ALG_SHARED_KEY 0x00000002
225655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define IW_AUTH_ALG_LEAP 0x00000004
226655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define IW_AUTH_ROAMING_ENABLE 0
227655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define IW_AUTH_ROAMING_DISABLE 1
228655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define IW_AUTH_MFP_DISABLED 0
229655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define IW_AUTH_MFP_OPTIONAL 1
230655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define IW_AUTH_MFP_REQUIRED 2
231655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define IW_ENCODE_SEQ_MAX_SIZE 8
232655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define IW_ENCODE_ALG_NONE 0
233655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define IW_ENCODE_ALG_WEP 1
234655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define IW_ENCODE_ALG_TKIP 2
235655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define IW_ENCODE_ALG_CCMP 3
236655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define IW_ENCODE_ALG_PMK 4
237655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define IW_ENCODE_ALG_AES_CMAC 5
238655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define IW_ENCODE_EXT_TX_SEQ_VALID 0x00000001
239655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define IW_ENCODE_EXT_RX_SEQ_VALID 0x00000002
240655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define IW_ENCODE_EXT_GROUP_KEY 0x00000004
241655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define IW_ENCODE_EXT_SET_TX_KEY 0x00000008
242655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define IW_MICFAILURE_KEY_ID 0x00000003
243655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define IW_MICFAILURE_GROUP 0x00000004
244655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define IW_MICFAILURE_PAIRWISE 0x00000008
245655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define IW_MICFAILURE_STAKEY 0x00000010
246655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define IW_MICFAILURE_COUNT 0x00000060
247655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define IW_ENC_CAPA_WPA 0x00000001
248655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define IW_ENC_CAPA_WPA2 0x00000002
249655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define IW_ENC_CAPA_CIPHER_TKIP 0x00000004
250655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define IW_ENC_CAPA_CIPHER_CCMP 0x00000008
251655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define IW_ENC_CAPA_4WAY_HANDSHAKE 0x00000010
252d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao#define IW_EVENT_CAPA_BASE(cmd) ((cmd >= SIOCIWFIRSTPRIV) ? (cmd - SIOCIWFIRSTPRIV + 0x60) : (cmd - SIOCIWFIRST))
253655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define IW_EVENT_CAPA_INDEX(cmd) (IW_EVENT_CAPA_BASE(cmd) >> 5)
254655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define IW_EVENT_CAPA_MASK(cmd) (1 << (IW_EVENT_CAPA_BASE(cmd) & 0x1F))
255d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao#define IW_EVENT_CAPA_K_0 (IW_EVENT_CAPA_MASK(0x8B04) | IW_EVENT_CAPA_MASK(0x8B06) | IW_EVENT_CAPA_MASK(0x8B1A))
256655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define IW_EVENT_CAPA_K_1 (IW_EVENT_CAPA_MASK(0x8B2A))
257d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao#define IW_EVENT_CAPA_SET(event_capa,cmd) (event_capa[IW_EVENT_CAPA_INDEX(cmd)] |= IW_EVENT_CAPA_MASK(cmd))
258d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao#define IW_EVENT_CAPA_SET_KERNEL(event_capa) { event_capa[0] |= IW_EVENT_CAPA_K_0; event_capa[1] |= IW_EVENT_CAPA_K_1; }
259d7db594b8d1dab36b711bd887a9dd21675c87243Tao Baostruct iw_param {
260d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __s32 value;
261d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u8 fixed;
262d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u8 disabled;
263d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u16 flags;
264655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng};
265d7db594b8d1dab36b711bd887a9dd21675c87243Tao Baostruct iw_point {
266d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  void __user * pointer;
267d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u16 length;
268d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u16 flags;
269655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng};
270d7db594b8d1dab36b711bd887a9dd21675c87243Tao Baostruct iw_freq {
271d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __s32 m;
272d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __s16 e;
273d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u8 i;
274d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u8 flags;
275d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao};
276d7db594b8d1dab36b711bd887a9dd21675c87243Tao Baostruct iw_quality {
277d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u8 qual;
278d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u8 level;
279d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u8 noise;
280d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u8 updated;
281655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng};
282d7db594b8d1dab36b711bd887a9dd21675c87243Tao Baostruct iw_discarded {
283d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u32 nwid;
284d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u32 code;
285d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u32 fragment;
286d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u32 retries;
287d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u32 misc;
288655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng};
289d7db594b8d1dab36b711bd887a9dd21675c87243Tao Baostruct iw_missed {
290d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u32 beacon;
291655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng};
292d7db594b8d1dab36b711bd887a9dd21675c87243Tao Baostruct iw_thrspy {
293d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  struct sockaddr addr;
294d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  struct iw_quality qual;
295d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  struct iw_quality low;
296d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  struct iw_quality high;
297655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng};
298d7db594b8d1dab36b711bd887a9dd21675c87243Tao Baostruct iw_scan_req {
299d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u8 scan_type;
300d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u8 essid_len;
301d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u8 num_channels;
302d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u8 flags;
303d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  struct sockaddr bssid;
304d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u8 essid[IW_ESSID_MAX_SIZE];
305d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u32 min_channel_time;
306d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u32 max_channel_time;
307d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  struct iw_freq channel_list[IW_MAX_FREQUENCIES];
308655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng};
309d7db594b8d1dab36b711bd887a9dd21675c87243Tao Baostruct iw_encode_ext {
310d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u32 ext_flags;
311d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u8 tx_seq[IW_ENCODE_SEQ_MAX_SIZE];
312d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u8 rx_seq[IW_ENCODE_SEQ_MAX_SIZE];
313d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  struct sockaddr addr;
314d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u16 alg;
315d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u16 key_len;
316d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u8 key[0];
317655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng};
318d7db594b8d1dab36b711bd887a9dd21675c87243Tao Baostruct iw_mlme {
319d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u16 cmd;
320d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u16 reason_code;
321d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  struct sockaddr addr;
322655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng};
323655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define IW_PMKSA_ADD 1
324655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define IW_PMKSA_REMOVE 2
325655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define IW_PMKSA_FLUSH 3
326655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define IW_PMKID_LEN 16
327d7db594b8d1dab36b711bd887a9dd21675c87243Tao Baostruct iw_pmksa {
328d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u32 cmd;
329d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  struct sockaddr bssid;
330d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u8 pmkid[IW_PMKID_LEN];
331655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng};
332d7db594b8d1dab36b711bd887a9dd21675c87243Tao Baostruct iw_michaelmicfailure {
333d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u32 flags;
334d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  struct sockaddr src_addr;
335d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u8 tsc[IW_ENCODE_SEQ_MAX_SIZE];
336655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng};
337d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao#define IW_PMKID_CAND_PREAUTH 0x00000001
338d7db594b8d1dab36b711bd887a9dd21675c87243Tao Baostruct iw_pmkid_cand {
339d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u32 flags;
340d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u32 index;
341d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  struct sockaddr bssid;
342655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng};
343d7db594b8d1dab36b711bd887a9dd21675c87243Tao Baostruct iw_statistics {
344d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u16 status;
345d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  struct iw_quality qual;
346d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  struct iw_discarded discard;
347d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  struct iw_missed miss;
348d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao};
349d7db594b8d1dab36b711bd887a9dd21675c87243Tao Baounion iwreq_data {
350d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  char name[IFNAMSIZ];
351d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  struct iw_point essid;
352d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  struct iw_param nwid;
353d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  struct iw_freq freq;
354d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  struct iw_param sens;
355d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  struct iw_param bitrate;
356d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  struct iw_param txpower;
357d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  struct iw_param rts;
358d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  struct iw_param frag;
359d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u32 mode;
360d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  struct iw_param retry;
361d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  struct iw_point encoding;
362d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  struct iw_param power;
363d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  struct iw_quality qual;
364d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  struct sockaddr ap_addr;
365d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  struct sockaddr addr;
366d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  struct iw_param param;
367d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  struct iw_point data;
368d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao};
369d7db594b8d1dab36b711bd887a9dd21675c87243Tao Baostruct iwreq {
370d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  union {
371d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao    char ifrn_name[IFNAMSIZ];
372d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  } ifr_ifrn;
373d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  union iwreq_data u;
374655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng};
375d7db594b8d1dab36b711bd887a9dd21675c87243Tao Baostruct iw_range {
376d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u32 throughput;
377d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u32 min_nwid;
378d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u32 max_nwid;
379d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u16 old_num_channels;
380d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u8 old_num_frequency;
381d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u8 scan_capa;
382d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u32 event_capa[6];
383d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __s32 sensitivity;
384d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  struct iw_quality max_qual;
385d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  struct iw_quality avg_qual;
386d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u8 num_bitrates;
387d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __s32 bitrate[IW_MAX_BITRATES];
388d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __s32 min_rts;
389d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __s32 max_rts;
390d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __s32 min_frag;
391d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __s32 max_frag;
392d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __s32 min_pmp;
393d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __s32 max_pmp;
394d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __s32 min_pmt;
395d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __s32 max_pmt;
396d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u16 pmp_flags;
397d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u16 pmt_flags;
398d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u16 pm_capa;
399d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u16 encoding_size[IW_MAX_ENCODING_SIZES];
400d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u8 num_encoding_sizes;
401d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u8 max_encoding_tokens;
402d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u8 encoding_login_index;
403d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u16 txpower_capa;
404d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u8 num_txpower;
405d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __s32 txpower[IW_MAX_TXPOWER];
406d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u8 we_version_compiled;
407d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u8 we_version_source;
408d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u16 retry_capa;
409d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u16 retry_flags;
410d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u16 r_time_flags;
411d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __s32 min_retry;
412d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __s32 max_retry;
413d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __s32 min_r_time;
414d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __s32 max_r_time;
415d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u16 num_channels;
416d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u8 num_frequency;
417d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  struct iw_freq freq[IW_MAX_FREQUENCIES];
418d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u32 enc_capa;
419655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng};
420d7db594b8d1dab36b711bd887a9dd21675c87243Tao Baostruct iw_priv_args {
421d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u32 cmd;
422d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u16 set_args;
423d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u16 get_args;
424d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  char name[IFNAMSIZ];
425655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng};
426d7db594b8d1dab36b711bd887a9dd21675c87243Tao Baostruct iw_event {
427d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u16 len;
428d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u16 cmd;
429d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  union iwreq_data u;
430655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng};
431655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define IW_EV_LCP_LEN (sizeof(struct iw_event) - sizeof(union iwreq_data))
432655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define IW_EV_CHAR_LEN (IW_EV_LCP_LEN + IFNAMSIZ)
433655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define IW_EV_UINT_LEN (IW_EV_LCP_LEN + sizeof(__u32))
434655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define IW_EV_FREQ_LEN (IW_EV_LCP_LEN + sizeof(struct iw_freq))
435655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define IW_EV_PARAM_LEN (IW_EV_LCP_LEN + sizeof(struct iw_param))
436655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define IW_EV_ADDR_LEN (IW_EV_LCP_LEN + sizeof(struct sockaddr))
437655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define IW_EV_QUAL_LEN (IW_EV_LCP_LEN + sizeof(struct iw_quality))
438d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao#define IW_EV_POINT_OFF (((char *) & (((struct iw_point *) NULL)->length)) - (char *) NULL)
439d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao#define IW_EV_POINT_LEN (IW_EV_LCP_LEN + sizeof(struct iw_point) - IW_EV_POINT_OFF)
440655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define IW_EV_LCP_PK_LEN (4)
441655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define IW_EV_CHAR_PK_LEN (IW_EV_LCP_PK_LEN + IFNAMSIZ)
442655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define IW_EV_UINT_PK_LEN (IW_EV_LCP_PK_LEN + sizeof(__u32))
443655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define IW_EV_FREQ_PK_LEN (IW_EV_LCP_PK_LEN + sizeof(struct iw_freq))
444655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define IW_EV_PARAM_PK_LEN (IW_EV_LCP_PK_LEN + sizeof(struct iw_param))
445655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define IW_EV_ADDR_PK_LEN (IW_EV_LCP_PK_LEN + sizeof(struct sockaddr))
446655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define IW_EV_QUAL_PK_LEN (IW_EV_LCP_PK_LEN + sizeof(struct iw_quality))
447655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define IW_EV_POINT_PK_LEN (IW_EV_LCP_PK_LEN + 4)
448655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#endif
449