@@ -1010,9 +1010,153 @@ cfg_if! {
1010
1010
pub r_addend: Elf64_Sxword ,
1011
1011
}
1012
1012
}
1013
+
1014
+ // linux/wireless.h
1015
+
1016
+ pub struct iw_param {
1017
+ pub value: __s32,
1018
+ pub fixed: __u8,
1019
+ pub disabled: __u8,
1020
+ pub flags: __u16,
1021
+ }
1022
+ pub struct iw_point {
1023
+ pub pointer: * mut :: c_void,
1024
+ pub length: __u16,
1025
+ pub flags: __u16,
1026
+ }
1027
+ pub struct iw_freq {
1028
+ pub m: __s32,
1029
+ pub e: __s16,
1030
+ pub i: __u8,
1031
+ pub flags: __u8,
1032
+ }
1033
+ pub struct iw_quality {
1034
+ pub qual: __u8,
1035
+ pub level: __u8,
1036
+ pub noise: __u8,
1037
+ pub updated: __u8,
1038
+ }
1039
+ pub struct iw_discarded {
1040
+ pub nwid: __u32,
1041
+ pub code: __u32,
1042
+ pub fragment: __u32,
1043
+ pub retries: __u32,
1044
+ pubmisc: __u32,
1045
+ }
1046
+ pub struct iw_missed {
1047
+ pub beacon: __u32,
1048
+ }
1049
+ pub struct iw_scan_req {
1050
+ pub scan_type: __u8,
1051
+ pub essid_len: __u8,
1052
+ pub num_channels: __u8,
1053
+ pub flags: __u8,
1054
+ pub bssid: :: sockaddr,
1055
+ pub essid: [ __u8; IW_ESSID_MAX_SIZE ] ,
1056
+ pub min_channel_time: __u32,
1057
+ pub max_channel_time: __u32,
1058
+ pub channel_list: [ iw_freq; IW_MAX_FREQUENCIES ] ,
1059
+ }
1060
+ pub struct iw_encode_ext {
1061
+ pub ext_flags: __u32,
1062
+ pub tx_seq: [ __u8; IW_ENCODE_SEQ_MAX_SIZE ] ,
1063
+ pub rx_seq: [ __u8; IW_ENCODE_SEQ_MAX_SIZE ] ,
1064
+ pub addr: :: sockaddr,
1065
+ pub alg: __u16,
1066
+ pub key_len: __u16,
1067
+ pub key: [ __u8; 0 ] ,
1068
+ }
1069
+ pub struct iw_pmksa {
1070
+ pub cmd: __u32,
1071
+ pub bssid: :: sockaddr,
1072
+ pub pmkid: [ __u8; IW_PMKID_LEN ] ,
1073
+ }
1074
+ pub struct iw_pmkid_cand {
1075
+ pub flags: __u32,
1076
+ pub index: __u32,
1077
+ pub bssid: :: sockaddr,
1078
+ }
1079
+ pub struct iw_statistics {
1080
+ pub status: __u16,
1081
+ pub qual: iw_quality,
1082
+ pub discard: iw_discarded,
1083
+ pub miss: iw_missed,
1084
+ }
1085
+ pub struct iw_range {
1086
+ pub throughput: __u32,
1087
+ pub min_nwid: __u32,
1088
+ pub max_nwid: __u32,
1089
+ pub old_num_channels: __u16,
1090
+ pub old_num_frequency: __u8,
1091
+ pub scan_capa: __u8,
1092
+ pub event_capa: [ __u32; 6 ] ,
1093
+ pub sensitivity: __s32,
1094
+ pub max_qual: iw_quality,
1095
+ pub avg_qual: iw_quality,
1096
+ pub num_bitrates: __u8,
1097
+ pub bitrate: [ __s32; IW_MAX_BITRATES ] ,
1098
+ pub min_rts: __s32,
1099
+ pub max_rts: __s32,
1100
+ pub min_frag: __s32,
1101
+ pub max_frag: __s32,
1102
+ pub min_pmp: __s32,
1103
+ pub max_pmp: __s32,
1104
+ pub min_pmt: __s32,
1105
+ pub max_pmt: __s32,
1106
+ pub pmp_flags: __u16,
1107
+ pub pmt_flags: __u16,
1108
+ pub pm_capa: __u16,
1109
+ pub encoding_size: [ __u16; IW_MAX_ENCODING_SIZES ] ,
1110
+ pub num_encoding_sizes: __u8,
1111
+ pub max_encoding_tokens: __u8,
1112
+ pub encoding_login_index: __u8,
1113
+ pub txpower_capa: __u16,
1114
+ pub num_txpower: __u8,
1115
+ pub txpower: [ __s32; IW_MAX_TXPOWER ] ,
1116
+ pub we_version_compiled: __u8,
1117
+ pub we_version_source: __u8,
1118
+ pub retry_capa: __u16,
1119
+ pub retry_flags: __u16,
1120
+ pub r_time_flags: __u16,
1121
+ pub min_retry: __s32,
1122
+ pub max_retry: __s32,
1123
+ pub min_r_time: __s32,
1124
+ pub max_r_time: __s32,
1125
+ pub num_channels: __u16,
1126
+ pub num_frequency: __u8,
1127
+ pub freq: [ iw_freq; IW_MAX_FREQUENCIES ] ,
1128
+ pub enc_capa: __u32,
1129
+ }
1130
+ pub struct iw_priv_args {
1131
+ pub cmd: __u32,
1132
+ pub set_args: __u16,
1133
+ pub get_args: __u16,
1134
+ pub name: [ c_char; :: IFNAMSIZ ] ,
1013
1135
}
1014
1136
}
1015
1137
1138
+ cfg_if! {
1139
+ if #[ cfg( not( target_arch = "sparc64" ) ) ] {
1140
+ s!{
1141
+ pub struct iw_thrspy {
1142
+ pub addr: :: sockaddr,
1143
+ pub qual: iw_quality,
1144
+ pub low: iw_quality,
1145
+ pub high: iw_quality,
1146
+ }
1147
+ pub struct iw_mlme {
1148
+ pub cmd: __u16,
1149
+ pub reason_code: __u16,
1150
+ pub addr: :: sockaddr,
1151
+ }
1152
+ pub struct iw_michaelmicfailure {
1153
+ pub flags: __u32,
1154
+ pub src_addr: :: sockaddr,
1155
+ pub tsc: [ __u8; IW_ENCODE_SEQ_MAX_SIZE ] ,
1156
+ }
1157
+ }
1158
+ }
1159
+ }
1016
1160
s_no_extra_traits! {
1017
1161
pub struct sockaddr_nl {
1018
1162
pub nl_family: :: sa_family_t,
@@ -1325,6 +1469,45 @@ s_no_extra_traits! {
1325
1469
}
1326
1470
}
1327
1471
1472
+ s_no_extra_traits! {
1473
+ // linux/wireless.h
1474
+ pub union iwreq_data {
1475
+ pub name: [ c_char; :: IFNAMSIZ ] ,
1476
+ pub essid: iw_point,
1477
+ pub nwid: iw_param,
1478
+ pub freq: iw_freq,
1479
+ pub sens: iw_param,
1480
+ pub bitrate: iw_param,
1481
+ pub txpower: iw_param,
1482
+ pub rts: iw_param,
1483
+ pub frag: iw_param,
1484
+ pub mode: __u32,
1485
+ pub retry: iw_param,
1486
+ pub encoding: iw_point,
1487
+ pub power: iw_param,
1488
+ pub qual: iw_quality,
1489
+ pub ap_addr: :: sockaddr,
1490
+ pub addr: :: sockaddr,
1491
+ pub param: iw_param,
1492
+ pub data: iw_point,
1493
+ }
1494
+
1495
+ pub struct iw_event {
1496
+ pub len: __u16,
1497
+ pub cmd: __u16,
1498
+ pub u: iwreq_data,
1499
+ }
1500
+
1501
+ pub union __c_anonymous_iwreq {
1502
+ pub ifrn_name: [ c_char; :: IFNAMSIZ ] ,
1503
+ }
1504
+
1505
+ pub struct iwreq {
1506
+ pub ifr_ifrn: __c_anonymous_iwreq,
1507
+ pub u: iwreq_data,
1508
+ }
1509
+ }
1510
+
1328
1511
cfg_if! {
1329
1512
if #[ cfg( feature = "extra_traits" ) ] {
1330
1513
impl PartialEq for sockaddr_nl {
@@ -1797,6 +1980,57 @@ cfg_if! {
1797
1980
self . sched_period. hash( state) ;
1798
1981
}
1799
1982
}
1983
+ impl :: fmt:: Debug for iwreq_data {
1984
+ fn fmt( & self , f: & mut :: fmt:: Formatter ) -> :: fmt:: Result {
1985
+ f. debug_struct( "iwreq_data" )
1986
+ . field( "name" , unsafe { & self . name } )
1987
+ . field( "essid" , unsafe { & self . essid } )
1988
+ . field( "nwid" , unsafe { & self . nwid } )
1989
+ . field( "freq" , unsafe { & self . freq } )
1990
+ . field( "sens" , unsafe { & self . sens } )
1991
+ . field( "bitrate" , unsafe { & self . bitrate } )
1992
+ . field( "txpower" , unsafe { & self . txpower } )
1993
+ . field( "rts" , unsafe { & self . rts } )
1994
+ . field( "frag" , unsafe { & self . frag } )
1995
+ . field( "mode" , unsafe { & self . mode } )
1996
+ . field( "retry" , unsafe { & self . retry } )
1997
+ . field( "encoding" , unsafe { & self . encoding } )
1998
+ . field( "power" , unsafe { & self . power } )
1999
+ . field( "qual" , unsafe { & self . qual } )
2000
+ . field( "ap_addr" , unsafe { & self . ap_addr } )
2001
+ . field( "addr" , unsafe { & self . addr } )
2002
+ . field( "param" , unsafe { & self . param } )
2003
+ . field( "data" , unsafe { & self . data } )
2004
+ . finish( )
2005
+ }
2006
+ }
2007
+
2008
+ impl :: fmt:: Debug for iw_event {
2009
+ fn fmt( & self , f: & mut :: fmt:: Formatter ) -> :: fmt:: Result {
2010
+ f. debug_struct( "iw_event" )
2011
+ . field( "len" , & self . len )
2012
+ . field( "cmd" , & self . cmd )
2013
+ . field( "u" , & self . u )
2014
+ . finish( )
2015
+ }
2016
+ }
2017
+
2018
+ impl :: fmt:: Debug for __c_anonymous_iwreq {
2019
+ fn fmt( & self , f: & mut :: fmt:: Formatter ) -> :: fmt:: Result {
2020
+ f. debug_struct( "__c_anonymous_iwreq" )
2021
+ . field( "ifrn_name" , unsafe { & self . ifrn_name } )
2022
+ . finish( )
2023
+ }
2024
+ }
2025
+
2026
+ impl :: fmt:: Debug for iwreq {
2027
+ fn fmt( & self , f: & mut :: fmt:: Formatter ) -> :: fmt:: Result {
2028
+ f. debug_struct( "iwreq" )
2029
+ . field( "ifr_ifrn" , & self . ifr_ifrn )
2030
+ . field( "u" , & self . u )
2031
+ . finish( )
2032
+ }
2033
+ }
1800
2034
}
1801
2035
}
1802
2036
@@ -3794,6 +4028,9 @@ pub const IW_ENC_CAPA_CIPHER_TKIP: ::c_ulong = 0x00000004;
3794
4028
pub const IW_ENC_CAPA_CIPHER_CCMP : :: c_ulong = 0x00000008 ;
3795
4029
pub const IW_ENC_CAPA_4WAY_HANDSHAKE : :: c_ulong = 0x00000010 ;
3796
4030
4031
+ pub const IW_EVENT_CAPA_K_0 : c_ulong = 0x4000050 ; // IW_EVENT_CAPA_MASK(0x8B04) | IW_EVENT_CAPA_MASK(0x8B06) | IW_EVENT_CAPA_MASK(0x8B1A);
4032
+ pub const IW_EVENT_CAPA_K_1 : c_ulong = 0x400 ; // W_EVENT_CAPA_MASK(0x8B2A);
4033
+
3797
4034
pub const IW_PMKSA_ADD : usize = 1 ;
3798
4035
pub const IW_PMKSA_REMOVE : usize = 2 ;
3799
4036
pub const IW_PMKSA_FLUSH : usize = 3 ;
@@ -3804,8 +4041,13 @@ pub const IW_PMKID_CAND_PREAUTH: ::c_ulong = 0x00000001;
3804
4041
3805
4042
pub const IW_EV_LCP_PK_LEN : usize = 4 ;
3806
4043
3807
- pub const IW_EV_CHAR_PK_LEN : usize = IW_EV_LCP_PK_LEN + :: IFNAMSIZ ;
3808
- pub const IW_EV_POINT_PK_LEN : usize = IW_EV_LCP_PK_LEN + 4 ;
4044
+ pub const IW_EV_CHAR_PK_LEN : usize = 20 ; // IW_EV_LCP_PK_LEN + ::IFNAMSIZ;
4045
+ pub const IW_EV_UINT_PK_LEN : usize = 8 ; // IW_EV_LCP_PK_LEN + ::mem::size_of::<u32>();
4046
+ pub const IW_EV_FREQ_PK_LEN : usize = 12 ; // IW_EV_LCP_PK_LEN + ::mem::size_of::<iw_freq>();
4047
+ pub const IW_EV_PARAM_PK_LEN : usize = 12 ; // IW_EV_LCP_PK_LEN + ::mem::size_of::<iw_param>();
4048
+ pub const IW_EV_ADDR_PK_LEN : usize = 20 ; // IW_EV_LCP_PK_LEN + ::mem::size_of::<::sockaddr>();
4049
+ pub const IW_EV_QUAL_PK_LEN : usize = 8 ; // IW_EV_LCP_PK_LEN + ::mem::size_of::<iw_quality>();
4050
+ pub const IW_EV_POINT_PK_LEN : usize = 8 ; // IW_EV_LCP_PK_LEN + 4;
3809
4051
3810
4052
pub const IPTOS_TOS_MASK : u8 = 0x1E ;
3811
4053
pub const IPTOS_PREC_MASK : u8 = 0xE0 ;
0 commit comments