summary refs log tree commit diff
path: root/net_sys
diff options
context:
space:
mode:
authorZach Reizner <zachr@google.com>2019-05-21 17:16:39 -0700
committerchrome-bot <chrome-bot@chromium.org>2019-05-23 02:14:24 -0700
commit2b570f698a8dc018a61a192a377a281546585f02 (patch)
tree8c205345dc03ffabc5abd1c756086c431749e3f9 /net_sys
parent90c3271ce500009cf07c212aba4c9cefded29582 (diff)
downloadcrosvm-2b570f698a8dc018a61a192a377a281546585f02.tar
crosvm-2b570f698a8dc018a61a192a377a281546585f02.tar.gz
crosvm-2b570f698a8dc018a61a192a377a281546585f02.tar.bz2
crosvm-2b570f698a8dc018a61a192a377a281546585f02.tar.lz
crosvm-2b570f698a8dc018a61a192a377a281546585f02.tar.xz
crosvm-2b570f698a8dc018a61a192a377a281546585f02.tar.zst
crosvm-2b570f698a8dc018a61a192a377a281546585f02.zip
net_sys: regenerate if.h bindings using Rust native union
TEST=crosvm run, network still works
     cargo test -p net_util
BUG=chromium:761517

Change-Id: I3ee0e43376ff7f2ba76202138e47505c73958087
Reviewed-on: https://chromium-review.googlesource.com/1623557
Commit-Ready: Zach Reizner <zachr@chromium.org>
Tested-by: Zach Reizner <zachr@chromium.org>
Tested-by: kokoro <noreply+kokoro@google.com>
Legacy-Commit-Queue: Commit Bot <commit-bot@chromium.org>
Reviewed-by: Zach Reizner <zachr@chromium.org>
Reviewed-by: Stephen Barber <smbarber@chromium.org>
Diffstat (limited to 'net_sys')
-rw-r--r--net_sys/src/iff.rs3272
1 files changed, 631 insertions, 2641 deletions
diff --git a/net_sys/src/iff.rs b/net_sys/src/iff.rs
index 6291a42..928a2cc 100644
--- a/net_sys/src/iff.rs
+++ b/net_sys/src/iff.rs
@@ -6,11 +6,11 @@
 
 #[repr(C)]
 #[derive(Default)]
-pub struct __IncompleteArrayField<T>(::std::marker::PhantomData<T>);
+pub struct __IncompleteArrayField<T>(::std::marker::PhantomData<T>, [T; 0]);
 impl<T> __IncompleteArrayField<T> {
     #[inline]
     pub fn new() -> Self {
-        __IncompleteArrayField(::std::marker::PhantomData)
+        __IncompleteArrayField(::std::marker::PhantomData, [])
     }
     #[inline]
     pub unsafe fn as_ptr(&self) -> *const T {
@@ -30,7 +30,7 @@ impl<T> __IncompleteArrayField<T> {
     }
 }
 impl<T> ::std::fmt::Debug for __IncompleteArrayField<T> {
-    fn fmt(&self, fmt: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
+    fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
         fmt.write_str("__IncompleteArrayField")
     }
 }
@@ -40,348 +40,365 @@ impl<T> ::std::clone::Clone for __IncompleteArrayField<T> {
         Self::new()
     }
 }
