@@ -37,6 +37,8 @@ pub type rusage_info_t = *mut ::c_void;
37
37
pub type vm_offset_t = :: uintptr_t ;
38
38
pub type vm_size_t = :: uintptr_t ;
39
39
pub type vm_address_t = vm_offset_t ;
40
+ pub type quad_t = i64 ;
41
+ pub type u_quad_t = u64 ;
40
42
41
43
pub type posix_spawnattr_t = * mut :: c_void ;
42
44
pub type posix_spawn_file_actions_t = * mut :: c_void ;
@@ -1473,6 +1475,97 @@ s_no_extra_traits! {
1473
1475
pub ifcu_buf: * mut :: c_char,
1474
1476
pub ifcu_req: * mut ifreq,
1475
1477
}
1478
+
1479
+ pub struct in6_addrlifetime {
1480
+ pub ia6t_expire: time_t,
1481
+ pub ia6t_preferred: time_t,
1482
+ pub ia6t_vltime: u32 ,
1483
+ pub ia6t_pltime: u32 ,
1484
+ }
1485
+
1486
+ pub struct in6_ifstat {
1487
+ pub ifs6_in_receive: :: u_quad_t,
1488
+ pub ifs6_in_hdrerr: :: u_quad_t,
1489
+ pub ifs6_in_toobig: :: u_quad_t,
1490
+ pub ifs6_in_noroute: :: u_quad_t,
1491
+ pub ifs6_in_addrerr: :: u_quad_t,
1492
+ pub ifs6_in_protounknown: :: u_quad_t,
1493
+ pub ifs6_in_truncated: :: u_quad_t,
1494
+ pub ifs6_in_discard: :: u_quad_t,
1495
+ pub ifs6_in_deliver: :: u_quad_t,
1496
+ pub ifs6_out_forward: :: u_quad_t,
1497
+ pub ifs6_out_request: :: u_quad_t,
1498
+ pub ifs6_out_discard: :: u_quad_t,
1499
+ pub ifs6_out_fragok: :: u_quad_t,
1500
+ pub ifs6_out_fragfail: :: u_quad_t,
1501
+ pub ifs6_out_fragcreat: :: u_quad_t,
1502
+ pub ifs6_reass_reqd: :: u_quad_t,
1503
+ pub ifs6_reass_ok: :: u_quad_t,
1504
+ pub ifs6_atmfrag_rcvd: :: u_quad_t,
1505
+ pub ifs6_reass_fail: :: u_quad_t,
1506
+ pub ifs6_in_mcast: :: u_quad_t,
1507
+ pub ifs6_out_mcast: :: u_quad_t,
1508
+ pub ifs6_cantfoward_icmp6: :: u_quad_t,
1509
+ pub ifs6_addr_expiry_cnt: :: u_quad_t,
1510
+ pub ifs6_pfx_expiry_cnt: :: u_quad_t,
1511
+ pub ifs6_defrtr_expiry_cnt: :: u_quad_t,
1512
+ }
1513
+
1514
+ pub struct icmp6_ifstat {
1515
+ pub ifs6_in_msg: :: u_quad_t,
1516
+ pub ifs6_in_error: :: u_quad_t,
1517
+ pub ifs6_in_dstunreach: :: u_quad_t,
1518
+ pub ifs6_in_adminprohib: :: u_quad_t,
1519
+ pub ifs6_in_timeexceed: :: u_quad_t,
1520
+ pub ifs6_in_paramprob: :: u_quad_t,
1521
+ pub ifs6_in_pkttoobig: :: u_quad_t,
1522
+ pub ifs6_in_echo: :: u_quad_t,
1523
+ pub ifs6_in_echoreply: :: u_quad_t,
1524
+ pub ifs6_in_routersolicit: :: u_quad_t,
1525
+ pub ifs6_in_routeradvert: :: u_quad_t,
1526
+ pub ifs6_in_neighborsolicit: :: u_quad_t,
1527
+ pub ifs6_in_neighboradvert: :: u_quad_t,
1528
+ pub ifs6_in_redirect: :: u_quad_t,
1529
+ pub ifs6_in_mldquery: :: u_quad_t,
1530
+ pub ifs6_in_mldreport: :: u_quad_t,
1531
+ pub ifs6_in_mlddone: :: u_quad_t,
1532
+ pub ifs6_out_msg: :: u_quad_t,
1533
+ pub ifs6_out_error: :: u_quad_t,
1534
+ pub ifs6_out_dstunreach: :: u_quad_t,
1535
+ pub ifs6_out_adminprohib: :: u_quad_t,
1536
+ pub ifs6_out_timeexceed: :: u_quad_t,
1537
+ pub ifs6_out_paramprob: :: u_quad_t,
1538
+ pub ifs6_out_pkttoobig: :: u_quad_t,
1539
+ pub ifs6_out_echo: :: u_quad_t,
1540
+ pub ifs6_out_echoreply: :: u_quad_t,
1541
+ pub ifs6_out_routersolicit: :: u_quad_t,
1542
+ pub ifs6_out_routeradvert: :: u_quad_t,
1543
+ pub ifs6_out_neighborsolicit: :: u_quad_t,
1544
+ pub ifs6_out_neighboradvert: :: u_quad_t,
1545
+ pub ifs6_out_redirect: :: u_quad_t,
1546
+ pub ifs6_out_mldquery: :: u_quad_t,
1547
+ pub ifs6_out_mldreport: :: u_quad_t,
1548
+ pub ifs6_out_mlddone: :: u_quad_t,
1549
+ }
1550
+
1551
+ pub union __c_anonymous_ifr_ifru6 {
1552
+ pub ifru_addr: :: sockaddr_in6,
1553
+ pub ifru_dstaddr: :: sockaddr_in6,
1554
+ pub ifru_flags: :: c_int,
1555
+ pub ifru_flags6: :: c_int,
1556
+ pub ifru_metrics: :: c_int,
1557
+ pub ifru_intval: :: c_int,
1558
+ pub ifru_data: * mut :: c_char,
1559
+ pub ifru_lifetime: in6_addrlifetime,
1560
+ pub ifru_stat: in6_ifstat,
1561
+ pub ifru_icmp6stat: icmp6_ifstat,
1562
+ pub ifru_scope_id: [ u32 ; SCOPE6_ID_MAX ] ,
1563
+ }
1564
+
1565
+ pub struct in6_ifreq {
1566
+ pub ifr_name: [ :: c_char; :: IFNAMSIZ ] ,
1567
+ pub ifr_ifru: __c_anonymous_ifr_ifru6,
1568
+ }
1476
1569
}
1477
1570
1478
1571
impl siginfo_t {
@@ -3021,6 +3114,65 @@ cfg_if! {
3021
3114
unsafe { self . ifcu_req. hash( state) } ;
3022
3115
}
3023
3116
}
3117
+
3118
+ impl PartialEq for __c_anonymous_ifr_ifru6 {
3119
+ fn eq( & self , other: & __c_anonymous_ifr_ifru6) -> bool {
3120
+ unsafe {
3121
+ self . ifru_addr == other. ifru_addr
3122
+ && self . ifru_dstaddr == other. ifru_dstaddr
3123
+ && self . ifru_flags == other. ifru_flags
3124
+ && self . ifru_flags6 == other. ifru_flags6
3125
+ && self . ifru_metrics == other. ifru_metrics
3126
+ && self . ifru_intval == other. ifru_intval
3127
+ && self . ifru_data == other. ifru_data
3128
+ && self . ifru_lifetime == other. ifru_lifetime
3129
+ && self . ifru_stat == other. ifru_stat
3130
+ && self . ifru_icmp6stat == other. ifru_icmp6stat
3131
+ && self . ifru_scope_id
3132
+ . iter( )
3133
+ . zip( other. ifru_scope_id. iter( ) )
3134
+ . all( |( a, b) | a == b)
3135
+ }
3136
+ }
3137
+ }
3138
+
3139
+ impl Eq for __c_anonymous_ifr_ifru6 { }
3140
+
3141
+ impl :: fmt:: Debug for __c_anonymous_ifr_ifru6 {
3142
+ fn fmt( & self , f: & mut :: fmt:: Formatter ) -> :: fmt:: Result {
3143
+ f. debug_struct( "__c_anonymous_ifr_ifru6" )
3144
+ . field( "ifru_addr" , unsafe { & self . ifru_addr } )
3145
+ . field( "ifru_dstaddr" , unsafe { & self . ifru_dstaddr } )
3146
+ . field( "ifru_flags" , unsafe { & self . ifru_flags } )
3147
+ . field( "ifru_flags6" , unsafe { & self . ifru_flags6 } )
3148
+ . field( "ifru_metrics" , unsafe { & self . ifru_metrics } )
3149
+ . field( "ifru_intval" , unsafe { & self . ifru_intval } )
3150
+ . field( "ifru_data" , unsafe { & self . ifru_data } )
3151
+ . field( "ifru_lifetime" , unsafe { & self . ifru_lifetime } )
3152
+ . field( "ifru_stat" , unsafe { & self . ifru_stat } )
3153
+ . field( "ifru_icmp6stat" , unsafe { & self . ifru_icmp6stat } )
3154
+ . field( "ifru_scope_id" , unsafe { & self . ifru_scope_id } )
3155
+ . finish( )
3156
+ }
3157
+ }
3158
+
3159
+ impl :: hash:: Hash for __c_anonymous_ifr_ifru6 {
3160
+ fn hash<H : :: hash:: Hasher >( & self , state: & mut H ) {
3161
+ unsafe {
3162
+ self . ifru_addr. hash( state) ;
3163
+ self . ifru_dstaddr. hash( state) ;
3164
+ self . ifru_flags. hash( state) ;
3165
+ self . ifru_flags6. hash( state) ;
3166
+ self . ifru_metrics. hash( state) ;
3167
+ self . ifru_intval. hash( state) ;
3168
+ self . ifru_data. hash( state) ;
3169
+ self . ifru_lifetime. hash( state) ;
3170
+ self . ifru_stat. hash( state) ;
3171
+ self . ifru_icmp6stat. hash( state) ;
3172
+ self . ifru_scope_id. hash( state) ;
3173
+ }
3174
+ }
3175
+ }
3024
3176
}
3025
3177
}
3026
3178
@@ -4064,6 +4216,8 @@ pub const IFF_LINK2: ::c_int = 0x4000; // per link layer defined bit
4064
4216
pub const IFF_ALTPHYS : :: c_int = IFF_LINK2 ; // use alternate physical connection
4065
4217
pub const IFF_MULTICAST : :: c_int = 0x8000 ; // supports multicast
4066
4218
4219
+ pub const SCOPE6_ID_MAX : :: size_t = 16 ;
4220
+
4067
4221
pub const SHUT_RD : :: c_int = 0 ;
4068
4222
pub const SHUT_WR : :: c_int = 1 ;
4069
4223
pub const SHUT_RDWR : :: c_int = 2 ;
0 commit comments