/****************************************************************************
 ****************************************************************************
 ***
 ***   This header was automatically generated from a Linux kernel header
 ***   of the same name, to make information necessary for userspace to
 ***   call into the kernel available to libc.  It contains only constants,
 ***   structures, and macros generated from the original header, and thus,
 ***   contains no copyrightable information.
 ***
 ****************************************************************************
 ****************************************************************************/
#ifndef _LINUX_WIRELESS_H
#define _LINUX_WIRELESS_H

#include <linux/types.h>  
#include <linux/socket.h>  
#include <linux/if.h>  

#define WIRELESS_EXT 20

#define SIOCSIWCOMMIT 0x8B00  
#define SIOCGIWNAME 0x8B01  

#define SIOCSIWNWID 0x8B02  
#define SIOCGIWNWID 0x8B03  
#define SIOCSIWFREQ 0x8B04  
#define SIOCGIWFREQ 0x8B05  
#define SIOCSIWMODE 0x8B06  
#define SIOCGIWMODE 0x8B07  
#define SIOCSIWSENS 0x8B08  
#define SIOCGIWSENS 0x8B09  

#define SIOCSIWRANGE 0x8B0A  
#define SIOCGIWRANGE 0x8B0B  
#define SIOCSIWPRIV 0x8B0C  
#define SIOCGIWPRIV 0x8B0D  
#define SIOCSIWSTATS 0x8B0E  
#define SIOCGIWSTATS 0x8B0F  

#define SIOCSIWSPY 0x8B10  
#define SIOCGIWSPY 0x8B11  
#define SIOCSIWTHRSPY 0x8B12  
#define SIOCGIWTHRSPY 0x8B13  

#define SIOCSIWAP 0x8B14  
#define SIOCGIWAP 0x8B15  
#define SIOCGIWAPLIST 0x8B17  
#define SIOCSIWSCAN 0x8B18  
#define SIOCGIWSCAN 0x8B19  

#define SIOCSIWESSID 0x8B1A  
#define SIOCGIWESSID 0x8B1B  
#define SIOCSIWNICKN 0x8B1C  
#define SIOCGIWNICKN 0x8B1D  

#define SIOCSIWRATE 0x8B20  
#define SIOCGIWRATE 0x8B21  
#define SIOCSIWRTS 0x8B22  
#define SIOCGIWRTS 0x8B23  
#define SIOCSIWFRAG 0x8B24  
#define SIOCGIWFRAG 0x8B25  
#define SIOCSIWTXPOW 0x8B26  
#define SIOCGIWTXPOW 0x8B27  
#define SIOCSIWRETRY 0x8B28  
#define SIOCGIWRETRY 0x8B29  

#define SIOCSIWENCODE 0x8B2A  
#define SIOCGIWENCODE 0x8B2B  

#define SIOCSIWPOWER 0x8B2C  
#define SIOCGIWPOWER 0x8B2D  

#define SIOCSIWGENIE 0x8B30  
#define SIOCGIWGENIE 0x8B31  

#define SIOCSIWMLME 0x8B16  

#define SIOCSIWAUTH 0x8B32  
#define SIOCGIWAUTH 0x8B33  

#define SIOCSIWENCODEEXT 0x8B34  
#define SIOCGIWENCODEEXT 0x8B35  

#define SIOCSIWPMKSA 0x8B36  

#define SIOCIWFIRSTPRIV 0x8BE0
#define SIOCIWLASTPRIV 0x8BFF

#define SIOCIWFIRST 0x8B00
#define SIOCIWLAST SIOCIWLASTPRIV  
#define IW_IOCTL_IDX(cmd) ((cmd) - SIOCIWFIRST)

#define IW_IS_SET(cmd) (!((cmd) & 0x1))
#define IW_IS_GET(cmd) ((cmd) & 0x1)

