@@ -37,6 +37,8 @@ pub type rusage_info_t = *mut ::c_void;
3737pub type vm_offset_t = :: uintptr_t ;
3838pub type vm_size_t = :: uintptr_t ;
3939pub type vm_address_t = vm_offset_t ;
40+ pub type quad_t = i64 ;
41+ pub type u_quad_t = u64 ;
4042
4143pub type posix_spawnattr_t = * mut :: c_void ;
4244pub type posix_spawn_file_actions_t = * mut :: c_void ;
@@ -1136,6 +1138,77 @@ s! {
11361138 pub tcpi_rxoutoforderbytes: u64 ,
11371139 pub tcpi_rxretransmitpackets: u64 ,
11381140 }
1141+
1142+ pub struct in6_addrlifetime {
1143+ pub ia6t_expire: time_t,
1144+ pub ia6t_preferred: time_t,
1145+ pub ia6t_vltime: u32 ,
1146+ pub ia6t_pltime: u32 ,
1147+ }
1148+
1149+ pub struct in6_ifstat {
1150+ pub ifs6_in_receive: :: u_quad_t,
1151+ pub ifs6_in_hdrerr: :: u_quad_t,
1152+ pub ifs6_in_toobig: :: u_quad_t,
1153+ pub ifs6_in_noroute: :: u_quad_t,
1154+ pub ifs6_in_addrerr: :: u_quad_t,
1155+ pub ifs6_in_protounknown: :: u_quad_t,
1156+ pub ifs6_in_truncated: :: u_quad_t,
1157+ pub ifs6_in_discard: :: u_quad_t,
1158+ pub ifs6_in_deliver: :: u_quad_t,
1159+ pub ifs6_out_forward: :: u_quad_t,
1160+ pub ifs6_out_request: :: u_quad_t,
1161+ pub ifs6_out_discard: :: u_quad_t,
1162+ pub ifs6_out_fragok: :: u_quad_t,
1163+ pub ifs6_out_fragfail: :: u_quad_t,
1164+ pub ifs6_out_fragcreat: :: u_quad_t,
1165+ pub ifs6_reass_reqd: :: u_quad_t,
1166+ pub ifs6_reass_ok: :: u_quad_t,
1167+ pub ifs6_atmfrag_rcvd: :: u_quad_t,
1168+ pub ifs6_reass_fail: :: u_quad_t,
1169+ pub ifs6_in_mcast: :: u_quad_t,
1170+ pub ifs6_out_mcast: :: u_quad_t,
1171+ pub ifs6_cantfoward_icmp6: :: u_quad_t,
1172+ pub ifs6_addr_expiry_cnt: :: u_quad_t,
1173+ pub ifs6_pfx_expiry_cnt: :: u_quad_t,
1174+ pub ifs6_defrtr_expiry_cnt: :: u_quad_t,
1175+ }
1176+ pub struct icmp6_ifstat {
1177+ pub ifs6_in_msg: :: u_quad_t,
1178+ pub ifs6_in_error: :: u_quad_t,
1179+ pub ifs6_in_dstunreach: :: u_quad_t,
1180+ pub ifs6_in_adminprohib: :: u_quad_t,
1181+ pub ifs6_in_timeexceed: :: u_quad_t,
1182+ pub ifs6_in_paramprob: :: u_quad_t,
1183+ pub ifs6_in_pkttoobig: :: u_quad_t,
1184+ pub ifs6_in_echo: :: u_quad_t,
1185+ pub ifs6_in_echoreply: :: u_quad_t,
1186+ pub ifs6_in_routersolicit: :: u_quad_t,
1187+ pub ifs6_in_routeradvert: :: u_quad_t,
1188+ pub ifs6_in_neighborsolicit: :: u_quad_t,
1189+ pub ifs6_in_neighboradvert: :: u_quad_t,
1190+ pub ifs6_in_redirect: :: u_quad_t,
1191+ pub ifs6_in_mldquery: :: u_quad_t,
1192+ pub ifs6_in_mldreport: :: u_quad_t,
1193+ pub ifs6_in_mlddone: :: u_quad_t,
1194+ pub ifs6_out_msg: :: u_quad_t,
1195+ pub ifs6_out_error: :: u_quad_t,
1196+ pub ifs6_out_dstunreach: :: u_quad_t,
1197+ pub ifs6_out_adminprohib: :: u_quad_t,
1198+ pub ifs6_out_timeexceed: :: u_quad_t,
1199+ pub ifs6_out_paramprob: :: u_quad_t,
1200+ pub ifs6_out_pkttoobig: :: u_quad_t,
1201+ pub ifs6_out_echo: :: u_quad_t,
1202+ pub ifs6_out_echoreply: :: u_quad_t,
1203+ pub ifs6_out_routersolicit: :: u_quad_t,
1204+ pub ifs6_out_routeradvert: :: u_quad_t,
1205+ pub ifs6_out_neighborsolicit: :: u_quad_t,
1206+ pub ifs6_out_neighboradvert: :: u_quad_t,
1207+ pub ifs6_out_redirect: :: u_quad_t,
1208+ pub ifs6_out_mldquery: :: u_quad_t,
1209+ pub ifs6_out_mldreport: :: u_quad_t,
1210+ pub ifs6_out_mlddone: :: u_quad_t,
1211+ }
11391212}
11401213
11411214s_no_extra_traits ! {
@@ -1473,6 +1546,25 @@ s_no_extra_traits! {
14731546 pub ifcu_buf: * mut :: c_char,
14741547 pub ifcu_req: * mut ifreq,
14751548 }
1549+
1550+ pub union __c_anonymous_ifr_ifru6 {
1551+ pub ifru_addr: :: sockaddr_in6,
1552+ pub ifru_dstaddr: :: sockaddr_in6,
1553+ pub ifru_flags: :: c_int,
1554+ pub ifru_flags6: :: c_int,
1555+ pub ifru_metrics: :: c_int,
1556+ pub ifru_intval: :: c_int,
1557+ pub ifru_data: * mut :: c_char,
1558+ pub ifru_lifetime: in6_addrlifetime,
1559+ pub ifru_stat: in6_ifstat,
1560+ pub ifru_icmp6stat: icmp6_ifstat,
1561+ pub ifru_scope_id: [ u32 ; SCOPE6_ID_MAX ] ,
1562+ }
1563+
1564+ pub struct in6_ifreq {
1565+ pub ifr_name: [ :: c_char; :: IFNAMSIZ ] ,
1566+ pub ifr_ifru: __c_anonymous_ifr_ifru6,
1567+ }
14761568}
14771569
14781570impl siginfo_t {
@@ -3021,6 +3113,74 @@ cfg_if! {
30213113 unsafe { self . ifcu_req. hash( state) } ;
30223114 }
30233115 }
3116+
3117+ impl PartialEq for __c_anonymous_ifr_ifru6 {
3118+ fn eq( & self , other: & __c_anonymous_ifr_ifru6) -> bool {
3119+ unsafe {
3120+ self . ifru_addr == other. ifru_addr
3121+ && self . ifru_dstaddr == other. ifru_dstaddr
3122+ && self . ifru_flags == other. ifru_flags
3123+ && self . ifru_flags6 == other. ifru_flags6
3124+ && self . ifru_metrics == other. ifru_metrics
3125+ && self . ifru_intval == other. ifru_intval
3126+ && self . ifru_data == other. ifru_data
3127+ && self . ifru_scope_id
3128+ . iter( )
3129+ . zip( other. ifru_scope_id. iter( ) )
3130+ . all( |( a, b) | a == b)
3131+ }
3132+ }
3133+ }
3134+
3135+ impl Eq for __c_anonymous_ifr_ifru6 { }
3136+
3137+ impl :: fmt:: Debug for __c_anonymous_ifr_ifru6 {
3138+ fn fmt( & self , f: & mut :: fmt:: Formatter ) -> :: fmt:: Result {
3139+ f. debug_struct( "__c_anonymous_ifr_ifru6" )
3140+ . field( "ifru_addr" , unsafe { & self . ifru_addr } )
3141+ . field( "ifru_dstaddr" , unsafe { & self . ifru_dstaddr } )
3142+ . field( "ifru_flags" , unsafe { & self . ifru_flags } )
3143+ . field( "ifru_flags6" , unsafe { & self . ifru_flags6 } )
3144+ . field( "ifru_metrics" , unsafe { & self . ifru_metrics } )
3145+ . field( "ifru_intval" , unsafe { & self . ifru_intval } )
3146+ . field( "ifru_data" , unsafe { & self . ifru_data } )
3147+ . field( "ifru_scope_id" , unsafe { & self . ifru_scope_id } )
3148+ . finish( )
3149+ }
3150+ }
3151+
3152+ impl :: hash:: Hash for __c_anonymous_ifr_ifru6 {
3153+ fn hash<H : :: hash:: Hasher >( & self , state: & mut H ) {
3154+ unsafe {
3155+ self . ifru_addr. hash( state) ;
3156+ self . ifru_dstaddr. hash( state) ;
3157+ self . ifru_flags. hash( state) ;
3158+ self . ifru_flags6. hash( state) ;
3159+ self . ifru_metrics. hash( state) ;
3160+ self . ifru_intval. hash( state) ;
3161+ self . ifru_data. hash( state) ;
3162+ self . ifru_scope_id. hash( state) ;
3163+ }
3164+ }
3165+ }
3166+
3167+ impl PartialEq for in6_ifreq {
3168+ fn eq( & self , other: & in6_ifreq) -> bool {
3169+ self . ifr_name == other. ifr_name
3170+ && self . ifr_ifru == other. ifr_ifru
3171+ }
3172+ }
3173+
3174+ impl Eq for in6_ifreq { }
3175+
3176+ impl :: fmt:: Debug for in6_ifreq {
3177+ fn fmt( & self , f: & mut :: fmt:: Formatter ) -> :: fmt:: Result {
3178+ f. debug_struct( "in6_ifreq" )
3179+ . field( "ifr_name" , & self . ifr_name)
3180+ . field( "ifr_ifru" , & self . ifr_ifru)
3181+ . finish( )
3182+ }
3183+ }
30243184 }
30253185}
30263186
@@ -4085,6 +4245,8 @@ pub const IFF_LINK2: ::c_int = 0x4000; // per link layer defined bit
40854245pub const IFF_ALTPHYS : :: c_int = IFF_LINK2 ; // use alternate physical connection
40864246pub const IFF_MULTICAST : :: c_int = 0x8000 ; // supports multicast
40874247
4248+ pub const SCOPE6_ID_MAX : :: size_t = 16 ;
4249+
40884250pub const SHUT_RD : :: c_int = 0 ;
40894251pub const SHUT_WR : :: c_int = 1 ;
40904252pub const SHUT_RDWR : :: c_int = 2 ;
0 commit comments