-impl<T> ::std::marker::Copy for __IncompleteArrayField<T> {}
-#[repr(C)]
-pub struct __BindgenUnionField<T>(::std::marker::PhantomData<T>);
-impl<T> __BindgenUnionField<T> {
-    #[inline]
-    pub fn new() -> Self {
-        __BindgenUnionField(::std::marker::PhantomData)
-    }
-    #[inline]
-    pub unsafe fn as_ref(&self) -> &T {
-        ::std::mem::transmute(self)
-    }
-    #[inline]
-    pub unsafe fn as_mut(&mut self) -> &mut T {
-        ::std::mem::transmute(self)
-    }
-}
-impl<T> ::std::default::Default for __BindgenUnionField<T> {
-    #[inline]
-    fn default() -> Self {
-        Self::new()
-    }
-}
-impl<T> ::std::clone::Clone for __BindgenUnionField<T> {
-    #[inline]
-    fn clone(&self) -> Self {
-        Self::new()
-    }
-}
-impl<T> ::std::marker::Copy for __BindgenUnionField<T> {}
-impl<T> ::std::fmt::Debug for __BindgenUnionField<T> {
-    fn fmt(&self, fmt: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
-        fmt.write_str("__BindgenUnionField")
-    }
-}
-pub const __UAPI_DEF_IN_ADDR: ::std::os::raw::c_uint = 1;
-pub const __UAPI_DEF_IN_IPPROTO: ::std::os::raw::c_uint = 1;
-pub const __UAPI_DEF_IN_PKTINFO: ::std::os::raw::c_uint = 1;
-pub const __UAPI_DEF_IP_MREQ: ::std::os::raw::c_uint = 1;
-pub const __UAPI_DEF_SOCKADDR_IN: ::std::os::raw::c_uint = 1;
-pub const __UAPI_DEF_IN_CLASS: ::std::os::raw::c_uint = 1;
-pub const __UAPI_DEF_IN6_ADDR: ::std::os::raw::c_uint = 1;
-pub const __UAPI_DEF_IN6_ADDR_ALT: ::std::os::raw::c_uint = 1;
-pub const __UAPI_DEF_SOCKADDR_IN6: ::std::os::raw::c_uint = 1;
-pub const __UAPI_DEF_IPV6_MREQ: ::std::os::raw::c_uint = 1;
-pub const __UAPI_DEF_IPPROTO_V6: ::std::os::raw::c_uint = 1;
-pub const __UAPI_DEF_IPV6_OPTIONS: ::std::os::raw::c_uint = 1;
-pub const __UAPI_DEF_IN6_PKTINFO: ::std::os::raw::c_uint = 1;
-pub const __UAPI_DEF_IP6_MTUINFO: ::std::os::raw::c_uint = 1;
-pub const __UAPI_DEF_XATTR: ::std::os::raw::c_uint = 1;
-pub const __BITS_PER_LONG: ::std::os::raw::c_uint = 64;
-pub const __FD_SETSIZE: ::std::os::raw::c_uint = 1024;
-pub const _K_SS_MAXSIZE: ::std::os::raw::c_uint = 128;
-pub const _SYS_SOCKET_H: ::std::os::raw::c_uint = 1;
-pub const _FEATURES_H: ::std::os::raw::c_uint = 1;
-pub const _DEFAULT_SOURCE: ::std::os::raw::c_uint = 1;
-pub const __USE_ISOC11: ::std::os::raw::c_uint = 1;
-pub const __USE_ISOC99: ::std::os::raw::c_uint = 1;
-pub const __USE_ISOC95: ::std::os::raw::c_uint = 1;
-pub const __USE_POSIX_IMPLICITLY: ::std::os::raw::c_uint = 1;
-pub const _POSIX_SOURCE: ::std::os::raw::c_uint = 1;
-pub const _POSIX_C_SOURCE: ::std::os::raw::c_uint = 200809;
-pub const __USE_POSIX: ::std::os::raw::c_uint = 1;
-pub const __USE_POSIX2: ::std::os::raw::c_uint = 1;
-pub const __USE_POSIX199309: ::std::os::raw::c_uint = 1;
-pub const __USE_POSIX199506: ::std::os::raw::c_uint = 1;
-pub const __USE_XOPEN2K: ::std::os::raw::c_uint = 1;
-pub const __USE_XOPEN2K8: ::std::os::raw::c_uint = 1;
-pub const _ATFILE_SOURCE: ::std::os::raw::c_uint = 1;
-pub const __USE_MISC: ::std::os::raw::c_uint = 1;
-pub const __USE_ATFILE: ::std::os::raw::c_uint = 1;
-pub const __USE_FORTIFY_LEVEL: ::std::os::raw::c_uint = 0;
-pub const _STDC_PREDEF_H: ::std::os::raw::c_uint = 1;
-pub const __STDC_IEC_559__: ::std::os::raw::c_uint = 1;
-pub const __STDC_IEC_559_COMPLEX__: ::std::os::raw::c_uint = 1;
-pub const __STDC_ISO_10646__: ::std::os::raw::c_uint = 201505;
-pub const __STDC_NO_THREADS__: ::std::os::raw::c_uint = 1;
-pub const __GNU_LIBRARY__: ::std::os::raw::c_uint = 6;
-pub const __GLIBC__: ::std::os::raw::c_uint = 2;
-pub const __GLIBC_MINOR__: ::std::os::raw::c_uint = 23;
-pub const _SYS_CDEFS_H: ::std::os::raw::c_uint = 1;
-pub const __WORDSIZE: ::std::os::raw::c_uint = 64;
-pub const __WORDSIZE_TIME64_COMPAT32: ::std::os::raw::c_uint = 1;
-pub const __SYSCALL_WORDSIZE: ::std::os::raw::c_uint = 64;
-pub const _SYS_UIO_H: ::std::os::raw::c_uint = 1;
-pub const _SYS_TYPES_H: ::std::os::raw::c_uint = 1;
-pub const _BITS_TYPES_H: ::std::os::raw::c_uint = 1;
-pub const _BITS_TYPESIZES_H: ::std::os::raw::c_uint = 1;
-pub const __OFF_T_MATCHES_OFF64_T: ::std::os::raw::c_uint = 1;
-pub const __INO_T_MATCHES_INO64_T: ::std::os::raw::c_uint = 1;
-pub const __clock_t_defined: ::std::os::raw::c_uint = 1;
-pub const __time_t_defined: ::std::os::raw::c_uint = 1;
-pub const __clockid_t_defined: ::std::os::raw::c_uint = 1;
-pub const __timer_t_defined: ::std::os::raw::c_uint = 1;
-pub const __BIT_TYPES_DEFINED__: ::std::os::raw::c_uint = 1;
-pub const _ENDIAN_H: ::std::os::raw::c_uint = 1;
-pub const __LITTLE_ENDIAN: ::std::os::raw::c_uint = 1234;
-pub const __BIG_ENDIAN: ::std::os::raw::c_uint = 4321;
-pub const __PDP_ENDIAN: ::std::os::raw::c_uint = 3412;
-pub const __BYTE_ORDER: ::std::os::raw::c_uint = 1234;
-pub const __FLOAT_WORD_ORDER: ::std::os::raw::c_uint = 1234;
-pub const LITTLE_ENDIAN: ::std::os::raw::c_uint = 1234;
-pub const BIG_ENDIAN: ::std::os::raw::c_uint = 4321;
-pub const PDP_ENDIAN: ::std::os::raw::c_uint = 3412;
-pub const BYTE_ORDER: ::std::os::raw::c_uint = 1234;
-pub const _BITS_BYTESWAP_H: ::std::os::raw::c_uint = 1;
-pub const _SYS_SELECT_H: ::std::os::raw::c_uint = 1;
-pub const __FD_ZERO_STOS: &'static [u8; 6usize] = b"stosq\x00";
-pub const _SIGSET_H_types: ::std::os::raw::c_uint = 1;
-pub const __timespec_defined: ::std::os::raw::c_uint = 1;
-pub const _STRUCT_TIMEVAL: ::std::os::raw::c_uint = 1;
-pub const FD_SETSIZE: ::std::os::raw::c_uint = 1024;
-pub const _SYS_SYSMACROS_H: ::std::os::raw::c_uint = 1;
-pub const _BITS_PTHREADTYPES_H: ::std::os::raw::c_uint = 1;
-pub const __SIZEOF_PTHREAD_ATTR_T: ::std::os::raw::c_uint = 56;
-pub const __SIZEOF_PTHREAD_MUTEX_T: ::std::os::raw::c_uint = 40;
-pub const __SIZEOF_PTHREAD_MUTEXATTR_T: ::std::os::raw::c_uint = 4;
-pub const __SIZEOF_PTHREAD_COND_T: ::std::os::raw::c_uint = 48;
-pub const __SIZEOF_PTHREAD_CONDATTR_T: ::std::os::raw::c_uint = 4;
-pub const __SIZEOF_PTHREAD_RWLOCK_T: ::std::os::raw::c_uint = 56;
-pub const __SIZEOF_PTHREAD_RWLOCKATTR_T: ::std::os::raw::c_uint = 8;
-pub const __SIZEOF_PTHREAD_BARRIER_T: ::std::os::raw::c_uint = 32;
-pub const __SIZEOF_PTHREAD_BARRIERATTR_T: ::std::os::raw::c_uint = 4;
-pub const __have_pthread_attr_t: ::std::os::raw::c_uint = 1;
-pub const __PTHREAD_MUTEX_HAVE_PREV: ::std::os::raw::c_uint = 1;
-pub const __PTHREAD_RWLOCK_INT_FLAGS_SHARED: ::std::os::raw::c_uint = 1;
-pub const _BITS_UIO_H: ::std::os::raw::c_uint = 1;
-pub const UIO_MAXIOV: ::std::os::raw::c_uint = 1024;
-pub const PF_UNSPEC: ::std::os::raw::c_uint = 0;
-pub const PF_LOCAL: ::std::os::raw::c_uint = 1;
-pub const PF_UNIX: ::std::os::raw::c_uint = 1;
-pub const PF_FILE: ::std::os::raw::c_uint = 1;
-pub const PF_INET: ::std::os::raw::c_uint = 2;
-pub const PF_AX25: ::std::os::raw::c_uint = 3;
-pub const PF_IPX: ::std::os::raw::c_uint = 4;
-pub const PF_APPLETALK: ::std::os::raw::c_uint = 5;
-pub const PF_NETROM: ::std::os::raw::c_uint = 6;
-pub const PF_BRIDGE: ::std::os::raw::c_uint = 7;
-pub const PF_ATMPVC: ::std::os::raw::c_uint = 8;
-pub const PF_X25: ::std::os::raw::c_uint = 9;
-pub const PF_INET6: ::std::os::raw::c_uint = 10;
-pub const PF_ROSE: ::std::os::raw::c_uint = 11;
-pub const PF_DECnet: ::std::os::raw::c_uint = 12;
-pub const PF_NETBEUI: ::std::os::raw::c_uint = 13;
-pub const PF_SECURITY: ::std::os::raw::c_uint = 14;
-pub const PF_KEY: ::std::os::raw::c_uint = 15;
-pub const PF_NETLINK: ::std::os::raw::c_uint = 16;
-pub const PF_ROUTE: ::std::os::raw::c_uint = 16;
-pub const PF_PACKET: ::std::os::raw::c_uint = 17;
-pub const PF_ASH: ::std::os::raw::c_uint = 18;
-pub const PF_ECONET: ::std::os::raw::c_uint = 19;
-pub const PF_ATMSVC: ::std::os::raw::c_uint = 20;
-pub const PF_RDS: ::std::os::raw::c_uint = 21;
-pub const PF_SNA: ::std::os::raw::c_uint = 22;
-pub const PF_IRDA: ::std::os::raw::c_uint = 23;
-pub const PF_PPPOX: ::std::os::raw::c_uint = 24;
-pub const PF_WANPIPE: ::std::os::raw::c_uint = 25;
-pub const PF_LLC: ::std::os::raw::c_uint = 26;
-pub const PF_IB: ::std::os::raw::c_uint = 27;
-pub const PF_MPLS: ::std::os::raw::c_uint = 28;
-pub const PF_CAN: ::std::os::raw::c_uint = 29;
-pub const PF_TIPC: ::std::os::raw::c_uint = 30;
-pub const PF_BLUETOOTH: ::std::os::raw::c_uint = 31;
-pub const PF_IUCV: ::std::os::raw::c_uint = 32;
-pub const PF_RXRPC: ::std::os::raw::c_uint = 33;
-pub const PF_ISDN: ::std::os::raw::c_uint = 34;
-pub const PF_PHONET: ::std::os::raw::c_uint = 35;
-pub const PF_IEEE802154: ::std::os::raw::c_uint = 36;
-pub const PF_CAIF: ::std::os::raw::c_uint = 37;
-pub const PF_ALG: ::std::os::raw::c_uint = 38;
-pub const PF_NFC: ::std::os::raw::c_uint = 39;
-pub const PF_VSOCK: ::std::os::raw::c_uint = 40;
-pub const PF_MAX: ::std::os::raw::c_uint = 41;
-pub const AF_UNSPEC: ::std::os::raw::c_uint = 0;
-pub const AF_LOCAL: ::std::os::raw::c_uint = 1;
-pub const AF_UNIX: ::std::os::raw::c_uint = 1;
-pub const AF_FILE: ::std::os::raw::c_uint = 1;
-pub const AF_INET: ::std::os::raw::c_uint = 2;
-pub const AF_AX25: ::std::os::raw::c_uint = 3;
-pub const AF_IPX: ::std::os::raw::c_uint = 4;
-pub const AF_APPLETALK: ::std::os::raw::c_uint = 5;
-pub const AF_NETROM: ::std::os::raw::c_uint = 6;
-pub const AF_BRIDGE: ::std::os::raw::c_uint = 7;
-pub const AF_ATMPVC: ::std::os::raw::c_uint = 8;
-pub const AF_X25: ::std::os::raw::c_uint = 9;
-pub const AF_INET6: ::std::os::raw::c_uint = 10;
-pub const AF_ROSE: ::std::os::raw::c_uint = 11;
-pub const AF_DECnet: ::std::os::raw::c_uint = 12;
-pub const AF_NETBEUI: ::std::os::raw::c_uint = 13;
-pub const AF_SECURITY: ::std::os::raw::c_uint = 14;
-pub const AF_KEY: ::std::os::raw::c_uint = 15;
-pub const AF_NETLINK: ::std::os::raw::c_uint = 16;
-pub const AF_ROUTE: ::std::os::raw::c_uint = 16;
-pub const AF_PACKET: ::std::os::raw::c_uint = 17;
-pub const AF_ASH: ::std::os::raw::c_uint = 18;
-pub const AF_ECONET: ::std::os::raw::c_uint = 19;
-pub const AF_ATMSVC: ::std::os::raw::c_uint = 20;
-pub const AF_RDS: ::std::os::raw::c_uint = 21;
-pub const AF_SNA: ::std::os::raw::c_uint = 22;
-pub const AF_IRDA: ::std::os::raw::c_uint = 23;
-pub const AF_PPPOX: ::std::os::raw::c_uint = 24;
-pub const AF_WANPIPE: ::std::os::raw::c_uint = 25;
-pub const AF_LLC: ::std::os::raw::c_uint = 26;
-pub const AF_IB: ::std::os::raw::c_uint = 27;
-pub const AF_MPLS: ::std::os::raw::c_uint = 28;
-pub const AF_CAN: ::std::os::raw::c_uint = 29;
-pub const AF_TIPC: ::std::os::raw::c_uint = 30;
-pub const AF_BLUETOOTH: ::std::os::raw::c_uint = 31;
-pub const AF_IUCV: ::std::os::raw::c_uint = 32;
-pub const AF_RXRPC: ::std::os::raw::c_uint = 33;
-pub const AF_ISDN: ::std::os::raw::c_uint = 34;
-pub const AF_PHONET: ::std::os::raw::c_uint = 35;
-pub const AF_IEEE802154: ::std::os::raw::c_uint = 36;
-pub const AF_CAIF: ::std::os::raw::c_uint = 37;
-pub const AF_ALG: ::std::os::raw::c_uint = 38;
-pub const AF_NFC: ::std::os::raw::c_uint = 39;
-pub const AF_VSOCK: ::std::os::raw::c_uint = 40;
-pub const AF_MAX: ::std::os::raw::c_uint = 41;
-pub const SOL_RAW: ::std::os::raw::c_uint = 255;
-pub const SOL_DECNET: ::std::os::raw::c_uint = 261;
-pub const SOL_X25: ::std::os::raw::c_uint = 262;
-pub const SOL_PACKET: ::std::os::raw::c_uint = 263;
-pub const SOL_ATM: ::std::os::raw::c_uint = 264;
-pub const SOL_AAL: ::std::os::raw::c_uint = 265;
-pub const SOL_IRDA: ::std::os::raw::c_uint = 266;
-pub const SOMAXCONN: ::std::os::raw::c_uint = 128;
-pub const _BITS_SOCKADDR_H: ::std::os::raw::c_uint = 1;
-pub const _SS_SIZE: ::std::os::raw::c_uint = 128;
-pub const FIOSETOWN: ::std::os::raw::c_uint = 35073;
-pub const SIOCSPGRP: ::std::os::raw::c_uint = 35074;
-pub const FIOGETOWN: ::std::os::raw::c_uint = 35075;
-pub const SIOCGPGRP: ::std::os::raw::c_uint = 35076;
-pub const SIOCATMARK: ::std::os::raw::c_uint = 35077;
-pub const SIOCGSTAMP: ::std::os::raw::c_uint = 35078;
-pub const SIOCGSTAMPNS: ::std::os::raw::c_uint = 35079;
-pub const SOL_SOCKET: ::std::os::raw::c_uint = 1;
-pub const SO_DEBUG: ::std::os::raw::c_uint = 1;
-pub const SO_REUSEADDR: ::std::os::raw::c_uint = 2;
-pub const SO_TYPE: ::std::os::raw::c_uint = 3;
-pub const SO_ERROR: ::std::os::raw::c_uint = 4;
-pub const SO_DONTROUTE: ::std::os::raw::c_uint = 5;
-pub const SO_BROADCAST: ::std::os::raw::c_uint = 6;
-pub const SO_SNDBUF: ::std::os::raw::c_uint = 7;
-pub const SO_RCVBUF: ::std::os::raw::c_uint = 8;
-pub const SO_SNDBUFFORCE: ::std::os::raw::c_uint = 32;
-pub const SO_RCVBUFFORCE: ::std::os::raw::c_uint = 33;
-pub const SO_KEEPALIVE: ::std::os::raw::c_uint = 9;
-pub const SO_OOBINLINE: ::std::os::raw::c_uint = 10;
-pub const SO_NO_CHECK: ::std::os::raw::c_uint = 11;
-pub const SO_PRIORITY: ::std::os::raw::c_uint = 12;
-pub const SO_LINGER: ::std::os::raw::c_uint = 13;
-pub const SO_BSDCOMPAT: ::std::os::raw::c_uint = 14;
-pub const SO_REUSEPORT: ::std::os::raw::c_uint = 15;
-pub const SO_PASSCRED: ::std::os::raw::c_uint = 16;
-pub const SO_PEERCRED: ::std::os::raw::c_uint = 17;
-pub const SO_RCVLOWAT: ::std::os::raw::c_uint = 18;
-pub const SO_SNDLOWAT: ::std::os::raw::c_uint = 19;
-pub const SO_RCVTIMEO: ::std::os::raw::c_uint = 20;
-pub const SO_SNDTIMEO: ::std::os::raw::c_uint = 21;
-pub const SO_SECURITY_AUTHENTICATION: ::std::os::raw::c_uint = 22;
-pub const SO_SECURITY_ENCRYPTION_TRANSPORT: ::std::os::raw::c_uint = 23;
-pub const SO_SECURITY_ENCRYPTION_NETWORK: ::std::os::raw::c_uint = 24;
-pub const SO_BINDTODEVICE: ::std::os::raw::c_uint = 25;
-pub const SO_ATTACH_FILTER: ::std::os::raw::c_uint = 26;
-pub const SO_DETACH_FILTER: ::std::os::raw::c_uint = 27;
-pub const SO_GET_FILTER: ::std::os::raw::c_uint = 26;
-pub const SO_PEERNAME: ::std::os::raw::c_uint = 28;
-pub const SO_TIMESTAMP: ::std::os::raw::c_uint = 29;
-pub const SCM_TIMESTAMP: ::std::os::raw::c_uint = 29;
-pub const SO_ACCEPTCONN: ::std::os::raw::c_uint = 30;
-pub const SO_PEERSEC: ::std::os::raw::c_uint = 31;
-pub const SO_PASSSEC: ::std::os::raw::c_uint = 34;
-pub const SO_TIMESTAMPNS: ::std::os::raw::c_uint = 35;
-pub const SCM_TIMESTAMPNS: ::std::os::raw::c_uint = 35;
-pub const SO_MARK: ::std::os::raw::c_uint = 36;
-pub const SO_TIMESTAMPING: ::std::os::raw::c_uint = 37;
-pub const SCM_TIMESTAMPING: ::std::os::raw::c_uint = 37;
-pub const SO_PROTOCOL: ::std::os::raw::c_uint = 38;
-pub const SO_DOMAIN: ::std::os::raw::c_uint = 39;
-pub const SO_RXQ_OVFL: ::std::os::raw::c_uint = 40;
-pub const SO_WIFI_STATUS: ::std::os::raw::c_uint = 41;
-pub const SCM_WIFI_STATUS: ::std::os::raw::c_uint = 41;
-pub const SO_PEEK_OFF: ::std::os::raw::c_uint = 42;
-pub const SO_NOFCS: ::std::os::raw::c_uint = 43;
-pub const SO_LOCK_FILTER: ::std::os::raw::c_uint = 44;
-pub const SO_SELECT_ERR_QUEUE: ::std::os::raw::c_uint = 45;
-pub const SO_BUSY_POLL: ::std::os::raw::c_uint = 46;
-pub const SO_MAX_PACING_RATE: ::std::os::raw::c_uint = 47;
-pub const SO_BPF_EXTENSIONS: ::std::os::raw::c_uint = 48;
-pub const SO_INCOMING_CPU: ::std::os::raw::c_uint = 49;
-pub const SO_ATTACH_BPF: ::std::os::raw::c_uint = 50;
-pub const SO_DETACH_BPF: ::std::os::raw::c_uint = 27;
-pub const IFNAMSIZ: ::std::os::raw::c_uint = 16;
-pub const IFALIASZ: ::std::os::raw::c_uint = 256;
-pub const GENERIC_HDLC_VERSION: ::std::os::raw::c_uint = 4;
-pub const CLOCK_DEFAULT: ::std::os::raw::c_uint = 0;
-pub const CLOCK_EXT: ::std::os::raw::c_uint = 1;
-pub const CLOCK_INT: ::std::os::raw::c_uint = 2;
-pub const CLOCK_TXINT: ::std::os::raw::c_uint = 3;
-pub const CLOCK_TXFROMRX: ::std::os::raw::c_uint = 4;
-pub const ENCODING_DEFAULT: ::std::os::raw::c_uint = 0;
-pub const ENCODING_NRZ: ::std::os::raw::c_uint = 1;
-pub const ENCODING_NRZI: ::std::os::raw::c_uint = 2;
-pub const ENCODING_FM_MARK: ::std::os::raw::c_uint = 3;
-pub const ENCODING_FM_SPACE: ::std::os::raw::c_uint = 4;
-pub const ENCODING_MANCHESTER: ::std::os::raw::c_uint = 5;
-pub const PARITY_DEFAULT: ::std::os::raw::c_uint = 0;
-pub const PARITY_NONE: ::std::os::raw::c_uint = 1;
-pub const PARITY_CRC16_PR0: ::std::os::raw::c_uint = 2;
-pub const PARITY_CRC16_PR1: ::std::os::raw::c_uint = 3;
-pub const PARITY_CRC16_PR0_CCITT: ::std::os::raw::c_uint = 4;
-pub const PARITY_CRC16_PR1_CCITT: ::std::os::raw::c_uint = 5;
-pub const PARITY_CRC32_PR0_CCITT: ::std::os::raw::c_uint = 6;
-pub const PARITY_CRC32_PR1_CCITT: ::std::os::raw::c_uint = 7;
-pub const LMI_DEFAULT: ::std::os::raw::c_uint = 0;
-pub const LMI_NONE: ::std::os::raw::c_uint = 1;
-pub const LMI_ANSI: ::std::os::raw::c_uint = 2;
-pub const LMI_CCITT: ::std::os::raw::c_uint = 3;
-pub const LMI_CISCO: ::std::os::raw::c_uint = 4;
-pub const IF_GET_IFACE: ::std::os::raw::c_uint = 1;
-pub const IF_GET_PROTO: ::std::os::raw::c_uint = 2;
-pub const IF_IFACE_V35: ::std::os::raw::c_uint = 4096;
-pub const IF_IFACE_V24: ::std::os::raw::c_uint = 4097;
-pub const IF_IFACE_X21: ::std::os::raw::c_uint = 4098;
-pub const IF_IFACE_T1: ::std::os::raw::c_uint = 4099;
-pub const IF_IFACE_E1: ::std::os::raw::c_uint = 4100;
-pub const IF_IFACE_SYNC_SERIAL: ::std::os::raw::c_uint = 4101;
-pub const IF_IFACE_X21D: ::std::os::raw::c_uint = 4102;
-pub const IF_PROTO_HDLC: ::std::os::raw::c_uint = 8192;
-pub const IF_PROTO_PPP: ::std::os::raw::c_uint = 8193;
-pub const IF_PROTO_CISCO: ::std::os::raw::c_uint = 8194;
-pub const IF_PROTO_FR: ::std::os::raw::c_uint = 8195;
-pub const IF_PROTO_FR_ADD_PVC: ::std::os::raw::c_uint = 8196;
-pub const IF_PROTO_FR_DEL_PVC: ::std::os::raw::c_uint = 8197;
-pub const IF_PROTO_X25: ::std::os::raw::c_uint = 8198;
-pub const IF_PROTO_HDLC_ETH: ::std::os::raw::c_uint = 8199;
-pub const IF_PROTO_FR_ADD_ETH_PVC: ::std::os::raw::c_uint = 8200;
-pub const IF_PROTO_FR_DEL_ETH_PVC: ::std::os::raw::c_uint = 8201;
-pub const IF_PROTO_FR_PVC: ::std::os::raw::c_uint = 8202;
-pub const IF_PROTO_FR_ETH_PVC: ::std::os::raw::c_uint = 8203;
-pub const IF_PROTO_RAW: ::std::os::raw::c_uint = 8204;
-pub const IFHWADDRLEN: ::std::os::raw::c_uint = 6;
+pub const __UAPI_DEF_IF_IFCONF: u32 = 1;
+pub const __UAPI_DEF_IF_IFMAP: u32 = 1;
+pub const __UAPI_DEF_IF_IFNAMSIZ: u32 = 1;
+pub const __UAPI_DEF_IF_IFREQ: u32 = 1;
+pub const __UAPI_DEF_IF_NET_DEVICE_FLAGS: u32 = 1;
+pub const __UAPI_DEF_IF_NET_DEVICE_FLAGS_LOWER_UP_DORMANT_ECHO: u32 = 1;
+pub const __UAPI_DEF_IN_ADDR: u32 = 1;
+pub const __UAPI_DEF_IN_IPPROTO: u32 = 1;
+pub const __UAPI_DEF_IN_PKTINFO: u32 = 1;
+pub const __UAPI_DEF_IP_MREQ: u32 = 1;
+pub const __UAPI_DEF_SOCKADDR_IN: u32 = 1;
+pub const __UAPI_DEF_IN_CLASS: u32 = 1;
+pub const __UAPI_DEF_IN6_ADDR: u32 = 1;
+pub const __UAPI_DEF_IN6_ADDR_ALT: u32 = 1;
+pub const __UAPI_DEF_SOCKADDR_IN6: u32 = 1;
+pub const __UAPI_DEF_IPV6_MREQ: u32 = 1;
+pub const __UAPI_DEF_IPPROTO_V6: u32 = 1;
+pub const __UAPI_DEF_IPV6_OPTIONS: u32 = 1;
+pub const __UAPI_DEF_IN6_PKTINFO: u32 = 1;
+pub const __UAPI_DEF_IP6_MTUINFO: u32 = 1;
+pub const __UAPI_DEF_SOCKADDR_IPX: u32 = 1;
+pub const __UAPI_DEF_IPX_ROUTE_DEFINITION: u32 = 1;
+pub const __UAPI_DEF_IPX_INTERFACE_DEFINITION: u32 = 1;
+pub const __UAPI_DEF_IPX_CONFIG_DATA: u32 = 1;
+pub const __UAPI_DEF_IPX_ROUTE_DEF: u32 = 1;
+pub const __UAPI_DEF_XATTR: u32 = 1;
+pub const __BITS_PER_LONG: u32 = 64;
+pub const __FD_SETSIZE: u32 = 1024;
+pub const _K_SS_MAXSIZE: u32 = 128;
+pub const _SYS_SOCKET_H: u32 = 1;
+pub const _FEATURES_H: u32 = 1;
+pub const _DEFAULT_SOURCE: u32 = 1;
+pub const __USE_ISOC11: u32 = 1;
+pub const __USE_ISOC99: u32 = 1;
+pub const __USE_ISOC95: u32 = 1;
+pub const __USE_POSIX_IMPLICITLY: u32 = 1;
+pub const _POSIX_SOURCE: u32 = 1;
+pub const _POSIX_C_SOURCE: u32 = 200809;
+pub const __USE_POSIX: u32 = 1;
+pub const __USE_POSIX2: u32 = 1;
+pub const __USE_POSIX199309: u32 = 1;
+pub const __USE_POSIX199506: u32 = 1;
+pub const __USE_XOPEN2K: u32 = 1;
+pub const __USE_XOPEN2K8: u32 = 1;
+pub const _ATFILE_SOURCE: u32 = 1;
+pub const __USE_MISC: u32 = 1;
+pub const __USE_ATFILE: u32 = 1;
+pub const __USE_FORTIFY_LEVEL: u32 = 0;
+pub const __GLIBC_USE_DEPRECATED_GETS: u32 = 0;
+pub const _STDC_PREDEF_H: u32 = 1;
+pub const __STDC_IEC_559__: u32 = 1;
+pub const __STDC_IEC_559_COMPLEX__: u32 = 1;
+pub const __STDC_ISO_10646__: u32 = 201706;
+pub const __STDC_NO_THREADS__: u32 = 1;
+pub const __GNU_LIBRARY__: u32 = 6;
+pub const __GLIBC__: u32 = 2;
+pub const __GLIBC_MINOR__: u32 = 27;
+pub const _SYS_CDEFS_H: u32 = 1;
+pub const __glibc_c99_flexarr_available: u32 = 1;
+pub const __WORDSIZE: u32 = 64;
+pub const __WORDSIZE_TIME64_COMPAT32: u32 = 1;
+pub const __SYSCALL_WORDSIZE: u32 = 64;
+pub const __HAVE_GENERIC_SELECTION: u32 = 1;
+pub const __iovec_defined: u32 = 1;
+pub const _SYS_TYPES_H: u32 = 1;
+pub const _BITS_TYPES_H: u32 = 1;
+pub const _BITS_TYPESIZES_H: u32 = 1;
+pub const __OFF_T_MATCHES_OFF64_T: u32 = 1;
+pub const __INO_T_MATCHES_INO64_T: u32 = 1;
+pub const __RLIM_T_MATCHES_RLIM64_T: u32 = 1;
+pub const __clock_t_defined: u32 = 1;
+pub const __clockid_t_defined: u32 = 1;
+pub const __time_t_defined: u32 = 1;
+pub const __timer_t_defined: u32 = 1;
+pub const _BITS_STDINT_INTN_H: u32 = 1;
+pub const __BIT_TYPES_DEFINED__: u32 = 1;
+pub const _ENDIAN_H: u32 = 1;
+pub const __LITTLE_ENDIAN: u32 = 1234;
+pub const __BIG_ENDIAN: u32 = 4321;
+pub const __PDP_ENDIAN: u32 = 3412;
+pub const __BYTE_ORDER: u32 = 1234;
+pub const __FLOAT_WORD_ORDER: u32 = 1234;
+pub const LITTLE_ENDIAN: u32 = 1234;
+pub const BIG_ENDIAN: u32 = 4321;
+pub const PDP_ENDIAN: u32 = 3412;
+pub const BYTE_ORDER: u32 = 1234;
+pub const _BITS_BYTESWAP_H: u32 = 1;
+pub const _BITS_UINTN_IDENTITY_H: u32 = 1;
+pub const _SYS_SELECT_H: u32 = 1;
+pub const __FD_ZERO_STOS: &'static [u8; 6usize] = b"stosq\0";
+pub const __sigset_t_defined: u32 = 1;
+pub const __timeval_defined: u32 = 1;
+pub const _STRUCT_TIMESPEC: u32 = 1;
+pub const FD_SETSIZE: u32 = 1024;
+pub const _BITS_PTHREADTYPES_COMMON_H: u32 = 1;
+pub const _THREAD_SHARED_TYPES_H: u32 = 1;
+pub const _BITS_PTHREADTYPES_ARCH_H: u32 = 1;
+pub const __SIZEOF_PTHREAD_MUTEX_T: u32 = 40;
+pub const __SIZEOF_PTHREAD_ATTR_T: u32 = 56;
+pub const __SIZEOF_PTHREAD_RWLOCK_T: u32 = 56;
+pub const __SIZEOF_PTHREAD_BARRIER_T: u32 = 32;
+pub const __SIZEOF_PTHREAD_MUTEXATTR_T: u32 = 4;
+pub const __SIZEOF_PTHREAD_COND_T: u32 = 48;
+pub const __SIZEOF_PTHREAD_CONDATTR_T: u32 = 4;
+pub const __SIZEOF_PTHREAD_RWLOCKATTR_T: u32 = 8;
+pub const __SIZEOF_PTHREAD_BARRIERATTR_T: u32 = 4;
+pub const __PTHREAD_MUTEX_LOCK_ELISION: u32 = 1;
+pub const __PTHREAD_MUTEX_NUSERS_AFTER_KIND: u32 = 0;
+pub const __PTHREAD_MUTEX_USE_UNION: u32 = 0;
+pub const __PTHREAD_RWLOCK_INT_FLAGS_SHARED: u32 = 1;
+pub const __PTHREAD_MUTEX_HAVE_PREV: u32 = 1;
+pub const __have_pthread_attr_t: u32 = 1;
+pub const PF_UNSPEC: u32 = 0;
+pub const PF_LOCAL: u32 = 1;
+pub const PF_UNIX: u32 = 1;
+pub const PF_FILE: u32 = 1;
+pub const PF_INET: u32 = 2;
+pub const PF_AX25: u32 = 3;
+pub const PF_IPX: u32 = 4;
+pub const PF_APPLETALK: u32 = 5;
+pub const PF_NETROM: u32 = 6;
+pub const PF_BRIDGE: u32 = 7;
+pub const PF_ATMPVC: u32 = 8;
+pub const PF_X25: u32 = 9;
+pub const PF_INET6: u32 = 10;
+pub const PF_ROSE: u32 = 11;
+pub const PF_DECnet: u32 = 12;
+pub const PF_NETBEUI: u32 = 13;
+pub const PF_SECURITY: u32 = 14;
+pub const PF_KEY: u32 = 15;
+pub const PF_NETLINK: u32 = 16;
+pub const PF_ROUTE: u32 = 16;
+pub const PF_PACKET: u32 = 17;
+pub const PF_ASH: u32 = 18;
+pub const PF_ECONET: u32 = 19;
+pub const PF_ATMSVC: u32 = 20;
+pub const PF_RDS: u32 = 21;
+pub const PF_SNA: u32 = 22;
+pub const PF_IRDA: u32 = 23;
+pub const PF_PPPOX: u32 = 24;
+pub const PF_WANPIPE: u32 = 25;
+pub const PF_LLC: u32 = 26;
+pub const PF_IB: u32 = 27;
+pub const PF_MPLS: u32 = 28;
+pub const PF_CAN: u32 = 29;
+pub const PF_TIPC: u32 = 30;
+pub const PF_BLUETOOTH: u32 = 31;
+pub const PF_IUCV: u32 = 32;
+pub const PF_RXRPC: u32 = 33;
+pub const PF_ISDN: u32 = 34;
+pub const PF_PHONET: u32 = 35;
+pub const PF_IEEE802154: u32 = 36;
+pub const PF_CAIF: u32 = 37;
+pub const PF_ALG: u32 = 38;
+pub const PF_NFC: u32 = 39;
+pub const PF_VSOCK: u32 = 40;
+pub const PF_KCM: u32 = 41;
+pub const PF_QIPCRTR: u32 = 42;
+pub const PF_SMC: u32 = 43;
+pub const PF_MAX: u32 = 44;
+pub const AF_UNSPEC: u32 = 0;
+pub const AF_LOCAL: u32 = 1;
+pub const AF_UNIX: u32 = 1;
+pub const AF_FILE: u32 = 1;
+pub const AF_INET: u32 = 2;
+pub const AF_AX25: u32 = 3;
+pub const AF_IPX: u32 = 4;
+pub const AF_APPLETALK: u32 = 5;
+pub const AF_NETROM: u32 = 6;
+pub const AF_BRIDGE: u32 = 7;
+pub const AF_ATMPVC: u32 = 8;
+pub const AF_X25: u32 = 9;
+pub const AF_INET6: u32 = 10;
+pub const AF_ROSE: u32 = 11;
+pub const AF_DECnet: u32 = 12;
+pub const AF_NETBEUI: u32 = 13;
+pub const AF_SECURITY: u32 = 14;
+pub const AF_KEY: u32 = 15;
+pub const AF_NETLINK: u32 = 16;
+pub const AF_ROUTE: u32 = 16;
+pub const AF_PACKET: u32 = 17;
+pub const AF_ASH: u32 = 18;
+pub const AF_ECONET: u32 = 19;
+pub const AF_ATMSVC: u32 = 20;
+pub const AF_RDS: u32 = 21;
+pub const AF_SNA: u32 = 22;
+pub const AF_IRDA: u32 = 23;
+pub const AF_PPPOX: u32 = 24;
+pub const AF_WANPIPE: u32 = 25;
+pub const AF_LLC: u32 = 26;
+pub const AF_IB: u32 = 27;
+pub const AF_MPLS: u32 = 28;
+pub const AF_CAN: u32 = 29;
+pub const AF_TIPC: u32 = 30;
+pub const AF_BLUETOOTH: u32 = 31;
+pub const AF_IUCV: u32 = 32;
+pub const AF_RXRPC: u32 = 33;
+pub const AF_ISDN: u32 = 34;
+pub const AF_PHONET: u32 = 35;
+pub const AF_IEEE802154: u32 = 36;
+pub const AF_CAIF: u32 = 37;
+pub const AF_ALG: u32 = 38;
+pub const AF_NFC: u32 = 39;
+pub const AF_VSOCK: u32 = 40;
+pub const AF_KCM: u32 = 41;
+pub const AF_QIPCRTR: u32 = 42;
+pub const AF_SMC: u32 = 43;
+pub const AF_MAX: u32 = 44;
+pub const SOL_RAW: u32 = 255;
+pub const SOL_DECNET: u32 = 261;
+pub const SOL_X25: u32 = 262;
+pub const SOL_PACKET: u32 = 263;
+pub const SOL_ATM: u32 = 264;
+pub const SOL_AAL: u32 = 265;
+pub const SOL_IRDA: u32 = 266;
+pub const SOL_NETBEUI: u32 = 267;
+pub const SOL_LLC: u32 = 268;
+pub const SOL_DCCP: u32 = 269;
+pub const SOL_NETLINK: u32 = 270;
+pub const SOL_TIPC: u32 = 271;
+pub const SOL_RXRPC: u32 = 272;
+pub const SOL_PPPOL2TP: u32 = 273;
+pub const SOL_BLUETOOTH: u32 = 274;
+pub const SOL_PNPIPE: u32 = 275;
+pub const SOL_RDS: u32 = 276;
+pub const SOL_IUCV: u32 = 277;
+pub const SOL_CAIF: u32 = 278;
+pub const SOL_ALG: u32 = 279;
+pub const SOL_NFC: u32 = 280;
+pub const SOL_KCM: u32 = 281;
+pub const SOL_TLS: u32 = 282;
+pub const SOMAXCONN: u32 = 128;
+pub const _BITS_SOCKADDR_H: u32 = 1;
+pub const _SS_SIZE: u32 = 128;
+pub const FIOSETOWN: u32 = 35073;
+pub const SIOCSPGRP: u32 = 35074;
+pub const FIOGETOWN: u32 = 35075;
+pub const SIOCGPGRP: u32 = 35076;
+pub const SIOCATMARK: u32 = 35077;
+pub const SIOCGSTAMP: u32 = 35078;
+pub const SIOCGSTAMPNS: u32 = 35079;
+pub const SOL_SOCKET: u32 = 1;
+pub const SO_DEBUG: u32 = 1;
+pub const SO_REUSEADDR: u32 = 2;
+pub const SO_TYPE: u32 = 3;
+pub const SO_ERROR: u32 = 4;
+pub const SO_DONTROUTE: u32 = 5;
+pub const SO_BROADCAST: u32 = 6;
+pub const SO_SNDBUF: u32 = 7;
+pub const SO_RCVBUF: u32 = 8;
+pub const SO_SNDBUFFORCE: u32 = 32;
+pub const SO_RCVBUFFORCE: u32 = 33;
+pub const SO_KEEPALIVE: u32 = 9;
+pub const SO_OOBINLINE: u32 = 10;
+pub const SO_NO_CHECK: u32 = 11;
+pub const SO_PRIORITY: u32 = 12;
+pub const SO_LINGER: u32 = 13;
+pub const SO_BSDCOMPAT: u32 = 14;
+pub const SO_REUSEPORT: u32 = 15;
+pub const SO_PASSCRED: u32 = 16;
+pub const SO_PEERCRED: u32 = 17;
+pub const SO_RCVLOWAT: u32 = 18;
+pub const SO_SNDLOWAT: u32 = 19;
+pub const SO_RCVTIMEO: u32 = 20;
+pub const SO_SNDTIMEO: u32 = 21;
+pub const SO_SECURITY_AUTHENTICATION: u32 = 22;
+pub const SO_SECURITY_ENCRYPTION_TRANSPORT: u32 = 23;
+pub const SO_SECURITY_ENCRYPTION_NETWORK: u32 = 24;
+pub const SO_BINDTODEVICE: u32 = 25;
+pub const SO_ATTACH_FILTER: u32 = 26;
+pub const SO_DETACH_FILTER: u32 = 27;
+pub const SO_GET_FILTER: u32 = 26;
+pub const SO_PEERNAME: u32 = 28;
+pub const SO_TIMESTAMP: u32 = 29;
+pub const SCM_TIMESTAMP: u32 = 29;
+pub const SO_ACCEPTCONN: u32 = 30;
+pub const SO_PEERSEC: u32 = 31;
+pub const SO_PASSSEC: u32 = 34;
+pub const SO_TIMESTAMPNS: u32 = 35;
+pub const SCM_TIMESTAMPNS: u32 = 35;
+pub const SO_MARK: u32 = 36;
+pub const SO_TIMESTAMPING: u32 = 37;
+pub const SCM_TIMESTAMPING: u32 = 37;
+pub const SO_PROTOCOL: u32 = 38;
+pub const SO_DOMAIN: u32 = 39;
+pub const SO_RXQ_OVFL: u32 = 40;
+pub const SO_WIFI_STATUS: u32 = 41;
+pub const SCM_WIFI_STATUS: u32 = 41;
+pub const SO_PEEK_OFF: u32 = 42;
+pub const SO_NOFCS: u32 = 43;
+pub const SO_LOCK_FILTER: u32 = 44;
+pub const SO_SELECT_ERR_QUEUE: u32 = 45;
+pub const SO_BUSY_POLL: u32 = 46;
+pub const SO_MAX_PACING_RATE: u32 = 47;
+pub const SO_BPF_EXTENSIONS: u32 = 48;
+pub const SO_INCOMING_CPU: u32 = 49;
+pub const SO_ATTACH_BPF: u32 = 50;
+pub const SO_DETACH_BPF: u32 = 27;
+pub const SO_ATTACH_REUSEPORT_CBPF: u32 = 51;
+pub const SO_ATTACH_REUSEPORT_EBPF: u32 = 52;
+pub const SO_CNX_ADVICE: u32 = 53;
+pub const SCM_TIMESTAMPING_OPT_STATS: u32 = 54;
+pub const SO_MEMINFO: u32 = 55;
+pub const SO_INCOMING_NAPI_ID: u32 = 56;
+pub const SO_COOKIE: u32 = 57;
+pub const SCM_TIMESTAMPING_PKTINFO: u32 = 58;
+pub const SO_PEERGROUPS: u32 = 59;
+pub const SO_ZEROCOPY: u32 = 60;
+pub const __osockaddr_defined: u32 = 1;
+pub const IFNAMSIZ: u32 = 16;
+pub const IFALIASZ: u32 = 256;
+pub const GENERIC_HDLC_VERSION: u32 = 4;
+pub const CLOCK_DEFAULT: u32 = 0;
+pub const CLOCK_EXT: u32 = 1;
+pub const CLOCK_INT: u32 = 2;
+pub const CLOCK_TXINT: u32 = 3;
+pub const CLOCK_TXFROMRX: u32 = 4;
+pub const ENCODING_DEFAULT: u32 = 0;
+pub const ENCODING_NRZ: u32 = 1;
+pub const ENCODING_NRZI: u32 = 2;
+pub const ENCODING_FM_MARK: u32 = 3;
+pub const ENCODING_FM_SPACE: u32 = 4;
+pub const ENCODING_MANCHESTER: u32 = 5;
+pub const PARITY_DEFAULT: u32 = 0;
+pub const PARITY_NONE: u32 = 1;
+pub const PARITY_CRC16_PR0: u32 = 2;
+pub const PARITY_CRC16_PR1: u32 = 3;
+pub const PARITY_CRC16_PR0_CCITT: u32 = 4;
+pub const PARITY_CRC16_PR1_CCITT: u32 = 5;
+pub const PARITY_CRC32_PR0_CCITT: u32 = 6;
+pub const PARITY_CRC32_PR1_CCITT: u32 = 7;
+pub const LMI_DEFAULT: u32 = 0;
+pub const LMI_NONE: u32 = 1;
+pub const LMI_ANSI: u32 = 2;
+pub const LMI_CCITT: u32 = 3;
+pub const LMI_CISCO: u32 = 4;
+pub const IF_GET_IFACE: u32 = 1;
+pub const IF_GET_PROTO: u32 = 2;
+pub const IF_IFACE_V35: u32 = 4096;
+pub const IF_IFACE_V24: u32 = 4097;
+pub const IF_IFACE_X21: u32 = 4098;
+pub const IF_IFACE_T1: u32 = 4099;
+pub const IF_IFACE_E1: u32 = 4100;
+pub const IF_IFACE_SYNC_SERIAL: u32 = 4101;
+pub const IF_IFACE_X21D: u32 = 4102;
+pub const IF_PROTO_HDLC: u32 = 8192;
+pub const IF_PROTO_PPP: u32 = 8193;
+pub const IF_PROTO_CISCO: u32 = 8194;
+pub const IF_PROTO_FR: u32 = 8195;
+pub const IF_PROTO_FR_ADD_PVC: u32 = 8196;
+pub const IF_PROTO_FR_DEL_PVC: u32 = 8197;
+pub const IF_PROTO_X25: u32 = 8198;
+pub const IF_PROTO_HDLC_ETH: u32 = 8199;
+pub const IF_PROTO_FR_ADD_ETH_PVC: u32 = 8200;
+pub const IF_PROTO_FR_DEL_ETH_PVC: u32 = 8201;
+pub const IF_PROTO_FR_PVC: u32 = 8202;
+pub const IF_PROTO_FR_ETH_PVC: u32 = 8203;
+pub const IF_PROTO_RAW: u32 = 8204;
+pub const IFHWADDRLEN: u32 = 6;
 pub type __s8 = ::std::os::raw::c_schar;
 pub type __u8 = ::std::os::raw::c_uchar;
 pub type __s16 = ::std::os::raw::c_short;