#define IWEVTXDROP 0x8C00  
#define IWEVQUAL 0x8C01  
#define IWEVCUSTOM 0x8C02  
#define IWEVREGISTERED 0x8C03  
#define IWEVEXPIRED 0x8C04  
#define IWEVGENIE 0x8C05  
#define IWEVMICHAELMICFAILURE 0x8C06  
#define IWEVASSOCREQIE 0x8C07  
#define IWEVASSOCRESPIE 0x8C08  
#define IWEVPMKIDCAND 0x8C09  

#define IWEVFIRST 0x8C00
#define IW_EVENT_IDX(cmd) ((cmd) - IWEVFIRST)

#define IW_PRIV_TYPE_MASK 0x7000  
#define IW_PRIV_TYPE_NONE 0x0000
#define IW_PRIV_TYPE_BYTE 0x1000  
#define IW_PRIV_TYPE_CHAR 0x2000  
#define IW_PRIV_TYPE_INT 0x4000  
#define IW_PRIV_TYPE_FLOAT 0x5000  
#define IW_PRIV_TYPE_ADDR 0x6000  

#define IW_PRIV_SIZE_FIXED 0x0800  

#define IW_PRIV_SIZE_MASK 0x07FF  

#define IW_MAX_FREQUENCIES 32

#define IW_MAX_BITRATES 32

#define IW_MAX_TXPOWER 8

#define IW_MAX_SPY 8

#define IW_MAX_AP 64

#define IW_ESSID_MAX_SIZE 32

#define IW_MODE_AUTO 0  
#define IW_MODE_ADHOC 1  
#define IW_MODE_INFRA 2  
#define IW_MODE_MASTER 3  
#define IW_MODE_REPEAT 4  
#define IW_MODE_SECOND 5  
#define IW_MODE_MONITOR 6  

#define IW_QUAL_QUAL_UPDATED 0x01  
#define IW_QUAL_LEVEL_UPDATED 0x02
#define IW_QUAL_NOISE_UPDATED 0x04
#define IW_QUAL_ALL_UPDATED 0x07
#define IW_QUAL_DBM 0x08  
#define IW_QUAL_QUAL_INVALID 0x10  
#define IW_QUAL_LEVEL_INVALID 0x20
#define IW_QUAL_NOISE_INVALID 0x40
#define IW_QUAL_ALL_INVALID 0x70

#define IW_FREQ_AUTO 0x00  
#define IW_FREQ_FIXED 0x01  

#define IW_MAX_ENCODING_SIZES 8

#define IW_ENCODING_TOKEN_MAX 64  

#define IW_ENCODE_INDEX 0x00FF  
#define IW_ENCODE_FLAGS 0xFF00  
#define IW_ENCODE_MODE 0xF000  
#define IW_ENCODE_DISABLED 0x8000  
#define IW_ENCODE_ENABLED 0x0000  
#define IW_ENCODE_RESTRICTED 0x4000  
#define IW_ENCODE_OPEN 0x2000  
#define IW_ENCODE_NOKEY 0x0800  
#define IW_ENCODE_TEMP 0x0400  

#define IW_POWER_ON 0x0000  
#define IW_POWER_TYPE 0xF000  
#define IW_POWER_PERIOD 0x1000  
#define IW_POWER_TIMEOUT 0x2000  
#define IW_POWER_MODE 0x0F00  
#define IW_POWER_UNICAST_R 0x0100  
#define IW_POWER_MULTICAST_R 0x0200  
#define IW_POWER_ALL_R 0x0300  
#define IW_POWER_FORCE_S 0x0400  
#define IW_POWER_REPEATER 0x0800  
#define IW_POWER_MODIFIER 0x000F  
#define IW_POWER_MIN 0x0001  
#define IW_POWER_MAX 0x0002  
#define IW_POWER_RELATIVE 0x0004  

#define IW_TXPOW_TYPE 0x00FF  
#define IW_TXPOW_DBM 0x0000  
#define IW_TXPOW_MWATT 0x0001  
#define IW_TXPOW_RELATIVE 0x0002  
#define IW_TXPOW_RANGE 0x1000  

