dbs_utils/net/net_gen/
iff.rs

1// Copyright 2017 The Chromium OS Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the THIRD-PARTY file.
4
5/* automatically generated by rust-bindgen */
6
7#[repr(C)]
8#[derive(Default)]
9pub struct __IncompleteArrayField<T>(::std::marker::PhantomData<T>);
10impl<T> __IncompleteArrayField<T> {
11    #[inline]
12    pub fn new() -> Self {
13        __IncompleteArrayField(::std::marker::PhantomData)
14    }
15    #[inline]
16    pub unsafe fn as_ptr(&self) -> *const T {
17        ::std::mem::transmute(self)
18    }
19    #[inline]
20    pub unsafe fn as_mut_ptr(&mut self) -> *mut T {
21        ::std::mem::transmute(self)
22    }
23    #[inline]
24    pub unsafe fn as_slice(&self, len: usize) -> &[T] {
25        ::std::slice::from_raw_parts(self.as_ptr(), len)
26    }
27    #[inline]
28    pub unsafe fn as_mut_slice(&mut self, len: usize) -> &mut [T] {
29        ::std::slice::from_raw_parts_mut(self.as_mut_ptr(), len)
30    }
31}
32impl<T> ::std::fmt::Debug for __IncompleteArrayField<T> {
33    fn fmt(&self, fmt: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
34        fmt.write_str("__IncompleteArrayField")
35    }
36}
37impl<T> ::std::clone::Clone for __IncompleteArrayField<T> {
38    #[inline]
39    fn clone(&self) -> Self {
40        Self::new()
41    }
42}
43impl<T> ::std::marker::Copy for __IncompleteArrayField<T> {}
44#[repr(C)]
45pub struct __BindgenUnionField<T>(::std::marker::PhantomData<T>);
46impl<T> __BindgenUnionField<T> {
47    #[inline]
48    pub fn new() -> Self {
49        __BindgenUnionField(::std::marker::PhantomData)
50    }
51    #[inline]
52    pub unsafe fn as_ref(&self) -> &T {
53        ::std::mem::transmute(self)
54    }
55    #[inline]
56    pub unsafe fn as_mut(&mut self) -> &mut T {
57        ::std::mem::transmute(self)
58    }
59}
60impl<T> ::std::default::Default for __BindgenUnionField<T> {
61    #[inline]
62    fn default() -> Self {
63        Self::new()
64    }
65}
66impl<T> ::std::clone::Clone for __BindgenUnionField<T> {
67    #[inline]
68    fn clone(&self) -> Self {
69        Self::new()
70    }
71}
72impl<T> ::std::marker::Copy for __BindgenUnionField<T> {}
73impl<T> ::std::fmt::Debug for __BindgenUnionField<T> {
74    fn fmt(&self, fmt: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
75        fmt.write_str("__BindgenUnionField")
76    }
77}
78pub const __UAPI_DEF_IN_ADDR: ::std::os::raw::c_uint = 1;
79pub const __UAPI_DEF_IN_IPPROTO: ::std::os::raw::c_uint = 1;
80pub const __UAPI_DEF_IN_PKTINFO: ::std::os::raw::c_uint = 1;
81pub const __UAPI_DEF_IP_MREQ: ::std::os::raw::c_uint = 1;
82pub const __UAPI_DEF_SOCKADDR_IN: ::std::os::raw::c_uint = 1;
83pub const __UAPI_DEF_IN_CLASS: ::std::os::raw::c_uint = 1;
84pub const __UAPI_DEF_IN6_ADDR: ::std::os::raw::c_uint = 1;
85pub const __UAPI_DEF_IN6_ADDR_ALT: ::std::os::raw::c_uint = 1;
86pub const __UAPI_DEF_SOCKADDR_IN6: ::std::os::raw::c_uint = 1;
87pub const __UAPI_DEF_IPV6_MREQ: ::std::os::raw::c_uint = 1;
88pub const __UAPI_DEF_IPPROTO_V6: ::std::os::raw::c_uint = 1;
89pub const __UAPI_DEF_IPV6_OPTIONS: ::std::os::raw::c_uint = 1;
90pub const __UAPI_DEF_IN6_PKTINFO: ::std::os::raw::c_uint = 1;
91pub const __UAPI_DEF_IP6_MTUINFO: ::std::os::raw::c_uint = 1;
92pub const __UAPI_DEF_XATTR: ::std::os::raw::c_uint = 1;
93pub const __BITS_PER_LONG: ::std::os::raw::c_uint = 64;
94pub const __FD_SETSIZE: ::std::os::raw::c_uint = 1024;
95pub const _K_SS_MAXSIZE: ::std::os::raw::c_uint = 128;
96pub const _SYS_SOCKET_H: ::std::os::raw::c_uint = 1;
97pub const _FEATURES_H: ::std::os::raw::c_uint = 1;
98pub const _DEFAULT_SOURCE: ::std::os::raw::c_uint = 1;
99pub const __USE_ISOC11: ::std::os::raw::c_uint = 1;
100pub const __USE_ISOC99: ::std::os::raw::c_uint = 1;
101pub const __USE_ISOC95: ::std::os::raw::c_uint = 1;
102pub const __USE_POSIX_IMPLICITLY: ::std::os::raw::c_uint = 1;
103pub const _POSIX_SOURCE: ::std::os::raw::c_uint = 1;
104pub const _POSIX_C_SOURCE: ::std::os::raw::c_uint = 200809;
105pub const __USE_POSIX: ::std::os::raw::c_uint = 1;
106pub const __USE_POSIX2: ::std::os::raw::c_uint = 1;
107pub const __USE_POSIX199309: ::std::os::raw::c_uint = 1;
108pub const __USE_POSIX199506: ::std::os::raw::c_uint = 1;
109pub const __USE_XOPEN2K: ::std::os::raw::c_uint = 1;
110pub const __USE_XOPEN2K8: ::std::os::raw::c_uint = 1;
111pub const _ATFILE_SOURCE: ::std::os::raw::c_uint = 1;
112pub const __USE_MISC: ::std::os::raw::c_uint = 1;
113pub const __USE_ATFILE: ::std::os::raw::c_uint = 1;
114pub const __USE_FORTIFY_LEVEL: ::std::os::raw::c_uint = 0;
115pub const _STDC_PREDEF_H: ::std::os::raw::c_uint = 1;
116pub const __STDC_IEC_559__: ::std::os::raw::c_uint = 1;
117pub const __STDC_IEC_559_COMPLEX__: ::std::os::raw::c_uint = 1;
118pub const __STDC_ISO_10646__: ::std::os::raw::c_uint = 201505;
119pub const __STDC_NO_THREADS__: ::std::os::raw::c_uint = 1;
120pub const __GNU_LIBRARY__: ::std::os::raw::c_uint = 6;
121pub const __GLIBC__: ::std::os::raw::c_uint = 2;
122pub const __GLIBC_MINOR__: ::std::os::raw::c_uint = 23;
123pub const _SYS_CDEFS_H: ::std::os::raw::c_uint = 1;
124pub const __WORDSIZE: ::std::os::raw::c_uint = 64;
125pub const __WORDSIZE_TIME64_COMPAT32: ::std::os::raw::c_uint = 1;
126pub const __SYSCALL_WORDSIZE: ::std::os::raw::c_uint = 64;
127pub const _SYS_UIO_H: ::std::os::raw::c_uint = 1;
128pub const _SYS_TYPES_H: ::std::os::raw::c_uint = 1;
129pub const _BITS_TYPES_H: ::std::os::raw::c_uint = 1;
130pub const _BITS_TYPESIZES_H: ::std::os::raw::c_uint = 1;
131pub const __OFF_T_MATCHES_OFF64_T: ::std::os::raw::c_uint = 1;
132pub const __INO_T_MATCHES_INO64_T: ::std::os::raw::c_uint = 1;
133pub const __clock_t_defined: ::std::os::raw::c_uint = 1;
134pub const __time_t_defined: ::std::os::raw::c_uint = 1;
135pub const __clockid_t_defined: ::std::os::raw::c_uint = 1;
136pub const __timer_t_defined: ::std::os::raw::c_uint = 1;
137pub const __BIT_TYPES_DEFINED__: ::std::os::raw::c_uint = 1;
138pub const _ENDIAN_H: ::std::os::raw::c_uint = 1;
139pub const __LITTLE_ENDIAN: ::std::os::raw::c_uint = 1234;
140pub const __BIG_ENDIAN: ::std::os::raw::c_uint = 4321;
141pub const __PDP_ENDIAN: ::std::os::raw::c_uint = 3412;
142pub const __BYTE_ORDER: ::std::os::raw::c_uint = 1234;
143pub const __FLOAT_WORD_ORDER: ::std::os::raw::c_uint = 1234;
144pub const LITTLE_ENDIAN: ::std::os::raw::c_uint = 1234;
145pub const BIG_ENDIAN: ::std::os::raw::c_uint = 4321;
146pub const PDP_ENDIAN: ::std::os::raw::c_uint = 3412;
147pub const BYTE_ORDER: ::std::os::raw::c_uint = 1234;
148pub const _BITS_BYTESWAP_H: ::std::os::raw::c_uint = 1;
149pub const _SYS_SELECT_H: ::std::os::raw::c_uint = 1;
150pub const __FD_ZERO_STOS: &'static [u8; 6usize] = b"stosq\x00";
151pub const _SIGSET_H_types: ::std::os::raw::c_uint = 1;
152pub const __timespec_defined: ::std::os::raw::c_uint = 1;
153pub const _STRUCT_TIMEVAL: ::std::os::raw::c_uint = 1;
154pub const FD_SETSIZE: ::std::os::raw::c_uint = 1024;
155pub const _SYS_SYSMACROS_H: ::std::os::raw::c_uint = 1;
156pub const _BITS_PTHREADTYPES_H: ::std::os::raw::c_uint = 1;
157pub const __SIZEOF_PTHREAD_ATTR_T: ::std::os::raw::c_uint = 56;
158pub const __SIZEOF_PTHREAD_MUTEX_T: ::std::os::raw::c_uint = 40;
159pub const __SIZEOF_PTHREAD_MUTEXATTR_T: ::std::os::raw::c_uint = 4;
160pub const __SIZEOF_PTHREAD_COND_T: ::std::os::raw::c_uint = 48;
161pub const __SIZEOF_PTHREAD_CONDATTR_T: ::std::os::raw::c_uint = 4;
162pub const __SIZEOF_PTHREAD_RWLOCK_T: ::std::os::raw::c_uint = 56;
163pub const __SIZEOF_PTHREAD_RWLOCKATTR_T: ::std::os::raw::c_uint = 8;
164pub const __SIZEOF_PTHREAD_BARRIER_T: ::std::os::raw::c_uint = 32;
165pub const __SIZEOF_PTHREAD_BARRIERATTR_T: ::std::os::raw::c_uint = 4;
166pub const __have_pthread_attr_t: ::std::os::raw::c_uint = 1;
167pub const __PTHREAD_MUTEX_HAVE_PREV: ::std::os::raw::c_uint = 1;
168pub const __PTHREAD_RWLOCK_INT_FLAGS_SHARED: ::std::os::raw::c_uint = 1;
169pub const _BITS_UIO_H: ::std::os::raw::c_uint = 1;
170pub const UIO_MAXIOV: ::std::os::raw::c_uint = 1024;
171pub const PF_UNSPEC: ::std::os::raw::c_uint = 0;
172pub const PF_LOCAL: ::std::os::raw::c_uint = 1;
173pub const PF_UNIX: ::std::os::raw::c_uint = 1;
174pub const PF_FILE: ::std::os::raw::c_uint = 1;
175pub const PF_INET: ::std::os::raw::c_uint = 2;
176pub const PF_AX25: ::std::os::raw::c_uint = 3;
177pub const PF_IPX: ::std::os::raw::c_uint = 4;
178pub const PF_APPLETALK: ::std::os::raw::c_uint = 5;
179pub const PF_NETROM: ::std::os::raw::c_uint = 6;
180pub const PF_BRIDGE: ::std::os::raw::c_uint = 7;
181pub const PF_ATMPVC: ::std::os::raw::c_uint = 8;
182pub const PF_X25: ::std::os::raw::c_uint = 9;
183pub const PF_INET6: ::std::os::raw::c_uint = 10;
184pub const PF_ROSE: ::std::os::raw::c_uint = 11;
185pub const PF_DECnet: ::std::os::raw::c_uint = 12;
186pub const PF_NETBEUI: ::std::os::raw::c_uint = 13;
187pub const PF_SECURITY: ::std::os::raw::c_uint = 14;
188pub const PF_KEY: ::std::os::raw::c_uint = 15;
189pub const PF_NETLINK: ::std::os::raw::c_uint = 16;
190pub const PF_ROUTE: ::std::os::raw::c_uint = 16;
191pub const PF_PACKET: ::std::os::raw::c_uint = 17;
192pub const PF_ASH: ::std::os::raw::c_uint = 18;
193pub const PF_ECONET: ::std::os::raw::c_uint = 19;
194pub const PF_ATMSVC: ::std::os::raw::c_uint = 20;
195pub const PF_RDS: ::std::os::raw::c_uint = 21;
196pub const PF_SNA: ::std::os::raw::c_uint = 22;
197pub const PF_IRDA: ::std::os::raw::c_uint = 23;
198pub const PF_PPPOX: ::std::os::raw::c_uint = 24;
199pub const PF_WANPIPE: ::std::os::raw::c_uint = 25;
200pub const PF_LLC: ::std::os::raw::c_uint = 26;
201pub const PF_IB: ::std::os::raw::c_uint = 27;
202pub const PF_MPLS: ::std::os::raw::c_uint = 28;
203pub const PF_CAN: ::std::os::raw::c_uint = 29;
204pub const PF_TIPC: ::std::os::raw::c_uint = 30;
205pub const PF_BLUETOOTH: ::std::os::raw::c_uint = 31;
206pub const PF_IUCV: ::std::os::raw::c_uint = 32;
207pub const PF_RXRPC: ::std::os::raw::c_uint = 33;
208pub const PF_ISDN: ::std::os::raw::c_uint = 34;
209pub const PF_PHONET: ::std::os::raw::c_uint = 35;
210pub const PF_IEEE802154: ::std::os::raw::c_uint = 36;
211pub const PF_CAIF: ::std::os::raw::c_uint = 37;
212pub const PF_ALG: ::std::os::raw::c_uint = 38;
213pub const PF_NFC: ::std::os::raw::c_uint = 39;
214pub const PF_VSOCK: ::std::os::raw::c_uint = 40;
215pub const PF_MAX: ::std::os::raw::c_uint = 41;
216pub const AF_UNSPEC: ::std::os::raw::c_uint = 0;
217pub const AF_LOCAL: ::std::os::raw::c_uint = 1;
218pub const AF_UNIX: ::std::os::raw::c_uint = 1;
219pub const AF_FILE: ::std::os::raw::c_uint = 1;
220pub const AF_INET: ::std::os::raw::c_uint = 2;
221pub const AF_AX25: ::std::os::raw::c_uint = 3;
222pub const AF_IPX: ::std::os::raw::c_uint = 4;
223pub const AF_APPLETALK: ::std::os::raw::c_uint = 5;
224pub const AF_NETROM: ::std::os::raw::c_uint = 6;
225pub const AF_BRIDGE: ::std::os::raw::c_uint = 7;
226pub const AF_ATMPVC: ::std::os::raw::c_uint = 8;
227pub const AF_X25: ::std::os::raw::c_uint = 9;
228pub const AF_INET6: ::std::os::raw::c_uint = 10;
229pub const AF_ROSE: ::std::os::raw::c_uint = 11;
230pub const AF_DECnet: ::std::os::raw::c_uint = 12;
231pub const AF_NETBEUI: ::std::os::raw::c_uint = 13;
232pub const AF_SECURITY: ::std::os::raw::c_uint = 14;
233pub const AF_KEY: ::std::os::raw::c_uint = 15;
234pub const AF_NETLINK: ::std::os::raw::c_uint = 16;
235pub const AF_ROUTE: ::std::os::raw::c_uint = 16;
236pub const AF_PACKET: ::std::os::raw::c_uint = 17;
237pub const AF_ASH: ::std::os::raw::c_uint = 18;
238pub const AF_ECONET: ::std::os::raw::c_uint = 19;
239pub const AF_ATMSVC: ::std::os::raw::c_uint = 20;
240pub const AF_RDS: ::std::os::raw::c_uint = 21;
241pub const AF_SNA: ::std::os::raw::c_uint = 22;
242pub const AF_IRDA: ::std::os::raw::c_uint = 23;
243pub const AF_PPPOX: ::std::os::raw::c_uint = 24;
244pub const AF_WANPIPE: ::std::os::raw::c_uint = 25;
245pub const AF_LLC: ::std::os::raw::c_uint = 26;
246pub const AF_IB: ::std::os::raw::c_uint = 27;
247pub const AF_MPLS: ::std::os::raw::c_uint = 28;
248pub const AF_CAN: ::std::os::raw::c_uint = 29;
249pub const AF_TIPC: ::std::os::raw::c_uint = 30;
250pub const AF_BLUETOOTH: ::std::os::raw::c_uint = 31;
251pub const AF_IUCV: ::std::os::raw::c_uint = 32;
252pub const AF_RXRPC: ::std::os::raw::c_uint = 33;
253pub const AF_ISDN: ::std::os::raw::c_uint = 34;
254pub const AF_PHONET: ::std::os::raw::c_uint = 35;
255pub const AF_IEEE802154: ::std::os::raw::c_uint = 36;
256pub const AF_CAIF: ::std::os::raw::c_uint = 37;
257pub const AF_ALG: ::std::os::raw::c_uint = 38;
258pub const AF_NFC: ::std::os::raw::c_uint = 39;
259pub const AF_VSOCK: ::std::os::raw::c_uint = 40;
260pub const AF_MAX: ::std::os::raw::c_uint = 41;
261pub const SOL_RAW: ::std::os::raw::c_uint = 255;
262pub const SOL_DECNET: ::std::os::raw::c_uint = 261;
263pub const SOL_X25: ::std::os::raw::c_uint = 262;
264pub const SOL_PACKET: ::std::os::raw::c_uint = 263;
265pub const SOL_ATM: ::std::os::raw::c_uint = 264;
266pub const SOL_AAL: ::std::os::raw::c_uint = 265;
267pub const SOL_IRDA: ::std::os::raw::c_uint = 266;
268pub const SOMAXCONN: ::std::os::raw::c_uint = 128;
269pub const _BITS_SOCKADDR_H: ::std::os::raw::c_uint = 1;
270pub const _SS_SIZE: ::std::os::raw::c_uint = 128;
271pub const FIOSETOWN: ::std::os::raw::c_uint = 35073;
272pub const SIOCSPGRP: ::std::os::raw::c_uint = 35074;
273pub const FIOGETOWN: ::std::os::raw::c_uint = 35075;
274pub const SIOCGPGRP: ::std::os::raw::c_uint = 35076;
275pub const SIOCATMARK: ::std::os::raw::c_uint = 35077;
276pub const SIOCGSTAMP: ::std::os::raw::c_uint = 35078;
277pub const SIOCGSTAMPNS: ::std::os::raw::c_uint = 35079;
278pub const SOL_SOCKET: ::std::os::raw::c_uint = 1;
279pub const SO_DEBUG: ::std::os::raw::c_uint = 1;
280pub const SO_REUSEADDR: ::std::os::raw::c_uint = 2;
281pub const SO_TYPE: ::std::os::raw::c_uint = 3;
282pub const SO_ERROR: ::std::os::raw::c_uint = 4;
283pub const SO_DONTROUTE: ::std::os::raw::c_uint = 5;
284pub const SO_BROADCAST: ::std::os::raw::c_uint = 6;
285pub const SO_SNDBUF: ::std::os::raw::c_uint = 7;
286pub const SO_RCVBUF: ::std::os::raw::c_uint = 8;
287pub const SO_SNDBUFFORCE: ::std::os::raw::c_uint = 32;
288pub const SO_RCVBUFFORCE: ::std::os::raw::c_uint = 33;
289pub const SO_KEEPALIVE: ::std::os::raw::c_uint = 9;
290pub const SO_OOBINLINE: ::std::os::raw::c_uint = 10;
291pub const SO_NO_CHECK: ::std::os::raw::c_uint = 11;
292pub const SO_PRIORITY: ::std::os::raw::c_uint = 12;
293pub const SO_LINGER: ::std::os::raw::c_uint = 13;
294pub const SO_BSDCOMPAT: ::std::os::raw::c_uint = 14;
295pub const SO_REUSEPORT: ::std::os::raw::c_uint = 15;
296pub const SO_PASSCRED: ::std::os::raw::c_uint = 16;
297pub const SO_PEERCRED: ::std::os::raw::c_uint = 17;
298pub const SO_RCVLOWAT: ::std::os::raw::c_uint = 18;
299pub const SO_SNDLOWAT: ::std::os::raw::c_uint = 19;
300pub const SO_RCVTIMEO: ::std::os::raw::c_uint = 20;
301pub const SO_SNDTIMEO: ::std::os::raw::c_uint = 21;
302pub const SO_SECURITY_AUTHENTICATION: ::std::os::raw::c_uint = 22;
303pub const SO_SECURITY_ENCRYPTION_TRANSPORT: ::std::os::raw::c_uint = 23;
304pub const SO_SECURITY_ENCRYPTION_NETWORK: ::std::os::raw::c_uint = 24;
305pub const SO_BINDTODEVICE: ::std::os::raw::c_uint = 25;
306pub const SO_ATTACH_FILTER: ::std::os::raw::c_uint = 26;
307pub const SO_DETACH_FILTER: ::std::os::raw::c_uint = 27;
308pub const SO_GET_FILTER: ::std::os::raw::c_uint = 26;
309pub const SO_PEERNAME: ::std::os::raw::c_uint = 28;
310pub const SO_TIMESTAMP: ::std::os::raw::c_uint = 29;
311pub const SCM_TIMESTAMP: ::std::os::raw::c_uint = 29;
312pub const SO_ACCEPTCONN: ::std::os::raw::c_uint = 30;
313pub const SO_PEERSEC: ::std::os::raw::c_uint = 31;
314pub const SO_PASSSEC: ::std::os::raw::c_uint = 34;
315pub const SO_TIMESTAMPNS: ::std::os::raw::c_uint = 35;
316pub const SCM_TIMESTAMPNS: ::std::os::raw::c_uint = 35;
317pub const SO_MARK: ::std::os::raw::c_uint = 36;
318pub const SO_TIMESTAMPING: ::std::os::raw::c_uint = 37;
319pub const SCM_TIMESTAMPING: ::std::os::raw::c_uint = 37;
320pub const SO_PROTOCOL: ::std::os::raw::c_uint = 38;
321pub const SO_DOMAIN: ::std::os::raw::c_uint = 39;
322pub const SO_RXQ_OVFL: ::std::os::raw::c_uint = 40;
323pub const SO_WIFI_STATUS: ::std::os::raw::c_uint = 41;
324pub const SCM_WIFI_STATUS: ::std::os::raw::c_uint = 41;
325pub const SO_PEEK_OFF: ::std::os::raw::c_uint = 42;
326pub const SO_NOFCS: ::std::os::raw::c_uint = 43;
327pub const SO_LOCK_FILTER: ::std::os::raw::c_uint = 44;
328pub const SO_SELECT_ERR_QUEUE: ::std::os::raw::c_uint = 45;
329pub const SO_BUSY_POLL: ::std::os::raw::c_uint = 46;
330pub const SO_MAX_PACING_RATE: ::std::os::raw::c_uint = 47;
331pub const SO_BPF_EXTENSIONS: ::std::os::raw::c_uint = 48;
332pub const SO_INCOMING_CPU: ::std::os::raw::c_uint = 49;
333pub const SO_ATTACH_BPF: ::std::os::raw::c_uint = 50;
334pub const SO_DETACH_BPF: ::std::os::raw::c_uint = 27;
335pub const IFNAMSIZ: ::std::os::raw::c_uint = 16;
336pub const IFALIASZ: ::std::os::raw::c_uint = 256;
337pub const GENERIC_HDLC_VERSION: ::std::os::raw::c_uint = 4;
338pub const CLOCK_DEFAULT: ::std::os::raw::c_uint = 0;
339pub const CLOCK_EXT: ::std::os::raw::c_uint = 1;
340pub const CLOCK_INT: ::std::os::raw::c_uint = 2;
341pub const CLOCK_TXINT: ::std::os::raw::c_uint = 3;
342pub const CLOCK_TXFROMRX: ::std::os::raw::c_uint = 4;
343pub const ENCODING_DEFAULT: ::std::os::raw::c_uint = 0;
344pub const ENCODING_NRZ: ::std::os::raw::c_uint = 1;
345pub const ENCODING_NRZI: ::std::os::raw::c_uint = 2;
346pub const ENCODING_FM_MARK: ::std::os::raw::c_uint = 3;
347pub const ENCODING_FM_SPACE: ::std::os::raw::c_uint = 4;
348pub const ENCODING_MANCHESTER: ::std::os::raw::c_uint = 5;
349pub const PARITY_DEFAULT: ::std::os::raw::c_uint = 0;
350pub const PARITY_NONE: ::std::os::raw::c_uint = 1;
351pub const PARITY_CRC16_PR0: ::std::os::raw::c_uint = 2;
352pub const PARITY_CRC16_PR1: ::std::os::raw::c_uint = 3;
353pub const PARITY_CRC16_PR0_CCITT: ::std::os::raw::c_uint = 4;
354pub const PARITY_CRC16_PR1_CCITT: ::std::os::raw::c_uint = 5;
355pub const PARITY_CRC32_PR0_CCITT: ::std::os::raw::c_uint = 6;
356pub const PARITY_CRC32_PR1_CCITT: ::std::os::raw::c_uint = 7;
357pub const LMI_DEFAULT: ::std::os::raw::c_uint = 0;
358pub const LMI_NONE: ::std::os::raw::c_uint = 1;
359pub const LMI_ANSI: ::std::os::raw::c_uint = 2;
360pub const LMI_CCITT: ::std::os::raw::c_uint = 3;
361pub const LMI_CISCO: ::std::os::raw::c_uint = 4;
362pub const IF_GET_IFACE: ::std::os::raw::c_uint = 1;
363pub const IF_GET_PROTO: ::std::os::raw::c_uint = 2;
364pub const IF_IFACE_V35: ::std::os::raw::c_uint = 4096;
365pub const IF_IFACE_V24: ::std::os::raw::c_uint = 4097;
366pub const IF_IFACE_X21: ::std::os::raw::c_uint = 4098;
367pub const IF_IFACE_T1: ::std::os::raw::c_uint = 4099;
368pub const IF_IFACE_E1: ::std::os::raw::c_uint = 4100;
369pub const IF_IFACE_SYNC_SERIAL: ::std::os::raw::c_uint = 4101;
370pub const IF_IFACE_X21D: ::std::os::raw::c_uint = 4102;
371pub const IF_PROTO_HDLC: ::std::os::raw::c_uint = 8192;
372pub const IF_PROTO_PPP: ::std::os::raw::c_uint = 8193;
373pub const IF_PROTO_CISCO: ::std::os::raw::c_uint = 8194;
374pub const IF_PROTO_FR: ::std::os::raw::c_uint = 8195;
375pub const IF_PROTO_FR_ADD_PVC: ::std::os::raw::c_uint = 8196;
376pub const IF_PROTO_FR_DEL_PVC: ::std::os::raw::c_uint = 8197;
377pub const IF_PROTO_X25: ::std::os::raw::c_uint = 8198;
378pub const IF_PROTO_HDLC_ETH: ::std::os::raw::c_uint = 8199;
379pub const IF_PROTO_FR_ADD_ETH_PVC: ::std::os::raw::c_uint = 8200;
380pub const IF_PROTO_FR_DEL_ETH_PVC: ::std::os::raw::c_uint = 8201;
381pub const IF_PROTO_FR_PVC: ::std::os::raw::c_uint = 8202;
382pub const IF_PROTO_FR_ETH_PVC: ::std::os::raw::c_uint = 8203;
383pub const IF_PROTO_RAW: ::std::os::raw::c_uint = 8204;
384pub const IFHWADDRLEN: ::std::os::raw::c_uint = 6;
385pub type __s8 = ::std::os::raw::c_schar;
386pub type __u8 = ::std::os::raw::c_uchar;
387pub type __s16 = ::std::os::raw::c_short;
388pub type __u16 = ::std::os::raw::c_ushort;
389pub type __s32 = ::std::os::raw::c_int;
390pub type __u32 = ::std::os::raw::c_uint;
391pub type __s64 = ::std::os::raw::c_longlong;
392pub type __u64 = ::std::os::raw::c_ulonglong;
393#[repr(C)]
394#[derive(Debug, Default, Copy)]
395pub struct __kernel_fd_set {
396    pub fds_bits: [::std::os::raw::c_ulong; 16usize],
397}
398#[test]
399fn bindgen_test_layout___kernel_fd_set() {
400    assert_eq!(
401        ::std::mem::size_of::<__kernel_fd_set>(),
402        128usize,
403        concat!("Size of: ", stringify!(__kernel_fd_set))
404    );
405    assert_eq!(
406        ::std::mem::align_of::<__kernel_fd_set>(),
407        8usize,
408        concat!("Alignment of ", stringify!(__kernel_fd_set))
409    );
410    assert_eq!(
411        unsafe { &(*(0 as *const __kernel_fd_set)).fds_bits as *const _ as usize },
412        0usize,
413        concat!(
414            "Alignment of field: ",
415            stringify!(__kernel_fd_set),
416            "::",
417            stringify!(fds_bits)
418        )
419    );
420}
421impl Clone for __kernel_fd_set {
422    fn clone(&self) -> Self {
423        *self
424    }
425}
426pub type __kernel_sighandler_t =
427    ::std::option::Option<unsafe extern "C" fn(arg1: ::std::os::raw::c_int)>;
428pub type __kernel_key_t = ::std::os::raw::c_int;
429pub type __kernel_mqd_t = ::std::os::raw::c_int;
430pub type __kernel_old_uid_t = ::std::os::raw::c_ushort;
431pub type __kernel_old_gid_t = ::std::os::raw::c_ushort;
432pub type __kernel_old_dev_t = ::std::os::raw::c_ulong;
433pub type __kernel_long_t = ::std::os::raw::c_long;
434pub type __kernel_ulong_t = ::std::os::raw::c_ulong;
435pub type __kernel_ino_t = __kernel_ulong_t;
436pub type __kernel_mode_t = ::std::os::raw::c_uint;
437pub type __kernel_pid_t = ::std::os::raw::c_int;
438pub type __kernel_ipc_pid_t = ::std::os::raw::c_int;
439pub type __kernel_uid_t = ::std::os::raw::c_uint;
440pub type __kernel_gid_t = ::std::os::raw::c_uint;
441pub type __kernel_suseconds_t = __kernel_long_t;
442pub type __kernel_daddr_t = ::std::os::raw::c_int;
443pub type __kernel_uid32_t = ::std::os::raw::c_uint;
444pub type __kernel_gid32_t = ::std::os::raw::c_uint;
445pub type __kernel_size_t = __kernel_ulong_t;
446pub type __kernel_ssize_t = __kernel_long_t;
447pub type __kernel_ptrdiff_t = __kernel_long_t;
448#[repr(C)]
449#[derive(Debug, Default, Copy)]
450pub struct __kernel_fsid_t {
451    pub val: [::std::os::raw::c_int; 2usize],
452}
453#[test]
454fn bindgen_test_layout___kernel_fsid_t() {
455    assert_eq!(
456        ::std::mem::size_of::<__kernel_fsid_t>(),
457        8usize,
458        concat!("Size of: ", stringify!(__kernel_fsid_t))
459    );
460    assert_eq!(
461        ::std::mem::align_of::<__kernel_fsid_t>(),
462        4usize,
463        concat!("Alignment of ", stringify!(__kernel_fsid_t))
464    );
465    assert_eq!(
466        unsafe { &(*(0 as *const __kernel_fsid_t)).val as *const _ as usize },
467        0usize,
468        concat!(
469            "Alignment of field: ",
470            stringify!(__kernel_fsid_t),
471            "::",
472            stringify!(val)
473        )
474    );
475}
476impl Clone for __kernel_fsid_t {
477    fn clone(&self) -> Self {
478        *self
479    }
480}
481pub type __kernel_off_t = __kernel_long_t;
482pub type __kernel_loff_t = ::std::os::raw::c_longlong;
483pub type __kernel_time_t = __kernel_long_t;
484pub type __kernel_clock_t = __kernel_long_t;
485pub type __kernel_timer_t = ::std::os::raw::c_int;
486pub type __kernel_clockid_t = ::std::os::raw::c_int;
487pub type __kernel_caddr_t = *mut ::std::os::raw::c_char;
488pub type __kernel_uid16_t = ::std::os::raw::c_ushort;
489pub type __kernel_gid16_t = ::std::os::raw::c_ushort;
490pub type __le16 = __u16;
491pub type __be16 = __u16;
492pub type __le32 = __u32;
493pub type __be32 = __u32;
494pub type __le64 = __u64;
495pub type __be64 = __u64;
496pub type __sum16 = __u16;
497pub type __wsum = __u32;
498pub type __kernel_sa_family_t = ::std::os::raw::c_ushort;
499#[repr(C)]
500pub struct __kernel_sockaddr_storage {
501    pub ss_family: __kernel_sa_family_t,
502    pub __data: [::std::os::raw::c_char; 126usize],
503    pub __bindgen_align: [u64; 0usize],
504}
505#[test]
506fn bindgen_test_layout___kernel_sockaddr_storage() {
507    assert_eq!(
508        ::std::mem::size_of::<__kernel_sockaddr_storage>(),
509        128usize,
510        concat!("Size of: ", stringify!(__kernel_sockaddr_storage))
511    );
512    assert_eq!(
513        ::std::mem::align_of::<__kernel_sockaddr_storage>(),
514        8usize,
515        concat!("Alignment of ", stringify!(__kernel_sockaddr_storage))
516    );
517    assert_eq!(
518        unsafe { &(*(0 as *const __kernel_sockaddr_storage)).ss_family as *const _ as usize },
519        0usize,
520        concat!(
521            "Alignment of field: ",
522            stringify!(__kernel_sockaddr_storage),
523            "::",
524            stringify!(ss_family)
525        )
526    );
527    assert_eq!(
528        unsafe { &(*(0 as *const __kernel_sockaddr_storage)).__data as *const _ as usize },
529        2usize,
530        concat!(
531            "Alignment of field: ",
532            stringify!(__kernel_sockaddr_storage),
533            "::",
534            stringify!(__data)
535        )
536    );
537}
538impl Default for __kernel_sockaddr_storage {
539    fn default() -> Self {
540        unsafe { ::std::mem::zeroed() }
541    }
542}
543pub type __u_char = ::std::os::raw::c_uchar;
544pub type __u_short = ::std::os::raw::c_ushort;
545pub type __u_int = ::std::os::raw::c_uint;
546pub type __u_long = ::std::os::raw::c_ulong;
547pub type __int8_t = ::std::os::raw::c_schar;
548pub type __uint8_t = ::std::os::raw::c_uchar;
549pub type __int16_t = ::std::os::raw::c_short;
550pub type __uint16_t = ::std::os::raw::c_ushort;
551pub type __int32_t = ::std::os::raw::c_int;
552pub type __uint32_t = ::std::os::raw::c_uint;
553pub type __int64_t = ::std::os::raw::c_long;
554pub type __uint64_t = ::std::os::raw::c_ulong;
555pub type __quad_t = ::std::os::raw::c_long;
556pub type __u_quad_t = ::std::os::raw::c_ulong;
557pub type __dev_t = ::std::os::raw::c_ulong;
558pub type __uid_t = ::std::os::raw::c_uint;
559pub type __gid_t = ::std::os::raw::c_uint;
560pub type __ino_t = ::std::os::raw::c_ulong;
561pub type __ino64_t = ::std::os::raw::c_ulong;
562pub type __mode_t = ::std::os::raw::c_uint;
563pub type __nlink_t = ::std::os::raw::c_ulong;
564pub type __off_t = ::std::os::raw::c_long;
565pub type __off64_t = ::std::os::raw::c_long;
566pub type __pid_t = ::std::os::raw::c_int;
567#[repr(C)]
568#[derive(Debug, Default, Copy)]
569pub struct __fsid_t {
570    pub __val: [::std::os::raw::c_int; 2usize],
571}
572#[test]
573fn bindgen_test_layout___fsid_t() {
574    assert_eq!(
575        ::std::mem::size_of::<__fsid_t>(),
576        8usize,
577        concat!("Size of: ", stringify!(__fsid_t))
578    );
579    assert_eq!(
580        ::std::mem::align_of::<__fsid_t>(),
581        4usize,
582        concat!("Alignment of ", stringify!(__fsid_t))
583    );
584    assert_eq!(
585        unsafe { &(*(0 as *const __fsid_t)).__val as *const _ as usize },
586        0usize,
587        concat!(
588            "Alignment of field: ",
589            stringify!(__fsid_t),
590            "::",
591            stringify!(__val)
592        )
593    );
594}
595impl Clone for __fsid_t {
596    fn clone(&self) -> Self {
597        *self
598    }
599}
600pub type __clock_t = ::std::os::raw::c_long;
601pub type __rlim_t = ::std::os::raw::c_ulong;
602pub type __rlim64_t = ::std::os::raw::c_ulong;
603pub type __id_t = ::std::os::raw::c_uint;
604pub type __time_t = ::std::os::raw::c_long;
605pub type __useconds_t = ::std::os::raw::c_uint;
606pub type __suseconds_t = ::std::os::raw::c_long;
607pub type __daddr_t = ::std::os::raw::c_int;
608pub type __key_t = ::std::os::raw::c_int;
609pub type __clockid_t = ::std::os::raw::c_int;
610pub type __timer_t = *mut ::std::os::raw::c_void;
611pub type __blksize_t = ::std::os::raw::c_long;
612pub type __blkcnt_t = ::std::os::raw::c_long;
613pub type __blkcnt64_t = ::std::os::raw::c_long;
614pub type __fsblkcnt_t = ::std::os::raw::c_ulong;
615pub type __fsblkcnt64_t = ::std::os::raw::c_ulong;
616pub type __fsfilcnt_t = ::std::os::raw::c_ulong;
617pub type __fsfilcnt64_t = ::std::os::raw::c_ulong;
618pub type __fsword_t = ::std::os::raw::c_long;
619pub type __ssize_t = ::std::os::raw::c_long;
620pub type __syscall_slong_t = ::std::os::raw::c_long;
621pub type __syscall_ulong_t = ::std::os::raw::c_ulong;
622pub type __loff_t = __off64_t;
623pub type __qaddr_t = *mut __quad_t;
624pub type __caddr_t = *mut ::std::os::raw::c_char;
625pub type __intptr_t = ::std::os::raw::c_long;
626pub type __socklen_t = ::std::os::raw::c_uint;
627pub type u_char = __u_char;
628pub type u_short = __u_short;
629pub type u_int = __u_int;
630pub type u_long = __u_long;
631pub type quad_t = __quad_t;
632pub type u_quad_t = __u_quad_t;
633pub type fsid_t = __fsid_t;
634pub type loff_t = __loff_t;
635pub type ino_t = __ino_t;
636pub type dev_t = __dev_t;
637pub type gid_t = __gid_t;
638pub type mode_t = __mode_t;
639pub type nlink_t = __nlink_t;
640pub type uid_t = __uid_t;
641pub type off_t = __off_t;
642pub type pid_t = __pid_t;
643pub type id_t = __id_t;
644pub type daddr_t = __daddr_t;
645pub type caddr_t = __caddr_t;
646pub type key_t = __key_t;
647pub type clock_t = __clock_t;
648pub type time_t = __time_t;
649pub type clockid_t = __clockid_t;
650pub type timer_t = __timer_t;
651pub type ulong = ::std::os::raw::c_ulong;
652pub type ushort = ::std::os::raw::c_ushort;
653pub type uint = ::std::os::raw::c_uint;
654pub type u_int8_t = ::std::os::raw::c_uchar;
655pub type u_int16_t = ::std::os::raw::c_ushort;
656pub type u_int32_t = ::std::os::raw::c_uint;
657pub type u_int64_t = ::std::os::raw::c_ulong;
658pub type register_t = ::std::os::raw::c_long;
659pub type __sig_atomic_t = ::std::os::raw::c_int;
660#[repr(C)]
661#[derive(Debug, Default, Copy)]
662pub struct __sigset_t {
663    pub __val: [::std::os::raw::c_ulong; 16usize],
664}
665#[test]
666fn bindgen_test_layout___sigset_t() {
667    assert_eq!(
668        ::std::mem::size_of::<__sigset_t>(),
669        128usize,
670        concat!("Size of: ", stringify!(__sigset_t))
671    );
672    assert_eq!(
673        ::std::mem::align_of::<__sigset_t>(),
674        8usize,
675        concat!("Alignment of ", stringify!(__sigset_t))
676    );
677    assert_eq!(
678        unsafe { &(*(0 as *const __sigset_t)).__val as *const _ as usize },
679        0usize,
680        concat!(
681            "Alignment of field: ",
682            stringify!(__sigset_t),
683            "::",
684            stringify!(__val)
685        )
686    );
687}
688impl Clone for __sigset_t {
689    fn clone(&self) -> Self {
690        *self
691    }
692}
693pub type sigset_t = __sigset_t;
694#[repr(C)]
695#[derive(Debug, Default, Copy)]
696pub struct timespec {
697    pub tv_sec: __time_t,
698    pub tv_nsec: __syscall_slong_t,
699}
700#[test]
701fn bindgen_test_layout_timespec() {
702    assert_eq!(
703        ::std::mem::size_of::<timespec>(),
704        16usize,
705        concat!("Size of: ", stringify!(timespec))
706    );
707    assert_eq!(
708        ::std::mem::align_of::<timespec>(),
709        8usize,
710        concat!("Alignment of ", stringify!(timespec))
711    );
712    assert_eq!(
713        unsafe { &(*(0 as *const timespec)).tv_sec as *const _ as usize },
714        0usize,
715        concat!(
716            "Alignment of field: ",
717            stringify!(timespec),
718            "::",
719            stringify!(tv_sec)
720        )
721    );
722    assert_eq!(
723        unsafe { &(*(0 as *const timespec)).tv_nsec as *const _ as usize },
724        8usize,
725        concat!(
726            "Alignment of field: ",
727            stringify!(timespec),
728            "::",
729            stringify!(tv_nsec)
730        )
731    );
732}
733impl Clone for timespec {
734    fn clone(&self) -> Self {
735        *self
736    }
737}
738#[repr(C)]
739#[derive(Debug, Default, Copy)]
740pub struct timeval {
741    pub tv_sec: __time_t,
742    pub tv_usec: __suseconds_t,
743}
744#[test]
745fn bindgen_test_layout_timeval() {
746    assert_eq!(
747        ::std::mem::size_of::<timeval>(),
748        16usize,
749        concat!("Size of: ", stringify!(timeval))
750    );
751    assert_eq!(
752        ::std::mem::align_of::<timeval>(),
753        8usize,
754        concat!("Alignment of ", stringify!(timeval))
755    );
756    assert_eq!(
757        unsafe { &(*(0 as *const timeval)).tv_sec as *const _ as usize },
758        0usize,
759        concat!(
760            "Alignment of field: ",
761            stringify!(timeval),
762            "::",
763            stringify!(tv_sec)
764        )
765    );
766    assert_eq!(
767        unsafe { &(*(0 as *const timeval)).tv_usec as *const _ as usize },
768        8usize,
769        concat!(
770            "Alignment of field: ",
771            stringify!(timeval),
772            "::",
773            stringify!(tv_usec)
774        )
775    );
776}
777impl Clone for timeval {
778    fn clone(&self) -> Self {
779        *self
780    }
781}
782pub type suseconds_t = __suseconds_t;
783pub type __fd_mask = ::std::os::raw::c_long;
784#[repr(C)]
785#[derive(Debug, Default, Copy)]
786pub struct fd_set {
787    pub __fds_bits: [__fd_mask; 16usize],
788}
789#[test]
790fn bindgen_test_layout_fd_set() {
791    assert_eq!(
792        ::std::mem::size_of::<fd_set>(),
793        128usize,
794        concat!("Size of: ", stringify!(fd_set))
795    );
796    assert_eq!(
797        ::std::mem::align_of::<fd_set>(),
798        8usize,
799        concat!("Alignment of ", stringify!(fd_set))
800    );
801    assert_eq!(
802        unsafe { &(*(0 as *const fd_set)).__fds_bits as *const _ as usize },
803        0usize,
804        concat!(
805            "Alignment of field: ",
806            stringify!(fd_set),
807            "::",
808            stringify!(__fds_bits)
809        )
810    );
811}
812impl Clone for fd_set {
813    fn clone(&self) -> Self {
814        *self
815    }
816}
817pub type fd_mask = __fd_mask;
818extern "C" {
819    pub fn select(
820        __nfds: ::std::os::raw::c_int,
821        __readfds: *mut fd_set,
822        __writefds: *mut fd_set,
823        __exceptfds: *mut fd_set,
824        __timeout: *mut timeval,
825    ) -> ::std::os::raw::c_int;
826}
827extern "C" {
828    pub fn pselect(
829        __nfds: ::std::os::raw::c_int,
830        __readfds: *mut fd_set,
831        __writefds: *mut fd_set,
832        __exceptfds: *mut fd_set,
833        __timeout: *const timespec,
834        __sigmask: *const __sigset_t,
835    ) -> ::std::os::raw::c_int;
836}
837extern "C" {
838    pub fn gnu_dev_major(__dev: ::std::os::raw::c_ulonglong) -> ::std::os::raw::c_uint;
839}
840extern "C" {
841    pub fn gnu_dev_minor(__dev: ::std::os::raw::c_ulonglong) -> ::std::os::raw::c_uint;
842}
843extern "C" {
844    pub fn gnu_dev_makedev(
845        __major: ::std::os::raw::c_uint,
846        __minor: ::std::os::raw::c_uint,
847    ) -> ::std::os::raw::c_ulonglong;
848}
849pub type blksize_t = __blksize_t;
850pub type blkcnt_t = __blkcnt_t;
851pub type fsblkcnt_t = __fsblkcnt_t;
852pub type fsfilcnt_t = __fsfilcnt_t;
853pub type pthread_t = ::std::os::raw::c_ulong;
854#[repr(C)]
855#[derive(Debug, Default, Copy)]
856pub struct pthread_attr_t {
857    pub __size: __BindgenUnionField<[::std::os::raw::c_char; 56usize]>,
858    pub __align: __BindgenUnionField<::std::os::raw::c_long>,
859    pub bindgen_union_field: [u64; 7usize],
860}
861#[test]
862fn bindgen_test_layout_pthread_attr_t() {
863    assert_eq!(
864        ::std::mem::size_of::<pthread_attr_t>(),
865        56usize,
866        concat!("Size of: ", stringify!(pthread_attr_t))
867    );
868    assert_eq!(
869        ::std::mem::align_of::<pthread_attr_t>(),
870        8usize,
871        concat!("Alignment of ", stringify!(pthread_attr_t))
872    );
873    assert_eq!(
874        unsafe { &(*(0 as *const pthread_attr_t)).__size as *const _ as usize },
875        0usize,
876        concat!(
877            "Alignment of field: ",
878            stringify!(pthread_attr_t),
879            "::",
880            stringify!(__size)
881        )
882    );
883    assert_eq!(
884        unsafe { &(*(0 as *const pthread_attr_t)).__align as *const _ as usize },
885        0usize,
886        concat!(
887            "Alignment of field: ",
888            stringify!(pthread_attr_t),
889            "::",
890            stringify!(__align)
891        )
892    );
893}
894impl Clone for pthread_attr_t {
895    fn clone(&self) -> Self {
896        *self
897    }
898}
899#[repr(C)]
900#[derive(Debug, Copy)]
901pub struct __pthread_internal_list {
902    pub __prev: *mut __pthread_internal_list,
903    pub __next: *mut __pthread_internal_list,
904}
905#[test]
906fn bindgen_test_layout___pthread_internal_list() {
907    assert_eq!(
908        ::std::mem::size_of::<__pthread_internal_list>(),
909        16usize,
910        concat!("Size of: ", stringify!(__pthread_internal_list))
911    );
912    assert_eq!(
913        ::std::mem::align_of::<__pthread_internal_list>(),
914        8usize,
915        concat!("Alignment of ", stringify!(__pthread_internal_list))
916    );
917    assert_eq!(
918        unsafe { &(*(0 as *const __pthread_internal_list)).__prev as *const _ as usize },
919        0usize,
920        concat!(
921            "Alignment of field: ",
922            stringify!(__pthread_internal_list),
923            "::",
924            stringify!(__prev)
925        )
926    );
927    assert_eq!(
928        unsafe { &(*(0 as *const __pthread_internal_list)).__next as *const _ as usize },
929        8usize,
930        concat!(
931            "Alignment of field: ",
932            stringify!(__pthread_internal_list),
933            "::",
934            stringify!(__next)
935        )
936    );
937}
938impl Clone for __pthread_internal_list {
939    fn clone(&self) -> Self {
940        *self
941    }
942}
943impl Default for __pthread_internal_list {
944    fn default() -> Self {
945        unsafe { ::std::mem::zeroed() }
946    }
947}
948pub type __pthread_list_t = __pthread_internal_list;
949#[repr(C)]
950#[derive(Debug, Default, Copy)]
951pub struct pthread_mutex_t {
952    pub __data: __BindgenUnionField<pthread_mutex_t___pthread_mutex_s>,
953    pub __size: __BindgenUnionField<[::std::os::raw::c_char; 40usize]>,
954    pub __align: __BindgenUnionField<::std::os::raw::c_long>,
955    pub bindgen_union_field: [u64; 5usize],
956}
957#[repr(C)]
958#[derive(Debug, Copy)]
959pub struct pthread_mutex_t___pthread_mutex_s {
960    pub __lock: ::std::os::raw::c_int,
961    pub __count: ::std::os::raw::c_uint,
962    pub __owner: ::std::os::raw::c_int,
963    pub __nusers: ::std::os::raw::c_uint,
964    pub __kind: ::std::os::raw::c_int,
965    pub __spins: ::std::os::raw::c_short,
966    pub __elision: ::std::os::raw::c_short,
967    pub __list: __pthread_list_t,
968}
969#[test]
970fn bindgen_test_layout_pthread_mutex_t___pthread_mutex_s() {
971    assert_eq!(
972        ::std::mem::size_of::<pthread_mutex_t___pthread_mutex_s>(),
973        40usize,
974        concat!("Size of: ", stringify!(pthread_mutex_t___pthread_mutex_s))
975    );
976    assert_eq!(
977        ::std::mem::align_of::<pthread_mutex_t___pthread_mutex_s>(),
978        8usize,
979        concat!(
980            "Alignment of ",
981            stringify!(pthread_mutex_t___pthread_mutex_s)
982        )
983    );
984    assert_eq!(
985        unsafe { &(*(0 as *const pthread_mutex_t___pthread_mutex_s)).__lock as *const _ as usize },
986        0usize,
987        concat!(
988            "Alignment of field: ",
989            stringify!(pthread_mutex_t___pthread_mutex_s),
990            "::",
991            stringify!(__lock)
992        )
993    );
994    assert_eq!(
995        unsafe { &(*(0 as *const pthread_mutex_t___pthread_mutex_s)).__count as *const _ as usize },
996        4usize,
997        concat!(
998            "Alignment of field: ",
999            stringify!(pthread_mutex_t___pthread_mutex_s),
1000            "::",
1001            stringify!(__count)
1002        )
1003    );
1004    assert_eq!(
1005        unsafe { &(*(0 as *const pthread_mutex_t___pthread_mutex_s)).__owner as *const _ as usize },
1006        8usize,
1007        concat!(
1008            "Alignment of field: ",
1009            stringify!(pthread_mutex_t___pthread_mutex_s),
1010            "::",
1011            stringify!(__owner)
1012        )
1013    );
1014    assert_eq!(
1015        unsafe {
1016            &(*(0 as *const pthread_mutex_t___pthread_mutex_s)).__nusers as *const _ as usize
1017        },
1018        12usize,
1019        concat!(
1020            "Alignment of field: ",
1021            stringify!(pthread_mutex_t___pthread_mutex_s),
1022            "::",
1023            stringify!(__nusers)
1024        )
1025    );
1026    assert_eq!(
1027        unsafe { &(*(0 as *const pthread_mutex_t___pthread_mutex_s)).__kind as *const _ as usize },
1028        16usize,
1029        concat!(
1030            "Alignment of field: ",
1031            stringify!(pthread_mutex_t___pthread_mutex_s),
1032            "::",
1033            stringify!(__kind)
1034        )
1035    );
1036    assert_eq!(
1037        unsafe { &(*(0 as *const pthread_mutex_t___pthread_mutex_s)).__spins as *const _ as usize },
1038        20usize,
1039        concat!(
1040            "Alignment of field: ",
1041            stringify!(pthread_mutex_t___pthread_mutex_s),
1042            "::",
1043            stringify!(__spins)
1044        )
1045    );
1046    assert_eq!(
1047        unsafe {
1048            &(*(0 as *const pthread_mutex_t___pthread_mutex_s)).__elision as *const _ as usize
1049        },
1050        22usize,
1051        concat!(
1052            "Alignment of field: ",
1053            stringify!(pthread_mutex_t___pthread_mutex_s),
1054            "::",
1055            stringify!(__elision)
1056        )
1057    );
1058    assert_eq!(
1059        unsafe { &(*(0 as *const pthread_mutex_t___pthread_mutex_s)).__list as *const _ as usize },
1060        24usize,
1061        concat!(
1062            "Alignment of field: ",
1063            stringify!(pthread_mutex_t___pthread_mutex_s),
1064            "::",
1065            stringify!(__list)
1066        )
1067    );
1068}
1069impl Clone for pthread_mutex_t___pthread_mutex_s {
1070    fn clone(&self) -> Self {
1071        *self
1072    }
1073}
1074impl Default for pthread_mutex_t___pthread_mutex_s {
1075    fn default() -> Self {
1076        unsafe { ::std::mem::zeroed() }
1077    }
1078}
1079#[test]
1080fn bindgen_test_layout_pthread_mutex_t() {
1081    assert_eq!(
1082        ::std::mem::size_of::<pthread_mutex_t>(),
1083        40usize,
1084        concat!("Size of: ", stringify!(pthread_mutex_t))
1085    );
1086    assert_eq!(
1087        ::std::mem::align_of::<pthread_mutex_t>(),
1088        8usize,
1089        concat!("Alignment of ", stringify!(pthread_mutex_t))
1090    );
1091    assert_eq!(
1092        unsafe { &(*(0 as *const pthread_mutex_t)).__data as *const _ as usize },
1093        0usize,
1094        concat!(
1095            "Alignment of field: ",
1096            stringify!(pthread_mutex_t),
1097            "::",
1098            stringify!(__data)
1099        )
1100    );
1101    assert_eq!(
1102        unsafe { &(*(0 as *const pthread_mutex_t)).__size as *const _ as usize },
1103        0usize,
1104        concat!(
1105            "Alignment of field: ",
1106            stringify!(pthread_mutex_t),
1107            "::",
1108            stringify!(__size)
1109        )
1110    );
1111    assert_eq!(
1112        unsafe { &(*(0 as *const pthread_mutex_t)).__align as *const _ as usize },
1113        0usize,
1114        concat!(
1115            "Alignment of field: ",
1116            stringify!(pthread_mutex_t),
1117            "::",
1118            stringify!(__align)
1119        )
1120    );
1121}
1122impl Clone for pthread_mutex_t {
1123    fn clone(&self) -> Self {
1124        *self
1125    }
1126}
1127#[repr(C)]
1128#[derive(Debug, Default, Copy)]
1129pub struct pthread_mutexattr_t {
1130    pub __size: __BindgenUnionField<[::std::os::raw::c_char; 4usize]>,
1131    pub __align: __BindgenUnionField<::std::os::raw::c_int>,
1132    pub bindgen_union_field: u32,
1133}
1134#[test]
1135fn bindgen_test_layout_pthread_mutexattr_t() {
1136    assert_eq!(
1137        ::std::mem::size_of::<pthread_mutexattr_t>(),
1138        4usize,
1139        concat!("Size of: ", stringify!(pthread_mutexattr_t))
1140    );
1141    assert_eq!(
1142        ::std::mem::align_of::<pthread_mutexattr_t>(),
1143        4usize,
1144        concat!("Alignment of ", stringify!(pthread_mutexattr_t))
1145    );
1146    assert_eq!(
1147        unsafe { &(*(0 as *const pthread_mutexattr_t)).__size as *const _ as usize },
1148        0usize,
1149        concat!(
1150            "Alignment of field: ",
1151            stringify!(pthread_mutexattr_t),
1152            "::",
1153            stringify!(__size)
1154        )
1155    );
1156    assert_eq!(
1157        unsafe { &(*(0 as *const pthread_mutexattr_t)).__align as *const _ as usize },
1158        0usize,
1159        concat!(
1160            "Alignment of field: ",
1161            stringify!(pthread_mutexattr_t),
1162            "::",
1163            stringify!(__align)
1164        )
1165    );
1166}
1167impl Clone for pthread_mutexattr_t {
1168    fn clone(&self) -> Self {
1169        *self
1170    }
1171}
1172#[repr(C)]
1173#[derive(Debug, Default, Copy)]
1174pub struct pthread_cond_t {
1175    pub __data: __BindgenUnionField<pthread_cond_t__bindgen_ty_1>,
1176    pub __size: __BindgenUnionField<[::std::os::raw::c_char; 48usize]>,
1177    pub __align: __BindgenUnionField<::std::os::raw::c_longlong>,
1178    pub bindgen_union_field: [u64; 6usize],
1179}
1180#[repr(C)]
1181#[derive(Debug, Copy)]
1182pub struct pthread_cond_t__bindgen_ty_1 {
1183    pub __lock: ::std::os::raw::c_int,
1184    pub __futex: ::std::os::raw::c_uint,
1185    pub __total_seq: ::std::os::raw::c_ulonglong,
1186    pub __wakeup_seq: ::std::os::raw::c_ulonglong,
1187    pub __woken_seq: ::std::os::raw::c_ulonglong,
1188    pub __mutex: *mut ::std::os::raw::c_void,
1189    pub __nwaiters: ::std::os::raw::c_uint,
1190    pub __broadcast_seq: ::std::os::raw::c_uint,
1191}
1192#[test]
1193fn bindgen_test_layout_pthread_cond_t__bindgen_ty_1() {
1194    assert_eq!(
1195        ::std::mem::size_of::<pthread_cond_t__bindgen_ty_1>(),
1196        48usize,
1197        concat!("Size of: ", stringify!(pthread_cond_t__bindgen_ty_1))
1198    );
1199    assert_eq!(
1200        ::std::mem::align_of::<pthread_cond_t__bindgen_ty_1>(),
1201        8usize,
1202        concat!("Alignment of ", stringify!(pthread_cond_t__bindgen_ty_1))
1203    );
1204    assert_eq!(
1205        unsafe { &(*(0 as *const pthread_cond_t__bindgen_ty_1)).__lock as *const _ as usize },
1206        0usize,
1207        concat!(
1208            "Alignment of field: ",
1209            stringify!(pthread_cond_t__bindgen_ty_1),
1210            "::",
1211            stringify!(__lock)
1212        )
1213    );
1214    assert_eq!(
1215        unsafe { &(*(0 as *const pthread_cond_t__bindgen_ty_1)).__futex as *const _ as usize },
1216        4usize,
1217        concat!(
1218            "Alignment of field: ",
1219            stringify!(pthread_cond_t__bindgen_ty_1),
1220            "::",
1221            stringify!(__futex)
1222        )
1223    );
1224    assert_eq!(
1225        unsafe { &(*(0 as *const pthread_cond_t__bindgen_ty_1)).__total_seq as *const _ as usize },
1226        8usize,
1227        concat!(
1228            "Alignment of field: ",
1229            stringify!(pthread_cond_t__bindgen_ty_1),
1230            "::",
1231            stringify!(__total_seq)
1232        )
1233    );
1234    assert_eq!(
1235        unsafe { &(*(0 as *const pthread_cond_t__bindgen_ty_1)).__wakeup_seq as *const _ as usize },
1236        16usize,
1237        concat!(
1238            "Alignment of field: ",
1239            stringify!(pthread_cond_t__bindgen_ty_1),
1240            "::",
1241            stringify!(__wakeup_seq)
1242        )
1243    );
1244    assert_eq!(
1245        unsafe { &(*(0 as *const pthread_cond_t__bindgen_ty_1)).__woken_seq as *const _ as usize },
1246        24usize,
1247        concat!(
1248            "Alignment of field: ",
1249            stringify!(pthread_cond_t__bindgen_ty_1),
1250            "::",
1251            stringify!(__woken_seq)
1252        )
1253    );
1254    assert_eq!(
1255        unsafe { &(*(0 as *const pthread_cond_t__bindgen_ty_1)).__mutex as *const _ as usize },
1256        32usize,
1257        concat!(
1258            "Alignment of field: ",
1259            stringify!(pthread_cond_t__bindgen_ty_1),
1260            "::",
1261            stringify!(__mutex)
1262        )
1263    );
1264    assert_eq!(
1265        unsafe { &(*(0 as *const pthread_cond_t__bindgen_ty_1)).__nwaiters as *const _ as usize },
1266        40usize,
1267        concat!(
1268            "Alignment of field: ",
1269            stringify!(pthread_cond_t__bindgen_ty_1),
1270            "::",
1271            stringify!(__nwaiters)
1272        )
1273    );
1274    assert_eq!(
1275        unsafe {
1276            &(*(0 as *const pthread_cond_t__bindgen_ty_1)).__broadcast_seq as *const _ as usize
1277        },
1278        44usize,
1279        concat!(
1280            "Alignment of field: ",
1281            stringify!(pthread_cond_t__bindgen_ty_1),
1282            "::",
1283            stringify!(__broadcast_seq)
1284        )
1285    );
1286}
1287impl Clone for pthread_cond_t__bindgen_ty_1 {
1288    fn clone(&self) -> Self {
1289        *self
1290    }
1291}
1292impl Default for pthread_cond_t__bindgen_ty_1 {
1293    fn default() -> Self {
1294        unsafe { ::std::mem::zeroed() }
1295    }
1296}
1297#[test]
1298fn bindgen_test_layout_pthread_cond_t() {
1299    assert_eq!(
1300        ::std::mem::size_of::<pthread_cond_t>(),
1301        48usize,
1302        concat!("Size of: ", stringify!(pthread_cond_t))
1303    );
1304    assert_eq!(
1305        ::std::mem::align_of::<pthread_cond_t>(),
1306        8usize,
1307        concat!("Alignment of ", stringify!(pthread_cond_t))
1308    );
1309    assert_eq!(
1310        unsafe { &(*(0 as *const pthread_cond_t)).__data as *const _ as usize },
1311        0usize,
1312        concat!(
1313            "Alignment of field: ",
1314            stringify!(pthread_cond_t),
1315            "::",
1316            stringify!(__data)
1317        )
1318    );
1319    assert_eq!(
1320        unsafe { &(*(0 as *const pthread_cond_t)).__size as *const _ as usize },
1321        0usize,
1322        concat!(
1323            "Alignment of field: ",
1324            stringify!(pthread_cond_t),
1325            "::",
1326            stringify!(__size)
1327        )
1328    );
1329    assert_eq!(
1330        unsafe { &(*(0 as *const pthread_cond_t)).__align as *const _ as usize },
1331        0usize,
1332        concat!(
1333            "Alignment of field: ",
1334            stringify!(pthread_cond_t),
1335            "::",
1336            stringify!(__align)
1337        )
1338    );
1339}
1340impl Clone for pthread_cond_t {
1341    fn clone(&self) -> Self {
1342        *self
1343    }
1344}
1345#[repr(C)]
1346#[derive(Debug, Default, Copy)]
1347pub struct pthread_condattr_t {
1348    pub __size: __BindgenUnionField<[::std::os::raw::c_char; 4usize]>,
1349    pub __align: __BindgenUnionField<::std::os::raw::c_int>,
1350    pub bindgen_union_field: u32,
1351}
1352#[test]
1353fn bindgen_test_layout_pthread_condattr_t() {
1354    assert_eq!(
1355        ::std::mem::size_of::<pthread_condattr_t>(),
1356        4usize,
1357        concat!("Size of: ", stringify!(pthread_condattr_t))
1358    );
1359    assert_eq!(
1360        ::std::mem::align_of::<pthread_condattr_t>(),
1361        4usize,
1362        concat!("Alignment of ", stringify!(pthread_condattr_t))
1363    );
1364    assert_eq!(
1365        unsafe { &(*(0 as *const pthread_condattr_t)).__size as *const _ as usize },
1366        0usize,
1367        concat!(
1368            "Alignment of field: ",
1369            stringify!(pthread_condattr_t),
1370            "::",
1371            stringify!(__size)
1372        )
1373    );
1374    assert_eq!(
1375        unsafe { &(*(0 as *const pthread_condattr_t)).__align as *const _ as usize },
1376        0usize,
1377        concat!(
1378            "Alignment of field: ",
1379            stringify!(pthread_condattr_t),
1380            "::",
1381            stringify!(__align)
1382        )
1383    );
1384}
1385impl Clone for pthread_condattr_t {
1386    fn clone(&self) -> Self {
1387        *self
1388    }
1389}
1390pub type pthread_key_t = ::std::os::raw::c_uint;
1391pub type pthread_once_t = ::std::os::raw::c_int;
1392#[repr(C)]
1393#[derive(Debug, Default, Copy)]
1394pub struct pthread_rwlock_t {
1395    pub __data: __BindgenUnionField<pthread_rwlock_t__bindgen_ty_1>,
1396    pub __size: __BindgenUnionField<[::std::os::raw::c_char; 56usize]>,
1397    pub __align: __BindgenUnionField<::std::os::raw::c_long>,
1398    pub bindgen_union_field: [u64; 7usize],
1399}
1400#[repr(C)]
1401#[derive(Debug, Default, Copy)]
1402pub struct pthread_rwlock_t__bindgen_ty_1 {
1403    pub __lock: ::std::os::raw::c_int,
1404    pub __nr_readers: ::std::os::raw::c_uint,
1405    pub __readers_wakeup: ::std::os::raw::c_uint,
1406    pub __writer_wakeup: ::std::os::raw::c_uint,
1407    pub __nr_readers_queued: ::std::os::raw::c_uint,
1408    pub __nr_writers_queued: ::std::os::raw::c_uint,
1409    pub __writer: ::std::os::raw::c_int,
1410    pub __shared: ::std::os::raw::c_int,
1411    pub __rwelision: ::std::os::raw::c_schar,
1412    pub __pad1: [::std::os::raw::c_uchar; 7usize],
1413    pub __pad2: ::std::os::raw::c_ulong,
1414    pub __flags: ::std::os::raw::c_uint,
1415}
1416#[test]
1417fn bindgen_test_layout_pthread_rwlock_t__bindgen_ty_1() {
1418    assert_eq!(
1419        ::std::mem::size_of::<pthread_rwlock_t__bindgen_ty_1>(),
1420        56usize,
1421        concat!("Size of: ", stringify!(pthread_rwlock_t__bindgen_ty_1))
1422    );
1423    assert_eq!(
1424        ::std::mem::align_of::<pthread_rwlock_t__bindgen_ty_1>(),
1425        8usize,
1426        concat!("Alignment of ", stringify!(pthread_rwlock_t__bindgen_ty_1))
1427    );
1428    assert_eq!(
1429        unsafe { &(*(0 as *const pthread_rwlock_t__bindgen_ty_1)).__lock as *const _ as usize },
1430        0usize,
1431        concat!(
1432            "Alignment of field: ",
1433            stringify!(pthread_rwlock_t__bindgen_ty_1),
1434            "::",
1435            stringify!(__lock)
1436        )
1437    );
1438    assert_eq!(
1439        unsafe {
1440            &(*(0 as *const pthread_rwlock_t__bindgen_ty_1)).__nr_readers as *const _ as usize
1441        },
1442        4usize,
1443        concat!(
1444            "Alignment of field: ",
1445            stringify!(pthread_rwlock_t__bindgen_ty_1),
1446            "::",
1447            stringify!(__nr_readers)
1448        )
1449    );
1450    assert_eq!(
1451        unsafe {
1452            &(*(0 as *const pthread_rwlock_t__bindgen_ty_1)).__readers_wakeup as *const _ as usize
1453        },
1454        8usize,
1455        concat!(
1456            "Alignment of field: ",
1457            stringify!(pthread_rwlock_t__bindgen_ty_1),
1458            "::",
1459            stringify!(__readers_wakeup)
1460        )
1461    );
1462    assert_eq!(
1463        unsafe {
1464            &(*(0 as *const pthread_rwlock_t__bindgen_ty_1)).__writer_wakeup as *const _ as usize
1465        },
1466        12usize,
1467        concat!(
1468            "Alignment of field: ",
1469            stringify!(pthread_rwlock_t__bindgen_ty_1),
1470            "::",
1471            stringify!(__writer_wakeup)
1472        )
1473    );
1474    assert_eq!(
1475        unsafe {
1476            &(*(0 as *const pthread_rwlock_t__bindgen_ty_1)).__nr_readers_queued as *const _
1477                as usize
1478        },
1479        16usize,
1480        concat!(
1481            "Alignment of field: ",
1482            stringify!(pthread_rwlock_t__bindgen_ty_1),
1483            "::",
1484            stringify!(__nr_readers_queued)
1485        )
1486    );
1487    assert_eq!(
1488        unsafe {
1489            &(*(0 as *const pthread_rwlock_t__bindgen_ty_1)).__nr_writers_queued as *const _
1490                as usize
1491        },
1492        20usize,
1493        concat!(
1494            "Alignment of field: ",
1495            stringify!(pthread_rwlock_t__bindgen_ty_1),
1496            "::",
1497            stringify!(__nr_writers_queued)
1498        )
1499    );
1500    assert_eq!(
1501        unsafe { &(*(0 as *const pthread_rwlock_t__bindgen_ty_1)).__writer as *const _ as usize },
1502        24usize,
1503        concat!(
1504            "Alignment of field: ",
1505            stringify!(pthread_rwlock_t__bindgen_ty_1),
1506            "::",
1507            stringify!(__writer)
1508        )
1509    );
1510    assert_eq!(
1511        unsafe { &(*(0 as *const pthread_rwlock_t__bindgen_ty_1)).__shared as *const _ as usize },
1512        28usize,
1513        concat!(
1514            "Alignment of field: ",
1515            stringify!(pthread_rwlock_t__bindgen_ty_1),
1516            "::",
1517            stringify!(__shared)
1518        )
1519    );
1520    assert_eq!(
1521        unsafe {
1522            &(*(0 as *const pthread_rwlock_t__bindgen_ty_1)).__rwelision as *const _ as usize
1523        },
1524        32usize,
1525        concat!(
1526            "Alignment of field: ",
1527            stringify!(pthread_rwlock_t__bindgen_ty_1),
1528            "::",
1529            stringify!(__rwelision)
1530        )
1531    );
1532    assert_eq!(
1533        unsafe { &(*(0 as *const pthread_rwlock_t__bindgen_ty_1)).__pad1 as *const _ as usize },
1534        33usize,
1535        concat!(
1536            "Alignment of field: ",
1537            stringify!(pthread_rwlock_t__bindgen_ty_1),
1538            "::",
1539            stringify!(__pad1)
1540        )
1541    );
1542    assert_eq!(
1543        unsafe { &(*(0 as *const pthread_rwlock_t__bindgen_ty_1)).__pad2 as *const _ as usize },
1544        40usize,
1545        concat!(
1546            "Alignment of field: ",
1547            stringify!(pthread_rwlock_t__bindgen_ty_1),
1548            "::",
1549            stringify!(__pad2)
1550        )
1551    );
1552    assert_eq!(
1553        unsafe { &(*(0 as *const pthread_rwlock_t__bindgen_ty_1)).__flags as *const _ as usize },
1554        48usize,
1555        concat!(
1556            "Alignment of field: ",
1557            stringify!(pthread_rwlock_t__bindgen_ty_1),
1558            "::",
1559            stringify!(__flags)
1560        )
1561    );
1562}
1563impl Clone for pthread_rwlock_t__bindgen_ty_1 {
1564    fn clone(&self) -> Self {
1565        *self
1566    }
1567}
1568#[test]
1569fn bindgen_test_layout_pthread_rwlock_t() {
1570    assert_eq!(
1571        ::std::mem::size_of::<pthread_rwlock_t>(),
1572        56usize,
1573        concat!("Size of: ", stringify!(pthread_rwlock_t))
1574    );
1575    assert_eq!(
1576        ::std::mem::align_of::<pthread_rwlock_t>(),
1577        8usize,
1578        concat!("Alignment of ", stringify!(pthread_rwlock_t))
1579    );
1580    assert_eq!(
1581        unsafe { &(*(0 as *const pthread_rwlock_t)).__data as *const _ as usize },
1582        0usize,
1583        concat!(
1584            "Alignment of field: ",
1585            stringify!(pthread_rwlock_t),
1586            "::",
1587            stringify!(__data)
1588        )
1589    );
1590    assert_eq!(
1591        unsafe { &(*(0 as *const pthread_rwlock_t)).__size as *const _ as usize },
1592        0usize,
1593        concat!(
1594            "Alignment of field: ",
1595            stringify!(pthread_rwlock_t),
1596            "::",
1597            stringify!(__size)
1598        )
1599    );
1600    assert_eq!(
1601        unsafe { &(*(0 as *const pthread_rwlock_t)).__align as *const _ as usize },
1602        0usize,
1603        concat!(
1604            "Alignment of field: ",
1605            stringify!(pthread_rwlock_t),
1606            "::",
1607            stringify!(__align)
1608        )
1609    );
1610}
1611impl Clone for pthread_rwlock_t {
1612    fn clone(&self) -> Self {
1613        *self
1614    }
1615}
1616#[repr(C)]
1617#[derive(Debug, Default, Copy)]
1618pub struct pthread_rwlockattr_t {
1619    pub __size: __BindgenUnionField<[::std::os::raw::c_char; 8usize]>,
1620    pub __align: __BindgenUnionField<::std::os::raw::c_long>,
1621    pub bindgen_union_field: u64,
1622}
1623#[test]
1624fn bindgen_test_layout_pthread_rwlockattr_t() {
1625    assert_eq!(
1626        ::std::mem::size_of::<pthread_rwlockattr_t>(),
1627        8usize,
1628        concat!("Size of: ", stringify!(pthread_rwlockattr_t))
1629    );
1630    assert_eq!(
1631        ::std::mem::align_of::<pthread_rwlockattr_t>(),
1632        8usize,
1633        concat!("Alignment of ", stringify!(pthread_rwlockattr_t))
1634    );
1635    assert_eq!(
1636        unsafe { &(*(0 as *const pthread_rwlockattr_t)).__size as *const _ as usize },
1637        0usize,
1638        concat!(
1639            "Alignment of field: ",
1640            stringify!(pthread_rwlockattr_t),
1641            "::",
1642            stringify!(__size)
1643        )
1644    );
1645    assert_eq!(
1646        unsafe { &(*(0 as *const pthread_rwlockattr_t)).__align as *const _ as usize },
1647        0usize,
1648        concat!(
1649            "Alignment of field: ",
1650            stringify!(pthread_rwlockattr_t),
1651            "::",
1652            stringify!(__align)
1653        )
1654    );
1655}
1656impl Clone for pthread_rwlockattr_t {
1657    fn clone(&self) -> Self {
1658        *self
1659    }
1660}
1661pub type pthread_spinlock_t = ::std::os::raw::c_int;
1662#[repr(C)]
1663#[derive(Debug, Default, Copy)]
1664pub struct pthread_barrier_t {
1665    pub __size: __BindgenUnionField<[::std::os::raw::c_char; 32usize]>,
1666    pub __align: __BindgenUnionField<::std::os::raw::c_long>,
1667    pub bindgen_union_field: [u64; 4usize],
1668}
1669#[test]
1670fn bindgen_test_layout_pthread_barrier_t() {
1671    assert_eq!(
1672        ::std::mem::size_of::<pthread_barrier_t>(),
1673        32usize,
1674        concat!("Size of: ", stringify!(pthread_barrier_t))
1675    );
1676    assert_eq!(
1677        ::std::mem::align_of::<pthread_barrier_t>(),
1678        8usize,
1679        concat!("Alignment of ", stringify!(pthread_barrier_t))
1680    );
1681    assert_eq!(
1682        unsafe { &(*(0 as *const pthread_barrier_t)).__size as *const _ as usize },
1683        0usize,
1684        concat!(
1685            "Alignment of field: ",
1686            stringify!(pthread_barrier_t),
1687            "::",
1688            stringify!(__size)
1689        )
1690    );
1691    assert_eq!(
1692        unsafe { &(*(0 as *const pthread_barrier_t)).__align as *const _ as usize },
1693        0usize,
1694        concat!(
1695            "Alignment of field: ",
1696            stringify!(pthread_barrier_t),
1697            "::",
1698            stringify!(__align)
1699        )
1700    );
1701}
1702impl Clone for pthread_barrier_t {
1703    fn clone(&self) -> Self {
1704        *self
1705    }
1706}
1707#[repr(C)]
1708#[derive(Debug, Default, Copy)]
1709pub struct pthread_barrierattr_t {
1710    pub __size: __BindgenUnionField<[::std::os::raw::c_char; 4usize]>,
1711    pub __align: __BindgenUnionField<::std::os::raw::c_int>,
1712    pub bindgen_union_field: u32,
1713}
1714#[test]
1715fn bindgen_test_layout_pthread_barrierattr_t() {
1716    assert_eq!(
1717        ::std::mem::size_of::<pthread_barrierattr_t>(),
1718        4usize,
1719        concat!("Size of: ", stringify!(pthread_barrierattr_t))
1720    );
1721    assert_eq!(
1722        ::std::mem::align_of::<pthread_barrierattr_t>(),
1723        4usize,
1724        concat!("Alignment of ", stringify!(pthread_barrierattr_t))
1725    );
1726    assert_eq!(
1727        unsafe { &(*(0 as *const pthread_barrierattr_t)).__size as *const _ as usize },
1728        0usize,
1729        concat!(
1730            "Alignment of field: ",
1731            stringify!(pthread_barrierattr_t),
1732            "::",
1733            stringify!(__size)
1734        )
1735    );
1736    assert_eq!(
1737        unsafe { &(*(0 as *const pthread_barrierattr_t)).__align as *const _ as usize },
1738        0usize,
1739        concat!(
1740            "Alignment of field: ",
1741            stringify!(pthread_barrierattr_t),
1742            "::",
1743            stringify!(__align)
1744        )
1745    );
1746}
1747impl Clone for pthread_barrierattr_t {
1748    fn clone(&self) -> Self {
1749        *self
1750    }
1751}
1752#[repr(C)]
1753#[derive(Debug, Copy)]
1754pub struct iovec {
1755    pub iov_base: *mut ::std::os::raw::c_void,
1756    pub iov_len: usize,
1757}
1758#[test]
1759fn bindgen_test_layout_iovec() {
1760    assert_eq!(
1761        ::std::mem::size_of::<iovec>(),
1762        16usize,
1763        concat!("Size of: ", stringify!(iovec))
1764    );
1765    assert_eq!(
1766        ::std::mem::align_of::<iovec>(),
1767        8usize,
1768        concat!("Alignment of ", stringify!(iovec))
1769    );
1770    assert_eq!(
1771        unsafe { &(*(0 as *const iovec)).iov_base as *const _ as usize },
1772        0usize,
1773        concat!(
1774            "Alignment of field: ",
1775            stringify!(iovec),
1776            "::",
1777            stringify!(iov_base)
1778        )
1779    );
1780    assert_eq!(
1781        unsafe { &(*(0 as *const iovec)).iov_len as *const _ as usize },
1782        8usize,
1783        concat!(
1784            "Alignment of field: ",
1785            stringify!(iovec),
1786            "::",
1787            stringify!(iov_len)
1788        )
1789    );
1790}
1791impl Clone for iovec {
1792    fn clone(&self) -> Self {
1793        *self
1794    }
1795}
1796impl Default for iovec {
1797    fn default() -> Self {
1798        unsafe { ::std::mem::zeroed() }
1799    }
1800}
1801extern "C" {
1802    pub fn readv(
1803        __fd: ::std::os::raw::c_int,
1804        __iovec: *const iovec,
1805        __count: ::std::os::raw::c_int,
1806    ) -> isize;
1807}
1808extern "C" {
1809    pub fn writev(
1810        __fd: ::std::os::raw::c_int,
1811        __iovec: *const iovec,
1812        __count: ::std::os::raw::c_int,
1813    ) -> isize;
1814}
1815extern "C" {
1816    pub fn preadv(
1817        __fd: ::std::os::raw::c_int,
1818        __iovec: *const iovec,
1819        __count: ::std::os::raw::c_int,
1820        __offset: __off_t,
1821    ) -> isize;
1822}
1823extern "C" {
1824    pub fn pwritev(
1825        __fd: ::std::os::raw::c_int,
1826        __iovec: *const iovec,
1827        __count: ::std::os::raw::c_int,
1828        __offset: __off_t,
1829    ) -> isize;
1830}
1831pub type socklen_t = __socklen_t;
1832pub const __socket_type_SOCK_STREAM: __socket_type = 1;
1833pub const __socket_type_SOCK_DGRAM: __socket_type = 2;
1834pub const __socket_type_SOCK_RAW: __socket_type = 3;
1835pub const __socket_type_SOCK_RDM: __socket_type = 4;
1836pub const __socket_type_SOCK_SEQPACKET: __socket_type = 5;
1837pub const __socket_type_SOCK_DCCP: __socket_type = 6;
1838pub const __socket_type_SOCK_PACKET: __socket_type = 10;
1839pub const __socket_type_SOCK_CLOEXEC: __socket_type = 524288;
1840pub const __socket_type_SOCK_NONBLOCK: __socket_type = 2048;
1841pub type __socket_type = ::std::os::raw::c_uint;
1842pub type sa_family_t = ::std::os::raw::c_ushort;
1843#[repr(C)]
1844#[derive(Debug, Default, Copy)]
1845pub struct sockaddr {
1846    pub sa_family: sa_family_t,
1847    pub sa_data: [::std::os::raw::c_char; 14usize],
1848}
1849#[test]
1850fn bindgen_test_layout_sockaddr() {
1851    assert_eq!(
1852        ::std::mem::size_of::<sockaddr>(),
1853        16usize,
1854        concat!("Size of: ", stringify!(sockaddr))
1855    );
1856    assert_eq!(
1857        ::std::mem::align_of::<sockaddr>(),
1858        2usize,
1859        concat!("Alignment of ", stringify!(sockaddr))
1860    );
1861    assert_eq!(
1862        unsafe { &(*(0 as *const sockaddr)).sa_family as *const _ as usize },
1863        0usize,
1864        concat!(
1865            "Alignment of field: ",
1866            stringify!(sockaddr),
1867            "::",
1868            stringify!(sa_family)
1869        )
1870    );
1871    assert_eq!(
1872        unsafe { &(*(0 as *const sockaddr)).sa_data as *const _ as usize },
1873        2usize,
1874        concat!(
1875            "Alignment of field: ",
1876            stringify!(sockaddr),
1877            "::",
1878            stringify!(sa_data)
1879        )
1880    );
1881}
1882impl Clone for sockaddr {
1883    fn clone(&self) -> Self {
1884        *self
1885    }
1886}
1887#[repr(C)]
1888pub struct sockaddr_storage {
1889    pub ss_family: sa_family_t,
1890    pub __ss_padding: [::std::os::raw::c_char; 118usize],
1891    pub __ss_align: ::std::os::raw::c_ulong,
1892}
1893#[test]
1894fn bindgen_test_layout_sockaddr_storage() {
1895    assert_eq!(
1896        ::std::mem::size_of::<sockaddr_storage>(),
1897        128usize,
1898        concat!("Size of: ", stringify!(sockaddr_storage))
1899    );
1900    assert_eq!(
1901        ::std::mem::align_of::<sockaddr_storage>(),
1902        8usize,
1903        concat!("Alignment of ", stringify!(sockaddr_storage))
1904    );
1905    assert_eq!(
1906        unsafe { &(*(0 as *const sockaddr_storage)).ss_family as *const _ as usize },
1907        0usize,
1908        concat!(
1909            "Alignment of field: ",
1910            stringify!(sockaddr_storage),
1911            "::",
1912            stringify!(ss_family)
1913        )
1914    );
1915    assert_eq!(
1916        unsafe { &(*(0 as *const sockaddr_storage)).__ss_padding as *const _ as usize },
1917        2usize,
1918        concat!(
1919            "Alignment of field: ",
1920            stringify!(sockaddr_storage),
1921            "::",
1922            stringify!(__ss_padding)
1923        )
1924    );
1925    assert_eq!(
1926        unsafe { &(*(0 as *const sockaddr_storage)).__ss_align as *const _ as usize },
1927        120usize,
1928        concat!(
1929            "Alignment of field: ",
1930            stringify!(sockaddr_storage),
1931            "::",
1932            stringify!(__ss_align)
1933        )
1934    );
1935}
1936impl Default for sockaddr_storage {
1937    fn default() -> Self {
1938        unsafe { ::std::mem::zeroed() }
1939    }
1940}
1941pub const MSG_OOB: _bindgen_ty_1 = 1;
1942pub const MSG_PEEK: _bindgen_ty_1 = 2;
1943pub const MSG_DONTROUTE: _bindgen_ty_1 = 4;
1944pub const MSG_CTRUNC: _bindgen_ty_1 = 8;
1945pub const MSG_PROXY: _bindgen_ty_1 = 16;
1946pub const MSG_TRUNC: _bindgen_ty_1 = 32;
1947pub const MSG_DONTWAIT: _bindgen_ty_1 = 64;
1948pub const MSG_EOR: _bindgen_ty_1 = 128;
1949pub const MSG_WAITALL: _bindgen_ty_1 = 256;
1950pub const MSG_FIN: _bindgen_ty_1 = 512;
1951pub const MSG_SYN: _bindgen_ty_1 = 1024;
1952pub const MSG_CONFIRM: _bindgen_ty_1 = 2048;
1953pub const MSG_RST: _bindgen_ty_1 = 4096;
1954pub const MSG_ERRQUEUE: _bindgen_ty_1 = 8192;
1955pub const MSG_NOSIGNAL: _bindgen_ty_1 = 16384;
1956pub const MSG_MORE: _bindgen_ty_1 = 32768;
1957pub const MSG_WAITFORONE: _bindgen_ty_1 = 65536;
1958pub const MSG_FASTOPEN: _bindgen_ty_1 = 536870912;
1959pub const MSG_CMSG_CLOEXEC: _bindgen_ty_1 = 1073741824;
1960pub type _bindgen_ty_1 = ::std::os::raw::c_uint;
1961#[repr(C)]
1962#[derive(Debug, Copy)]
1963pub struct msghdr {
1964    pub msg_name: *mut ::std::os::raw::c_void,
1965    pub msg_namelen: socklen_t,
1966    pub msg_iov: *mut iovec,
1967    pub msg_iovlen: usize,
1968    pub msg_control: *mut ::std::os::raw::c_void,
1969    pub msg_controllen: usize,
1970    pub msg_flags: ::std::os::raw::c_int,
1971}
1972#[test]
1973fn bindgen_test_layout_msghdr() {
1974    assert_eq!(
1975        ::std::mem::size_of::<msghdr>(),
1976        56usize,
1977        concat!("Size of: ", stringify!(msghdr))
1978    );
1979    assert_eq!(
1980        ::std::mem::align_of::<msghdr>(),
1981        8usize,
1982        concat!("Alignment of ", stringify!(msghdr))
1983    );
1984    assert_eq!(
1985        unsafe { &(*(0 as *const msghdr)).msg_name as *const _ as usize },
1986        0usize,
1987        concat!(
1988            "Alignment of field: ",
1989            stringify!(msghdr),
1990            "::",
1991            stringify!(msg_name)
1992        )
1993    );
1994    assert_eq!(
1995        unsafe { &(*(0 as *const msghdr)).msg_namelen as *const _ as usize },
1996        8usize,
1997        concat!(
1998            "Alignment of field: ",
1999            stringify!(msghdr),
2000            "::",
2001            stringify!(msg_namelen)
2002        )
2003    );
2004    assert_eq!(
2005        unsafe { &(*(0 as *const msghdr)).msg_iov as *const _ as usize },
2006        16usize,
2007        concat!(
2008            "Alignment of field: ",
2009            stringify!(msghdr),
2010            "::",
2011            stringify!(msg_iov)
2012        )
2013    );
2014    assert_eq!(
2015        unsafe { &(*(0 as *const msghdr)).msg_iovlen as *const _ as usize },
2016        24usize,
2017        concat!(
2018            "Alignment of field: ",
2019            stringify!(msghdr),
2020            "::",
2021            stringify!(msg_iovlen)
2022        )
2023    );
2024    assert_eq!(
2025        unsafe { &(*(0 as *const msghdr)).msg_control as *const _ as usize },
2026        32usize,
2027        concat!(
2028            "Alignment of field: ",
2029            stringify!(msghdr),
2030            "::",
2031            stringify!(msg_control)
2032        )
2033    );
2034    assert_eq!(
2035        unsafe { &(*(0 as *const msghdr)).msg_controllen as *const _ as usize },
2036        40usize,
2037        concat!(
2038            "Alignment of field: ",
2039            stringify!(msghdr),
2040            "::",
2041            stringify!(msg_controllen)
2042        )
2043    );
2044    assert_eq!(
2045        unsafe { &(*(0 as *const msghdr)).msg_flags as *const _ as usize },
2046        48usize,
2047        concat!(
2048            "Alignment of field: ",
2049            stringify!(msghdr),
2050            "::",
2051            stringify!(msg_flags)
2052        )
2053    );
2054}
2055impl Clone for msghdr {
2056    fn clone(&self) -> Self {
2057        *self
2058    }
2059}
2060impl Default for msghdr {
2061    fn default() -> Self {
2062        unsafe { ::std::mem::zeroed() }
2063    }
2064}
2065#[repr(C)]
2066#[derive(Debug, Default, Copy)]
2067pub struct cmsghdr {
2068    pub cmsg_len: usize,
2069    pub cmsg_level: ::std::os::raw::c_int,
2070    pub cmsg_type: ::std::os::raw::c_int,
2071    pub __cmsg_data: __IncompleteArrayField<::std::os::raw::c_uchar>,
2072}
2073#[test]
2074fn bindgen_test_layout_cmsghdr() {
2075    assert_eq!(
2076        ::std::mem::size_of::<cmsghdr>(),
2077        16usize,
2078        concat!("Size of: ", stringify!(cmsghdr))
2079    );
2080    assert_eq!(
2081        ::std::mem::align_of::<cmsghdr>(),
2082        8usize,
2083        concat!("Alignment of ", stringify!(cmsghdr))
2084    );
2085}
2086impl Clone for cmsghdr {
2087    fn clone(&self) -> Self {
2088        *self
2089    }
2090}
2091extern "C" {
2092    pub fn __cmsg_nxthdr(__mhdr: *mut msghdr, __cmsg: *mut cmsghdr) -> *mut cmsghdr;
2093}
2094pub const SCM_RIGHTS: _bindgen_ty_2 = 1;
2095pub type _bindgen_ty_2 = ::std::os::raw::c_uint;
2096#[repr(C)]
2097#[derive(Debug, Default, Copy)]
2098pub struct linger {
2099    pub l_onoff: ::std::os::raw::c_int,
2100    pub l_linger: ::std::os::raw::c_int,
2101}
2102#[test]
2103fn bindgen_test_layout_linger() {
2104    assert_eq!(
2105        ::std::mem::size_of::<linger>(),
2106        8usize,
2107        concat!("Size of: ", stringify!(linger))
2108    );
2109    assert_eq!(
2110        ::std::mem::align_of::<linger>(),
2111        4usize,
2112        concat!("Alignment of ", stringify!(linger))
2113    );
2114    assert_eq!(
2115        unsafe { &(*(0 as *const linger)).l_onoff as *const _ as usize },
2116        0usize,
2117        concat!(
2118            "Alignment of field: ",
2119            stringify!(linger),
2120            "::",
2121            stringify!(l_onoff)
2122        )
2123    );
2124    assert_eq!(
2125        unsafe { &(*(0 as *const linger)).l_linger as *const _ as usize },
2126        4usize,
2127        concat!(
2128            "Alignment of field: ",
2129            stringify!(linger),
2130            "::",
2131            stringify!(l_linger)
2132        )
2133    );
2134}
2135impl Clone for linger {
2136    fn clone(&self) -> Self {
2137        *self
2138    }
2139}
2140#[repr(C)]
2141#[derive(Debug, Default, Copy)]
2142pub struct osockaddr {
2143    pub sa_family: ::std::os::raw::c_ushort,
2144    pub sa_data: [::std::os::raw::c_uchar; 14usize],
2145}
2146#[test]
2147fn bindgen_test_layout_osockaddr() {
2148    assert_eq!(
2149        ::std::mem::size_of::<osockaddr>(),
2150        16usize,
2151        concat!("Size of: ", stringify!(osockaddr))
2152    );
2153    assert_eq!(
2154        ::std::mem::align_of::<osockaddr>(),
2155        2usize,
2156        concat!("Alignment of ", stringify!(osockaddr))
2157    );
2158    assert_eq!(
2159        unsafe { &(*(0 as *const osockaddr)).sa_family as *const _ as usize },
2160        0usize,
2161        concat!(
2162            "Alignment of field: ",
2163            stringify!(osockaddr),
2164            "::",
2165            stringify!(sa_family)
2166        )
2167    );
2168    assert_eq!(
2169        unsafe { &(*(0 as *const osockaddr)).sa_data as *const _ as usize },
2170        2usize,
2171        concat!(
2172            "Alignment of field: ",
2173            stringify!(osockaddr),
2174            "::",
2175            stringify!(sa_data)
2176        )
2177    );
2178}
2179impl Clone for osockaddr {
2180    fn clone(&self) -> Self {
2181        *self
2182    }
2183}
2184pub const SHUT_RD: _bindgen_ty_3 = 0;
2185pub const SHUT_WR: _bindgen_ty_3 = 1;
2186pub const SHUT_RDWR: _bindgen_ty_3 = 2;
2187pub type _bindgen_ty_3 = ::std::os::raw::c_uint;
2188extern "C" {
2189    pub fn socket(
2190        __domain: ::std::os::raw::c_int,
2191        __type: ::std::os::raw::c_int,
2192        __protocol: ::std::os::raw::c_int,
2193    ) -> ::std::os::raw::c_int;
2194}
2195extern "C" {
2196    pub fn socketpair(
2197        __domain: ::std::os::raw::c_int,
2198        __type: ::std::os::raw::c_int,
2199        __protocol: ::std::os::raw::c_int,
2200        __fds: *mut ::std::os::raw::c_int,
2201    ) -> ::std::os::raw::c_int;
2202}
2203extern "C" {
2204    pub fn bind(
2205        __fd: ::std::os::raw::c_int,
2206        __addr: *const sockaddr,
2207        __len: socklen_t,
2208    ) -> ::std::os::raw::c_int;
2209}
2210extern "C" {
2211    pub fn getsockname(
2212        __fd: ::std::os::raw::c_int,
2213        __addr: *mut sockaddr,
2214        __len: *mut socklen_t,
2215    ) -> ::std::os::raw::c_int;
2216}
2217extern "C" {
2218    pub fn connect(
2219        __fd: ::std::os::raw::c_int,
2220        __addr: *const sockaddr,
2221        __len: socklen_t,
2222    ) -> ::std::os::raw::c_int;
2223}
2224extern "C" {
2225    pub fn getpeername(
2226        __fd: ::std::os::raw::c_int,
2227        __addr: *mut sockaddr,
2228        __len: *mut socklen_t,
2229    ) -> ::std::os::raw::c_int;
2230}
2231extern "C" {
2232    pub fn send(
2233        __fd: ::std::os::raw::c_int,
2234        __buf: *const ::std::os::raw::c_void,
2235        __n: usize,
2236        __flags: ::std::os::raw::c_int,
2237    ) -> isize;
2238}
2239extern "C" {
2240    pub fn recv(
2241        __fd: ::std::os::raw::c_int,
2242        __buf: *mut ::std::os::raw::c_void,
2243        __n: usize,
2244        __flags: ::std::os::raw::c_int,
2245    ) -> isize;
2246}
2247extern "C" {
2248    pub fn sendto(
2249        __fd: ::std::os::raw::c_int,
2250        __buf: *const ::std::os::raw::c_void,
2251        __n: usize,
2252        __flags: ::std::os::raw::c_int,
2253        __addr: *const sockaddr,
2254        __addr_len: socklen_t,
2255    ) -> isize;
2256}
2257extern "C" {
2258    pub fn recvfrom(
2259        __fd: ::std::os::raw::c_int,
2260        __buf: *mut ::std::os::raw::c_void,
2261        __n: usize,
2262        __flags: ::std::os::raw::c_int,
2263        __addr: *mut sockaddr,
2264        __addr_len: *mut socklen_t,
2265    ) -> isize;
2266}
2267extern "C" {
2268    pub fn sendmsg(
2269        __fd: ::std::os::raw::c_int,
2270        __message: *const msghdr,
2271        __flags: ::std::os::raw::c_int,
2272    ) -> isize;
2273}
2274extern "C" {
2275    pub fn recvmsg(
2276        __fd: ::std::os::raw::c_int,
2277        __message: *mut msghdr,
2278        __flags: ::std::os::raw::c_int,
2279    ) -> isize;
2280}
2281extern "C" {
2282    pub fn getsockopt(
2283        __fd: ::std::os::raw::c_int,
2284        __level: ::std::os::raw::c_int,
2285        __optname: ::std::os::raw::c_int,
2286        __optval: *mut ::std::os::raw::c_void,
2287        __optlen: *mut socklen_t,
2288    ) -> ::std::os::raw::c_int;
2289}
2290extern "C" {
2291    pub fn setsockopt(
2292        __fd: ::std::os::raw::c_int,
2293        __level: ::std::os::raw::c_int,
2294        __optname: ::std::os::raw::c_int,
2295        __optval: *const ::std::os::raw::c_void,
2296        __optlen: socklen_t,
2297    ) -> ::std::os::raw::c_int;
2298}
2299extern "C" {
2300    pub fn listen(__fd: ::std::os::raw::c_int, __n: ::std::os::raw::c_int)
2301        -> ::std::os::raw::c_int;
2302}
2303extern "C" {
2304    pub fn accept(
2305        __fd: ::std::os::raw::c_int,
2306        __addr: *mut sockaddr,
2307        __addr_len: *mut socklen_t,
2308    ) -> ::std::os::raw::c_int;
2309}
2310extern "C" {
2311    pub fn shutdown(
2312        __fd: ::std::os::raw::c_int,
2313        __how: ::std::os::raw::c_int,
2314    ) -> ::std::os::raw::c_int;
2315}
2316extern "C" {
2317    pub fn sockatmark(__fd: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
2318}
2319extern "C" {
2320    pub fn isfdtype(
2321        __fd: ::std::os::raw::c_int,
2322        __fdtype: ::std::os::raw::c_int,
2323    ) -> ::std::os::raw::c_int;
2324}
2325#[repr(C)]
2326#[derive(Debug, Default, Copy)]
2327pub struct sync_serial_settings {
2328    pub clock_rate: ::std::os::raw::c_uint,
2329    pub clock_type: ::std::os::raw::c_uint,
2330    pub loopback: ::std::os::raw::c_ushort,
2331}
2332#[test]
2333fn bindgen_test_layout_sync_serial_settings() {
2334    assert_eq!(
2335        ::std::mem::size_of::<sync_serial_settings>(),
2336        12usize,
2337        concat!("Size of: ", stringify!(sync_serial_settings))
2338    );
2339    assert_eq!(
2340        ::std::mem::align_of::<sync_serial_settings>(),
2341        4usize,
2342        concat!("Alignment of ", stringify!(sync_serial_settings))
2343    );
2344    assert_eq!(
2345        unsafe { &(*(0 as *const sync_serial_settings)).clock_rate as *const _ as usize },
2346        0usize,
2347        concat!(
2348            "Alignment of field: ",
2349            stringify!(sync_serial_settings),
2350            "::",
2351            stringify!(clock_rate)
2352        )
2353    );
2354    assert_eq!(
2355        unsafe { &(*(0 as *const sync_serial_settings)).clock_type as *const _ as usize },
2356        4usize,
2357        concat!(
2358            "Alignment of field: ",
2359            stringify!(sync_serial_settings),
2360            "::",
2361            stringify!(clock_type)
2362        )
2363    );
2364    assert_eq!(
2365        unsafe { &(*(0 as *const sync_serial_settings)).loopback as *const _ as usize },
2366        8usize,
2367        concat!(
2368            "Alignment of field: ",
2369            stringify!(sync_serial_settings),
2370            "::",
2371            stringify!(loopback)
2372        )
2373    );
2374}
2375impl Clone for sync_serial_settings {
2376    fn clone(&self) -> Self {
2377        *self
2378    }
2379}
2380#[repr(C)]
2381#[derive(Debug, Default, Copy)]
2382pub struct te1_settings {
2383    pub clock_rate: ::std::os::raw::c_uint,
2384    pub clock_type: ::std::os::raw::c_uint,
2385    pub loopback: ::std::os::raw::c_ushort,
2386    pub slot_map: ::std::os::raw::c_uint,
2387}
2388#[test]
2389fn bindgen_test_layout_te1_settings() {
2390    assert_eq!(
2391        ::std::mem::size_of::<te1_settings>(),
2392        16usize,
2393        concat!("Size of: ", stringify!(te1_settings))
2394    );
2395    assert_eq!(
2396        ::std::mem::align_of::<te1_settings>(),
2397        4usize,
2398        concat!("Alignment of ", stringify!(te1_settings))
2399    );
2400    assert_eq!(
2401        unsafe { &(*(0 as *const te1_settings)).clock_rate as *const _ as usize },
2402        0usize,
2403        concat!(
2404            "Alignment of field: ",
2405            stringify!(te1_settings),
2406            "::",
2407            stringify!(clock_rate)
2408        )
2409    );
2410    assert_eq!(
2411        unsafe { &(*(0 as *const te1_settings)).clock_type as *const _ as usize },
2412        4usize,
2413        concat!(
2414            "Alignment of field: ",
2415            stringify!(te1_settings),
2416            "::",
2417            stringify!(clock_type)
2418        )
2419    );
2420    assert_eq!(
2421        unsafe { &(*(0 as *const te1_settings)).loopback as *const _ as usize },
2422        8usize,
2423        concat!(
2424            "Alignment of field: ",
2425            stringify!(te1_settings),
2426            "::",
2427            stringify!(loopback)
2428        )
2429    );
2430    assert_eq!(
2431        unsafe { &(*(0 as *const te1_settings)).slot_map as *const _ as usize },
2432        12usize,
2433        concat!(
2434            "Alignment of field: ",
2435            stringify!(te1_settings),
2436            "::",
2437            stringify!(slot_map)
2438        )
2439    );
2440}
2441impl Clone for te1_settings {
2442    fn clone(&self) -> Self {
2443        *self
2444    }
2445}
2446#[repr(C)]
2447#[derive(Debug, Default, Copy)]
2448pub struct raw_hdlc_proto {
2449    pub encoding: ::std::os::raw::c_ushort,
2450    pub parity: ::std::os::raw::c_ushort,
2451}
2452#[test]
2453fn bindgen_test_layout_raw_hdlc_proto() {
2454    assert_eq!(
2455        ::std::mem::size_of::<raw_hdlc_proto>(),
2456        4usize,
2457        concat!("Size of: ", stringify!(raw_hdlc_proto))
2458    );
2459    assert_eq!(
2460        ::std::mem::align_of::<raw_hdlc_proto>(),
2461        2usize,
2462        concat!("Alignment of ", stringify!(raw_hdlc_proto))
2463    );
2464    assert_eq!(
2465        unsafe { &(*(0 as *const raw_hdlc_proto)).encoding as *const _ as usize },
2466        0usize,
2467        concat!(
2468            "Alignment of field: ",
2469            stringify!(raw_hdlc_proto),
2470            "::",
2471            stringify!(encoding)
2472        )
2473    );
2474    assert_eq!(
2475        unsafe { &(*(0 as *const raw_hdlc_proto)).parity as *const _ as usize },
2476        2usize,
2477        concat!(
2478            "Alignment of field: ",
2479            stringify!(raw_hdlc_proto),
2480            "::",
2481            stringify!(parity)
2482        )
2483    );
2484}
2485impl Clone for raw_hdlc_proto {
2486    fn clone(&self) -> Self {
2487        *self
2488    }
2489}
2490#[repr(C)]
2491#[derive(Debug, Default, Copy)]
2492pub struct fr_proto {
2493    pub t391: ::std::os::raw::c_uint,
2494    pub t392: ::std::os::raw::c_uint,
2495    pub n391: ::std::os::raw::c_uint,
2496    pub n392: ::std::os::raw::c_uint,
2497    pub n393: ::std::os::raw::c_uint,
2498    pub lmi: ::std::os::raw::c_ushort,
2499    pub dce: ::std::os::raw::c_ushort,
2500}
2501#[test]
2502fn bindgen_test_layout_fr_proto() {
2503    assert_eq!(
2504        ::std::mem::size_of::<fr_proto>(),
2505        24usize,
2506        concat!("Size of: ", stringify!(fr_proto))
2507    );
2508    assert_eq!(
2509        ::std::mem::align_of::<fr_proto>(),
2510        4usize,
2511        concat!("Alignment of ", stringify!(fr_proto))
2512    );
2513    assert_eq!(
2514        unsafe { &(*(0 as *const fr_proto)).t391 as *const _ as usize },
2515        0usize,
2516        concat!(
2517            "Alignment of field: ",
2518            stringify!(fr_proto),
2519            "::",
2520            stringify!(t391)
2521        )
2522    );
2523    assert_eq!(
2524        unsafe { &(*(0 as *const fr_proto)).t392 as *const _ as usize },
2525        4usize,
2526        concat!(
2527            "Alignment of field: ",
2528            stringify!(fr_proto),
2529            "::",
2530            stringify!(t392)
2531        )
2532    );
2533    assert_eq!(
2534        unsafe { &(*(0 as *const fr_proto)).n391 as *const _ as usize },
2535        8usize,
2536        concat!(
2537            "Alignment of field: ",
2538            stringify!(fr_proto),
2539            "::",
2540            stringify!(n391)
2541        )
2542    );
2543    assert_eq!(
2544        unsafe { &(*(0 as *const fr_proto)).n392 as *const _ as usize },
2545        12usize,
2546        concat!(
2547            "Alignment of field: ",
2548            stringify!(fr_proto),
2549            "::",
2550            stringify!(n392)
2551        )
2552    );
2553    assert_eq!(
2554        unsafe { &(*(0 as *const fr_proto)).n393 as *const _ as usize },
2555        16usize,
2556        concat!(
2557            "Alignment of field: ",
2558            stringify!(fr_proto),
2559            "::",
2560            stringify!(n393)
2561        )
2562    );
2563    assert_eq!(
2564        unsafe { &(*(0 as *const fr_proto)).lmi as *const _ as usize },
2565        20usize,
2566        concat!(
2567            "Alignment of field: ",
2568            stringify!(fr_proto),
2569            "::",
2570            stringify!(lmi)
2571        )
2572    );
2573    assert_eq!(
2574        unsafe { &(*(0 as *const fr_proto)).dce as *const _ as usize },
2575        22usize,
2576        concat!(
2577            "Alignment of field: ",
2578            stringify!(fr_proto),
2579            "::",
2580            stringify!(dce)
2581        )
2582    );
2583}
2584impl Clone for fr_proto {
2585    fn clone(&self) -> Self {
2586        *self
2587    }
2588}
2589#[repr(C)]
2590#[derive(Debug, Default, Copy)]
2591pub struct fr_proto_pvc {
2592    pub dlci: ::std::os::raw::c_uint,
2593}
2594#[test]
2595fn bindgen_test_layout_fr_proto_pvc() {
2596    assert_eq!(
2597        ::std::mem::size_of::<fr_proto_pvc>(),
2598        4usize,
2599        concat!("Size of: ", stringify!(fr_proto_pvc))
2600    );
2601    assert_eq!(
2602        ::std::mem::align_of::<fr_proto_pvc>(),
2603        4usize,
2604        concat!("Alignment of ", stringify!(fr_proto_pvc))
2605    );
2606    assert_eq!(
2607        unsafe { &(*(0 as *const fr_proto_pvc)).dlci as *const _ as usize },
2608        0usize,
2609        concat!(
2610            "Alignment of field: ",
2611            stringify!(fr_proto_pvc),
2612            "::",
2613            stringify!(dlci)
2614        )
2615    );
2616}
2617impl Clone for fr_proto_pvc {
2618    fn clone(&self) -> Self {
2619        *self
2620    }
2621}
2622#[repr(C)]
2623#[derive(Debug, Default, Copy)]
2624pub struct fr_proto_pvc_info {
2625    pub dlci: ::std::os::raw::c_uint,
2626    pub master: [::std::os::raw::c_char; 16usize],
2627}
2628#[test]
2629fn bindgen_test_layout_fr_proto_pvc_info() {
2630    assert_eq!(
2631        ::std::mem::size_of::<fr_proto_pvc_info>(),
2632        20usize,
2633        concat!("Size of: ", stringify!(fr_proto_pvc_info))
2634    );
2635    assert_eq!(
2636        ::std::mem::align_of::<fr_proto_pvc_info>(),
2637        4usize,
2638        concat!("Alignment of ", stringify!(fr_proto_pvc_info))
2639    );
2640    assert_eq!(
2641        unsafe { &(*(0 as *const fr_proto_pvc_info)).dlci as *const _ as usize },
2642        0usize,
2643        concat!(
2644            "Alignment of field: ",
2645            stringify!(fr_proto_pvc_info),
2646            "::",
2647            stringify!(dlci)
2648        )
2649    );
2650    assert_eq!(
2651        unsafe { &(*(0 as *const fr_proto_pvc_info)).master as *const _ as usize },
2652        4usize,
2653        concat!(
2654            "Alignment of field: ",
2655            stringify!(fr_proto_pvc_info),
2656            "::",
2657            stringify!(master)
2658        )
2659    );
2660}
2661impl Clone for fr_proto_pvc_info {
2662    fn clone(&self) -> Self {
2663        *self
2664    }
2665}
2666#[repr(C)]
2667#[derive(Debug, Default, Copy)]
2668pub struct cisco_proto {
2669    pub interval: ::std::os::raw::c_uint,
2670    pub timeout: ::std::os::raw::c_uint,
2671}
2672#[test]
2673fn bindgen_test_layout_cisco_proto() {
2674    assert_eq!(
2675        ::std::mem::size_of::<cisco_proto>(),
2676        8usize,
2677        concat!("Size of: ", stringify!(cisco_proto))
2678    );
2679    assert_eq!(
2680        ::std::mem::align_of::<cisco_proto>(),
2681        4usize,
2682        concat!("Alignment of ", stringify!(cisco_proto))
2683    );
2684    assert_eq!(
2685        unsafe { &(*(0 as *const cisco_proto)).interval as *const _ as usize },
2686        0usize,
2687        concat!(
2688            "Alignment of field: ",
2689            stringify!(cisco_proto),
2690            "::",
2691            stringify!(interval)
2692        )
2693    );
2694    assert_eq!(
2695        unsafe { &(*(0 as *const cisco_proto)).timeout as *const _ as usize },
2696        4usize,
2697        concat!(
2698            "Alignment of field: ",
2699            stringify!(cisco_proto),
2700            "::",
2701            stringify!(timeout)
2702        )
2703    );
2704}
2705impl Clone for cisco_proto {
2706    fn clone(&self) -> Self {
2707        *self
2708    }
2709}
2710pub const net_device_flags_IFF_UP: net_device_flags = 1;
2711pub const net_device_flags_IFF_BROADCAST: net_device_flags = 2;
2712pub const net_device_flags_IFF_DEBUG: net_device_flags = 4;
2713pub const net_device_flags_IFF_LOOPBACK: net_device_flags = 8;
2714pub const net_device_flags_IFF_POINTOPOINT: net_device_flags = 16;
2715pub const net_device_flags_IFF_NOTRAILERS: net_device_flags = 32;
2716pub const net_device_flags_IFF_RUNNING: net_device_flags = 64;
2717pub const net_device_flags_IFF_NOARP: net_device_flags = 128;
2718pub const net_device_flags_IFF_PROMISC: net_device_flags = 256;
2719pub const net_device_flags_IFF_ALLMULTI: net_device_flags = 512;
2720pub const net_device_flags_IFF_MASTER: net_device_flags = 1024;
2721pub const net_device_flags_IFF_SLAVE: net_device_flags = 2048;
2722pub const net_device_flags_IFF_MULTICAST: net_device_flags = 4096;
2723pub const net_device_flags_IFF_PORTSEL: net_device_flags = 8192;
2724pub const net_device_flags_IFF_AUTOMEDIA: net_device_flags = 16384;
2725pub const net_device_flags_IFF_DYNAMIC: net_device_flags = 32768;
2726/**
2727 * enum net_device_flags - &struct net_device flags
2728 *
2729 * These are the &struct net_device flags, they can be set by drivers, the
2730 * kernel and some can be triggered by userspace. Userspace can query and
2731 * set these flags using userspace utilities but there is also a sysfs
2732 * entry available for all dev flags which can be queried and set. These flags
2733 * are shared for all types of net_devices. The sysfs entries are available
2734 * via /sys/class/net/<dev>/flags. Flags which can be toggled through sysfs
2735 * are annotated below, note that only a few flags can be toggled and some
2736 * other flags are always preserved from the original net_device flags
2737 * even if you try to set them via sysfs. Flags which are always preserved
2738 * are kept under the flag grouping @IFF_VOLATILE. Flags which are __volatile__
2739 * are annotated below as such.
2740 *
2741 * You should have a pretty good reason to be extending these flags.
2742 *
2743 * @IFF_UP: interface is up. Can be toggled through sysfs.
2744 * @IFF_BROADCAST: broadcast address valid. Volatile.
2745 * @IFF_DEBUG: turn on debugging. Can be toggled through sysfs.
2746 * @IFF_LOOPBACK: is a loopback net. Volatile.
2747 * @IFF_POINTOPOINT: interface is has p-p link. Volatile.
2748 * @IFF_NOTRAILERS: avoid use of trailers. Can be toggled through sysfs.
2749 *	Volatile.
2750 * @IFF_RUNNING: interface RFC2863 OPER_UP. Volatile.
2751 * @IFF_NOARP: no ARP protocol. Can be toggled through sysfs. Volatile.
2752 * @IFF_PROMISC: receive all packets. Can be toggled through sysfs.
2753 * @IFF_ALLMULTI: receive all multicast packets. Can be toggled through
2754 *	sysfs.
2755 * @IFF_MASTER: master of a load balancer. Volatile.
2756 * @IFF_SLAVE: slave of a load balancer. Volatile.
2757 * @IFF_MULTICAST: Supports multicast. Can be toggled through sysfs.
2758 * @IFF_PORTSEL: can set media type. Can be toggled through sysfs.
2759 * @IFF_AUTOMEDIA: auto media select active. Can be toggled through sysfs.
2760 * @IFF_DYNAMIC: dialup device with changing addresses. Can be toggled
2761 *	through sysfs.
2762 * @IFF_LOWER_UP: driver signals L1 up. Volatile.
2763 * @IFF_DORMANT: driver signals dormant. Volatile.
2764 * @IFF_ECHO: echo sent packets. Volatile.
2765 */
2766pub type net_device_flags = ::std::os::raw::c_uint;
2767pub const IF_OPER_UNKNOWN: _bindgen_ty_4 = 0;
2768pub const IF_OPER_NOTPRESENT: _bindgen_ty_4 = 1;
2769pub const IF_OPER_DOWN: _bindgen_ty_4 = 2;
2770pub const IF_OPER_LOWERLAYERDOWN: _bindgen_ty_4 = 3;
2771pub const IF_OPER_TESTING: _bindgen_ty_4 = 4;
2772pub const IF_OPER_DORMANT: _bindgen_ty_4 = 5;
2773pub const IF_OPER_UP: _bindgen_ty_4 = 6;
2774pub type _bindgen_ty_4 = ::std::os::raw::c_uint;
2775pub const IF_LINK_MODE_DEFAULT: _bindgen_ty_5 = 0;
2776pub const IF_LINK_MODE_DORMANT: _bindgen_ty_5 = 1;
2777pub type _bindgen_ty_5 = ::std::os::raw::c_uint;
2778#[repr(C)]
2779#[derive(Debug, Default, Copy)]
2780pub struct ifmap {
2781    pub mem_start: ::std::os::raw::c_ulong,
2782    pub mem_end: ::std::os::raw::c_ulong,
2783    pub base_addr: ::std::os::raw::c_ushort,
2784    pub irq: ::std::os::raw::c_uchar,
2785    pub dma: ::std::os::raw::c_uchar,
2786    pub port: ::std::os::raw::c_uchar,
2787}
2788#[test]
2789fn bindgen_test_layout_ifmap() {
2790    assert_eq!(
2791        ::std::mem::size_of::<ifmap>(),
2792        24usize,
2793        concat!("Size of: ", stringify!(ifmap))
2794    );
2795    assert_eq!(
2796        ::std::mem::align_of::<ifmap>(),
2797        8usize,
2798        concat!("Alignment of ", stringify!(ifmap))
2799    );
2800    assert_eq!(
2801        unsafe { &(*(0 as *const ifmap)).mem_start as *const _ as usize },
2802        0usize,
2803        concat!(
2804            "Alignment of field: ",
2805            stringify!(ifmap),
2806            "::",
2807            stringify!(mem_start)
2808        )
2809    );
2810    assert_eq!(
2811        unsafe { &(*(0 as *const ifmap)).mem_end as *const _ as usize },
2812        8usize,
2813        concat!(
2814            "Alignment of field: ",
2815            stringify!(ifmap),
2816            "::",
2817            stringify!(mem_end)
2818        )
2819    );
2820    assert_eq!(
2821        unsafe { &(*(0 as *const ifmap)).base_addr as *const _ as usize },
2822        16usize,
2823        concat!(
2824            "Alignment of field: ",
2825            stringify!(ifmap),
2826            "::",
2827            stringify!(base_addr)
2828        )
2829    );
2830    assert_eq!(
2831        unsafe { &(*(0 as *const ifmap)).irq as *const _ as usize },
2832        18usize,
2833        concat!(
2834            "Alignment of field: ",
2835            stringify!(ifmap),
2836            "::",
2837            stringify!(irq)
2838        )
2839    );
2840    assert_eq!(
2841        unsafe { &(*(0 as *const ifmap)).dma as *const _ as usize },
2842        19usize,
2843        concat!(
2844            "Alignment of field: ",
2845            stringify!(ifmap),
2846            "::",
2847            stringify!(dma)
2848        )
2849    );
2850    assert_eq!(
2851        unsafe { &(*(0 as *const ifmap)).port as *const _ as usize },
2852        20usize,
2853        concat!(
2854            "Alignment of field: ",
2855            stringify!(ifmap),
2856            "::",
2857            stringify!(port)
2858        )
2859    );
2860}
2861impl Clone for ifmap {
2862    fn clone(&self) -> Self {
2863        *self
2864    }
2865}
2866#[repr(C)]
2867#[derive(Debug, Default, Copy)]
2868pub struct if_settings {
2869    pub type_: ::std::os::raw::c_uint,
2870    pub size: ::std::os::raw::c_uint,
2871    pub ifs_ifsu: if_settings__bindgen_ty_1,
2872}
2873#[repr(C)]
2874#[derive(Debug, Default, Copy)]
2875pub struct if_settings__bindgen_ty_1 {
2876    pub raw_hdlc: __BindgenUnionField<*mut raw_hdlc_proto>,
2877    pub cisco: __BindgenUnionField<*mut cisco_proto>,
2878    pub fr: __BindgenUnionField<*mut fr_proto>,
2879    pub fr_pvc: __BindgenUnionField<*mut fr_proto_pvc>,
2880    pub fr_pvc_info: __BindgenUnionField<*mut fr_proto_pvc_info>,
2881    pub sync: __BindgenUnionField<*mut sync_serial_settings>,
2882    pub te1: __BindgenUnionField<*mut te1_settings>,
2883    pub bindgen_union_field: u64,
2884}
2885#[test]
2886fn bindgen_test_layout_if_settings__bindgen_ty_1() {
2887    assert_eq!(
2888        ::std::mem::size_of::<if_settings__bindgen_ty_1>(),
2889        8usize,
2890        concat!("Size of: ", stringify!(if_settings__bindgen_ty_1))
2891    );
2892    assert_eq!(
2893        ::std::mem::align_of::<if_settings__bindgen_ty_1>(),
2894        8usize,
2895        concat!("Alignment of ", stringify!(if_settings__bindgen_ty_1))
2896    );
2897    assert_eq!(
2898        unsafe { &(*(0 as *const if_settings__bindgen_ty_1)).raw_hdlc as *const _ as usize },
2899        0usize,
2900        concat!(
2901            "Alignment of field: ",
2902            stringify!(if_settings__bindgen_ty_1),
2903            "::",
2904            stringify!(raw_hdlc)
2905        )
2906    );
2907    assert_eq!(
2908        unsafe { &(*(0 as *const if_settings__bindgen_ty_1)).cisco as *const _ as usize },
2909        0usize,
2910        concat!(
2911            "Alignment of field: ",
2912            stringify!(if_settings__bindgen_ty_1),
2913            "::",
2914            stringify!(cisco)
2915        )
2916    );
2917    assert_eq!(
2918        unsafe { &(*(0 as *const if_settings__bindgen_ty_1)).fr as *const _ as usize },
2919        0usize,
2920        concat!(
2921            "Alignment of field: ",
2922            stringify!(if_settings__bindgen_ty_1),
2923            "::",
2924            stringify!(fr)
2925        )
2926    );
2927    assert_eq!(
2928        unsafe { &(*(0 as *const if_settings__bindgen_ty_1)).fr_pvc as *const _ as usize },
2929        0usize,
2930        concat!(
2931            "Alignment of field: ",
2932            stringify!(if_settings__bindgen_ty_1),
2933            "::",
2934            stringify!(fr_pvc)
2935        )
2936    );
2937    assert_eq!(
2938        unsafe { &(*(0 as *const if_settings__bindgen_ty_1)).fr_pvc_info as *const _ as usize },
2939        0usize,
2940        concat!(
2941            "Alignment of field: ",
2942            stringify!(if_settings__bindgen_ty_1),
2943            "::",
2944            stringify!(fr_pvc_info)
2945        )
2946    );
2947    assert_eq!(
2948        unsafe { &(*(0 as *const if_settings__bindgen_ty_1)).sync as *const _ as usize },
2949        0usize,
2950        concat!(
2951            "Alignment of field: ",
2952            stringify!(if_settings__bindgen_ty_1),
2953            "::",
2954            stringify!(sync)
2955        )
2956    );
2957    assert_eq!(
2958        unsafe { &(*(0 as *const if_settings__bindgen_ty_1)).te1 as *const _ as usize },
2959        0usize,
2960        concat!(
2961            "Alignment of field: ",
2962            stringify!(if_settings__bindgen_ty_1),
2963            "::",
2964            stringify!(te1)
2965        )
2966    );
2967}
2968impl Clone for if_settings__bindgen_ty_1 {
2969    fn clone(&self) -> Self {
2970        *self
2971    }
2972}
2973#[test]
2974fn bindgen_test_layout_if_settings() {
2975    assert_eq!(
2976        ::std::mem::size_of::<if_settings>(),
2977        16usize,
2978        concat!("Size of: ", stringify!(if_settings))
2979    );
2980    assert_eq!(
2981        ::std::mem::align_of::<if_settings>(),
2982        8usize,
2983        concat!("Alignment of ", stringify!(if_settings))
2984    );
2985    assert_eq!(
2986        unsafe { &(*(0 as *const if_settings)).type_ as *const _ as usize },
2987        0usize,
2988        concat!(
2989            "Alignment of field: ",
2990            stringify!(if_settings),
2991            "::",
2992            stringify!(type_)
2993        )
2994    );
2995    assert_eq!(
2996        unsafe { &(*(0 as *const if_settings)).size as *const _ as usize },
2997        4usize,
2998        concat!(
2999            "Alignment of field: ",
3000            stringify!(if_settings),
3001            "::",
3002            stringify!(size)
3003        )
3004    );
3005    assert_eq!(
3006        unsafe { &(*(0 as *const if_settings)).ifs_ifsu as *const _ as usize },
3007        8usize,
3008        concat!(
3009            "Alignment of field: ",
3010            stringify!(if_settings),
3011            "::",
3012            stringify!(ifs_ifsu)
3013        )
3014    );
3015}
3016impl Clone for if_settings {
3017    fn clone(&self) -> Self {
3018        *self
3019    }
3020}
3021#[repr(C)]
3022#[derive(Debug, Default, Copy)]
3023pub struct ifreq {
3024    pub ifr_ifrn: ifreq__bindgen_ty_1,
3025    pub ifr_ifru: ifreq__bindgen_ty_2,
3026}
3027#[repr(C)]
3028#[derive(Debug, Default, Copy)]
3029pub struct ifreq__bindgen_ty_1 {
3030    pub ifrn_name: __BindgenUnionField<[::std::os::raw::c_uchar; 16usize]>,
3031    pub bindgen_union_field: [u8; 16usize],
3032}
3033#[test]
3034fn bindgen_test_layout_ifreq__bindgen_ty_1() {
3035    assert_eq!(
3036        ::std::mem::size_of::<ifreq__bindgen_ty_1>(),
3037        16usize,
3038        concat!("Size of: ", stringify!(ifreq__bindgen_ty_1))
3039    );
3040    assert_eq!(
3041        ::std::mem::align_of::<ifreq__bindgen_ty_1>(),
3042        1usize,
3043        concat!("Alignment of ", stringify!(ifreq__bindgen_ty_1))
3044    );
3045    assert_eq!(
3046        unsafe { &(*(0 as *const ifreq__bindgen_ty_1)).ifrn_name as *const _ as usize },
3047        0usize,
3048        concat!(
3049            "Alignment of field: ",
3050            stringify!(ifreq__bindgen_ty_1),
3051            "::",
3052            stringify!(ifrn_name)
3053        )
3054    );
3055}
3056impl Clone for ifreq__bindgen_ty_1 {
3057    fn clone(&self) -> Self {
3058        *self
3059    }
3060}
3061#[repr(C)]
3062#[derive(Debug, Default, Copy)]
3063pub struct ifreq__bindgen_ty_2 {
3064    pub ifru_addr: __BindgenUnionField<sockaddr>,
3065    pub ifru_dstaddr: __BindgenUnionField<sockaddr>,
3066    pub ifru_broadaddr: __BindgenUnionField<sockaddr>,
3067    pub ifru_netmask: __BindgenUnionField<sockaddr>,
3068    pub ifru_hwaddr: __BindgenUnionField<sockaddr>,
3069    pub ifru_flags: __BindgenUnionField<::std::os::raw::c_short>,
3070    pub ifru_ivalue: __BindgenUnionField<::std::os::raw::c_int>,
3071    pub ifru_mtu: __BindgenUnionField<::std::os::raw::c_int>,
3072    pub ifru_map: __BindgenUnionField<ifmap>,
3073    pub ifru_slave: __BindgenUnionField<[::std::os::raw::c_char; 16usize]>,
3074    pub ifru_newname: __BindgenUnionField<[::std::os::raw::c_char; 16usize]>,
3075    pub ifru_data: __BindgenUnionField<*mut ::std::os::raw::c_void>,
3076    pub ifru_settings: __BindgenUnionField<if_settings>,
3077    pub bindgen_union_field: [u64; 3usize],
3078}
3079#[test]
3080fn bindgen_test_layout_ifreq__bindgen_ty_2() {
3081    assert_eq!(
3082        ::std::mem::size_of::<ifreq__bindgen_ty_2>(),
3083        24usize,
3084        concat!("Size of: ", stringify!(ifreq__bindgen_ty_2))
3085    );
3086    assert_eq!(
3087        ::std::mem::align_of::<ifreq__bindgen_ty_2>(),
3088        8usize,
3089        concat!("Alignment of ", stringify!(ifreq__bindgen_ty_2))
3090    );
3091    assert_eq!(
3092        unsafe { &(*(0 as *const ifreq__bindgen_ty_2)).ifru_addr as *const _ as usize },
3093        0usize,
3094        concat!(
3095            "Alignment of field: ",
3096            stringify!(ifreq__bindgen_ty_2),
3097            "::",
3098            stringify!(ifru_addr)
3099        )
3100    );
3101    assert_eq!(
3102        unsafe { &(*(0 as *const ifreq__bindgen_ty_2)).ifru_dstaddr as *const _ as usize },
3103        0usize,
3104        concat!(
3105            "Alignment of field: ",
3106            stringify!(ifreq__bindgen_ty_2),
3107            "::",
3108            stringify!(ifru_dstaddr)
3109        )
3110    );
3111    assert_eq!(
3112        unsafe { &(*(0 as *const ifreq__bindgen_ty_2)).ifru_broadaddr as *const _ as usize },
3113        0usize,
3114        concat!(
3115            "Alignment of field: ",
3116            stringify!(ifreq__bindgen_ty_2),
3117            "::",
3118            stringify!(ifru_broadaddr)
3119        )
3120    );
3121    assert_eq!(
3122        unsafe { &(*(0 as *const ifreq__bindgen_ty_2)).ifru_netmask as *const _ as usize },
3123        0usize,
3124        concat!(
3125            "Alignment of field: ",
3126            stringify!(ifreq__bindgen_ty_2),
3127            "::",
3128            stringify!(ifru_netmask)
3129        )
3130    );
3131    assert_eq!(
3132        unsafe { &(*(0 as *const ifreq__bindgen_ty_2)).ifru_hwaddr as *const _ as usize },
3133        0usize,
3134        concat!(
3135            "Alignment of field: ",
3136            stringify!(ifreq__bindgen_ty_2),
3137            "::",
3138            stringify!(ifru_hwaddr)
3139        )
3140    );
3141    assert_eq!(
3142        unsafe { &(*(0 as *const ifreq__bindgen_ty_2)).ifru_flags as *const _ as usize },
3143        0usize,
3144        concat!(
3145            "Alignment of field: ",
3146            stringify!(ifreq__bindgen_ty_2),
3147            "::",
3148            stringify!(ifru_flags)
3149        )
3150    );
3151    assert_eq!(
3152        unsafe { &(*(0 as *const ifreq__bindgen_ty_2)).ifru_ivalue as *const _ as usize },
3153        0usize,
3154        concat!(
3155            "Alignment of field: ",
3156            stringify!(ifreq__bindgen_ty_2),
3157            "::",
3158            stringify!(ifru_ivalue)
3159        )
3160    );
3161    assert_eq!(
3162        unsafe { &(*(0 as *const ifreq__bindgen_ty_2)).ifru_mtu as *const _ as usize },
3163        0usize,
3164        concat!(
3165            "Alignment of field: ",
3166            stringify!(ifreq__bindgen_ty_2),
3167            "::",
3168            stringify!(ifru_mtu)
3169        )
3170    );
3171    assert_eq!(
3172        unsafe { &(*(0 as *const ifreq__bindgen_ty_2)).ifru_map as *const _ as usize },
3173        0usize,
3174        concat!(
3175            "Alignment of field: ",
3176            stringify!(ifreq__bindgen_ty_2),
3177            "::",
3178            stringify!(ifru_map)
3179        )
3180    );
3181    assert_eq!(
3182        unsafe { &(*(0 as *const ifreq__bindgen_ty_2)).ifru_slave as *const _ as usize },
3183        0usize,
3184        concat!(
3185            "Alignment of field: ",
3186            stringify!(ifreq__bindgen_ty_2),
3187            "::",
3188            stringify!(ifru_slave)
3189        )
3190    );
3191    assert_eq!(
3192        unsafe { &(*(0 as *const ifreq__bindgen_ty_2)).ifru_newname as *const _ as usize },
3193        0usize,
3194        concat!(
3195            "Alignment of field: ",
3196            stringify!(ifreq__bindgen_ty_2),
3197            "::",
3198            stringify!(ifru_newname)
3199        )
3200    );
3201    assert_eq!(
3202        unsafe { &(*(0 as *const ifreq__bindgen_ty_2)).ifru_data as *const _ as usize },
3203        0usize,
3204        concat!(
3205            "Alignment of field: ",
3206            stringify!(ifreq__bindgen_ty_2),
3207            "::",
3208            stringify!(ifru_data)
3209        )
3210    );
3211    assert_eq!(
3212        unsafe { &(*(0 as *const ifreq__bindgen_ty_2)).ifru_settings as *const _ as usize },
3213        0usize,
3214        concat!(
3215            "Alignment of field: ",
3216            stringify!(ifreq__bindgen_ty_2),
3217            "::",
3218            stringify!(ifru_settings)
3219        )
3220    );
3221}
3222impl Clone for ifreq__bindgen_ty_2 {
3223    fn clone(&self) -> Self {
3224        *self
3225    }
3226}
3227#[test]
3228fn bindgen_test_layout_ifreq() {
3229    assert_eq!(
3230        ::std::mem::size_of::<ifreq>(),
3231        40usize,
3232        concat!("Size of: ", stringify!(ifreq))
3233    );
3234    assert_eq!(
3235        ::std::mem::align_of::<ifreq>(),
3236        8usize,
3237        concat!("Alignment of ", stringify!(ifreq))
3238    );
3239    assert_eq!(
3240        unsafe { &(*(0 as *const ifreq)).ifr_ifrn as *const _ as usize },
3241        0usize,
3242        concat!(
3243            "Alignment of field: ",
3244            stringify!(ifreq),
3245            "::",
3246            stringify!(ifr_ifrn)
3247        )
3248    );
3249    assert_eq!(
3250        unsafe { &(*(0 as *const ifreq)).ifr_ifru as *const _ as usize },
3251        16usize,
3252        concat!(
3253            "Alignment of field: ",
3254            stringify!(ifreq),
3255            "::",
3256            stringify!(ifr_ifru)
3257        )
3258    );
3259}
3260impl Clone for ifreq {
3261    fn clone(&self) -> Self {
3262        *self
3263    }
3264}