@@ -718,6 +718,145 @@ s! {
718718 pub salt: [ :: c_uchar; TLS_CIPHER_CHACHA20_POLY1305_SALT_SIZE ] ,
719719 pub rec_seq: [ :: c_uchar; TLS_CIPHER_CHACHA20_POLY1305_REC_SEQ_SIZE ] ,
720720 }
721+
722+ // linux/wireless.h
723+
724+ pub struct iw_param {
725+ pub value: __s32,
726+ pub fixed: __u8,
727+ pub disabled: __u8,
728+ pub flags: __u16,
729+ }
730+ pub struct iw_point {
731+ pub pointer: * mut :: c_void,
732+ pub length: __u16,
733+ pub flags: __u16,
734+ }
735+ pub struct iw_freq {
736+ pub m: __s32,
737+ pub e: __s16,
738+ pub i: __u8,
739+ pub flags: __u8,
740+ }
741+ pub struct iw_quality {
742+ pub qual: __u8,
743+ pub level: __u8,
744+ pub noise: __u8,
745+ pub updated: __u8,
746+ }
747+ pub struct iw_discarded {
748+ pub nwid: __u32,
749+ pub code: __u32,
750+ pub fragment: __u32,
751+ pub retries: __u32,
752+ pubmisc: __u32,
753+ }
754+ pub struct iw_missed {
755+ pub beacon: __u32,
756+ }
757+ pub struct iw_thrspy {
758+ pub addr: :: sockaddr,
759+ pub qual: iw_quality,
760+ pub low: iw_quality,
761+ pub high: iw_quality,
762+ }
763+ pub struct iw_scan_req {
764+ pub scan_type: __u8,
765+ pub essid_len: __u8,
766+ pub num_channels: __u8,
767+ pub flags: __u8,
768+ pub bssid: :: sockaddr,
769+ pub essid: [ __u8; IW_ESSID_MAX_SIZE ] ,
770+ pub min_channel_time: __u32,
771+ pub max_channel_time: __u32,
772+ pub channel_list: [ iw_freq; IW_MAX_FREQUENCIES ] ,
773+ }
774+ pub struct iw_encode_ext {
775+ pub ext_flags: __u32,
776+ pub tx_seq: [ __u8; IW_ENCODE_SEQ_MAX_SIZE ] ,
777+ pub rx_seq: [ __u8; IW_ENCODE_SEQ_MAX_SIZE ] ,
778+ pub addr: :: sockaddr,
779+ pub alg: __u16,
780+ pub key_len: __u16,
781+ pub key: [ __u8; 0 ] ,
782+ }
783+ pub struct iw_mlme {
784+ pub cmd: __u16,
785+ pub reason_code: __u16,
786+ pub addr: :: sockaddr,
787+ }
788+ pub struct iw_pmksa {
789+ pub cmd: __u32,
790+ pub bssid: :: sockaddr,
791+ pub pmkid: [ __u8; IW_PMKID_LEN ] ,
792+ }
793+ pub struct iw_michaelmicfailure {
794+ pub flags: __u32,
795+ pub src_addr: :: sockaddr,
796+ pub tsc: [ __u8; IW_ENCODE_SEQ_MAX_SIZE ] ,
797+ }
798+ pub struct iw_pmkid_cand {
799+ pub flags: __u32,
800+ pub index: __u32,
801+ pub bssid: :: sockaddr,
802+ }
803+ pub struct iw_statistics {
804+ pub status: __u16,
805+ pub qual: iw_quality,
806+ pub discard: iw_discarded,
807+ pub miss: iw_missed,
808+ }
809+ pub struct iw_range {
810+ pub throughput: __u32,
811+ pub min_nwid: __u32,
812+ pub max_nwid: __u32,
813+ pub old_num_channels: __u16,
814+ pub old_num_frequency: __u8,
815+ pub scan_capa: __u8,
816+ pub event_capa: [ __u32; 6 ] ,
817+ pub sensitivity: __s32,
818+ pub max_qual: iw_quality,
819+ pub avg_qual: iw_quality,
820+ pub num_bitrates: __u8,
821+ pub bitrate: [ __s32; IW_MAX_BITRATES ] ,
822+ pub min_rts: __s32,
823+ pub max_rts: __s32,
824+ pub min_frag: __s32,
825+ pub max_frag: __s32,
826+ pub min_pmp: __s32,
827+ pub max_pmp: __s32,
828+ pub min_pmt: __s32,
829+ pub max_pmt: __s32,
830+ pub pmp_flags: __u16,
831+ pub pmt_flags: __u16,
832+ pub pm_capa: __u16,
833+ pub encoding_size: [ __u16; IW_MAX_ENCODING_SIZES ] ,
834+ pub num_encoding_sizes: __u8,
835+ pub max_encoding_tokens: __u8,
836+ pub encoding_login_index: __u8,
837+ pub txpower_capa: __u16,
838+ pub num_txpower: __u8,
839+ pub txpower: [ __s32; IW_MAX_TXPOWER ] ,
840+ pub we_version_compiled: __u8,
841+ pub we_version_source: __u8,
842+ pub retry_capa: __u16,
843+ pub retry_flags: __u16,
844+ pub r_time_flags: __u16,
845+ pub min_retry: __s32,
846+ pub max_retry: __s32,
847+ pub min_r_time: __s32,
848+ pub max_r_time: __s32,
849+ pub num_channels: __u16,
850+ pub num_frequency: __u8,
851+ pub freq: [ iw_freq; IW_MAX_FREQUENCIES ] ,
852+ pub enc_capa: __u32,
853+ }
854+ pub struct iw_priv_args {
855+ pub cmd: __u32,
856+ pub set_args: __u16,
857+ pub get_args: __u16,
858+ pub name: [ c_char; :: IFNAMSIZ ] ,
859+ }
721860}
722861
723862s_no_extra_traits ! {
@@ -856,6 +995,52 @@ s_no_extra_traits! {
856995 }
857996}
858997
998+ s_no_extra_traits ! {
999+ // linux/wireless.h
1000+ #[ cfg( libc_union) ]
1001+ pub union iwreq_data {
1002+ pub name: [ c_char; :: IFNAMSIZ ] ,
1003+ pub essid: iw_point,
1004+ pub nwid: iw_param,
1005+ pub freq: iw_freq,
1006+ pub sens: iw_param,
1007+ pub bitrate: iw_param,
1008+ pub txpower: iw_param,
1009+ pub rts: iw_param,
1010+ pub frag: iw_param,
1011+ pub mode: __u32,
1012+ pub retry: iw_param,
1013+ pub encoding: iw_point,
1014+ pub power: iw_param,
1015+ pub qual: iw_quality,
1016+ pub ap_addr: :: sockaddr,
1017+ pub addr: :: sockaddr,
1018+ pub param: iw_param,
1019+ pub data: iw_point,
1020+ }
1021+
1022+ pub struct iw_event {
1023+ pub len: __u16,
1024+ pub cmd: __u16,
1025+ #[ cfg( libc_union) ]
1026+ pub u: iwreq_data,
1027+ #[ cfg( not( libc_union) ) ]
1028+ pub u: [ c_char; :: IFNAMSIZ ] ,
1029+ }
1030+
1031+ #[ cfg( libc_union) ]
1032+ pub union __c_anonymous_iwreq {
1033+ pub ifrn_name: [ c_char; :: IFNAMSIZ ] ,
1034+ }
1035+
1036+ pub struct iwreq {
1037+ #[ cfg( libc_union) ]
1038+ pub ifr_ifrn: __c_anonymous_iwreq,
1039+ #[ cfg( not( libc_union) ) ]
1040+ pub ifr_ifrn: [ c_char; :: IFNAMSIZ ] ,
1041+ pub u: iwreq_data,
1042+ }
1043+ }
8591044s_no_extra_traits ! {
8601045 // linux/net_tstamp.h
8611046 #[ allow( missing_debug_implementations) ]
@@ -1319,6 +1504,59 @@ cfg_if! {
13191504 self . rx_filter. hash( state) ;
13201505 }
13211506 }
1507+ #[ cfg( libc_union) ]
1508+ impl :: fmt:: Debug for iwreq_data {
1509+ fn fmt( & self , f: & mut :: fmt:: Formatter ) -> :: fmt:: Result {
1510+ f. debug_struct( "iwreq_data" )
1511+ . field( "name" , unsafe { & self . name } )
1512+ . field( "essid" , unsafe { & self . essid } )
1513+ . field( "nwid" , unsafe { & self . nwid } )
1514+ . field( "freq" , unsafe { & self . freq } )
1515+ . field( "sens" , unsafe { & self . sens } )
1516+ . field( "bitrate" , unsafe { & self . bitrate } )
1517+ . field( "txpower" , unsafe { & self . txpower } )
1518+ . field( "rts" , unsafe { & self . rts } )
1519+ . field( "frag" , unsafe { & self . frag } )
1520+ . field( "mode" , unsafe { & self . mode } )
1521+ . field( "retry" , unsafe { & self . retry } )
1522+ . field( "encoding" , unsafe { & self . encoding } )
1523+ . field( "power" , unsafe { & self . power } )
1524+ . field( "qual" , unsafe { & self . qual } )
1525+ . field( "ap_addr" , unsafe { & self . ap_addr } )
1526+ . field( "addr" , unsafe { & self . addr } )
1527+ . field( "param" , unsafe { & self . param } )
1528+ . field( "data" , unsafe { & self . data } )
1529+ . finish( )
1530+ }
1531+ }
1532+
1533+ impl :: fmt:: Debug for iw_event {
1534+ fn fmt( & self , f: & mut :: fmt:: Formatter ) -> :: fmt:: Result {
1535+ f. debug_struct( "iw_event" )
1536+ . field( "len" , & self . len )
1537+ . field( "cmd" , & self . cmd )
1538+ . field( "u" , & self . u )
1539+ . finish( )
1540+ }
1541+ }
1542+
1543+ #[ cfg( libc_union) ]
1544+ impl :: fmt:: Debug for __c_anonymous_iwreq {
1545+ fn fmt( & self , f: & mut :: fmt:: Formatter ) -> :: fmt:: Result {
1546+ f. debug_struct( "__c_anonymous_iwreq" )
1547+ . field( "ifrn_name" , unsafe { & self . ifrn_name } )
1548+ . finish( )
1549+ }
1550+ }
1551+
1552+ impl :: fmt:: Debug for iwreq {
1553+ fn fmt( & self , f: & mut :: fmt:: Formatter ) -> :: fmt:: Result {
1554+ f. debug_struct( "iwreq" )
1555+ . field( "ifr_ifrn" , & self . ifr_ifrn )
1556+ . field( "u" , & self . u )
1557+ . finish( )
1558+ }
1559+ }
13221560 }
13231561}
13241562
@@ -3165,6 +3403,9 @@ pub const IW_ENC_CAPA_CIPHER_TKIP: ::c_ulong = 0x00000004;
31653403pub const IW_ENC_CAPA_CIPHER_CCMP : :: c_ulong = 0x00000008 ;
31663404pub const IW_ENC_CAPA_4WAY_HANDSHAKE : :: c_ulong = 0x00000010 ;
31673405
3406+ 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);
3407+ pub const IW_EVENT_CAPA_K_1 : c_ulong = 0x400 ; // W_EVENT_CAPA_MASK(0x8B2A);
3408+
31683409pub const IW_PMKSA_ADD : usize = 1 ;
31693410pub const IW_PMKSA_REMOVE : usize = 2 ;
31703411pub const IW_PMKSA_FLUSH : usize = 3 ;
@@ -3175,8 +3416,13 @@ pub const IW_PMKID_CAND_PREAUTH: ::c_ulong = 0x00000001;
31753416
31763417pub const IW_EV_LCP_PK_LEN : usize = 4 ;
31773418
3178- pub const IW_EV_CHAR_PK_LEN : usize = IW_EV_LCP_PK_LEN + :: IFNAMSIZ ;
3179- pub const IW_EV_POINT_PK_LEN : usize = IW_EV_LCP_PK_LEN + 4 ;
3419+ pub const IW_EV_CHAR_PK_LEN : usize = 20 ; // IW_EV_LCP_PK_LEN + ::IFNAMSIZ;
3420+ pub const IW_EV_UINT_PK_LEN : usize = 8 ; // IW_EV_LCP_PK_LEN + ::mem::size_of::<u32>();
3421+ pub const IW_EV_FREQ_PK_LEN : usize = 12 ; // IW_EV_LCP_PK_LEN + ::mem::size_of::<iw_freq>();
3422+ pub const IW_EV_PARAM_PK_LEN : usize = 12 ; // IW_EV_LCP_PK_LEN + ::mem::size_of::<iw_param>();
3423+ pub const IW_EV_ADDR_PK_LEN : usize = 20 ; // IW_EV_LCP_PK_LEN + ::mem::size_of::<::sockaddr>();
3424+ pub const IW_EV_QUAL_PK_LEN : usize = 8 ; // IW_EV_LCP_PK_LEN + ::mem::size_of::<iw_quality>();
3425+ pub const IW_EV_POINT_PK_LEN : usize = 8 ; // IW_EV_LCP_PK_LEN + 4;
31803426
31813427pub const IPTOS_TOS_MASK : u8 = 0x1E ;
31823428pub const IPTOS_PREC_MASK : u8 = 0xE0 ;
@@ -5505,6 +5751,7 @@ cfg_if! {
55055751}
55065752
55075753mod arch;
5754+
55085755pub use self :: arch:: * ;
55095756
55105757cfg_if ! {
0 commit comments