#define IW_RETRY_ON 0x0000  
#define IW_RETRY_TYPE 0xF000  
#define IW_RETRY_LIMIT 0x1000  
#define IW_RETRY_LIFETIME 0x2000  
#define IW_RETRY_MODIFIER 0x000F  
#define IW_RETRY_MIN 0x0001  
#define IW_RETRY_MAX 0x0002  
#define IW_RETRY_RELATIVE 0x0004  

#define IW_SCAN_DEFAULT 0x0000  
#define IW_SCAN_ALL_ESSID 0x0001  
#define IW_SCAN_THIS_ESSID 0x0002  
#define IW_SCAN_ALL_FREQ 0x0004  
#define IW_SCAN_THIS_FREQ 0x0008  
#define IW_SCAN_ALL_MODE 0x0010  
#define IW_SCAN_THIS_MODE 0x0020  
#define IW_SCAN_ALL_RATE 0x0040  
#define IW_SCAN_THIS_RATE 0x0080  

#define IW_SCAN_TYPE_ACTIVE 0
#define IW_SCAN_TYPE_PASSIVE 1

#define IW_SCAN_MAX_DATA 4096  

#define IW_CUSTOM_MAX 256  

#define IW_GENERIC_IE_MAX 1024

#define IW_MLME_DEAUTH 0
#define IW_MLME_DISASSOC 1

#define IW_AUTH_INDEX 0x0FFF
#define IW_AUTH_FLAGS 0xF000

#define IW_AUTH_WPA_VERSION 0
#define IW_AUTH_CIPHER_PAIRWISE 1
#define IW_AUTH_CIPHER_GROUP 2
#define IW_AUTH_KEY_MGMT 3
#define IW_AUTH_TKIP_COUNTERMEASURES 4
#define IW_AUTH_DROP_UNENCRYPTED 5
#define IW_AUTH_80211_AUTH_ALG 6
#define IW_AUTH_WPA_ENABLED 7
#define IW_AUTH_RX_UNENCRYPTED_EAPOL 8
#define IW_AUTH_ROAMING_CONTROL 9
#define IW_AUTH_PRIVACY_INVOKED 10

#define IW_AUTH_WPA_VERSION_DISABLED 0x00000001
#define IW_AUTH_WPA_VERSION_WPA 0x00000002
#define IW_AUTH_WPA_VERSION_WPA2 0x00000004

#define IW_AUTH_CIPHER_NONE 0x00000001
#define IW_AUTH_CIPHER_WEP40 0x00000002
#define IW_AUTH_CIPHER_TKIP 0x00000004
#define IW_AUTH_CIPHER_CCMP 0x00000008
#define IW_AUTH_CIPHER_WEP104 0x00000010

#define IW_AUTH_KEY_MGMT_802_1X 1
#define IW_AUTH_KEY_MGMT_PSK 2

#define IW_AUTH_ALG_OPEN_SYSTEM 0x00000001
#define IW_AUTH_ALG_SHARED_KEY 0x00000002
#define IW_AUTH_ALG_LEAP 0x00000004

#define IW_AUTH_ROAMING_ENABLE 0  
#define IW_AUTH_ROAMING_DISABLE 1  

#define IW_ENCODE_SEQ_MAX_SIZE 8

#define IW_ENCODE_ALG_NONE 0
#define IW_ENCODE_ALG_WEP 1
#define IW_ENCODE_ALG_TKIP 2
#define IW_ENCODE_ALG_CCMP 3

#define IW_ENCODE_EXT_TX_SEQ_VALID 0x00000001
#define IW_ENCODE_EXT_RX_SEQ_VALID 0x00000002
#define IW_ENCODE_EXT_GROUP_KEY 0x00000004
#define IW_ENCODE_EXT_SET_TX_KEY 0x00000008

