dbs_utils/net/net_gen/
inn.rs

1// Copyright 2017 The Chromium OS Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the THIRD-PARTY file.
4
5/* automatically generated by rust-bindgen */
6
7pub const __BITS_PER_LONG: ::std::os::raw::c_uint = 64;
8pub const __FD_SETSIZE: ::std::os::raw::c_uint = 1024;
9pub const __UAPI_DEF_IN_ADDR: ::std::os::raw::c_uint = 1;
10pub const __UAPI_DEF_IN_IPPROTO: ::std::os::raw::c_uint = 1;
11pub const __UAPI_DEF_IN_PKTINFO: ::std::os::raw::c_uint = 1;
12pub const __UAPI_DEF_IP_MREQ: ::std::os::raw::c_uint = 1;
13pub const __UAPI_DEF_SOCKADDR_IN: ::std::os::raw::c_uint = 1;
14pub const __UAPI_DEF_IN_CLASS: ::std::os::raw::c_uint = 1;
15pub const __UAPI_DEF_IN6_ADDR: ::std::os::raw::c_uint = 1;
16pub const __UAPI_DEF_IN6_ADDR_ALT: ::std::os::raw::c_uint = 1;
17pub const __UAPI_DEF_SOCKADDR_IN6: ::std::os::raw::c_uint = 1;
18pub const __UAPI_DEF_IPV6_MREQ: ::std::os::raw::c_uint = 1;
19pub const __UAPI_DEF_IPPROTO_V6: ::std::os::raw::c_uint = 1;
20pub const __UAPI_DEF_IPV6_OPTIONS: ::std::os::raw::c_uint = 1;
21pub const __UAPI_DEF_IN6_PKTINFO: ::std::os::raw::c_uint = 1;
22pub const __UAPI_DEF_IP6_MTUINFO: ::std::os::raw::c_uint = 1;
23pub const __UAPI_DEF_XATTR: ::std::os::raw::c_uint = 1;
24pub const _K_SS_MAXSIZE: ::std::os::raw::c_uint = 128;
25pub const IP_TOS: ::std::os::raw::c_uint = 1;
26pub const IP_TTL: ::std::os::raw::c_uint = 2;
27pub const IP_HDRINCL: ::std::os::raw::c_uint = 3;
28pub const IP_OPTIONS: ::std::os::raw::c_uint = 4;
29pub const IP_ROUTER_ALERT: ::std::os::raw::c_uint = 5;
30pub const IP_RECVOPTS: ::std::os::raw::c_uint = 6;
31pub const IP_RETOPTS: ::std::os::raw::c_uint = 7;
32pub const IP_PKTINFO: ::std::os::raw::c_uint = 8;
33pub const IP_PKTOPTIONS: ::std::os::raw::c_uint = 9;
34pub const IP_MTU_DISCOVER: ::std::os::raw::c_uint = 10;
35pub const IP_RECVERR: ::std::os::raw::c_uint = 11;
36pub const IP_RECVTTL: ::std::os::raw::c_uint = 12;
37pub const IP_RECVTOS: ::std::os::raw::c_uint = 13;
38pub const IP_MTU: ::std::os::raw::c_uint = 14;
39pub const IP_FREEBIND: ::std::os::raw::c_uint = 15;
40pub const IP_IPSEC_POLICY: ::std::os::raw::c_uint = 16;
41pub const IP_XFRM_POLICY: ::std::os::raw::c_uint = 17;
42pub const IP_PASSSEC: ::std::os::raw::c_uint = 18;
43pub const IP_TRANSPARENT: ::std::os::raw::c_uint = 19;
44pub const IP_RECVRETOPTS: ::std::os::raw::c_uint = 7;
45pub const IP_ORIGDSTADDR: ::std::os::raw::c_uint = 20;
46pub const IP_RECVORIGDSTADDR: ::std::os::raw::c_uint = 20;
47pub const IP_MINTTL: ::std::os::raw::c_uint = 21;
48pub const IP_NODEFRAG: ::std::os::raw::c_uint = 22;
49pub const IP_CHECKSUM: ::std::os::raw::c_uint = 23;
50pub const IP_BIND_ADDRESS_NO_PORT: ::std::os::raw::c_uint = 24;
51pub const IP_RECVFRAGSIZE: ::std::os::raw::c_uint = 25;
52pub const IP_PMTUDISC_DONT: ::std::os::raw::c_uint = 0;
53pub const IP_PMTUDISC_WANT: ::std::os::raw::c_uint = 1;
54pub const IP_PMTUDISC_DO: ::std::os::raw::c_uint = 2;
55pub const IP_PMTUDISC_PROBE: ::std::os::raw::c_uint = 3;
56pub const IP_PMTUDISC_INTERFACE: ::std::os::raw::c_uint = 4;
57pub const IP_PMTUDISC_OMIT: ::std::os::raw::c_uint = 5;
58pub const IP_MULTICAST_IF: ::std::os::raw::c_uint = 32;
59pub const IP_MULTICAST_TTL: ::std::os::raw::c_uint = 33;
60pub const IP_MULTICAST_LOOP: ::std::os::raw::c_uint = 34;
61pub const IP_ADD_MEMBERSHIP: ::std::os::raw::c_uint = 35;
62pub const IP_DROP_MEMBERSHIP: ::std::os::raw::c_uint = 36;
63pub const IP_UNBLOCK_SOURCE: ::std::os::raw::c_uint = 37;
64pub const IP_BLOCK_SOURCE: ::std::os::raw::c_uint = 38;
65pub const IP_ADD_SOURCE_MEMBERSHIP: ::std::os::raw::c_uint = 39;
66pub const IP_DROP_SOURCE_MEMBERSHIP: ::std::os::raw::c_uint = 40;
67pub const IP_MSFILTER: ::std::os::raw::c_uint = 41;
68pub const MCAST_JOIN_GROUP: ::std::os::raw::c_uint = 42;
69pub const MCAST_BLOCK_SOURCE: ::std::os::raw::c_uint = 43;
70pub const MCAST_UNBLOCK_SOURCE: ::std::os::raw::c_uint = 44;
71pub const MCAST_LEAVE_GROUP: ::std::os::raw::c_uint = 45;
72pub const MCAST_JOIN_SOURCE_GROUP: ::std::os::raw::c_uint = 46;
73pub const MCAST_LEAVE_SOURCE_GROUP: ::std::os::raw::c_uint = 47;
74pub const MCAST_MSFILTER: ::std::os::raw::c_uint = 48;
75pub const IP_MULTICAST_ALL: ::std::os::raw::c_uint = 49;
76pub const IP_UNICAST_IF: ::std::os::raw::c_uint = 50;
77pub const MCAST_EXCLUDE: ::std::os::raw::c_uint = 0;
78pub const MCAST_INCLUDE: ::std::os::raw::c_uint = 1;
79pub const IP_DEFAULT_MULTICAST_TTL: ::std::os::raw::c_uint = 1;
80pub const IP_DEFAULT_MULTICAST_LOOP: ::std::os::raw::c_uint = 1;
81pub const __SOCK_SIZE__: ::std::os::raw::c_uint = 16;
82pub const IN_CLASSA_NET: ::std::os::raw::c_uint = 4278190080;
83pub const IN_CLASSA_NSHIFT: ::std::os::raw::c_uint = 24;
84pub const IN_CLASSA_HOST: ::std::os::raw::c_uint = 16777215;
85pub const IN_CLASSA_MAX: ::std::os::raw::c_uint = 128;
86pub const IN_CLASSB_NET: ::std::os::raw::c_uint = 4294901760;
87pub const IN_CLASSB_NSHIFT: ::std::os::raw::c_uint = 16;
88pub const IN_CLASSB_HOST: ::std::os::raw::c_uint = 65535;
89pub const IN_CLASSB_MAX: ::std::os::raw::c_uint = 65536;
90pub const IN_CLASSC_NET: ::std::os::raw::c_uint = 4294967040;
91pub const IN_CLASSC_NSHIFT: ::std::os::raw::c_uint = 8;
92pub const IN_CLASSC_HOST: ::std::os::raw::c_uint = 255;
93pub const IN_MULTICAST_NET: ::std::os::raw::c_uint = 4026531840;
94pub const IN_LOOPBACKNET: ::std::os::raw::c_uint = 127;
95pub const INADDR_LOOPBACK: ::std::os::raw::c_uint = 2130706433;
96pub const INADDR_UNSPEC_GROUP: ::std::os::raw::c_uint = 3758096384;
97pub const INADDR_ALLHOSTS_GROUP: ::std::os::raw::c_uint = 3758096385;
98pub const INADDR_ALLRTRS_GROUP: ::std::os::raw::c_uint = 3758096386;
99pub const INADDR_MAX_LOCAL_GROUP: ::std::os::raw::c_uint = 3758096639;
100pub const __LITTLE_ENDIAN: ::std::os::raw::c_uint = 1234;
101pub type __s8 = ::std::os::raw::c_schar;
102pub type __u8 = ::std::os::raw::c_uchar;
103pub type __s16 = ::std::os::raw::c_short;
104pub type __u16 = ::std::os::raw::c_ushort;
105pub type __s32 = ::std::os::raw::c_int;
106pub type __u32 = ::std::os::raw::c_uint;
107pub type __s64 = ::std::os::raw::c_longlong;
108pub type __u64 = ::std::os::raw::c_ulonglong;
109#[repr(C)]
110#[derive(Debug, Default, Copy)]
111pub struct __kernel_fd_set {
112    pub fds_bits: [::std::os::raw::c_ulong; 16usize],
113}
114#[test]
115fn bindgen_test_layout___kernel_fd_set() {
116    assert_eq!(
117        ::std::mem::size_of::<__kernel_fd_set>(),
118        128usize,
119        concat!("Size of: ", stringify!(__kernel_fd_set))
120    );
121    assert_eq!(
122        ::std::mem::align_of::<__kernel_fd_set>(),
123        8usize,
124        concat!("Alignment of ", stringify!(__kernel_fd_set))
125    );
126    assert_eq!(
127        unsafe { &(*(0 as *const __kernel_fd_set)).fds_bits as *const _ as usize },
128        0usize,
129        concat!(
130            "Alignment of field: ",
131            stringify!(__kernel_fd_set),
132            "::",
133            stringify!(fds_bits)
134        )
135    );
136}
137impl Clone for __kernel_fd_set {
138    fn clone(&self) -> Self {
139        *self
140    }
141}
142pub type __kernel_sighandler_t =
143    ::std::option::Option<unsafe extern "C" fn(arg1: ::std::os::raw::c_int)>;
144pub type __kernel_key_t = ::std::os::raw::c_int;
145pub type __kernel_mqd_t = ::std::os::raw::c_int;
146pub type __kernel_old_uid_t = ::std::os::raw::c_ushort;
147pub type __kernel_old_gid_t = ::std::os::raw::c_ushort;
148pub type __kernel_old_dev_t = ::std::os::raw::c_ulong;
149pub type __kernel_long_t = ::std::os::raw::c_long;
150pub type __kernel_ulong_t = ::std::os::raw::c_ulong;
151pub type __kernel_ino_t = __kernel_ulong_t;
152pub type __kernel_mode_t = ::std::os::raw::c_uint;
153pub type __kernel_pid_t = ::std::os::raw::c_int;
154pub type __kernel_ipc_pid_t = ::std::os::raw::c_int;
155pub type __kernel_uid_t = ::std::os::raw::c_uint;
156pub type __kernel_gid_t = ::std::os::raw::c_uint;
157pub type __kernel_suseconds_t = __kernel_long_t;
158pub type __kernel_daddr_t = ::std::os::raw::c_int;
159pub type __kernel_uid32_t = ::std::os::raw::c_uint;
160pub type __kernel_gid32_t = ::std::os::raw::c_uint;
161pub type __kernel_size_t = __kernel_ulong_t;
162pub type __kernel_ssize_t = __kernel_long_t;
163pub type __kernel_ptrdiff_t = __kernel_long_t;
164#[repr(C)]
165#[derive(Debug, Default, Copy)]
166pub struct __kernel_fsid_t {
167    pub val: [::std::os::raw::c_int; 2usize],
168}
169#[test]
170fn bindgen_test_layout___kernel_fsid_t() {
171    assert_eq!(
172        ::std::mem::size_of::<__kernel_fsid_t>(),
173        8usize,
174        concat!("Size of: ", stringify!(__kernel_fsid_t))
175    );
176    assert_eq!(
177        ::std::mem::align_of::<__kernel_fsid_t>(),
178        4usize,
179        concat!("Alignment of ", stringify!(__kernel_fsid_t))
180    );
181    assert_eq!(
182        unsafe { &(*(0 as *const __kernel_fsid_t)).val as *const _ as usize },
183        0usize,
184        concat!(
185            "Alignment of field: ",
186            stringify!(__kernel_fsid_t),
187            "::",
188            stringify!(val)
189        )
190    );
191}
192impl Clone for __kernel_fsid_t {
193    fn clone(&self) -> Self {
194        *self
195    }
196}
197pub type __kernel_off_t = __kernel_long_t;
198pub type __kernel_loff_t = ::std::os::raw::c_longlong;
199pub type __kernel_time_t = __kernel_long_t;
200pub type __kernel_clock_t = __kernel_long_t;
201pub type __kernel_timer_t = ::std::os::raw::c_int;
202pub type __kernel_clockid_t = ::std::os::raw::c_int;
203pub type __kernel_caddr_t = *mut ::std::os::raw::c_char;
204pub type __kernel_uid16_t = ::std::os::raw::c_ushort;
205pub type __kernel_gid16_t = ::std::os::raw::c_ushort;
206pub type __le16 = __u16;
207pub type __be16 = __u16;
208pub type __le32 = __u32;
209pub type __be32 = __u32;
210pub type __le64 = __u64;
211pub type __be64 = __u64;
212pub type __sum16 = __u16;
213pub type __wsum = __u32;
214pub type __kernel_sa_family_t = ::std::os::raw::c_ushort;
215#[repr(C)]
216pub struct __kernel_sockaddr_storage {
217    pub ss_family: __kernel_sa_family_t,
218    pub __data: [::std::os::raw::c_char; 126usize],
219    pub __bindgen_align: [u64; 0usize],
220}
221#[test]
222fn bindgen_test_layout___kernel_sockaddr_storage() {
223    assert_eq!(
224        ::std::mem::size_of::<__kernel_sockaddr_storage>(),
225        128usize,
226        concat!("Size of: ", stringify!(__kernel_sockaddr_storage))
227    );
228    assert_eq!(
229        ::std::mem::align_of::<__kernel_sockaddr_storage>(),
230        8usize,
231        concat!("Alignment of ", stringify!(__kernel_sockaddr_storage))
232    );
233    assert_eq!(
234        unsafe { &(*(0 as *const __kernel_sockaddr_storage)).ss_family as *const _ as usize },
235        0usize,
236        concat!(
237            "Alignment of field: ",
238            stringify!(__kernel_sockaddr_storage),
239            "::",
240            stringify!(ss_family)
241        )
242    );
243    assert_eq!(
244        unsafe { &(*(0 as *const __kernel_sockaddr_storage)).__data as *const _ as usize },
245        2usize,
246        concat!(
247            "Alignment of field: ",
248            stringify!(__kernel_sockaddr_storage),
249            "::",
250            stringify!(__data)
251        )
252    );
253}
254impl Default for __kernel_sockaddr_storage {
255    fn default() -> Self {
256        unsafe { ::std::mem::zeroed() }
257    }
258}
259pub const IPPROTO_IP: _bindgen_ty_1 = 0;
260pub const IPPROTO_ICMP: _bindgen_ty_1 = 1;
261pub const IPPROTO_IGMP: _bindgen_ty_1 = 2;
262pub const IPPROTO_IPIP: _bindgen_ty_1 = 4;
263pub const IPPROTO_TCP: _bindgen_ty_1 = 6;
264pub const IPPROTO_EGP: _bindgen_ty_1 = 8;
265pub const IPPROTO_PUP: _bindgen_ty_1 = 12;
266pub const IPPROTO_UDP: _bindgen_ty_1 = 17;
267pub const IPPROTO_IDP: _bindgen_ty_1 = 22;
268pub const IPPROTO_TP: _bindgen_ty_1 = 29;
269pub const IPPROTO_DCCP: _bindgen_ty_1 = 33;
270pub const IPPROTO_IPV6: _bindgen_ty_1 = 41;
271pub const IPPROTO_RSVP: _bindgen_ty_1 = 46;
272pub const IPPROTO_GRE: _bindgen_ty_1 = 47;
273pub const IPPROTO_ESP: _bindgen_ty_1 = 50;
274pub const IPPROTO_AH: _bindgen_ty_1 = 51;
275pub const IPPROTO_MTP: _bindgen_ty_1 = 92;
276pub const IPPROTO_BEETPH: _bindgen_ty_1 = 94;
277pub const IPPROTO_ENCAP: _bindgen_ty_1 = 98;
278pub const IPPROTO_PIM: _bindgen_ty_1 = 103;
279pub const IPPROTO_COMP: _bindgen_ty_1 = 108;
280pub const IPPROTO_SCTP: _bindgen_ty_1 = 132;
281pub const IPPROTO_UDPLITE: _bindgen_ty_1 = 136;
282pub const IPPROTO_MPLS: _bindgen_ty_1 = 137;
283pub const IPPROTO_RAW: _bindgen_ty_1 = 255;
284pub const IPPROTO_MAX: _bindgen_ty_1 = 256;
285pub type _bindgen_ty_1 = ::std::os::raw::c_uint;
286#[repr(C)]
287#[derive(Debug, Default, Copy)]
288pub struct in_addr {
289    pub s_addr: __be32,
290}
291#[test]
292fn bindgen_test_layout_in_addr() {
293    assert_eq!(
294        ::std::mem::size_of::<in_addr>(),
295        4usize,
296        concat!("Size of: ", stringify!(in_addr))
297    );
298    assert_eq!(
299        ::std::mem::align_of::<in_addr>(),
300        4usize,
301        concat!("Alignment of ", stringify!(in_addr))
302    );
303    assert_eq!(
304        unsafe { &(*(0 as *const in_addr)).s_addr as *const _ as usize },
305        0usize,
306        concat!(
307            "Alignment of field: ",
308            stringify!(in_addr),
309            "::",
310            stringify!(s_addr)
311        )
312    );
313}
314impl Clone for in_addr {
315    fn clone(&self) -> Self {
316        *self
317    }
318}
319#[repr(C)]
320#[derive(Debug, Default, Copy)]
321pub struct ip_mreq {
322    pub imr_multiaddr: in_addr,
323    pub imr_interface: in_addr,
324}
325#[test]
326fn bindgen_test_layout_ip_mreq() {
327    assert_eq!(
328        ::std::mem::size_of::<ip_mreq>(),
329        8usize,
330        concat!("Size of: ", stringify!(ip_mreq))
331    );
332    assert_eq!(
333        ::std::mem::align_of::<ip_mreq>(),
334        4usize,
335        concat!("Alignment of ", stringify!(ip_mreq))
336    );
337    assert_eq!(
338        unsafe { &(*(0 as *const ip_mreq)).imr_multiaddr as *const _ as usize },
339        0usize,
340        concat!(
341            "Alignment of field: ",
342            stringify!(ip_mreq),
343            "::",
344            stringify!(imr_multiaddr)
345        )
346    );
347    assert_eq!(
348        unsafe { &(*(0 as *const ip_mreq)).imr_interface as *const _ as usize },
349        4usize,
350        concat!(
351            "Alignment of field: ",
352            stringify!(ip_mreq),
353            "::",
354            stringify!(imr_interface)
355        )
356    );
357}
358impl Clone for ip_mreq {
359    fn clone(&self) -> Self {
360        *self
361    }
362}
363#[repr(C)]
364#[derive(Debug, Default, Copy)]
365pub struct ip_mreqn {
366    pub imr_multiaddr: in_addr,
367    pub imr_address: in_addr,
368    pub imr_ifindex: ::std::os::raw::c_int,
369}
370#[test]
371fn bindgen_test_layout_ip_mreqn() {
372    assert_eq!(
373        ::std::mem::size_of::<ip_mreqn>(),
374        12usize,
375        concat!("Size of: ", stringify!(ip_mreqn))
376    );
377    assert_eq!(
378        ::std::mem::align_of::<ip_mreqn>(),
379        4usize,
380        concat!("Alignment of ", stringify!(ip_mreqn))
381    );
382    assert_eq!(
383        unsafe { &(*(0 as *const ip_mreqn)).imr_multiaddr as *const _ as usize },
384        0usize,
385        concat!(
386            "Alignment of field: ",
387            stringify!(ip_mreqn),
388            "::",
389            stringify!(imr_multiaddr)
390        )
391    );
392    assert_eq!(
393        unsafe { &(*(0 as *const ip_mreqn)).imr_address as *const _ as usize },
394        4usize,
395        concat!(
396            "Alignment of field: ",
397            stringify!(ip_mreqn),
398            "::",
399            stringify!(imr_address)
400        )
401    );
402    assert_eq!(
403        unsafe { &(*(0 as *const ip_mreqn)).imr_ifindex as *const _ as usize },
404        8usize,
405        concat!(
406            "Alignment of field: ",
407            stringify!(ip_mreqn),
408            "::",
409            stringify!(imr_ifindex)
410        )
411    );
412}
413impl Clone for ip_mreqn {
414    fn clone(&self) -> Self {
415        *self
416    }
417}
418#[repr(C)]
419#[derive(Debug, Default, Copy)]
420pub struct ip_mreq_source {
421    pub imr_multiaddr: __be32,
422    pub imr_interface: __be32,
423    pub imr_sourceaddr: __be32,
424}
425#[test]
426fn bindgen_test_layout_ip_mreq_source() {
427    assert_eq!(
428        ::std::mem::size_of::<ip_mreq_source>(),
429        12usize,
430        concat!("Size of: ", stringify!(ip_mreq_source))
431    );
432    assert_eq!(
433        ::std::mem::align_of::<ip_mreq_source>(),
434        4usize,
435        concat!("Alignment of ", stringify!(ip_mreq_source))
436    );
437    assert_eq!(
438        unsafe { &(*(0 as *const ip_mreq_source)).imr_multiaddr as *const _ as usize },
439        0usize,
440        concat!(
441            "Alignment of field: ",
442            stringify!(ip_mreq_source),
443            "::",
444            stringify!(imr_multiaddr)
445        )
446    );
447    assert_eq!(
448        unsafe { &(*(0 as *const ip_mreq_source)).imr_interface as *const _ as usize },
449        4usize,
450        concat!(
451            "Alignment of field: ",
452            stringify!(ip_mreq_source),
453            "::",
454            stringify!(imr_interface)
455        )
456    );
457    assert_eq!(
458        unsafe { &(*(0 as *const ip_mreq_source)).imr_sourceaddr as *const _ as usize },
459        8usize,
460        concat!(
461            "Alignment of field: ",
462            stringify!(ip_mreq_source),
463            "::",
464            stringify!(imr_sourceaddr)
465        )
466    );
467}
468impl Clone for ip_mreq_source {
469    fn clone(&self) -> Self {
470        *self
471    }
472}
473#[repr(C)]
474#[derive(Debug, Default, Copy)]
475pub struct ip_msfilter {
476    pub imsf_multiaddr: __be32,
477    pub imsf_interface: __be32,
478    pub imsf_fmode: __u32,
479    pub imsf_numsrc: __u32,
480    pub imsf_slist: [__be32; 1usize],
481}
482#[test]
483fn bindgen_test_layout_ip_msfilter() {
484    assert_eq!(
485        ::std::mem::size_of::<ip_msfilter>(),
486        20usize,
487        concat!("Size of: ", stringify!(ip_msfilter))
488    );
489    assert_eq!(
490        ::std::mem::align_of::<ip_msfilter>(),
491        4usize,
492        concat!("Alignment of ", stringify!(ip_msfilter))
493    );
494    assert_eq!(
495        unsafe { &(*(0 as *const ip_msfilter)).imsf_multiaddr as *const _ as usize },
496        0usize,
497        concat!(
498            "Alignment of field: ",
499            stringify!(ip_msfilter),
500            "::",
501            stringify!(imsf_multiaddr)
502        )
503    );
504    assert_eq!(
505        unsafe { &(*(0 as *const ip_msfilter)).imsf_interface as *const _ as usize },
506        4usize,
507        concat!(
508            "Alignment of field: ",
509            stringify!(ip_msfilter),
510            "::",
511            stringify!(imsf_interface)
512        )
513    );
514    assert_eq!(
515        unsafe { &(*(0 as *const ip_msfilter)).imsf_fmode as *const _ as usize },
516        8usize,
517        concat!(
518            "Alignment of field: ",
519            stringify!(ip_msfilter),
520            "::",
521            stringify!(imsf_fmode)
522        )
523    );
524    assert_eq!(
525        unsafe { &(*(0 as *const ip_msfilter)).imsf_numsrc as *const _ as usize },
526        12usize,
527        concat!(
528            "Alignment of field: ",
529            stringify!(ip_msfilter),
530            "::",
531            stringify!(imsf_numsrc)
532        )
533    );
534    assert_eq!(
535        unsafe { &(*(0 as *const ip_msfilter)).imsf_slist as *const _ as usize },
536        16usize,
537        concat!(
538            "Alignment of field: ",
539            stringify!(ip_msfilter),
540            "::",
541            stringify!(imsf_slist)
542        )
543    );
544}
545impl Clone for ip_msfilter {
546    fn clone(&self) -> Self {
547        *self
548    }
549}
550#[repr(C)]
551pub struct group_req {
552    pub gr_interface: __u32,
553    pub gr_group: __kernel_sockaddr_storage,
554}
555#[test]
556fn bindgen_test_layout_group_req() {
557    assert_eq!(
558        ::std::mem::size_of::<group_req>(),
559        136usize,
560        concat!("Size of: ", stringify!(group_req))
561    );
562    assert_eq!(
563        ::std::mem::align_of::<group_req>(),
564        8usize,
565        concat!("Alignment of ", stringify!(group_req))
566    );
567    assert_eq!(
568        unsafe { &(*(0 as *const group_req)).gr_interface as *const _ as usize },
569        0usize,
570        concat!(
571            "Alignment of field: ",
572            stringify!(group_req),
573            "::",
574            stringify!(gr_interface)
575        )
576    );
577    assert_eq!(
578        unsafe { &(*(0 as *const group_req)).gr_group as *const _ as usize },
579        8usize,
580        concat!(
581            "Alignment of field: ",
582            stringify!(group_req),
583            "::",
584            stringify!(gr_group)
585        )
586    );
587}
588impl Default for group_req {
589    fn default() -> Self {
590        unsafe { ::std::mem::zeroed() }
591    }
592}
593#[repr(C)]
594pub struct group_source_req {
595    pub gsr_interface: __u32,
596    pub gsr_group: __kernel_sockaddr_storage,
597    pub gsr_source: __kernel_sockaddr_storage,
598}
599#[test]
600fn bindgen_test_layout_group_source_req() {
601    assert_eq!(
602        ::std::mem::size_of::<group_source_req>(),
603        264usize,
604        concat!("Size of: ", stringify!(group_source_req))
605    );
606    assert_eq!(
607        ::std::mem::align_of::<group_source_req>(),
608        8usize,
609        concat!("Alignment of ", stringify!(group_source_req))
610    );
611    assert_eq!(
612        unsafe { &(*(0 as *const group_source_req)).gsr_interface as *const _ as usize },
613        0usize,
614        concat!(
615            "Alignment of field: ",
616            stringify!(group_source_req),
617            "::",
618            stringify!(gsr_interface)
619        )
620    );
621    assert_eq!(
622        unsafe { &(*(0 as *const group_source_req)).gsr_group as *const _ as usize },
623        8usize,
624        concat!(
625            "Alignment of field: ",
626            stringify!(group_source_req),
627            "::",
628            stringify!(gsr_group)
629        )
630    );
631    assert_eq!(
632        unsafe { &(*(0 as *const group_source_req)).gsr_source as *const _ as usize },
633        136usize,
634        concat!(
635            "Alignment of field: ",
636            stringify!(group_source_req),
637            "::",
638            stringify!(gsr_source)
639        )
640    );
641}
642impl Default for group_source_req {
643    fn default() -> Self {
644        unsafe { ::std::mem::zeroed() }
645    }
646}
647#[repr(C)]
648pub struct group_filter {
649    pub gf_interface: __u32,
650    pub gf_group: __kernel_sockaddr_storage,
651    pub gf_fmode: __u32,
652    pub gf_numsrc: __u32,
653    pub gf_slist: [__kernel_sockaddr_storage; 1usize],
654}
655#[test]
656fn bindgen_test_layout_group_filter() {
657    assert_eq!(
658        ::std::mem::size_of::<group_filter>(),
659        272usize,
660        concat!("Size of: ", stringify!(group_filter))
661    );
662    assert_eq!(
663        ::std::mem::align_of::<group_filter>(),
664        8usize,
665        concat!("Alignment of ", stringify!(group_filter))
666    );
667    assert_eq!(
668        unsafe { &(*(0 as *const group_filter)).gf_interface as *const _ as usize },
669        0usize,
670        concat!(
671            "Alignment of field: ",
672            stringify!(group_filter),
673            "::",
674            stringify!(gf_interface)
675        )
676    );
677    assert_eq!(
678        unsafe { &(*(0 as *const group_filter)).gf_group as *const _ as usize },
679        8usize,
680        concat!(
681            "Alignment of field: ",
682            stringify!(group_filter),
683            "::",
684            stringify!(gf_group)
685        )
686    );
687    assert_eq!(
688        unsafe { &(*(0 as *const group_filter)).gf_fmode as *const _ as usize },
689        136usize,
690        concat!(
691            "Alignment of field: ",
692            stringify!(group_filter),
693            "::",
694            stringify!(gf_fmode)
695        )
696    );
697    assert_eq!(
698        unsafe { &(*(0 as *const group_filter)).gf_numsrc as *const _ as usize },
699        140usize,
700        concat!(
701            "Alignment of field: ",
702            stringify!(group_filter),
703            "::",
704            stringify!(gf_numsrc)
705        )
706    );
707    assert_eq!(
708        unsafe { &(*(0 as *const group_filter)).gf_slist as *const _ as usize },
709        144usize,
710        concat!(
711            "Alignment of field: ",
712            stringify!(group_filter),
713            "::",
714            stringify!(gf_slist)
715        )
716    );
717}
718impl Default for group_filter {
719    fn default() -> Self {
720        unsafe { ::std::mem::zeroed() }
721    }
722}
723#[repr(C)]
724#[derive(Debug, Default, Copy)]
725pub struct in_pktinfo {
726    pub ipi_ifindex: ::std::os::raw::c_int,
727    pub ipi_spec_dst: in_addr,
728    pub ipi_addr: in_addr,
729}
730#[test]
731fn bindgen_test_layout_in_pktinfo() {
732    assert_eq!(
733        ::std::mem::size_of::<in_pktinfo>(),
734        12usize,
735        concat!("Size of: ", stringify!(in_pktinfo))
736    );
737    assert_eq!(
738        ::std::mem::align_of::<in_pktinfo>(),
739        4usize,
740        concat!("Alignment of ", stringify!(in_pktinfo))
741    );
742    assert_eq!(
743        unsafe { &(*(0 as *const in_pktinfo)).ipi_ifindex as *const _ as usize },
744        0usize,
745        concat!(
746            "Alignment of field: ",
747            stringify!(in_pktinfo),
748            "::",
749            stringify!(ipi_ifindex)
750        )
751    );
752    assert_eq!(
753        unsafe { &(*(0 as *const in_pktinfo)).ipi_spec_dst as *const _ as usize },
754        4usize,
755        concat!(
756            "Alignment of field: ",
757            stringify!(in_pktinfo),
758            "::",
759            stringify!(ipi_spec_dst)
760        )
761    );
762    assert_eq!(
763        unsafe { &(*(0 as *const in_pktinfo)).ipi_addr as *const _ as usize },
764        8usize,
765        concat!(
766            "Alignment of field: ",
767            stringify!(in_pktinfo),
768            "::",
769            stringify!(ipi_addr)
770        )
771    );
772}
773impl Clone for in_pktinfo {
774    fn clone(&self) -> Self {
775        *self
776    }
777}
778#[repr(C)]
779#[derive(Debug, Default, Copy)]
780pub struct sockaddr_in {
781    pub sin_family: __kernel_sa_family_t,
782    pub sin_port: __be16,
783    pub sin_addr: in_addr,
784    pub __pad: [::std::os::raw::c_uchar; 8usize],
785}
786#[test]
787fn bindgen_test_layout_sockaddr_in() {
788    assert_eq!(
789        ::std::mem::size_of::<sockaddr_in>(),
790        16usize,
791        concat!("Size of: ", stringify!(sockaddr_in))
792    );
793    assert_eq!(
794        ::std::mem::align_of::<sockaddr_in>(),
795        4usize,
796        concat!("Alignment of ", stringify!(sockaddr_in))
797    );
798    assert_eq!(
799        unsafe { &(*(0 as *const sockaddr_in)).sin_family as *const _ as usize },
800        0usize,
801        concat!(
802            "Alignment of field: ",
803            stringify!(sockaddr_in),
804            "::",
805            stringify!(sin_family)
806        )
807    );
808    assert_eq!(
809        unsafe { &(*(0 as *const sockaddr_in)).sin_port as *const _ as usize },
810        2usize,
811        concat!(
812            "Alignment of field: ",
813            stringify!(sockaddr_in),
814            "::",
815            stringify!(sin_port)
816        )
817    );
818    assert_eq!(
819        unsafe { &(*(0 as *const sockaddr_in)).sin_addr as *const _ as usize },
820        4usize,
821        concat!(
822            "Alignment of field: ",
823            stringify!(sockaddr_in),
824            "::",
825            stringify!(sin_addr)
826        )
827    );
828    assert_eq!(
829        unsafe { &(*(0 as *const sockaddr_in)).__pad as *const _ as usize },
830        8usize,
831        concat!(
832            "Alignment of field: ",
833            stringify!(sockaddr_in),
834            "::",
835            stringify!(__pad)
836        )
837    );
838}
839impl Clone for sockaddr_in {
840    fn clone(&self) -> Self {
841        *self
842    }
843}