@@ -391,38 +408,10 @@ pub type __u32 = ::std::os::raw::c_uint;
 pub type __s64 = ::std::os::raw::c_longlong;
 pub type __u64 = ::std::os::raw::c_ulonglong;
 #[repr(C)]
-#[derive(Debug, Default, Copy)]
+#[derive(Debug, Default, Copy, Clone)]
 pub struct __kernel_fd_set {
     pub fds_bits: [::std::os::raw::c_ulong; 16usize],
 }
-#[test]
-fn bindgen_test_layout___kernel_fd_set() {
-    assert_eq!(
-        ::std::mem::size_of::<__kernel_fd_set>(),
-        128usize,
-        concat!("Size of: ", stringify!(__kernel_fd_set))
-    );
-    assert_eq!(
-        ::std::mem::align_of::<__kernel_fd_set>(),
-        8usize,
-        concat!("Alignment of ", stringify!(__kernel_fd_set))
-    );
-    assert_eq!(
-        unsafe { &(*(0 as *const __kernel_fd_set)).fds_bits as *const _ as usize },
-        0usize,
-        concat!(
-            "Alignment of field: ",
-            stringify!(__kernel_fd_set),
-            "::",
-            stringify!(fds_bits)
-        )
-    );
-}
-impl Clone for __kernel_fd_set {
-    fn clone(&self) -> Self {
-        *self
-    }
-}
 pub type __kernel_sighandler_t =
     ::std::option::Option<unsafe extern "C" fn(arg1: ::std::os::raw::c_int)>;
 pub type __kernel_key_t = ::std::os::raw::c_int;
@@ -446,38 +435,10 @@ pub type __kernel_size_t = __kernel_ulong_t;
 pub type __kernel_ssize_t = __kernel_long_t;
 pub type __kernel_ptrdiff_t = __kernel_long_t;
 #[repr(C)]
-#[derive(Debug, Default, Copy)]
+#[derive(Debug, Default, Copy, Clone)]
 pub struct __kernel_fsid_t {
     pub val: [::std::os::raw::c_int; 2usize],
 }
-#[test]
-fn bindgen_test_layout___kernel_fsid_t() {
-    assert_eq!(
-        ::std::mem::size_of::<__kernel_fsid_t>(),
-        8usize,
-        concat!("Size of: ", stringify!(__kernel_fsid_t))
-    );
-    assert_eq!(
-        ::std::mem::align_of::<__kernel_fsid_t>(),
-        4usize,
-        concat!("Alignment of ", stringify!(__kernel_fsid_t))
-    );
-    assert_eq!(
-        unsafe { &(*(0 as *const __kernel_fsid_t)).val as *const _ as usize },
-        0usize,
-        concat!(
-            "Alignment of field: ",
-            stringify!(__kernel_fsid_t),
-            "::",
-            stringify!(val)
-        )
-    );
-}
-impl Clone for __kernel_fsid_t {
-    fn clone(&self) -> Self {
-        *self
-    }
-}
 pub type __kernel_off_t = __kernel_long_t;
 pub type __kernel_loff_t = ::std::os::raw::c_longlong;
 pub type __kernel_time_t = __kernel_long_t;
@@ -497,49 +458,28 @@ pub type __sum16 = __u16;
 pub type __wsum = __u32;
 pub type __kernel_sa_family_t = ::std::os::raw::c_ushort;
 #[repr(C)]
+#[repr(align(8))]
+#[derive(Copy, Clone)]
 pub struct __kernel_sockaddr_storage {
     pub ss_family: __kernel_sa_family_t,
     pub __data: [::std::os::raw::c_char; 126usize],
-    pub __bindgen_align: [u64; 0usize],
-}
-#[test]
-fn bindgen_test_layout___kernel_sockaddr_storage() {
-    assert_eq!(
-        ::std::mem::size_of::<__kernel_sockaddr_storage>(),
-        128usize,
-        concat!("Size of: ", stringify!(__kernel_sockaddr_storage))
-    );
-    assert_eq!(
-        ::std::mem::align_of::<__kernel_sockaddr_storage>(),
-        8usize,
-        concat!("Alignment of ", stringify!(__kernel_sockaddr_storage))
-    );
-    assert_eq!(
-        unsafe { &(*(0 as *const __kernel_sockaddr_storage)).ss_family as *const _ as usize },
-        0usize,
-        concat!(
-            "Alignment of field: ",
-            stringify!(__kernel_sockaddr_storage),
-            "::",
-            stringify!(ss_family)
-        )
-    );
-    assert_eq!(
-        unsafe { &(*(0 as *const __kernel_sockaddr_storage)).__data as *const _ as usize },
-        2usize,
-        concat!(
-            "Alignment of field: ",
-            stringify!(__kernel_sockaddr_storage),
-            "::",
-            stringify!(__data)
-        )
-    );
 }
 impl Default for __kernel_sockaddr_storage {
     fn default() -> Self {
         unsafe { ::std::mem::zeroed() }
     }
 }
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct iovec {
+    pub iov_base: *mut ::std::os::raw::c_void,
+    pub iov_len: usize,
+}
+impl Default for iovec {
+    fn default() -> Self {
+        unsafe { ::std::mem::zeroed() }
+    }
+}
 pub type __u_char = ::std::os::raw::c_uchar;
 pub type __u_short = ::std::os::raw::c_ushort;
 pub type __u_int = ::std::os::raw::c_uint;
@@ -554,6 +494,8 @@ pub type __int64_t = ::std::os::raw::c_long;
 pub type __uint64_t = ::std::os::raw::c_ulong;
 pub type __quad_t = ::std::os::raw::c_long;
 pub type __u_quad_t = ::std::os::raw::c_ulong;
+pub type __intmax_t = ::std::os::raw::c_long;
+pub type __uintmax_t = ::std::os::raw::c_ulong;
 pub type __dev_t = ::std::os::raw::c_ulong;
 pub type __uid_t = ::std::os::raw::c_uint;
 pub type __gid_t = ::std::os::raw::c_uint;
@@ -565,38 +507,10 @@ pub type __off_t = ::std::os::raw::c_long;
 pub type __off64_t = ::std::os::raw::c_long;
 pub type __pid_t = ::std::os::raw::c_int;
 #[repr(C)]