#define IW_MICFAILURE_KEY_ID 0x00000003  
#define IW_MICFAILURE_GROUP 0x00000004
#define IW_MICFAILURE_PAIRWISE 0x00000008
#define IW_MICFAILURE_STAKEY 0x00000010
#define IW_MICFAILURE_COUNT 0x00000060  

#define IW_ENC_CAPA_WPA 0x00000001
#define IW_ENC_CAPA_WPA2 0x00000002
#define IW_ENC_CAPA_CIPHER_TKIP 0x00000004
#define IW_ENC_CAPA_CIPHER_CCMP 0x00000008

#define IW_EVENT_CAPA_BASE(cmd) ((cmd >= SIOCIWFIRSTPRIV) ?   (cmd - SIOCIWFIRSTPRIV + 0x60) :   (cmd - SIOCSIWCOMMIT))
#define IW_EVENT_CAPA_INDEX(cmd) (IW_EVENT_CAPA_BASE(cmd) >> 5)
#define IW_EVENT_CAPA_MASK(cmd) (1 << (IW_EVENT_CAPA_BASE(cmd) & 0x1F))

#define IW_EVENT_CAPA_K_0 (IW_EVENT_CAPA_MASK(0x8B04) |   IW_EVENT_CAPA_MASK(0x8B06) |   IW_EVENT_CAPA_MASK(0x8B1A))
#define IW_EVENT_CAPA_K_1 (IW_EVENT_CAPA_MASK(0x8B2A))

#define IW_EVENT_CAPA_SET(event_capa, cmd) (event_capa[IW_EVENT_CAPA_INDEX(cmd)] |= IW_EVENT_CAPA_MASK(cmd))
#define IW_EVENT_CAPA_SET_KERNEL(event_capa) {event_capa[0] |= IW_EVENT_CAPA_K_0; event_capa[1] |= IW_EVENT_CAPA_K_1; }

struct iw_param
{
 __s32 value;
 __u8 fixed;
 __u8 disabled;
 __u16 flags;
};

struct iw_point
{
 void __user *pointer;
 __u16 length;
 __u16 flags;
};

struct iw_freq
{
 __s32 m;
 __s16 e;
 __u8 i;
 __u8 flags;
};

struct iw_quality
{
 __u8 qual;
 __u8 level;
 __u8 noise;
 __u8 updated;
};

struct iw_discarded
{
 __u32 nwid;
 __u32 code;
 __u32 fragment;
 __u32 retries;
 __u32 misc;
};

struct iw_missed
{
 __u32 beacon;
};

struct iw_thrspy
{
 struct sockaddr addr;
 struct iw_quality qual;
 struct iw_quality low;
 struct iw_quality high;
};

struct iw_scan_req
{
 __u8 scan_type;
 __u8 essid_len;
 __u8 num_channels;
 __u8 flags;
 struct sockaddr bssid;

 __u8 essid[IW_ESSID_MAX_SIZE];

 __u32 min_channel_time;
 __u32 max_channel_time;

 struct iw_freq channel_list[IW_MAX_FREQUENCIES];
};

struct iw_encode_ext
{
 __u32 ext_flags;
 __u8 tx_seq[IW_ENCODE_SEQ_MAX_SIZE];
 __u8 rx_seq[IW_ENCODE_SEQ_MAX_SIZE];
 struct sockaddr addr;
 __u16 alg;
 __u16 key_len;
 __u8 key[0];
};

struct iw_mlme
{
 __u16 cmd;
 __u16 reason_code;
 struct sockaddr addr;
};

#define IW_PMKSA_ADD 1
#define IW_PMKSA_REMOVE 2
#define IW_PMKSA_FLUSH 3

#define IW_PMKID_LEN 16

struct iw_pmksa
{
 __u32 cmd;
 struct sockaddr bssid;
 __u8 pmkid[IW_PMKID_LEN];
};

struct iw_michaelmicfailure
{
 __u32 flags;
 struct sockaddr src_addr;
 __u8 tsc[IW_ENCODE_SEQ_MAX_SIZE];
};

