From ddfe696b3dca65df072c004a6e1b06f9fc427f17 Mon Sep 17 00:00:00 2001 From: brijesh Date: Sun, 29 Oct 2023 12:57:37 +0530 Subject: [PATCH] feat: Added wireless.h constants --- libc-test/build.rs | 1 + libc-test/semver/linux.txt | 240 +++++++++++++++++++++++ src/unix/linux_like/linux/mod.rs | 316 +++++++++++++++++++++++++++++++ 3 files changed, 557 insertions(+) diff --git a/libc-test/build.rs b/libc-test/build.rs index cd1750d118ec0..70a85b5260a63 100644 --- a/libc-test/build.rs +++ b/libc-test/build.rs @@ -3414,6 +3414,7 @@ fn test_linux(target: &str) { "linux/uinput.h", "linux/vm_sockets.h", "linux/wait.h", + "linux/wireless.h", "sys/fanotify.h", // is not present on uclibc [!uclibc]: "sys/auxv.h", diff --git a/libc-test/semver/linux.txt b/libc-test/semver/linux.txt index 320be0f529f61..f15cf45a639cb 100644 --- a/libc-test/semver/linux.txt +++ b/libc-test/semver/linux.txt @@ -2431,6 +2431,246 @@ SIOCSMIIREG SIOCSRARP SIOCOUTQNSD SIOCWANDEV +WIRELESS_EXT +SIOCSIWCOMMIT +SIOCGIWNAME +SIOCSIWNWID +SIOCGIWNWID +SIOCSIWFREQ +SIOCGIWFREQ +SIOCSIWMODE +SIOCGIWMODE +SIOCSIWSENS +SIOCGIWSENS +SIOCSIWRANGE +SIOCGIWRANGE +SIOCSIWPRIV +SIOCGIWPRIV +SIOCSIWSTATS +SIOCGIWSTATS +SIOCSIWSPY +SIOCGIWSPY +SIOCSIWTHRSPY +SIOCGIWTHRSPY +SIOCSIWAP +SIOCGIWAP +SIOCGIWAPLIST +SIOCSIWSCAN +SIOCGIWSCAN +SIOCSIWESSID +SIOCGIWESSID +SIOCSIWNICKN +SIOCGIWNICKN +SIOCSIWRATE +SIOCGIWRATE +SIOCSIWRTS +SIOCGIWRTS +SIOCSIWFRAG +SIOCGIWFRAG +SIOCSIWTXPOW +SIOCGIWTXPOW +SIOCSIWRETRY +SIOCGIWRETRY +SIOCSIWENCODE +SIOCGIWENCODE +SIOCSIWPOWER +SIOCGIWPOWER +SIOCSIWGENIE +SIOCGIWGENIE +SIOCSIWMLME +SIOCSIWAUTH +SIOCGIWAUTH +SIOCSIWENCODEEXT +SIOCGIWENCODEEXT +SIOCSIWPMKSA +SIOCIWFIRSTPRIV +SIOCIWLASTPRIV +SIOCIWFIRST +SIOCIWLAST +IW_IOCTL_IDX +IW_IS_SET +IW_IS_GET +IWEVTXDROP +IWEVQUAL +IWEVCUSTOM +IWEVREGISTERED +IWEVEXPIRED +IWEVGENIE +IWEVMICHAELMICFAILURE +IWEVASSOCREQIE +IWEVASSOCRESPIE +IWEVPMKIDCAND +IWEVFIRST +IW_EVENT_IDX +IW_PRIV_TYPE_MASK +IW_PRIV_TYPE_NONE +IW_PRIV_TYPE_BYTE +IW_PRIV_TYPE_CHAR +IW_PRIV_TYPE_INT +IW_PRIV_TYPE_FLOAT +IW_PRIV_TYPE_ADDR +IW_PRIV_SIZE_FIXED +IW_PRIV_SIZE_MASK +IW_MAX_FREQUENCIES +IW_MAX_BITRATES +IW_MAX_TXPOWER +IW_MAX_SPY +IW_MAX_AP +IW_ESSID_MAX_SIZE +IW_MODE_AUTO +IW_MODE_ADHOC +IW_MODE_INFRA +IW_MODE_MASTER +IW_MODE_REPEAT +IW_MODE_SECOND +IW_MODE_MONITOR +IW_MODE_MESH +IW_QUAL_QUAL_UPDATED +IW_QUAL_LEVEL_UPDATED +IW_QUAL_NOISE_UPDATED +IW_QUAL_ALL_UPDATED +IW_QUAL_DBM +IW_QUAL_QUAL_INVALID +IW_QUAL_LEVEL_INVALID +IW_QUAL_NOISE_INVALID +IW_QUAL_RCPI +IW_QUAL_ALL_INVALID +IW_FREQ_AUTO +IW_FREQ_FIXED +IW_MAX_ENCODING_SIZES +IW_ENCODING_TOKEN_MAX +IW_ENCODE_INDEX +IW_ENCODE_FLAGS +IW_ENCODE_MODE +IW_ENCODE_DISABLED +IW_ENCODE_ENABLED +IW_ENCODE_RESTRICTED +IW_ENCODE_OPEN +IW_ENCODE_NOKEY +IW_ENCODE_TEMP +IW_POWER_ON +IW_POWER_TYPE +IW_POWER_PERIOD +IW_POWER_TIMEOUT +IW_POWER_MODE +IW_POWER_UNICAST_R +IW_POWER_MULTICAST_R +IW_POWER_ALL_R +IW_POWER_FORCE_S +IW_POWER_REPEATER +IW_POWER_MODIFIER +IW_POWER_MIN +IW_POWER_MAX +IW_POWER_RELATIVE +IW_TXPOW_TYPE +IW_TXPOW_DBM +IW_TXPOW_MWATT +IW_TXPOW_RELATIVE +IW_TXPOW_RANGE +IW_RETRY_ON +IW_RETRY_TYPE +IW_RETRY_LIMIT +IW_RETRY_LIFETIME +IW_RETRY_MODIFIER +IW_RETRY_MIN +IW_RETRY_MAX +IW_RETRY_RELATIVE +IW_RETRY_SHORT +IW_RETRY_LONG +IW_SCAN_DEFAULT +IW_SCAN_ALL_ESSID +IW_SCAN_THIS_ESSID +IW_SCAN_ALL_FREQ +IW_SCAN_THIS_FREQ +IW_SCAN_ALL_MODE +IW_SCAN_THIS_MODE +IW_SCAN_ALL_RATE +IW_SCAN_THIS_RATE +IW_SCAN_TYPE_ACTIVE +IW_SCAN_TYPE_PASSIVE +IW_SCAN_MAX_DATA +IW_SCAN_CAPA_NONE +IW_SCAN_CAPA_ESSID +IW_SCAN_CAPA_BSSID +IW_SCAN_CAPA_CHANNEL +IW_SCAN_CAPA_MODE +IW_SCAN_CAPA_RATE +IW_SCAN_CAPA_TYPE +IW_SCAN_CAPA_TIME +IW_CUSTOM_MAX +IW_GENERIC_IE_MAX +IW_MLME_DEAUTH +IW_MLME_DISASSOC +IW_MLME_AUTH +IW_MLME_ASSOC +IW_AUTH_INDEX +IW_AUTH_FLAGS +IW_AUTH_WPA_VERSION +IW_AUTH_CIPHER_PAIRWISE +IW_AUTH_CIPHER_GROUP +IW_AUTH_KEY_MGMT +IW_AUTH_TKIP_COUNTERMEASURES +IW_AUTH_DROP_UNENCRYPTED +IW_AUTH_80211_AUTH_ALG +IW_AUTH_WPA_ENABLED +IW_AUTH_RX_UNENCRYPTED_EAPOL +IW_AUTH_ROAMING_CONTROL +IW_AUTH_PRIVACY_INVOKED +IW_AUTH_CIPHER_GROUP_MGMT +IW_AUTH_MFP +IW_AUTH_WPA_VERSION_DISABLED +IW_AUTH_WPA_VERSION_WPA +IW_AUTH_WPA_VERSION_WPA2 +IW_AUTH_CIPHER_NONE +IW_AUTH_CIPHER_WEP40 +IW_AUTH_CIPHER_TKIP +IW_AUTH_CIPHER_CCMP +IW_AUTH_CIPHER_WEP104 +IW_AUTH_CIPHER_AES_CMAC +IW_AUTH_KEY_MGMT_802_1X +IW_AUTH_KEY_MGMT_PSK +IW_AUTH_ALG_OPEN_SYSTEM +IW_AUTH_ALG_SHARED_KEY +IW_AUTH_ALG_LEAP +IW_AUTH_ROAMING_ENABLE +IW_AUTH_ROAMING_DISABLE +IW_AUTH_MFP_DISABLED +IW_AUTH_MFP_OPTIONAL +IW_AUTH_MFP_REQUIRED +IW_ENCODE_SEQ_MAX_SIZE +IW_ENCODE_ALG_NONE +IW_ENCODE_ALG_WEP +IW_ENCODE_ALG_TKIP +IW_ENCODE_ALG_CCMP +IW_ENCODE_ALG_PMK +IW_ENCODE_ALG_AES_CMAC +IW_ENCODE_EXT_TX_SEQ_VALID +IW_ENCODE_EXT_RX_SEQ_VALID +IW_ENCODE_EXT_GROUP_KEY +IW_ENCODE_EXT_SET_TX_KEY +IW_MICFAILURE_KEY_ID +IW_MICFAILURE_GROUP +IW_MICFAILURE_PAIRWISE +IW_MICFAILURE_STAKEY +IW_MICFAILURE_COUNT +IW_ENC_CAPA_WPA +IW_ENC_CAPA_WPA2 +IW_ENC_CAPA_CIPHER_TKIP +IW_ENC_CAPA_CIPHER_CCMP +IW_ENC_CAPA_4WAY_HANDSHAKE +IW_EVENT_CAPA_BASE +IW_EVENT_CAPA_INDEX +IW_EVENT_CAPA_MASK +IW_EVENT_CAPA_K_0 +IW_EVENT_CAPA_K_1 +IW_PMKSA_ADD +IW_PMKSA_REMOVE +IW_PMKSA_FLUSH +IW_PMKID_LEN +IW_PMKID_CAND_PREAUTH +IW_EV_CHAR_PK_LEN +IW_EV_LCP_PK_LEN +IW_EV_POINT_PK_LEN SI_LOAD_SHIFT SND_CNT SND_MAX diff --git a/src/unix/linux_like/linux/mod.rs b/src/unix/linux_like/linux/mod.rs index 53977182cc8fa..0313389bc0c6b 100644 --- a/src/unix/linux_like/linux/mod.rs +++ b/src/unix/linux_like/linux/mod.rs @@ -2820,6 +2820,322 @@ pub const SIOCSIFMAP: ::c_ulong = 0x00008971; pub const SIOCSHWTSTAMP: ::c_ulong = 0x000089b0; pub const SIOCGHWTSTAMP: ::c_ulong = 0x000089b1; +// wireless.h +pub const WIRELESS_EXT: c_ulong = 0x16; + +pub const SIOCSIWCOMMIT: c_ulong = 0x8B00; +pub const SIOCGIWNAME: c_ulong = 0x8B01; + +pub const SIOCSIWNWID: c_ulong = 0x8B02; +pub const SIOCGIWNWID: c_ulong = 0x8B03; +pub const SIOCSIWFREQ: c_ulong = 0x8B04; +pub const SIOCGIWFREQ: c_ulong = 0x8B05; +pub const SIOCSIWMODE: c_ulong = 0x8B06; +pub const SIOCGIWMODE: c_ulong = 0x8B07; +pub const SIOCSIWSENS: c_ulong = 0x8B08; +pub const SIOCGIWSENS: c_ulong = 0x8B09; + +pub const SIOCSIWRANGE: c_ulong = 0x8B0A; +pub const SIOCGIWRANGE: c_ulong = 0x8B0B; +pub const SIOCSIWPRIV: c_ulong = 0x8B0C; +pub const SIOCGIWPRIV: c_ulong = 0x8B0D; +pub const SIOCSIWSTATS: c_ulong = 0x8B0E; +pub const SIOCGIWSTATS: c_ulong = 0x8B0F; + +pub const SIOCSIWSPY: c_ulong = 0x8B10; +pub const SIOCGIWSPY: c_ulong = 0x8B11; +pub const SIOCSIWTHRSPY: c_ulong = 0x8B12; +pub const SIOCGIWTHRSPY: c_ulong = 0x8B13; + +pub const SIOCSIWAP: c_ulong = 0x8B14; +pub const SIOCGIWAP: c_ulong = 0x8B15; +pub const SIOCGIWAPLIST: c_ulong = 0x8B17; +pub const SIOCSIWSCAN: c_ulong = 0x8B18; +pub const SIOCGIWSCAN: c_ulong = 0x8B19; + +pub const SIOCSIWESSID: c_ulong = 0x8B1A; +pub const SIOCGIWESSID: c_ulong = 0x8B1B; +pub const SIOCSIWNICKN: c_ulong = 0x8B1C; +pub const SIOCGIWNICKN: c_ulong = 0x8B1D; + +pub const SIOCSIWRATE: c_ulong = 0x8B20; +pub const SIOCGIWRATE: c_ulong = 0x8B21; +pub const SIOCSIWRTS: c_ulong = 0x8B22; +pub const SIOCGIWRTS: c_ulong = 0x8B23; +pub const SIOCSIWFRAG: c_ulong = 0x8B24; +pub const SIOCGIWFRAG: c_ulong = 0x8B25; +pub const SIOCSIWTXPOW: c_ulong = 0x8B26; +pub const SIOCGIWTXPOW: c_ulong = 0x8B27; +pub const SIOCSIWRETRY: c_ulong = 0x8B28; +pub const SIOCGIWRETRY: c_ulong = 0x8B29; + +pub const SIOCSIWENCODE: c_ulong = 0x8B2A; +pub const SIOCGIWENCODE: c_ulong = 0x8B2B; + +pub const SIOCSIWPOWER: c_ulong = 0x8B2C; +pub const SIOCGIWPOWER: c_ulong = 0x8B2D; + +pub const SIOCSIWGENIE: c_ulong = 0x8B30; +pub const SIOCGIWGENIE: c_ulong = 0x8B31; + +pub const SIOCSIWMLME: c_ulong = 0x8B16; + +pub const SIOCSIWAUTH: c_ulong = 0x8B32; +pub const SIOCGIWAUTH: c_ulong = 0x8B33; + +pub const SIOCSIWENCODEEXT: c_ulong = 0x8B34; +pub const SIOCGIWENCODEEXT: c_ulong = 0x8B35; + +pub const SIOCSIWPMKSA: c_ulong = 0x8B36; + +pub const SIOCIWFIRSTPRIV: c_ulong = 0x8BE0; +pub const SIOCIWLASTPRIV: c_ulong = 0x8BFF; + +pub const SIOCIWFIRST: c_ulong = 0x8B00; +pub const SIOCIWLAST: c_ulong = SIOCIWLASTPRIV; +pub const fn IW_IOCTL_IDX(cmd: ::c_ulong) -> ::c_ulong { + cmd - SIOCIWFIRST +} +pub const fn IW_IS_SET(cmd: ::c_ulong) -> ::c_ulong { + !(cmd & 0x1) +} +pub const fn IW_IS_GET(cmd: ::c_ulong) -> ::c_ulong { + cmd & 0x1 +} + +pub const IWEVTXDROP: c_ulong = 0x8C00; +pub const IWEVQUAL: c_ulong = 0x8C01; +pub const IWEVCUSTOM: c_ulong = 0x8C02; +pub const IWEVREGISTERED: c_ulong = 0x8C03; +pub const IWEVEXPIRED: c_ulong = 0x8C04; +pub const IWEVGENIE: c_ulong = 0x8C05; +pub const IWEVMICHAELMICFAILURE: c_ulong = 0x8C06; +pub const IWEVASSOCREQIE: c_ulong = 0x8C07; +pub const IWEVASSOCRESPIE: c_ulong = 0x8C08; +pub const IWEVPMKIDCAND: c_ulong = 0x8C09; +pub const IWEVFIRST: c_ulong = 0x8C00; +pub const fn IW_EVENT_IDX(cmd: ::c_ulong) -> ::c_ulong { + cmd - IWEVFIRST +} + +pub const IW_PRIV_TYPE_MASK: c_ulong = 0x7000; +pub const IW_PRIV_TYPE_NONE: c_ulong = 0x0000; +pub const IW_PRIV_TYPE_BYTE: c_ulong = 0x1000; +pub const IW_PRIV_TYPE_CHAR: c_ulong = 0x2000; +pub const IW_PRIV_TYPE_INT: c_ulong = 0x4000; +pub const IW_PRIV_TYPE_FLOAT: c_ulong = 0x5000; +pub const IW_PRIV_TYPE_ADDR: c_ulong = 0x6000; + +pub const IW_PRIV_SIZE_FIXED: c_ulong = 0x0800; + +pub const IW_PRIV_SIZE_MASK: c_ulong = 0x07FF; + +pub const IW_MAX_FREQUENCIES: usize = 32; +pub const IW_MAX_BITRATES: usize = 32; +pub const IW_MAX_TXPOWER: usize = 8; +pub const IW_MAX_SPY: usize = 8; +pub const IW_MAX_AP: usize = 64; +pub const IW_ESSID_MAX_SIZE: usize = 32; + +pub const IW_MODE_AUTO: usize = 0; +pub const IW_MODE_ADHOC: usize = 1; +pub const IW_MODE_INFRA: usize = 2; +pub const IW_MODE_MASTER: usize = 3; +pub const IW_MODE_REPEAT: usize = 4; +pub const IW_MODE_SECOND: usize = 5; +pub const IW_MODE_MONITOR: usize = 6; +pub const IW_MODE_MESH: usize = 7; + +pub const IW_QUAL_QUAL_UPDATED: c_ulong = 0x01; +pub const IW_QUAL_LEVEL_UPDATED: c_ulong = 0x02; +pub const IW_QUAL_NOISE_UPDATED: c_ulong = 0x04; +pub const IW_QUAL_ALL_UPDATED: c_ulong = 0x07; +pub const IW_QUAL_DBM: c_ulong = 0x08; +pub const IW_QUAL_QUAL_INVALID: c_ulong = 0x10; +pub const IW_QUAL_LEVEL_INVALID: c_ulong = 0x20; +pub const IW_QUAL_NOISE_INVALID: c_ulong = 0x40; +pub const IW_QUAL_RCPI: c_ulong = 0x80; +pub const IW_QUAL_ALL_INVALID: c_ulong = 0x70; + +pub const IW_FREQ_AUTO: c_ulong = 0x00; +pub const IW_FREQ_FIXED: c_ulong = 0x01; + +pub const IW_MAX_ENCODING_SIZES: usize = 8; +pub const IW_ENCODING_TOKEN_MAX: usize = 64; + +pub const IW_ENCODE_INDEX: c_ulong = 0x00FF; +pub const IW_ENCODE_FLAGS: c_ulong = 0xFF00; +pub const IW_ENCODE_MODE: c_ulong = 0xF000; +pub const IW_ENCODE_DISABLED: c_ulong = 0x8000; +pub const IW_ENCODE_ENABLED: c_ulong = 0x0000; +pub const IW_ENCODE_RESTRICTED: c_ulong = 0x4000; +pub const IW_ENCODE_OPEN: c_ulong = 0x2000; +pub const IW_ENCODE_NOKEY: c_ulong = 0x0800; +pub const IW_ENCODE_TEMP: c_ulong = 0x0400; + +pub const IW_POWER_ON: c_ulong = 0x0000; +pub const IW_POWER_TYPE: c_ulong = 0xF000; +pub const IW_POWER_PERIOD: c_ulong = 0x1000; +pub const IW_POWER_TIMEOUT: c_ulong = 0x2000; +pub const IW_POWER_MODE: c_ulong = 0x0F00; +pub const IW_POWER_UNICAST_R: c_ulong = 0x0100; +pub const IW_POWER_MULTICAST_R: c_ulong = 0x0200; +pub const IW_POWER_ALL_R: c_ulong = 0x0300; +pub const IW_POWER_FORCE_S: c_ulong = 0x0400; +pub const IW_POWER_REPEATER: c_ulong = 0x0800; +pub const IW_POWER_MODIFIER: c_ulong = 0x000F; +pub const IW_POWER_MIN: c_ulong = 0x0001; +pub const IW_POWER_MAX: c_ulong = 0x0002; +pub const IW_POWER_RELATIVE: c_ulong = 0x0004; + +pub const IW_TXPOW_TYPE: c_ulong = 0x00FF; +pub const IW_TXPOW_DBM: c_ulong = 0x0000; +pub const IW_TXPOW_MWATT: c_ulong = 0x0001; +pub const IW_TXPOW_RELATIVE: c_ulong = 0x0002; +pub const IW_TXPOW_RANGE: c_ulong = 0x1000; + +pub const IW_RETRY_ON: c_ulong = 0x0000; +pub const IW_RETRY_TYPE: c_ulong = 0xF000; +pub const IW_RETRY_LIMIT: c_ulong = 0x1000; +pub const IW_RETRY_LIFETIME: c_ulong = 0x2000; +pub const IW_RETRY_MODIFIER: c_ulong = 0x00FF; +pub const IW_RETRY_MIN: c_ulong = 0x0001; +pub const IW_RETRY_MAX: c_ulong = 0x0002; +pub const IW_RETRY_RELATIVE: c_ulong = 0x0004; +pub const IW_RETRY_SHORT: c_ulong = 0x0010; +pub const IW_RETRY_LONG: c_ulong = 0x0020; + +pub const IW_SCAN_DEFAULT: c_ulong = 0x0000; +pub const IW_SCAN_ALL_ESSID: c_ulong = 0x0001; +pub const IW_SCAN_THIS_ESSID: c_ulong = 0x0002; +pub const IW_SCAN_ALL_FREQ: c_ulong = 0x0004; +pub const IW_SCAN_THIS_FREQ: c_ulong = 0x0008; +pub const IW_SCAN_ALL_MODE: c_ulong = 0x0010; +pub const IW_SCAN_THIS_MODE: c_ulong = 0x0020; +pub const IW_SCAN_ALL_RATE: c_ulong = 0x0040; +pub const IW_SCAN_THIS_RATE: c_ulong = 0x0080; + +pub const IW_SCAN_TYPE_ACTIVE: usize = 0; +pub const IW_SCAN_TYPE_PASSIVE: usize = 1; + +pub const IW_SCAN_MAX_DATA: usize = 4096; + +pub const IW_SCAN_CAPA_NONE: c_ulong = 0x00; +pub const IW_SCAN_CAPA_ESSID: c_ulong = 0x01; +pub const IW_SCAN_CAPA_BSSID: c_ulong = 0x02; +pub const IW_SCAN_CAPA_CHANNEL: c_ulong = 0x04; +pub const IW_SCAN_CAPA_MODE: c_ulong = 0x08; +pub const IW_SCAN_CAPA_RATE: c_ulong = 0x10; +pub const IW_SCAN_CAPA_TYPE: c_ulong = 0x20; +pub const IW_SCAN_CAPA_TIME: c_ulong = 0x40; + +pub const IW_CUSTOM_MAX: c_ulong = 256; + +pub const IW_GENERIC_IE_MAX: c_ulong = 1024; + +pub const IW_MLME_DEAUTH: c_ulong = 0; +pub const IW_MLME_DISASSOC: c_ulong = 1; +pub const IW_MLME_AUTH: c_ulong = 2; +pub const IW_MLME_ASSOC: c_ulong = 3; + +pub const IW_AUTH_INDEX: c_ulong = 0x0FFF; +pub const IW_AUTH_FLAGS: c_ulong = 0xF000; + +pub const IW_AUTH_WPA_VERSION: usize = 0; +pub const IW_AUTH_CIPHER_PAIRWISE: usize = 1; +pub const IW_AUTH_CIPHER_GROUP: usize = 2; +pub const IW_AUTH_KEY_MGMT: usize = 3; +pub const IW_AUTH_TKIP_COUNTERMEASURES: usize = 4; +pub const IW_AUTH_DROP_UNENCRYPTED: usize = 5; +pub const IW_AUTH_80211_AUTH_ALG: usize = 6; +pub const IW_AUTH_WPA_ENABLED: usize = 7; +pub const IW_AUTH_RX_UNENCRYPTED_EAPOL: usize = 8; +pub const IW_AUTH_ROAMING_CONTROL: usize = 9; +pub const IW_AUTH_PRIVACY_INVOKED: usize = 10; +pub const IW_AUTH_CIPHER_GROUP_MGMT: usize = 11; +pub const IW_AUTH_MFP: usize = 12; + +pub const IW_AUTH_WPA_VERSION_DISABLED: c_ulong = 0x00000001; +pub const IW_AUTH_WPA_VERSION_WPA: c_ulong = 0x00000002; +pub const IW_AUTH_WPA_VERSION_WPA2: c_ulong = 0x00000004; + +pub const IW_AUTH_CIPHER_NONE: c_ulong = 0x00000001; +pub const IW_AUTH_CIPHER_WEP40: c_ulong = 0x00000002; +pub const IW_AUTH_CIPHER_TKIP: c_ulong = 0x00000004; +pub const IW_AUTH_CIPHER_CCMP: c_ulong = 0x00000008; +pub const IW_AUTH_CIPHER_WEP104: c_ulong = 0x00000010; +pub const IW_AUTH_CIPHER_AES_CMAC: c_ulong = 0x00000020; + +pub const IW_AUTH_KEY_MGMT_802_1X: usize = 1; +pub const IW_AUTH_KEY_MGMT_PSK: usize = 2; + +pub const IW_AUTH_ALG_OPEN_SYSTEM: c_ulong = 0x00000001; +pub const IW_AUTH_ALG_SHARED_KEY: c_ulong = 0x00000002; +pub const IW_AUTH_ALG_LEAP: c_ulong = 0x00000004; + +pub const IW_AUTH_ROAMING_ENABLE: usize = 0; +pub const IW_AUTH_ROAMING_DISABLE: usize = 1; + +pub const IW_AUTH_MFP_DISABLED: usize = 0; +pub const IW_AUTH_MFP_OPTIONAL: usize = 1; +pub const IW_AUTH_MFP_REQUIRED: usize = 2; + +pub const IW_ENCODE_SEQ_MAX_SIZE: usize = 8; + +pub const IW_ENCODE_ALG_NONE: usize = 0; +pub const IW_ENCODE_ALG_WEP: usize = 1; +pub const IW_ENCODE_ALG_TKIP: usize = 2; +pub const IW_ENCODE_ALG_CCMP: usize = 3; +pub const IW_ENCODE_ALG_PMK: usize = 4; +pub const IW_ENCODE_ALG_AES_CMAC: usize = 5; + +pub const IW_ENCODE_EXT_TX_SEQ_VALID: c_ulong = 0x00000001; +pub const IW_ENCODE_EXT_RX_SEQ_VALID: c_ulong = 0x00000002; +pub const IW_ENCODE_EXT_GROUP_KEY: c_ulong = 0x00000004; +pub const IW_ENCODE_EXT_SET_TX_KEY: c_ulong = 0x00000008; + +pub const IW_MICFAILURE_KEY_ID: c_ulong = 0x00000003; +pub const IW_MICFAILURE_GROUP: c_ulong = 0x00000004; +pub const IW_MICFAILURE_PAIRWISE: c_ulong = 0x00000008; +pub const IW_MICFAILURE_STAKEY: c_ulong = 0x00000010; +pub const IW_MICFAILURE_COUNT: c_ulong = 0x00000060; + +pub const IW_ENC_CAPA_WPA: c_ulong = 0x00000001; +pub const IW_ENC_CAPA_WPA2: c_ulong = 0x00000002; +pub const IW_ENC_CAPA_CIPHER_TKIP: c_ulong = 0x00000004; +pub const IW_ENC_CAPA_CIPHER_CCMP: c_ulong = 0x00000008; +pub const IW_ENC_CAPA_4WAY_HANDSHAKE: c_ulong = 0x00000010; + +pub const fn IW_EVENT_CAPA_BASE(cmd: ::c_ulong) -> ::c_ulong { + if cmd >= SIOCIWFIRSTPRIV { + cmd - SIOCIWFIRSTPRIV + 0x60 + } else { + cmd - SIOCIWFIRST + } +} +pub const fn IW_EVENT_CAPA_INDEX(cmd: ::c_ulong) -> ::c_ulong { + IW_EVENT_CAPA_BASE(cmd) >> 5 +} +pub const fn IW_EVENT_CAPA_MASK(cmd: ::c_ulong) -> ::c_ulong { + 1 << (IW_EVENT_CAPA_BASE(cmd) & 0x1F) +} +pub const IW_EVENT_CAPA_K_0: c_ulong = + IW_EVENT_CAPA_MASK(0x8B04) | IW_EVENT_CAPA_MASK(0x8B06) | IW_EVENT_CAPA_MASK(0x8B1A); +pub const IW_EVENT_CAPA_K_1: c_ulong = IW_EVENT_CAPA_MASK(0x8B2A); + +pub const IW_PMKSA_ADD: usize = 1; +pub const IW_PMKSA_REMOVE: usize = 2; +pub const IW_PMKSA_FLUSH: usize = 3; + +pub const IW_PMKID_LEN: usize = 16; + +pub const IW_PMKID_CAND_PREAUTH: c_ulong = 0x00000001; + +pub const IW_EV_LCP_PK_LEN: usize = 4; + +pub const IW_EV_CHAR_PK_LEN: usize = IW_EV_LCP_PK_LEN + ::IFNAMSIZ; +pub const IW_EV_POINT_PK_LEN: usize = IW_EV_LCP_PK_LEN + 4; + pub const IPTOS_TOS_MASK: u8 = 0x1E; pub const IPTOS_PREC_MASK: u8 = 0xE0;