-#[derive(Debug, Default, Copy)]
+#[derive(Debug, Default, Copy, Clone)]
 pub struct __fsid_t {
     pub __val: [::std::os::raw::c_int; 2usize],
 }
-#[test]
-fn bindgen_test_layout___fsid_t() {
-    assert_eq!(
-        ::std::mem::size_of::<__fsid_t>(),
-        8usize,
-        concat!("Size of: ", stringify!(__fsid_t))
-    );
-    assert_eq!(
-        ::std::mem::align_of::<__fsid_t>(),
-        4usize,
-        concat!("Alignment of ", stringify!(__fsid_t))
-    );
-    assert_eq!(
-        unsafe { &(*(0 as *const __fsid_t)).__val as *const _ as usize },
-        0usize,
-        concat!(
-            "Alignment of field: ",
-            stringify!(__fsid_t),
-            "::",
-            stringify!(__val)
-        )
-    );
-}
-impl Clone for __fsid_t {
-    fn clone(&self) -> Self {
-        *self
-    }
-}
 pub type __clock_t = ::std::os::raw::c_long;
 pub type __rlim_t = ::std::os::raw::c_ulong;
 pub type __rlim64_t = ::std::os::raw::c_ulong;
@@ -620,10 +534,10 @@ pub type __ssize_t = ::std::os::raw::c_long;
 pub type __syscall_slong_t = ::std::os::raw::c_long;
 pub type __syscall_ulong_t = ::std::os::raw::c_ulong;
 pub type __loff_t = __off64_t;
-pub type __qaddr_t = *mut __quad_t;
 pub type __caddr_t = *mut ::std::os::raw::c_char;
 pub type __intptr_t = ::std::os::raw::c_long;
 pub type __socklen_t = ::std::os::raw::c_uint;
+pub type __sig_atomic_t = ::std::os::raw::c_int;
 pub type u_char = __u_char;
 pub type u_short = __u_short;
 pub type u_int = __u_int;
@@ -645,8 +559,8 @@ pub type daddr_t = __daddr_t;
 pub type caddr_t = __caddr_t;
 pub type key_t = __key_t;
 pub type clock_t = __clock_t;
-pub type time_t = __time_t;
 pub type clockid_t = __clockid_t;
+pub type time_t = __time_t;
 pub type timer_t = __timer_t;
 pub type ulong = ::std::os::raw::c_ulong;
 pub type ushort = ::std::os::raw::c_ushort;
@@ -656,164 +570,31 @@ pub type u_int16_t = ::std::os::raw::c_ushort;
 pub type u_int32_t = ::std::os::raw::c_uint;
 pub type u_int64_t = ::std::os::raw::c_ulong;
 pub type register_t = ::std::os::raw::c_long;
-pub type __sig_atomic_t = ::std::os::raw::c_int;
 #[repr(C)]
-#[derive(Debug, Default, Copy)]
+#[derive(Debug, Default, Copy, Clone)]
 pub struct __sigset_t {
     pub __val: [::std::os::raw::c_ulong; 16usize],
 }
-#[test]
-fn bindgen_test_layout___sigset_t() {
-    assert_eq!(
-        ::std::mem::size_of::<__sigset_t>(),
-        128usize,
-        concat!("Size of: ", stringify!(__sigset_t))
-    );
-    assert_eq!(
-        ::std::mem::align_of::<__sigset_t>(),
-        8usize,
-        concat!("Alignment of ", stringify!(__sigset_t))
-    );
-    assert_eq!(
-        unsafe { &(*(0 as *const __sigset_t)).__val as *const _ as usize },
-        0usize,
-        concat!(
-            "Alignment of field: ",
-            stringify!(__sigset_t),
-            "::",
-            stringify!(__val)
-        )
-    );
-}
-impl Clone for __sigset_t {
-    fn clone(&self) -> Self {
-        *self
-    }
-}
 pub type sigset_t = __sigset_t;
 #[repr(C)]
-#[derive(Debug, Default, Copy)]
-pub struct timespec {
-    pub tv_sec: __time_t,
-    pub tv_nsec: __syscall_slong_t,
-}
-#[test]
-fn bindgen_test_layout_timespec() {
-    assert_eq!(
-        ::std::mem::size_of::<timespec>(),
-        16usize,
-        concat!("Size of: ", stringify!(timespec))
-    );
-    assert_eq!(
-        ::std::mem::align_of::<timespec>(),
-        8usize,
-        concat!("Alignment of ", stringify!(timespec))
-    );
-    assert_eq!(
-        unsafe { &(*(0 as *const timespec)).tv_sec as *const _ as usize },
-        0usize,
-        concat!(
-            "Alignment of field: ",
-            stringify!(timespec),
-            "::",
-            stringify!(tv_sec)
-        )
-    );
-    assert_eq!(
-        unsafe { &(*(0 as *const timespec)).tv_nsec as *const _ as usize },
-        8usize,
-        concat!(
-            "Alignment of field: ",
-            stringify!(timespec),
-            "::",
-            stringify!(tv_nsec)
-        )
-    );
-}
-impl Clone for timespec {
-    fn clone(&self) -> Self {
-        *self
-    }
-}
-#[repr(C)]
-#[derive(Debug, Default, Copy)]
+#[derive(Debug, Default, Copy, Clone)]
 pub struct timeval {
     pub tv_sec: __time_t,
     pub tv_usec: __suseconds_t,
 }