#define IW_PMKID_CAND_PREAUTH 0x00000001  
struct iw_pmkid_cand
{
 __u32 flags;
 __u32 index;
 struct sockaddr bssid;
};

struct iw_statistics
{
 __u16 status;

 struct iw_quality qual;
 struct iw_discarded discard;
 struct iw_missed miss;
};

union iwreq_data
{

 char name[IFNAMSIZ];

 struct iw_point essid;
 struct iw_param nwid;
 struct iw_freq freq;

 struct iw_param sens;
 struct iw_param bitrate;
 struct iw_param txpower;
 struct iw_param rts;
 struct iw_param frag;
 __u32 mode;
 struct iw_param retry;

 struct iw_point encoding;
 struct iw_param power;
 struct iw_quality qual;

 struct sockaddr ap_addr;
 struct sockaddr addr;

 struct iw_param param;
 struct iw_point data;
};

struct iwreq
{
 union
 {
 char ifrn_name[IFNAMSIZ];
 } ifr_ifrn;

 union iwreq_data u;
};

struct iw_range
{

 __u32 throughput;

 __u32 min_nwid;
 __u32 max_nwid;

 __u16 old_num_channels;
 __u8 old_num_frequency;

 __u32 event_capa[6];

 __s32 sensitivity;

 struct iw_quality max_qual;

 struct iw_quality avg_qual;

 __u8 num_bitrates;
 __s32 bitrate[IW_MAX_BITRATES];

 __s32 min_rts;
 __s32 max_rts;

 __s32 min_frag;
 __s32 max_frag;

 __s32 min_pmp;
 __s32 max_pmp;
 __s32 min_pmt;
 __s32 max_pmt;
 __u16 pmp_flags;
 __u16 pmt_flags;
 __u16 pm_capa;

 __u16 encoding_size[IW_MAX_ENCODING_SIZES];
 __u8 num_encoding_sizes;
 __u8 max_encoding_tokens;

 __u8 encoding_login_index;

 __u16 txpower_capa;
 __u8 num_txpower;
 __s32 txpower[IW_MAX_TXPOWER];

 __u8 we_version_compiled;
 __u8 we_version_source;

 __u16 retry_capa;
 __u16 retry_flags;
 __u16 r_time_flags;
 __s32 min_retry;
 __s32 max_retry;
 __s32 min_r_time;
 __s32 max_r_time;

 __u16 num_channels;
 __u8 num_frequency;
 struct iw_freq freq[IW_MAX_FREQUENCIES];

 __u32 enc_capa;
};

struct iw_priv_args
{
 __u32 cmd;
 __u16 set_args;
 __u16 get_args;
 char name[IFNAMSIZ];
};

struct iw_event
{
 __u16 len;
 __u16 cmd;
 union iwreq_data u;
};

#define IW_EV_LCP_LEN (sizeof(struct iw_event) - sizeof(union iwreq_data))

#define IW_EV_CHAR_LEN (IW_EV_LCP_LEN + IFNAMSIZ)
#define IW_EV_UINT_LEN (IW_EV_LCP_LEN + sizeof(__u32))
#define IW_EV_FREQ_LEN (IW_EV_LCP_LEN + sizeof(struct iw_freq))
#define IW_EV_PARAM_LEN (IW_EV_LCP_LEN + sizeof(struct iw_param))
#define IW_EV_ADDR_LEN (IW_EV_LCP_LEN + sizeof(struct sockaddr))
#define IW_EV_QUAL_LEN (IW_EV_LCP_LEN + sizeof(struct iw_quality))

#define IW_EV_POINT_OFF (((char *) &(((struct iw_point *) NULL)->length)) -   (char *) NULL)
#define IW_EV_POINT_LEN (IW_EV_LCP_LEN + sizeof(struct iw_point) -   IW_EV_POINT_OFF)

#endif
