@@ -718,6 +718,145 @@ s! {
718
718
pub salt: [ :: c_uchar; TLS_CIPHER_CHACHA20_POLY1305_SALT_SIZE ] ,
719
719
pub rec_seq: [ :: c_uchar; TLS_CIPHER_CHACHA20_POLY1305_REC_SEQ_SIZE ] ,
720
720
}
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
+ }
721
860
}
722
861
723
862
s_no_extra_traits ! {
@@ -856,6 +995,52 @@ s_no_extra_traits! {
856
995
}
857
996
}
858
997
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
+ }
859
1044
s_no_extra_traits ! {
860
1045
// linux/net_tstamp.h
861
1046
#[ allow( missing_debug_implementations) ]
@@ -1319,6 +1504,59 @@ cfg_if! {
1319
1504
self . rx_filter. hash( state) ;
1320
1505
}
1321
1506
}
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
+ }
1322
1560
}
1323
1561
}
1324
1562
@@ -3165,6 +3403,9 @@ pub const IW_ENC_CAPA_CIPHER_TKIP: ::c_ulong = 0x00000004;
3165
3403
pub const IW_ENC_CAPA_CIPHER_CCMP : :: c_ulong = 0x00000008 ;
3166
3404
pub const IW_ENC_CAPA_4WAY_HANDSHAKE : :: c_ulong = 0x00000010 ;
3167
3405
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
+
3168
3409
pub const IW_PMKSA_ADD : usize = 1 ;
3169
3410
pub const IW_PMKSA_REMOVE : usize = 2 ;
3170
3411
pub const IW_PMKSA_FLUSH : usize = 3 ;
@@ -3175,8 +3416,13 @@ pub const IW_PMKID_CAND_PREAUTH: ::c_ulong = 0x00000001;
3175
3416
3176
3417
pub const IW_EV_LCP_PK_LEN : usize = 4 ;
3177
3418
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;
3180
3426
3181
3427
pub const IPTOS_TOS_MASK : u8 = 0x1E ;
3182
3428
pub const IPTOS_PREC_MASK : u8 = 0xE0 ;
@@ -5505,6 +5751,7 @@ cfg_if! {
5505
5751
}
5506
5752
5507
5753
mod arch;
5754
+
5508
5755
pub use self :: arch:: * ;
5509
5756
5510
5757
cfg_if ! {
0 commit comments