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