xref: /aosp_15_r20/tools/netsim/rust/libslirp-rs/src/libslirp_sys/linux/bindings.rs (revision cf78ab8cffb8fc9207af348f23af247fb04370a6)
1 /* automatically generated by rust-bindgen 0.69.5 */
2 
3 #[repr(C)]
4 #[derive(Default)]
5 pub struct __IncompleteArrayField<T>(::std::marker::PhantomData<T>, [T; 0]);
6 impl<T> __IncompleteArrayField<T> {
7     #[inline]
new() -> Self8     pub const fn new() -> Self {
9         __IncompleteArrayField(::std::marker::PhantomData, [])
10     }
11     #[inline]
as_ptr(&self) -> *const T12     pub fn as_ptr(&self) -> *const T {
13         self as *const _ as *const T
14     }
15     #[inline]
as_mut_ptr(&mut self) -> *mut T16     pub fn as_mut_ptr(&mut self) -> *mut T {
17         self as *mut _ as *mut T
18     }
19     #[inline]
as_slice(&self, len: usize) -> &[T]20     pub unsafe fn as_slice(&self, len: usize) -> &[T] {
21         ::std::slice::from_raw_parts(self.as_ptr(), len)
22     }
23     #[inline]
as_mut_slice(&mut self, len: usize) -> &mut [T]24     pub unsafe fn as_mut_slice(&mut self, len: usize) -> &mut [T] {
25         ::std::slice::from_raw_parts_mut(self.as_mut_ptr(), len)
26     }
27 }
28 impl<T> ::std::fmt::Debug for __IncompleteArrayField<T> {
fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result29     fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
30         fmt.write_str("__IncompleteArrayField")
31     }
32 }
33 pub const _STDINT_H: u32 = 1;
34 pub const _FEATURES_H: u32 = 1;
35 pub const _DEFAULT_SOURCE: u32 = 1;
36 pub const __GLIBC_USE_ISOC2X: u32 = 0;
37 pub const __USE_ISOC11: u32 = 1;
38 pub const __USE_ISOC99: u32 = 1;
39 pub const __USE_ISOC95: u32 = 1;
40 pub const __USE_POSIX_IMPLICITLY: u32 = 1;
41 pub const _POSIX_SOURCE: u32 = 1;
42 pub const _POSIX_C_SOURCE: u32 = 200809;
43 pub const __USE_POSIX: u32 = 1;
44 pub const __USE_POSIX2: u32 = 1;
45 pub const __USE_POSIX199309: u32 = 1;
46 pub const __USE_POSIX199506: u32 = 1;
47 pub const __USE_XOPEN2K: u32 = 1;
48 pub const __USE_XOPEN2K8: u32 = 1;
49 pub const _ATFILE_SOURCE: u32 = 1;
50 pub const __WORDSIZE: u32 = 64;
51 pub const __WORDSIZE_TIME64_COMPAT32: u32 = 1;
52 pub const __SYSCALL_WORDSIZE: u32 = 64;
53 pub const __TIMESIZE: u32 = 64;
54 pub const __USE_MISC: u32 = 1;
55 pub const __USE_ATFILE: u32 = 1;
56 pub const __USE_FORTIFY_LEVEL: u32 = 0;
57 pub const __GLIBC_USE_DEPRECATED_GETS: u32 = 0;
58 pub const __GLIBC_USE_DEPRECATED_SCANF: u32 = 0;
59 pub const __GLIBC_USE_C2X_STRTOL: u32 = 0;
60 pub const _STDC_PREDEF_H: u32 = 1;
61 pub const __STDC_IEC_559__: u32 = 1;
62 pub const __STDC_IEC_60559_BFP__: u32 = 201404;
63 pub const __STDC_IEC_559_COMPLEX__: u32 = 1;
64 pub const __STDC_IEC_60559_COMPLEX__: u32 = 201404;
65 pub const __STDC_ISO_10646__: u32 = 201706;
66 pub const __GNU_LIBRARY__: u32 = 6;
67 pub const __GLIBC__: u32 = 2;
68 pub const __GLIBC_MINOR__: u32 = 38;
69 pub const _SYS_CDEFS_H: u32 = 1;
70 pub const __glibc_c99_flexarr_available: u32 = 1;
71 pub const __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI: u32 = 0;
72 pub const __HAVE_GENERIC_SELECTION: u32 = 1;
73 pub const __GLIBC_USE_LIB_EXT2: u32 = 0;
74 pub const __GLIBC_USE_IEC_60559_BFP_EXT: u32 = 0;
75 pub const __GLIBC_USE_IEC_60559_BFP_EXT_C2X: u32 = 0;
76 pub const __GLIBC_USE_IEC_60559_EXT: u32 = 0;
77 pub const __GLIBC_USE_IEC_60559_FUNCS_EXT: u32 = 0;
78 pub const __GLIBC_USE_IEC_60559_FUNCS_EXT_C2X: u32 = 0;
79 pub const __GLIBC_USE_IEC_60559_TYPES_EXT: u32 = 0;
80 pub const _BITS_TYPES_H: u32 = 1;
81 pub const _BITS_TYPESIZES_H: u32 = 1;
82 pub const __OFF_T_MATCHES_OFF64_T: u32 = 1;
83 pub const __INO_T_MATCHES_INO64_T: u32 = 1;
84 pub const __RLIM_T_MATCHES_RLIM64_T: u32 = 1;
85 pub const __STATFS_MATCHES_STATFS64: u32 = 1;
86 pub const __KERNEL_OLD_TIMEVAL_MATCHES_TIMEVAL64: u32 = 1;
87 pub const __FD_SETSIZE: u32 = 1024;
88 pub const _BITS_TIME64_H: u32 = 1;
89 pub const _BITS_WCHAR_H: u32 = 1;
90 pub const _BITS_STDINT_INTN_H: u32 = 1;
91 pub const _BITS_STDINT_UINTN_H: u32 = 1;
92 pub const INT8_MIN: i32 = -128;
93 pub const INT16_MIN: i32 = -32768;
94 pub const INT32_MIN: i32 = -2147483648;
95 pub const INT8_MAX: u32 = 127;
96 pub const INT16_MAX: u32 = 32767;
97 pub const INT32_MAX: u32 = 2147483647;
98 pub const UINT8_MAX: u32 = 255;
99 pub const UINT16_MAX: u32 = 65535;
100 pub const UINT32_MAX: u32 = 4294967295;
101 pub const INT_LEAST8_MIN: i32 = -128;
102 pub const INT_LEAST16_MIN: i32 = -32768;
103 pub const INT_LEAST32_MIN: i32 = -2147483648;
104 pub const INT_LEAST8_MAX: u32 = 127;
105 pub const INT_LEAST16_MAX: u32 = 32767;
106 pub const INT_LEAST32_MAX: u32 = 2147483647;
107 pub const UINT_LEAST8_MAX: u32 = 255;
108 pub const UINT_LEAST16_MAX: u32 = 65535;
109 pub const UINT_LEAST32_MAX: u32 = 4294967295;
110 pub const INT_FAST8_MIN: i32 = -128;
111 pub const INT_FAST16_MIN: i64 = -9223372036854775808;
112 pub const INT_FAST32_MIN: i64 = -9223372036854775808;
113 pub const INT_FAST8_MAX: u32 = 127;
114 pub const INT_FAST16_MAX: u64 = 9223372036854775807;
115 pub const INT_FAST32_MAX: u64 = 9223372036854775807;
116 pub const UINT_FAST8_MAX: u32 = 255;
117 pub const UINT_FAST16_MAX: i32 = -1;
118 pub const UINT_FAST32_MAX: i32 = -1;
119 pub const INTPTR_MIN: i64 = -9223372036854775808;
120 pub const INTPTR_MAX: u64 = 9223372036854775807;
121 pub const UINTPTR_MAX: i32 = -1;
122 pub const PTRDIFF_MIN: i64 = -9223372036854775808;
123 pub const PTRDIFF_MAX: u64 = 9223372036854775807;
124 pub const SIG_ATOMIC_MIN: i32 = -2147483648;
125 pub const SIG_ATOMIC_MAX: u32 = 2147483647;
126 pub const SIZE_MAX: i32 = -1;
127 pub const WINT_MIN: u32 = 0;
128 pub const WINT_MAX: u32 = 4294967295;
129 pub const __bool_true_false_are_defined: u32 = 1;
130 pub const true_: u32 = 1;
131 pub const false_: u32 = 0;
132 pub const _SYS_TYPES_H: u32 = 1;
133 pub const __clock_t_defined: u32 = 1;
134 pub const __clockid_t_defined: u32 = 1;
135 pub const __time_t_defined: u32 = 1;
136 pub const __timer_t_defined: u32 = 1;
137 pub const __BIT_TYPES_DEFINED__: u32 = 1;
138 pub const _ENDIAN_H: u32 = 1;
139 pub const _BITS_ENDIAN_H: u32 = 1;
140 pub const __LITTLE_ENDIAN: u32 = 1234;
141 pub const __BIG_ENDIAN: u32 = 4321;
142 pub const __PDP_ENDIAN: u32 = 3412;
143 pub const _BITS_ENDIANNESS_H: u32 = 1;
144 pub const __BYTE_ORDER: u32 = 1234;
145 pub const __FLOAT_WORD_ORDER: u32 = 1234;
146 pub const LITTLE_ENDIAN: u32 = 1234;
147 pub const BIG_ENDIAN: u32 = 4321;
148 pub const PDP_ENDIAN: u32 = 3412;
149 pub const BYTE_ORDER: u32 = 1234;
150 pub const _BITS_BYTESWAP_H: u32 = 1;
151 pub const _BITS_UINTN_IDENTITY_H: u32 = 1;
152 pub const _SYS_SELECT_H: u32 = 1;
153 pub const __sigset_t_defined: u32 = 1;
154 pub const __timeval_defined: u32 = 1;
155 pub const _STRUCT_TIMESPEC: u32 = 1;
156 pub const FD_SETSIZE: u32 = 1024;
157 pub const _BITS_PTHREADTYPES_COMMON_H: u32 = 1;
158 pub const _THREAD_SHARED_TYPES_H: u32 = 1;
159 pub const _BITS_PTHREADTYPES_ARCH_H: u32 = 1;
160 pub const __SIZEOF_PTHREAD_MUTEX_T: u32 = 40;
161 pub const __SIZEOF_PTHREAD_ATTR_T: u32 = 56;
162 pub const __SIZEOF_PTHREAD_RWLOCK_T: u32 = 56;
163 pub const __SIZEOF_PTHREAD_BARRIER_T: u32 = 32;
164 pub const __SIZEOF_PTHREAD_MUTEXATTR_T: u32 = 4;
165 pub const __SIZEOF_PTHREAD_COND_T: u32 = 48;
166 pub const __SIZEOF_PTHREAD_CONDATTR_T: u32 = 4;
167 pub const __SIZEOF_PTHREAD_RWLOCKATTR_T: u32 = 8;
168 pub const __SIZEOF_PTHREAD_BARRIERATTR_T: u32 = 4;
169 pub const _THREAD_MUTEX_INTERNAL_H: u32 = 1;
170 pub const __PTHREAD_MUTEX_HAVE_PREV: u32 = 1;
171 pub const __have_pthread_attr_t: u32 = 1;
172 pub const _NETINET_IN_H: u32 = 1;
173 pub const _SYS_SOCKET_H: u32 = 1;
174 pub const __iovec_defined: u32 = 1;
175 pub const PF_UNSPEC: u32 = 0;
176 pub const PF_LOCAL: u32 = 1;
177 pub const PF_UNIX: u32 = 1;
178 pub const PF_FILE: u32 = 1;
179 pub const PF_INET: u32 = 2;
180 pub const PF_AX25: u32 = 3;
181 pub const PF_IPX: u32 = 4;
182 pub const PF_APPLETALK: u32 = 5;
183 pub const PF_NETROM: u32 = 6;
184 pub const PF_BRIDGE: u32 = 7;
185 pub const PF_ATMPVC: u32 = 8;
186 pub const PF_X25: u32 = 9;
187 pub const PF_INET6: u32 = 10;
188 pub const PF_ROSE: u32 = 11;
189 pub const PF_DECnet: u32 = 12;
190 pub const PF_NETBEUI: u32 = 13;
191 pub const PF_SECURITY: u32 = 14;
192 pub const PF_KEY: u32 = 15;
193 pub const PF_NETLINK: u32 = 16;
194 pub const PF_ROUTE: u32 = 16;
195 pub const PF_PACKET: u32 = 17;
196 pub const PF_ASH: u32 = 18;
197 pub const PF_ECONET: u32 = 19;
198 pub const PF_ATMSVC: u32 = 20;
199 pub const PF_RDS: u32 = 21;
200 pub const PF_SNA: u32 = 22;
201 pub const PF_IRDA: u32 = 23;
202 pub const PF_PPPOX: u32 = 24;
203 pub const PF_WANPIPE: u32 = 25;
204 pub const PF_LLC: u32 = 26;
205 pub const PF_IB: u32 = 27;
206 pub const PF_MPLS: u32 = 28;
207 pub const PF_CAN: u32 = 29;
208 pub const PF_TIPC: u32 = 30;
209 pub const PF_BLUETOOTH: u32 = 31;
210 pub const PF_IUCV: u32 = 32;
211 pub const PF_RXRPC: u32 = 33;
212 pub const PF_ISDN: u32 = 34;
213 pub const PF_PHONET: u32 = 35;
214 pub const PF_IEEE802154: u32 = 36;
215 pub const PF_CAIF: u32 = 37;
216 pub const PF_ALG: u32 = 38;
217 pub const PF_NFC: u32 = 39;
218 pub const PF_VSOCK: u32 = 40;
219 pub const PF_KCM: u32 = 41;
220 pub const PF_QIPCRTR: u32 = 42;
221 pub const PF_SMC: u32 = 43;
222 pub const PF_XDP: u32 = 44;
223 pub const PF_MCTP: u32 = 45;
224 pub const PF_MAX: u32 = 46;
225 pub const AF_UNSPEC: u32 = 0;
226 pub const AF_LOCAL: u32 = 1;
227 pub const AF_UNIX: u32 = 1;
228 pub const AF_FILE: u32 = 1;
229 pub const AF_INET: u32 = 2;
230 pub const AF_AX25: u32 = 3;
231 pub const AF_IPX: u32 = 4;
232 pub const AF_APPLETALK: u32 = 5;
233 pub const AF_NETROM: u32 = 6;
234 pub const AF_BRIDGE: u32 = 7;
235 pub const AF_ATMPVC: u32 = 8;
236 pub const AF_X25: u32 = 9;
237 pub const AF_INET6: u32 = 10;
238 pub const AF_ROSE: u32 = 11;
239 pub const AF_DECnet: u32 = 12;
240 pub const AF_NETBEUI: u32 = 13;
241 pub const AF_SECURITY: u32 = 14;
242 pub const AF_KEY: u32 = 15;
243 pub const AF_NETLINK: u32 = 16;
244 pub const AF_ROUTE: u32 = 16;
245 pub const AF_PACKET: u32 = 17;
246 pub const AF_ASH: u32 = 18;
247 pub const AF_ECONET: u32 = 19;
248 pub const AF_ATMSVC: u32 = 20;
249 pub const AF_RDS: u32 = 21;
250 pub const AF_SNA: u32 = 22;
251 pub const AF_IRDA: u32 = 23;
252 pub const AF_PPPOX: u32 = 24;
253 pub const AF_WANPIPE: u32 = 25;
254 pub const AF_LLC: u32 = 26;
255 pub const AF_IB: u32 = 27;
256 pub const AF_MPLS: u32 = 28;
257 pub const AF_CAN: u32 = 29;
258 pub const AF_TIPC: u32 = 30;
259 pub const AF_BLUETOOTH: u32 = 31;
260 pub const AF_IUCV: u32 = 32;
261 pub const AF_RXRPC: u32 = 33;
262 pub const AF_ISDN: u32 = 34;
263 pub const AF_PHONET: u32 = 35;
264 pub const AF_IEEE802154: u32 = 36;
265 pub const AF_CAIF: u32 = 37;
266 pub const AF_ALG: u32 = 38;
267 pub const AF_NFC: u32 = 39;
268 pub const AF_VSOCK: u32 = 40;
269 pub const AF_KCM: u32 = 41;
270 pub const AF_QIPCRTR: u32 = 42;
271 pub const AF_SMC: u32 = 43;
272 pub const AF_XDP: u32 = 44;
273 pub const AF_MCTP: u32 = 45;
274 pub const AF_MAX: u32 = 46;
275 pub const SOL_RAW: u32 = 255;
276 pub const SOL_DECNET: u32 = 261;
277 pub const SOL_X25: u32 = 262;
278 pub const SOL_PACKET: u32 = 263;
279 pub const SOL_ATM: u32 = 264;
280 pub const SOL_AAL: u32 = 265;
281 pub const SOL_IRDA: u32 = 266;
282 pub const SOL_NETBEUI: u32 = 267;
283 pub const SOL_LLC: u32 = 268;
284 pub const SOL_DCCP: u32 = 269;
285 pub const SOL_NETLINK: u32 = 270;
286 pub const SOL_TIPC: u32 = 271;
287 pub const SOL_RXRPC: u32 = 272;
288 pub const SOL_PPPOL2TP: u32 = 273;
289 pub const SOL_BLUETOOTH: u32 = 274;
290 pub const SOL_PNPIPE: u32 = 275;
291 pub const SOL_RDS: u32 = 276;
292 pub const SOL_IUCV: u32 = 277;
293 pub const SOL_CAIF: u32 = 278;
294 pub const SOL_ALG: u32 = 279;
295 pub const SOL_NFC: u32 = 280;
296 pub const SOL_KCM: u32 = 281;
297 pub const SOL_TLS: u32 = 282;
298 pub const SOL_XDP: u32 = 283;
299 pub const SOL_MPTCP: u32 = 284;
300 pub const SOL_MCTP: u32 = 285;
301 pub const SOL_SMC: u32 = 286;
302 pub const SOMAXCONN: u32 = 4096;
303 pub const _BITS_SOCKADDR_H: u32 = 1;
304 pub const _SS_SIZE: u32 = 128;
305 pub const __BITS_PER_LONG: u32 = 64;
306 pub const __BITS_PER_LONG_LONG: u32 = 64;
307 pub const FIOSETOWN: u32 = 35073;
308 pub const SIOCSPGRP: u32 = 35074;
309 pub const FIOGETOWN: u32 = 35075;
310 pub const SIOCGPGRP: u32 = 35076;
311 pub const SIOCATMARK: u32 = 35077;
312 pub const SIOCGSTAMP_OLD: u32 = 35078;
313 pub const SIOCGSTAMPNS_OLD: u32 = 35079;
314 pub const SOL_SOCKET: u32 = 1;
315 pub const SO_DEBUG: u32 = 1;
316 pub const SO_REUSEADDR: u32 = 2;
317 pub const SO_TYPE: u32 = 3;
318 pub const SO_ERROR: u32 = 4;
319 pub const SO_DONTROUTE: u32 = 5;
320 pub const SO_BROADCAST: u32 = 6;
321 pub const SO_SNDBUF: u32 = 7;
322 pub const SO_RCVBUF: u32 = 8;
323 pub const SO_SNDBUFFORCE: u32 = 32;
324 pub const SO_RCVBUFFORCE: u32 = 33;
325 pub const SO_KEEPALIVE: u32 = 9;
326 pub const SO_OOBINLINE: u32 = 10;
327 pub const SO_NO_CHECK: u32 = 11;
328 pub const SO_PRIORITY: u32 = 12;
329 pub const SO_LINGER: u32 = 13;
330 pub const SO_BSDCOMPAT: u32 = 14;
331 pub const SO_REUSEPORT: u32 = 15;
332 pub const SO_PASSCRED: u32 = 16;
333 pub const SO_PEERCRED: u32 = 17;
334 pub const SO_RCVLOWAT: u32 = 18;
335 pub const SO_SNDLOWAT: u32 = 19;
336 pub const SO_RCVTIMEO_OLD: u32 = 20;
337 pub const SO_SNDTIMEO_OLD: u32 = 21;
338 pub const SO_SECURITY_AUTHENTICATION: u32 = 22;
339 pub const SO_SECURITY_ENCRYPTION_TRANSPORT: u32 = 23;
340 pub const SO_SECURITY_ENCRYPTION_NETWORK: u32 = 24;
341 pub const SO_BINDTODEVICE: u32 = 25;
342 pub const SO_ATTACH_FILTER: u32 = 26;
343 pub const SO_DETACH_FILTER: u32 = 27;
344 pub const SO_GET_FILTER: u32 = 26;
345 pub const SO_PEERNAME: u32 = 28;
346 pub const SO_ACCEPTCONN: u32 = 30;
347 pub const SO_PEERSEC: u32 = 31;
348 pub const SO_PASSSEC: u32 = 34;
349 pub const SO_MARK: u32 = 36;
350 pub const SO_PROTOCOL: u32 = 38;
351 pub const SO_DOMAIN: u32 = 39;
352 pub const SO_RXQ_OVFL: u32 = 40;
353 pub const SO_WIFI_STATUS: u32 = 41;
354 pub const SCM_WIFI_STATUS: u32 = 41;
355 pub const SO_PEEK_OFF: u32 = 42;
356 pub const SO_NOFCS: u32 = 43;
357 pub const SO_LOCK_FILTER: u32 = 44;
358 pub const SO_SELECT_ERR_QUEUE: u32 = 45;
359 pub const SO_BUSY_POLL: u32 = 46;
360 pub const SO_MAX_PACING_RATE: u32 = 47;
361 pub const SO_BPF_EXTENSIONS: u32 = 48;
362 pub const SO_INCOMING_CPU: u32 = 49;
363 pub const SO_ATTACH_BPF: u32 = 50;
364 pub const SO_DETACH_BPF: u32 = 27;
365 pub const SO_ATTACH_REUSEPORT_CBPF: u32 = 51;
366 pub const SO_ATTACH_REUSEPORT_EBPF: u32 = 52;
367 pub const SO_CNX_ADVICE: u32 = 53;
368 pub const SCM_TIMESTAMPING_OPT_STATS: u32 = 54;
369 pub const SO_MEMINFO: u32 = 55;
370 pub const SO_INCOMING_NAPI_ID: u32 = 56;
371 pub const SO_COOKIE: u32 = 57;
372 pub const SCM_TIMESTAMPING_PKTINFO: u32 = 58;
373 pub const SO_PEERGROUPS: u32 = 59;
374 pub const SO_ZEROCOPY: u32 = 60;
375 pub const SO_TXTIME: u32 = 61;
376 pub const SCM_TXTIME: u32 = 61;
377 pub const SO_BINDTOIFINDEX: u32 = 62;
378 pub const SO_TIMESTAMP_OLD: u32 = 29;
379 pub const SO_TIMESTAMPNS_OLD: u32 = 35;
380 pub const SO_TIMESTAMPING_OLD: u32 = 37;
381 pub const SO_TIMESTAMP_NEW: u32 = 63;
382 pub const SO_TIMESTAMPNS_NEW: u32 = 64;
383 pub const SO_TIMESTAMPING_NEW: u32 = 65;
384 pub const SO_RCVTIMEO_NEW: u32 = 66;
385 pub const SO_SNDTIMEO_NEW: u32 = 67;
386 pub const SO_DETACH_REUSEPORT_BPF: u32 = 68;
387 pub const SO_PREFER_BUSY_POLL: u32 = 69;
388 pub const SO_BUSY_POLL_BUDGET: u32 = 70;
389 pub const SO_NETNS_COOKIE: u32 = 71;
390 pub const SO_BUF_LOCK: u32 = 72;
391 pub const SO_RESERVE_MEM: u32 = 73;
392 pub const SO_TXREHASH: u32 = 74;
393 pub const SO_RCVMARK: u32 = 75;
394 pub const SO_PASSPIDFD: u32 = 76;
395 pub const SO_PEERPIDFD: u32 = 77;
396 pub const SO_TIMESTAMP: u32 = 29;
397 pub const SO_TIMESTAMPNS: u32 = 35;
398 pub const SO_TIMESTAMPING: u32 = 37;
399 pub const SO_RCVTIMEO: u32 = 20;
400 pub const SO_SNDTIMEO: u32 = 21;
401 pub const SCM_TIMESTAMP: u32 = 29;
402 pub const SCM_TIMESTAMPNS: u32 = 35;
403 pub const SCM_TIMESTAMPING: u32 = 37;
404 pub const __osockaddr_defined: u32 = 1;
405 pub const __USE_KERNEL_IPV6_DEFS: u32 = 0;
406 pub const IP_OPTIONS: u32 = 4;
407 pub const IP_HDRINCL: u32 = 3;
408 pub const IP_TOS: u32 = 1;
409 pub const IP_TTL: u32 = 2;
410 pub const IP_RECVOPTS: u32 = 6;
411 pub const IP_RETOPTS: u32 = 7;
412 pub const IP_MULTICAST_IF: u32 = 32;
413 pub const IP_MULTICAST_TTL: u32 = 33;
414 pub const IP_MULTICAST_LOOP: u32 = 34;
415 pub const IP_ADD_MEMBERSHIP: u32 = 35;
416 pub const IP_DROP_MEMBERSHIP: u32 = 36;
417 pub const IP_UNBLOCK_SOURCE: u32 = 37;
418 pub const IP_BLOCK_SOURCE: u32 = 38;
419 pub const IP_ADD_SOURCE_MEMBERSHIP: u32 = 39;
420 pub const IP_DROP_SOURCE_MEMBERSHIP: u32 = 40;
421 pub const IP_MSFILTER: u32 = 41;
422 pub const MCAST_JOIN_GROUP: u32 = 42;
423 pub const MCAST_BLOCK_SOURCE: u32 = 43;
424 pub const MCAST_UNBLOCK_SOURCE: u32 = 44;
425 pub const MCAST_LEAVE_GROUP: u32 = 45;
426 pub const MCAST_JOIN_SOURCE_GROUP: u32 = 46;
427 pub const MCAST_LEAVE_SOURCE_GROUP: u32 = 47;
428 pub const MCAST_MSFILTER: u32 = 48;
429 pub const IP_MULTICAST_ALL: u32 = 49;
430 pub const IP_UNICAST_IF: u32 = 50;
431 pub const MCAST_EXCLUDE: u32 = 0;
432 pub const MCAST_INCLUDE: u32 = 1;
433 pub const IP_ROUTER_ALERT: u32 = 5;
434 pub const IP_PKTINFO: u32 = 8;
435 pub const IP_PKTOPTIONS: u32 = 9;
436 pub const IP_PMTUDISC: u32 = 10;
437 pub const IP_MTU_DISCOVER: u32 = 10;
438 pub const IP_RECVERR: u32 = 11;
439 pub const IP_RECVTTL: u32 = 12;
440 pub const IP_RECVTOS: u32 = 13;
441 pub const IP_MTU: u32 = 14;
442 pub const IP_FREEBIND: u32 = 15;
443 pub const IP_IPSEC_POLICY: u32 = 16;
444 pub const IP_XFRM_POLICY: u32 = 17;
445 pub const IP_PASSSEC: u32 = 18;
446 pub const IP_TRANSPARENT: u32 = 19;
447 pub const IP_ORIGDSTADDR: u32 = 20;
448 pub const IP_RECVORIGDSTADDR: u32 = 20;
449 pub const IP_MINTTL: u32 = 21;
450 pub const IP_NODEFRAG: u32 = 22;
451 pub const IP_CHECKSUM: u32 = 23;
452 pub const IP_BIND_ADDRESS_NO_PORT: u32 = 24;
453 pub const IP_RECVFRAGSIZE: u32 = 25;
454 pub const IP_RECVERR_RFC4884: u32 = 26;
455 pub const IP_PMTUDISC_DONT: u32 = 0;
456 pub const IP_PMTUDISC_WANT: u32 = 1;
457 pub const IP_PMTUDISC_DO: u32 = 2;
458 pub const IP_PMTUDISC_PROBE: u32 = 3;
459 pub const IP_PMTUDISC_INTERFACE: u32 = 4;
460 pub const IP_PMTUDISC_OMIT: u32 = 5;
461 pub const IP_LOCAL_PORT_RANGE: u32 = 51;
462 pub const SOL_IP: u32 = 0;
463 pub const IP_DEFAULT_MULTICAST_TTL: u32 = 1;
464 pub const IP_DEFAULT_MULTICAST_LOOP: u32 = 1;
465 pub const IP_MAX_MEMBERSHIPS: u32 = 20;
466 pub const IPV6_ADDRFORM: u32 = 1;
467 pub const IPV6_2292PKTINFO: u32 = 2;
468 pub const IPV6_2292HOPOPTS: u32 = 3;
469 pub const IPV6_2292DSTOPTS: u32 = 4;
470 pub const IPV6_2292RTHDR: u32 = 5;
471 pub const IPV6_2292PKTOPTIONS: u32 = 6;
472 pub const IPV6_CHECKSUM: u32 = 7;
473 pub const IPV6_2292HOPLIMIT: u32 = 8;
474 pub const IPV6_NEXTHOP: u32 = 9;
475 pub const IPV6_AUTHHDR: u32 = 10;
476 pub const IPV6_UNICAST_HOPS: u32 = 16;
477 pub const IPV6_MULTICAST_IF: u32 = 17;
478 pub const IPV6_MULTICAST_HOPS: u32 = 18;
479 pub const IPV6_MULTICAST_LOOP: u32 = 19;
480 pub const IPV6_JOIN_GROUP: u32 = 20;
481 pub const IPV6_LEAVE_GROUP: u32 = 21;
482 pub const IPV6_ROUTER_ALERT: u32 = 22;
483 pub const IPV6_MTU_DISCOVER: u32 = 23;
484 pub const IPV6_MTU: u32 = 24;
485 pub const IPV6_RECVERR: u32 = 25;
486 pub const IPV6_V6ONLY: u32 = 26;
487 pub const IPV6_JOIN_ANYCAST: u32 = 27;
488 pub const IPV6_LEAVE_ANYCAST: u32 = 28;
489 pub const IPV6_MULTICAST_ALL: u32 = 29;
490 pub const IPV6_ROUTER_ALERT_ISOLATE: u32 = 30;
491 pub const IPV6_RECVERR_RFC4884: u32 = 31;
492 pub const IPV6_IPSEC_POLICY: u32 = 34;
493 pub const IPV6_XFRM_POLICY: u32 = 35;
494 pub const IPV6_HDRINCL: u32 = 36;
495 pub const IPV6_RECVPKTINFO: u32 = 49;
496 pub const IPV6_PKTINFO: u32 = 50;
497 pub const IPV6_RECVHOPLIMIT: u32 = 51;
498 pub const IPV6_HOPLIMIT: u32 = 52;
499 pub const IPV6_RECVHOPOPTS: u32 = 53;
500 pub const IPV6_HOPOPTS: u32 = 54;
501 pub const IPV6_RTHDRDSTOPTS: u32 = 55;
502 pub const IPV6_RECVRTHDR: u32 = 56;
503 pub const IPV6_RTHDR: u32 = 57;
504 pub const IPV6_RECVDSTOPTS: u32 = 58;
505 pub const IPV6_DSTOPTS: u32 = 59;
506 pub const IPV6_RECVPATHMTU: u32 = 60;
507 pub const IPV6_PATHMTU: u32 = 61;
508 pub const IPV6_DONTFRAG: u32 = 62;
509 pub const IPV6_RECVTCLASS: u32 = 66;
510 pub const IPV6_TCLASS: u32 = 67;
511 pub const IPV6_AUTOFLOWLABEL: u32 = 70;
512 pub const IPV6_ADDR_PREFERENCES: u32 = 72;
513 pub const IPV6_MINHOPCOUNT: u32 = 73;
514 pub const IPV6_ORIGDSTADDR: u32 = 74;
515 pub const IPV6_RECVORIGDSTADDR: u32 = 74;
516 pub const IPV6_TRANSPARENT: u32 = 75;
517 pub const IPV6_UNICAST_IF: u32 = 76;
518 pub const IPV6_RECVFRAGSIZE: u32 = 77;
519 pub const IPV6_FREEBIND: u32 = 78;
520 pub const IPV6_ADD_MEMBERSHIP: u32 = 20;
521 pub const IPV6_DROP_MEMBERSHIP: u32 = 21;
522 pub const IPV6_RXHOPOPTS: u32 = 54;
523 pub const IPV6_RXDSTOPTS: u32 = 59;
524 pub const IPV6_PMTUDISC_DONT: u32 = 0;
525 pub const IPV6_PMTUDISC_WANT: u32 = 1;
526 pub const IPV6_PMTUDISC_DO: u32 = 2;
527 pub const IPV6_PMTUDISC_PROBE: u32 = 3;
528 pub const IPV6_PMTUDISC_INTERFACE: u32 = 4;
529 pub const IPV6_PMTUDISC_OMIT: u32 = 5;
530 pub const SOL_IPV6: u32 = 41;
531 pub const SOL_ICMPV6: u32 = 58;
532 pub const IPV6_RTHDR_LOOSE: u32 = 0;
533 pub const IPV6_RTHDR_STRICT: u32 = 1;
534 pub const IPV6_RTHDR_TYPE_0: u32 = 0;
535 pub const IN_CLASSA_NET: u32 = 4278190080;
536 pub const IN_CLASSA_NSHIFT: u32 = 24;
537 pub const IN_CLASSA_HOST: u32 = 16777215;
538 pub const IN_CLASSA_MAX: u32 = 128;
539 pub const IN_CLASSB_NET: u32 = 4294901760;
540 pub const IN_CLASSB_NSHIFT: u32 = 16;
541 pub const IN_CLASSB_HOST: u32 = 65535;
542 pub const IN_CLASSB_MAX: u32 = 65536;
543 pub const IN_CLASSC_NET: u32 = 4294967040;
544 pub const IN_CLASSC_NSHIFT: u32 = 8;
545 pub const IN_CLASSC_HOST: u32 = 255;
546 pub const IN_LOOPBACKNET: u32 = 127;
547 pub const INET_ADDRSTRLEN: u32 = 16;
548 pub const INET6_ADDRSTRLEN: u32 = 46;
549 pub const _ARPA_INET_H: u32 = 1;
550 pub const SLIRP_VERSION_STRING: &[u8; 6] = b"4.7.0\0";
551 pub const SLIRP_CONFIG_VERSION_MIN: u32 = 1;
552 pub const SLIRP_CONFIG_VERSION_MAX: u32 = 5;
553 pub const SLIRP_MAX_DNS_SERVERS: u32 = 4;
554 pub const SLIRP_HOSTFWD_UDP: u32 = 1;
555 pub const SLIRP_HOSTFWD_V6ONLY: u32 = 2;
556 pub type __u_char = ::std::os::raw::c_uchar;
557 pub type __u_short = ::std::os::raw::c_ushort;
558 pub type __u_int = ::std::os::raw::c_uint;
559 pub type __u_long = ::std::os::raw::c_ulong;
560 pub type __int8_t = ::std::os::raw::c_schar;
561 pub type __uint8_t = ::std::os::raw::c_uchar;
562 pub type __int16_t = ::std::os::raw::c_short;
563 pub type __uint16_t = ::std::os::raw::c_ushort;
564 pub type __int32_t = ::std::os::raw::c_int;
565 pub type __uint32_t = ::std::os::raw::c_uint;
566 pub type __int64_t = ::std::os::raw::c_long;
567 pub type __uint64_t = ::std::os::raw::c_ulong;
568 pub type __int_least8_t = __int8_t;
569 pub type __uint_least8_t = __uint8_t;
570 pub type __int_least16_t = __int16_t;
571 pub type __uint_least16_t = __uint16_t;
572 pub type __int_least32_t = __int32_t;
573 pub type __uint_least32_t = __uint32_t;
574 pub type __int_least64_t = __int64_t;
575 pub type __uint_least64_t = __uint64_t;
576 pub type __quad_t = ::std::os::raw::c_long;
577 pub type __u_quad_t = ::std::os::raw::c_ulong;
578 pub type __intmax_t = ::std::os::raw::c_long;
579 pub type __uintmax_t = ::std::os::raw::c_ulong;
580 pub type __dev_t = ::std::os::raw::c_ulong;
581 pub type __uid_t = ::std::os::raw::c_uint;
582 pub type __gid_t = ::std::os::raw::c_uint;
583 pub type __ino_t = ::std::os::raw::c_ulong;
584 pub type __ino64_t = ::std::os::raw::c_ulong;
585 pub type __mode_t = ::std::os::raw::c_uint;
586 pub type __nlink_t = ::std::os::raw::c_ulong;
587 pub type __off_t = ::std::os::raw::c_long;
588 pub type __off64_t = ::std::os::raw::c_long;
589 pub type __pid_t = ::std::os::raw::c_int;
590 #[repr(C)]
591 #[derive(Debug, Copy, Clone)]
592 pub struct __fsid_t {
593     pub __val: [::std::os::raw::c_int; 2usize],
594 }
595 #[test]
bindgen_test_layout___fsid_t()596 fn bindgen_test_layout___fsid_t() {
597     const UNINIT: ::std::mem::MaybeUninit<__fsid_t> = ::std::mem::MaybeUninit::uninit();
598     let ptr = UNINIT.as_ptr();
599     assert_eq!(
600         ::std::mem::size_of::<__fsid_t>(),
601         8usize,
602         concat!("Size of: ", stringify!(__fsid_t))
603     );
604     assert_eq!(
605         ::std::mem::align_of::<__fsid_t>(),
606         4usize,
607         concat!("Alignment of ", stringify!(__fsid_t))
608     );
609     assert_eq!(
610         unsafe { ::std::ptr::addr_of!((*ptr).__val) as usize - ptr as usize },
611         0usize,
612         concat!("Offset of field: ", stringify!(__fsid_t), "::", stringify!(__val))
613     );
614 }
615 pub type __clock_t = ::std::os::raw::c_long;
616 pub type __rlim_t = ::std::os::raw::c_ulong;
617 pub type __rlim64_t = ::std::os::raw::c_ulong;
618 pub type __id_t = ::std::os::raw::c_uint;
619 pub type __time_t = ::std::os::raw::c_long;
620 pub type __useconds_t = ::std::os::raw::c_uint;
621 pub type __suseconds_t = ::std::os::raw::c_long;
622 pub type __suseconds64_t = ::std::os::raw::c_long;
623 pub type __daddr_t = ::std::os::raw::c_int;
624 pub type __key_t = ::std::os::raw::c_int;
625 pub type __clockid_t = ::std::os::raw::c_int;
626 pub type __timer_t = *mut ::std::os::raw::c_void;
627 pub type __blksize_t = ::std::os::raw::c_long;
628 pub type __blkcnt_t = ::std::os::raw::c_long;
629 pub type __blkcnt64_t = ::std::os::raw::c_long;
630 pub type __fsblkcnt_t = ::std::os::raw::c_ulong;
631 pub type __fsblkcnt64_t = ::std::os::raw::c_ulong;
632 pub type __fsfilcnt_t = ::std::os::raw::c_ulong;
633 pub type __fsfilcnt64_t = ::std::os::raw::c_ulong;
634 pub type __fsword_t = ::std::os::raw::c_long;
635 pub type __ssize_t = ::std::os::raw::c_long;
636 pub type __syscall_slong_t = ::std::os::raw::c_long;
637 pub type __syscall_ulong_t = ::std::os::raw::c_ulong;
638 pub type __loff_t = __off64_t;
639 pub type __caddr_t = *mut ::std::os::raw::c_char;
640 pub type __intptr_t = ::std::os::raw::c_long;
641 pub type __socklen_t = ::std::os::raw::c_uint;
642 pub type __sig_atomic_t = ::std::os::raw::c_int;
643 pub type int_least8_t = __int_least8_t;
644 pub type int_least16_t = __int_least16_t;
645 pub type int_least32_t = __int_least32_t;
646 pub type int_least64_t = __int_least64_t;
647 pub type uint_least8_t = __uint_least8_t;
648 pub type uint_least16_t = __uint_least16_t;
649 pub type uint_least32_t = __uint_least32_t;
650 pub type uint_least64_t = __uint_least64_t;
651 pub type int_fast8_t = ::std::os::raw::c_schar;
652 pub type int_fast16_t = ::std::os::raw::c_long;
653 pub type int_fast32_t = ::std::os::raw::c_long;
654 pub type int_fast64_t = ::std::os::raw::c_long;
655 pub type uint_fast8_t = ::std::os::raw::c_uchar;
656 pub type uint_fast16_t = ::std::os::raw::c_ulong;
657 pub type uint_fast32_t = ::std::os::raw::c_ulong;
658 pub type uint_fast64_t = ::std::os::raw::c_ulong;
659 pub type intmax_t = __intmax_t;
660 pub type uintmax_t = __uintmax_t;
661 pub type u_char = __u_char;
662 pub type u_short = __u_short;
663 pub type u_int = __u_int;
664 pub type u_long = __u_long;
665 pub type quad_t = __quad_t;
666 pub type u_quad_t = __u_quad_t;
667 pub type fsid_t = __fsid_t;
668 pub type loff_t = __loff_t;
669 pub type ino_t = __ino_t;
670 pub type dev_t = __dev_t;
671 pub type gid_t = __gid_t;
672 pub type mode_t = __mode_t;
673 pub type nlink_t = __nlink_t;
674 pub type uid_t = __uid_t;
675 pub type off_t = __off_t;
676 pub type pid_t = __pid_t;
677 pub type id_t = __id_t;
678 pub type daddr_t = __daddr_t;
679 pub type caddr_t = __caddr_t;
680 pub type key_t = __key_t;
681 pub type clock_t = __clock_t;
682 pub type clockid_t = __clockid_t;
683 pub type time_t = __time_t;
684 pub type timer_t = __timer_t;
685 pub type ulong = ::std::os::raw::c_ulong;
686 pub type ushort = ::std::os::raw::c_ushort;
687 pub type uint = ::std::os::raw::c_uint;
688 pub type u_int8_t = __uint8_t;
689 pub type u_int16_t = __uint16_t;
690 pub type u_int32_t = __uint32_t;
691 pub type u_int64_t = __uint64_t;
692 pub type register_t = ::std::os::raw::c_long;
693 #[repr(C)]
694 #[derive(Debug, Copy, Clone)]
695 pub struct __sigset_t {
696     pub __val: [::std::os::raw::c_ulong; 16usize],
697 }
698 #[test]
bindgen_test_layout___sigset_t()699 fn bindgen_test_layout___sigset_t() {
700     const UNINIT: ::std::mem::MaybeUninit<__sigset_t> = ::std::mem::MaybeUninit::uninit();
701     let ptr = UNINIT.as_ptr();
702     assert_eq!(
703         ::std::mem::size_of::<__sigset_t>(),
704         128usize,
705         concat!("Size of: ", stringify!(__sigset_t))
706     );
707     assert_eq!(
708         ::std::mem::align_of::<__sigset_t>(),
709         8usize,
710         concat!("Alignment of ", stringify!(__sigset_t))
711     );
712     assert_eq!(
713         unsafe { ::std::ptr::addr_of!((*ptr).__val) as usize - ptr as usize },
714         0usize,
715         concat!("Offset of field: ", stringify!(__sigset_t), "::", stringify!(__val))
716     );
717 }
718 pub type sigset_t = __sigset_t;
719 #[repr(C)]
720 #[derive(Debug, Copy, Clone)]
721 pub struct timeval {
722     pub tv_sec: __time_t,
723     pub tv_usec: __suseconds_t,
724 }
725 #[test]
bindgen_test_layout_timeval()726 fn bindgen_test_layout_timeval() {
727     const UNINIT: ::std::mem::MaybeUninit<timeval> = ::std::mem::MaybeUninit::uninit();
728     let ptr = UNINIT.as_ptr();
729     assert_eq!(
730         ::std::mem::size_of::<timeval>(),
731         16usize,
732         concat!("Size of: ", stringify!(timeval))
733     );
734     assert_eq!(
735         ::std::mem::align_of::<timeval>(),
736         8usize,
737         concat!("Alignment of ", stringify!(timeval))
738     );
739     assert_eq!(
740         unsafe { ::std::ptr::addr_of!((*ptr).tv_sec) as usize - ptr as usize },
741         0usize,
742         concat!("Offset of field: ", stringify!(timeval), "::", stringify!(tv_sec))
743     );
744     assert_eq!(
745         unsafe { ::std::ptr::addr_of!((*ptr).tv_usec) as usize - ptr as usize },
746         8usize,
747         concat!("Offset of field: ", stringify!(timeval), "::", stringify!(tv_usec))
748     );
749 }
750 #[repr(C)]
751 #[derive(Debug, Copy, Clone)]
752 pub struct timespec {
753     pub tv_sec: __time_t,
754     pub tv_nsec: __syscall_slong_t,
755 }
756 #[test]
bindgen_test_layout_timespec()757 fn bindgen_test_layout_timespec() {
758     const UNINIT: ::std::mem::MaybeUninit<timespec> = ::std::mem::MaybeUninit::uninit();
759     let ptr = UNINIT.as_ptr();
760     assert_eq!(
761         ::std::mem::size_of::<timespec>(),
762         16usize,
763         concat!("Size of: ", stringify!(timespec))
764     );
765     assert_eq!(
766         ::std::mem::align_of::<timespec>(),
767         8usize,
768         concat!("Alignment of ", stringify!(timespec))
769     );
770     assert_eq!(
771         unsafe { ::std::ptr::addr_of!((*ptr).tv_sec) as usize - ptr as usize },
772         0usize,
773         concat!("Offset of field: ", stringify!(timespec), "::", stringify!(tv_sec))
774     );
775     assert_eq!(
776         unsafe { ::std::ptr::addr_of!((*ptr).tv_nsec) as usize - ptr as usize },
777         8usize,
778         concat!("Offset of field: ", stringify!(timespec), "::", stringify!(tv_nsec))
779     );
780 }
781 pub type suseconds_t = __suseconds_t;
782 pub type __fd_mask = ::std::os::raw::c_long;
783 #[repr(C)]
784 #[derive(Debug, Copy, Clone)]
785 pub struct fd_set {
786     pub __fds_bits: [__fd_mask; 16usize],
787 }
788 #[test]
bindgen_test_layout_fd_set()789 fn bindgen_test_layout_fd_set() {
790     const UNINIT: ::std::mem::MaybeUninit<fd_set> = ::std::mem::MaybeUninit::uninit();
791     let ptr = UNINIT.as_ptr();
792     assert_eq!(::std::mem::size_of::<fd_set>(), 128usize, concat!("Size of: ", stringify!(fd_set)));
793     assert_eq!(
794         ::std::mem::align_of::<fd_set>(),
795         8usize,
796         concat!("Alignment of ", stringify!(fd_set))
797     );
798     assert_eq!(
799         unsafe { ::std::ptr::addr_of!((*ptr).__fds_bits) as usize - ptr as usize },
800         0usize,
801         concat!("Offset of field: ", stringify!(fd_set), "::", stringify!(__fds_bits))
802     );
803 }
804 pub type fd_mask = __fd_mask;
805 extern "C" {
select( __nfds: ::std::os::raw::c_int, __readfds: *mut fd_set, __writefds: *mut fd_set, __exceptfds: *mut fd_set, __timeout: *mut timeval, ) -> ::std::os::raw::c_int806     pub fn select(
807         __nfds: ::std::os::raw::c_int,
808         __readfds: *mut fd_set,
809         __writefds: *mut fd_set,
810         __exceptfds: *mut fd_set,
811         __timeout: *mut timeval,
812     ) -> ::std::os::raw::c_int;
813 }
814 extern "C" {
pselect( __nfds: ::std::os::raw::c_int, __readfds: *mut fd_set, __writefds: *mut fd_set, __exceptfds: *mut fd_set, __timeout: *const timespec, __sigmask: *const __sigset_t, ) -> ::std::os::raw::c_int815     pub fn pselect(
816         __nfds: ::std::os::raw::c_int,
817         __readfds: *mut fd_set,
818         __writefds: *mut fd_set,
819         __exceptfds: *mut fd_set,
820         __timeout: *const timespec,
821         __sigmask: *const __sigset_t,
822     ) -> ::std::os::raw::c_int;
823 }
824 pub type blksize_t = __blksize_t;
825 pub type blkcnt_t = __blkcnt_t;
826 pub type fsblkcnt_t = __fsblkcnt_t;
827 pub type fsfilcnt_t = __fsfilcnt_t;
828 #[repr(C)]
829 #[derive(Copy, Clone)]
830 pub union __atomic_wide_counter {
831     pub __value64: ::std::os::raw::c_ulonglong,
832     pub __value32: __atomic_wide_counter__bindgen_ty_1,
833 }
834 #[repr(C)]
835 #[derive(Debug, Copy, Clone)]
836 pub struct __atomic_wide_counter__bindgen_ty_1 {
837     pub __low: ::std::os::raw::c_uint,
838     pub __high: ::std::os::raw::c_uint,
839 }
840 #[test]
bindgen_test_layout___atomic_wide_counter__bindgen_ty_1()841 fn bindgen_test_layout___atomic_wide_counter__bindgen_ty_1() {
842     const UNINIT: ::std::mem::MaybeUninit<__atomic_wide_counter__bindgen_ty_1> =
843         ::std::mem::MaybeUninit::uninit();
844     let ptr = UNINIT.as_ptr();
845     assert_eq!(
846         ::std::mem::size_of::<__atomic_wide_counter__bindgen_ty_1>(),
847         8usize,
848         concat!("Size of: ", stringify!(__atomic_wide_counter__bindgen_ty_1))
849     );
850     assert_eq!(
851         ::std::mem::align_of::<__atomic_wide_counter__bindgen_ty_1>(),
852         4usize,
853         concat!("Alignment of ", stringify!(__atomic_wide_counter__bindgen_ty_1))
854     );
855     assert_eq!(
856         unsafe { ::std::ptr::addr_of!((*ptr).__low) as usize - ptr as usize },
857         0usize,
858         concat!(
859             "Offset of field: ",
860             stringify!(__atomic_wide_counter__bindgen_ty_1),
861             "::",
862             stringify!(__low)
863         )
864     );
865     assert_eq!(
866         unsafe { ::std::ptr::addr_of!((*ptr).__high) as usize - ptr as usize },
867         4usize,
868         concat!(
869             "Offset of field: ",
870             stringify!(__atomic_wide_counter__bindgen_ty_1),
871             "::",
872             stringify!(__high)
873         )
874     );
875 }
876 #[test]
bindgen_test_layout___atomic_wide_counter()877 fn bindgen_test_layout___atomic_wide_counter() {
878     const UNINIT: ::std::mem::MaybeUninit<__atomic_wide_counter> =
879         ::std::mem::MaybeUninit::uninit();
880     let ptr = UNINIT.as_ptr();
881     assert_eq!(
882         ::std::mem::size_of::<__atomic_wide_counter>(),
883         8usize,
884         concat!("Size of: ", stringify!(__atomic_wide_counter))
885     );
886     assert_eq!(
887         ::std::mem::align_of::<__atomic_wide_counter>(),
888         8usize,
889         concat!("Alignment of ", stringify!(__atomic_wide_counter))
890     );
891     assert_eq!(
892         unsafe { ::std::ptr::addr_of!((*ptr).__value64) as usize - ptr as usize },
893         0usize,
894         concat!(
895             "Offset of field: ",
896             stringify!(__atomic_wide_counter),
897             "::",
898             stringify!(__value64)
899         )
900     );
901     assert_eq!(
902         unsafe { ::std::ptr::addr_of!((*ptr).__value32) as usize - ptr as usize },
903         0usize,
904         concat!(
905             "Offset of field: ",
906             stringify!(__atomic_wide_counter),
907             "::",
908             stringify!(__value32)
909         )
910     );
911 }
912 #[repr(C)]
913 #[derive(Debug, Copy, Clone)]
914 pub struct __pthread_internal_list {
915     pub __prev: *mut __pthread_internal_list,
916     pub __next: *mut __pthread_internal_list,
917 }
918 #[test]
bindgen_test_layout___pthread_internal_list()919 fn bindgen_test_layout___pthread_internal_list() {
920     const UNINIT: ::std::mem::MaybeUninit<__pthread_internal_list> =
921         ::std::mem::MaybeUninit::uninit();
922     let ptr = UNINIT.as_ptr();
923     assert_eq!(
924         ::std::mem::size_of::<__pthread_internal_list>(),
925         16usize,
926         concat!("Size of: ", stringify!(__pthread_internal_list))
927     );
928     assert_eq!(
929         ::std::mem::align_of::<__pthread_internal_list>(),
930         8usize,
931         concat!("Alignment of ", stringify!(__pthread_internal_list))
932     );
933     assert_eq!(
934         unsafe { ::std::ptr::addr_of!((*ptr).__prev) as usize - ptr as usize },
935         0usize,
936         concat!("Offset of field: ", stringify!(__pthread_internal_list), "::", stringify!(__prev))
937     );
938     assert_eq!(
939         unsafe { ::std::ptr::addr_of!((*ptr).__next) as usize - ptr as usize },
940         8usize,
941         concat!("Offset of field: ", stringify!(__pthread_internal_list), "::", stringify!(__next))
942     );
943 }
944 pub type __pthread_list_t = __pthread_internal_list;
945 #[repr(C)]
946 #[derive(Debug, Copy, Clone)]
947 pub struct __pthread_internal_slist {
948     pub __next: *mut __pthread_internal_slist,
949 }
950 #[test]
bindgen_test_layout___pthread_internal_slist()951 fn bindgen_test_layout___pthread_internal_slist() {
952     const UNINIT: ::std::mem::MaybeUninit<__pthread_internal_slist> =
953         ::std::mem::MaybeUninit::uninit();
954     let ptr = UNINIT.as_ptr();
955     assert_eq!(
956         ::std::mem::size_of::<__pthread_internal_slist>(),
957         8usize,
958         concat!("Size of: ", stringify!(__pthread_internal_slist))
959     );
960     assert_eq!(
961         ::std::mem::align_of::<__pthread_internal_slist>(),
962         8usize,
963         concat!("Alignment of ", stringify!(__pthread_internal_slist))
964     );
965     assert_eq!(
966         unsafe { ::std::ptr::addr_of!((*ptr).__next) as usize - ptr as usize },
967         0usize,
968         concat!(
969             "Offset of field: ",
970             stringify!(__pthread_internal_slist),
971             "::",
972             stringify!(__next)
973         )
974     );
975 }
976 pub type __pthread_slist_t = __pthread_internal_slist;
977 #[repr(C)]
978 #[derive(Debug, Copy, Clone)]
979 pub struct __pthread_mutex_s {
980     pub __lock: ::std::os::raw::c_int,
981     pub __count: ::std::os::raw::c_uint,
982     pub __owner: ::std::os::raw::c_int,
983     pub __nusers: ::std::os::raw::c_uint,
984     pub __kind: ::std::os::raw::c_int,
985     pub __spins: ::std::os::raw::c_short,
986     pub __elision: ::std::os::raw::c_short,
987     pub __list: __pthread_list_t,
988 }
989 #[test]
bindgen_test_layout___pthread_mutex_s()990 fn bindgen_test_layout___pthread_mutex_s() {
991     const UNINIT: ::std::mem::MaybeUninit<__pthread_mutex_s> = ::std::mem::MaybeUninit::uninit();
992     let ptr = UNINIT.as_ptr();
993     assert_eq!(
994         ::std::mem::size_of::<__pthread_mutex_s>(),
995         40usize,
996         concat!("Size of: ", stringify!(__pthread_mutex_s))
997     );
998     assert_eq!(
999         ::std::mem::align_of::<__pthread_mutex_s>(),
1000         8usize,
1001         concat!("Alignment of ", stringify!(__pthread_mutex_s))
1002     );
1003     assert_eq!(
1004         unsafe { ::std::ptr::addr_of!((*ptr).__lock) as usize - ptr as usize },
1005         0usize,
1006         concat!("Offset of field: ", stringify!(__pthread_mutex_s), "::", stringify!(__lock))
1007     );
1008     assert_eq!(
1009         unsafe { ::std::ptr::addr_of!((*ptr).__count) as usize - ptr as usize },
1010         4usize,
1011         concat!("Offset of field: ", stringify!(__pthread_mutex_s), "::", stringify!(__count))
1012     );
1013     assert_eq!(
1014         unsafe { ::std::ptr::addr_of!((*ptr).__owner) as usize - ptr as usize },
1015         8usize,
1016         concat!("Offset of field: ", stringify!(__pthread_mutex_s), "::", stringify!(__owner))
1017     );
1018     assert_eq!(
1019         unsafe { ::std::ptr::addr_of!((*ptr).__nusers) as usize - ptr as usize },
1020         12usize,
1021         concat!("Offset of field: ", stringify!(__pthread_mutex_s), "::", stringify!(__nusers))
1022     );
1023     assert_eq!(
1024         unsafe { ::std::ptr::addr_of!((*ptr).__kind) as usize - ptr as usize },
1025         16usize,
1026         concat!("Offset of field: ", stringify!(__pthread_mutex_s), "::", stringify!(__kind))
1027     );
1028     assert_eq!(
1029         unsafe { ::std::ptr::addr_of!((*ptr).__spins) as usize - ptr as usize },
1030         20usize,
1031         concat!("Offset of field: ", stringify!(__pthread_mutex_s), "::", stringify!(__spins))
1032     );
1033     assert_eq!(
1034         unsafe { ::std::ptr::addr_of!((*ptr).__elision) as usize - ptr as usize },
1035         22usize,
1036         concat!("Offset of field: ", stringify!(__pthread_mutex_s), "::", stringify!(__elision))
1037     );
1038     assert_eq!(
1039         unsafe { ::std::ptr::addr_of!((*ptr).__list) as usize - ptr as usize },
1040         24usize,
1041         concat!("Offset of field: ", stringify!(__pthread_mutex_s), "::", stringify!(__list))
1042     );
1043 }
1044 #[repr(C)]
1045 #[derive(Debug, Copy, Clone)]
1046 pub struct __pthread_rwlock_arch_t {
1047     pub __readers: ::std::os::raw::c_uint,
1048     pub __writers: ::std::os::raw::c_uint,
1049     pub __wrphase_futex: ::std::os::raw::c_uint,
1050     pub __writers_futex: ::std::os::raw::c_uint,
1051     pub __pad3: ::std::os::raw::c_uint,
1052     pub __pad4: ::std::os::raw::c_uint,
1053     pub __cur_writer: ::std::os::raw::c_int,
1054     pub __shared: ::std::os::raw::c_int,
1055     pub __rwelision: ::std::os::raw::c_schar,
1056     pub __pad1: [::std::os::raw::c_uchar; 7usize],
1057     pub __pad2: ::std::os::raw::c_ulong,
1058     pub __flags: ::std::os::raw::c_uint,
1059 }
1060 #[test]
bindgen_test_layout___pthread_rwlock_arch_t()1061 fn bindgen_test_layout___pthread_rwlock_arch_t() {
1062     const UNINIT: ::std::mem::MaybeUninit<__pthread_rwlock_arch_t> =
1063         ::std::mem::MaybeUninit::uninit();
1064     let ptr = UNINIT.as_ptr();
1065     assert_eq!(
1066         ::std::mem::size_of::<__pthread_rwlock_arch_t>(),
1067         56usize,
1068         concat!("Size of: ", stringify!(__pthread_rwlock_arch_t))
1069     );
1070     assert_eq!(
1071         ::std::mem::align_of::<__pthread_rwlock_arch_t>(),
1072         8usize,
1073         concat!("Alignment of ", stringify!(__pthread_rwlock_arch_t))
1074     );
1075     assert_eq!(
1076         unsafe { ::std::ptr::addr_of!((*ptr).__readers) as usize - ptr as usize },
1077         0usize,
1078         concat!(
1079             "Offset of field: ",
1080             stringify!(__pthread_rwlock_arch_t),
1081             "::",
1082             stringify!(__readers)
1083         )
1084     );
1085     assert_eq!(
1086         unsafe { ::std::ptr::addr_of!((*ptr).__writers) as usize - ptr as usize },
1087         4usize,
1088         concat!(
1089             "Offset of field: ",
1090             stringify!(__pthread_rwlock_arch_t),
1091             "::",
1092             stringify!(__writers)
1093         )
1094     );
1095     assert_eq!(
1096         unsafe { ::std::ptr::addr_of!((*ptr).__wrphase_futex) as usize - ptr as usize },
1097         8usize,
1098         concat!(
1099             "Offset of field: ",
1100             stringify!(__pthread_rwlock_arch_t),
1101             "::",
1102             stringify!(__wrphase_futex)
1103         )
1104     );
1105     assert_eq!(
1106         unsafe { ::std::ptr::addr_of!((*ptr).__writers_futex) as usize - ptr as usize },
1107         12usize,
1108         concat!(
1109             "Offset of field: ",
1110             stringify!(__pthread_rwlock_arch_t),
1111             "::",
1112             stringify!(__writers_futex)
1113         )
1114     );
1115     assert_eq!(
1116         unsafe { ::std::ptr::addr_of!((*ptr).__pad3) as usize - ptr as usize },
1117         16usize,
1118         concat!("Offset of field: ", stringify!(__pthread_rwlock_arch_t), "::", stringify!(__pad3))
1119     );
1120     assert_eq!(
1121         unsafe { ::std::ptr::addr_of!((*ptr).__pad4) as usize - ptr as usize },
1122         20usize,
1123         concat!("Offset of field: ", stringify!(__pthread_rwlock_arch_t), "::", stringify!(__pad4))
1124     );
1125     assert_eq!(
1126         unsafe { ::std::ptr::addr_of!((*ptr).__cur_writer) as usize - ptr as usize },
1127         24usize,
1128         concat!(
1129             "Offset of field: ",
1130             stringify!(__pthread_rwlock_arch_t),
1131             "::",
1132             stringify!(__cur_writer)
1133         )
1134     );
1135     assert_eq!(
1136         unsafe { ::std::ptr::addr_of!((*ptr).__shared) as usize - ptr as usize },
1137         28usize,
1138         concat!(
1139             "Offset of field: ",
1140             stringify!(__pthread_rwlock_arch_t),
1141             "::",
1142             stringify!(__shared)
1143         )
1144     );
1145     assert_eq!(
1146         unsafe { ::std::ptr::addr_of!((*ptr).__rwelision) as usize - ptr as usize },
1147         32usize,
1148         concat!(
1149             "Offset of field: ",
1150             stringify!(__pthread_rwlock_arch_t),
1151             "::",
1152             stringify!(__rwelision)
1153         )
1154     );
1155     assert_eq!(
1156         unsafe { ::std::ptr::addr_of!((*ptr).__pad1) as usize - ptr as usize },
1157         33usize,
1158         concat!("Offset of field: ", stringify!(__pthread_rwlock_arch_t), "::", stringify!(__pad1))
1159     );
1160     assert_eq!(
1161         unsafe { ::std::ptr::addr_of!((*ptr).__pad2) as usize - ptr as usize },
1162         40usize,
1163         concat!("Offset of field: ", stringify!(__pthread_rwlock_arch_t), "::", stringify!(__pad2))
1164     );
1165     assert_eq!(
1166         unsafe { ::std::ptr::addr_of!((*ptr).__flags) as usize - ptr as usize },
1167         48usize,
1168         concat!(
1169             "Offset of field: ",
1170             stringify!(__pthread_rwlock_arch_t),
1171             "::",
1172             stringify!(__flags)
1173         )
1174     );
1175 }
1176 #[repr(C)]
1177 #[derive(Copy, Clone)]
1178 pub struct __pthread_cond_s {
1179     pub __wseq: __atomic_wide_counter,
1180     pub __g1_start: __atomic_wide_counter,
1181     pub __g_refs: [::std::os::raw::c_uint; 2usize],
1182     pub __g_size: [::std::os::raw::c_uint; 2usize],
1183     pub __g1_orig_size: ::std::os::raw::c_uint,
1184     pub __wrefs: ::std::os::raw::c_uint,
1185     pub __g_signals: [::std::os::raw::c_uint; 2usize],
1186 }
1187 #[test]
bindgen_test_layout___pthread_cond_s()1188 fn bindgen_test_layout___pthread_cond_s() {
1189     const UNINIT: ::std::mem::MaybeUninit<__pthread_cond_s> = ::std::mem::MaybeUninit::uninit();
1190     let ptr = UNINIT.as_ptr();
1191     assert_eq!(
1192         ::std::mem::size_of::<__pthread_cond_s>(),
1193         48usize,
1194         concat!("Size of: ", stringify!(__pthread_cond_s))
1195     );
1196     assert_eq!(
1197         ::std::mem::align_of::<__pthread_cond_s>(),
1198         8usize,
1199         concat!("Alignment of ", stringify!(__pthread_cond_s))
1200     );
1201     assert_eq!(
1202         unsafe { ::std::ptr::addr_of!((*ptr).__wseq) as usize - ptr as usize },
1203         0usize,
1204         concat!("Offset of field: ", stringify!(__pthread_cond_s), "::", stringify!(__wseq))
1205     );
1206     assert_eq!(
1207         unsafe { ::std::ptr::addr_of!((*ptr).__g1_start) as usize - ptr as usize },
1208         8usize,
1209         concat!("Offset of field: ", stringify!(__pthread_cond_s), "::", stringify!(__g1_start))
1210     );
1211     assert_eq!(
1212         unsafe { ::std::ptr::addr_of!((*ptr).__g_refs) as usize - ptr as usize },
1213         16usize,
1214         concat!("Offset of field: ", stringify!(__pthread_cond_s), "::", stringify!(__g_refs))
1215     );
1216     assert_eq!(
1217         unsafe { ::std::ptr::addr_of!((*ptr).__g_size) as usize - ptr as usize },
1218         24usize,
1219         concat!("Offset of field: ", stringify!(__pthread_cond_s), "::", stringify!(__g_size))
1220     );
1221     assert_eq!(
1222         unsafe { ::std::ptr::addr_of!((*ptr).__g1_orig_size) as usize - ptr as usize },
1223         32usize,
1224         concat!(
1225             "Offset of field: ",
1226             stringify!(__pthread_cond_s),
1227             "::",
1228             stringify!(__g1_orig_size)
1229         )
1230     );
1231     assert_eq!(
1232         unsafe { ::std::ptr::addr_of!((*ptr).__wrefs) as usize - ptr as usize },
1233         36usize,
1234         concat!("Offset of field: ", stringify!(__pthread_cond_s), "::", stringify!(__wrefs))
1235     );
1236     assert_eq!(
1237         unsafe { ::std::ptr::addr_of!((*ptr).__g_signals) as usize - ptr as usize },
1238         40usize,
1239         concat!("Offset of field: ", stringify!(__pthread_cond_s), "::", stringify!(__g_signals))
1240     );
1241 }
1242 pub type __tss_t = ::std::os::raw::c_uint;
1243 pub type __thrd_t = ::std::os::raw::c_ulong;
1244 #[repr(C)]
1245 #[derive(Debug, Copy, Clone)]
1246 pub struct __once_flag {
1247     pub __data: ::std::os::raw::c_int,
1248 }
1249 #[test]
bindgen_test_layout___once_flag()1250 fn bindgen_test_layout___once_flag() {
1251     const UNINIT: ::std::mem::MaybeUninit<__once_flag> = ::std::mem::MaybeUninit::uninit();
1252     let ptr = UNINIT.as_ptr();
1253     assert_eq!(
1254         ::std::mem::size_of::<__once_flag>(),
1255         4usize,
1256         concat!("Size of: ", stringify!(__once_flag))
1257     );
1258     assert_eq!(
1259         ::std::mem::align_of::<__once_flag>(),
1260         4usize,
1261         concat!("Alignment of ", stringify!(__once_flag))
1262     );
1263     assert_eq!(
1264         unsafe { ::std::ptr::addr_of!((*ptr).__data) as usize - ptr as usize },
1265         0usize,
1266         concat!("Offset of field: ", stringify!(__once_flag), "::", stringify!(__data))
1267     );
1268 }
1269 pub type pthread_t = ::std::os::raw::c_ulong;
1270 #[repr(C)]
1271 #[derive(Copy, Clone)]
1272 pub union pthread_mutexattr_t {
1273     pub __size: [::std::os::raw::c_char; 4usize],
1274     pub __align: ::std::os::raw::c_int,
1275 }
1276 #[test]
bindgen_test_layout_pthread_mutexattr_t()1277 fn bindgen_test_layout_pthread_mutexattr_t() {
1278     const UNINIT: ::std::mem::MaybeUninit<pthread_mutexattr_t> = ::std::mem::MaybeUninit::uninit();
1279     let ptr = UNINIT.as_ptr();
1280     assert_eq!(
1281         ::std::mem::size_of::<pthread_mutexattr_t>(),
1282         4usize,
1283         concat!("Size of: ", stringify!(pthread_mutexattr_t))
1284     );
1285     assert_eq!(
1286         ::std::mem::align_of::<pthread_mutexattr_t>(),
1287         4usize,
1288         concat!("Alignment of ", stringify!(pthread_mutexattr_t))
1289     );
1290     assert_eq!(
1291         unsafe { ::std::ptr::addr_of!((*ptr).__size) as usize - ptr as usize },
1292         0usize,
1293         concat!("Offset of field: ", stringify!(pthread_mutexattr_t), "::", stringify!(__size))
1294     );
1295     assert_eq!(
1296         unsafe { ::std::ptr::addr_of!((*ptr).__align) as usize - ptr as usize },
1297         0usize,
1298         concat!("Offset of field: ", stringify!(pthread_mutexattr_t), "::", stringify!(__align))
1299     );
1300 }
1301 #[repr(C)]
1302 #[derive(Copy, Clone)]
1303 pub union pthread_condattr_t {
1304     pub __size: [::std::os::raw::c_char; 4usize],
1305     pub __align: ::std::os::raw::c_int,
1306 }
1307 #[test]
bindgen_test_layout_pthread_condattr_t()1308 fn bindgen_test_layout_pthread_condattr_t() {
1309     const UNINIT: ::std::mem::MaybeUninit<pthread_condattr_t> = ::std::mem::MaybeUninit::uninit();
1310     let ptr = UNINIT.as_ptr();
1311     assert_eq!(
1312         ::std::mem::size_of::<pthread_condattr_t>(),
1313         4usize,
1314         concat!("Size of: ", stringify!(pthread_condattr_t))
1315     );
1316     assert_eq!(
1317         ::std::mem::align_of::<pthread_condattr_t>(),
1318         4usize,
1319         concat!("Alignment of ", stringify!(pthread_condattr_t))
1320     );
1321     assert_eq!(
1322         unsafe { ::std::ptr::addr_of!((*ptr).__size) as usize - ptr as usize },
1323         0usize,
1324         concat!("Offset of field: ", stringify!(pthread_condattr_t), "::", stringify!(__size))
1325     );
1326     assert_eq!(
1327         unsafe { ::std::ptr::addr_of!((*ptr).__align) as usize - ptr as usize },
1328         0usize,
1329         concat!("Offset of field: ", stringify!(pthread_condattr_t), "::", stringify!(__align))
1330     );
1331 }
1332 pub type pthread_key_t = ::std::os::raw::c_uint;
1333 pub type pthread_once_t = ::std::os::raw::c_int;
1334 #[repr(C)]
1335 #[derive(Copy, Clone)]
1336 pub union pthread_attr_t {
1337     pub __size: [::std::os::raw::c_char; 56usize],
1338     pub __align: ::std::os::raw::c_long,
1339 }
1340 #[test]
bindgen_test_layout_pthread_attr_t()1341 fn bindgen_test_layout_pthread_attr_t() {
1342     const UNINIT: ::std::mem::MaybeUninit<pthread_attr_t> = ::std::mem::MaybeUninit::uninit();
1343     let ptr = UNINIT.as_ptr();
1344     assert_eq!(
1345         ::std::mem::size_of::<pthread_attr_t>(),
1346         56usize,
1347         concat!("Size of: ", stringify!(pthread_attr_t))
1348     );
1349     assert_eq!(
1350         ::std::mem::align_of::<pthread_attr_t>(),
1351         8usize,
1352         concat!("Alignment of ", stringify!(pthread_attr_t))
1353     );
1354     assert_eq!(
1355         unsafe { ::std::ptr::addr_of!((*ptr).__size) as usize - ptr as usize },
1356         0usize,
1357         concat!("Offset of field: ", stringify!(pthread_attr_t), "::", stringify!(__size))
1358     );
1359     assert_eq!(
1360         unsafe { ::std::ptr::addr_of!((*ptr).__align) as usize - ptr as usize },
1361         0usize,
1362         concat!("Offset of field: ", stringify!(pthread_attr_t), "::", stringify!(__align))
1363     );
1364 }
1365 #[repr(C)]
1366 #[derive(Copy, Clone)]
1367 pub union pthread_mutex_t {
1368     pub __data: __pthread_mutex_s,
1369     pub __size: [::std::os::raw::c_char; 40usize],
1370     pub __align: ::std::os::raw::c_long,
1371 }
1372 #[test]
bindgen_test_layout_pthread_mutex_t()1373 fn bindgen_test_layout_pthread_mutex_t() {
1374     const UNINIT: ::std::mem::MaybeUninit<pthread_mutex_t> = ::std::mem::MaybeUninit::uninit();
1375     let ptr = UNINIT.as_ptr();
1376     assert_eq!(
1377         ::std::mem::size_of::<pthread_mutex_t>(),
1378         40usize,
1379         concat!("Size of: ", stringify!(pthread_mutex_t))
1380     );
1381     assert_eq!(
1382         ::std::mem::align_of::<pthread_mutex_t>(),
1383         8usize,
1384         concat!("Alignment of ", stringify!(pthread_mutex_t))
1385     );
1386     assert_eq!(
1387         unsafe { ::std::ptr::addr_of!((*ptr).__data) as usize - ptr as usize },
1388         0usize,
1389         concat!("Offset of field: ", stringify!(pthread_mutex_t), "::", stringify!(__data))
1390     );
1391     assert_eq!(
1392         unsafe { ::std::ptr::addr_of!((*ptr).__size) as usize - ptr as usize },
1393         0usize,
1394         concat!("Offset of field: ", stringify!(pthread_mutex_t), "::", stringify!(__size))
1395     );
1396     assert_eq!(
1397         unsafe { ::std::ptr::addr_of!((*ptr).__align) as usize - ptr as usize },
1398         0usize,
1399         concat!("Offset of field: ", stringify!(pthread_mutex_t), "::", stringify!(__align))
1400     );
1401 }
1402 #[repr(C)]
1403 #[derive(Copy, Clone)]
1404 pub union pthread_cond_t {
1405     pub __data: __pthread_cond_s,
1406     pub __size: [::std::os::raw::c_char; 48usize],
1407     pub __align: ::std::os::raw::c_longlong,
1408 }
1409 #[test]
bindgen_test_layout_pthread_cond_t()1410 fn bindgen_test_layout_pthread_cond_t() {
1411     const UNINIT: ::std::mem::MaybeUninit<pthread_cond_t> = ::std::mem::MaybeUninit::uninit();
1412     let ptr = UNINIT.as_ptr();
1413     assert_eq!(
1414         ::std::mem::size_of::<pthread_cond_t>(),
1415         48usize,
1416         concat!("Size of: ", stringify!(pthread_cond_t))
1417     );
1418     assert_eq!(
1419         ::std::mem::align_of::<pthread_cond_t>(),
1420         8usize,
1421         concat!("Alignment of ", stringify!(pthread_cond_t))
1422     );
1423     assert_eq!(
1424         unsafe { ::std::ptr::addr_of!((*ptr).__data) as usize - ptr as usize },
1425         0usize,
1426         concat!("Offset of field: ", stringify!(pthread_cond_t), "::", stringify!(__data))
1427     );
1428     assert_eq!(
1429         unsafe { ::std::ptr::addr_of!((*ptr).__size) as usize - ptr as usize },
1430         0usize,
1431         concat!("Offset of field: ", stringify!(pthread_cond_t), "::", stringify!(__size))
1432     );
1433     assert_eq!(
1434         unsafe { ::std::ptr::addr_of!((*ptr).__align) as usize - ptr as usize },
1435         0usize,
1436         concat!("Offset of field: ", stringify!(pthread_cond_t), "::", stringify!(__align))
1437     );
1438 }
1439 #[repr(C)]
1440 #[derive(Copy, Clone)]
1441 pub union pthread_rwlock_t {
1442     pub __data: __pthread_rwlock_arch_t,
1443     pub __size: [::std::os::raw::c_char; 56usize],
1444     pub __align: ::std::os::raw::c_long,
1445 }
1446 #[test]
bindgen_test_layout_pthread_rwlock_t()1447 fn bindgen_test_layout_pthread_rwlock_t() {
1448     const UNINIT: ::std::mem::MaybeUninit<pthread_rwlock_t> = ::std::mem::MaybeUninit::uninit();
1449     let ptr = UNINIT.as_ptr();
1450     assert_eq!(
1451         ::std::mem::size_of::<pthread_rwlock_t>(),
1452         56usize,
1453         concat!("Size of: ", stringify!(pthread_rwlock_t))
1454     );
1455     assert_eq!(
1456         ::std::mem::align_of::<pthread_rwlock_t>(),
1457         8usize,
1458         concat!("Alignment of ", stringify!(pthread_rwlock_t))
1459     );
1460     assert_eq!(
1461         unsafe { ::std::ptr::addr_of!((*ptr).__data) as usize - ptr as usize },
1462         0usize,
1463         concat!("Offset of field: ", stringify!(pthread_rwlock_t), "::", stringify!(__data))
1464     );
1465     assert_eq!(
1466         unsafe { ::std::ptr::addr_of!((*ptr).__size) as usize - ptr as usize },
1467         0usize,
1468         concat!("Offset of field: ", stringify!(pthread_rwlock_t), "::", stringify!(__size))
1469     );
1470     assert_eq!(
1471         unsafe { ::std::ptr::addr_of!((*ptr).__align) as usize - ptr as usize },
1472         0usize,
1473         concat!("Offset of field: ", stringify!(pthread_rwlock_t), "::", stringify!(__align))
1474     );
1475 }
1476 #[repr(C)]
1477 #[derive(Copy, Clone)]
1478 pub union pthread_rwlockattr_t {
1479     pub __size: [::std::os::raw::c_char; 8usize],
1480     pub __align: ::std::os::raw::c_long,
1481 }
1482 #[test]
bindgen_test_layout_pthread_rwlockattr_t()1483 fn bindgen_test_layout_pthread_rwlockattr_t() {
1484     const UNINIT: ::std::mem::MaybeUninit<pthread_rwlockattr_t> = ::std::mem::MaybeUninit::uninit();
1485     let ptr = UNINIT.as_ptr();
1486     assert_eq!(
1487         ::std::mem::size_of::<pthread_rwlockattr_t>(),
1488         8usize,
1489         concat!("Size of: ", stringify!(pthread_rwlockattr_t))
1490     );
1491     assert_eq!(
1492         ::std::mem::align_of::<pthread_rwlockattr_t>(),
1493         8usize,
1494         concat!("Alignment of ", stringify!(pthread_rwlockattr_t))
1495     );
1496     assert_eq!(
1497         unsafe { ::std::ptr::addr_of!((*ptr).__size) as usize - ptr as usize },
1498         0usize,
1499         concat!("Offset of field: ", stringify!(pthread_rwlockattr_t), "::", stringify!(__size))
1500     );
1501     assert_eq!(
1502         unsafe { ::std::ptr::addr_of!((*ptr).__align) as usize - ptr as usize },
1503         0usize,
1504         concat!("Offset of field: ", stringify!(pthread_rwlockattr_t), "::", stringify!(__align))
1505     );
1506 }
1507 pub type pthread_spinlock_t = ::std::os::raw::c_int;
1508 #[repr(C)]
1509 #[derive(Copy, Clone)]
1510 pub union pthread_barrier_t {
1511     pub __size: [::std::os::raw::c_char; 32usize],
1512     pub __align: ::std::os::raw::c_long,
1513 }
1514 #[test]
bindgen_test_layout_pthread_barrier_t()1515 fn bindgen_test_layout_pthread_barrier_t() {
1516     const UNINIT: ::std::mem::MaybeUninit<pthread_barrier_t> = ::std::mem::MaybeUninit::uninit();
1517     let ptr = UNINIT.as_ptr();
1518     assert_eq!(
1519         ::std::mem::size_of::<pthread_barrier_t>(),
1520         32usize,
1521         concat!("Size of: ", stringify!(pthread_barrier_t))
1522     );
1523     assert_eq!(
1524         ::std::mem::align_of::<pthread_barrier_t>(),
1525         8usize,
1526         concat!("Alignment of ", stringify!(pthread_barrier_t))
1527     );
1528     assert_eq!(
1529         unsafe { ::std::ptr::addr_of!((*ptr).__size) as usize - ptr as usize },
1530         0usize,
1531         concat!("Offset of field: ", stringify!(pthread_barrier_t), "::", stringify!(__size))
1532     );
1533     assert_eq!(
1534         unsafe { ::std::ptr::addr_of!((*ptr).__align) as usize - ptr as usize },
1535         0usize,
1536         concat!("Offset of field: ", stringify!(pthread_barrier_t), "::", stringify!(__align))
1537     );
1538 }
1539 #[repr(C)]
1540 #[derive(Copy, Clone)]
1541 pub union pthread_barrierattr_t {
1542     pub __size: [::std::os::raw::c_char; 4usize],
1543     pub __align: ::std::os::raw::c_int,
1544 }
1545 #[test]
bindgen_test_layout_pthread_barrierattr_t()1546 fn bindgen_test_layout_pthread_barrierattr_t() {
1547     const UNINIT: ::std::mem::MaybeUninit<pthread_barrierattr_t> =
1548         ::std::mem::MaybeUninit::uninit();
1549     let ptr = UNINIT.as_ptr();
1550     assert_eq!(
1551         ::std::mem::size_of::<pthread_barrierattr_t>(),
1552         4usize,
1553         concat!("Size of: ", stringify!(pthread_barrierattr_t))
1554     );
1555     assert_eq!(
1556         ::std::mem::align_of::<pthread_barrierattr_t>(),
1557         4usize,
1558         concat!("Alignment of ", stringify!(pthread_barrierattr_t))
1559     );
1560     assert_eq!(
1561         unsafe { ::std::ptr::addr_of!((*ptr).__size) as usize - ptr as usize },
1562         0usize,
1563         concat!("Offset of field: ", stringify!(pthread_barrierattr_t), "::", stringify!(__size))
1564     );
1565     assert_eq!(
1566         unsafe { ::std::ptr::addr_of!((*ptr).__align) as usize - ptr as usize },
1567         0usize,
1568         concat!("Offset of field: ", stringify!(pthread_barrierattr_t), "::", stringify!(__align))
1569     );
1570 }
1571 pub type slirp_ssize_t = isize;
1572 #[repr(C)]
1573 #[derive(Debug, Copy, Clone)]
1574 pub struct iovec {
1575     pub iov_base: *mut ::std::os::raw::c_void,
1576     pub iov_len: usize,
1577 }
1578 #[test]
bindgen_test_layout_iovec()1579 fn bindgen_test_layout_iovec() {
1580     const UNINIT: ::std::mem::MaybeUninit<iovec> = ::std::mem::MaybeUninit::uninit();
1581     let ptr = UNINIT.as_ptr();
1582     assert_eq!(::std::mem::size_of::<iovec>(), 16usize, concat!("Size of: ", stringify!(iovec)));
1583     assert_eq!(
1584         ::std::mem::align_of::<iovec>(),
1585         8usize,
1586         concat!("Alignment of ", stringify!(iovec))
1587     );
1588     assert_eq!(
1589         unsafe { ::std::ptr::addr_of!((*ptr).iov_base) as usize - ptr as usize },
1590         0usize,
1591         concat!("Offset of field: ", stringify!(iovec), "::", stringify!(iov_base))
1592     );
1593     assert_eq!(
1594         unsafe { ::std::ptr::addr_of!((*ptr).iov_len) as usize - ptr as usize },
1595         8usize,
1596         concat!("Offset of field: ", stringify!(iovec), "::", stringify!(iov_len))
1597     );
1598 }
1599 pub type socklen_t = __socklen_t;
1600 pub const __socket_type_SOCK_STREAM: __socket_type = 1;
1601 pub const __socket_type_SOCK_DGRAM: __socket_type = 2;
1602 pub const __socket_type_SOCK_RAW: __socket_type = 3;
1603 pub const __socket_type_SOCK_RDM: __socket_type = 4;
1604 pub const __socket_type_SOCK_SEQPACKET: __socket_type = 5;
1605 pub const __socket_type_SOCK_DCCP: __socket_type = 6;
1606 pub const __socket_type_SOCK_PACKET: __socket_type = 10;
1607 pub const __socket_type_SOCK_CLOEXEC: __socket_type = 524288;
1608 pub const __socket_type_SOCK_NONBLOCK: __socket_type = 2048;
1609 pub type __socket_type = ::std::os::raw::c_uint;
1610 pub type sa_family_t = ::std::os::raw::c_ushort;
1611 #[repr(C)]
1612 #[derive(Debug, Copy, Clone)]
1613 pub struct sockaddr {
1614     pub sa_family: sa_family_t,
1615     pub sa_data: [::std::os::raw::c_char; 14usize],
1616 }
1617 #[test]
bindgen_test_layout_sockaddr()1618 fn bindgen_test_layout_sockaddr() {
1619     const UNINIT: ::std::mem::MaybeUninit<sockaddr> = ::std::mem::MaybeUninit::uninit();
1620     let ptr = UNINIT.as_ptr();
1621     assert_eq!(
1622         ::std::mem::size_of::<sockaddr>(),
1623         16usize,
1624         concat!("Size of: ", stringify!(sockaddr))
1625     );
1626     assert_eq!(
1627         ::std::mem::align_of::<sockaddr>(),
1628         2usize,
1629         concat!("Alignment of ", stringify!(sockaddr))
1630     );
1631     assert_eq!(
1632         unsafe { ::std::ptr::addr_of!((*ptr).sa_family) as usize - ptr as usize },
1633         0usize,
1634         concat!("Offset of field: ", stringify!(sockaddr), "::", stringify!(sa_family))
1635     );
1636     assert_eq!(
1637         unsafe { ::std::ptr::addr_of!((*ptr).sa_data) as usize - ptr as usize },
1638         2usize,
1639         concat!("Offset of field: ", stringify!(sockaddr), "::", stringify!(sa_data))
1640     );
1641 }
1642 #[repr(C)]
1643 #[derive(Debug, Copy, Clone)]
1644 pub struct sockaddr_storage {
1645     pub ss_family: sa_family_t,
1646     pub __ss_padding: [::std::os::raw::c_char; 118usize],
1647     pub __ss_align: ::std::os::raw::c_ulong,
1648 }
1649 #[test]
bindgen_test_layout_sockaddr_storage()1650 fn bindgen_test_layout_sockaddr_storage() {
1651     const UNINIT: ::std::mem::MaybeUninit<sockaddr_storage> = ::std::mem::MaybeUninit::uninit();
1652     let ptr = UNINIT.as_ptr();
1653     assert_eq!(
1654         ::std::mem::size_of::<sockaddr_storage>(),
1655         128usize,
1656         concat!("Size of: ", stringify!(sockaddr_storage))
1657     );
1658     assert_eq!(
1659         ::std::mem::align_of::<sockaddr_storage>(),
1660         8usize,
1661         concat!("Alignment of ", stringify!(sockaddr_storage))
1662     );
1663     assert_eq!(
1664         unsafe { ::std::ptr::addr_of!((*ptr).ss_family) as usize - ptr as usize },
1665         0usize,
1666         concat!("Offset of field: ", stringify!(sockaddr_storage), "::", stringify!(ss_family))
1667     );
1668     assert_eq!(
1669         unsafe { ::std::ptr::addr_of!((*ptr).__ss_padding) as usize - ptr as usize },
1670         2usize,
1671         concat!("Offset of field: ", stringify!(sockaddr_storage), "::", stringify!(__ss_padding))
1672     );
1673     assert_eq!(
1674         unsafe { ::std::ptr::addr_of!((*ptr).__ss_align) as usize - ptr as usize },
1675         120usize,
1676         concat!("Offset of field: ", stringify!(sockaddr_storage), "::", stringify!(__ss_align))
1677     );
1678 }
1679 pub const MSG_OOB: _bindgen_ty_1 = 1;
1680 pub const MSG_PEEK: _bindgen_ty_1 = 2;
1681 pub const MSG_DONTROUTE: _bindgen_ty_1 = 4;
1682 pub const MSG_CTRUNC: _bindgen_ty_1 = 8;
1683 pub const MSG_PROXY: _bindgen_ty_1 = 16;
1684 pub const MSG_TRUNC: _bindgen_ty_1 = 32;
1685 pub const MSG_DONTWAIT: _bindgen_ty_1 = 64;
1686 pub const MSG_EOR: _bindgen_ty_1 = 128;
1687 pub const MSG_WAITALL: _bindgen_ty_1 = 256;
1688 pub const MSG_FIN: _bindgen_ty_1 = 512;
1689 pub const MSG_SYN: _bindgen_ty_1 = 1024;
1690 pub const MSG_CONFIRM: _bindgen_ty_1 = 2048;
1691 pub const MSG_RST: _bindgen_ty_1 = 4096;
1692 pub const MSG_ERRQUEUE: _bindgen_ty_1 = 8192;
1693 pub const MSG_NOSIGNAL: _bindgen_ty_1 = 16384;
1694 pub const MSG_MORE: _bindgen_ty_1 = 32768;
1695 pub const MSG_WAITFORONE: _bindgen_ty_1 = 65536;
1696 pub const MSG_BATCH: _bindgen_ty_1 = 262144;
1697 pub const MSG_ZEROCOPY: _bindgen_ty_1 = 67108864;
1698 pub const MSG_FASTOPEN: _bindgen_ty_1 = 536870912;
1699 pub const MSG_CMSG_CLOEXEC: _bindgen_ty_1 = 1073741824;
1700 pub type _bindgen_ty_1 = ::std::os::raw::c_uint;
1701 #[repr(C)]
1702 #[derive(Debug, Copy, Clone)]
1703 pub struct msghdr {
1704     pub msg_name: *mut ::std::os::raw::c_void,
1705     pub msg_namelen: socklen_t,
1706     pub msg_iov: *mut iovec,
1707     pub msg_iovlen: usize,
1708     pub msg_control: *mut ::std::os::raw::c_void,
1709     pub msg_controllen: usize,
1710     pub msg_flags: ::std::os::raw::c_int,
1711 }
1712 #[test]
bindgen_test_layout_msghdr()1713 fn bindgen_test_layout_msghdr() {
1714     const UNINIT: ::std::mem::MaybeUninit<msghdr> = ::std::mem::MaybeUninit::uninit();
1715     let ptr = UNINIT.as_ptr();
1716     assert_eq!(::std::mem::size_of::<msghdr>(), 56usize, concat!("Size of: ", stringify!(msghdr)));
1717     assert_eq!(
1718         ::std::mem::align_of::<msghdr>(),
1719         8usize,
1720         concat!("Alignment of ", stringify!(msghdr))
1721     );
1722     assert_eq!(
1723         unsafe { ::std::ptr::addr_of!((*ptr).msg_name) as usize - ptr as usize },
1724         0usize,
1725         concat!("Offset of field: ", stringify!(msghdr), "::", stringify!(msg_name))
1726     );
1727     assert_eq!(
1728         unsafe { ::std::ptr::addr_of!((*ptr).msg_namelen) as usize - ptr as usize },
1729         8usize,
1730         concat!("Offset of field: ", stringify!(msghdr), "::", stringify!(msg_namelen))
1731     );
1732     assert_eq!(
1733         unsafe { ::std::ptr::addr_of!((*ptr).msg_iov) as usize - ptr as usize },
1734         16usize,
1735         concat!("Offset of field: ", stringify!(msghdr), "::", stringify!(msg_iov))
1736     );
1737     assert_eq!(
1738         unsafe { ::std::ptr::addr_of!((*ptr).msg_iovlen) as usize - ptr as usize },
1739         24usize,
1740         concat!("Offset of field: ", stringify!(msghdr), "::", stringify!(msg_iovlen))
1741     );
1742     assert_eq!(
1743         unsafe { ::std::ptr::addr_of!((*ptr).msg_control) as usize - ptr as usize },
1744         32usize,
1745         concat!("Offset of field: ", stringify!(msghdr), "::", stringify!(msg_control))
1746     );
1747     assert_eq!(
1748         unsafe { ::std::ptr::addr_of!((*ptr).msg_controllen) as usize - ptr as usize },
1749         40usize,
1750         concat!("Offset of field: ", stringify!(msghdr), "::", stringify!(msg_controllen))
1751     );
1752     assert_eq!(
1753         unsafe { ::std::ptr::addr_of!((*ptr).msg_flags) as usize - ptr as usize },
1754         48usize,
1755         concat!("Offset of field: ", stringify!(msghdr), "::", stringify!(msg_flags))
1756     );
1757 }
1758 #[repr(C)]
1759 #[derive(Debug)]
1760 pub struct cmsghdr {
1761     pub cmsg_len: usize,
1762     pub cmsg_level: ::std::os::raw::c_int,
1763     pub cmsg_type: ::std::os::raw::c_int,
1764     pub __cmsg_data: __IncompleteArrayField<::std::os::raw::c_uchar>,
1765 }
1766 #[test]
bindgen_test_layout_cmsghdr()1767 fn bindgen_test_layout_cmsghdr() {
1768     const UNINIT: ::std::mem::MaybeUninit<cmsghdr> = ::std::mem::MaybeUninit::uninit();
1769     let ptr = UNINIT.as_ptr();
1770     assert_eq!(
1771         ::std::mem::size_of::<cmsghdr>(),
1772         16usize,
1773         concat!("Size of: ", stringify!(cmsghdr))
1774     );
1775     assert_eq!(
1776         ::std::mem::align_of::<cmsghdr>(),
1777         8usize,
1778         concat!("Alignment of ", stringify!(cmsghdr))
1779     );
1780     assert_eq!(
1781         unsafe { ::std::ptr::addr_of!((*ptr).cmsg_len) as usize - ptr as usize },
1782         0usize,
1783         concat!("Offset of field: ", stringify!(cmsghdr), "::", stringify!(cmsg_len))
1784     );
1785     assert_eq!(
1786         unsafe { ::std::ptr::addr_of!((*ptr).cmsg_level) as usize - ptr as usize },
1787         8usize,
1788         concat!("Offset of field: ", stringify!(cmsghdr), "::", stringify!(cmsg_level))
1789     );
1790     assert_eq!(
1791         unsafe { ::std::ptr::addr_of!((*ptr).cmsg_type) as usize - ptr as usize },
1792         12usize,
1793         concat!("Offset of field: ", stringify!(cmsghdr), "::", stringify!(cmsg_type))
1794     );
1795     assert_eq!(
1796         unsafe { ::std::ptr::addr_of!((*ptr).__cmsg_data) as usize - ptr as usize },
1797         16usize,
1798         concat!("Offset of field: ", stringify!(cmsghdr), "::", stringify!(__cmsg_data))
1799     );
1800 }
1801 extern "C" {
__cmsg_nxthdr(__mhdr: *mut msghdr, __cmsg: *mut cmsghdr) -> *mut cmsghdr1802     pub fn __cmsg_nxthdr(__mhdr: *mut msghdr, __cmsg: *mut cmsghdr) -> *mut cmsghdr;
1803 }
1804 pub const SCM_RIGHTS: _bindgen_ty_2 = 1;
1805 pub type _bindgen_ty_2 = ::std::os::raw::c_uint;
1806 #[repr(C)]
1807 #[derive(Debug, Copy, Clone)]
1808 pub struct __kernel_fd_set {
1809     pub fds_bits: [::std::os::raw::c_ulong; 16usize],
1810 }
1811 #[test]
bindgen_test_layout___kernel_fd_set()1812 fn bindgen_test_layout___kernel_fd_set() {
1813     const UNINIT: ::std::mem::MaybeUninit<__kernel_fd_set> = ::std::mem::MaybeUninit::uninit();
1814     let ptr = UNINIT.as_ptr();
1815     assert_eq!(
1816         ::std::mem::size_of::<__kernel_fd_set>(),
1817         128usize,
1818         concat!("Size of: ", stringify!(__kernel_fd_set))
1819     );
1820     assert_eq!(
1821         ::std::mem::align_of::<__kernel_fd_set>(),
1822         8usize,
1823         concat!("Alignment of ", stringify!(__kernel_fd_set))
1824     );
1825     assert_eq!(
1826         unsafe { ::std::ptr::addr_of!((*ptr).fds_bits) as usize - ptr as usize },
1827         0usize,
1828         concat!("Offset of field: ", stringify!(__kernel_fd_set), "::", stringify!(fds_bits))
1829     );
1830 }
1831 pub type __kernel_sighandler_t =
1832     ::std::option::Option<unsafe extern "C" fn(arg1: ::std::os::raw::c_int)>;
1833 pub type __kernel_key_t = ::std::os::raw::c_int;
1834 pub type __kernel_mqd_t = ::std::os::raw::c_int;
1835 pub type __kernel_old_uid_t = ::std::os::raw::c_ushort;
1836 pub type __kernel_old_gid_t = ::std::os::raw::c_ushort;
1837 pub type __kernel_old_dev_t = ::std::os::raw::c_ulong;
1838 pub type __kernel_long_t = ::std::os::raw::c_long;
1839 pub type __kernel_ulong_t = ::std::os::raw::c_ulong;
1840 pub type __kernel_ino_t = __kernel_ulong_t;
1841 pub type __kernel_mode_t = ::std::os::raw::c_uint;
1842 pub type __kernel_pid_t = ::std::os::raw::c_int;
1843 pub type __kernel_ipc_pid_t = ::std::os::raw::c_int;
1844 pub type __kernel_uid_t = ::std::os::raw::c_uint;
1845 pub type __kernel_gid_t = ::std::os::raw::c_uint;
1846 pub type __kernel_suseconds_t = __kernel_long_t;
1847 pub type __kernel_daddr_t = ::std::os::raw::c_int;
1848 pub type __kernel_uid32_t = ::std::os::raw::c_uint;
1849 pub type __kernel_gid32_t = ::std::os::raw::c_uint;
1850 pub type __kernel_size_t = __kernel_ulong_t;
1851 pub type __kernel_ssize_t = __kernel_long_t;
1852 pub type __kernel_ptrdiff_t = __kernel_long_t;
1853 #[repr(C)]
1854 #[derive(Debug, Copy, Clone)]
1855 pub struct __kernel_fsid_t {
1856     pub val: [::std::os::raw::c_int; 2usize],
1857 }
1858 #[test]
bindgen_test_layout___kernel_fsid_t()1859 fn bindgen_test_layout___kernel_fsid_t() {
1860     const UNINIT: ::std::mem::MaybeUninit<__kernel_fsid_t> = ::std::mem::MaybeUninit::uninit();
1861     let ptr = UNINIT.as_ptr();
1862     assert_eq!(
1863         ::std::mem::size_of::<__kernel_fsid_t>(),
1864         8usize,
1865         concat!("Size of: ", stringify!(__kernel_fsid_t))
1866     );
1867     assert_eq!(
1868         ::std::mem::align_of::<__kernel_fsid_t>(),
1869         4usize,
1870         concat!("Alignment of ", stringify!(__kernel_fsid_t))
1871     );
1872     assert_eq!(
1873         unsafe { ::std::ptr::addr_of!((*ptr).val) as usize - ptr as usize },
1874         0usize,
1875         concat!("Offset of field: ", stringify!(__kernel_fsid_t), "::", stringify!(val))
1876     );
1877 }
1878 pub type __kernel_off_t = __kernel_long_t;
1879 pub type __kernel_loff_t = ::std::os::raw::c_longlong;
1880 pub type __kernel_old_time_t = __kernel_long_t;
1881 pub type __kernel_time_t = __kernel_long_t;
1882 pub type __kernel_time64_t = ::std::os::raw::c_longlong;
1883 pub type __kernel_clock_t = __kernel_long_t;
1884 pub type __kernel_timer_t = ::std::os::raw::c_int;
1885 pub type __kernel_clockid_t = ::std::os::raw::c_int;
1886 pub type __kernel_caddr_t = *mut ::std::os::raw::c_char;
1887 pub type __kernel_uid16_t = ::std::os::raw::c_ushort;
1888 pub type __kernel_gid16_t = ::std::os::raw::c_ushort;
1889 #[repr(C)]
1890 #[derive(Debug, Copy, Clone)]
1891 pub struct linger {
1892     pub l_onoff: ::std::os::raw::c_int,
1893     pub l_linger: ::std::os::raw::c_int,
1894 }
1895 #[test]
bindgen_test_layout_linger()1896 fn bindgen_test_layout_linger() {
1897     const UNINIT: ::std::mem::MaybeUninit<linger> = ::std::mem::MaybeUninit::uninit();
1898     let ptr = UNINIT.as_ptr();
1899     assert_eq!(::std::mem::size_of::<linger>(), 8usize, concat!("Size of: ", stringify!(linger)));
1900     assert_eq!(
1901         ::std::mem::align_of::<linger>(),
1902         4usize,
1903         concat!("Alignment of ", stringify!(linger))
1904     );
1905     assert_eq!(
1906         unsafe { ::std::ptr::addr_of!((*ptr).l_onoff) as usize - ptr as usize },
1907         0usize,
1908         concat!("Offset of field: ", stringify!(linger), "::", stringify!(l_onoff))
1909     );
1910     assert_eq!(
1911         unsafe { ::std::ptr::addr_of!((*ptr).l_linger) as usize - ptr as usize },
1912         4usize,
1913         concat!("Offset of field: ", stringify!(linger), "::", stringify!(l_linger))
1914     );
1915 }
1916 #[repr(C)]
1917 #[derive(Debug, Copy, Clone)]
1918 pub struct osockaddr {
1919     pub sa_family: ::std::os::raw::c_ushort,
1920     pub sa_data: [::std::os::raw::c_uchar; 14usize],
1921 }
1922 #[test]
bindgen_test_layout_osockaddr()1923 fn bindgen_test_layout_osockaddr() {
1924     const UNINIT: ::std::mem::MaybeUninit<osockaddr> = ::std::mem::MaybeUninit::uninit();
1925     let ptr = UNINIT.as_ptr();
1926     assert_eq!(
1927         ::std::mem::size_of::<osockaddr>(),
1928         16usize,
1929         concat!("Size of: ", stringify!(osockaddr))
1930     );
1931     assert_eq!(
1932         ::std::mem::align_of::<osockaddr>(),
1933         2usize,
1934         concat!("Alignment of ", stringify!(osockaddr))
1935     );
1936     assert_eq!(
1937         unsafe { ::std::ptr::addr_of!((*ptr).sa_family) as usize - ptr as usize },
1938         0usize,
1939         concat!("Offset of field: ", stringify!(osockaddr), "::", stringify!(sa_family))
1940     );
1941     assert_eq!(
1942         unsafe { ::std::ptr::addr_of!((*ptr).sa_data) as usize - ptr as usize },
1943         2usize,
1944         concat!("Offset of field: ", stringify!(osockaddr), "::", stringify!(sa_data))
1945     );
1946 }
1947 pub const SHUT_RD: _bindgen_ty_3 = 0;
1948 pub const SHUT_WR: _bindgen_ty_3 = 1;
1949 pub const SHUT_RDWR: _bindgen_ty_3 = 2;
1950 pub type _bindgen_ty_3 = ::std::os::raw::c_uint;
1951 extern "C" {
socket( __domain: ::std::os::raw::c_int, __type: ::std::os::raw::c_int, __protocol: ::std::os::raw::c_int, ) -> ::std::os::raw::c_int1952     pub fn socket(
1953         __domain: ::std::os::raw::c_int,
1954         __type: ::std::os::raw::c_int,
1955         __protocol: ::std::os::raw::c_int,
1956     ) -> ::std::os::raw::c_int;
1957 }
1958 extern "C" {
socketpair( __domain: ::std::os::raw::c_int, __type: ::std::os::raw::c_int, __protocol: ::std::os::raw::c_int, __fds: *mut ::std::os::raw::c_int, ) -> ::std::os::raw::c_int1959     pub fn socketpair(
1960         __domain: ::std::os::raw::c_int,
1961         __type: ::std::os::raw::c_int,
1962         __protocol: ::std::os::raw::c_int,
1963         __fds: *mut ::std::os::raw::c_int,
1964     ) -> ::std::os::raw::c_int;
1965 }
1966 extern "C" {
bind( __fd: ::std::os::raw::c_int, __addr: *const sockaddr, __len: socklen_t, ) -> ::std::os::raw::c_int1967     pub fn bind(
1968         __fd: ::std::os::raw::c_int,
1969         __addr: *const sockaddr,
1970         __len: socklen_t,
1971     ) -> ::std::os::raw::c_int;
1972 }
1973 extern "C" {
getsockname( __fd: ::std::os::raw::c_int, __addr: *mut sockaddr, __len: *mut socklen_t, ) -> ::std::os::raw::c_int1974     pub fn getsockname(
1975         __fd: ::std::os::raw::c_int,
1976         __addr: *mut sockaddr,
1977         __len: *mut socklen_t,
1978     ) -> ::std::os::raw::c_int;
1979 }
1980 extern "C" {
connect( __fd: ::std::os::raw::c_int, __addr: *const sockaddr, __len: socklen_t, ) -> ::std::os::raw::c_int1981     pub fn connect(
1982         __fd: ::std::os::raw::c_int,
1983         __addr: *const sockaddr,
1984         __len: socklen_t,
1985     ) -> ::std::os::raw::c_int;
1986 }
1987 extern "C" {
getpeername( __fd: ::std::os::raw::c_int, __addr: *mut sockaddr, __len: *mut socklen_t, ) -> ::std::os::raw::c_int1988     pub fn getpeername(
1989         __fd: ::std::os::raw::c_int,
1990         __addr: *mut sockaddr,
1991         __len: *mut socklen_t,
1992     ) -> ::std::os::raw::c_int;
1993 }
1994 extern "C" {
send( __fd: ::std::os::raw::c_int, __buf: *const ::std::os::raw::c_void, __n: usize, __flags: ::std::os::raw::c_int, ) -> isize1995     pub fn send(
1996         __fd: ::std::os::raw::c_int,
1997         __buf: *const ::std::os::raw::c_void,
1998         __n: usize,
1999         __flags: ::std::os::raw::c_int,
2000     ) -> isize;
2001 }
2002 extern "C" {
recv( __fd: ::std::os::raw::c_int, __buf: *mut ::std::os::raw::c_void, __n: usize, __flags: ::std::os::raw::c_int, ) -> isize2003     pub fn recv(
2004         __fd: ::std::os::raw::c_int,
2005         __buf: *mut ::std::os::raw::c_void,
2006         __n: usize,
2007         __flags: ::std::os::raw::c_int,
2008     ) -> isize;
2009 }
2010 extern "C" {
sendto( __fd: ::std::os::raw::c_int, __buf: *const ::std::os::raw::c_void, __n: usize, __flags: ::std::os::raw::c_int, __addr: *const sockaddr, __addr_len: socklen_t, ) -> isize2011     pub fn sendto(
2012         __fd: ::std::os::raw::c_int,
2013         __buf: *const ::std::os::raw::c_void,
2014         __n: usize,
2015         __flags: ::std::os::raw::c_int,
2016         __addr: *const sockaddr,
2017         __addr_len: socklen_t,
2018     ) -> isize;
2019 }
2020 extern "C" {
recvfrom( __fd: ::std::os::raw::c_int, __buf: *mut ::std::os::raw::c_void, __n: usize, __flags: ::std::os::raw::c_int, __addr: *mut sockaddr, __addr_len: *mut socklen_t, ) -> isize2021     pub fn recvfrom(
2022         __fd: ::std::os::raw::c_int,
2023         __buf: *mut ::std::os::raw::c_void,
2024         __n: usize,
2025         __flags: ::std::os::raw::c_int,
2026         __addr: *mut sockaddr,
2027         __addr_len: *mut socklen_t,
2028     ) -> isize;
2029 }
2030 extern "C" {
sendmsg( __fd: ::std::os::raw::c_int, __message: *const msghdr, __flags: ::std::os::raw::c_int, ) -> isize2031     pub fn sendmsg(
2032         __fd: ::std::os::raw::c_int,
2033         __message: *const msghdr,
2034         __flags: ::std::os::raw::c_int,
2035     ) -> isize;
2036 }
2037 extern "C" {
recvmsg( __fd: ::std::os::raw::c_int, __message: *mut msghdr, __flags: ::std::os::raw::c_int, ) -> isize2038     pub fn recvmsg(
2039         __fd: ::std::os::raw::c_int,
2040         __message: *mut msghdr,
2041         __flags: ::std::os::raw::c_int,
2042     ) -> isize;
2043 }
2044 extern "C" {
getsockopt( __fd: ::std::os::raw::c_int, __level: ::std::os::raw::c_int, __optname: ::std::os::raw::c_int, __optval: *mut ::std::os::raw::c_void, __optlen: *mut socklen_t, ) -> ::std::os::raw::c_int2045     pub fn getsockopt(
2046         __fd: ::std::os::raw::c_int,
2047         __level: ::std::os::raw::c_int,
2048         __optname: ::std::os::raw::c_int,
2049         __optval: *mut ::std::os::raw::c_void,
2050         __optlen: *mut socklen_t,
2051     ) -> ::std::os::raw::c_int;
2052 }
2053 extern "C" {
setsockopt( __fd: ::std::os::raw::c_int, __level: ::std::os::raw::c_int, __optname: ::std::os::raw::c_int, __optval: *const ::std::os::raw::c_void, __optlen: socklen_t, ) -> ::std::os::raw::c_int2054     pub fn setsockopt(
2055         __fd: ::std::os::raw::c_int,
2056         __level: ::std::os::raw::c_int,
2057         __optname: ::std::os::raw::c_int,
2058         __optval: *const ::std::os::raw::c_void,
2059         __optlen: socklen_t,
2060     ) -> ::std::os::raw::c_int;
2061 }
2062 extern "C" {
listen(__fd: ::std::os::raw::c_int, __n: ::std::os::raw::c_int) -> ::std::os::raw::c_int2063     pub fn listen(__fd: ::std::os::raw::c_int, __n: ::std::os::raw::c_int)
2064         -> ::std::os::raw::c_int;
2065 }
2066 extern "C" {
accept( __fd: ::std::os::raw::c_int, __addr: *mut sockaddr, __addr_len: *mut socklen_t, ) -> ::std::os::raw::c_int2067     pub fn accept(
2068         __fd: ::std::os::raw::c_int,
2069         __addr: *mut sockaddr,
2070         __addr_len: *mut socklen_t,
2071     ) -> ::std::os::raw::c_int;
2072 }
2073 extern "C" {
shutdown( __fd: ::std::os::raw::c_int, __how: ::std::os::raw::c_int, ) -> ::std::os::raw::c_int2074     pub fn shutdown(
2075         __fd: ::std::os::raw::c_int,
2076         __how: ::std::os::raw::c_int,
2077     ) -> ::std::os::raw::c_int;
2078 }
2079 extern "C" {
sockatmark(__fd: ::std::os::raw::c_int) -> ::std::os::raw::c_int2080     pub fn sockatmark(__fd: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
2081 }
2082 extern "C" {
isfdtype( __fd: ::std::os::raw::c_int, __fdtype: ::std::os::raw::c_int, ) -> ::std::os::raw::c_int2083     pub fn isfdtype(
2084         __fd: ::std::os::raw::c_int,
2085         __fdtype: ::std::os::raw::c_int,
2086     ) -> ::std::os::raw::c_int;
2087 }
2088 pub type in_addr_t = u32;
2089 #[repr(C)]
2090 #[derive(Debug, Copy, Clone)]
2091 pub struct in_addr {
2092     pub s_addr: in_addr_t,
2093 }
2094 #[test]
bindgen_test_layout_in_addr()2095 fn bindgen_test_layout_in_addr() {
2096     const UNINIT: ::std::mem::MaybeUninit<in_addr> = ::std::mem::MaybeUninit::uninit();
2097     let ptr = UNINIT.as_ptr();
2098     assert_eq!(::std::mem::size_of::<in_addr>(), 4usize, concat!("Size of: ", stringify!(in_addr)));
2099     assert_eq!(
2100         ::std::mem::align_of::<in_addr>(),
2101         4usize,
2102         concat!("Alignment of ", stringify!(in_addr))
2103     );
2104     assert_eq!(
2105         unsafe { ::std::ptr::addr_of!((*ptr).s_addr) as usize - ptr as usize },
2106         0usize,
2107         concat!("Offset of field: ", stringify!(in_addr), "::", stringify!(s_addr))
2108     );
2109 }
2110 #[repr(C)]
2111 #[derive(Debug, Copy, Clone)]
2112 pub struct ip_opts {
2113     pub ip_dst: in_addr,
2114     pub ip_opts: [::std::os::raw::c_char; 40usize],
2115 }
2116 #[test]
bindgen_test_layout_ip_opts()2117 fn bindgen_test_layout_ip_opts() {
2118     const UNINIT: ::std::mem::MaybeUninit<ip_opts> = ::std::mem::MaybeUninit::uninit();
2119     let ptr = UNINIT.as_ptr();
2120     assert_eq!(
2121         ::std::mem::size_of::<ip_opts>(),
2122         44usize,
2123         concat!("Size of: ", stringify!(ip_opts))
2124     );
2125     assert_eq!(
2126         ::std::mem::align_of::<ip_opts>(),
2127         4usize,
2128         concat!("Alignment of ", stringify!(ip_opts))
2129     );
2130     assert_eq!(
2131         unsafe { ::std::ptr::addr_of!((*ptr).ip_dst) as usize - ptr as usize },
2132         0usize,
2133         concat!("Offset of field: ", stringify!(ip_opts), "::", stringify!(ip_dst))
2134     );
2135     assert_eq!(
2136         unsafe { ::std::ptr::addr_of!((*ptr).ip_opts) as usize - ptr as usize },
2137         4usize,
2138         concat!("Offset of field: ", stringify!(ip_opts), "::", stringify!(ip_opts))
2139     );
2140 }
2141 #[repr(C)]
2142 #[derive(Debug, Copy, Clone)]
2143 pub struct in_pktinfo {
2144     pub ipi_ifindex: ::std::os::raw::c_int,
2145     pub ipi_spec_dst: in_addr,
2146     pub ipi_addr: in_addr,
2147 }
2148 #[test]
bindgen_test_layout_in_pktinfo()2149 fn bindgen_test_layout_in_pktinfo() {
2150     const UNINIT: ::std::mem::MaybeUninit<in_pktinfo> = ::std::mem::MaybeUninit::uninit();
2151     let ptr = UNINIT.as_ptr();
2152     assert_eq!(
2153         ::std::mem::size_of::<in_pktinfo>(),
2154         12usize,
2155         concat!("Size of: ", stringify!(in_pktinfo))
2156     );
2157     assert_eq!(
2158         ::std::mem::align_of::<in_pktinfo>(),
2159         4usize,
2160         concat!("Alignment of ", stringify!(in_pktinfo))
2161     );
2162     assert_eq!(
2163         unsafe { ::std::ptr::addr_of!((*ptr).ipi_ifindex) as usize - ptr as usize },
2164         0usize,
2165         concat!("Offset of field: ", stringify!(in_pktinfo), "::", stringify!(ipi_ifindex))
2166     );
2167     assert_eq!(
2168         unsafe { ::std::ptr::addr_of!((*ptr).ipi_spec_dst) as usize - ptr as usize },
2169         4usize,
2170         concat!("Offset of field: ", stringify!(in_pktinfo), "::", stringify!(ipi_spec_dst))
2171     );
2172     assert_eq!(
2173         unsafe { ::std::ptr::addr_of!((*ptr).ipi_addr) as usize - ptr as usize },
2174         8usize,
2175         concat!("Offset of field: ", stringify!(in_pktinfo), "::", stringify!(ipi_addr))
2176     );
2177 }
2178 pub const IPPROTO_IP: _bindgen_ty_4 = 0;
2179 pub const IPPROTO_ICMP: _bindgen_ty_4 = 1;
2180 pub const IPPROTO_IGMP: _bindgen_ty_4 = 2;
2181 pub const IPPROTO_IPIP: _bindgen_ty_4 = 4;
2182 pub const IPPROTO_TCP: _bindgen_ty_4 = 6;
2183 pub const IPPROTO_EGP: _bindgen_ty_4 = 8;
2184 pub const IPPROTO_PUP: _bindgen_ty_4 = 12;
2185 pub const IPPROTO_UDP: _bindgen_ty_4 = 17;
2186 pub const IPPROTO_IDP: _bindgen_ty_4 = 22;
2187 pub const IPPROTO_TP: _bindgen_ty_4 = 29;
2188 pub const IPPROTO_DCCP: _bindgen_ty_4 = 33;
2189 pub const IPPROTO_IPV6: _bindgen_ty_4 = 41;
2190 pub const IPPROTO_RSVP: _bindgen_ty_4 = 46;
2191 pub const IPPROTO_GRE: _bindgen_ty_4 = 47;
2192 pub const IPPROTO_ESP: _bindgen_ty_4 = 50;
2193 pub const IPPROTO_AH: _bindgen_ty_4 = 51;
2194 pub const IPPROTO_MTP: _bindgen_ty_4 = 92;
2195 pub const IPPROTO_BEETPH: _bindgen_ty_4 = 94;
2196 pub const IPPROTO_ENCAP: _bindgen_ty_4 = 98;
2197 pub const IPPROTO_PIM: _bindgen_ty_4 = 103;
2198 pub const IPPROTO_COMP: _bindgen_ty_4 = 108;
2199 pub const IPPROTO_L2TP: _bindgen_ty_4 = 115;
2200 pub const IPPROTO_SCTP: _bindgen_ty_4 = 132;
2201 pub const IPPROTO_UDPLITE: _bindgen_ty_4 = 136;
2202 pub const IPPROTO_MPLS: _bindgen_ty_4 = 137;
2203 pub const IPPROTO_ETHERNET: _bindgen_ty_4 = 143;
2204 pub const IPPROTO_RAW: _bindgen_ty_4 = 255;
2205 pub const IPPROTO_MPTCP: _bindgen_ty_4 = 262;
2206 pub const IPPROTO_MAX: _bindgen_ty_4 = 263;
2207 pub type _bindgen_ty_4 = ::std::os::raw::c_uint;
2208 pub const IPPROTO_HOPOPTS: _bindgen_ty_5 = 0;
2209 pub const IPPROTO_ROUTING: _bindgen_ty_5 = 43;
2210 pub const IPPROTO_FRAGMENT: _bindgen_ty_5 = 44;
2211 pub const IPPROTO_ICMPV6: _bindgen_ty_5 = 58;
2212 pub const IPPROTO_NONE: _bindgen_ty_5 = 59;
2213 pub const IPPROTO_DSTOPTS: _bindgen_ty_5 = 60;
2214 pub const IPPROTO_MH: _bindgen_ty_5 = 135;
2215 pub type _bindgen_ty_5 = ::std::os::raw::c_uint;
2216 pub type in_port_t = u16;
2217 pub const IPPORT_ECHO: _bindgen_ty_6 = 7;
2218 pub const IPPORT_DISCARD: _bindgen_ty_6 = 9;
2219 pub const IPPORT_SYSTAT: _bindgen_ty_6 = 11;
2220 pub const IPPORT_DAYTIME: _bindgen_ty_6 = 13;
2221 pub const IPPORT_NETSTAT: _bindgen_ty_6 = 15;
2222 pub const IPPORT_FTP: _bindgen_ty_6 = 21;
2223 pub const IPPORT_TELNET: _bindgen_ty_6 = 23;
2224 pub const IPPORT_SMTP: _bindgen_ty_6 = 25;
2225 pub const IPPORT_TIMESERVER: _bindgen_ty_6 = 37;
2226 pub const IPPORT_NAMESERVER: _bindgen_ty_6 = 42;
2227 pub const IPPORT_WHOIS: _bindgen_ty_6 = 43;
2228 pub const IPPORT_MTP: _bindgen_ty_6 = 57;
2229 pub const IPPORT_TFTP: _bindgen_ty_6 = 69;
2230 pub const IPPORT_RJE: _bindgen_ty_6 = 77;
2231 pub const IPPORT_FINGER: _bindgen_ty_6 = 79;
2232 pub const IPPORT_TTYLINK: _bindgen_ty_6 = 87;
2233 pub const IPPORT_SUPDUP: _bindgen_ty_6 = 95;
2234 pub const IPPORT_EXECSERVER: _bindgen_ty_6 = 512;
2235 pub const IPPORT_LOGINSERVER: _bindgen_ty_6 = 513;
2236 pub const IPPORT_CMDSERVER: _bindgen_ty_6 = 514;
2237 pub const IPPORT_EFSSERVER: _bindgen_ty_6 = 520;
2238 pub const IPPORT_BIFFUDP: _bindgen_ty_6 = 512;
2239 pub const IPPORT_WHOSERVER: _bindgen_ty_6 = 513;
2240 pub const IPPORT_ROUTESERVER: _bindgen_ty_6 = 520;
2241 pub const IPPORT_RESERVED: _bindgen_ty_6 = 1024;
2242 pub const IPPORT_USERRESERVED: _bindgen_ty_6 = 5000;
2243 pub type _bindgen_ty_6 = ::std::os::raw::c_uint;
2244 #[repr(C)]
2245 #[derive(Copy, Clone)]
2246 pub struct in6_addr {
2247     pub __in6_u: in6_addr__bindgen_ty_1,
2248 }
2249 #[repr(C)]
2250 #[derive(Copy, Clone)]
2251 pub union in6_addr__bindgen_ty_1 {
2252     pub __u6_addr8: [u8; 16usize],
2253     pub __u6_addr16: [u16; 8usize],
2254     pub __u6_addr32: [u32; 4usize],
2255 }
2256 #[test]
bindgen_test_layout_in6_addr__bindgen_ty_1()2257 fn bindgen_test_layout_in6_addr__bindgen_ty_1() {
2258     const UNINIT: ::std::mem::MaybeUninit<in6_addr__bindgen_ty_1> =
2259         ::std::mem::MaybeUninit::uninit();
2260     let ptr = UNINIT.as_ptr();
2261     assert_eq!(
2262         ::std::mem::size_of::<in6_addr__bindgen_ty_1>(),
2263         16usize,
2264         concat!("Size of: ", stringify!(in6_addr__bindgen_ty_1))
2265     );
2266     assert_eq!(
2267         ::std::mem::align_of::<in6_addr__bindgen_ty_1>(),
2268         4usize,
2269         concat!("Alignment of ", stringify!(in6_addr__bindgen_ty_1))
2270     );
2271     assert_eq!(
2272         unsafe { ::std::ptr::addr_of!((*ptr).__u6_addr8) as usize - ptr as usize },
2273         0usize,
2274         concat!(
2275             "Offset of field: ",
2276             stringify!(in6_addr__bindgen_ty_1),
2277             "::",
2278             stringify!(__u6_addr8)
2279         )
2280     );
2281     assert_eq!(
2282         unsafe { ::std::ptr::addr_of!((*ptr).__u6_addr16) as usize - ptr as usize },
2283         0usize,
2284         concat!(
2285             "Offset of field: ",
2286             stringify!(in6_addr__bindgen_ty_1),
2287             "::",
2288             stringify!(__u6_addr16)
2289         )
2290     );
2291     assert_eq!(
2292         unsafe { ::std::ptr::addr_of!((*ptr).__u6_addr32) as usize - ptr as usize },
2293         0usize,
2294         concat!(
2295             "Offset of field: ",
2296             stringify!(in6_addr__bindgen_ty_1),
2297             "::",
2298             stringify!(__u6_addr32)
2299         )
2300     );
2301 }
2302 #[test]
bindgen_test_layout_in6_addr()2303 fn bindgen_test_layout_in6_addr() {
2304     const UNINIT: ::std::mem::MaybeUninit<in6_addr> = ::std::mem::MaybeUninit::uninit();
2305     let ptr = UNINIT.as_ptr();
2306     assert_eq!(
2307         ::std::mem::size_of::<in6_addr>(),
2308         16usize,
2309         concat!("Size of: ", stringify!(in6_addr))
2310     );
2311     assert_eq!(
2312         ::std::mem::align_of::<in6_addr>(),
2313         4usize,
2314         concat!("Alignment of ", stringify!(in6_addr))
2315     );
2316     assert_eq!(
2317         unsafe { ::std::ptr::addr_of!((*ptr).__in6_u) as usize - ptr as usize },
2318         0usize,
2319         concat!("Offset of field: ", stringify!(in6_addr), "::", stringify!(__in6_u))
2320     );
2321 }
2322 extern "C" {
2323     pub static in6addr_any: in6_addr;
2324 }
2325 extern "C" {
2326     pub static in6addr_loopback: in6_addr;
2327 }
2328 #[repr(C)]
2329 #[derive(Debug, Copy, Clone)]
2330 pub struct sockaddr_in {
2331     pub sin_family: sa_family_t,
2332     pub sin_port: in_port_t,
2333     pub sin_addr: in_addr,
2334     pub sin_zero: [::std::os::raw::c_uchar; 8usize],
2335 }
2336 #[test]
bindgen_test_layout_sockaddr_in()2337 fn bindgen_test_layout_sockaddr_in() {
2338     const UNINIT: ::std::mem::MaybeUninit<sockaddr_in> = ::std::mem::MaybeUninit::uninit();
2339     let ptr = UNINIT.as_ptr();
2340     assert_eq!(
2341         ::std::mem::size_of::<sockaddr_in>(),
2342         16usize,
2343         concat!("Size of: ", stringify!(sockaddr_in))
2344     );
2345     assert_eq!(
2346         ::std::mem::align_of::<sockaddr_in>(),
2347         4usize,
2348         concat!("Alignment of ", stringify!(sockaddr_in))
2349     );
2350     assert_eq!(
2351         unsafe { ::std::ptr::addr_of!((*ptr).sin_family) as usize - ptr as usize },
2352         0usize,
2353         concat!("Offset of field: ", stringify!(sockaddr_in), "::", stringify!(sin_family))
2354     );
2355     assert_eq!(
2356         unsafe { ::std::ptr::addr_of!((*ptr).sin_port) as usize - ptr as usize },
2357         2usize,
2358         concat!("Offset of field: ", stringify!(sockaddr_in), "::", stringify!(sin_port))
2359     );
2360     assert_eq!(
2361         unsafe { ::std::ptr::addr_of!((*ptr).sin_addr) as usize - ptr as usize },
2362         4usize,
2363         concat!("Offset of field: ", stringify!(sockaddr_in), "::", stringify!(sin_addr))
2364     );
2365     assert_eq!(
2366         unsafe { ::std::ptr::addr_of!((*ptr).sin_zero) as usize - ptr as usize },
2367         8usize,
2368         concat!("Offset of field: ", stringify!(sockaddr_in), "::", stringify!(sin_zero))
2369     );
2370 }
2371 #[repr(C)]
2372 #[derive(Copy, Clone)]
2373 pub struct sockaddr_in6 {
2374     pub sin6_family: sa_family_t,
2375     pub sin6_port: in_port_t,
2376     pub sin6_flowinfo: u32,
2377     pub sin6_addr: in6_addr,
2378     pub sin6_scope_id: u32,
2379 }
2380 #[test]
bindgen_test_layout_sockaddr_in6()2381 fn bindgen_test_layout_sockaddr_in6() {
2382     const UNINIT: ::std::mem::MaybeUninit<sockaddr_in6> = ::std::mem::MaybeUninit::uninit();
2383     let ptr = UNINIT.as_ptr();
2384     assert_eq!(
2385         ::std::mem::size_of::<sockaddr_in6>(),
2386         28usize,
2387         concat!("Size of: ", stringify!(sockaddr_in6))
2388     );
2389     assert_eq!(
2390         ::std::mem::align_of::<sockaddr_in6>(),
2391         4usize,
2392         concat!("Alignment of ", stringify!(sockaddr_in6))
2393     );
2394     assert_eq!(
2395         unsafe { ::std::ptr::addr_of!((*ptr).sin6_family) as usize - ptr as usize },
2396         0usize,
2397         concat!("Offset of field: ", stringify!(sockaddr_in6), "::", stringify!(sin6_family))
2398     );
2399     assert_eq!(
2400         unsafe { ::std::ptr::addr_of!((*ptr).sin6_port) as usize - ptr as usize },
2401         2usize,
2402         concat!("Offset of field: ", stringify!(sockaddr_in6), "::", stringify!(sin6_port))
2403     );
2404     assert_eq!(
2405         unsafe { ::std::ptr::addr_of!((*ptr).sin6_flowinfo) as usize - ptr as usize },
2406         4usize,
2407         concat!("Offset of field: ", stringify!(sockaddr_in6), "::", stringify!(sin6_flowinfo))
2408     );
2409     assert_eq!(
2410         unsafe { ::std::ptr::addr_of!((*ptr).sin6_addr) as usize - ptr as usize },
2411         8usize,
2412         concat!("Offset of field: ", stringify!(sockaddr_in6), "::", stringify!(sin6_addr))
2413     );
2414     assert_eq!(
2415         unsafe { ::std::ptr::addr_of!((*ptr).sin6_scope_id) as usize - ptr as usize },
2416         24usize,
2417         concat!("Offset of field: ", stringify!(sockaddr_in6), "::", stringify!(sin6_scope_id))
2418     );
2419 }
2420 #[repr(C)]
2421 #[derive(Debug, Copy, Clone)]
2422 pub struct ip_mreq {
2423     pub imr_multiaddr: in_addr,
2424     pub imr_interface: in_addr,
2425 }
2426 #[test]
bindgen_test_layout_ip_mreq()2427 fn bindgen_test_layout_ip_mreq() {
2428     const UNINIT: ::std::mem::MaybeUninit<ip_mreq> = ::std::mem::MaybeUninit::uninit();
2429     let ptr = UNINIT.as_ptr();
2430     assert_eq!(::std::mem::size_of::<ip_mreq>(), 8usize, concat!("Size of: ", stringify!(ip_mreq)));
2431     assert_eq!(
2432         ::std::mem::align_of::<ip_mreq>(),
2433         4usize,
2434         concat!("Alignment of ", stringify!(ip_mreq))
2435     );
2436     assert_eq!(
2437         unsafe { ::std::ptr::addr_of!((*ptr).imr_multiaddr) as usize - ptr as usize },
2438         0usize,
2439         concat!("Offset of field: ", stringify!(ip_mreq), "::", stringify!(imr_multiaddr))
2440     );
2441     assert_eq!(
2442         unsafe { ::std::ptr::addr_of!((*ptr).imr_interface) as usize - ptr as usize },
2443         4usize,
2444         concat!("Offset of field: ", stringify!(ip_mreq), "::", stringify!(imr_interface))
2445     );
2446 }
2447 #[repr(C)]
2448 #[derive(Debug, Copy, Clone)]
2449 pub struct ip_mreqn {
2450     pub imr_multiaddr: in_addr,
2451     pub imr_address: in_addr,
2452     pub imr_ifindex: ::std::os::raw::c_int,
2453 }
2454 #[test]
bindgen_test_layout_ip_mreqn()2455 fn bindgen_test_layout_ip_mreqn() {
2456     const UNINIT: ::std::mem::MaybeUninit<ip_mreqn> = ::std::mem::MaybeUninit::uninit();
2457     let ptr = UNINIT.as_ptr();
2458     assert_eq!(
2459         ::std::mem::size_of::<ip_mreqn>(),
2460         12usize,
2461         concat!("Size of: ", stringify!(ip_mreqn))
2462     );
2463     assert_eq!(
2464         ::std::mem::align_of::<ip_mreqn>(),
2465         4usize,
2466         concat!("Alignment of ", stringify!(ip_mreqn))
2467     );
2468     assert_eq!(
2469         unsafe { ::std::ptr::addr_of!((*ptr).imr_multiaddr) as usize - ptr as usize },
2470         0usize,
2471         concat!("Offset of field: ", stringify!(ip_mreqn), "::", stringify!(imr_multiaddr))
2472     );
2473     assert_eq!(
2474         unsafe { ::std::ptr::addr_of!((*ptr).imr_address) as usize - ptr as usize },
2475         4usize,
2476         concat!("Offset of field: ", stringify!(ip_mreqn), "::", stringify!(imr_address))
2477     );
2478     assert_eq!(
2479         unsafe { ::std::ptr::addr_of!((*ptr).imr_ifindex) as usize - ptr as usize },
2480         8usize,
2481         concat!("Offset of field: ", stringify!(ip_mreqn), "::", stringify!(imr_ifindex))
2482     );
2483 }
2484 #[repr(C)]
2485 #[derive(Debug, Copy, Clone)]
2486 pub struct ip_mreq_source {
2487     pub imr_multiaddr: in_addr,
2488     pub imr_interface: in_addr,
2489     pub imr_sourceaddr: in_addr,
2490 }
2491 #[test]
bindgen_test_layout_ip_mreq_source()2492 fn bindgen_test_layout_ip_mreq_source() {
2493     const UNINIT: ::std::mem::MaybeUninit<ip_mreq_source> = ::std::mem::MaybeUninit::uninit();
2494     let ptr = UNINIT.as_ptr();
2495     assert_eq!(
2496         ::std::mem::size_of::<ip_mreq_source>(),
2497         12usize,
2498         concat!("Size of: ", stringify!(ip_mreq_source))
2499     );
2500     assert_eq!(
2501         ::std::mem::align_of::<ip_mreq_source>(),
2502         4usize,
2503         concat!("Alignment of ", stringify!(ip_mreq_source))
2504     );
2505     assert_eq!(
2506         unsafe { ::std::ptr::addr_of!((*ptr).imr_multiaddr) as usize - ptr as usize },
2507         0usize,
2508         concat!("Offset of field: ", stringify!(ip_mreq_source), "::", stringify!(imr_multiaddr))
2509     );
2510     assert_eq!(
2511         unsafe { ::std::ptr::addr_of!((*ptr).imr_interface) as usize - ptr as usize },
2512         4usize,
2513         concat!("Offset of field: ", stringify!(ip_mreq_source), "::", stringify!(imr_interface))
2514     );
2515     assert_eq!(
2516         unsafe { ::std::ptr::addr_of!((*ptr).imr_sourceaddr) as usize - ptr as usize },
2517         8usize,
2518         concat!("Offset of field: ", stringify!(ip_mreq_source), "::", stringify!(imr_sourceaddr))
2519     );
2520 }
2521 #[repr(C)]
2522 #[derive(Copy, Clone)]
2523 pub struct ipv6_mreq {
2524     pub ipv6mr_multiaddr: in6_addr,
2525     pub ipv6mr_interface: ::std::os::raw::c_uint,
2526 }
2527 #[test]
bindgen_test_layout_ipv6_mreq()2528 fn bindgen_test_layout_ipv6_mreq() {
2529     const UNINIT: ::std::mem::MaybeUninit<ipv6_mreq> = ::std::mem::MaybeUninit::uninit();
2530     let ptr = UNINIT.as_ptr();
2531     assert_eq!(
2532         ::std::mem::size_of::<ipv6_mreq>(),
2533         20usize,
2534         concat!("Size of: ", stringify!(ipv6_mreq))
2535     );
2536     assert_eq!(
2537         ::std::mem::align_of::<ipv6_mreq>(),
2538         4usize,
2539         concat!("Alignment of ", stringify!(ipv6_mreq))
2540     );
2541     assert_eq!(
2542         unsafe { ::std::ptr::addr_of!((*ptr).ipv6mr_multiaddr) as usize - ptr as usize },
2543         0usize,
2544         concat!("Offset of field: ", stringify!(ipv6_mreq), "::", stringify!(ipv6mr_multiaddr))
2545     );
2546     assert_eq!(
2547         unsafe { ::std::ptr::addr_of!((*ptr).ipv6mr_interface) as usize - ptr as usize },
2548         16usize,
2549         concat!("Offset of field: ", stringify!(ipv6_mreq), "::", stringify!(ipv6mr_interface))
2550     );
2551 }
2552 #[repr(C)]
2553 #[derive(Debug, Copy, Clone)]
2554 pub struct group_req {
2555     pub gr_interface: u32,
2556     pub gr_group: sockaddr_storage,
2557 }
2558 #[test]
bindgen_test_layout_group_req()2559 fn bindgen_test_layout_group_req() {
2560     const UNINIT: ::std::mem::MaybeUninit<group_req> = ::std::mem::MaybeUninit::uninit();
2561     let ptr = UNINIT.as_ptr();
2562     assert_eq!(
2563         ::std::mem::size_of::<group_req>(),
2564         136usize,
2565         concat!("Size of: ", stringify!(group_req))
2566     );
2567     assert_eq!(
2568         ::std::mem::align_of::<group_req>(),
2569         8usize,
2570         concat!("Alignment of ", stringify!(group_req))
2571     );
2572     assert_eq!(
2573         unsafe { ::std::ptr::addr_of!((*ptr).gr_interface) as usize - ptr as usize },
2574         0usize,
2575         concat!("Offset of field: ", stringify!(group_req), "::", stringify!(gr_interface))
2576     );
2577     assert_eq!(
2578         unsafe { ::std::ptr::addr_of!((*ptr).gr_group) as usize - ptr as usize },
2579         8usize,
2580         concat!("Offset of field: ", stringify!(group_req), "::", stringify!(gr_group))
2581     );
2582 }
2583 #[repr(C)]
2584 #[derive(Debug, Copy, Clone)]
2585 pub struct group_source_req {
2586     pub gsr_interface: u32,
2587     pub gsr_group: sockaddr_storage,
2588     pub gsr_source: sockaddr_storage,
2589 }
2590 #[test]
bindgen_test_layout_group_source_req()2591 fn bindgen_test_layout_group_source_req() {
2592     const UNINIT: ::std::mem::MaybeUninit<group_source_req> = ::std::mem::MaybeUninit::uninit();
2593     let ptr = UNINIT.as_ptr();
2594     assert_eq!(
2595         ::std::mem::size_of::<group_source_req>(),
2596         264usize,
2597         concat!("Size of: ", stringify!(group_source_req))
2598     );
2599     assert_eq!(
2600         ::std::mem::align_of::<group_source_req>(),
2601         8usize,
2602         concat!("Alignment of ", stringify!(group_source_req))
2603     );
2604     assert_eq!(
2605         unsafe { ::std::ptr::addr_of!((*ptr).gsr_interface) as usize - ptr as usize },
2606         0usize,
2607         concat!("Offset of field: ", stringify!(group_source_req), "::", stringify!(gsr_interface))
2608     );
2609     assert_eq!(
2610         unsafe { ::std::ptr::addr_of!((*ptr).gsr_group) as usize - ptr as usize },
2611         8usize,
2612         concat!("Offset of field: ", stringify!(group_source_req), "::", stringify!(gsr_group))
2613     );
2614     assert_eq!(
2615         unsafe { ::std::ptr::addr_of!((*ptr).gsr_source) as usize - ptr as usize },
2616         136usize,
2617         concat!("Offset of field: ", stringify!(group_source_req), "::", stringify!(gsr_source))
2618     );
2619 }
2620 #[repr(C)]
2621 #[derive(Debug, Copy, Clone)]
2622 pub struct ip_msfilter {
2623     pub imsf_multiaddr: in_addr,
2624     pub imsf_interface: in_addr,
2625     pub imsf_fmode: u32,
2626     pub imsf_numsrc: u32,
2627     pub imsf_slist: [in_addr; 1usize],
2628 }
2629 #[test]
bindgen_test_layout_ip_msfilter()2630 fn bindgen_test_layout_ip_msfilter() {
2631     const UNINIT: ::std::mem::MaybeUninit<ip_msfilter> = ::std::mem::MaybeUninit::uninit();
2632     let ptr = UNINIT.as_ptr();
2633     assert_eq!(
2634         ::std::mem::size_of::<ip_msfilter>(),
2635         20usize,
2636         concat!("Size of: ", stringify!(ip_msfilter))
2637     );
2638     assert_eq!(
2639         ::std::mem::align_of::<ip_msfilter>(),
2640         4usize,
2641         concat!("Alignment of ", stringify!(ip_msfilter))
2642     );
2643     assert_eq!(
2644         unsafe { ::std::ptr::addr_of!((*ptr).imsf_multiaddr) as usize - ptr as usize },
2645         0usize,
2646         concat!("Offset of field: ", stringify!(ip_msfilter), "::", stringify!(imsf_multiaddr))
2647     );
2648     assert_eq!(
2649         unsafe { ::std::ptr::addr_of!((*ptr).imsf_interface) as usize - ptr as usize },
2650         4usize,
2651         concat!("Offset of field: ", stringify!(ip_msfilter), "::", stringify!(imsf_interface))
2652     );
2653     assert_eq!(
2654         unsafe { ::std::ptr::addr_of!((*ptr).imsf_fmode) as usize - ptr as usize },
2655         8usize,
2656         concat!("Offset of field: ", stringify!(ip_msfilter), "::", stringify!(imsf_fmode))
2657     );
2658     assert_eq!(
2659         unsafe { ::std::ptr::addr_of!((*ptr).imsf_numsrc) as usize - ptr as usize },
2660         12usize,
2661         concat!("Offset of field: ", stringify!(ip_msfilter), "::", stringify!(imsf_numsrc))
2662     );
2663     assert_eq!(
2664         unsafe { ::std::ptr::addr_of!((*ptr).imsf_slist) as usize - ptr as usize },
2665         16usize,
2666         concat!("Offset of field: ", stringify!(ip_msfilter), "::", stringify!(imsf_slist))
2667     );
2668 }
2669 #[repr(C)]
2670 #[derive(Debug, Copy, Clone)]
2671 pub struct group_filter {
2672     pub gf_interface: u32,
2673     pub gf_group: sockaddr_storage,
2674     pub gf_fmode: u32,
2675     pub gf_numsrc: u32,
2676     pub gf_slist: [sockaddr_storage; 1usize],
2677 }
2678 #[test]
bindgen_test_layout_group_filter()2679 fn bindgen_test_layout_group_filter() {
2680     const UNINIT: ::std::mem::MaybeUninit<group_filter> = ::std::mem::MaybeUninit::uninit();
2681     let ptr = UNINIT.as_ptr();
2682     assert_eq!(
2683         ::std::mem::size_of::<group_filter>(),
2684         272usize,
2685         concat!("Size of: ", stringify!(group_filter))
2686     );
2687     assert_eq!(
2688         ::std::mem::align_of::<group_filter>(),
2689         8usize,
2690         concat!("Alignment of ", stringify!(group_filter))
2691     );
2692     assert_eq!(
2693         unsafe { ::std::ptr::addr_of!((*ptr).gf_interface) as usize - ptr as usize },
2694         0usize,
2695         concat!("Offset of field: ", stringify!(group_filter), "::", stringify!(gf_interface))
2696     );
2697     assert_eq!(
2698         unsafe { ::std::ptr::addr_of!((*ptr).gf_group) as usize - ptr as usize },
2699         8usize,
2700         concat!("Offset of field: ", stringify!(group_filter), "::", stringify!(gf_group))
2701     );
2702     assert_eq!(
2703         unsafe { ::std::ptr::addr_of!((*ptr).gf_fmode) as usize - ptr as usize },
2704         136usize,
2705         concat!("Offset of field: ", stringify!(group_filter), "::", stringify!(gf_fmode))
2706     );
2707     assert_eq!(
2708         unsafe { ::std::ptr::addr_of!((*ptr).gf_numsrc) as usize - ptr as usize },
2709         140usize,
2710         concat!("Offset of field: ", stringify!(group_filter), "::", stringify!(gf_numsrc))
2711     );
2712     assert_eq!(
2713         unsafe { ::std::ptr::addr_of!((*ptr).gf_slist) as usize - ptr as usize },
2714         144usize,
2715         concat!("Offset of field: ", stringify!(group_filter), "::", stringify!(gf_slist))
2716     );
2717 }
2718 extern "C" {
ntohl(__netlong: u32) -> u322719     pub fn ntohl(__netlong: u32) -> u32;
2720 }
2721 extern "C" {
ntohs(__netshort: u16) -> u162722     pub fn ntohs(__netshort: u16) -> u16;
2723 }
2724 extern "C" {
htonl(__hostlong: u32) -> u322725     pub fn htonl(__hostlong: u32) -> u32;
2726 }
2727 extern "C" {
htons(__hostshort: u16) -> u162728     pub fn htons(__hostshort: u16) -> u16;
2729 }
2730 extern "C" {
bindresvport( __sockfd: ::std::os::raw::c_int, __sock_in: *mut sockaddr_in, ) -> ::std::os::raw::c_int2731     pub fn bindresvport(
2732         __sockfd: ::std::os::raw::c_int,
2733         __sock_in: *mut sockaddr_in,
2734     ) -> ::std::os::raw::c_int;
2735 }
2736 extern "C" {
bindresvport6( __sockfd: ::std::os::raw::c_int, __sock_in: *mut sockaddr_in6, ) -> ::std::os::raw::c_int2737     pub fn bindresvport6(
2738         __sockfd: ::std::os::raw::c_int,
2739         __sock_in: *mut sockaddr_in6,
2740     ) -> ::std::os::raw::c_int;
2741 }
2742 extern "C" {
inet_addr(__cp: *const ::std::os::raw::c_char) -> in_addr_t2743     pub fn inet_addr(__cp: *const ::std::os::raw::c_char) -> in_addr_t;
2744 }
2745 extern "C" {
inet_lnaof(__in: in_addr) -> in_addr_t2746     pub fn inet_lnaof(__in: in_addr) -> in_addr_t;
2747 }
2748 extern "C" {
inet_makeaddr(__net: in_addr_t, __host: in_addr_t) -> in_addr2749     pub fn inet_makeaddr(__net: in_addr_t, __host: in_addr_t) -> in_addr;
2750 }
2751 extern "C" {
inet_netof(__in: in_addr) -> in_addr_t2752     pub fn inet_netof(__in: in_addr) -> in_addr_t;
2753 }
2754 extern "C" {
inet_network(__cp: *const ::std::os::raw::c_char) -> in_addr_t2755     pub fn inet_network(__cp: *const ::std::os::raw::c_char) -> in_addr_t;
2756 }
2757 extern "C" {
inet_ntoa(__in: in_addr) -> *mut ::std::os::raw::c_char2758     pub fn inet_ntoa(__in: in_addr) -> *mut ::std::os::raw::c_char;
2759 }
2760 extern "C" {
inet_pton( __af: ::std::os::raw::c_int, __cp: *const ::std::os::raw::c_char, __buf: *mut ::std::os::raw::c_void, ) -> ::std::os::raw::c_int2761     pub fn inet_pton(
2762         __af: ::std::os::raw::c_int,
2763         __cp: *const ::std::os::raw::c_char,
2764         __buf: *mut ::std::os::raw::c_void,
2765     ) -> ::std::os::raw::c_int;
2766 }
2767 extern "C" {
inet_ntop( __af: ::std::os::raw::c_int, __cp: *const ::std::os::raw::c_void, __buf: *mut ::std::os::raw::c_char, __len: socklen_t, ) -> *const ::std::os::raw::c_char2768     pub fn inet_ntop(
2769         __af: ::std::os::raw::c_int,
2770         __cp: *const ::std::os::raw::c_void,
2771         __buf: *mut ::std::os::raw::c_char,
2772         __len: socklen_t,
2773     ) -> *const ::std::os::raw::c_char;
2774 }
2775 extern "C" {
inet_aton( __cp: *const ::std::os::raw::c_char, __inp: *mut in_addr, ) -> ::std::os::raw::c_int2776     pub fn inet_aton(
2777         __cp: *const ::std::os::raw::c_char,
2778         __inp: *mut in_addr,
2779     ) -> ::std::os::raw::c_int;
2780 }
2781 extern "C" {
inet_neta( __net: in_addr_t, __buf: *mut ::std::os::raw::c_char, __len: usize, ) -> *mut ::std::os::raw::c_char2782     pub fn inet_neta(
2783         __net: in_addr_t,
2784         __buf: *mut ::std::os::raw::c_char,
2785         __len: usize,
2786     ) -> *mut ::std::os::raw::c_char;
2787 }
2788 extern "C" {
inet_net_ntop( __af: ::std::os::raw::c_int, __cp: *const ::std::os::raw::c_void, __bits: ::std::os::raw::c_int, __buf: *mut ::std::os::raw::c_char, __len: usize, ) -> *mut ::std::os::raw::c_char2789     pub fn inet_net_ntop(
2790         __af: ::std::os::raw::c_int,
2791         __cp: *const ::std::os::raw::c_void,
2792         __bits: ::std::os::raw::c_int,
2793         __buf: *mut ::std::os::raw::c_char,
2794         __len: usize,
2795     ) -> *mut ::std::os::raw::c_char;
2796 }
2797 extern "C" {
inet_net_pton( __af: ::std::os::raw::c_int, __cp: *const ::std::os::raw::c_char, __buf: *mut ::std::os::raw::c_void, __len: usize, ) -> ::std::os::raw::c_int2798     pub fn inet_net_pton(
2799         __af: ::std::os::raw::c_int,
2800         __cp: *const ::std::os::raw::c_char,
2801         __buf: *mut ::std::os::raw::c_void,
2802         __len: usize,
2803     ) -> ::std::os::raw::c_int;
2804 }
2805 extern "C" {
inet_nsap_addr( __cp: *const ::std::os::raw::c_char, __buf: *mut ::std::os::raw::c_uchar, __len: ::std::os::raw::c_int, ) -> ::std::os::raw::c_uint2806     pub fn inet_nsap_addr(
2807         __cp: *const ::std::os::raw::c_char,
2808         __buf: *mut ::std::os::raw::c_uchar,
2809         __len: ::std::os::raw::c_int,
2810     ) -> ::std::os::raw::c_uint;
2811 }
2812 extern "C" {
inet_nsap_ntoa( __len: ::std::os::raw::c_int, __cp: *const ::std::os::raw::c_uchar, __buf: *mut ::std::os::raw::c_char, ) -> *mut ::std::os::raw::c_char2813     pub fn inet_nsap_ntoa(
2814         __len: ::std::os::raw::c_int,
2815         __cp: *const ::std::os::raw::c_uchar,
2816         __buf: *mut ::std::os::raw::c_char,
2817     ) -> *mut ::std::os::raw::c_char;
2818 }
2819 #[repr(C)]
2820 #[derive(Debug, Copy, Clone)]
2821 pub struct Slirp {
2822     _unused: [u8; 0],
2823 }
2824 pub const SLIRP_POLL_IN: _bindgen_ty_7 = 1;
2825 pub const SLIRP_POLL_OUT: _bindgen_ty_7 = 2;
2826 pub const SLIRP_POLL_PRI: _bindgen_ty_7 = 4;
2827 pub const SLIRP_POLL_ERR: _bindgen_ty_7 = 8;
2828 pub const SLIRP_POLL_HUP: _bindgen_ty_7 = 16;
2829 pub type _bindgen_ty_7 = ::std::os::raw::c_uint;
2830 pub type SlirpReadCb = ::std::option::Option<
2831     unsafe extern "C" fn(
2832         buf: *mut ::std::os::raw::c_void,
2833         len: usize,
2834         opaque: *mut ::std::os::raw::c_void,
2835     ) -> slirp_ssize_t,
2836 >;
2837 pub type SlirpWriteCb = ::std::option::Option<
2838     unsafe extern "C" fn(
2839         buf: *const ::std::os::raw::c_void,
2840         len: usize,
2841         opaque: *mut ::std::os::raw::c_void,
2842     ) -> slirp_ssize_t,
2843 >;
2844 pub type SlirpTimerCb =
2845     ::std::option::Option<unsafe extern "C" fn(opaque: *mut ::std::os::raw::c_void)>;
2846 pub type SlirpAddPollCb = ::std::option::Option<
2847     unsafe extern "C" fn(
2848         fd: ::std::os::raw::c_int,
2849         events: ::std::os::raw::c_int,
2850         opaque: *mut ::std::os::raw::c_void,
2851     ) -> ::std::os::raw::c_int,
2852 >;
2853 pub type SlirpGetREventsCb = ::std::option::Option<
2854     unsafe extern "C" fn(
2855         idx: ::std::os::raw::c_int,
2856         opaque: *mut ::std::os::raw::c_void,
2857     ) -> ::std::os::raw::c_int,
2858 >;
2859 pub type SlirpProxyConnectFunc = ::std::option::Option<
2860     unsafe extern "C" fn(
2861         connect_opaque: *mut ::std::os::raw::c_void,
2862         fd: ::std::os::raw::c_int,
2863         af: ::std::os::raw::c_int,
2864     ),
2865 >;
2866 pub const SlirpTimerId_SLIRP_TIMER_RA: SlirpTimerId = 0;
2867 pub const SlirpTimerId_SLIRP_TIMER_NUM: SlirpTimerId = 1;
2868 pub type SlirpTimerId = ::std::os::raw::c_uint;
2869 #[repr(C)]
2870 #[derive(Debug, Copy, Clone)]
2871 pub struct SlirpCb {
2872     pub send_packet: SlirpWriteCb,
2873     pub guest_error: ::std::option::Option<
2874         unsafe extern "C" fn(
2875             msg: *const ::std::os::raw::c_char,
2876             opaque: *mut ::std::os::raw::c_void,
2877         ),
2878     >,
2879     pub clock_get_ns:
2880         ::std::option::Option<unsafe extern "C" fn(opaque: *mut ::std::os::raw::c_void) -> i64>,
2881     pub timer_new: ::std::option::Option<
2882         unsafe extern "C" fn(
2883             cb: SlirpTimerCb,
2884             cb_opaque: *mut ::std::os::raw::c_void,
2885             opaque: *mut ::std::os::raw::c_void,
2886         ) -> *mut ::std::os::raw::c_void,
2887     >,
2888     pub timer_free: ::std::option::Option<
2889         unsafe extern "C" fn(
2890             timer: *mut ::std::os::raw::c_void,
2891             opaque: *mut ::std::os::raw::c_void,
2892         ),
2893     >,
2894     pub timer_mod: ::std::option::Option<
2895         unsafe extern "C" fn(
2896             timer: *mut ::std::os::raw::c_void,
2897             expire_time: i64,
2898             opaque: *mut ::std::os::raw::c_void,
2899         ),
2900     >,
2901     pub register_poll_fd: ::std::option::Option<
2902         unsafe extern "C" fn(fd: ::std::os::raw::c_int, opaque: *mut ::std::os::raw::c_void),
2903     >,
2904     pub unregister_poll_fd: ::std::option::Option<
2905         unsafe extern "C" fn(fd: ::std::os::raw::c_int, opaque: *mut ::std::os::raw::c_void),
2906     >,
2907     pub notify: ::std::option::Option<unsafe extern "C" fn(opaque: *mut ::std::os::raw::c_void)>,
2908     pub init_completed: ::std::option::Option<
2909         unsafe extern "C" fn(slirp: *mut Slirp, opaque: *mut ::std::os::raw::c_void),
2910     >,
2911     pub timer_new_opaque: ::std::option::Option<
2912         unsafe extern "C" fn(
2913             id: SlirpTimerId,
2914             cb_opaque: *mut ::std::os::raw::c_void,
2915             opaque: *mut ::std::os::raw::c_void,
2916         ) -> *mut ::std::os::raw::c_void,
2917     >,
2918     pub try_connect: ::std::option::Option<
2919         unsafe extern "C" fn(
2920             addr: *const sockaddr_storage,
2921             connect_func: SlirpProxyConnectFunc,
2922             connect_opaque: *mut ::std::os::raw::c_void,
2923             opaque: *mut ::std::os::raw::c_void,
2924         ) -> bool,
2925     >,
2926     pub remove: ::std::option::Option<
2927         unsafe extern "C" fn(
2928             connect_opaque: *mut ::std::os::raw::c_void,
2929             opaque: *mut ::std::os::raw::c_void,
2930         ),
2931     >,
2932 }
2933 #[test]
bindgen_test_layout_SlirpCb()2934 fn bindgen_test_layout_SlirpCb() {
2935     const UNINIT: ::std::mem::MaybeUninit<SlirpCb> = ::std::mem::MaybeUninit::uninit();
2936     let ptr = UNINIT.as_ptr();
2937     assert_eq!(
2938         ::std::mem::size_of::<SlirpCb>(),
2939         104usize,
2940         concat!("Size of: ", stringify!(SlirpCb))
2941     );
2942     assert_eq!(
2943         ::std::mem::align_of::<SlirpCb>(),
2944         8usize,
2945         concat!("Alignment of ", stringify!(SlirpCb))
2946     );
2947     assert_eq!(
2948         unsafe { ::std::ptr::addr_of!((*ptr).send_packet) as usize - ptr as usize },
2949         0usize,
2950         concat!("Offset of field: ", stringify!(SlirpCb), "::", stringify!(send_packet))
2951     );
2952     assert_eq!(
2953         unsafe { ::std::ptr::addr_of!((*ptr).guest_error) as usize - ptr as usize },
2954         8usize,
2955         concat!("Offset of field: ", stringify!(SlirpCb), "::", stringify!(guest_error))
2956     );
2957     assert_eq!(
2958         unsafe { ::std::ptr::addr_of!((*ptr).clock_get_ns) as usize - ptr as usize },
2959         16usize,
2960         concat!("Offset of field: ", stringify!(SlirpCb), "::", stringify!(clock_get_ns))
2961     );
2962     assert_eq!(
2963         unsafe { ::std::ptr::addr_of!((*ptr).timer_new) as usize - ptr as usize },
2964         24usize,
2965         concat!("Offset of field: ", stringify!(SlirpCb), "::", stringify!(timer_new))
2966     );
2967     assert_eq!(
2968         unsafe { ::std::ptr::addr_of!((*ptr).timer_free) as usize - ptr as usize },
2969         32usize,
2970         concat!("Offset of field: ", stringify!(SlirpCb), "::", stringify!(timer_free))
2971     );
2972     assert_eq!(
2973         unsafe { ::std::ptr::addr_of!((*ptr).timer_mod) as usize - ptr as usize },
2974         40usize,
2975         concat!("Offset of field: ", stringify!(SlirpCb), "::", stringify!(timer_mod))
2976     );
2977     assert_eq!(
2978         unsafe { ::std::ptr::addr_of!((*ptr).register_poll_fd) as usize - ptr as usize },
2979         48usize,
2980         concat!("Offset of field: ", stringify!(SlirpCb), "::", stringify!(register_poll_fd))
2981     );
2982     assert_eq!(
2983         unsafe { ::std::ptr::addr_of!((*ptr).unregister_poll_fd) as usize - ptr as usize },
2984         56usize,
2985         concat!("Offset of field: ", stringify!(SlirpCb), "::", stringify!(unregister_poll_fd))
2986     );
2987     assert_eq!(
2988         unsafe { ::std::ptr::addr_of!((*ptr).notify) as usize - ptr as usize },
2989         64usize,
2990         concat!("Offset of field: ", stringify!(SlirpCb), "::", stringify!(notify))
2991     );
2992     assert_eq!(
2993         unsafe { ::std::ptr::addr_of!((*ptr).init_completed) as usize - ptr as usize },
2994         72usize,
2995         concat!("Offset of field: ", stringify!(SlirpCb), "::", stringify!(init_completed))
2996     );
2997     assert_eq!(
2998         unsafe { ::std::ptr::addr_of!((*ptr).timer_new_opaque) as usize - ptr as usize },
2999         80usize,
3000         concat!("Offset of field: ", stringify!(SlirpCb), "::", stringify!(timer_new_opaque))
3001     );
3002     assert_eq!(
3003         unsafe { ::std::ptr::addr_of!((*ptr).try_connect) as usize - ptr as usize },
3004         88usize,
3005         concat!("Offset of field: ", stringify!(SlirpCb), "::", stringify!(try_connect))
3006     );
3007     assert_eq!(
3008         unsafe { ::std::ptr::addr_of!((*ptr).remove) as usize - ptr as usize },
3009         96usize,
3010         concat!("Offset of field: ", stringify!(SlirpCb), "::", stringify!(remove))
3011     );
3012 }
3013 #[repr(C)]
3014 #[derive(Copy, Clone)]
3015 pub struct SlirpConfig {
3016     pub version: u32,
3017     pub restricted: ::std::os::raw::c_int,
3018     pub in_enabled: bool,
3019     pub vnetwork: in_addr,
3020     pub vnetmask: in_addr,
3021     pub vhost: in_addr,
3022     pub in6_enabled: bool,
3023     pub vprefix_addr6: in6_addr,
3024     pub vprefix_len: u8,
3025     pub vhost6: in6_addr,
3026     pub vhostname: *const ::std::os::raw::c_char,
3027     pub tftp_server_name: *const ::std::os::raw::c_char,
3028     pub tftp_path: *const ::std::os::raw::c_char,
3029     pub bootfile: *const ::std::os::raw::c_char,
3030     pub vdhcp_start: in_addr,
3031     pub vnameserver: in_addr,
3032     pub vnameserver6: in6_addr,
3033     pub vdnssearch: *mut *const ::std::os::raw::c_char,
3034     pub vdomainname: *const ::std::os::raw::c_char,
3035     pub if_mtu: usize,
3036     pub if_mru: usize,
3037     pub disable_host_loopback: bool,
3038     pub enable_emu: bool,
3039     pub outbound_addr: *mut sockaddr_in,
3040     pub outbound_addr6: *mut sockaddr_in6,
3041     pub disable_dns: bool,
3042     pub disable_dhcp: bool,
3043     pub mfr_id: u32,
3044     pub oob_eth_addr: [u8; 6usize],
3045     pub http_proxy_on: bool,
3046     pub host_dns_count: usize,
3047     pub host_dns: [sockaddr_storage; 4usize],
3048 }
3049 #[test]
bindgen_test_layout_SlirpConfig()3050 fn bindgen_test_layout_SlirpConfig() {
3051     const UNINIT: ::std::mem::MaybeUninit<SlirpConfig> = ::std::mem::MaybeUninit::uninit();
3052     let ptr = UNINIT.as_ptr();
3053     assert_eq!(
3054         ::std::mem::size_of::<SlirpConfig>(),
3055         712usize,
3056         concat!("Size of: ", stringify!(SlirpConfig))
3057     );
3058     assert_eq!(
3059         ::std::mem::align_of::<SlirpConfig>(),
3060         8usize,
3061         concat!("Alignment of ", stringify!(SlirpConfig))
3062     );
3063     assert_eq!(
3064         unsafe { ::std::ptr::addr_of!((*ptr).version) as usize - ptr as usize },
3065         0usize,
3066         concat!("Offset of field: ", stringify!(SlirpConfig), "::", stringify!(version))
3067     );
3068     assert_eq!(
3069         unsafe { ::std::ptr::addr_of!((*ptr).restricted) as usize - ptr as usize },
3070         4usize,
3071         concat!("Offset of field: ", stringify!(SlirpConfig), "::", stringify!(restricted))
3072     );
3073     assert_eq!(
3074         unsafe { ::std::ptr::addr_of!((*ptr).in_enabled) as usize - ptr as usize },
3075         8usize,
3076         concat!("Offset of field: ", stringify!(SlirpConfig), "::", stringify!(in_enabled))
3077     );
3078     assert_eq!(
3079         unsafe { ::std::ptr::addr_of!((*ptr).vnetwork) as usize - ptr as usize },
3080         12usize,
3081         concat!("Offset of field: ", stringify!(SlirpConfig), "::", stringify!(vnetwork))
3082     );
3083     assert_eq!(
3084         unsafe { ::std::ptr::addr_of!((*ptr).vnetmask) as usize - ptr as usize },
3085         16usize,
3086         concat!("Offset of field: ", stringify!(SlirpConfig), "::", stringify!(vnetmask))
3087     );
3088     assert_eq!(
3089         unsafe { ::std::ptr::addr_of!((*ptr).vhost) as usize - ptr as usize },
3090         20usize,
3091         concat!("Offset of field: ", stringify!(SlirpConfig), "::", stringify!(vhost))
3092     );
3093     assert_eq!(
3094         unsafe { ::std::ptr::addr_of!((*ptr).in6_enabled) as usize - ptr as usize },
3095         24usize,
3096         concat!("Offset of field: ", stringify!(SlirpConfig), "::", stringify!(in6_enabled))
3097     );
3098     assert_eq!(
3099         unsafe { ::std::ptr::addr_of!((*ptr).vprefix_addr6) as usize - ptr as usize },
3100         28usize,
3101         concat!("Offset of field: ", stringify!(SlirpConfig), "::", stringify!(vprefix_addr6))
3102     );
3103     assert_eq!(
3104         unsafe { ::std::ptr::addr_of!((*ptr).vprefix_len) as usize - ptr as usize },
3105         44usize,
3106         concat!("Offset of field: ", stringify!(SlirpConfig), "::", stringify!(vprefix_len))
3107     );
3108     assert_eq!(
3109         unsafe { ::std::ptr::addr_of!((*ptr).vhost6) as usize - ptr as usize },
3110         48usize,
3111         concat!("Offset of field: ", stringify!(SlirpConfig), "::", stringify!(vhost6))
3112     );
3113     assert_eq!(
3114         unsafe { ::std::ptr::addr_of!((*ptr).vhostname) as usize - ptr as usize },
3115         64usize,
3116         concat!("Offset of field: ", stringify!(SlirpConfig), "::", stringify!(vhostname))
3117     );
3118     assert_eq!(
3119         unsafe { ::std::ptr::addr_of!((*ptr).tftp_server_name) as usize - ptr as usize },
3120         72usize,
3121         concat!("Offset of field: ", stringify!(SlirpConfig), "::", stringify!(tftp_server_name))
3122     );
3123     assert_eq!(
3124         unsafe { ::std::ptr::addr_of!((*ptr).tftp_path) as usize - ptr as usize },
3125         80usize,
3126         concat!("Offset of field: ", stringify!(SlirpConfig), "::", stringify!(tftp_path))
3127     );
3128     assert_eq!(
3129         unsafe { ::std::ptr::addr_of!((*ptr).bootfile) as usize - ptr as usize },
3130         88usize,
3131         concat!("Offset of field: ", stringify!(SlirpConfig), "::", stringify!(bootfile))
3132     );
3133     assert_eq!(
3134         unsafe { ::std::ptr::addr_of!((*ptr).vdhcp_start) as usize - ptr as usize },
3135         96usize,
3136         concat!("Offset of field: ", stringify!(SlirpConfig), "::", stringify!(vdhcp_start))
3137     );
3138     assert_eq!(
3139         unsafe { ::std::ptr::addr_of!((*ptr).vnameserver) as usize - ptr as usize },
3140         100usize,
3141         concat!("Offset of field: ", stringify!(SlirpConfig), "::", stringify!(vnameserver))
3142     );
3143     assert_eq!(
3144         unsafe { ::std::ptr::addr_of!((*ptr).vnameserver6) as usize - ptr as usize },
3145         104usize,
3146         concat!("Offset of field: ", stringify!(SlirpConfig), "::", stringify!(vnameserver6))
3147     );
3148     assert_eq!(
3149         unsafe { ::std::ptr::addr_of!((*ptr).vdnssearch) as usize - ptr as usize },
3150         120usize,
3151         concat!("Offset of field: ", stringify!(SlirpConfig), "::", stringify!(vdnssearch))
3152     );
3153     assert_eq!(
3154         unsafe { ::std::ptr::addr_of!((*ptr).vdomainname) as usize - ptr as usize },
3155         128usize,
3156         concat!("Offset of field: ", stringify!(SlirpConfig), "::", stringify!(vdomainname))
3157     );
3158     assert_eq!(
3159         unsafe { ::std::ptr::addr_of!((*ptr).if_mtu) as usize - ptr as usize },
3160         136usize,
3161         concat!("Offset of field: ", stringify!(SlirpConfig), "::", stringify!(if_mtu))
3162     );
3163     assert_eq!(
3164         unsafe { ::std::ptr::addr_of!((*ptr).if_mru) as usize - ptr as usize },
3165         144usize,
3166         concat!("Offset of field: ", stringify!(SlirpConfig), "::", stringify!(if_mru))
3167     );
3168     assert_eq!(
3169         unsafe { ::std::ptr::addr_of!((*ptr).disable_host_loopback) as usize - ptr as usize },
3170         152usize,
3171         concat!(
3172             "Offset of field: ",
3173             stringify!(SlirpConfig),
3174             "::",
3175             stringify!(disable_host_loopback)
3176         )
3177     );
3178     assert_eq!(
3179         unsafe { ::std::ptr::addr_of!((*ptr).enable_emu) as usize - ptr as usize },
3180         153usize,
3181         concat!("Offset of field: ", stringify!(SlirpConfig), "::", stringify!(enable_emu))
3182     );
3183     assert_eq!(
3184         unsafe { ::std::ptr::addr_of!((*ptr).outbound_addr) as usize - ptr as usize },
3185         160usize,
3186         concat!("Offset of field: ", stringify!(SlirpConfig), "::", stringify!(outbound_addr))
3187     );
3188     assert_eq!(
3189         unsafe { ::std::ptr::addr_of!((*ptr).outbound_addr6) as usize - ptr as usize },
3190         168usize,
3191         concat!("Offset of field: ", stringify!(SlirpConfig), "::", stringify!(outbound_addr6))
3192     );
3193     assert_eq!(
3194         unsafe { ::std::ptr::addr_of!((*ptr).disable_dns) as usize - ptr as usize },
3195         176usize,
3196         concat!("Offset of field: ", stringify!(SlirpConfig), "::", stringify!(disable_dns))
3197     );
3198     assert_eq!(
3199         unsafe { ::std::ptr::addr_of!((*ptr).disable_dhcp) as usize - ptr as usize },
3200         177usize,
3201         concat!("Offset of field: ", stringify!(SlirpConfig), "::", stringify!(disable_dhcp))
3202     );
3203     assert_eq!(
3204         unsafe { ::std::ptr::addr_of!((*ptr).mfr_id) as usize - ptr as usize },
3205         180usize,
3206         concat!("Offset of field: ", stringify!(SlirpConfig), "::", stringify!(mfr_id))
3207     );
3208     assert_eq!(
3209         unsafe { ::std::ptr::addr_of!((*ptr).oob_eth_addr) as usize - ptr as usize },
3210         184usize,
3211         concat!("Offset of field: ", stringify!(SlirpConfig), "::", stringify!(oob_eth_addr))
3212     );
3213     assert_eq!(
3214         unsafe { ::std::ptr::addr_of!((*ptr).http_proxy_on) as usize - ptr as usize },
3215         190usize,
3216         concat!("Offset of field: ", stringify!(SlirpConfig), "::", stringify!(http_proxy_on))
3217     );
3218     assert_eq!(
3219         unsafe { ::std::ptr::addr_of!((*ptr).host_dns_count) as usize - ptr as usize },
3220         192usize,
3221         concat!("Offset of field: ", stringify!(SlirpConfig), "::", stringify!(host_dns_count))
3222     );
3223     assert_eq!(
3224         unsafe { ::std::ptr::addr_of!((*ptr).host_dns) as usize - ptr as usize },
3225         200usize,
3226         concat!("Offset of field: ", stringify!(SlirpConfig), "::", stringify!(host_dns))
3227     );
3228 }
3229 extern "C" {
slirp_new( cfg: *const SlirpConfig, callbacks: *const SlirpCb, opaque: *mut ::std::os::raw::c_void, ) -> *mut Slirp3230     pub fn slirp_new(
3231         cfg: *const SlirpConfig,
3232         callbacks: *const SlirpCb,
3233         opaque: *mut ::std::os::raw::c_void,
3234     ) -> *mut Slirp;
3235 }
3236 extern "C" {
slirp_init( restricted: ::std::os::raw::c_int, in_enabled: bool, vnetwork: in_addr, vnetmask: in_addr, vhost: in_addr, in6_enabled: bool, vprefix_addr6: in6_addr, vprefix_len: u8, vhost6: in6_addr, vhostname: *const ::std::os::raw::c_char, tftp_server_name: *const ::std::os::raw::c_char, tftp_path: *const ::std::os::raw::c_char, bootfile: *const ::std::os::raw::c_char, vdhcp_start: in_addr, vnameserver: in_addr, vnameserver6: in6_addr, vdnssearch: *mut *const ::std::os::raw::c_char, vdomainname: *const ::std::os::raw::c_char, callbacks: *const SlirpCb, opaque: *mut ::std::os::raw::c_void, ) -> *mut Slirp3237     pub fn slirp_init(
3238         restricted: ::std::os::raw::c_int,
3239         in_enabled: bool,
3240         vnetwork: in_addr,
3241         vnetmask: in_addr,
3242         vhost: in_addr,
3243         in6_enabled: bool,
3244         vprefix_addr6: in6_addr,
3245         vprefix_len: u8,
3246         vhost6: in6_addr,
3247         vhostname: *const ::std::os::raw::c_char,
3248         tftp_server_name: *const ::std::os::raw::c_char,
3249         tftp_path: *const ::std::os::raw::c_char,
3250         bootfile: *const ::std::os::raw::c_char,
3251         vdhcp_start: in_addr,
3252         vnameserver: in_addr,
3253         vnameserver6: in6_addr,
3254         vdnssearch: *mut *const ::std::os::raw::c_char,
3255         vdomainname: *const ::std::os::raw::c_char,
3256         callbacks: *const SlirpCb,
3257         opaque: *mut ::std::os::raw::c_void,
3258     ) -> *mut Slirp;
3259 }
3260 extern "C" {
slirp_cleanup(slirp: *mut Slirp)3261     pub fn slirp_cleanup(slirp: *mut Slirp);
3262 }
3263 extern "C" {
slirp_pollfds_fill( slirp: *mut Slirp, timeout: *mut u32, add_poll: SlirpAddPollCb, opaque: *mut ::std::os::raw::c_void, )3264     pub fn slirp_pollfds_fill(
3265         slirp: *mut Slirp,
3266         timeout: *mut u32,
3267         add_poll: SlirpAddPollCb,
3268         opaque: *mut ::std::os::raw::c_void,
3269     );
3270 }
3271 extern "C" {
slirp_pollfds_poll( slirp: *mut Slirp, select_error: ::std::os::raw::c_int, get_revents: SlirpGetREventsCb, opaque: *mut ::std::os::raw::c_void, )3272     pub fn slirp_pollfds_poll(
3273         slirp: *mut Slirp,
3274         select_error: ::std::os::raw::c_int,
3275         get_revents: SlirpGetREventsCb,
3276         opaque: *mut ::std::os::raw::c_void,
3277     );
3278 }
3279 extern "C" {
slirp_input(slirp: *mut Slirp, pkt: *const u8, pkt_len: ::std::os::raw::c_int)3280     pub fn slirp_input(slirp: *mut Slirp, pkt: *const u8, pkt_len: ::std::os::raw::c_int);
3281 }
3282 extern "C" {
slirp_handle_timer( slirp: *mut Slirp, id: SlirpTimerId, cb_opaque: *mut ::std::os::raw::c_void, )3283     pub fn slirp_handle_timer(
3284         slirp: *mut Slirp,
3285         id: SlirpTimerId,
3286         cb_opaque: *mut ::std::os::raw::c_void,
3287     );
3288 }
3289 extern "C" {
slirp_add_hostfwd( slirp: *mut Slirp, is_udp: ::std::os::raw::c_int, host_addr: in_addr, host_port: ::std::os::raw::c_int, guest_addr: in_addr, guest_port: ::std::os::raw::c_int, ) -> ::std::os::raw::c_int3290     pub fn slirp_add_hostfwd(
3291         slirp: *mut Slirp,
3292         is_udp: ::std::os::raw::c_int,
3293         host_addr: in_addr,
3294         host_port: ::std::os::raw::c_int,
3295         guest_addr: in_addr,
3296         guest_port: ::std::os::raw::c_int,
3297     ) -> ::std::os::raw::c_int;
3298 }
3299 extern "C" {
slirp_remove_hostfwd( slirp: *mut Slirp, is_udp: ::std::os::raw::c_int, host_addr: in_addr, host_port: ::std::os::raw::c_int, ) -> ::std::os::raw::c_int3300     pub fn slirp_remove_hostfwd(
3301         slirp: *mut Slirp,
3302         is_udp: ::std::os::raw::c_int,
3303         host_addr: in_addr,
3304         host_port: ::std::os::raw::c_int,
3305     ) -> ::std::os::raw::c_int;
3306 }
3307 extern "C" {
slirp_add_hostxfwd( slirp: *mut Slirp, haddr: *const sockaddr, haddrlen: socklen_t, gaddr: *const sockaddr, gaddrlen: socklen_t, flags: ::std::os::raw::c_int, ) -> ::std::os::raw::c_int3308     pub fn slirp_add_hostxfwd(
3309         slirp: *mut Slirp,
3310         haddr: *const sockaddr,
3311         haddrlen: socklen_t,
3312         gaddr: *const sockaddr,
3313         gaddrlen: socklen_t,
3314         flags: ::std::os::raw::c_int,
3315     ) -> ::std::os::raw::c_int;
3316 }
3317 extern "C" {
slirp_remove_hostxfwd( slirp: *mut Slirp, haddr: *const sockaddr, haddrlen: socklen_t, flags: ::std::os::raw::c_int, ) -> ::std::os::raw::c_int3318     pub fn slirp_remove_hostxfwd(
3319         slirp: *mut Slirp,
3320         haddr: *const sockaddr,
3321         haddrlen: socklen_t,
3322         flags: ::std::os::raw::c_int,
3323     ) -> ::std::os::raw::c_int;
3324 }
3325 extern "C" {
slirp_add_exec( slirp: *mut Slirp, cmdline: *const ::std::os::raw::c_char, guest_addr: *mut in_addr, guest_port: ::std::os::raw::c_int, ) -> ::std::os::raw::c_int3326     pub fn slirp_add_exec(
3327         slirp: *mut Slirp,
3328         cmdline: *const ::std::os::raw::c_char,
3329         guest_addr: *mut in_addr,
3330         guest_port: ::std::os::raw::c_int,
3331     ) -> ::std::os::raw::c_int;
3332 }
3333 extern "C" {
slirp_add_unix( slirp: *mut Slirp, unixsock: *const ::std::os::raw::c_char, guest_addr: *mut in_addr, guest_port: ::std::os::raw::c_int, ) -> ::std::os::raw::c_int3334     pub fn slirp_add_unix(
3335         slirp: *mut Slirp,
3336         unixsock: *const ::std::os::raw::c_char,
3337         guest_addr: *mut in_addr,
3338         guest_port: ::std::os::raw::c_int,
3339     ) -> ::std::os::raw::c_int;
3340 }
3341 extern "C" {
slirp_add_guestfwd( slirp: *mut Slirp, write_cb: SlirpWriteCb, opaque: *mut ::std::os::raw::c_void, guest_addr: *mut in_addr, guest_port: ::std::os::raw::c_int, ) -> ::std::os::raw::c_int3342     pub fn slirp_add_guestfwd(
3343         slirp: *mut Slirp,
3344         write_cb: SlirpWriteCb,
3345         opaque: *mut ::std::os::raw::c_void,
3346         guest_addr: *mut in_addr,
3347         guest_port: ::std::os::raw::c_int,
3348     ) -> ::std::os::raw::c_int;
3349 }
3350 extern "C" {
slirp_socket_can_recv( slirp: *mut Slirp, guest_addr: in_addr, guest_port: ::std::os::raw::c_int, ) -> usize3351     pub fn slirp_socket_can_recv(
3352         slirp: *mut Slirp,
3353         guest_addr: in_addr,
3354         guest_port: ::std::os::raw::c_int,
3355     ) -> usize;
3356 }
3357 extern "C" {
slirp_socket_recv( slirp: *mut Slirp, guest_addr: in_addr, guest_port: ::std::os::raw::c_int, buf: *const u8, size: ::std::os::raw::c_int, )3358     pub fn slirp_socket_recv(
3359         slirp: *mut Slirp,
3360         guest_addr: in_addr,
3361         guest_port: ::std::os::raw::c_int,
3362         buf: *const u8,
3363         size: ::std::os::raw::c_int,
3364     );
3365 }
3366 extern "C" {
slirp_remove_guestfwd( slirp: *mut Slirp, guest_addr: in_addr, guest_port: ::std::os::raw::c_int, ) -> ::std::os::raw::c_int3367     pub fn slirp_remove_guestfwd(
3368         slirp: *mut Slirp,
3369         guest_addr: in_addr,
3370         guest_port: ::std::os::raw::c_int,
3371     ) -> ::std::os::raw::c_int;
3372 }
3373 extern "C" {
slirp_connection_info(slirp: *mut Slirp) -> *mut ::std::os::raw::c_char3374     pub fn slirp_connection_info(slirp: *mut Slirp) -> *mut ::std::os::raw::c_char;
3375 }
3376 extern "C" {
slirp_neighbor_info(slirp: *mut Slirp) -> *mut ::std::os::raw::c_char3377     pub fn slirp_neighbor_info(slirp: *mut Slirp) -> *mut ::std::os::raw::c_char;
3378 }
3379 extern "C" {
slirp_state_save( s: *mut Slirp, write_cb: SlirpWriteCb, opaque: *mut ::std::os::raw::c_void, ) -> ::std::os::raw::c_int3380     pub fn slirp_state_save(
3381         s: *mut Slirp,
3382         write_cb: SlirpWriteCb,
3383         opaque: *mut ::std::os::raw::c_void,
3384     ) -> ::std::os::raw::c_int;
3385 }
3386 extern "C" {
slirp_state_version() -> ::std::os::raw::c_int3387     pub fn slirp_state_version() -> ::std::os::raw::c_int;
3388 }
3389 extern "C" {
slirp_state_load( s: *mut Slirp, version_id: ::std::os::raw::c_int, read_cb: SlirpReadCb, opaque: *mut ::std::os::raw::c_void, ) -> ::std::os::raw::c_int3390     pub fn slirp_state_load(
3391         s: *mut Slirp,
3392         version_id: ::std::os::raw::c_int,
3393         read_cb: SlirpReadCb,
3394         opaque: *mut ::std::os::raw::c_void,
3395     ) -> ::std::os::raw::c_int;
3396 }
3397 extern "C" {
slirp_version_string() -> *const ::std::os::raw::c_char3398     pub fn slirp_version_string() -> *const ::std::os::raw::c_char;
3399 }
3400