Home | History | Annotate | Download | only in linux
      1 /****************************************************************************
      2  ****************************************************************************
      3  ***
      4  ***   This header was automatically generated from a Linux kernel header
      5  ***   of the same name, to make information necessary for userspace to
      6  ***   call into the kernel available to libc.  It contains only constants,
      7  ***   structures, and macros generated from the original header, and thus,
      8  ***   contains no copyrightable information.
      9  ***
     10  ***   To edit the content of this header, modify the corresponding
     11  ***   source file (e.g. under external/kernel-headers/original/) then
     12  ***   run bionic/libc/kernel/tools/update_all.py
     13  ***
     14  ***   Any manual change here will be lost the next time this script will
     15  ***   be run. You've been warned!
     16  ***
     17  ****************************************************************************
     18  ****************************************************************************/
     19 #ifndef _UAPI_LINUX_WIRELESS_H
     20 #define _UAPI_LINUX_WIRELESS_H
     21 #include <linux/types.h>
     22 #include <linux/socket.h>
     23 #include <linux/if.h>
     24 #define WIRELESS_EXT 22
     25 #define SIOCSIWCOMMIT 0x8B00
     26 #define SIOCGIWNAME 0x8B01
     27 #define SIOCSIWNWID 0x8B02
     28 #define SIOCGIWNWID 0x8B03
     29 #define SIOCSIWFREQ 0x8B04
     30 #define SIOCGIWFREQ 0x8B05
     31 #define SIOCSIWMODE 0x8B06
     32 #define SIOCGIWMODE 0x8B07
     33 #define SIOCSIWSENS 0x8B08
     34 #define SIOCGIWSENS 0x8B09
     35 #define SIOCSIWRANGE 0x8B0A
     36 #define SIOCGIWRANGE 0x8B0B
     37 #define SIOCSIWPRIV 0x8B0C
     38 #define SIOCGIWPRIV 0x8B0D
     39 #define SIOCSIWSTATS 0x8B0E
     40 #define SIOCGIWSTATS 0x8B0F
     41 #define SIOCSIWSPY 0x8B10
     42 #define SIOCGIWSPY 0x8B11
     43 #define SIOCSIWTHRSPY 0x8B12
     44 #define SIOCGIWTHRSPY 0x8B13
     45 #define SIOCSIWAP 0x8B14
     46 #define SIOCGIWAP 0x8B15
     47 #define SIOCGIWAPLIST 0x8B17
     48 #define SIOCSIWSCAN 0x8B18
     49 #define SIOCGIWSCAN 0x8B19
     50 #define SIOCSIWESSID 0x8B1A
     51 #define SIOCGIWESSID 0x8B1B
     52 #define SIOCSIWNICKN 0x8B1C
     53 #define SIOCGIWNICKN 0x8B1D
     54 #define SIOCSIWRATE 0x8B20
     55 #define SIOCGIWRATE 0x8B21
     56 #define SIOCSIWRTS 0x8B22
     57 #define SIOCGIWRTS 0x8B23
     58 #define SIOCSIWFRAG 0x8B24
     59 #define SIOCGIWFRAG 0x8B25
     60 #define SIOCSIWTXPOW 0x8B26
     61 #define SIOCGIWTXPOW 0x8B27
     62 #define SIOCSIWRETRY 0x8B28
     63 #define SIOCGIWRETRY 0x8B29
     64 #define SIOCSIWENCODE 0x8B2A
     65 #define SIOCGIWENCODE 0x8B2B
     66 #define SIOCSIWPOWER 0x8B2C
     67 #define SIOCGIWPOWER 0x8B2D
     68 #define SIOCSIWGENIE 0x8B30
     69 #define SIOCGIWGENIE 0x8B31
     70 #define SIOCSIWMLME 0x8B16
     71 #define SIOCSIWAUTH 0x8B32
     72 #define SIOCGIWAUTH 0x8B33
     73 #define SIOCSIWENCODEEXT 0x8B34
     74 #define SIOCGIWENCODEEXT 0x8B35
     75 #define SIOCSIWPMKSA 0x8B36
     76 #define SIOCIWFIRSTPRIV 0x8BE0
     77 #define SIOCIWLASTPRIV 0x8BFF
     78 #define SIOCIWFIRST 0x8B00
     79 #define SIOCIWLAST SIOCIWLASTPRIV
     80 #define IW_IOCTL_IDX(cmd) ((cmd) - SIOCIWFIRST)
     81 #define IW_HANDLER(id,func) [IW_IOCTL_IDX(id)] = func
     82 #define IW_IS_SET(cmd) (! ((cmd) & 0x1))
     83 #define IW_IS_GET(cmd) ((cmd) & 0x1)
     84 #define IWEVTXDROP 0x8C00
     85 #define IWEVQUAL 0x8C01
     86 #define IWEVCUSTOM 0x8C02
     87 #define IWEVREGISTERED 0x8C03
     88 #define IWEVEXPIRED 0x8C04
     89 #define IWEVGENIE 0x8C05
     90 #define IWEVMICHAELMICFAILURE 0x8C06
     91 #define IWEVASSOCREQIE 0x8C07
     92 #define IWEVASSOCRESPIE 0x8C08
     93 #define IWEVPMKIDCAND 0x8C09
     94 #define IWEVFIRST 0x8C00
     95 #define IW_EVENT_IDX(cmd) ((cmd) - IWEVFIRST)
     96 #define IW_PRIV_TYPE_MASK 0x7000
     97 #define IW_PRIV_TYPE_NONE 0x0000
     98 #define IW_PRIV_TYPE_BYTE 0x1000
     99 #define IW_PRIV_TYPE_CHAR 0x2000
    100 #define IW_PRIV_TYPE_INT 0x4000
    101 #define IW_PRIV_TYPE_FLOAT 0x5000
    102 #define IW_PRIV_TYPE_ADDR 0x6000
    103 #define IW_PRIV_SIZE_FIXED 0x0800
    104 #define IW_PRIV_SIZE_MASK 0x07FF
    105 #define IW_MAX_FREQUENCIES 32
    106 #define IW_MAX_BITRATES 32
    107 #define IW_MAX_TXPOWER 8
    108 #define IW_MAX_SPY 8
    109 #define IW_MAX_AP 64
    110 #define IW_ESSID_MAX_SIZE 32
    111 #define IW_MODE_AUTO 0
    112 #define IW_MODE_ADHOC 1
    113 #define IW_MODE_INFRA 2
    114 #define IW_MODE_MASTER 3
    115 #define IW_MODE_REPEAT 4
    116 #define IW_MODE_SECOND 5
    117 #define IW_MODE_MONITOR 6
    118 #define IW_MODE_MESH 7
    119 #define IW_QUAL_QUAL_UPDATED 0x01
    120 #define IW_QUAL_LEVEL_UPDATED 0x02
    121 #define IW_QUAL_NOISE_UPDATED 0x04
    122 #define IW_QUAL_ALL_UPDATED 0x07
    123 #define IW_QUAL_DBM 0x08
    124 #define IW_QUAL_QUAL_INVALID 0x10
    125 #define IW_QUAL_LEVEL_INVALID 0x20
    126 #define IW_QUAL_NOISE_INVALID 0x40
    127 #define IW_QUAL_RCPI 0x80
    128 #define IW_QUAL_ALL_INVALID 0x70
    129 #define IW_FREQ_AUTO 0x00
    130 #define IW_FREQ_FIXED 0x01
    131 #define IW_MAX_ENCODING_SIZES 8
    132 #define IW_ENCODING_TOKEN_MAX 64
    133 #define IW_ENCODE_INDEX 0x00FF
    134 #define IW_ENCODE_FLAGS 0xFF00
    135 #define IW_ENCODE_MODE 0xF000
    136 #define IW_ENCODE_DISABLED 0x8000
    137 #define IW_ENCODE_ENABLED 0x0000
    138 #define IW_ENCODE_RESTRICTED 0x4000
    139 #define IW_ENCODE_OPEN 0x2000
    140 #define IW_ENCODE_NOKEY 0x0800
    141 #define IW_ENCODE_TEMP 0x0400
    142 #define IW_POWER_ON 0x0000
    143 #define IW_POWER_TYPE 0xF000
    144 #define IW_POWER_PERIOD 0x1000
    145 #define IW_POWER_TIMEOUT 0x2000
    146 #define IW_POWER_MODE 0x0F00
    147 #define IW_POWER_UNICAST_R 0x0100
    148 #define IW_POWER_MULTICAST_R 0x0200
    149 #define IW_POWER_ALL_R 0x0300
    150 #define IW_POWER_FORCE_S 0x0400
    151 #define IW_POWER_REPEATER 0x0800
    152 #define IW_POWER_MODIFIER 0x000F
    153 #define IW_POWER_MIN 0x0001
    154 #define IW_POWER_MAX 0x0002
    155 #define IW_POWER_RELATIVE 0x0004
    156 #define IW_TXPOW_TYPE 0x00FF
    157 #define IW_TXPOW_DBM 0x0000
    158 #define IW_TXPOW_MWATT 0x0001
    159 #define IW_TXPOW_RELATIVE 0x0002
    160 #define IW_TXPOW_RANGE 0x1000
    161 #define IW_RETRY_ON 0x0000
    162 #define IW_RETRY_TYPE 0xF000
    163 #define IW_RETRY_LIMIT 0x1000
    164 #define IW_RETRY_LIFETIME 0x2000
    165 #define IW_RETRY_MODIFIER 0x00FF
    166 #define IW_RETRY_MIN 0x0001
    167 #define IW_RETRY_MAX 0x0002
    168 #define IW_RETRY_RELATIVE 0x0004
    169 #define IW_RETRY_SHORT 0x0010
    170 #define IW_RETRY_LONG 0x0020
    171 #define IW_SCAN_DEFAULT 0x0000
    172 #define IW_SCAN_ALL_ESSID 0x0001
    173 #define IW_SCAN_THIS_ESSID 0x0002
    174 #define IW_SCAN_ALL_FREQ 0x0004
    175 #define IW_SCAN_THIS_FREQ 0x0008
    176 #define IW_SCAN_ALL_MODE 0x0010
    177 #define IW_SCAN_THIS_MODE 0x0020
    178 #define IW_SCAN_ALL_RATE 0x0040
    179 #define IW_SCAN_THIS_RATE 0x0080
    180 #define IW_SCAN_TYPE_ACTIVE 0
    181 #define IW_SCAN_TYPE_PASSIVE 1
    182 #define IW_SCAN_MAX_DATA 4096
    183 #define IW_SCAN_CAPA_NONE 0x00
    184 #define IW_SCAN_CAPA_ESSID 0x01
    185 #define IW_SCAN_CAPA_BSSID 0x02
    186 #define IW_SCAN_CAPA_CHANNEL 0x04
    187 #define IW_SCAN_CAPA_MODE 0x08
    188 #define IW_SCAN_CAPA_RATE 0x10
    189 #define IW_SCAN_CAPA_TYPE 0x20
    190 #define IW_SCAN_CAPA_TIME 0x40
    191 #define IW_CUSTOM_MAX 256
    192 #define IW_GENERIC_IE_MAX 1024
    193 #define IW_MLME_DEAUTH 0
    194 #define IW_MLME_DISASSOC 1
    195 #define IW_MLME_AUTH 2
    196 #define IW_MLME_ASSOC 3
    197 #define IW_AUTH_INDEX 0x0FFF
    198 #define IW_AUTH_FLAGS 0xF000
    199 #define IW_AUTH_WPA_VERSION 0
    200 #define IW_AUTH_CIPHER_PAIRWISE 1
    201 #define IW_AUTH_CIPHER_GROUP 2
    202 #define IW_AUTH_KEY_MGMT 3
    203 #define IW_AUTH_TKIP_COUNTERMEASURES 4
    204 #define IW_AUTH_DROP_UNENCRYPTED 5
    205 #define IW_AUTH_80211_AUTH_ALG 6
    206 #define IW_AUTH_WPA_ENABLED 7
    207 #define IW_AUTH_RX_UNENCRYPTED_EAPOL 8
    208 #define IW_AUTH_ROAMING_CONTROL 9
    209 #define IW_AUTH_PRIVACY_INVOKED 10
    210 #define IW_AUTH_CIPHER_GROUP_MGMT 11
    211 #define IW_AUTH_MFP 12
    212 #define IW_AUTH_WPA_VERSION_DISABLED 0x00000001
    213 #define IW_AUTH_WPA_VERSION_WPA 0x00000002
    214 #define IW_AUTH_WPA_VERSION_WPA2 0x00000004
    215 #define IW_AUTH_CIPHER_NONE 0x00000001
    216 #define IW_AUTH_CIPHER_WEP40 0x00000002
    217 #define IW_AUTH_CIPHER_TKIP 0x00000004
    218 #define IW_AUTH_CIPHER_CCMP 0x00000008
    219 #define IW_AUTH_CIPHER_WEP104 0x00000010
    220 #define IW_AUTH_CIPHER_AES_CMAC 0x00000020
    221 #define IW_AUTH_KEY_MGMT_802_1X 1
    222 #define IW_AUTH_KEY_MGMT_PSK 2
    223 #define IW_AUTH_ALG_OPEN_SYSTEM 0x00000001
    224 #define IW_AUTH_ALG_SHARED_KEY 0x00000002
    225 #define IW_AUTH_ALG_LEAP 0x00000004
    226 #define IW_AUTH_ROAMING_ENABLE 0
    227 #define IW_AUTH_ROAMING_DISABLE 1
    228 #define IW_AUTH_MFP_DISABLED 0
    229 #define IW_AUTH_MFP_OPTIONAL 1
    230 #define IW_AUTH_MFP_REQUIRED 2
    231 #define IW_ENCODE_SEQ_MAX_SIZE 8
    232 #define IW_ENCODE_ALG_NONE 0
    233 #define IW_ENCODE_ALG_WEP 1
    234 #define IW_ENCODE_ALG_TKIP 2
    235 #define IW_ENCODE_ALG_CCMP 3
    236 #define IW_ENCODE_ALG_PMK 4
    237 #define IW_ENCODE_ALG_AES_CMAC 5
    238 #define IW_ENCODE_EXT_TX_SEQ_VALID 0x00000001
    239 #define IW_ENCODE_EXT_RX_SEQ_VALID 0x00000002
    240 #define IW_ENCODE_EXT_GROUP_KEY 0x00000004
    241 #define IW_ENCODE_EXT_SET_TX_KEY 0x00000008
    242 #define IW_MICFAILURE_KEY_ID 0x00000003
    243 #define IW_MICFAILURE_GROUP 0x00000004
    244 #define IW_MICFAILURE_PAIRWISE 0x00000008
    245 #define IW_MICFAILURE_STAKEY 0x00000010
    246 #define IW_MICFAILURE_COUNT 0x00000060
    247 #define IW_ENC_CAPA_WPA 0x00000001
    248 #define IW_ENC_CAPA_WPA2 0x00000002
    249 #define IW_ENC_CAPA_CIPHER_TKIP 0x00000004
    250 #define IW_ENC_CAPA_CIPHER_CCMP 0x00000008
    251 #define IW_ENC_CAPA_4WAY_HANDSHAKE 0x00000010
    252 #define IW_EVENT_CAPA_BASE(cmd) ((cmd >= SIOCIWFIRSTPRIV) ? (cmd - SIOCIWFIRSTPRIV + 0x60) : (cmd - SIOCIWFIRST))
    253 #define IW_EVENT_CAPA_INDEX(cmd) (IW_EVENT_CAPA_BASE(cmd) >> 5)
    254 #define IW_EVENT_CAPA_MASK(cmd) (1 << (IW_EVENT_CAPA_BASE(cmd) & 0x1F))
    255 #define IW_EVENT_CAPA_K_0 (IW_EVENT_CAPA_MASK(0x8B04) | IW_EVENT_CAPA_MASK(0x8B06) | IW_EVENT_CAPA_MASK(0x8B1A))
    256 #define IW_EVENT_CAPA_K_1 (IW_EVENT_CAPA_MASK(0x8B2A))
    257 #define IW_EVENT_CAPA_SET(event_capa,cmd) (event_capa[IW_EVENT_CAPA_INDEX(cmd)] |= IW_EVENT_CAPA_MASK(cmd))
    258 #define IW_EVENT_CAPA_SET_KERNEL(event_capa) { event_capa[0] |= IW_EVENT_CAPA_K_0; event_capa[1] |= IW_EVENT_CAPA_K_1; }
    259 struct iw_param {
    260   __s32 value;
    261   __u8 fixed;
    262   __u8 disabled;
    263   __u16 flags;
    264 };
    265 struct iw_point {
    266   void __user * pointer;
    267   __u16 length;
    268   __u16 flags;
    269 };
    270 struct iw_freq {
    271   __s32 m;
    272   __s16 e;
    273   __u8 i;
    274   __u8 flags;
    275 };
    276 struct iw_quality {
    277   __u8 qual;
    278   __u8 level;
    279   __u8 noise;
    280   __u8 updated;
    281 };
    282 struct iw_discarded {
    283   __u32 nwid;
    284   __u32 code;
    285   __u32 fragment;
    286   __u32 retries;
    287   __u32 misc;
    288 };
    289 struct iw_missed {
    290   __u32 beacon;
    291 };
    292 struct iw_thrspy {
    293   struct sockaddr addr;
    294   struct iw_quality qual;
    295   struct iw_quality low;
    296   struct iw_quality high;
    297 };
    298 struct iw_scan_req {
    299   __u8 scan_type;
    300   __u8 essid_len;
    301   __u8 num_channels;
    302   __u8 flags;
    303   struct sockaddr bssid;
    304   __u8 essid[IW_ESSID_MAX_SIZE];
    305   __u32 min_channel_time;
    306   __u32 max_channel_time;
    307   struct iw_freq channel_list[IW_MAX_FREQUENCIES];
    308 };
    309 struct iw_encode_ext {
    310   __u32 ext_flags;
    311   __u8 tx_seq[IW_ENCODE_SEQ_MAX_SIZE];
    312   __u8 rx_seq[IW_ENCODE_SEQ_MAX_SIZE];
    313   struct sockaddr addr;
    314   __u16 alg;
    315   __u16 key_len;
    316   __u8 key[0];
    317 };
    318 struct iw_mlme {
    319   __u16 cmd;
    320   __u16 reason_code;
    321   struct sockaddr addr;
    322 };
    323 #define IW_PMKSA_ADD 1
    324 #define IW_PMKSA_REMOVE 2
    325 #define IW_PMKSA_FLUSH 3
    326 #define IW_PMKID_LEN 16
    327 struct iw_pmksa {
    328   __u32 cmd;
    329   struct sockaddr bssid;
    330   __u8 pmkid[IW_PMKID_LEN];
    331 };
    332 struct iw_michaelmicfailure {
    333   __u32 flags;
    334   struct sockaddr src_addr;
    335   __u8 tsc[IW_ENCODE_SEQ_MAX_SIZE];
    336 };
    337 #define IW_PMKID_CAND_PREAUTH 0x00000001
    338 struct iw_pmkid_cand {
    339   __u32 flags;
    340   __u32 index;
    341   struct sockaddr bssid;
    342 };
    343 struct iw_statistics {
    344   __u16 status;
    345   struct iw_quality qual;
    346   struct iw_discarded discard;
    347   struct iw_missed miss;
    348 };
    349 union iwreq_data {
    350   char name[IFNAMSIZ];
    351   struct iw_point essid;
    352   struct iw_param nwid;
    353   struct iw_freq freq;
    354   struct iw_param sens;
    355   struct iw_param bitrate;
    356   struct iw_param txpower;
    357   struct iw_param rts;
    358   struct iw_param frag;
    359   __u32 mode;
    360   struct iw_param retry;
    361   struct iw_point encoding;
    362   struct iw_param power;
    363   struct iw_quality qual;
    364   struct sockaddr ap_addr;
    365   struct sockaddr addr;
    366   struct iw_param param;
    367   struct iw_point data;
    368 };
    369 struct iwreq {
    370   union {
    371     char ifrn_name[IFNAMSIZ];
    372   } ifr_ifrn;
    373   union iwreq_data u;
    374 };
    375 struct iw_range {
    376   __u32 throughput;
    377   __u32 min_nwid;
    378   __u32 max_nwid;
    379   __u16 old_num_channels;
    380   __u8 old_num_frequency;
    381   __u8 scan_capa;
    382   __u32 event_capa[6];
    383   __s32 sensitivity;
    384   struct iw_quality max_qual;
    385   struct iw_quality avg_qual;
    386   __u8 num_bitrates;
    387   __s32 bitrate[IW_MAX_BITRATES];
    388   __s32 min_rts;
    389   __s32 max_rts;
    390   __s32 min_frag;
    391   __s32 max_frag;
    392   __s32 min_pmp;
    393   __s32 max_pmp;
    394   __s32 min_pmt;
    395   __s32 max_pmt;
    396   __u16 pmp_flags;
    397   __u16 pmt_flags;
    398   __u16 pm_capa;
    399   __u16 encoding_size[IW_MAX_ENCODING_SIZES];
    400   __u8 num_encoding_sizes;
    401   __u8 max_encoding_tokens;
    402   __u8 encoding_login_index;
    403   __u16 txpower_capa;
    404   __u8 num_txpower;
    405   __s32 txpower[IW_MAX_TXPOWER];
    406   __u8 we_version_compiled;
    407   __u8 we_version_source;
    408   __u16 retry_capa;
    409   __u16 retry_flags;
    410   __u16 r_time_flags;
    411   __s32 min_retry;
    412   __s32 max_retry;
    413   __s32 min_r_time;
    414   __s32 max_r_time;
    415   __u16 num_channels;
    416   __u8 num_frequency;
    417   struct iw_freq freq[IW_MAX_FREQUENCIES];
    418   __u32 enc_capa;
    419 };
    420 struct iw_priv_args {
    421   __u32 cmd;
    422   __u16 set_args;
    423   __u16 get_args;
    424   char name[IFNAMSIZ];
    425 };
    426 struct iw_event {
    427   __u16 len;
    428   __u16 cmd;
    429   union iwreq_data u;
    430 };
    431 #define IW_EV_LCP_LEN (sizeof(struct iw_event) - sizeof(union iwreq_data))
    432 #define IW_EV_CHAR_LEN (IW_EV_LCP_LEN + IFNAMSIZ)
    433 #define IW_EV_UINT_LEN (IW_EV_LCP_LEN + sizeof(__u32))
    434 #define IW_EV_FREQ_LEN (IW_EV_LCP_LEN + sizeof(struct iw_freq))
    435 #define IW_EV_PARAM_LEN (IW_EV_LCP_LEN + sizeof(struct iw_param))
    436 #define IW_EV_ADDR_LEN (IW_EV_LCP_LEN + sizeof(struct sockaddr))
    437 #define IW_EV_QUAL_LEN (IW_EV_LCP_LEN + sizeof(struct iw_quality))
    438 #define IW_EV_POINT_OFF (((char *) & (((struct iw_point *) NULL)->length)) - (char *) NULL)
    439 #define IW_EV_POINT_LEN (IW_EV_LCP_LEN + sizeof(struct iw_point) - IW_EV_POINT_OFF)
    440 #define IW_EV_LCP_PK_LEN (4)
    441 #define IW_EV_CHAR_PK_LEN (IW_EV_LCP_PK_LEN + IFNAMSIZ)
    442 #define IW_EV_UINT_PK_LEN (IW_EV_LCP_PK_LEN + sizeof(__u32))
    443 #define IW_EV_FREQ_PK_LEN (IW_EV_LCP_PK_LEN + sizeof(struct iw_freq))
    444 #define IW_EV_PARAM_PK_LEN (IW_EV_LCP_PK_LEN + sizeof(struct iw_param))
    445 #define IW_EV_ADDR_PK_LEN (IW_EV_LCP_PK_LEN + sizeof(struct sockaddr))
    446 #define IW_EV_QUAL_PK_LEN (IW_EV_LCP_PK_LEN + sizeof(struct iw_quality))
    447 #define IW_EV_POINT_PK_LEN (IW_EV_LCP_PK_LEN + 4)
    448 #endif
    449