-#[test]
-fn bindgen_test_layout_timeval() {
-    assert_eq!(
-        ::std::mem::size_of::<timeval>(),
-        16usize,
-        concat!("Size of: ", stringify!(timeval))
-    );
-    assert_eq!(
-        ::std::mem::align_of::<timeval>(),
-        8usize,
-        concat!("Alignment of ", stringify!(timeval))
-    );
-    assert_eq!(
-        unsafe { &(*(0 as *const timeval)).tv_sec as *const _ as usize },
-        0usize,
-        concat!(
-            "Alignment of field: ",
-            stringify!(timeval),
-            "::",
-            stringify!(tv_sec)
-        )
-    );
-    assert_eq!(
-        unsafe { &(*(0 as *const timeval)).tv_usec as *const _ as usize },
-        8usize,
-        concat!(
-            "Alignment of field: ",
-            stringify!(timeval),
-            "::",
-            stringify!(tv_usec)
-        )
-    );
-}
-impl Clone for timeval {
-    fn clone(&self) -> Self {
-        *self
-    }
+#[repr(C)]
+#[derive(Debug, Default, Copy, Clone)]
+pub struct timespec {
+    pub tv_sec: __time_t,
+    pub tv_nsec: __syscall_slong_t,
 }
 pub type suseconds_t = __suseconds_t;
 pub type __fd_mask = ::std::os::raw::c_long;
 #[repr(C)]
-#[derive(Debug, Default, Copy)]
+#[derive(Debug, Default, Copy, Clone)]
 pub struct fd_set {
     pub __fds_bits: [__fd_mask; 16usize],
 }
-#[test]
-fn bindgen_test_layout_fd_set() {
-    assert_eq!(
-        ::std::mem::size_of::<fd_set>(),
-        128usize,
-        concat!("Size of: ", stringify!(fd_set))
-    );
-    assert_eq!(
-        ::std::mem::align_of::<fd_set>(),
-        8usize,
-        concat!("Alignment of ", stringify!(fd_set))
-    );
-    assert_eq!(
-        unsafe { &(*(0 as *const fd_set)).__fds_bits as *const _ as usize },
-        0usize,
-        concat!(
-            "Alignment of field: ",
-            stringify!(fd_set),
-            "::",
-            stringify!(__fds_bits)
-        )
-    );
-}
-impl Clone for fd_set {
-    fn clone(&self) -> Self {
-        *self
-    }
-}
 pub type fd_mask = __fd_mask;
 extern "C" {
     pub fn select(
@@ -834,112 +615,32 @@ extern "C" {
         __sigmask: *const __sigset_t,
     ) -> ::std::os::raw::c_int;
 }
-extern "C" {
-    pub fn gnu_dev_major(__dev: ::std::os::raw::c_ulonglong) -> ::std::os::raw::c_uint;
-}
-extern "C" {
-    pub fn gnu_dev_minor(__dev: ::std::os::raw::c_ulonglong) -> ::std::os::raw::c_uint;
-}
-extern "C" {
-    pub fn gnu_dev_makedev(
-        __major: ::std::os::raw::c_uint,
-        __minor: ::std::os::raw::c_uint,
-    ) -> ::std::os::raw::c_ulonglong;
-}
 pub type blksize_t = __blksize_t;
 pub type blkcnt_t = __blkcnt_t;
 pub type fsblkcnt_t = __fsblkcnt_t;
 pub type fsfilcnt_t = __fsfilcnt_t;
-pub type pthread_t = ::std::os::raw::c_ulong;
 #[repr(C)]
-#[derive(Debug, Default, Copy)]
-pub struct pthread_attr_t {
-    pub __size: __BindgenUnionField<[::std::os::raw::c_char; 56usize]>,
-    pub __align: __BindgenUnionField<::std::os::raw::c_long>,
-    pub bindgen_union_field: [u64; 7usize],
-}
-#[test]
-fn bindgen_test_layout_pthread_attr_t() {
-    assert_eq!(
-        ::std::mem::size_of::<pthread_attr_t>(),
-        56usize,
-        concat!("Size of: ", stringify!(pthread_attr_t))
-    );
-    assert_eq!(
-        ::std::mem::align_of::<pthread_attr_t>(),
-        8usize,
-        concat!("Alignment of ", stringify!(pthread_attr_t))
-    );
-    assert_eq!(
-        unsafe { &(*(0 as *const pthread_attr_t)).__size as *const _ as usize },
-        0usize,
-        concat!(
-            "Alignment of field: ",
-            stringify!(pthread_attr_t),
-            "::",
-            stringify!(__size)
-        )
-    );
-    assert_eq!(
-        unsafe { &(*(0 as *const pthread_attr_t)).__align as *const _ as usize },
-        0usize,
-        concat!(
-            "Alignment of field: ",
-            stringify!(pthread_attr_t),
-            "::",
-            stringify!(__align)
-        )
-    );
-}
-impl Clone for pthread_attr_t {
-    fn clone(&self) -> Self {
-        *self
-    }
+#[derive(Debug, Default, Copy, Clone)]
+pub struct __pthread_rwlock_arch_t {
+    pub __readers: ::std::os::raw::c_uint,
+    pub __writers: ::std::os::raw::c_uint,
+    pub __wrphase_futex: ::std::os::raw::c_uint,
+    pub __writers_futex: ::std::os::raw::c_uint,
+    pub __pad3: ::std::os::raw::c_uint,
+    pub __pad4: ::std::os::raw::c_uint,
+    pub __cur_writer: ::std::os::raw::c_int,
+    pub __shared: ::std::os::raw::c_int,
+    pub __rwelision: ::std::os::raw::c_schar,
+    pub __pad1: [::std::os::raw::c_uchar; 7usize],
+    pub __pad2: ::std::os::raw::c_ulong,
+    pub __flags: ::std::os::raw::c_uint,
 }
 #[repr(C)]
-#[derive(Debug, Copy)]
+#[derive(Debug, Copy, Clone)]
 pub struct __pthread_internal_list {
     pub __prev: *mut __pthread_internal_list,
     pub __next: *mut __pthread_internal_list,
 }
-#[test]
-fn bindgen_test_layout___pthread_internal_list() {
-    assert_eq!(
-        ::std::mem::size_of::<__pthread_internal_list>(),
-        16usize,
-        concat!("Size of: ", stringify!(__pthread_internal_list))
-    );
-    assert_eq!(
-        ::std::mem::align_of::<__pthread_internal_list>(),
-        8usize,
-        concat!("Alignment of ", stringify!(__pthread_internal_list))
-    );
-    assert_eq!(
-        unsafe { &(*(0 as *const __pthread_internal_list)).__prev as *const _ as usize },
-        0usize,
-        concat!(
-            "Alignment of field: ",
-            stringify!(__pthread_internal_list),
-            "::",
-            stringify!(__prev)
-        )
-    );
-    assert_eq!(
-        unsafe { &(*(0 as *const __pthread_internal_list)).__next as *const _ as usize },
-        8usize,
-        concat!(
-            "Alignment of field: ",
-            stringify!(__pthread_internal_list),
-            "::",
-            stringify!(__next)
-        )
-    );
-}
-impl Clone for __pthread_internal_list {
-    fn clone(&self) -> Self {
-        *self
-    }
-}
 impl Default for __pthread_internal_list {
     fn default() -> Self {
         unsafe { ::std::mem::zeroed() }
@@ -947,16 +648,8 @@ impl Default for __pthread_internal_list {
 }
 pub type __pthread_list_t = __pthread_internal_list;
 #[repr(C)]
-#[derive(Debug, Default, Copy)]
-pub struct pthread_mutex_t {
-    pub __data: __BindgenUnionField<pthread_mutex_t___pthread_mutex_s>,
-    pub __size: __BindgenUnionField<[::std::os::raw::c_char; 40usize]>,
-    pub __align: __BindgenUnionField<::std::os::raw::c_long>,
-    pub bindgen_union_field: [u64; 5usize],
-}
-#[repr(C)]
-#[derive(Debug, Copy)]
-pub struct pthread_mutex_t___pthread_mutex_s {
+#[derive(Debug, Copy, Clone)]
+pub struct __pthread_mutex_s {
     pub __lock: ::std::os::raw::c_int,
     pub __count: ::std::os::raw::c_uint,
     pub __owner: ::std::os::raw::c_int,
@@ -966,867 +659,177 @@ pub struct pthread_mutex_t___pthread_mutex_s {
     pub __elision: ::std::os::raw::c_short,
     pub __list: __pthread_list_t,
 }
-#[test]
-fn bindgen_test_layout_pthread_mutex_t___pthread_mutex_s() {
-    assert_eq!(
-        ::std::mem::size_of::<pthread_mutex_t___pthread_mutex_s>(),
-        40usize,
-        concat!("Size of: ", stringify!(pthread_mutex_t___pthread_mutex_s))
-    );
-    assert_eq!(
-        ::std::mem::align_of::<pthread_mutex_t___pthread_mutex_s>(),
-        8usize,
-        concat!(
-            "Alignment of ",
-            stringify!(pthread_mutex_t___pthread_mutex_s)
-        )
-    );
-    assert_eq!(
-        unsafe { &(*(0 as *const pthread_mutex_t___pthread_mutex_s)).__lock as *const _ as usize },
-        0usize,
-        concat!(
-            "Alignment of field: ",
-            stringify!(pthread_mutex_t___pthread_mutex_s),
-            "::",
-            stringify!(__lock)
-        )
-    );
-    assert_eq!(
-        unsafe { &(*(0 as *const pthread_mutex_t___pthread_mutex_s)).__count as *const _ as usize },
-        4usize,
-        concat!(
-            "Alignment of field: ",
-            stringify!(pthread_mutex_t___pthread_mutex_s),
-            "::",
-            stringify!(__count)
-        )
-    );
-    assert_eq!(
-        unsafe { &(*(0 as *const pthread_mutex_t___pthread_mutex_s)).__owner as *const _ as usize },
-        8usize,
-        concat!(
-            "Alignment of field: ",
-            stringify!(pthread_mutex_t___pthread_mutex_s),
-            "::",
-            stringify!(__owner)
-        )
-    );
-    assert_eq!(
-        unsafe {
-            &(*(0 as *const pthread_mutex_t___pthread_mutex_s)).__nusers as *const _ as usize
-        },
-        12usize,
-        concat!(
-            "Alignment of field: ",
-            stringify!(pthread_mutex_t___pthread_mutex_s),
-            "::",
-            stringify!(__nusers)
-        )
-    );
-    assert_eq!(
-        unsafe { &(*(0 as *const pthread_mutex_t___pthread_mutex_s)).__kind as *const _ as usize },
-        16usize,
-        concat!(
-            "Alignment of field: ",
-            stringify!(pthread_mutex_t___pthread_mutex_s),
-            "::",
-            stringify!(__kind)
-        )
-    );
-    assert_eq!(
-        unsafe { &(*(0 as *const pthread_mutex_t___pthread_mutex_s)).__spins as *const _ as usize },
-        20usize,
-        concat!(
-            "Alignment of field: ",
-            stringify!(pthread_mutex_t___pthread_mutex_s),
-            "::",
-            stringify!(__spins)
-        )
-    );
-    assert_eq!(
-        unsafe {
-            &(*(0 as *const pthread_mutex_t___pthread_mutex_s)).__elision as *const _ as usize
-        },
-        22usize,
-        concat!(
-            "Alignment of field: ",
-            stringify!(pthread_mutex_t___pthread_mutex_s),
-            "::",
-            stringify!(__elision)
-        )
-    );
-    assert_eq!(
-        unsafe { &(*(0 as *const pthread_mutex_t___pthread_mutex_s)).__list as *const _ as usize },
-        24usize,
-        concat!(
-            "Alignment of field: ",
-            stringify!(pthread_mutex_t___pthread_mutex_s),
-            "::",
-            stringify!(__list)
-        )
-    );
-}
-impl Clone for pthread_mutex_t___pthread_mutex_s {
-    fn clone(&self) -> Self {
-        *self
-    }
-}
-impl Default for pthread_mutex_t___pthread_mutex_s {
+impl Default for __pthread_mutex_s {
     fn default() -> Self {
         unsafe { ::std::mem::zeroed() }
     }
 }
-#[test]
-fn bindgen_test_layout_pthread_mutex_t() {
-    assert_eq!(
-        ::std::mem::size_of::<pthread_mutex_t>(),
-        40usize,
-        concat!("Size of: ", stringify!(pthread_mutex_t))
-    );
-    assert_eq!(
-        ::std::mem::align_of::<pthread_mutex_t>(),
-        8usize,
-        concat!("Alignment of ", stringify!(pthread_mutex_t))
-    );
-    assert_eq!(
-        unsafe { &(*(0 as *const pthread_mutex_t)).__data as *const _ as usize },
-        0usize,
-        concat!(
-            "Alignment of field: ",
-            stringify!(pthread_mutex_t),
-            "::",
-            stringify!(__data)
-        )
-    );
-    assert_eq!(
-        unsafe { &(*(0 as *const pthread_mutex_t)).__size as *const _ as usize },
-        0usize,
-        concat!(
-            "Alignment of field: ",
-            stringify!(pthread_mutex_t),
-            "::",
-            stringify!(__size)
-        )
-    );
-    assert_eq!(
-        unsafe { &(*(0 as *const pthread_mutex_t)).__align as *const _ as usize },
-        0usize,
-        concat!(
-            "Alignment of field: ",
-            stringify!(pthread_mutex_t),
-            "::",
-            stringify!(__align)
-        )
-    );
-}
-impl Clone for pthread_mutex_t {
-    fn clone(&self) -> Self {
-        *self
-    }
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct __pthread_cond_s {
+    pub __bindgen_anon_1: __pthread_cond_s__bindgen_ty_1,
+    pub __bindgen_anon_2: __pthread_cond_s__bindgen_ty_2,
+    pub __g_refs: [::std::os::raw::c_uint; 2usize],
+    pub __g_size: [::std::os::raw::c_uint; 2usize],
+    pub __g1_orig_size: ::std::os::raw::c_uint,
+    pub __wrefs: ::std::os::raw::c_uint,
+    pub __g_signals: [::std::os::raw::c_uint; 2usize],
 }
 #[repr(C)]
-#[derive(Debug, Default, Copy)]
-pub struct pthread_mutexattr_t {
-    pub __size: __BindgenUnionField<[::std::os::raw::c_char; 4usize]>,
-    pub __align: __BindgenUnionField<::std::os::raw::c_int>,
-    pub bindgen_union_field: u32,
-}
-#[test]
-fn bindgen_test_layout_pthread_mutexattr_t() {
-    assert_eq!(
-        ::std::mem::size_of::<pthread_mutexattr_t>(),
-        4usize,
-        concat!("Size of: ", stringify!(pthread_mutexattr_t))
-    );
-    assert_eq!(
-        ::std::mem::align_of::<pthread_mutexattr_t>(),
-        4usize,
-        concat!("Alignment of ", stringify!(pthread_mutexattr_t))
-    );
-    assert_eq!(
-        unsafe { &(*(0 as *const pthread_mutexattr_t)).__size as *const _ as usize },
-        0usize,
-        concat!(
-            "Alignment of field: ",
-            stringify!(pthread_mutexattr_t),
-            "::",
-            stringify!(__size)
-        )
-    );
-    assert_eq!(
-        unsafe { &(*(0 as *const pthread_mutexattr_t)).__align as *const _ as usize },
-        0usize,
-        concat!(
-            "Alignment of field: ",
-            stringify!(pthread_mutexattr_t),
-            "::",
-            stringify!(__align)
-        )
-    );
-}
-impl Clone for pthread_mutexattr_t {
-    fn clone(&self) -> Self {
-        *self
+#[derive(Copy, Clone)]
+pub union __pthread_cond_s__bindgen_ty_1 {
+    pub __wseq: ::std::os::raw::c_ulonglong,
+    pub __wseq32: __pthread_cond_s__bindgen_ty_1__bindgen_ty_1,
+    _bindgen_union_align: u64,
+}
+#[repr(C)]
+#[derive(Debug, Default, Copy, Clone)]
+pub struct __pthread_cond_s__bindgen_ty_1__bindgen_ty_1 {
+    pub __low: ::std::os::raw::c_uint,
+    pub __high: ::std::os::raw::c_uint,
+}
+impl Default for __pthread_cond_s__bindgen_ty_1 {
+    fn default() -> Self {
+        unsafe { ::std::mem::zeroed() }
     }
 }
 #[repr(C)]
-#[derive(Debug, Default, Copy)]
-pub struct pthread_cond_t {
-    pub __data: __BindgenUnionField<pthread_cond_t__bindgen_ty_1>,
-    pub __size: __BindgenUnionField<[::std::os::raw::c_char; 48usize]>,
-    pub __align: __BindgenUnionField<::std::os::raw::c_longlong>,
-    pub bindgen_union_field: [u64; 6usize],
+#[derive(Copy, Clone)]
+pub union __pthread_cond_s__bindgen_ty_2 {
+    pub __g1_start: ::std::os::raw::c_ulonglong,
+    pub __g1_start32: __pthread_cond_s__bindgen_ty_2__bindgen_ty_1,
+    _bindgen_union_align: u64,
 }
 #[repr(C)]
-#[derive(Debug, Copy)]
-pub struct pthread_cond_t__bindgen_ty_1 {
-    pub __lock: ::std::os::raw::c_int,
-    pub __futex: ::std::os::raw::c_uint,
-    pub __total_seq: ::std::os::raw::c_ulonglong,
-    pub __wakeup_seq: ::std::os::raw::c_ulonglong,
-    pub __woken_seq: ::std::os::raw::c_ulonglong,
-    pub __mutex: *mut ::std::os::raw::c_void,
-    pub __nwaiters: ::std::os::raw::c_uint,
-    pub __broadcast_seq: ::std::os::raw::c_uint,
-}
-#[test]
-fn bindgen_test_layout_pthread_cond_t__bindgen_ty_1() {
-    assert_eq!(
-        ::std::mem::size_of::<pthread_cond_t__bindgen_ty_1>(),
-        48usize,
-        concat!("Size of: ", stringify!(pthread_cond_t__bindgen_ty_1))
-    );
-    assert_eq!(
-        ::std::mem::align_of::<pthread_cond_t__bindgen_ty_1>(),
-        8usize,
-        concat!("Alignment of ", stringify!(pthread_cond_t__bindgen_ty_1))
-    );
-    assert_eq!(
-        unsafe { &(*(0 as *const pthread_cond_t__bindgen_ty_1)).__lock as *const _ as usize },
-        0usize,
-        concat!(
-            "Alignment of field: ",
-            stringify!(pthread_cond_t__bindgen_ty_1),
-            "::",
-            stringify!(__lock)
-        )
-    );
-    assert_eq!(
-        unsafe { &(*(0 as *const pthread_cond_t__bindgen_ty_1)).__futex as *const _ as usize },
-        4usize,
-        concat!(
-            "Alignment of field: ",
-            stringify!(pthread_cond_t__bindgen_ty_1),
-            "::",
-            stringify!(__futex)
-        )
-    );
-    assert_eq!(
-        unsafe { &(*(0 as *const pthread_cond_t__bindgen_ty_1)).__total_seq as *const _ as usize },
-        8usize,
-        concat!(
-            "Alignment of field: ",
-            stringify!(pthread_cond_t__bindgen_ty_1),
-            "::",
-            stringify!(__total_seq)
-        )
-    );
-    assert_eq!(
-        unsafe { &(*(0 as *const pthread_cond_t__bindgen_ty_1)).__wakeup_seq as *const _ as usize },
-        16usize,
-        concat!(
-            "Alignment of field: ",
-            stringify!(pthread_cond_t__bindgen_ty_1),
-            "::",
-            stringify!(__wakeup_seq)
-        )
-    );
-    assert_eq!(
-        unsafe { &(*(0 as *const pthread_cond_t__bindgen_ty_1)).__woken_seq as *const _ as usize },
-        24usize,
-        concat!(
-            "Alignment of field: ",
-            stringify!(pthread_cond_t__bindgen_ty_1),
-            "::",
-            stringify!(__woken_seq)
-        )
-    );
-    assert_eq!(
-        unsafe { &(*(0 as *const pthread_cond_t__bindgen_ty_1)).__mutex as *const _ as usize },
-        32usize,
-        concat!(
-            "Alignment of field: ",
-            stringify!(pthread_cond_t__bindgen_ty_1),
-            "::",
-            stringify!(__mutex)
-        )
-    );
-    assert_eq!(
-        unsafe { &(*(0 as *const pthread_cond_t__bindgen_ty_1)).__nwaiters as *const _ as usize },
-        40usize,
-        concat!(
-            "Alignment of field: ",
-            stringify!(pthread_cond_t__bindgen_ty_1),
-            "::",
-            stringify!(__nwaiters)
-        )
-    );
-    assert_eq!(
-        unsafe {
-            &(*(0 as *const pthread_cond_t__bindgen_ty_1)).__broadcast_seq as *const _ as usize
-        },
-        44usize,
-        concat!(
-            "Alignment of field: ",
-            stringify!(pthread_cond_t__bindgen_ty_1),
-            "::",
-            stringify!(__broadcast_seq)
-        )
-    );
-}
-impl Clone for pthread_cond_t__bindgen_ty_1 {
-    fn clone(&self) -> Self {
-        *self
+#[derive(Debug, Default, Copy, Clone)]
+pub struct __pthread_cond_s__bindgen_ty_2__bindgen_ty_1 {
+    pub __low: ::std::os::raw::c_uint,
+    pub __high: ::std::os::raw::c_uint,
+}
+impl Default for __pthread_cond_s__bindgen_ty_2 {
+    fn default() -> Self {
+        unsafe { ::std::mem::zeroed() }
     }
 }
-impl Default for pthread_cond_t__bindgen_ty_1 {
+impl Default for __pthread_cond_s {
     fn default() -> Self {
         unsafe { ::std::mem::zeroed() }
     }
 }
-#[test]
-fn bindgen_test_layout_pthread_cond_t() {
-    assert_eq!(
-        ::std::mem::size_of::<pthread_cond_t>(),
-        48usize,
-        concat!("Size of: ", stringify!(pthread_cond_t))
-    );
-    assert_eq!(
-        ::std::mem::align_of::<pthread_cond_t>(),
-        8usize,
-        concat!("Alignment of ", stringify!(pthread_cond_t))
-    );
-    assert_eq!(
-        unsafe { &(*(0 as *const pthread_cond_t)).__data as *const _ as usize },
-        0usize,
-        concat!(
-            "Alignment of field: ",
-            stringify!(pthread_cond_t),
-            "::",
-            stringify!(__data)
-        )
-    );
-    assert_eq!(
-        unsafe { &(*(0 as *const pthread_cond_t)).__size as *const _ as usize },
-        0usize,
-        concat!(
-            "Alignment of field: ",
-            stringify!(pthread_cond_t),
-            "::",
-            stringify!(__size)
-        )
-    );
-    assert_eq!(
-        unsafe { &(*(0 as *const pthread_cond_t)).__align as *const _ as usize },
-        0usize,
-        concat!(
-            "Alignment of field: ",
-            stringify!(pthread_cond_t),
-            "::",
-            stringify!(__align)
-        )
-    );
-}
-impl Clone for pthread_cond_t {
-    fn clone(&self) -> Self {
-        *self
+pub type pthread_t = ::std::os::raw::c_ulong;
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union pthread_mutexattr_t {
+    pub __size: [::std::os::raw::c_char; 4usize],
+    pub __align: ::std::os::raw::c_int,
+    _bindgen_union_align: u32,
+}
+impl Default for pthread_mutexattr_t {
+    fn default() -> Self {
+        unsafe { ::std::mem::zeroed() }
     }
 }
 #[repr(C)]
-#[derive(Debug, Default, Copy)]
-pub struct pthread_condattr_t {
-    pub __size: __BindgenUnionField<[::std::os::raw::c_char; 4usize]>,
-    pub __align: __BindgenUnionField<::std::os::raw::c_int>,
-    pub bindgen_union_field: u32,
-}
-#[test]
-fn bindgen_test_layout_pthread_condattr_t() {
-    assert_eq!(
-        ::std::mem::size_of::<pthread_condattr_t>(),
-        4usize,
-        concat!("Size of: ", stringify!(pthread_condattr_t))
-    );
-    assert_eq!(
-        ::std::mem::align_of::<pthread_condattr_t>(),
-        4usize,
-        concat!("Alignment of ", stringify!(pthread_condattr_t))
-    );
-    assert_eq!(
-        unsafe { &(*(0 as *const pthread_condattr_t)).__size as *const _ as usize },
-        0usize,
-        concat!(
-            "Alignment of field: ",
-            stringify!(pthread_condattr_t),
-            "::",
-            stringify!(__size)
-        )
-    );
-    assert_eq!(
-        unsafe { &(*(0 as *const pthread_condattr_t)).__align as *const _ as usize },
-        0usize,
-        concat!(
-            "Alignment of field: ",
-            stringify!(pthread_condattr_t),
-            "::",
-            stringify!(__align)
-        )
-    );
-}
-impl Clone for pthread_condattr_t {
-    fn clone(&self) -> Self {
-        *self
+#[derive(Copy, Clone)]
+pub union pthread_condattr_t {
+    pub __size: [::std::os::raw::c_char; 4usize],
+    pub __align: ::std::os::raw::c_int,
+    _bindgen_union_align: u32,
+}
+impl Default for pthread_condattr_t {
+    fn default() -> Self {
+        unsafe { ::std::mem::zeroed() }
     }
 }
 pub type pthread_key_t = ::std::os::raw::c_uint;
 pub type pthread_once_t = ::std::os::raw::c_int;
 #[repr(C)]
-#[derive(Debug, Default, Copy)]
-pub struct pthread_rwlock_t {
-    pub __data: __BindgenUnionField<pthread_rwlock_t__bindgen_ty_1>,
-    pub __size: __BindgenUnionField<[::std::os::raw::c_char; 56usize]>,
-    pub __align: __BindgenUnionField<::std::os::raw::c_long>,
-    pub bindgen_union_field: [u64; 7usize],
-}
-#[repr(C)]
-#[derive(Debug, Default, Copy)]
-pub struct pthread_rwlock_t__bindgen_ty_1 {
-    pub __lock: ::std::os::raw::c_int,
-    pub __nr_readers: ::std::os::raw::c_uint,
-    pub __readers_wakeup: ::std::os::raw::c_uint,
-    pub __writer_wakeup: ::std::os::raw::c_uint,
-    pub __nr_readers_queued: ::std::os::raw::c_uint,
-    pub __nr_writers_queued: ::std::os::raw::c_uint,
-    pub __writer: ::std::os::raw::c_int,
-    pub __shared: ::std::os::raw::c_int,
-    pub __rwelision: ::std::os::raw::c_schar,
-    pub __pad1: [::std::os::raw::c_uchar; 7usize],
-    pub __pad2: ::std::os::raw::c_ulong,
-    pub __flags: ::std::os::raw::c_uint,
+#[derive(Copy, Clone)]
+pub union pthread_attr_t {
+    pub __size: [::std::os::raw::c_char; 56usize],
+    pub __align: ::std::os::raw::c_long,
+    _bindgen_union_align: [u64; 7usize],
 }
-#[test]
-fn bindgen_test_layout_pthread_rwlock_t__bindgen_ty_1() {
-    assert_eq!(
-        ::std::mem::size_of::<pthread_rwlock_t__bindgen_ty_1>(),
-        56usize,
-        concat!("Size of: ", stringify!(pthread_rwlock_t__bindgen_ty_1))
-    );
-    assert_eq!(
-        ::std::mem::align_of::<pthread_rwlock_t__bindgen_ty_1>(),
-        8usize,
-        concat!("Alignment of ", stringify!(pthread_rwlock_t__bindgen_ty_1))
-    );
-    assert_eq!(
-        unsafe { &(*(0 as *const pthread_rwlock_t__bindgen_ty_1)).__lock as *const _ as usize },
-        0usize,
-        concat!(
-            "Alignment of field: ",
-            stringify!(pthread_rwlock_t__bindgen_ty_1),
-            "::",
-            stringify!(__lock)
-        )
-    );
-    assert_eq!(
-        unsafe {
-            &(*(0 as *const pthread_rwlock_t__bindgen_ty_1)).__nr_readers as *const _ as usize
-        },
-        4usize,
-        concat!(
-            "Alignment of field: ",
-            stringify!(pthread_rwlock_t__bindgen_ty_1),
-            "::",
-            stringify!(__nr_readers)
-        )
-    );
-    assert_eq!(
-        unsafe {
-            &(*(0 as *const pthread_rwlock_t__bindgen_ty_1)).__readers_wakeup as *const _ as usize
-        },
-        8usize,
-        concat!(
-            "Alignment of field: ",
-            stringify!(pthread_rwlock_t__bindgen_ty_1),
-            "::",
-            stringify!(__readers_wakeup)
-        )
-    );
-    assert_eq!(
-        unsafe {
-            &(*(0 as *const pthread_rwlock_t__bindgen_ty_1)).__writer_wakeup as *const _ as usize
-        },
-        12usize,
-        concat!(
-            "Alignment of field: ",
-            stringify!(pthread_rwlock_t__bindgen_ty_1),
-            "::",
-            stringify!(__writer_wakeup)
-        )
-    );
-    assert_eq!(
-        unsafe {
-            &(*(0 as *const pthread_rwlock_t__bindgen_ty_1)).__nr_readers_queued as *const _
-                as usize
-        },
-        16usize,
-        concat!(
-            "Alignment of field: ",
-            stringify!(pthread_rwlock_t__bindgen_ty_1),
-            "::",
-            stringify!(__nr_readers_queued)
-        )
-    );
-    assert_eq!(
-        unsafe {
-            &(*(0 as *const pthread_rwlock_t__bindgen_ty_1)).__nr_writers_queued as *const _
-                as usize
-        },
-        20usize,
-        concat!(
-            "Alignment of field: ",
-            stringify!(pthread_rwlock_t__bindgen_ty_1),
-            "::",
-            stringify!(__nr_writers_queued)
-        )
-    );
-    assert_eq!(
-        unsafe { &(*(0 as *const pthread_rwlock_t__bindgen_ty_1)).__writer as *const _ as usize },
-        24usize,
-        concat!(
-            "Alignment of field: ",
-            stringify!(pthread_rwlock_t__bindgen_ty_1),
-            "::",
-            stringify!(__writer)
-        )
-    );
-    assert_eq!(
-        unsafe { &(*(0 as *const pthread_rwlock_t__bindgen_ty_1)).__shared as *const _ as usize },
-        28usize,
-        concat!(
-            "Alignment of field: ",
-            stringify!(pthread_rwlock_t__bindgen_ty_1),
-            "::",
-            stringify!(__shared)
-        )
-    );
-    assert_eq!(
-        unsafe {
-            &(*(0 as *const pthread_rwlock_t__bindgen_ty_1)).__rwelision as *const _ as usize
-        },
-        32usize,
-        concat!(
-            "Alignment of field: ",
-            stringify!(pthread_rwlock_t__bindgen_ty_1),
-            "::",
-            stringify!(__rwelision)
-        )
-    );
-    assert_eq!(
-        unsafe { &(*(0 as *const pthread_rwlock_t__bindgen_ty_1)).__pad1 as *const _ as usize },
-        33usize,
-        concat!(
-            "Alignment of field: ",
-            stringify!(pthread_rwlock_t__bindgen_ty_1),
-            "::",
-            stringify!(__pad1)
-        )
-    );
-    assert_eq!(
-        unsafe { &(*(0 as *const pthread_rwlock_t__bindgen_ty_1)).__pad2 as *const _ as usize },
-        40usize,
-        concat!(
-            "Alignment of field: ",
-            stringify!(pthread_rwlock_t__bindgen_ty_1),
-            "::",
-            stringify!(__pad2)
-        )
-    );
-    assert_eq!(
-        unsafe { &(*(0 as *const pthread_rwlock_t__bindgen_ty_1)).__flags as *const _ as usize },
-        48usize,
-        concat!(
-            "Alignment of field: ",
-            stringify!(pthread_rwlock_t__bindgen_ty_1),
-            "::",
-            stringify!(__flags)
-        )
-    );
-}
-impl Clone for pthread_rwlock_t__bindgen_ty_1 {
-    fn clone(&self) -> Self {
-        *self
-    }
-}
-#[test]
-fn bindgen_test_layout_pthread_rwlock_t() {
-    assert_eq!(
-        ::std::mem::size_of::<pthread_rwlock_t>(),
-        56usize,
-        concat!("Size of: ", stringify!(pthread_rwlock_t))
-    );
-    assert_eq!(
-        ::std::mem::align_of::<pthread_rwlock_t>(),
-        8usize,
-        concat!("Alignment of ", stringify!(pthread_rwlock_t))
-    );
-    assert_eq!(
-        unsafe { &(*(0 as *const pthread_rwlock_t)).__data as *const _ as usize },
-        0usize,
-        concat!(
-            "Alignment of field: ",
-            stringify!(pthread_rwlock_t),
-            "::",
-            stringify!(__data)
-        )
-    );
-    assert_eq!(
-        unsafe { &(*(0 as *const pthread_rwlock_t)).__size as *const _ as usize },
-        0usize,
-        concat!(
-            "Alignment of field: ",
-            stringify!(pthread_rwlock_t),
-            "::",
-            stringify!(__size)
-        )
-    );
-    assert_eq!(
-        unsafe { &(*(0 as *const pthread_rwlock_t)).__align as *const _ as usize },
-        0usize,
-        concat!(
-            "Alignment of field: ",
-            stringify!(pthread_rwlock_t),
-            "::",
-            stringify!(__align)
-        )
-    );
-}
-impl Clone for pthread_rwlock_t {
-    fn clone(&self) -> Self {
-        *self
+impl Default for pthread_attr_t {
+    fn default() -> Self {
+        unsafe { ::std::mem::zeroed() }
     }
 }
 #[repr(C)]
-#[derive(Debug, Default, Copy)]
-pub struct pthread_rwlockattr_t {
-    pub __size: __BindgenUnionField<[::std::os::raw::c_char; 8usize]>,
-    pub __align: __BindgenUnionField<::std::os::raw::c_long>,
-    pub bindgen_union_field: u64,
-}
-#[test]
-fn bindgen_test_layout_pthread_rwlockattr_t() {
-    assert_eq!(
-        ::std::mem::size_of::<pthread_rwlockattr_t>(),
-        8usize,
-        concat!("Size of: ", stringify!(pthread_rwlockattr_t))
-    );
-    assert_eq!(
-        ::std::mem::align_of::<pthread_rwlockattr_t>(),
-        8usize,
-        concat!("Alignment of ", stringify!(pthread_rwlockattr_t))
-    );
-    assert_eq!(
-        unsafe { &(*(0 as *const pthread_rwlockattr_t)).__size as *const _ as usize },
-        0usize,
-        concat!(
-            "Alignment of field: ",
-            stringify!(pthread_rwlockattr_t),
-            "::",
-            stringify!(__size)
-        )
-    );
-    assert_eq!(
-        unsafe { &(*(0 as *const pthread_rwlockattr_t)).__align as *const _ as usize },
-        0usize,
-        concat!(
-            "Alignment of field: ",
-            stringify!(pthread_rwlockattr_t),
-            "::",
-            stringify!(__align)
-        )
-    );
-}
-impl Clone for pthread_rwlockattr_t {
-    fn clone(&self) -> Self {
-        *self
+#[derive(Copy, Clone)]
+pub union pthread_mutex_t {
+    pub __data: __pthread_mutex_s,
+    pub __size: [::std::os::raw::c_char; 40usize],
+    pub __align: ::std::os::raw::c_long,
+    _bindgen_union_align: [u64; 5usize],
+}
+impl Default for pthread_mutex_t {
+    fn default() -> Self {
+        unsafe { ::std::mem::zeroed() }
     }
 }
-pub type pthread_spinlock_t = ::std::os::raw::c_int;
 #[repr(C)]
-#[derive(Debug, Default, Copy)]
-pub struct pthread_barrier_t {
-    pub __size: __BindgenUnionField<[::std::os::raw::c_char; 32usize]>,
-    pub __align: __BindgenUnionField<::std::os::raw::c_long>,
-    pub bindgen_union_field: [u64; 4usize],
-}
-#[test]
-fn bindgen_test_layout_pthread_barrier_t() {
-    assert_eq!(
-        ::std::mem::size_of::<pthread_barrier_t>(),
-        32usize,
-        concat!("Size of: ", stringify!(pthread_barrier_t))
-    );
-    assert_eq!(
-        ::std::mem::align_of::<pthread_barrier_t>(),
-        8usize,
-        concat!("Alignment of ", stringify!(pthread_barrier_t))
-    );
-    assert_eq!(
-        unsafe { &(*(0 as *const pthread_barrier_t)).__size as *const _ as usize },
-        0usize,
-        concat!(
-            "Alignment of field: ",
-            stringify!(pthread_barrier_t),
-            "::",
-            stringify!(__size)
-        )
-    );
-    assert_eq!(
-        unsafe { &(*(0 as *const pthread_barrier_t)).__align as *const _ as usize },
-        0usize,
-        concat!(
-            "Alignment of field: ",
-            stringify!(pthread_barrier_t),
-            "::",
-            stringify!(__align)
-        )
-    );
-}
-impl Clone for pthread_barrier_t {
-    fn clone(&self) -> Self {
-        *self
+#[derive(Copy, Clone)]
+pub union pthread_cond_t {
+    pub __data: __pthread_cond_s,
+    pub __size: [::std::os::raw::c_char; 48usize],
+    pub __align: ::std::os::raw::c_longlong,
+    _bindgen_union_align: [u64; 6usize],
+}
+impl Default for pthread_cond_t {
+    fn default() -> Self {
+        unsafe { ::std::mem::zeroed() }
     }
 }
 #[repr(C)]
-#[derive(Debug, Default, Copy)]
-pub struct pthread_barrierattr_t {
-    pub __size: __BindgenUnionField<[::std::os::raw::c_char; 4usize]>,
-    pub __align: __BindgenUnionField<::std::os::raw::c_int>,
-    pub bindgen_union_field: u32,
-}
-#[test]
-fn bindgen_test_layout_pthread_barrierattr_t() {
-    assert_eq!(
-        ::std::mem::size_of::<pthread_barrierattr_t>(),
-        4usize,
-        concat!("Size of: ", stringify!(pthread_barrierattr_t))
-    );
-    assert_eq!(
-        ::std::mem::align_of::<pthread_barrierattr_t>(),
-        4usize,
-        concat!("Alignment of ", stringify!(pthread_barrierattr_t))
-    );
-    assert_eq!(
-        unsafe { &(*(0 as *const pthread_barrierattr_t)).__size as *const _ as usize },
-        0usize,
-        concat!(
-            "Alignment of field: ",
-            stringify!(pthread_barrierattr_t),
-            "::",
-            stringify!(__size)
-        )
-    );
-    assert_eq!(
-        unsafe { &(*(0 as *const pthread_barrierattr_t)).__align as *const _ as usize },
-        0usize,
-        concat!(
-            "Alignment of field: ",
-            stringify!(pthread_barrierattr_t),
-            "::",
-            stringify!(__align)
-        )
-    );
-}
-impl Clone for pthread_barrierattr_t {
-    fn clone(&self) -> Self {
-        *self
+#[derive(Copy, Clone)]
+pub union pthread_rwlock_t {
+    pub __data: __pthread_rwlock_arch_t,
+    pub __size: [::std::os::raw::c_char; 56usize],
+    pub __align: ::std::os::raw::c_long,
+    _bindgen_union_align: [u64; 7usize],
+}
+impl Default for pthread_rwlock_t {
+    fn default() -> Self {
+        unsafe { ::std::mem::zeroed() }
     }
 }
 #[repr(C)]
-#[derive(Debug, Copy)]
-pub struct iovec {
-    pub iov_base: *mut ::std::os::raw::c_void,
-    pub iov_len: usize,
-}
-#[test]
-fn bindgen_test_layout_iovec() {
-    assert_eq!(
-        ::std::mem::size_of::<iovec>(),
-        16usize,
-        concat!("Size of: ", stringify!(iovec))
-    );
-    assert_eq!(
-        ::std::mem::align_of::<iovec>(),
-        8usize,
-        concat!("Alignment of ", stringify!(iovec))
-    );
-    assert_eq!(
-        unsafe { &(*(0 as *const iovec)).iov_base as *const _ as usize },
-        0usize,
-        concat!(
-            "Alignment of field: ",
-            stringify!(iovec),
-            "::",
-            stringify!(iov_base)
-        )
-    );
-    assert_eq!(
-        unsafe { &(*(0 as *const iovec)).iov_len as *const _ as usize },
-        8usize,
-        concat!(
-            "Alignment of field: ",
-            stringify!(iovec),
-            "::",
-            stringify!(iov_len)
-        )
-    );
-}
-impl Clone for iovec {
-    fn clone(&self) -> Self {
-        *self
-    }
+#[derive(Copy, Clone)]
+pub union pthread_rwlockattr_t {
+    pub __size: [::std::os::raw::c_char; 8usize],
+    pub __align: ::std::os::raw::c_long,
+    _bindgen_union_align: u64,
 }
-impl Default for iovec {
+impl Default for pthread_rwlockattr_t {
     fn default() -> Self {
         unsafe { ::std::mem::zeroed() }
     }
 }
-extern "C" {
-    pub fn readv(
-        __fd: ::std::os::raw::c_int,
-        __iovec: *const iovec,
-        __count: ::std::os::raw::c_int,
-    ) -> isize;
+pub type pthread_spinlock_t = ::std::os::raw::c_int;
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union pthread_barrier_t {
+    pub __size: [::std::os::raw::c_char; 32usize],
+    pub __align: ::std::os::raw::c_long,
+    _bindgen_union_align: [u64; 4usize],
 }
-extern "C" {
-    pub fn writev(
-        __fd: ::std::os::raw::c_int,
-        __iovec: *const iovec,
-        __count: ::std::os::raw::c_int,
-    ) -> isize;
+impl Default for pthread_barrier_t {
+    fn default() -> Self {
+        unsafe { ::std::mem::zeroed() }
+    }
 }
-extern "C" {
-    pub fn preadv(
-        __fd: ::std::os::raw::c_int,
-        __iovec: *const iovec,
-        __count: ::std::os::raw::c_int,
-        __offset: __off_t,
-    ) -> isize;
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union pthread_barrierattr_t {
+    pub __size: [::std::os::raw::c_char; 4usize],
+    pub __align: ::std::os::raw::c_int,
+    _bindgen_union_align: u32,
 }
-extern "C" {
-    pub fn pwritev(
-        __fd: ::std::os::raw::c_int,
-        __iovec: *const iovec,
-        __count: ::std::os::raw::c_int,
-        __offset: __off_t,
-    ) -> isize;
+impl Default for pthread_barrierattr_t {
+    fn default() -> Self {
+        unsafe { ::std::mem::zeroed() }
+    }
 }
 pub type socklen_t = __socklen_t;
 pub const __socket_type_SOCK_STREAM: __socket_type = 1;
@@ -1838,101 +841,21 @@ pub const __socket_type_SOCK_DCCP: __socket_type = 6;
 pub const __socket_type_SOCK_PACKET: __socket_type = 10;
 pub const __socket_type_SOCK_CLOEXEC: __socket_type = 524288;
 pub const __socket_type_SOCK_NONBLOCK: __socket_type = 2048;
-pub type __socket_type = ::std::os::raw::c_uint;
+pub type __socket_type = u32;
 pub type sa_family_t = ::std::os::raw::c_ushort;
 #[repr(C)]
-#[derive(Debug, Default, Copy)]
+#[derive(Debug, Default, Copy, Clone)]
 pub struct sockaddr {
     pub sa_family: sa_family_t,
     pub sa_data: [::std::os::raw::c_char; 14usize],
 }
-#[test]
-fn bindgen_test_layout_sockaddr() {
-    assert_eq!(
-        ::std::mem::size_of::<sockaddr>(),
-        16usize,
-        concat!("Size of: ", stringify!(sockaddr))
-    );
-    assert_eq!(
-        ::std::mem::align_of::<sockaddr>(),
-        2usize,
-        concat!("Alignment of ", stringify!(sockaddr))
-    );
-    assert_eq!(
-        unsafe { &(*(0 as *const sockaddr)).sa_family as *const _ as usize },
-        0usize,
-        concat!(
-            "Alignment of field: ",
-            stringify!(sockaddr),
-            "::",
-            stringify!(sa_family)
-        )
-    );
-    assert_eq!(
-        unsafe { &(*(0 as *const sockaddr)).sa_data as *const _ as usize },
-        2usize,
-        concat!(
-            "Alignment of field: ",
-            stringify!(sockaddr),
-            "::",
-            stringify!(sa_data)
-        )
-    );
-}
-impl Clone for sockaddr {
-    fn clone(&self) -> Self {
-        *self
-    }
-}
 #[repr(C)]
+#[derive(Copy, Clone)]
 pub struct sockaddr_storage {
     pub ss_family: sa_family_t,
     pub __ss_padding: [::std::os::raw::c_char; 118usize],
     pub __ss_align: ::std::os::raw::c_ulong,
 }
-#[test]
-fn bindgen_test_layout_sockaddr_storage() {
-    assert_eq!(
-        ::std::mem::size_of::<sockaddr_storage>(),
-        128usize,
-        concat!("Size of: ", stringify!(sockaddr_storage))
-    );
-    assert_eq!(
-        ::std::mem::align_of::<sockaddr_storage>(),
-        8usize,
-        concat!("Alignment of ", stringify!(sockaddr_storage))
-    );
-    assert_eq!(
-        unsafe { &(*(0 as *const sockaddr_storage)).ss_family as *const _ as usize },
-        0usize,
-        concat!(
-            "Alignment of field: ",
-            stringify!(sockaddr_storage),
-            "::",
-            stringify!(ss_family)
-        )
-    );
-    assert_eq!(
-        unsafe { &(*(0 as *const sockaddr_storage)).__ss_padding as *const _ as usize },
-        2usize,
-        concat!(
-            "Alignment of field: ",
-            stringify!(sockaddr_storage),
-            "::",
-            stringify!(__ss_padding)
-        )
-    );
-    assert_eq!(
-        unsafe { &(*(0 as *const sockaddr_storage)).__ss_align as *const _ as usize },
-        120usize,
-        concat!(
-            "Alignment of field: ",
-            stringify!(sockaddr_storage),
-            "::",
-            stringify!(__ss_align)
-        )
-    );
-}
 impl Default for sockaddr_storage {
     fn default() -> Self {
         unsafe { ::std::mem::zeroed() }
@@ -1955,11 +878,13 @@ pub const MSG_ERRQUEUE: _bindgen_ty_1 = 8192;
 pub const MSG_NOSIGNAL: _bindgen_ty_1 = 16384;
 pub const MSG_MORE: _bindgen_ty_1 = 32768;
 pub const MSG_WAITFORONE: _bindgen_ty_1 = 65536;
+pub const MSG_BATCH: _bindgen_ty_1 = 262144;
+pub const MSG_ZEROCOPY: _bindgen_ty_1 = 67108864;
 pub const MSG_FASTOPEN: _bindgen_ty_1 = 536870912;
 pub const MSG_CMSG_CLOEXEC: _bindgen_ty_1 = 1073741824;
-pub type _bindgen_ty_1 = ::std::os::raw::c_uint;
+pub type _bindgen_ty_1 = u32;
 #[repr(C)]
-#[derive(Debug, Copy)]
+#[derive(Debug, Copy, Clone)]
 pub struct msghdr {
     pub msg_name: *mut ::std::os::raw::c_void,
     pub msg_namelen: socklen_t,
@@ -1969,222 +894,40 @@ pub struct msghdr {
     pub msg_controllen: usize,
     pub msg_flags: ::std::os::raw::c_int,
 }
-#[test]
-fn bindgen_test_layout_msghdr() {
-    assert_eq!(
-        ::std::mem::size_of::<msghdr>(),
-        56usize,
-        concat!("Size of: ", stringify!(msghdr))
-    );
-    assert_eq!(
-        ::std::mem::align_of::<msghdr>(),
-        8usize,
-        concat!("Alignment of ", stringify!(msghdr))
-    );
-    assert_eq!(
-        unsafe { &(*(0 as *const msghdr)).msg_name as *const _ as usize },
-        0usize,
-        concat!(
-            "Alignment of field: ",
-            stringify!(msghdr),
-            "::",
-            stringify!(msg_name)
-        )
-    );
-    assert_eq!(
-        unsafe { &(*(0 as *const msghdr)).msg_namelen as *const _ as usize },
-        8usize,
-        concat!(
-            "Alignment of field: ",
-            stringify!(msghdr),
-            "::",
-            stringify!(msg_namelen)
-        )
-    );
-    assert_eq!(
-        unsafe { &(*(0 as *const msghdr)).msg_iov as *const _ as usize },
-        16usize,
-        concat!(
-            "Alignment of field: ",
-            stringify!(msghdr),
-            "::",
-            stringify!(msg_iov)
-        )
-    );
-    assert_eq!(
-        unsafe { &(*(0 as *const msghdr)).msg_iovlen as *const _ as usize },
-        24usize,
-        concat!(
-            "Alignment of field: ",
-            stringify!(msghdr),
-            "::",
-            stringify!(msg_iovlen)
-        )
-    );
-    assert_eq!(
-        unsafe { &(*(0 as *const msghdr)).msg_control as *const _ as usize },
-        32usize,
-        concat!(
-            "Alignment of field: ",
-            stringify!(msghdr),
-            "::",
-            stringify!(msg_control)
-        )
-    );
-    assert_eq!(
-        unsafe { &(*(0 as *const msghdr)).msg_controllen as *const _ as usize },
-        40usize,
-        concat!(
-            "Alignment of field: ",
-            stringify!(msghdr),
-            "::",
-            stringify!(msg_controllen)
-        )
-    );
-    assert_eq!(
-        unsafe { &(*(0 as *const msghdr)).msg_flags as *const _ as usize },
-        48usize,
-        concat!(
-            "Alignment of field: ",
-            stringify!(msghdr),
-            "::",
-            stringify!(msg_flags)
-        )
-    );
-}
-impl Clone for msghdr {
-    fn clone(&self) -> Self {
-        *self
-    }
-}
 impl Default for msghdr {
     fn default() -> Self {
         unsafe { ::std::mem::zeroed() }
     }
 }
 #[repr(C)]
-#[derive(Debug, Default, Copy)]
+#[derive(Debug, Default)]
 pub struct cmsghdr {
     pub cmsg_len: usize,
     pub cmsg_level: ::std::os::raw::c_int,
     pub cmsg_type: ::std::os::raw::c_int,
     pub __cmsg_data: __IncompleteArrayField<::std::os::raw::c_uchar>,
 }
-#[test]
-fn bindgen_test_layout_cmsghdr() {
-    assert_eq!(
-        ::std::mem::size_of::<cmsghdr>(),
-        16usize,
-        concat!("Size of: ", stringify!(cmsghdr))
-    );
-    assert_eq!(
-        ::std::mem::align_of::<cmsghdr>(),
-        8usize,
-        concat!("Alignment of ", stringify!(cmsghdr))
-    );
-}
-impl Clone for cmsghdr {
-    fn clone(&self) -> Self {
-        *self
-    }
-}
 extern "C" {
     pub fn __cmsg_nxthdr(__mhdr: *mut msghdr, __cmsg: *mut cmsghdr) -> *mut cmsghdr;
 }
 pub const SCM_RIGHTS: _bindgen_ty_2 = 1;
-pub type _bindgen_ty_2 = ::std::os::raw::c_uint;
+pub type _bindgen_ty_2 = u32;
 #[repr(C)]
-#[derive(Debug, Default, Copy)]
+#[derive(Debug, Default, Copy, Clone)]
 pub struct linger {
     pub l_onoff: ::std::os::raw::c_int,
     pub l_linger: ::std::os::raw::c_int,
 }
-#[test]
-fn bindgen_test_layout_linger() {
-    assert_eq!(
-        ::std::mem::size_of::<linger>(),
-        8usize,
-        concat!("Size of: ", stringify!(linger))
-    );
-    assert_eq!(
-        ::std::mem::align_of::<linger>(),
-        4usize,
-        concat!("Alignment of ", stringify!(linger))
-    );
-    assert_eq!(
-        unsafe { &(*(0 as *const linger)).l_onoff as *const _ as usize },
-        0usize,
-        concat!(
-            "Alignment of field: ",
-            stringify!(linger),
-            "::",
-            stringify!(l_onoff)
-        )
-    );
-    assert_eq!(
-        unsafe { &(*(0 as *const linger)).l_linger as *const _ as usize },
-        4usize,
-        concat!(
-            "Alignment of field: ",
-            stringify!(linger),
-            "::",
-            stringify!(l_linger)
-        )
-    );
-}
-impl Clone for linger {
-    fn clone(&self) -> Self {
-        *self
-    }
-}
 #[repr(C)]
-#[derive(Debug, Default, Copy)]
+#[derive(Debug, Default, Copy, Clone)]
 pub struct osockaddr {
     pub sa_family: ::std::os::raw::c_ushort,
     pub sa_data: [::std::os::raw::c_uchar; 14usize],
 }
-#[test]
-fn bindgen_test_layout_osockaddr() {
-    assert_eq!(
-        ::std::mem::size_of::<osockaddr>(),
-        16usize,
-        concat!("Size of: ", stringify!(osockaddr))
-    );
-    assert_eq!(
-        ::std::mem::align_of::<osockaddr>(),
-        2usize,
-        concat!("Alignment of ", stringify!(osockaddr))
-    );
-    assert_eq!(
-        unsafe { &(*(0 as *const osockaddr)).sa_family as *const _ as usize },
-        0usize,
-        concat!(
-            "Alignment of field: ",
-            stringify!(osockaddr),
-            "::",
-            stringify!(sa_family)
-        )
-    );
-    assert_eq!(
-        unsafe { &(*(0 as *const osockaddr)).sa_data as *const _ as usize },
-        2usize,
-        concat!(
-            "Alignment of field: ",
-            stringify!(osockaddr),
-            "::",
-            stringify!(sa_data)
-        )
-    );
-}
-impl Clone for osockaddr {
-    fn clone(&self) -> Self {
-        *self
-    }
-}
 pub const SHUT_RD: _bindgen_ty_3 = 0;
 pub const SHUT_WR: _bindgen_ty_3 = 1;
 pub const SHUT_RDWR: _bindgen_ty_3 = 2;
-pub type _bindgen_ty_3 = ::std::os::raw::c_uint;
+pub type _bindgen_ty_3 = u32;
 extern "C" {
     pub fn socket(
         __domain: ::std::os::raw::c_int,
@@ -2323,172 +1066,28 @@ extern "C" {
     ) -> ::std::os::raw::c_int;
 }
 #[repr(C)]
-#[derive(Debug, Default, Copy)]
+#[derive(Debug, Default, Copy, Clone)]
 pub struct sync_serial_settings {
     pub clock_rate: ::std::os::raw::c_uint,
     pub clock_type: ::std::os::raw::c_uint,
     pub loopback: ::std::os::raw::c_ushort,
 }
-#[test]
-fn bindgen_test_layout_sync_serial_settings() {
-    assert_eq!(
-        ::std::mem::size_of::<sync_serial_settings>(),
-        12usize,
-        concat!("Size of: ", stringify!(sync_serial_settings))
-    );
-    assert_eq!(
-        ::std::mem::align_of::<sync_serial_settings>(),
-        4usize,
-        concat!("Alignment of ", stringify!(sync_serial_settings))
-    );
-    assert_eq!(
-        unsafe { &(*(0 as *const sync_serial_settings)).clock_rate as *const _ as usize },
-        0usize,
-        concat!(
-            "Alignment of field: ",
-            stringify!(sync_serial_settings),
-            "::",
-            stringify!(clock_rate)
-        )
-    );
-    assert_eq!(
-        unsafe { &(*(0 as *const sync_serial_settings)).clock_type as *const _ as usize },
-        4usize,
-        concat!(
-            "Alignment of field: ",
-            stringify!(sync_serial_settings),
-            "::",
-            stringify!(clock_type)
-        )
-    );
-    assert_eq!(
-        unsafe { &(*(0 as *const sync_serial_settings)).loopback as *const _ as usize },
-        8usize,
-        concat!(
-            "Alignment of field: ",
-            stringify!(sync_serial_settings),
-            "::",
-            stringify!(loopback)
-        )
-    );
-}
-impl Clone for sync_serial_settings {
-    fn clone(&self) -> Self {
-        *self
-    }
-}
 #[repr(C)]
-#[derive(Debug, Default, Copy)]
+#[derive(Debug, Default, Copy, Clone)]
 pub struct te1_settings {
     pub clock_rate: ::std::os::raw::c_uint,
     pub clock_type: ::std::os::raw::c_uint,
     pub loopback: ::std::os::raw::c_ushort,
     pub slot_map: ::std::os::raw::c_uint,
 }
-#[test]
-fn bindgen_test_layout_te1_settings() {
-    assert_eq!(
-        ::std::mem::size_of::<te1_settings>(),
-        16usize,
-        concat!("Size of: ", stringify!(te1_settings))
-    );
-    assert_eq!(
-        ::std::mem::align_of::<te1_settings>(),
-        4usize,
-        concat!("Alignment of ", stringify!(te1_settings))
-    );
-    assert_eq!(
-        unsafe { &(*(0 as *const te1_settings)).clock_rate as *const _ as usize },
-        0usize,
-        concat!(
-            "Alignment of field: ",
-            stringify!(te1_settings),
-            "::",
-            stringify!(clock_rate)
-        )
-    );
-    assert_eq!(
-        unsafe { &(*(0 as *const te1_settings)).clock_type as *const _ as usize },
-        4usize,
-        concat!(
-            "Alignment of field: ",
-            stringify!(te1_settings),
-            "::",
-            stringify!(clock_type)
-        )
-    );
-    assert_eq!(
-        unsafe { &(*(0 as *const te1_settings)).loopback as *const _ as usize },
-        8usize,
-        concat!(
-            "Alignment of field: ",
-            stringify!(te1_settings),
-            "::",
-            stringify!(loopback)
-        )
-    );
-    assert_eq!(
-        unsafe { &(*(0 as *const te1_settings)).slot_map as *const _ as usize },
-        12usize,
-        concat!(
-            "Alignment of field: ",
-            stringify!(te1_settings),
-            "::",
-            stringify!(slot_map)
-        )
-    );
-}
-impl Clone for te1_settings {
-    fn clone(&self) -> Self {
-        *self
-    }
-}
 #[repr(C)]
-#[derive(Debug, Default, Copy)]
+#[derive(Debug, Default, Copy, Clone)]
 pub struct raw_hdlc_proto {
     pub encoding: ::std::os::raw::c_ushort,
     pub parity: ::std::os::raw::c_ushort,
 }
-#[test]
-fn bindgen_test_layout_raw_hdlc_proto() {
-    assert_eq!(
-        ::std::mem::size_of::<raw_hdlc_proto>(),
-        4usize,
-        concat!("Size of: ", stringify!(raw_hdlc_proto))
-    );
-    assert_eq!(
-        ::std::mem::align_of::<raw_hdlc_proto>(),
-        2usize,
-        concat!("Alignment of ", stringify!(raw_hdlc_proto))
-    );
-    assert_eq!(
-        unsafe { &(*(0 as *const raw_hdlc_proto)).encoding as *const _ as usize },
-        0usize,
-        concat!(
-            "Alignment of field: ",
-            stringify!(raw_hdlc_proto),
-            "::",
-            stringify!(encoding)
-        )
-    );
-    assert_eq!(
-        unsafe { &(*(0 as *const raw_hdlc_proto)).parity as *const _ as usize },
-        2usize,
-        concat!(
-            "Alignment of field: ",
-            stringify!(raw_hdlc_proto),
-            "::",
-            stringify!(parity)
-        )
-    );
-}
-impl Clone for raw_hdlc_proto {
-    fn clone(&self) -> Self {
-        *self
-    }
-}
 #[repr(C)]
-#[derive(Debug, Default, Copy)]
+#[derive(Debug, Default, Copy, Clone)]
 pub struct fr_proto {
     pub t391: ::std::os::raw::c_uint,
     pub t392: ::std::os::raw::c_uint,
@@ -2498,215 +1097,23 @@ pub struct fr_proto {
     pub lmi: ::std::os::raw::c_ushort,
     pub dce: ::std::os::raw::c_ushort,
 }
-#[test]
-fn bindgen_test_layout_fr_proto() {
-    assert_eq!(
-        ::std::mem::size_of::<fr_proto>(),
-        24usize,
-        concat!("Size of: ", stringify!(fr_proto))
-    );
-    assert_eq!(
-        ::std::mem::align_of::<fr_proto>(),
-        4usize,
-        concat!("Alignment of ", stringify!(fr_proto))
-    );
-    assert_eq!(
-        unsafe { &(*(0 as *const fr_proto)).t391 as *const _ as usize },
-        0usize,
-        concat!(
-            "Alignment of field: ",
-            stringify!(fr_proto),
-            "::",
-            stringify!(t391)
-        )
-    );
-    assert_eq!(
-        unsafe { &(*(0 as *const fr_proto)).t392 as *const _ as usize },
-        4usize,
-        concat!(
-            "Alignment of field: ",
-            stringify!(fr_proto),
-            "::",
-            stringify!(t392)
-        )
-    );
-    assert_eq!(
-        unsafe { &(*(0 as *const fr_proto)).n391 as *const _ as usize },
-        8usize,
-        concat!(
-            "Alignment of field: ",
-            stringify!(fr_proto),
-            "::",
-            stringify!(n391)
-        )
-    );
-    assert_eq!(
-        unsafe { &(*(0 as *const fr_proto)).n392 as *const _ as usize },
-        12usize,
-        concat!(
-            "Alignment of field: ",
-            stringify!(fr_proto),
-            "::",
-            stringify!(n392)
-        )
-    );
-    assert_eq!(
-        unsafe { &(*(0 as *const fr_proto)).n393 as *const _ as usize },
-        16usize,
-        concat!(
-            "Alignment of field: ",
-            stringify!(fr_proto),
-            "::",
-            stringify!(n393)
-        )
-    );
-    assert_eq!(
-        unsafe { &(*(0 as *const fr_proto)).lmi as *const _ as usize },
-        20usize,
-        concat!(
-            "Alignment of field: ",
-            stringify!(fr_proto),
-            "::",
-            stringify!(lmi)
-        )
-    );
-    assert_eq!(
-        unsafe { &(*(0 as *const fr_proto)).dce as *const _ as usize },
-        22usize,
-        concat!(
-            "Alignment of field: ",
-            stringify!(fr_proto),
-            "::",
-            stringify!(dce)
-        )
-    );
-}
-impl Clone for fr_proto {
-    fn clone(&self) -> Self {
-        *self
-    }
-}
 #[repr(C)]
-#[derive(Debug, Default, Copy)]
+#[derive(Debug, Default, Copy, Clone)]
 pub struct fr_proto_pvc {
     pub dlci: ::std::os::raw::c_uint,
 }
-#[test]
-fn bindgen_test_layout_fr_proto_pvc() {
-    assert_eq!(
-        ::std::mem::size_of::<fr_proto_pvc>(),
-        4usize,
-        concat!("Size of: ", stringify!(fr_proto_pvc))
-    );
-    assert_eq!(
-        ::std::mem::align_of::<fr_proto_pvc>(),
-        4usize,
-        concat!("Alignment of ", stringify!(fr_proto_pvc))
-    );
-    assert_eq!(
-        unsafe { &(*(0 as *const fr_proto_pvc)).dlci as *const _ as usize },
-        0usize,
-        concat!(
-            "Alignment of field: ",
-            stringify!(fr_proto_pvc),
-            "::",
-            stringify!(dlci)
-        )
-    );
-}
-impl Clone for fr_proto_pvc {
-    fn clone(&self) -> Self {
-        *self
-    }
-}
 #[repr(C)]
-#[derive(Debug, Default, Copy)]
+#[derive(Debug, Default, Copy, Clone)]
 pub struct fr_proto_pvc_info {
     pub dlci: ::std::os::raw::c_uint,
     pub master: [::std::os::raw::c_char; 16usize],
 }
-#[test]
-fn bindgen_test_layout_fr_proto_pvc_info() {
-    assert_eq!(
-        ::std::mem::size_of::<fr_proto_pvc_info>(),
-        20usize,
-        concat!("Size of: ", stringify!(fr_proto_pvc_info))
-    );
-    assert_eq!(
-        ::std::mem::align_of::<fr_proto_pvc_info>(),
-        4usize,
-        concat!("Alignment of ", stringify!(fr_proto_pvc_info))
-    );
-    assert_eq!(
-        unsafe { &(*(0 as *const fr_proto_pvc_info)).dlci as *const _ as usize },
-        0usize,
-        concat!(
-            "Alignment of field: ",
-            stringify!(fr_proto_pvc_info),
-            "::",
-            stringify!(dlci)
-        )
-    );
-    assert_eq!(
-        unsafe { &(*(0 as *const fr_proto_pvc_info)).master as *const _ as usize },
-        4usize,
-        concat!(
-            "Alignment of field: ",
-            stringify!(fr_proto_pvc_info),
-            "::",
-            stringify!(master)
-        )
-    );
-}
-impl Clone for fr_proto_pvc_info {
-    fn clone(&self) -> Self {
-        *self
-    }
-}
 #[repr(C)]
-#[derive(Debug, Default, Copy)]
+#[derive(Debug, Default, Copy, Clone)]
 pub struct cisco_proto {
     pub interval: ::std::os::raw::c_uint,
     pub timeout: ::std::os::raw::c_uint,
 }
-#[test]
-fn bindgen_test_layout_cisco_proto() {
-    assert_eq!(
-        ::std::mem::size_of::<cisco_proto>(),
-        8usize,
-        concat!("Size of: ", stringify!(cisco_proto))
-    );
-    assert_eq!(
-        ::std::mem::align_of::<cisco_proto>(),
-        4usize,
-        concat!("Alignment of ", stringify!(cisco_proto))
-    );
-    assert_eq!(
-        unsafe { &(*(0 as *const cisco_proto)).interval as *const _ as usize },
-        0usize,
-        concat!(
-            "Alignment of field: ",
-            stringify!(cisco_proto),
-            "::",
-            stringify!(interval)
-        )
-    );
-    assert_eq!(
-        unsafe { &(*(0 as *const cisco_proto)).timeout as *const _ as usize },
-        4usize,
-        concat!(
-            "Alignment of field: ",
-            stringify!(cisco_proto),
-            "::",
-            stringify!(timeout)
-        )
-    );
-}
-impl Clone for cisco_proto {
-    fn clone(&self) -> Self {
-        *self
-    }
-}
 pub const net_device_flags_IFF_UP: net_device_flags = 1;
 pub const net_device_flags_IFF_BROADCAST: net_device_flags = 2;
 pub const net_device_flags_IFF_DEBUG: net_device_flags = 4;
@@ -2723,47 +1130,10 @@ pub const net_device_flags_IFF_MULTICAST: net_device_flags = 4096;
 pub const net_device_flags_IFF_PORTSEL: net_device_flags = 8192;
 pub const net_device_flags_IFF_AUTOMEDIA: net_device_flags = 16384;
 pub const net_device_flags_IFF_DYNAMIC: net_device_flags = 32768;
-/**
- * enum net_device_flags - &struct net_device flags
- *
- * These are the &struct net_device flags, they can be set by drivers, the
- * kernel and some can be triggered by userspace. Userspace can query and
- * set these flags using userspace utilities but there is also a sysfs
- * entry available for all dev flags which can be queried and set. These flags
- * are shared for all types of net_devices. The sysfs entries are available
- * via /sys/class/net/<dev>/flags. Flags which can be toggled through sysfs
- * are annotated below, note that only a few flags can be toggled and some
- * other flags are always preserved from the original net_device flags
- * even if you try to set them via sysfs. Flags which are always preserved
- * are kept under the flag grouping @IFF_VOLATILE. Flags which are __volatile__
- * are annotated below as such.
- *
- * You should have a pretty good reason to be extending these flags.
- *
- * @IFF_UP: interface is up. Can be toggled through sysfs.
- * @IFF_BROADCAST: broadcast address valid. Volatile.
- * @IFF_DEBUG: turn on debugging. Can be toggled through sysfs.
- * @IFF_LOOPBACK: is a loopback net. Volatile.
- * @IFF_POINTOPOINT: interface is has p-p link. Volatile.
- * @IFF_NOTRAILERS: avoid use of trailers. Can be toggled through sysfs.
- *	Volatile.
- * @IFF_RUNNING: interface RFC2863 OPER_UP. Volatile.
- * @IFF_NOARP: no ARP protocol. Can be toggled through sysfs. Volatile.
- * @IFF_PROMISC: receive all packets. Can be toggled through sysfs.
- * @IFF_ALLMULTI: receive all multicast packets. Can be toggled through
- *	sysfs.
- * @IFF_MASTER: master of a load balancer. Volatile.
- * @IFF_SLAVE: slave of a load balancer. Volatile.
- * @IFF_MULTICAST: Supports multicast. Can be toggled through sysfs.
- * @IFF_PORTSEL: can set media type. Can be toggled through sysfs.
- * @IFF_AUTOMEDIA: auto media select active. Can be toggled through sysfs.
- * @IFF_DYNAMIC: dialup device with changing addresses. Can be toggled
- *	through sysfs.
- * @IFF_LOWER_UP: driver signals L1 up. Volatile.
- * @IFF_DORMANT: driver signals dormant. Volatile.
- * @IFF_ECHO: echo sent packets. Volatile.
- */
-pub type net_device_flags = ::std::os::raw::c_uint;
+pub const net_device_flags_IFF_LOWER_UP: net_device_flags = 65536;
+pub const net_device_flags_IFF_DORMANT: net_device_flags = 131072;
+pub const net_device_flags_IFF_ECHO: net_device_flags = 262144;
+pub type net_device_flags = u32;
 pub const IF_OPER_UNKNOWN: _bindgen_ty_4 = 0;
 pub const IF_OPER_NOTPRESENT: _bindgen_ty_4 = 1;
 pub const IF_OPER_DOWN: _bindgen_ty_4 = 2;
@@ -2771,12 +1141,12 @@ pub const IF_OPER_LOWERLAYERDOWN: _bindgen_ty_4 = 3;
 pub const IF_OPER_TESTING: _bindgen_ty_4 = 4;
 pub const IF_OPER_DORMANT: _bindgen_ty_4 = 5;
 pub const IF_OPER_UP: _bindgen_ty_4 = 6;
-pub type _bindgen_ty_4 = ::std::os::raw::c_uint;
+pub type _bindgen_ty_4 = u32;
 pub const IF_LINK_MODE_DEFAULT: _bindgen_ty_5 = 0;
 pub const IF_LINK_MODE_DORMANT: _bindgen_ty_5 = 1;
-pub type _bindgen_ty_5 = ::std::os::raw::c_uint;
+pub type _bindgen_ty_5 = u32;
 #[repr(C)]
-#[derive(Debug, Default, Copy)]
+#[derive(Debug, Default, Copy, Clone)]
 pub struct ifmap {
     pub mem_start: ::std::os::raw::c_ulong,
     pub mem_end: ::std::os::raw::c_ulong,
@@ -2785,480 +1155,100 @@ pub struct ifmap {
     pub dma: ::std::os::raw::c_uchar,
     pub port: ::std::os::raw::c_uchar,
 }
-#[test]
-fn bindgen_test_layout_ifmap() {
-    assert_eq!(
-        ::std::mem::size_of::<ifmap>(),
-        24usize,
-        concat!("Size of: ", stringify!(ifmap))
-    );
-    assert_eq!(
-        ::std::mem::align_of::<ifmap>(),
-        8usize,
-        concat!("Alignment of ", stringify!(ifmap))
-    );
-    assert_eq!(
-        unsafe { &(*(0 as *const ifmap)).mem_start as *const _ as usize },
-        0usize,
-        concat!(
-            "Alignment of field: ",
-            stringify!(ifmap),
-            "::",
-            stringify!(mem_start)
-        )
-    );
-    assert_eq!(
-        unsafe { &(*(0 as *const ifmap)).mem_end as *const _ as usize },
-        8usize,
-        concat!(
-            "Alignment of field: ",
-            stringify!(ifmap),
-            "::",
-            stringify!(mem_end)
-        )
-    );
-    assert_eq!(
-        unsafe { &(*(0 as *const ifmap)).base_addr as *const _ as usize },
-        16usize,
-        concat!(
-            "Alignment of field: ",
-            stringify!(ifmap),
-            "::",
-            stringify!(base_addr)
-        )
-    );
-    assert_eq!(
-        unsafe { &(*(0 as *const ifmap)).irq as *const _ as usize },
-        18usize,
-        concat!(
-            "Alignment of field: ",
-            stringify!(ifmap),
-            "::",
-            stringify!(irq)
-        )
-    );
-    assert_eq!(
-        unsafe { &(*(0 as *const ifmap)).dma as *const _ as usize },
-        19usize,
-        concat!(
-            "Alignment of field: ",
-            stringify!(ifmap),
-            "::",
-            stringify!(dma)
-        )
-    );
-    assert_eq!(
-        unsafe { &(*(0 as *const ifmap)).port as *const _ as usize },
-        20usize,
-        concat!(
-            "Alignment of field: ",
-            stringify!(ifmap),
-            "::",
-            stringify!(port)
-        )
-    );
-}
-impl Clone for ifmap {
-    fn clone(&self) -> Self {
-        *self
-    }
-}
 #[repr(C)]
-#[derive(Debug, Default, Copy)]
+#[derive(Copy, Clone)]
 pub struct if_settings {
     pub type_: ::std::os::raw::c_uint,
     pub size: ::std::os::raw::c_uint,
     pub ifs_ifsu: if_settings__bindgen_ty_1,
 }
 #[repr(C)]
-#[derive(Debug, Default, Copy)]
-pub struct if_settings__bindgen_ty_1 {
-    pub raw_hdlc: __BindgenUnionField<*mut raw_hdlc_proto>,
-    pub cisco: __BindgenUnionField<*mut cisco_proto>,
-    pub fr: __BindgenUnionField<*mut fr_proto>,
-    pub fr_pvc: __BindgenUnionField<*mut fr_proto_pvc>,
-    pub fr_pvc_info: __BindgenUnionField<*mut fr_proto_pvc_info>,
-    pub sync: __BindgenUnionField<*mut sync_serial_settings>,
-    pub te1: __BindgenUnionField<*mut te1_settings>,
-    pub bindgen_union_field: u64,
-}
-#[test]
-fn bindgen_test_layout_if_settings__bindgen_ty_1() {
-    assert_eq!(
-        ::std::mem::size_of::<if_settings__bindgen_ty_1>(),
-        8usize,
-        concat!("Size of: ", stringify!(if_settings__bindgen_ty_1))
-    );
-    assert_eq!(
-        ::std::mem::align_of::<if_settings__bindgen_ty_1>(),
-        8usize,
-        concat!("Alignment of ", stringify!(if_settings__bindgen_ty_1))
-    );
-    assert_eq!(
-        unsafe { &(*(0 as *const if_settings__bindgen_ty_1)).raw_hdlc as *const _ as usize },
-        0usize,
-        concat!(
-            "Alignment of field: ",
-            stringify!(if_settings__bindgen_ty_1),
-            "::",
-            stringify!(raw_hdlc)
-        )
-    );
-    assert_eq!(
-        unsafe { &(*(0 as *const if_settings__bindgen_ty_1)).cisco as *const _ as usize },
-        0usize,
-        concat!(
-            "Alignment of field: ",
-            stringify!(if_settings__bindgen_ty_1),
-            "::",
-            stringify!(cisco)
-        )
-    );
-    assert_eq!(
-        unsafe { &(*(0 as *const if_settings__bindgen_ty_1)).fr as *const _ as usize },
-        0usize,
-        concat!(
-            "Alignment of field: ",
-            stringify!(if_settings__bindgen_ty_1),
-            "::",
-            stringify!(fr)
-        )
-    );
-    assert_eq!(
-        unsafe { &(*(0 as *const if_settings__bindgen_ty_1)).fr_pvc as *const _ as usize },
-        0usize,
-        concat!(
-            "Alignment of field: ",
-            stringify!(if_settings__bindgen_ty_1),
-            "::",
-            stringify!(fr_pvc)
-        )
-    );
-    assert_eq!(
-        unsafe { &(*(0 as *const if_settings__bindgen_ty_1)).fr_pvc_info as *const _ as usize },
-        0usize,
-        concat!(
-            "Alignment of field: ",
-            stringify!(if_settings__bindgen_ty_1),
-            "::",
-            stringify!(fr_pvc_info)
-        )
-    );
-    assert_eq!(
-        unsafe { &(*(0 as *const if_settings__bindgen_ty_1)).sync as *const _ as usize },
-        0usize,
-        concat!(
-            "Alignment of field: ",
-            stringify!(if_settings__bindgen_ty_1),
-            "::",
-            stringify!(sync)
-        )
-    );
-    assert_eq!(
-        unsafe { &(*(0 as *const if_settings__bindgen_ty_1)).te1 as *const _ as usize },
-        0usize,
-        concat!(
-            "Alignment of field: ",
-            stringify!(if_settings__bindgen_ty_1),
-            "::",
-            stringify!(te1)
-        )
-    );
-}
-impl Clone for if_settings__bindgen_ty_1 {
-    fn clone(&self) -> Self {
-        *self
+#[derive(Copy, Clone)]
+pub union if_settings__bindgen_ty_1 {
+    pub raw_hdlc: *mut raw_hdlc_proto,
+    pub cisco: *mut cisco_proto,
+    pub fr: *mut fr_proto,
+    pub fr_pvc: *mut fr_proto_pvc,
+    pub fr_pvc_info: *mut fr_proto_pvc_info,
+    pub sync: *mut sync_serial_settings,
+    pub te1: *mut te1_settings,
+    _bindgen_union_align: u64,
+}
+impl Default for if_settings__bindgen_ty_1 {
+    fn default() -> Self {
+        unsafe { ::std::mem::zeroed() }
     }
 }
-#[test]
-fn bindgen_test_layout_if_settings() {
-    assert_eq!(
-        ::std::mem::size_of::<if_settings>(),
-        16usize,
-        concat!("Size of: ", stringify!(if_settings))
-    );
-    assert_eq!(
-        ::std::mem::align_of::<if_settings>(),
-        8usize,
-        concat!("Alignment of ", stringify!(if_settings))
-    );
-    assert_eq!(
-        unsafe { &(*(0 as *const if_settings)).type_ as *const _ as usize },
-        0usize,
-        concat!(
-            "Alignment of field: ",
-            stringify!(if_settings),
-            "::",
-            stringify!(type_)
-        )
-    );
-    assert_eq!(
-        unsafe { &(*(0 as *const if_settings)).size as *const _ as usize },
-        4usize,
-        concat!(
-            "Alignment of field: ",
-            stringify!(if_settings),
-            "::",
-            stringify!(size)
-        )
-    );
-    assert_eq!(
-        unsafe { &(*(0 as *const if_settings)).ifs_ifsu as *const _ as usize },
-        8usize,
-        concat!(
-            "Alignment of field: ",
-            stringify!(if_settings),
-            "::",
-            stringify!(ifs_ifsu)
-        )
-    );
-}
-impl Clone for if_settings {
-    fn clone(&self) -> Self {
-        *self
+impl Default for if_settings {
+    fn default() -> Self {
+        unsafe { ::std::mem::zeroed() }
     }
 }
 #[repr(C)]
-#[derive(Debug, Default, Copy)]
+#[derive(Copy, Clone)]
 pub struct ifreq {
     pub ifr_ifrn: ifreq__bindgen_ty_1,
     pub ifr_ifru: ifreq__bindgen_ty_2,
 }
 #[repr(C)]
-#[derive(Debug, Default, Copy)]
-pub struct ifreq__bindgen_ty_1 {
-    pub ifrn_name: __BindgenUnionField<[::std::os::raw::c_uchar; 16usize]>,
-    pub bindgen_union_field: [u8; 16usize],
-}
-#[test]
-fn bindgen_test_layout_ifreq__bindgen_ty_1() {
-    assert_eq!(
-        ::std::mem::size_of::<ifreq__bindgen_ty_1>(),
-        16usize,
-        concat!("Size of: ", stringify!(ifreq__bindgen_ty_1))
-    );
-    assert_eq!(
-        ::std::mem::align_of::<ifreq__bindgen_ty_1>(),
-        1usize,
-        concat!("Alignment of ", stringify!(ifreq__bindgen_ty_1))
-    );
-    assert_eq!(
-        unsafe { &(*(0 as *const ifreq__bindgen_ty_1)).ifrn_name as *const _ as usize },
-        0usize,
-        concat!(
-            "Alignment of field: ",
-            stringify!(ifreq__bindgen_ty_1),
-            "::",
-            stringify!(ifrn_name)
-        )
-    );
-}
-impl Clone for ifreq__bindgen_ty_1 {
-    fn clone(&self) -> Self {
-        *self
+#[derive(Copy, Clone)]
+pub union ifreq__bindgen_ty_1 {
+    pub ifrn_name: [::std::os::raw::c_char; 16usize],
+    _bindgen_union_align: [u8; 16usize],
+}
+impl Default for ifreq__bindgen_ty_1 {
+    fn default() -> Self {
+        unsafe { ::std::mem::zeroed() }
     }
 }
 #[repr(C)]
-#[derive(Debug, Default, Copy)]
-pub struct ifreq__bindgen_ty_2 {
-    pub ifru_addr: __BindgenUnionField<sockaddr>,
-    pub ifru_dstaddr: __BindgenUnionField<sockaddr>,
-    pub ifru_broadaddr: __BindgenUnionField<sockaddr>,
-    pub ifru_netmask: __BindgenUnionField<sockaddr>,
-    pub ifru_hwaddr: __BindgenUnionField<sockaddr>,
-    pub ifru_flags: __BindgenUnionField<::std::os::raw::c_short>,
-    pub ifru_ivalue: __BindgenUnionField<::std::os::raw::c_int>,
-    pub ifru_mtu: __BindgenUnionField<::std::os::raw::c_int>,
-    pub ifru_map: __BindgenUnionField<ifmap>,
-    pub ifru_slave: __BindgenUnionField<[::std::os::raw::c_char; 16usize]>,
-    pub ifru_newname: __BindgenUnionField<[::std::os::raw::c_char; 16usize]>,
-    pub ifru_data: __BindgenUnionField<*mut ::std::os::raw::c_void>,
-    pub ifru_settings: __BindgenUnionField<if_settings>,
-    pub bindgen_union_field: [u64; 3usize],
-}
-#[test]
-fn bindgen_test_layout_ifreq__bindgen_ty_2() {
-    assert_eq!(
-        ::std::mem::size_of::<ifreq__bindgen_ty_2>(),
-        24usize,
-        concat!("Size of: ", stringify!(ifreq__bindgen_ty_2))
-    );
-    assert_eq!(
-        ::std::mem::align_of::<ifreq__bindgen_ty_2>(),
-        8usize,
-        concat!("Alignment of ", stringify!(ifreq__bindgen_ty_2))
-    );
-    assert_eq!(
-        unsafe { &(*(0 as *const ifreq__bindgen_ty_2)).ifru_addr as *const _ as usize },
-        0usize,
-        concat!(
-            "Alignment of field: ",
-            stringify!(ifreq__bindgen_ty_2),
-            "::",
-            stringify!(ifru_addr)
-        )
-    );
-    assert_eq!(
-        unsafe { &(*(0 as *const ifreq__bindgen_ty_2)).ifru_dstaddr as *const _ as usize },
-        0usize,
-        concat!(
-            "Alignment of field: ",
-            stringify!(ifreq__bindgen_ty_2),
-            "::",
-            stringify!(ifru_dstaddr)
-        )
-    );
-    assert_eq!(
-        unsafe { &(*(0 as *const ifreq__bindgen_ty_2)).ifru_broadaddr as *const _ as usize },
-        0usize,
-        concat!(
-            "Alignment of field: ",
-            stringify!(ifreq__bindgen_ty_2),
-            "::",
-            stringify!(ifru_broadaddr)
-        )
-    );
-    assert_eq!(
-        unsafe { &(*(0 as *const ifreq__bindgen_ty_2)).ifru_netmask as *const _ as usize },
-        0usize,
-        concat!(
-            "Alignment of field: ",
-            stringify!(ifreq__bindgen_ty_2),
-            "::",
-            stringify!(ifru_netmask)
-        )
-    );
-    assert_eq!(
-        unsafe { &(*(0 as *const ifreq__bindgen_ty_2)).ifru_hwaddr as *const _ as usize },
-        0usize,
-        concat!(
-            "Alignment of field: ",
-            stringify!(ifreq__bindgen_ty_2),
-            "::",
-            stringify!(ifru_hwaddr)
-        )
-    );
-    assert_eq!(
-        unsafe { &(*(0 as *const ifreq__bindgen_ty_2)).ifru_flags as *const _ as usize },
-        0usize,
-        concat!(
-            "Alignment of field: ",
-            stringify!(ifreq__bindgen_ty_2),
-            "::",
-            stringify!(ifru_flags)
-        )
-    );
-    assert_eq!(
-        unsafe { &(*(0 as *const ifreq__bindgen_ty_2)).ifru_ivalue as *const _ as usize },
-        0usize,
-        concat!(
-            "Alignment of field: ",
-            stringify!(ifreq__bindgen_ty_2),
-            "::",
-            stringify!(ifru_ivalue)
-        )
-    );
-    assert_eq!(
-        unsafe { &(*(0 as *const ifreq__bindgen_ty_2)).ifru_mtu as *const _ as usize },
-        0usize,
-        concat!(
-            "Alignment of field: ",
-            stringify!(ifreq__bindgen_ty_2),
-            "::",
-            stringify!(ifru_mtu)
-        )
-    );
-    assert_eq!(
-        unsafe { &(*(0 as *const ifreq__bindgen_ty_2)).ifru_map as *const _ as usize },
-        0usize,
-        concat!(
-            "Alignment of field: ",
-            stringify!(ifreq__bindgen_ty_2),
-            "::",
-            stringify!(ifru_map)
-        )
-    );
-    assert_eq!(
-        unsafe { &(*(0 as *const ifreq__bindgen_ty_2)).ifru_slave as *const _ as usize },
-        0usize,
-        concat!(
-            "Alignment of field: ",
-            stringify!(ifreq__bindgen_ty_2),
-            "::",
-            stringify!(ifru_slave)
-        )
-    );
-    assert_eq!(
-        unsafe { &(*(0 as *const ifreq__bindgen_ty_2)).ifru_newname as *const _ as usize },
-        0usize,
-        concat!(
-            "Alignment of field: ",
-            stringify!(ifreq__bindgen_ty_2),
-            "::",
-            stringify!(ifru_newname)
-        )
-    );
-    assert_eq!(
-        unsafe { &(*(0 as *const ifreq__bindgen_ty_2)).ifru_data as *const _ as usize },
-        0usize,
-        concat!(
-            "Alignment of field: ",
-            stringify!(ifreq__bindgen_ty_2),
-            "::",
-            stringify!(ifru_data)
-        )
-    );
-    assert_eq!(
-        unsafe { &(*(0 as *const ifreq__bindgen_ty_2)).ifru_settings as *const _ as usize },
-        0usize,
-        concat!(
-            "Alignment of field: ",
-            stringify!(ifreq__bindgen_ty_2),
-            "::",
-            stringify!(ifru_settings)
-        )
-    );
-}
-impl Clone for ifreq__bindgen_ty_2 {
-    fn clone(&self) -> Self {
-        *self
+#[derive(Copy, Clone)]
+pub union ifreq__bindgen_ty_2 {
+    pub ifru_addr: sockaddr,
+    pub ifru_dstaddr: sockaddr,
+    pub ifru_broadaddr: sockaddr,
+    pub ifru_netmask: sockaddr,
+    pub ifru_hwaddr: sockaddr,
+    pub ifru_flags: ::std::os::raw::c_short,
+    pub ifru_ivalue: ::std::os::raw::c_int,
+    pub ifru_mtu: ::std::os::raw::c_int,
+    pub ifru_map: ifmap,
+    pub ifru_slave: [::std::os::raw::c_char; 16usize],
+    pub ifru_newname: [::std::os::raw::c_char; 16usize],
+    pub ifru_data: *mut ::std::os::raw::c_void,
+    pub ifru_settings: if_settings,
+    _bindgen_union_align: [u64; 3usize],
+}
+impl Default for ifreq__bindgen_ty_2 {
+    fn default() -> Self {
+        unsafe { ::std::mem::zeroed() }
     }
 }
-#[test]
-fn bindgen_test_layout_ifreq() {
-    assert_eq!(
-        ::std::mem::size_of::<ifreq>(),
-        40usize,
-        concat!("Size of: ", stringify!(ifreq))
-    );
-    assert_eq!(
-        ::std::mem::align_of::<ifreq>(),
-        8usize,
-        concat!("Alignment of ", stringify!(ifreq))
-    );
-    assert_eq!(
-        unsafe { &(*(0 as *const ifreq)).ifr_ifrn as *const _ as usize },
-        0usize,
-        concat!(
-            "Alignment of field: ",
-            stringify!(ifreq),
-            "::",
-            stringify!(ifr_ifrn)
-        )
-    );
-    assert_eq!(
-        unsafe { &(*(0 as *const ifreq)).ifr_ifru as *const _ as usize },
-        16usize,
-        concat!(
-            "Alignment of field: ",
-            stringify!(ifreq),
-            "::",
-            stringify!(ifr_ifru)
-        )
-    );
-}
-impl Clone for ifreq {
-    fn clone(&self) -> Self {
-        *self
+impl Default for ifreq {
+    fn default() -> Self {
+        unsafe { ::std::mem::zeroed() }
+    }
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct ifconf {
+    pub ifc_len: ::std::os::raw::c_int,
+    pub ifc_ifcu: ifconf__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union ifconf__bindgen_ty_1 {
+    pub ifcu_buf: *mut ::std::os::raw::c_char,
+    pub ifcu_req: *mut ifreq,
+    _bindgen_union_align: u64,
+}
+impl Default for ifconf__bindgen_ty_1 {
+    fn default() -> Self {
+        unsafe { ::std::mem::zeroed() }
+    }
+}
+impl Default for ifconf {
+    fn default() -> Self {
+        unsafe { ::std::mem::zeroed() }
     }
 }