From f0b64547c2c2379a97f93341bfa8cd5bc5201911 Mon Sep 17 00:00:00 2001 From: Rob Bradford Date: Fri, 7 May 2021 10:01:37 +0000 Subject: [PATCH] net_gen, net_util: Regenerate bindings Regernating the bindings required some minor changes to accomodate changes around the accessing of unions. Signed-off-by: Rob Bradford --- net_gen/src/if_tun.rs | 709 +++----- net_gen/src/iff.rs | 3464 +++++++++------------------------------- net_gen/src/inn.rs | 887 ++-------- net_gen/src/sockios.rs | 180 ++- net_util/src/tap.rs | 62 +- 5 files changed, 1209 insertions(+), 4093 deletions(-) diff --git a/net_gen/src/if_tun.rs b/net_gen/src/if_tun.rs index 9d10f9ca9..c80a5d666 100644 --- a/net_gen/src/if_tun.rs +++ b/net_gen/src/if_tun.rs @@ -1,24 +1,27 @@ -// Copyright 2017 The Chromium OS Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the THIRD-PARTY file. +// Copyright © 2021 Intel Corporation +// +// SPDX-License-Identifier: Apache-2.0 +// -/* automatically generated by rust-bindgen */ +// bindgen /usr/include/linux/if_tun.h --no-layout-tests + +/* automatically generated by rust-bindgen 0.58.1 */ #[repr(C)] #[derive(Default)] -pub struct __IncompleteArrayField(::std::marker::PhantomData); +pub struct __IncompleteArrayField(::std::marker::PhantomData, [T; 0]); impl __IncompleteArrayField { #[inline] - pub fn new() -> Self { - __IncompleteArrayField(::std::marker::PhantomData) + pub const fn new() -> Self { + __IncompleteArrayField(::std::marker::PhantomData, []) } #[inline] - pub unsafe fn as_ptr(&self) -> *const T { - ::std::mem::transmute(self) + pub fn as_ptr(&self) -> *const T { + self as *const _ as *const T } #[inline] - pub unsafe fn as_mut_ptr(&mut self) -> *mut T { - ::std::mem::transmute(self) + pub fn as_mut_ptr(&mut self) -> *mut T { + self as *mut _ as *mut T } #[inline] pub unsafe fn as_slice(&self, len: usize) -> &[T] { @@ -30,191 +33,203 @@ impl __IncompleteArrayField { } } impl ::std::fmt::Debug for __IncompleteArrayField { - fn fmt(&self, fmt: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { + fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result { fmt.write_str("__IncompleteArrayField") } } -impl ::std::clone::Clone for __IncompleteArrayField { - #[inline] - fn clone(&self) -> Self { - Self::new() - } -} -impl ::std::marker::Copy for __IncompleteArrayField {} -pub const __BITS_PER_LONG: ::std::os::raw::c_uint = 64; -pub const __FD_SETSIZE: ::std::os::raw::c_uint = 1024; -pub const ETH_ALEN: ::std::os::raw::c_uint = 6; -pub const ETH_HLEN: ::std::os::raw::c_uint = 14; -pub const ETH_ZLEN: ::std::os::raw::c_uint = 60; -pub const ETH_DATA_LEN: ::std::os::raw::c_uint = 1500; -pub const ETH_FRAME_LEN: ::std::os::raw::c_uint = 1514; -pub const ETH_FCS_LEN: ::std::os::raw::c_uint = 4; -pub const ETH_P_LOOP: ::std::os::raw::c_uint = 96; -pub const ETH_P_PUP: ::std::os::raw::c_uint = 512; -pub const ETH_P_PUPAT: ::std::os::raw::c_uint = 513; -pub const ETH_P_TSN: ::std::os::raw::c_uint = 8944; -pub const ETH_P_IP: ::std::os::raw::c_uint = 2048; -pub const ETH_P_X25: ::std::os::raw::c_uint = 2053; -pub const ETH_P_ARP: ::std::os::raw::c_uint = 2054; -pub const ETH_P_BPQ: ::std::os::raw::c_uint = 2303; -pub const ETH_P_IEEEPUP: ::std::os::raw::c_uint = 2560; -pub const ETH_P_IEEEPUPAT: ::std::os::raw::c_uint = 2561; -pub const ETH_P_BATMAN: ::std::os::raw::c_uint = 17157; -pub const ETH_P_DEC: ::std::os::raw::c_uint = 24576; -pub const ETH_P_DNA_DL: ::std::os::raw::c_uint = 24577; -pub const ETH_P_DNA_RC: ::std::os::raw::c_uint = 24578; -pub const ETH_P_DNA_RT: ::std::os::raw::c_uint = 24579; -pub const ETH_P_LAT: ::std::os::raw::c_uint = 24580; -pub const ETH_P_DIAG: ::std::os::raw::c_uint = 24581; -pub const ETH_P_CUST: ::std::os::raw::c_uint = 24582; -pub const ETH_P_SCA: ::std::os::raw::c_uint = 24583; -pub const ETH_P_TEB: ::std::os::raw::c_uint = 25944; -pub const ETH_P_RARP: ::std::os::raw::c_uint = 32821; -pub const ETH_P_ATALK: ::std::os::raw::c_uint = 32923; -pub const ETH_P_AARP: ::std::os::raw::c_uint = 33011; -pub const ETH_P_8021Q: ::std::os::raw::c_uint = 33024; -pub const ETH_P_IPX: ::std::os::raw::c_uint = 33079; -pub const ETH_P_IPV6: ::std::os::raw::c_uint = 34525; -pub const ETH_P_PAUSE: ::std::os::raw::c_uint = 34824; -pub const ETH_P_SLOW: ::std::os::raw::c_uint = 34825; -pub const ETH_P_WCCP: ::std::os::raw::c_uint = 34878; -pub const ETH_P_MPLS_UC: ::std::os::raw::c_uint = 34887; -pub const ETH_P_MPLS_MC: ::std::os::raw::c_uint = 34888; -pub const ETH_P_ATMMPOA: ::std::os::raw::c_uint = 34892; -pub const ETH_P_PPP_DISC: ::std::os::raw::c_uint = 34915; -pub const ETH_P_PPP_SES: ::std::os::raw::c_uint = 34916; -pub const ETH_P_LINK_CTL: ::std::os::raw::c_uint = 34924; -pub const ETH_P_ATMFATE: ::std::os::raw::c_uint = 34948; -pub const ETH_P_PAE: ::std::os::raw::c_uint = 34958; -pub const ETH_P_AOE: ::std::os::raw::c_uint = 34978; -pub const ETH_P_8021AD: ::std::os::raw::c_uint = 34984; -pub const ETH_P_802_EX1: ::std::os::raw::c_uint = 34997; -pub const ETH_P_TIPC: ::std::os::raw::c_uint = 35018; -pub const ETH_P_8021AH: ::std::os::raw::c_uint = 35047; -pub const ETH_P_MVRP: ::std::os::raw::c_uint = 35061; -pub const ETH_P_1588: ::std::os::raw::c_uint = 35063; -pub const ETH_P_PRP: ::std::os::raw::c_uint = 35067; -pub const ETH_P_FCOE: ::std::os::raw::c_uint = 35078; -pub const ETH_P_TDLS: ::std::os::raw::c_uint = 35085; -pub const ETH_P_FIP: ::std::os::raw::c_uint = 35092; -pub const ETH_P_80221: ::std::os::raw::c_uint = 35095; -pub const ETH_P_LOOPBACK: ::std::os::raw::c_uint = 36864; -pub const ETH_P_QINQ1: ::std::os::raw::c_uint = 37120; -pub const ETH_P_QINQ2: ::std::os::raw::c_uint = 37376; -pub const ETH_P_QINQ3: ::std::os::raw::c_uint = 37632; -pub const ETH_P_EDSA: ::std::os::raw::c_uint = 56026; -pub const ETH_P_AF_IUCV: ::std::os::raw::c_uint = 64507; -pub const ETH_P_802_3_MIN: ::std::os::raw::c_uint = 1536; -pub const ETH_P_802_3: ::std::os::raw::c_uint = 1; -pub const ETH_P_AX25: ::std::os::raw::c_uint = 2; -pub const ETH_P_ALL: ::std::os::raw::c_uint = 3; -pub const ETH_P_802_2: ::std::os::raw::c_uint = 4; -pub const ETH_P_SNAP: ::std::os::raw::c_uint = 5; -pub const ETH_P_DDCMP: ::std::os::raw::c_uint = 6; -pub const ETH_P_WAN_PPP: ::std::os::raw::c_uint = 7; -pub const ETH_P_PPP_MP: ::std::os::raw::c_uint = 8; -pub const ETH_P_LOCALTALK: ::std::os::raw::c_uint = 9; -pub const ETH_P_CAN: ::std::os::raw::c_uint = 12; -pub const ETH_P_CANFD: ::std::os::raw::c_uint = 13; -pub const ETH_P_PPPTALK: ::std::os::raw::c_uint = 16; -pub const ETH_P_TR_802_2: ::std::os::raw::c_uint = 17; -pub const ETH_P_MOBITEX: ::std::os::raw::c_uint = 21; -pub const ETH_P_CONTROL: ::std::os::raw::c_uint = 22; -pub const ETH_P_IRDA: ::std::os::raw::c_uint = 23; -pub const ETH_P_ECONET: ::std::os::raw::c_uint = 24; -pub const ETH_P_HDLC: ::std::os::raw::c_uint = 25; -pub const ETH_P_ARCNET: ::std::os::raw::c_uint = 26; -pub const ETH_P_DSA: ::std::os::raw::c_uint = 27; -pub const ETH_P_TRAILER: ::std::os::raw::c_uint = 28; -pub const ETH_P_PHONET: ::std::os::raw::c_uint = 245; -pub const ETH_P_IEEE802154: ::std::os::raw::c_uint = 246; -pub const ETH_P_CAIF: ::std::os::raw::c_uint = 247; -pub const ETH_P_XDSA: ::std::os::raw::c_uint = 248; -pub const BPF_LD: ::std::os::raw::c_uint = 0; -pub const BPF_LDX: ::std::os::raw::c_uint = 1; -pub const BPF_ST: ::std::os::raw::c_uint = 2; -pub const BPF_STX: ::std::os::raw::c_uint = 3; -pub const BPF_ALU: ::std::os::raw::c_uint = 4; -pub const BPF_JMP: ::std::os::raw::c_uint = 5; -pub const BPF_RET: ::std::os::raw::c_uint = 6; -pub const BPF_MISC: ::std::os::raw::c_uint = 7; -pub const BPF_W: ::std::os::raw::c_uint = 0; -pub const BPF_H: ::std::os::raw::c_uint = 8; -pub const BPF_B: ::std::os::raw::c_uint = 16; -pub const BPF_IMM: ::std::os::raw::c_uint = 0; -pub const BPF_ABS: ::std::os::raw::c_uint = 32; -pub const BPF_IND: ::std::os::raw::c_uint = 64; -pub const BPF_MEM: ::std::os::raw::c_uint = 96; -pub const BPF_LEN: ::std::os::raw::c_uint = 128; -pub const BPF_MSH: ::std::os::raw::c_uint = 160; -pub const BPF_ADD: ::std::os::raw::c_uint = 0; -pub const BPF_SUB: ::std::os::raw::c_uint = 16; -pub const BPF_MUL: ::std::os::raw::c_uint = 32; -pub const BPF_DIV: ::std::os::raw::c_uint = 48; -pub const BPF_OR: ::std::os::raw::c_uint = 64; -pub const BPF_AND: ::std::os::raw::c_uint = 80; -pub const BPF_LSH: ::std::os::raw::c_uint = 96; -pub const BPF_RSH: ::std::os::raw::c_uint = 112; -pub const BPF_NEG: ::std::os::raw::c_uint = 128; -pub const BPF_MOD: ::std::os::raw::c_uint = 144; -pub const BPF_XOR: ::std::os::raw::c_uint = 160; -pub const BPF_JA: ::std::os::raw::c_uint = 0; -pub const BPF_JEQ: ::std::os::raw::c_uint = 16; -pub const BPF_JGT: ::std::os::raw::c_uint = 32; -pub const BPF_JGE: ::std::os::raw::c_uint = 48; -pub const BPF_JSET: ::std::os::raw::c_uint = 64; -pub const BPF_K: ::std::os::raw::c_uint = 0; -pub const BPF_X: ::std::os::raw::c_uint = 8; -pub const BPF_MAXINSNS: ::std::os::raw::c_uint = 4096; -pub const BPF_MAJOR_VERSION: ::std::os::raw::c_uint = 1; -pub const BPF_MINOR_VERSION: ::std::os::raw::c_uint = 1; -pub const BPF_A: ::std::os::raw::c_uint = 16; -pub const BPF_TAX: ::std::os::raw::c_uint = 0; -pub const BPF_TXA: ::std::os::raw::c_uint = 128; -pub const BPF_MEMWORDS: ::std::os::raw::c_uint = 16; -pub const SKF_AD_OFF: ::std::os::raw::c_int = -4096; -pub const SKF_AD_PROTOCOL: ::std::os::raw::c_uint = 0; -pub const SKF_AD_PKTTYPE: ::std::os::raw::c_uint = 4; -pub const SKF_AD_IFINDEX: ::std::os::raw::c_uint = 8; -pub const SKF_AD_NLATTR: ::std::os::raw::c_uint = 12; -pub const SKF_AD_NLATTR_NEST: ::std::os::raw::c_uint = 16; -pub const SKF_AD_MARK: ::std::os::raw::c_uint = 20; -pub const SKF_AD_QUEUE: ::std::os::raw::c_uint = 24; -pub const SKF_AD_HATYPE: ::std::os::raw::c_uint = 28; -pub const SKF_AD_RXHASH: ::std::os::raw::c_uint = 32; -pub const SKF_AD_CPU: ::std::os::raw::c_uint = 36; -pub const SKF_AD_ALU_XOR_X: ::std::os::raw::c_uint = 40; -pub const SKF_AD_VLAN_TAG: ::std::os::raw::c_uint = 44; -pub const SKF_AD_VLAN_TAG_PRESENT: ::std::os::raw::c_uint = 48; -pub const SKF_AD_PAY_OFFSET: ::std::os::raw::c_uint = 52; -pub const SKF_AD_RANDOM: ::std::os::raw::c_uint = 56; -pub const SKF_AD_VLAN_TPID: ::std::os::raw::c_uint = 60; -pub const SKF_AD_MAX: ::std::os::raw::c_uint = 64; -pub const SKF_NET_OFF: ::std::os::raw::c_int = -1048576; -pub const SKF_LL_OFF: ::std::os::raw::c_int = -2097152; -pub const BPF_NET_OFF: ::std::os::raw::c_int = -1048576; -pub const BPF_LL_OFF: ::std::os::raw::c_int = -2097152; -pub const TUN_READQ_SIZE: ::std::os::raw::c_uint = 500; -pub const TUN_TYPE_MASK: ::std::os::raw::c_uint = 15; -pub const IFF_TUN: ::std::os::raw::c_uint = 1; -pub const IFF_TAP: ::std::os::raw::c_uint = 2; -pub const IFF_NO_PI: ::std::os::raw::c_uint = 4096; -pub const IFF_ONE_QUEUE: ::std::os::raw::c_uint = 8192; -pub const IFF_VNET_HDR: ::std::os::raw::c_uint = 16384; -pub const IFF_TUN_EXCL: ::std::os::raw::c_uint = 32768; -pub const IFF_MULTI_QUEUE: ::std::os::raw::c_uint = 256; -pub const IFF_ATTACH_QUEUE: ::std::os::raw::c_uint = 512; -pub const IFF_DETACH_QUEUE: ::std::os::raw::c_uint = 1024; -pub const IFF_PERSIST: ::std::os::raw::c_uint = 2048; -pub const IFF_NOFILTER: ::std::os::raw::c_uint = 4096; -pub const TUN_TX_TIMESTAMP: ::std::os::raw::c_uint = 1; -pub const TUN_F_CSUM: ::std::os::raw::c_uint = 1; -pub const TUN_F_TSO4: ::std::os::raw::c_uint = 2; -pub const TUN_F_TSO6: ::std::os::raw::c_uint = 4; -pub const TUN_F_TSO_ECN: ::std::os::raw::c_uint = 8; -pub const TUN_F_UFO: ::std::os::raw::c_uint = 16; -pub const TUN_PKT_STRIP: ::std::os::raw::c_uint = 1; -pub const TUN_FLT_ALLMULTI: ::std::os::raw::c_uint = 1; +pub const __BITS_PER_LONG: u32 = 64; +pub const __FD_SETSIZE: u32 = 1024; +pub const ETH_ALEN: u32 = 6; +pub const ETH_TLEN: u32 = 2; +pub const ETH_HLEN: u32 = 14; +pub const ETH_ZLEN: u32 = 60; +pub const ETH_DATA_LEN: u32 = 1500; +pub const ETH_FRAME_LEN: u32 = 1514; +pub const ETH_FCS_LEN: u32 = 4; +pub const ETH_MIN_MTU: u32 = 68; +pub const ETH_MAX_MTU: u32 = 65535; +pub const ETH_P_LOOP: u32 = 96; +pub const ETH_P_PUP: u32 = 512; +pub const ETH_P_PUPAT: u32 = 513; +pub const ETH_P_TSN: u32 = 8944; +pub const ETH_P_ERSPAN2: u32 = 8939; +pub const ETH_P_IP: u32 = 2048; +pub const ETH_P_X25: u32 = 2053; +pub const ETH_P_ARP: u32 = 2054; +pub const ETH_P_BPQ: u32 = 2303; +pub const ETH_P_IEEEPUP: u32 = 2560; +pub const ETH_P_IEEEPUPAT: u32 = 2561; +pub const ETH_P_BATMAN: u32 = 17157; +pub const ETH_P_DEC: u32 = 24576; +pub const ETH_P_DNA_DL: u32 = 24577; +pub const ETH_P_DNA_RC: u32 = 24578; +pub const ETH_P_DNA_RT: u32 = 24579; +pub const ETH_P_LAT: u32 = 24580; +pub const ETH_P_DIAG: u32 = 24581; +pub const ETH_P_CUST: u32 = 24582; +pub const ETH_P_SCA: u32 = 24583; +pub const ETH_P_TEB: u32 = 25944; +pub const ETH_P_RARP: u32 = 32821; +pub const ETH_P_ATALK: u32 = 32923; +pub const ETH_P_AARP: u32 = 33011; +pub const ETH_P_8021Q: u32 = 33024; +pub const ETH_P_ERSPAN: u32 = 35006; +pub const ETH_P_IPX: u32 = 33079; +pub const ETH_P_IPV6: u32 = 34525; +pub const ETH_P_PAUSE: u32 = 34824; +pub const ETH_P_SLOW: u32 = 34825; +pub const ETH_P_WCCP: u32 = 34878; +pub const ETH_P_MPLS_UC: u32 = 34887; +pub const ETH_P_MPLS_MC: u32 = 34888; +pub const ETH_P_ATMMPOA: u32 = 34892; +pub const ETH_P_PPP_DISC: u32 = 34915; +pub const ETH_P_PPP_SES: u32 = 34916; +pub const ETH_P_LINK_CTL: u32 = 34924; +pub const ETH_P_ATMFATE: u32 = 34948; +pub const ETH_P_PAE: u32 = 34958; +pub const ETH_P_AOE: u32 = 34978; +pub const ETH_P_8021AD: u32 = 34984; +pub const ETH_P_802_EX1: u32 = 34997; +pub const ETH_P_PREAUTH: u32 = 35015; +pub const ETH_P_TIPC: u32 = 35018; +pub const ETH_P_LLDP: u32 = 35020; +pub const ETH_P_MRP: u32 = 35043; +pub const ETH_P_MACSEC: u32 = 35045; +pub const ETH_P_8021AH: u32 = 35047; +pub const ETH_P_MVRP: u32 = 35061; +pub const ETH_P_1588: u32 = 35063; +pub const ETH_P_NCSI: u32 = 35064; +pub const ETH_P_PRP: u32 = 35067; +pub const ETH_P_FCOE: u32 = 35078; +pub const ETH_P_IBOE: u32 = 35093; +pub const ETH_P_TDLS: u32 = 35085; +pub const ETH_P_FIP: u32 = 35092; +pub const ETH_P_80221: u32 = 35095; +pub const ETH_P_HSR: u32 = 35119; +pub const ETH_P_NSH: u32 = 35151; +pub const ETH_P_LOOPBACK: u32 = 36864; +pub const ETH_P_QINQ1: u32 = 37120; +pub const ETH_P_QINQ2: u32 = 37376; +pub const ETH_P_QINQ3: u32 = 37632; +pub const ETH_P_EDSA: u32 = 56026; +pub const ETH_P_DSA_8021Q: u32 = 56027; +pub const ETH_P_IFE: u32 = 60734; +pub const ETH_P_AF_IUCV: u32 = 64507; +pub const ETH_P_802_3_MIN: u32 = 1536; +pub const ETH_P_802_3: u32 = 1; +pub const ETH_P_AX25: u32 = 2; +pub const ETH_P_ALL: u32 = 3; +pub const ETH_P_802_2: u32 = 4; +pub const ETH_P_SNAP: u32 = 5; +pub const ETH_P_DDCMP: u32 = 6; +pub const ETH_P_WAN_PPP: u32 = 7; +pub const ETH_P_PPP_MP: u32 = 8; +pub const ETH_P_LOCALTALK: u32 = 9; +pub const ETH_P_CAN: u32 = 12; +pub const ETH_P_CANFD: u32 = 13; +pub const ETH_P_PPPTALK: u32 = 16; +pub const ETH_P_TR_802_2: u32 = 17; +pub const ETH_P_MOBITEX: u32 = 21; +pub const ETH_P_CONTROL: u32 = 22; +pub const ETH_P_IRDA: u32 = 23; +pub const ETH_P_ECONET: u32 = 24; +pub const ETH_P_HDLC: u32 = 25; +pub const ETH_P_ARCNET: u32 = 26; +pub const ETH_P_DSA: u32 = 27; +pub const ETH_P_TRAILER: u32 = 28; +pub const ETH_P_PHONET: u32 = 245; +pub const ETH_P_IEEE802154: u32 = 246; +pub const ETH_P_CAIF: u32 = 247; +pub const ETH_P_XDSA: u32 = 248; +pub const ETH_P_MAP: u32 = 249; +pub const __UAPI_DEF_ETHHDR: u32 = 1; +pub const BPF_LD: u32 = 0; +pub const BPF_LDX: u32 = 1; +pub const BPF_ST: u32 = 2; +pub const BPF_STX: u32 = 3; +pub const BPF_ALU: u32 = 4; +pub const BPF_JMP: u32 = 5; +pub const BPF_RET: u32 = 6; +pub const BPF_MISC: u32 = 7; +pub const BPF_W: u32 = 0; +pub const BPF_H: u32 = 8; +pub const BPF_B: u32 = 16; +pub const BPF_IMM: u32 = 0; +pub const BPF_ABS: u32 = 32; +pub const BPF_IND: u32 = 64; +pub const BPF_MEM: u32 = 96; +pub const BPF_LEN: u32 = 128; +pub const BPF_MSH: u32 = 160; +pub const BPF_ADD: u32 = 0; +pub const BPF_SUB: u32 = 16; +pub const BPF_MUL: u32 = 32; +pub const BPF_DIV: u32 = 48; +pub const BPF_OR: u32 = 64; +pub const BPF_AND: u32 = 80; +pub const BPF_LSH: u32 = 96; +pub const BPF_RSH: u32 = 112; +pub const BPF_NEG: u32 = 128; +pub const BPF_MOD: u32 = 144; +pub const BPF_XOR: u32 = 160; +pub const BPF_JA: u32 = 0; +pub const BPF_JEQ: u32 = 16; +pub const BPF_JGT: u32 = 32; +pub const BPF_JGE: u32 = 48; +pub const BPF_JSET: u32 = 64; +pub const BPF_K: u32 = 0; +pub const BPF_X: u32 = 8; +pub const BPF_MAXINSNS: u32 = 4096; +pub const BPF_MAJOR_VERSION: u32 = 1; +pub const BPF_MINOR_VERSION: u32 = 1; +pub const BPF_A: u32 = 16; +pub const BPF_TAX: u32 = 0; +pub const BPF_TXA: u32 = 128; +pub const BPF_MEMWORDS: u32 = 16; +pub const SKF_AD_OFF: i32 = -4096; +pub const SKF_AD_PROTOCOL: u32 = 0; +pub const SKF_AD_PKTTYPE: u32 = 4; +pub const SKF_AD_IFINDEX: u32 = 8; +pub const SKF_AD_NLATTR: u32 = 12; +pub const SKF_AD_NLATTR_NEST: u32 = 16; +pub const SKF_AD_MARK: u32 = 20; +pub const SKF_AD_QUEUE: u32 = 24; +pub const SKF_AD_HATYPE: u32 = 28; +pub const SKF_AD_RXHASH: u32 = 32; +pub const SKF_AD_CPU: u32 = 36; +pub const SKF_AD_ALU_XOR_X: u32 = 40; +pub const SKF_AD_VLAN_TAG: u32 = 44; +pub const SKF_AD_VLAN_TAG_PRESENT: u32 = 48; +pub const SKF_AD_PAY_OFFSET: u32 = 52; +pub const SKF_AD_RANDOM: u32 = 56; +pub const SKF_AD_VLAN_TPID: u32 = 60; +pub const SKF_AD_MAX: u32 = 64; +pub const SKF_NET_OFF: i32 = -1048576; +pub const SKF_LL_OFF: i32 = -2097152; +pub const BPF_NET_OFF: i32 = -1048576; +pub const BPF_LL_OFF: i32 = -2097152; +pub const TUN_READQ_SIZE: u32 = 500; +pub const TUN_TYPE_MASK: u32 = 15; +pub const IFF_TUN: u32 = 1; +pub const IFF_TAP: u32 = 2; +pub const IFF_NAPI: u32 = 16; +pub const IFF_NAPI_FRAGS: u32 = 32; +pub const IFF_NO_PI: u32 = 4096; +pub const IFF_ONE_QUEUE: u32 = 8192; +pub const IFF_VNET_HDR: u32 = 16384; +pub const IFF_TUN_EXCL: u32 = 32768; +pub const IFF_MULTI_QUEUE: u32 = 256; +pub const IFF_ATTACH_QUEUE: u32 = 512; +pub const IFF_DETACH_QUEUE: u32 = 1024; +pub const IFF_PERSIST: u32 = 2048; +pub const IFF_NOFILTER: u32 = 4096; +pub const TUN_TX_TIMESTAMP: u32 = 1; +pub const TUN_F_CSUM: u32 = 1; +pub const TUN_F_TSO4: u32 = 2; +pub const TUN_F_TSO6: u32 = 4; +pub const TUN_F_TSO_ECN: u32 = 8; +pub const TUN_F_UFO: u32 = 16; +pub const TUN_PKT_STRIP: u32 = 1; +pub const TUN_FLT_ALLMULTI: u32 = 1; pub type __s8 = ::std::os::raw::c_schar; pub type __u8 = ::std::os::raw::c_uchar; pub type __s16 = ::std::os::raw::c_short; @@ -224,38 +239,10 @@ pub type __u32 = ::std::os::raw::c_uint; pub type __s64 = ::std::os::raw::c_longlong; pub type __u64 = ::std::os::raw::c_ulonglong; #[repr(C)] -#[derive(Debug, Default, Copy)] +#[derive(Debug, Copy, Clone)] pub struct __kernel_fd_set { pub fds_bits: [::std::os::raw::c_ulong; 16usize], } -#[test] -fn bindgen_test_layout___kernel_fd_set() { - assert_eq!( - ::std::mem::size_of::<__kernel_fd_set>(), - 128usize, - concat!("Size of: ", stringify!(__kernel_fd_set)) - ); - assert_eq!( - ::std::mem::align_of::<__kernel_fd_set>(), - 8usize, - concat!("Alignment of ", stringify!(__kernel_fd_set)) - ); - assert_eq!( - unsafe { &(*(0 as *const __kernel_fd_set)).fds_bits as *const _ as usize }, - 0usize, - concat!( - "Alignment of field: ", - stringify!(__kernel_fd_set), - "::", - stringify!(fds_bits) - ) - ); -} -impl Clone for __kernel_fd_set { - fn clone(&self) -> Self { - *self - } -} pub type __kernel_sighandler_t = ::std::option::Option; pub type __kernel_key_t = ::std::os::raw::c_int; @@ -279,41 +266,15 @@ pub type __kernel_size_t = __kernel_ulong_t; pub type __kernel_ssize_t = __kernel_long_t; pub type __kernel_ptrdiff_t = __kernel_long_t; #[repr(C)] -#[derive(Debug, Default, Copy)] +#[derive(Debug, Copy, Clone)] pub struct __kernel_fsid_t { pub val: [::std::os::raw::c_int; 2usize], } -#[test] -fn bindgen_test_layout___kernel_fsid_t() { - assert_eq!( - ::std::mem::size_of::<__kernel_fsid_t>(), - 8usize, - concat!("Size of: ", stringify!(__kernel_fsid_t)) - ); - assert_eq!( - ::std::mem::align_of::<__kernel_fsid_t>(), - 4usize, - concat!("Alignment of ", stringify!(__kernel_fsid_t)) - ); - assert_eq!( - unsafe { &(*(0 as *const __kernel_fsid_t)).val as *const _ as usize }, - 0usize, - concat!( - "Alignment of field: ", - stringify!(__kernel_fsid_t), - "::", - stringify!(val) - ) - ); -} -impl Clone for __kernel_fsid_t { - fn clone(&self) -> Self { - *self - } -} pub type __kernel_off_t = __kernel_long_t; pub type __kernel_loff_t = ::std::os::raw::c_longlong; +pub type __kernel_old_time_t = __kernel_long_t; pub type __kernel_time_t = __kernel_long_t; +pub type __kernel_time64_t = ::std::os::raw::c_longlong; pub type __kernel_clock_t = __kernel_long_t; pub type __kernel_timer_t = ::std::os::raw::c_int; pub type __kernel_clockid_t = ::std::os::raw::c_int; @@ -328,272 +289,38 @@ pub type __le64 = __u64; pub type __be64 = __u64; pub type __sum16 = __u16; pub type __wsum = __u32; +pub type __poll_t = ::std::os::raw::c_uint; #[repr(C, packed)] -#[derive(Debug, Default, Copy)] +#[derive(Debug, Copy, Clone)] pub struct ethhdr { pub h_dest: [::std::os::raw::c_uchar; 6usize], pub h_source: [::std::os::raw::c_uchar; 6usize], pub h_proto: __be16, } -#[test] -fn bindgen_test_layout_ethhdr() { - assert_eq!( - ::std::mem::size_of::(), - 14usize, - concat!("Size of: ", stringify!(ethhdr)) - ); - assert_eq!( - ::std::mem::align_of::(), - 1usize, - concat!("Alignment of ", stringify!(ethhdr)) - ); - assert_eq!( - unsafe { &(*(0 as *const ethhdr)).h_dest as *const _ as usize }, - 0usize, - concat!( - "Alignment of field: ", - stringify!(ethhdr), - "::", - stringify!(h_dest) - ) - ); - assert_eq!( - unsafe { &(*(0 as *const ethhdr)).h_source as *const _ as usize }, - 6usize, - concat!( - "Alignment of field: ", - stringify!(ethhdr), - "::", - stringify!(h_source) - ) - ); - assert_eq!( - unsafe { &(*(0 as *const ethhdr)).h_proto as *const _ as usize }, - 12usize, - concat!( - "Alignment of field: ", - stringify!(ethhdr), - "::", - stringify!(h_proto) - ) - ); -} -impl Clone for ethhdr { - fn clone(&self) -> Self { - *self - } -} #[repr(C)] -#[derive(Debug, Default, Copy)] +#[derive(Debug, Copy, Clone)] pub struct sock_filter { pub code: __u16, pub jt: __u8, pub jf: __u8, pub k: __u32, } -#[test] -fn bindgen_test_layout_sock_filter() { - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(sock_filter)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(sock_filter)) - ); - assert_eq!( - unsafe { &(*(0 as *const sock_filter)).code as *const _ as usize }, - 0usize, - concat!( - "Alignment of field: ", - stringify!(sock_filter), - "::", - stringify!(code) - ) - ); - assert_eq!( - unsafe { &(*(0 as *const sock_filter)).jt as *const _ as usize }, - 2usize, - concat!( - "Alignment of field: ", - stringify!(sock_filter), - "::", - stringify!(jt) - ) - ); - assert_eq!( - unsafe { &(*(0 as *const sock_filter)).jf as *const _ as usize }, - 3usize, - concat!( - "Alignment of field: ", - stringify!(sock_filter), - "::", - stringify!(jf) - ) - ); - assert_eq!( - unsafe { &(*(0 as *const sock_filter)).k as *const _ as usize }, - 4usize, - concat!( - "Alignment of field: ", - stringify!(sock_filter), - "::", - stringify!(k) - ) - ); -} -impl Clone for sock_filter { - fn clone(&self) -> Self { - *self - } -} #[repr(C)] -#[derive(Debug, Copy)] +#[derive(Debug, Copy, Clone)] pub struct sock_fprog { pub len: ::std::os::raw::c_ushort, pub filter: *mut sock_filter, } -#[test] -fn bindgen_test_layout_sock_fprog() { - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(sock_fprog)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(sock_fprog)) - ); - assert_eq!( - unsafe { &(*(0 as *const sock_fprog)).len as *const _ as usize }, - 0usize, - concat!( - "Alignment of field: ", - stringify!(sock_fprog), - "::", - stringify!(len) - ) - ); - assert_eq!( - unsafe { &(*(0 as *const sock_fprog)).filter as *const _ as usize }, - 8usize, - concat!( - "Alignment of field: ", - stringify!(sock_fprog), - "::", - stringify!(filter) - ) - ); -} -impl Clone for sock_fprog { - fn clone(&self) -> Self { - *self - } -} -impl Default for sock_fprog { - fn default() -> Self { - unsafe { ::std::mem::zeroed() } - } -} #[repr(C)] -#[derive(Debug, Default, Copy)] +#[derive(Debug, Copy, Clone)] pub struct tun_pi { pub flags: __u16, pub proto: __be16, } -#[test] -fn bindgen_test_layout_tun_pi() { - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(tun_pi)) - ); - assert_eq!( - ::std::mem::align_of::(), - 2usize, - concat!("Alignment of ", stringify!(tun_pi)) - ); - assert_eq!( - unsafe { &(*(0 as *const tun_pi)).flags as *const _ as usize }, - 0usize, - concat!( - "Alignment of field: ", - stringify!(tun_pi), - "::", - stringify!(flags) - ) - ); - assert_eq!( - unsafe { &(*(0 as *const tun_pi)).proto as *const _ as usize }, - 2usize, - concat!( - "Alignment of field: ", - stringify!(tun_pi), - "::", - stringify!(proto) - ) - ); -} -impl Clone for tun_pi { - fn clone(&self) -> Self { - *self - } -} #[repr(C)] -#[derive(Debug, Default, Copy)] +#[derive(Debug)] pub struct tun_filter { pub flags: __u16, pub count: __u16, pub addr: __IncompleteArrayField<[__u8; 6usize]>, } -#[test] -fn bindgen_test_layout_tun_filter() { - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(tun_filter)) - ); - assert_eq!( - ::std::mem::align_of::(), - 2usize, - concat!("Alignment of ", stringify!(tun_filter)) - ); - assert_eq!( - unsafe { &(*(0 as *const tun_filter)).flags as *const _ as usize }, - 0usize, - concat!( - "Alignment of field: ", - stringify!(tun_filter), - "::", - stringify!(flags) - ) - ); - assert_eq!( - unsafe { &(*(0 as *const tun_filter)).count as *const _ as usize }, - 2usize, - concat!( - "Alignment of field: ", - stringify!(tun_filter), - "::", - stringify!(count) - ) - ); - assert_eq!( - unsafe { &(*(0 as *const tun_filter)).addr as *const _ as usize }, - 4usize, - concat!( - "Alignment of field: ", - stringify!(tun_filter), - "::", - stringify!(addr) - ) - ); -} -impl Clone for tun_filter { - fn clone(&self) -> Self { - *self - } -} diff --git a/net_gen/src/iff.rs b/net_gen/src/iff.rs index 2e872adbb..4a9e6a773 100644 --- a/net_gen/src/iff.rs +++ b/net_gen/src/iff.rs @@ -1,24 +1,27 @@ -// Copyright 2017 The Chromium OS Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the THIRD-PARTY file. +// Copyright © 2021 Intel Corporation +// +// SPDX-License-Identifier: Apache-2.0 +// -/* automatically generated by rust-bindgen */ +// bindgen /usr/include/linux/if.h --no-layout-tests + +/* automatically generated by rust-bindgen 0.58.1 */ #[repr(C)] #[derive(Default)] -pub struct __IncompleteArrayField(::std::marker::PhantomData); +pub struct __IncompleteArrayField(::std::marker::PhantomData, [T; 0]); impl __IncompleteArrayField { #[inline] - pub fn new() -> Self { - __IncompleteArrayField(::std::marker::PhantomData) + pub const fn new() -> Self { + __IncompleteArrayField(::std::marker::PhantomData, []) } #[inline] - pub unsafe fn as_ptr(&self) -> *const T { - ::std::mem::transmute(self) + pub fn as_ptr(&self) -> *const T { + self as *const _ as *const T } #[inline] - pub unsafe fn as_mut_ptr(&mut self) -> *mut T { - ::std::mem::transmute(self) + pub fn as_mut_ptr(&mut self) -> *mut T { + self as *mut _ as *mut T } #[inline] pub unsafe fn as_slice(&self, len: usize) -> &[T] { @@ -30,358 +33,391 @@ impl __IncompleteArrayField { } } impl ::std::fmt::Debug for __IncompleteArrayField { - fn fmt(&self, fmt: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { + fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result { fmt.write_str("__IncompleteArrayField") } } -impl ::std::clone::Clone for __IncompleteArrayField { - #[inline] - fn clone(&self) -> Self { - Self::new() - } -} -impl ::std::marker::Copy for __IncompleteArrayField {} -#[repr(C)] -pub struct __BindgenUnionField(::std::marker::PhantomData); -impl __BindgenUnionField { - #[inline] - pub fn new() -> Self { - __BindgenUnionField(::std::marker::PhantomData) - } - #[inline] - pub unsafe fn as_ref(&self) -> &T { - ::std::mem::transmute(self) - } - #[inline] - pub unsafe fn as_mut(&mut self) -> &mut T { - ::std::mem::transmute(self) - } -} -impl ::std::default::Default for __BindgenUnionField { - #[inline] - fn default() -> Self { - Self::new() - } -} -impl ::std::clone::Clone for __BindgenUnionField { - #[inline] - fn clone(&self) -> Self { - Self::new() - } -} -impl ::std::marker::Copy for __BindgenUnionField {} -impl ::std::fmt::Debug for __BindgenUnionField { - fn fmt(&self, fmt: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { - fmt.write_str("__BindgenUnionField") - } -} -pub const __UAPI_DEF_IN_ADDR: ::std::os::raw::c_uint = 1; -pub const __UAPI_DEF_IN_IPPROTO: ::std::os::raw::c_uint = 1; -pub const __UAPI_DEF_IN_PKTINFO: ::std::os::raw::c_uint = 1; -pub const __UAPI_DEF_IP_MREQ: ::std::os::raw::c_uint = 1; -pub const __UAPI_DEF_SOCKADDR_IN: ::std::os::raw::c_uint = 1; -pub const __UAPI_DEF_IN_CLASS: ::std::os::raw::c_uint = 1; -pub const __UAPI_DEF_IN6_ADDR: ::std::os::raw::c_uint = 1; -pub const __UAPI_DEF_IN6_ADDR_ALT: ::std::os::raw::c_uint = 1; -pub const __UAPI_DEF_SOCKADDR_IN6: ::std::os::raw::c_uint = 1; -pub const __UAPI_DEF_IPV6_MREQ: ::std::os::raw::c_uint = 1; -pub const __UAPI_DEF_IPPROTO_V6: ::std::os::raw::c_uint = 1; -pub const __UAPI_DEF_IPV6_OPTIONS: ::std::os::raw::c_uint = 1; -pub const __UAPI_DEF_IN6_PKTINFO: ::std::os::raw::c_uint = 1; -pub const __UAPI_DEF_IP6_MTUINFO: ::std::os::raw::c_uint = 1; -pub const __UAPI_DEF_XATTR: ::std::os::raw::c_uint = 1; -pub const __BITS_PER_LONG: ::std::os::raw::c_uint = 64; -pub const __FD_SETSIZE: ::std::os::raw::c_uint = 1024; -pub const _K_SS_MAXSIZE: ::std::os::raw::c_uint = 128; -pub const _SYS_SOCKET_H: ::std::os::raw::c_uint = 1; -pub const _FEATURES_H: ::std::os::raw::c_uint = 1; -pub const _DEFAULT_SOURCE: ::std::os::raw::c_uint = 1; -pub const __USE_ISOC11: ::std::os::raw::c_uint = 1; -pub const __USE_ISOC99: ::std::os::raw::c_uint = 1; -pub const __USE_ISOC95: ::std::os::raw::c_uint = 1; -pub const __USE_POSIX_IMPLICITLY: ::std::os::raw::c_uint = 1; -pub const _POSIX_SOURCE: ::std::os::raw::c_uint = 1; -pub const _POSIX_C_SOURCE: ::std::os::raw::c_uint = 200809; -pub const __USE_POSIX: ::std::os::raw::c_uint = 1; -pub const __USE_POSIX2: ::std::os::raw::c_uint = 1; -pub const __USE_POSIX199309: ::std::os::raw::c_uint = 1; -pub const __USE_POSIX199506: ::std::os::raw::c_uint = 1; -pub const __USE_XOPEN2K: ::std::os::raw::c_uint = 1; -pub const __USE_XOPEN2K8: ::std::os::raw::c_uint = 1; -pub const _ATFILE_SOURCE: ::std::os::raw::c_uint = 1; -pub const __USE_MISC: ::std::os::raw::c_uint = 1; -pub const __USE_ATFILE: ::std::os::raw::c_uint = 1; -pub const __USE_FORTIFY_LEVEL: ::std::os::raw::c_uint = 0; -pub const _STDC_PREDEF_H: ::std::os::raw::c_uint = 1; -pub const __STDC_IEC_559__: ::std::os::raw::c_uint = 1; -pub const __STDC_IEC_559_COMPLEX__: ::std::os::raw::c_uint = 1; -pub const __STDC_ISO_10646__: ::std::os::raw::c_uint = 201505; -pub const __STDC_NO_THREADS__: ::std::os::raw::c_uint = 1; -pub const __GNU_LIBRARY__: ::std::os::raw::c_uint = 6; -pub const __GLIBC__: ::std::os::raw::c_uint = 2; -pub const __GLIBC_MINOR__: ::std::os::raw::c_uint = 23; -pub const _SYS_CDEFS_H: ::std::os::raw::c_uint = 1; -pub const __WORDSIZE: ::std::os::raw::c_uint = 64; -pub const __WORDSIZE_TIME64_COMPAT32: ::std::os::raw::c_uint = 1; -pub const __SYSCALL_WORDSIZE: ::std::os::raw::c_uint = 64; -pub const _SYS_UIO_H: ::std::os::raw::c_uint = 1; -pub const _SYS_TYPES_H: ::std::os::raw::c_uint = 1; -pub const _BITS_TYPES_H: ::std::os::raw::c_uint = 1; -pub const _BITS_TYPESIZES_H: ::std::os::raw::c_uint = 1; -pub const __OFF_T_MATCHES_OFF64_T: ::std::os::raw::c_uint = 1; -pub const __INO_T_MATCHES_INO64_T: ::std::os::raw::c_uint = 1; -pub const __clock_t_defined: ::std::os::raw::c_uint = 1; -pub const __time_t_defined: ::std::os::raw::c_uint = 1; -pub const __clockid_t_defined: ::std::os::raw::c_uint = 1; -pub const __timer_t_defined: ::std::os::raw::c_uint = 1; -pub const __BIT_TYPES_DEFINED__: ::std::os::raw::c_uint = 1; -pub const _ENDIAN_H: ::std::os::raw::c_uint = 1; -pub const __LITTLE_ENDIAN: ::std::os::raw::c_uint = 1234; -pub const __BIG_ENDIAN: ::std::os::raw::c_uint = 4321; -pub const __PDP_ENDIAN: ::std::os::raw::c_uint = 3412; -pub const __BYTE_ORDER: ::std::os::raw::c_uint = 1234; -pub const __FLOAT_WORD_ORDER: ::std::os::raw::c_uint = 1234; -pub const LITTLE_ENDIAN: ::std::os::raw::c_uint = 1234; -pub const BIG_ENDIAN: ::std::os::raw::c_uint = 4321; -pub const PDP_ENDIAN: ::std::os::raw::c_uint = 3412; -pub const BYTE_ORDER: ::std::os::raw::c_uint = 1234; -pub const _BITS_BYTESWAP_H: ::std::os::raw::c_uint = 1; -pub const _SYS_SELECT_H: ::std::os::raw::c_uint = 1; -pub const __FD_ZERO_STOS: &'static [u8; 6usize] = b"stosq\x00"; -pub const _SIGSET_H_types: ::std::os::raw::c_uint = 1; -pub const __timespec_defined: ::std::os::raw::c_uint = 1; -pub const _STRUCT_TIMEVAL: ::std::os::raw::c_uint = 1; -pub const FD_SETSIZE: ::std::os::raw::c_uint = 1024; -pub const _SYS_SYSMACROS_H: ::std::os::raw::c_uint = 1; -pub const _BITS_PTHREADTYPES_H: ::std::os::raw::c_uint = 1; -pub const __SIZEOF_PTHREAD_ATTR_T: ::std::os::raw::c_uint = 56; -pub const __SIZEOF_PTHREAD_MUTEX_T: ::std::os::raw::c_uint = 40; -pub const __SIZEOF_PTHREAD_MUTEXATTR_T: ::std::os::raw::c_uint = 4; -pub const __SIZEOF_PTHREAD_COND_T: ::std::os::raw::c_uint = 48; -pub const __SIZEOF_PTHREAD_CONDATTR_T: ::std::os::raw::c_uint = 4; -pub const __SIZEOF_PTHREAD_RWLOCK_T: ::std::os::raw::c_uint = 56; -pub const __SIZEOF_PTHREAD_RWLOCKATTR_T: ::std::os::raw::c_uint = 8; -pub const __SIZEOF_PTHREAD_BARRIER_T: ::std::os::raw::c_uint = 32; -pub const __SIZEOF_PTHREAD_BARRIERATTR_T: ::std::os::raw::c_uint = 4; -pub const __have_pthread_attr_t: ::std::os::raw::c_uint = 1; -pub const __PTHREAD_MUTEX_HAVE_PREV: ::std::os::raw::c_uint = 1; -pub const __PTHREAD_RWLOCK_INT_FLAGS_SHARED: ::std::os::raw::c_uint = 1; -pub const _BITS_UIO_H: ::std::os::raw::c_uint = 1; -pub const UIO_MAXIOV: ::std::os::raw::c_uint = 1024; -pub const PF_UNSPEC: ::std::os::raw::c_uint = 0; -pub const PF_LOCAL: ::std::os::raw::c_uint = 1; -pub const PF_UNIX: ::std::os::raw::c_uint = 1; -pub const PF_FILE: ::std::os::raw::c_uint = 1; -pub const PF_INET: ::std::os::raw::c_uint = 2; -pub const PF_AX25: ::std::os::raw::c_uint = 3; -pub const PF_IPX: ::std::os::raw::c_uint = 4; -pub const PF_APPLETALK: ::std::os::raw::c_uint = 5; -pub const PF_NETROM: ::std::os::raw::c_uint = 6; -pub const PF_BRIDGE: ::std::os::raw::c_uint = 7; -pub const PF_ATMPVC: ::std::os::raw::c_uint = 8; -pub const PF_X25: ::std::os::raw::c_uint = 9; -pub const PF_INET6: ::std::os::raw::c_uint = 10; -pub const PF_ROSE: ::std::os::raw::c_uint = 11; -pub const PF_DECnet: ::std::os::raw::c_uint = 12; -pub const PF_NETBEUI: ::std::os::raw::c_uint = 13; -pub const PF_SECURITY: ::std::os::raw::c_uint = 14; -pub const PF_KEY: ::std::os::raw::c_uint = 15; -pub const PF_NETLINK: ::std::os::raw::c_uint = 16; -pub const PF_ROUTE: ::std::os::raw::c_uint = 16; -pub const PF_PACKET: ::std::os::raw::c_uint = 17; -pub const PF_ASH: ::std::os::raw::c_uint = 18; -pub const PF_ECONET: ::std::os::raw::c_uint = 19; -pub const PF_ATMSVC: ::std::os::raw::c_uint = 20; -pub const PF_RDS: ::std::os::raw::c_uint = 21; -pub const PF_SNA: ::std::os::raw::c_uint = 22; -pub const PF_IRDA: ::std::os::raw::c_uint = 23; -pub const PF_PPPOX: ::std::os::raw::c_uint = 24; -pub const PF_WANPIPE: ::std::os::raw::c_uint = 25; -pub const PF_LLC: ::std::os::raw::c_uint = 26; -pub const PF_IB: ::std::os::raw::c_uint = 27; -pub const PF_MPLS: ::std::os::raw::c_uint = 28; -pub const PF_CAN: ::std::os::raw::c_uint = 29; -pub const PF_TIPC: ::std::os::raw::c_uint = 30; -pub const PF_BLUETOOTH: ::std::os::raw::c_uint = 31; -pub const PF_IUCV: ::std::os::raw::c_uint = 32; -pub const PF_RXRPC: ::std::os::raw::c_uint = 33; -pub const PF_ISDN: ::std::os::raw::c_uint = 34; -pub const PF_PHONET: ::std::os::raw::c_uint = 35; -pub const PF_IEEE802154: ::std::os::raw::c_uint = 36; -pub const PF_CAIF: ::std::os::raw::c_uint = 37; -pub const PF_ALG: ::std::os::raw::c_uint = 38; -pub const PF_NFC: ::std::os::raw::c_uint = 39; -pub const PF_VSOCK: ::std::os::raw::c_uint = 40; -pub const PF_MAX: ::std::os::raw::c_uint = 41; -pub const AF_UNSPEC: ::std::os::raw::c_uint = 0; -pub const AF_LOCAL: ::std::os::raw::c_uint = 1; -pub const AF_UNIX: ::std::os::raw::c_uint = 1; -pub const AF_FILE: ::std::os::raw::c_uint = 1; -pub const AF_INET: ::std::os::raw::c_uint = 2; -pub const AF_AX25: ::std::os::raw::c_uint = 3; -pub const AF_IPX: ::std::os::raw::c_uint = 4; -pub const AF_APPLETALK: ::std::os::raw::c_uint = 5; -pub const AF_NETROM: ::std::os::raw::c_uint = 6; -pub const AF_BRIDGE: ::std::os::raw::c_uint = 7; -pub const AF_ATMPVC: ::std::os::raw::c_uint = 8; -pub const AF_X25: ::std::os::raw::c_uint = 9; -pub const AF_INET6: ::std::os::raw::c_uint = 10; -pub const AF_ROSE: ::std::os::raw::c_uint = 11; -pub const AF_DECnet: ::std::os::raw::c_uint = 12; -pub const AF_NETBEUI: ::std::os::raw::c_uint = 13; -pub const AF_SECURITY: ::std::os::raw::c_uint = 14; -pub const AF_KEY: ::std::os::raw::c_uint = 15; -pub const AF_NETLINK: ::std::os::raw::c_uint = 16; -pub const AF_ROUTE: ::std::os::raw::c_uint = 16; -pub const AF_PACKET: ::std::os::raw::c_uint = 17; -pub const AF_ASH: ::std::os::raw::c_uint = 18; -pub const AF_ECONET: ::std::os::raw::c_uint = 19; -pub const AF_ATMSVC: ::std::os::raw::c_uint = 20; -pub const AF_RDS: ::std::os::raw::c_uint = 21; -pub const AF_SNA: ::std::os::raw::c_uint = 22; -pub const AF_IRDA: ::std::os::raw::c_uint = 23; -pub const AF_PPPOX: ::std::os::raw::c_uint = 24; -pub const AF_WANPIPE: ::std::os::raw::c_uint = 25; -pub const AF_LLC: ::std::os::raw::c_uint = 26; -pub const AF_IB: ::std::os::raw::c_uint = 27; -pub const AF_MPLS: ::std::os::raw::c_uint = 28; -pub const AF_CAN: ::std::os::raw::c_uint = 29; -pub const AF_TIPC: ::std::os::raw::c_uint = 30; -pub const AF_BLUETOOTH: ::std::os::raw::c_uint = 31; -pub const AF_IUCV: ::std::os::raw::c_uint = 32; -pub const AF_RXRPC: ::std::os::raw::c_uint = 33; -pub const AF_ISDN: ::std::os::raw::c_uint = 34; -pub const AF_PHONET: ::std::os::raw::c_uint = 35; -pub const AF_IEEE802154: ::std::os::raw::c_uint = 36; -pub const AF_CAIF: ::std::os::raw::c_uint = 37; -pub const AF_ALG: ::std::os::raw::c_uint = 38; -pub const AF_NFC: ::std::os::raw::c_uint = 39; -pub const AF_VSOCK: ::std::os::raw::c_uint = 40; -pub const AF_MAX: ::std::os::raw::c_uint = 41; -pub const SOL_RAW: ::std::os::raw::c_uint = 255; -pub const SOL_DECNET: ::std::os::raw::c_uint = 261; -pub const SOL_X25: ::std::os::raw::c_uint = 262; -pub const SOL_PACKET: ::std::os::raw::c_uint = 263; -pub const SOL_ATM: ::std::os::raw::c_uint = 264; -pub const SOL_AAL: ::std::os::raw::c_uint = 265; -pub const SOL_IRDA: ::std::os::raw::c_uint = 266; -pub const SOMAXCONN: ::std::os::raw::c_uint = 128; -pub const _BITS_SOCKADDR_H: ::std::os::raw::c_uint = 1; -pub const _SS_SIZE: ::std::os::raw::c_uint = 128; -pub const FIOSETOWN: ::std::os::raw::c_uint = 35073; -pub const SIOCSPGRP: ::std::os::raw::c_uint = 35074; -pub const FIOGETOWN: ::std::os::raw::c_uint = 35075; -pub const SIOCGPGRP: ::std::os::raw::c_uint = 35076; -pub const SIOCATMARK: ::std::os::raw::c_uint = 35077; -pub const SIOCGSTAMP: ::std::os::raw::c_uint = 35078; -pub const SIOCGSTAMPNS: ::std::os::raw::c_uint = 35079; -pub const SOL_SOCKET: ::std::os::raw::c_uint = 1; -pub const SO_DEBUG: ::std::os::raw::c_uint = 1; -pub const SO_REUSEADDR: ::std::os::raw::c_uint = 2; -pub const SO_TYPE: ::std::os::raw::c_uint = 3; -pub const SO_ERROR: ::std::os::raw::c_uint = 4; -pub const SO_DONTROUTE: ::std::os::raw::c_uint = 5; -pub const SO_BROADCAST: ::std::os::raw::c_uint = 6; -pub const SO_SNDBUF: ::std::os::raw::c_uint = 7; -pub const SO_RCVBUF: ::std::os::raw::c_uint = 8; -pub const SO_SNDBUFFORCE: ::std::os::raw::c_uint = 32; -pub const SO_RCVBUFFORCE: ::std::os::raw::c_uint = 33; -pub const SO_KEEPALIVE: ::std::os::raw::c_uint = 9; -pub const SO_OOBINLINE: ::std::os::raw::c_uint = 10; -pub const SO_NO_CHECK: ::std::os::raw::c_uint = 11; -pub const SO_PRIORITY: ::std::os::raw::c_uint = 12; -pub const SO_LINGER: ::std::os::raw::c_uint = 13; -pub const SO_BSDCOMPAT: ::std::os::raw::c_uint = 14; -pub const SO_REUSEPORT: ::std::os::raw::c_uint = 15; -pub const SO_PASSCRED: ::std::os::raw::c_uint = 16; -pub const SO_PEERCRED: ::std::os::raw::c_uint = 17; -pub const SO_RCVLOWAT: ::std::os::raw::c_uint = 18; -pub const SO_SNDLOWAT: ::std::os::raw::c_uint = 19; -pub const SO_RCVTIMEO: ::std::os::raw::c_uint = 20; -pub const SO_SNDTIMEO: ::std::os::raw::c_uint = 21; -pub const SO_SECURITY_AUTHENTICATION: ::std::os::raw::c_uint = 22; -pub const SO_SECURITY_ENCRYPTION_TRANSPORT: ::std::os::raw::c_uint = 23; -pub const SO_SECURITY_ENCRYPTION_NETWORK: ::std::os::raw::c_uint = 24; -pub const SO_BINDTODEVICE: ::std::os::raw::c_uint = 25; -pub const SO_ATTACH_FILTER: ::std::os::raw::c_uint = 26; -pub const SO_DETACH_FILTER: ::std::os::raw::c_uint = 27; -pub const SO_GET_FILTER: ::std::os::raw::c_uint = 26; -pub const SO_PEERNAME: ::std::os::raw::c_uint = 28; -pub const SO_TIMESTAMP: ::std::os::raw::c_uint = 29; -pub const SCM_TIMESTAMP: ::std::os::raw::c_uint = 29; -pub const SO_ACCEPTCONN: ::std::os::raw::c_uint = 30; -pub const SO_PEERSEC: ::std::os::raw::c_uint = 31; -pub const SO_PASSSEC: ::std::os::raw::c_uint = 34; -pub const SO_TIMESTAMPNS: ::std::os::raw::c_uint = 35; -pub const SCM_TIMESTAMPNS: ::std::os::raw::c_uint = 35; -pub const SO_MARK: ::std::os::raw::c_uint = 36; -pub const SO_TIMESTAMPING: ::std::os::raw::c_uint = 37; -pub const SCM_TIMESTAMPING: ::std::os::raw::c_uint = 37; -pub const SO_PROTOCOL: ::std::os::raw::c_uint = 38; -pub const SO_DOMAIN: ::std::os::raw::c_uint = 39; -pub const SO_RXQ_OVFL: ::std::os::raw::c_uint = 40; -pub const SO_WIFI_STATUS: ::std::os::raw::c_uint = 41; -pub const SCM_WIFI_STATUS: ::std::os::raw::c_uint = 41; -pub const SO_PEEK_OFF: ::std::os::raw::c_uint = 42; -pub const SO_NOFCS: ::std::os::raw::c_uint = 43; -pub const SO_LOCK_FILTER: ::std::os::raw::c_uint = 44; -pub const SO_SELECT_ERR_QUEUE: ::std::os::raw::c_uint = 45; -pub const SO_BUSY_POLL: ::std::os::raw::c_uint = 46; -pub const SO_MAX_PACING_RATE: ::std::os::raw::c_uint = 47; -pub const SO_BPF_EXTENSIONS: ::std::os::raw::c_uint = 48; -pub const SO_INCOMING_CPU: ::std::os::raw::c_uint = 49; -pub const SO_ATTACH_BPF: ::std::os::raw::c_uint = 50; -pub const SO_DETACH_BPF: ::std::os::raw::c_uint = 27; -pub const IFNAMSIZ: ::std::os::raw::c_uint = 16; -pub const IFALIASZ: ::std::os::raw::c_uint = 256; -pub const GENERIC_HDLC_VERSION: ::std::os::raw::c_uint = 4; -pub const CLOCK_DEFAULT: ::std::os::raw::c_uint = 0; -pub const CLOCK_EXT: ::std::os::raw::c_uint = 1; -pub const CLOCK_INT: ::std::os::raw::c_uint = 2; -pub const CLOCK_TXINT: ::std::os::raw::c_uint = 3; -pub const CLOCK_TXFROMRX: ::std::os::raw::c_uint = 4; -pub const ENCODING_DEFAULT: ::std::os::raw::c_uint = 0; -pub const ENCODING_NRZ: ::std::os::raw::c_uint = 1; -pub const ENCODING_NRZI: ::std::os::raw::c_uint = 2; -pub const ENCODING_FM_MARK: ::std::os::raw::c_uint = 3; -pub const ENCODING_FM_SPACE: ::std::os::raw::c_uint = 4; -pub const ENCODING_MANCHESTER: ::std::os::raw::c_uint = 5; -pub const PARITY_DEFAULT: ::std::os::raw::c_uint = 0; -pub const PARITY_NONE: ::std::os::raw::c_uint = 1; -pub const PARITY_CRC16_PR0: ::std::os::raw::c_uint = 2; -pub const PARITY_CRC16_PR1: ::std::os::raw::c_uint = 3; -pub const PARITY_CRC16_PR0_CCITT: ::std::os::raw::c_uint = 4; -pub const PARITY_CRC16_PR1_CCITT: ::std::os::raw::c_uint = 5; -pub const PARITY_CRC32_PR0_CCITT: ::std::os::raw::c_uint = 6; -pub const PARITY_CRC32_PR1_CCITT: ::std::os::raw::c_uint = 7; -pub const LMI_DEFAULT: ::std::os::raw::c_uint = 0; -pub const LMI_NONE: ::std::os::raw::c_uint = 1; -pub const LMI_ANSI: ::std::os::raw::c_uint = 2; -pub const LMI_CCITT: ::std::os::raw::c_uint = 3; -pub const LMI_CISCO: ::std::os::raw::c_uint = 4; -pub const IF_GET_IFACE: ::std::os::raw::c_uint = 1; -pub const IF_GET_PROTO: ::std::os::raw::c_uint = 2; -pub const IF_IFACE_V35: ::std::os::raw::c_uint = 4096; -pub const IF_IFACE_V24: ::std::os::raw::c_uint = 4097; -pub const IF_IFACE_X21: ::std::os::raw::c_uint = 4098; -pub const IF_IFACE_T1: ::std::os::raw::c_uint = 4099; -pub const IF_IFACE_E1: ::std::os::raw::c_uint = 4100; -pub const IF_IFACE_SYNC_SERIAL: ::std::os::raw::c_uint = 4101; -pub const IF_IFACE_X21D: ::std::os::raw::c_uint = 4102; -pub const IF_PROTO_HDLC: ::std::os::raw::c_uint = 8192; -pub const IF_PROTO_PPP: ::std::os::raw::c_uint = 8193; -pub const IF_PROTO_CISCO: ::std::os::raw::c_uint = 8194; -pub const IF_PROTO_FR: ::std::os::raw::c_uint = 8195; -pub const IF_PROTO_FR_ADD_PVC: ::std::os::raw::c_uint = 8196; -pub const IF_PROTO_FR_DEL_PVC: ::std::os::raw::c_uint = 8197; -pub const IF_PROTO_X25: ::std::os::raw::c_uint = 8198; -pub const IF_PROTO_HDLC_ETH: ::std::os::raw::c_uint = 8199; -pub const IF_PROTO_FR_ADD_ETH_PVC: ::std::os::raw::c_uint = 8200; -pub const IF_PROTO_FR_DEL_ETH_PVC: ::std::os::raw::c_uint = 8201; -pub const IF_PROTO_FR_PVC: ::std::os::raw::c_uint = 8202; -pub const IF_PROTO_FR_ETH_PVC: ::std::os::raw::c_uint = 8203; -pub const IF_PROTO_RAW: ::std::os::raw::c_uint = 8204; -pub const IFHWADDRLEN: ::std::os::raw::c_uint = 6; +pub const __UAPI_DEF_IF_IFCONF: u32 = 1; +pub const __UAPI_DEF_IF_IFMAP: u32 = 1; +pub const __UAPI_DEF_IF_IFNAMSIZ: u32 = 1; +pub const __UAPI_DEF_IF_IFREQ: u32 = 1; +pub const __UAPI_DEF_IF_NET_DEVICE_FLAGS: u32 = 1; +pub const __UAPI_DEF_IF_NET_DEVICE_FLAGS_LOWER_UP_DORMANT_ECHO: u32 = 1; +pub const __UAPI_DEF_IN_ADDR: u32 = 1; +pub const __UAPI_DEF_IN_IPPROTO: u32 = 1; +pub const __UAPI_DEF_IN_PKTINFO: u32 = 1; +pub const __UAPI_DEF_IP_MREQ: u32 = 1; +pub const __UAPI_DEF_SOCKADDR_IN: u32 = 1; +pub const __UAPI_DEF_IN_CLASS: u32 = 1; +pub const __UAPI_DEF_IN6_ADDR: u32 = 1; +pub const __UAPI_DEF_IN6_ADDR_ALT: u32 = 1; +pub const __UAPI_DEF_SOCKADDR_IN6: u32 = 1; +pub const __UAPI_DEF_IPV6_MREQ: u32 = 1; +pub const __UAPI_DEF_IPPROTO_V6: u32 = 1; +pub const __UAPI_DEF_IPV6_OPTIONS: u32 = 1; +pub const __UAPI_DEF_IN6_PKTINFO: u32 = 1; +pub const __UAPI_DEF_IP6_MTUINFO: u32 = 1; +pub const __UAPI_DEF_SOCKADDR_IPX: u32 = 1; +pub const __UAPI_DEF_IPX_ROUTE_DEFINITION: u32 = 1; +pub const __UAPI_DEF_IPX_INTERFACE_DEFINITION: u32 = 1; +pub const __UAPI_DEF_IPX_CONFIG_DATA: u32 = 1; +pub const __UAPI_DEF_IPX_ROUTE_DEF: u32 = 1; +pub const __UAPI_DEF_XATTR: u32 = 1; +pub const __BITS_PER_LONG: u32 = 64; +pub const __FD_SETSIZE: u32 = 1024; +pub const _K_SS_MAXSIZE: u32 = 128; +pub const _SYS_SOCKET_H: u32 = 1; +pub const _FEATURES_H: u32 = 1; +pub const _DEFAULT_SOURCE: u32 = 1; +pub const __GLIBC_USE_ISOC2X: u32 = 0; +pub const __USE_ISOC11: u32 = 1; +pub const __USE_ISOC99: u32 = 1; +pub const __USE_ISOC95: u32 = 1; +pub const __USE_POSIX_IMPLICITLY: u32 = 1; +pub const _POSIX_SOURCE: u32 = 1; +pub const _POSIX_C_SOURCE: u32 = 200809; +pub const __USE_POSIX: u32 = 1; +pub const __USE_POSIX2: u32 = 1; +pub const __USE_POSIX199309: u32 = 1; +pub const __USE_POSIX199506: u32 = 1; +pub const __USE_XOPEN2K: u32 = 1; +pub const __USE_XOPEN2K8: u32 = 1; +pub const _ATFILE_SOURCE: u32 = 1; +pub const __USE_MISC: u32 = 1; +pub const __USE_ATFILE: u32 = 1; +pub const __USE_FORTIFY_LEVEL: u32 = 0; +pub const __GLIBC_USE_DEPRECATED_GETS: u32 = 0; +pub const __GLIBC_USE_DEPRECATED_SCANF: u32 = 0; +pub const _STDC_PREDEF_H: u32 = 1; +pub const __STDC_IEC_559__: u32 = 1; +pub const __STDC_IEC_559_COMPLEX__: u32 = 1; +pub const __STDC_ISO_10646__: u32 = 201706; +pub const __GNU_LIBRARY__: u32 = 6; +pub const __GLIBC__: u32 = 2; +pub const __GLIBC_MINOR__: u32 = 32; +pub const _SYS_CDEFS_H: u32 = 1; +pub const __glibc_c99_flexarr_available: u32 = 1; +pub const __WORDSIZE: u32 = 64; +pub const __WORDSIZE_TIME64_COMPAT32: u32 = 1; +pub const __SYSCALL_WORDSIZE: u32 = 64; +pub const __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI: u32 = 0; +pub const __HAVE_GENERIC_SELECTION: u32 = 1; +pub const __iovec_defined: u32 = 1; +pub const _SYS_TYPES_H: u32 = 1; +pub const _BITS_TYPES_H: u32 = 1; +pub const __TIMESIZE: u32 = 64; +pub const _BITS_TYPESIZES_H: u32 = 1; +pub const __OFF_T_MATCHES_OFF64_T: u32 = 1; +pub const __INO_T_MATCHES_INO64_T: u32 = 1; +pub const __RLIM_T_MATCHES_RLIM64_T: u32 = 1; +pub const __STATFS_MATCHES_STATFS64: u32 = 1; +pub const __KERNEL_OLD_TIMEVAL_MATCHES_TIMEVAL64: u32 = 1; +pub const _BITS_TIME64_H: u32 = 1; +pub const __clock_t_defined: u32 = 1; +pub const __clockid_t_defined: u32 = 1; +pub const __time_t_defined: u32 = 1; +pub const __timer_t_defined: u32 = 1; +pub const _BITS_STDINT_INTN_H: u32 = 1; +pub const __BIT_TYPES_DEFINED__: u32 = 1; +pub const _ENDIAN_H: u32 = 1; +pub const _BITS_ENDIAN_H: u32 = 1; +pub const __LITTLE_ENDIAN: u32 = 1234; +pub const __BIG_ENDIAN: u32 = 4321; +pub const __PDP_ENDIAN: u32 = 3412; +pub const _BITS_ENDIANNESS_H: u32 = 1; +pub const __BYTE_ORDER: u32 = 1234; +pub const __FLOAT_WORD_ORDER: u32 = 1234; +pub const LITTLE_ENDIAN: u32 = 1234; +pub const BIG_ENDIAN: u32 = 4321; +pub const PDP_ENDIAN: u32 = 3412; +pub const BYTE_ORDER: u32 = 1234; +pub const _BITS_BYTESWAP_H: u32 = 1; +pub const _BITS_UINTN_IDENTITY_H: u32 = 1; +pub const _SYS_SELECT_H: u32 = 1; +pub const __sigset_t_defined: u32 = 1; +pub const __timeval_defined: u32 = 1; +pub const _STRUCT_TIMESPEC: u32 = 1; +pub const FD_SETSIZE: u32 = 1024; +pub const _BITS_PTHREADTYPES_COMMON_H: u32 = 1; +pub const _THREAD_SHARED_TYPES_H: u32 = 1; +pub const _BITS_PTHREADTYPES_ARCH_H: u32 = 1; +pub const __SIZEOF_PTHREAD_MUTEX_T: u32 = 40; +pub const __SIZEOF_PTHREAD_ATTR_T: u32 = 56; +pub const __SIZEOF_PTHREAD_RWLOCK_T: u32 = 56; +pub const __SIZEOF_PTHREAD_BARRIER_T: u32 = 32; +pub const __SIZEOF_PTHREAD_MUTEXATTR_T: u32 = 4; +pub const __SIZEOF_PTHREAD_COND_T: u32 = 48; +pub const __SIZEOF_PTHREAD_CONDATTR_T: u32 = 4; +pub const __SIZEOF_PTHREAD_RWLOCKATTR_T: u32 = 8; +pub const __SIZEOF_PTHREAD_BARRIERATTR_T: u32 = 4; +pub const _THREAD_MUTEX_INTERNAL_H: u32 = 1; +pub const __PTHREAD_MUTEX_HAVE_PREV: u32 = 1; +pub const __have_pthread_attr_t: u32 = 1; +pub const PF_UNSPEC: u32 = 0; +pub const PF_LOCAL: u32 = 1; +pub const PF_UNIX: u32 = 1; +pub const PF_FILE: u32 = 1; +pub const PF_INET: u32 = 2; +pub const PF_AX25: u32 = 3; +pub const PF_IPX: u32 = 4; +pub const PF_APPLETALK: u32 = 5; +pub const PF_NETROM: u32 = 6; +pub const PF_BRIDGE: u32 = 7; +pub const PF_ATMPVC: u32 = 8; +pub const PF_X25: u32 = 9; +pub const PF_INET6: u32 = 10; +pub const PF_ROSE: u32 = 11; +pub const PF_DECnet: u32 = 12; +pub const PF_NETBEUI: u32 = 13; +pub const PF_SECURITY: u32 = 14; +pub const PF_KEY: u32 = 15; +pub const PF_NETLINK: u32 = 16; +pub const PF_ROUTE: u32 = 16; +pub const PF_PACKET: u32 = 17; +pub const PF_ASH: u32 = 18; +pub const PF_ECONET: u32 = 19; +pub const PF_ATMSVC: u32 = 20; +pub const PF_RDS: u32 = 21; +pub const PF_SNA: u32 = 22; +pub const PF_IRDA: u32 = 23; +pub const PF_PPPOX: u32 = 24; +pub const PF_WANPIPE: u32 = 25; +pub const PF_LLC: u32 = 26; +pub const PF_IB: u32 = 27; +pub const PF_MPLS: u32 = 28; +pub const PF_CAN: u32 = 29; +pub const PF_TIPC: u32 = 30; +pub const PF_BLUETOOTH: u32 = 31; +pub const PF_IUCV: u32 = 32; +pub const PF_RXRPC: u32 = 33; +pub const PF_ISDN: u32 = 34; +pub const PF_PHONET: u32 = 35; +pub const PF_IEEE802154: u32 = 36; +pub const PF_CAIF: u32 = 37; +pub const PF_ALG: u32 = 38; +pub const PF_NFC: u32 = 39; +pub const PF_VSOCK: u32 = 40; +pub const PF_KCM: u32 = 41; +pub const PF_QIPCRTR: u32 = 42; +pub const PF_SMC: u32 = 43; +pub const PF_XDP: u32 = 44; +pub const PF_MAX: u32 = 45; +pub const AF_UNSPEC: u32 = 0; +pub const AF_LOCAL: u32 = 1; +pub const AF_UNIX: u32 = 1; +pub const AF_FILE: u32 = 1; +pub const AF_INET: u32 = 2; +pub const AF_AX25: u32 = 3; +pub const AF_IPX: u32 = 4; +pub const AF_APPLETALK: u32 = 5; +pub const AF_NETROM: u32 = 6; +pub const AF_BRIDGE: u32 = 7; +pub const AF_ATMPVC: u32 = 8; +pub const AF_X25: u32 = 9; +pub const AF_INET6: u32 = 10; +pub const AF_ROSE: u32 = 11; +pub const AF_DECnet: u32 = 12; +pub const AF_NETBEUI: u32 = 13; +pub const AF_SECURITY: u32 = 14; +pub const AF_KEY: u32 = 15; +pub const AF_NETLINK: u32 = 16; +pub const AF_ROUTE: u32 = 16; +pub const AF_PACKET: u32 = 17; +pub const AF_ASH: u32 = 18; +pub const AF_ECONET: u32 = 19; +pub const AF_ATMSVC: u32 = 20; +pub const AF_RDS: u32 = 21; +pub const AF_SNA: u32 = 22; +pub const AF_IRDA: u32 = 23; +pub const AF_PPPOX: u32 = 24; +pub const AF_WANPIPE: u32 = 25; +pub const AF_LLC: u32 = 26; +pub const AF_IB: u32 = 27; +pub const AF_MPLS: u32 = 28; +pub const AF_CAN: u32 = 29; +pub const AF_TIPC: u32 = 30; +pub const AF_BLUETOOTH: u32 = 31; +pub const AF_IUCV: u32 = 32; +pub const AF_RXRPC: u32 = 33; +pub const AF_ISDN: u32 = 34; +pub const AF_PHONET: u32 = 35; +pub const AF_IEEE802154: u32 = 36; +pub const AF_CAIF: u32 = 37; +pub const AF_ALG: u32 = 38; +pub const AF_NFC: u32 = 39; +pub const AF_VSOCK: u32 = 40; +pub const AF_KCM: u32 = 41; +pub const AF_QIPCRTR: u32 = 42; +pub const AF_SMC: u32 = 43; +pub const AF_XDP: u32 = 44; +pub const AF_MAX: u32 = 45; +pub const SOL_RAW: u32 = 255; +pub const SOL_DECNET: u32 = 261; +pub const SOL_X25: u32 = 262; +pub const SOL_PACKET: u32 = 263; +pub const SOL_ATM: u32 = 264; +pub const SOL_AAL: u32 = 265; +pub const SOL_IRDA: u32 = 266; +pub const SOL_NETBEUI: u32 = 267; +pub const SOL_LLC: u32 = 268; +pub const SOL_DCCP: u32 = 269; +pub const SOL_NETLINK: u32 = 270; +pub const SOL_TIPC: u32 = 271; +pub const SOL_RXRPC: u32 = 272; +pub const SOL_PPPOL2TP: u32 = 273; +pub const SOL_BLUETOOTH: u32 = 274; +pub const SOL_PNPIPE: u32 = 275; +pub const SOL_RDS: u32 = 276; +pub const SOL_IUCV: u32 = 277; +pub const SOL_CAIF: u32 = 278; +pub const SOL_ALG: u32 = 279; +pub const SOL_NFC: u32 = 280; +pub const SOL_KCM: u32 = 281; +pub const SOL_TLS: u32 = 282; +pub const SOL_XDP: u32 = 283; +pub const SOMAXCONN: u32 = 4096; +pub const _BITS_SOCKADDR_H: u32 = 1; +pub const _SS_SIZE: u32 = 128; +pub const FIOSETOWN: u32 = 35073; +pub const SIOCSPGRP: u32 = 35074; +pub const FIOGETOWN: u32 = 35075; +pub const SIOCGPGRP: u32 = 35076; +pub const SIOCATMARK: u32 = 35077; +pub const SIOCGSTAMP_OLD: u32 = 35078; +pub const SIOCGSTAMPNS_OLD: u32 = 35079; +pub const SOL_SOCKET: u32 = 1; +pub const SO_DEBUG: u32 = 1; +pub const SO_REUSEADDR: u32 = 2; +pub const SO_TYPE: u32 = 3; +pub const SO_ERROR: u32 = 4; +pub const SO_DONTROUTE: u32 = 5; +pub const SO_BROADCAST: u32 = 6; +pub const SO_SNDBUF: u32 = 7; +pub const SO_RCVBUF: u32 = 8; +pub const SO_SNDBUFFORCE: u32 = 32; +pub const SO_RCVBUFFORCE: u32 = 33; +pub const SO_KEEPALIVE: u32 = 9; +pub const SO_OOBINLINE: u32 = 10; +pub const SO_NO_CHECK: u32 = 11; +pub const SO_PRIORITY: u32 = 12; +pub const SO_LINGER: u32 = 13; +pub const SO_BSDCOMPAT: u32 = 14; +pub const SO_REUSEPORT: u32 = 15; +pub const SO_PASSCRED: u32 = 16; +pub const SO_PEERCRED: u32 = 17; +pub const SO_RCVLOWAT: u32 = 18; +pub const SO_SNDLOWAT: u32 = 19; +pub const SO_RCVTIMEO_OLD: u32 = 20; +pub const SO_SNDTIMEO_OLD: u32 = 21; +pub const SO_SECURITY_AUTHENTICATION: u32 = 22; +pub const SO_SECURITY_ENCRYPTION_TRANSPORT: u32 = 23; +pub const SO_SECURITY_ENCRYPTION_NETWORK: u32 = 24; +pub const SO_BINDTODEVICE: u32 = 25; +pub const SO_ATTACH_FILTER: u32 = 26; +pub const SO_DETACH_FILTER: u32 = 27; +pub const SO_GET_FILTER: u32 = 26; +pub const SO_PEERNAME: u32 = 28; +pub const SO_ACCEPTCONN: u32 = 30; +pub const SO_PEERSEC: u32 = 31; +pub const SO_PASSSEC: u32 = 34; +pub const SO_MARK: u32 = 36; +pub const SO_PROTOCOL: u32 = 38; +pub const SO_DOMAIN: u32 = 39; +pub const SO_RXQ_OVFL: u32 = 40; +pub const SO_WIFI_STATUS: u32 = 41; +pub const SCM_WIFI_STATUS: u32 = 41; +pub const SO_PEEK_OFF: u32 = 42; +pub const SO_NOFCS: u32 = 43; +pub const SO_LOCK_FILTER: u32 = 44; +pub const SO_SELECT_ERR_QUEUE: u32 = 45; +pub const SO_BUSY_POLL: u32 = 46; +pub const SO_MAX_PACING_RATE: u32 = 47; +pub const SO_BPF_EXTENSIONS: u32 = 48; +pub const SO_INCOMING_CPU: u32 = 49; +pub const SO_ATTACH_BPF: u32 = 50; +pub const SO_DETACH_BPF: u32 = 27; +pub const SO_ATTACH_REUSEPORT_CBPF: u32 = 51; +pub const SO_ATTACH_REUSEPORT_EBPF: u32 = 52; +pub const SO_CNX_ADVICE: u32 = 53; +pub const SCM_TIMESTAMPING_OPT_STATS: u32 = 54; +pub const SO_MEMINFO: u32 = 55; +pub const SO_INCOMING_NAPI_ID: u32 = 56; +pub const SO_COOKIE: u32 = 57; +pub const SCM_TIMESTAMPING_PKTINFO: u32 = 58; +pub const SO_PEERGROUPS: u32 = 59; +pub const SO_ZEROCOPY: u32 = 60; +pub const SO_TXTIME: u32 = 61; +pub const SCM_TXTIME: u32 = 61; +pub const SO_BINDTOIFINDEX: u32 = 62; +pub const SO_TIMESTAMP_OLD: u32 = 29; +pub const SO_TIMESTAMPNS_OLD: u32 = 35; +pub const SO_TIMESTAMPING_OLD: u32 = 37; +pub const SO_TIMESTAMP_NEW: u32 = 63; +pub const SO_TIMESTAMPNS_NEW: u32 = 64; +pub const SO_TIMESTAMPING_NEW: u32 = 65; +pub const SO_RCVTIMEO_NEW: u32 = 66; +pub const SO_SNDTIMEO_NEW: u32 = 67; +pub const SO_DETACH_REUSEPORT_BPF: u32 = 68; +pub const SO_TIMESTAMP: u32 = 29; +pub const SO_TIMESTAMPNS: u32 = 35; +pub const SO_TIMESTAMPING: u32 = 37; +pub const SO_RCVTIMEO: u32 = 20; +pub const SO_SNDTIMEO: u32 = 21; +pub const SCM_TIMESTAMP: u32 = 29; +pub const SCM_TIMESTAMPNS: u32 = 35; +pub const SCM_TIMESTAMPING: u32 = 37; +pub const __osockaddr_defined: u32 = 1; +pub const IFNAMSIZ: u32 = 16; +pub const IFALIASZ: u32 = 256; +pub const ALTIFNAMSIZ: u32 = 128; +pub const GENERIC_HDLC_VERSION: u32 = 4; +pub const CLOCK_DEFAULT: u32 = 0; +pub const CLOCK_EXT: u32 = 1; +pub const CLOCK_INT: u32 = 2; +pub const CLOCK_TXINT: u32 = 3; +pub const CLOCK_TXFROMRX: u32 = 4; +pub const ENCODING_DEFAULT: u32 = 0; +pub const ENCODING_NRZ: u32 = 1; +pub const ENCODING_NRZI: u32 = 2; +pub const ENCODING_FM_MARK: u32 = 3; +pub const ENCODING_FM_SPACE: u32 = 4; +pub const ENCODING_MANCHESTER: u32 = 5; +pub const PARITY_DEFAULT: u32 = 0; +pub const PARITY_NONE: u32 = 1; +pub const PARITY_CRC16_PR0: u32 = 2; +pub const PARITY_CRC16_PR1: u32 = 3; +pub const PARITY_CRC16_PR0_CCITT: u32 = 4; +pub const PARITY_CRC16_PR1_CCITT: u32 = 5; +pub const PARITY_CRC32_PR0_CCITT: u32 = 6; +pub const PARITY_CRC32_PR1_CCITT: u32 = 7; +pub const LMI_DEFAULT: u32 = 0; +pub const LMI_NONE: u32 = 1; +pub const LMI_ANSI: u32 = 2; +pub const LMI_CCITT: u32 = 3; +pub const LMI_CISCO: u32 = 4; +pub const IF_GET_IFACE: u32 = 1; +pub const IF_GET_PROTO: u32 = 2; +pub const IF_IFACE_V35: u32 = 4096; +pub const IF_IFACE_V24: u32 = 4097; +pub const IF_IFACE_X21: u32 = 4098; +pub const IF_IFACE_T1: u32 = 4099; +pub const IF_IFACE_E1: u32 = 4100; +pub const IF_IFACE_SYNC_SERIAL: u32 = 4101; +pub const IF_IFACE_X21D: u32 = 4102; +pub const IF_PROTO_HDLC: u32 = 8192; +pub const IF_PROTO_PPP: u32 = 8193; +pub const IF_PROTO_CISCO: u32 = 8194; +pub const IF_PROTO_FR: u32 = 8195; +pub const IF_PROTO_FR_ADD_PVC: u32 = 8196; +pub const IF_PROTO_FR_DEL_PVC: u32 = 8197; +pub const IF_PROTO_X25: u32 = 8198; +pub const IF_PROTO_HDLC_ETH: u32 = 8199; +pub const IF_PROTO_FR_ADD_ETH_PVC: u32 = 8200; +pub const IF_PROTO_FR_DEL_ETH_PVC: u32 = 8201; +pub const IF_PROTO_FR_PVC: u32 = 8202; +pub const IF_PROTO_FR_ETH_PVC: u32 = 8203; +pub const IF_PROTO_RAW: u32 = 8204; +pub const IFHWADDRLEN: u32 = 6; pub type __s8 = ::std::os::raw::c_schar; pub type __u8 = ::std::os::raw::c_uchar; pub type __s16 = ::std::os::raw::c_short; @@ -391,38 +427,10 @@ pub type __u32 = ::std::os::raw::c_uint; pub type __s64 = ::std::os::raw::c_longlong; pub type __u64 = ::std::os::raw::c_ulonglong; #[repr(C)] -#[derive(Debug, Default, Copy)] +#[derive(Debug, Copy, Clone)] pub struct __kernel_fd_set { pub fds_bits: [::std::os::raw::c_ulong; 16usize], } -#[test] -fn bindgen_test_layout___kernel_fd_set() { - assert_eq!( - ::std::mem::size_of::<__kernel_fd_set>(), - 128usize, - concat!("Size of: ", stringify!(__kernel_fd_set)) - ); - assert_eq!( - ::std::mem::align_of::<__kernel_fd_set>(), - 8usize, - concat!("Alignment of ", stringify!(__kernel_fd_set)) - ); - assert_eq!( - unsafe { &(*(0 as *const __kernel_fd_set)).fds_bits as *const _ as usize }, - 0usize, - concat!( - "Alignment of field: ", - stringify!(__kernel_fd_set), - "::", - stringify!(fds_bits) - ) - ); -} -impl Clone for __kernel_fd_set { - fn clone(&self) -> Self { - *self - } -} pub type __kernel_sighandler_t = ::std::option::Option; pub type __kernel_key_t = ::std::os::raw::c_int; @@ -446,41 +454,15 @@ pub type __kernel_size_t = __kernel_ulong_t; pub type __kernel_ssize_t = __kernel_long_t; pub type __kernel_ptrdiff_t = __kernel_long_t; #[repr(C)] -#[derive(Debug, Default, Copy)] +#[derive(Debug, Copy, Clone)] pub struct __kernel_fsid_t { pub val: [::std::os::raw::c_int; 2usize], } -#[test] -fn bindgen_test_layout___kernel_fsid_t() { - assert_eq!( - ::std::mem::size_of::<__kernel_fsid_t>(), - 8usize, - concat!("Size of: ", stringify!(__kernel_fsid_t)) - ); - assert_eq!( - ::std::mem::align_of::<__kernel_fsid_t>(), - 4usize, - concat!("Alignment of ", stringify!(__kernel_fsid_t)) - ); - assert_eq!( - unsafe { &(*(0 as *const __kernel_fsid_t)).val as *const _ as usize }, - 0usize, - concat!( - "Alignment of field: ", - stringify!(__kernel_fsid_t), - "::", - stringify!(val) - ) - ); -} -impl Clone for __kernel_fsid_t { - fn clone(&self) -> Self { - *self - } -} pub type __kernel_off_t = __kernel_long_t; pub type __kernel_loff_t = ::std::os::raw::c_longlong; +pub type __kernel_old_time_t = __kernel_long_t; pub type __kernel_time_t = __kernel_long_t; +pub type __kernel_time64_t = ::std::os::raw::c_longlong; pub type __kernel_clock_t = __kernel_long_t; pub type __kernel_timer_t = ::std::os::raw::c_int; pub type __kernel_clockid_t = ::std::os::raw::c_int; @@ -495,50 +477,31 @@ pub type __le64 = __u64; pub type __be64 = __u64; pub type __sum16 = __u16; pub type __wsum = __u32; +pub type __poll_t = ::std::os::raw::c_uint; pub type __kernel_sa_family_t = ::std::os::raw::c_ushort; #[repr(C)] +#[derive(Copy, Clone)] pub struct __kernel_sockaddr_storage { + pub __bindgen_anon_1: __kernel_sockaddr_storage__bindgen_ty_1, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union __kernel_sockaddr_storage__bindgen_ty_1 { + pub __bindgen_anon_1: __kernel_sockaddr_storage__bindgen_ty_1__bindgen_ty_1, + pub __align: *mut ::std::os::raw::c_void, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct __kernel_sockaddr_storage__bindgen_ty_1__bindgen_ty_1 { pub ss_family: __kernel_sa_family_t, pub __data: [::std::os::raw::c_char; 126usize], - pub __bindgen_align: [u64; 0usize], } -#[test] -fn bindgen_test_layout___kernel_sockaddr_storage() { - assert_eq!( - ::std::mem::size_of::<__kernel_sockaddr_storage>(), - 128usize, - concat!("Size of: ", stringify!(__kernel_sockaddr_storage)) - ); - assert_eq!( - ::std::mem::align_of::<__kernel_sockaddr_storage>(), - 8usize, - concat!("Alignment of ", stringify!(__kernel_sockaddr_storage)) - ); - assert_eq!( - unsafe { &(*(0 as *const __kernel_sockaddr_storage)).ss_family as *const _ as usize }, - 0usize, - concat!( - "Alignment of field: ", - stringify!(__kernel_sockaddr_storage), - "::", - stringify!(ss_family) - ) - ); - assert_eq!( - unsafe { &(*(0 as *const __kernel_sockaddr_storage)).__data as *const _ as usize }, - 2usize, - concat!( - "Alignment of field: ", - stringify!(__kernel_sockaddr_storage), - "::", - stringify!(__data) - ) - ); -} -impl Default for __kernel_sockaddr_storage { - fn default() -> Self { - unsafe { ::std::mem::zeroed() } - } +pub type size_t = ::std::os::raw::c_ulong; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct iovec { + pub iov_base: *mut ::std::os::raw::c_void, + pub iov_len: size_t, } pub type __u_char = ::std::os::raw::c_uchar; pub type __u_short = ::std::os::raw::c_ushort; @@ -552,8 +515,18 @@ pub type __int32_t = ::std::os::raw::c_int; pub type __uint32_t = ::std::os::raw::c_uint; pub type __int64_t = ::std::os::raw::c_long; pub type __uint64_t = ::std::os::raw::c_ulong; +pub type __int_least8_t = __int8_t; +pub type __uint_least8_t = __uint8_t; +pub type __int_least16_t = __int16_t; +pub type __uint_least16_t = __uint16_t; +pub type __int_least32_t = __int32_t; +pub type __uint_least32_t = __uint32_t; +pub type __int_least64_t = __int64_t; +pub type __uint_least64_t = __uint64_t; pub type __quad_t = ::std::os::raw::c_long; pub type __u_quad_t = ::std::os::raw::c_ulong; +pub type __intmax_t = ::std::os::raw::c_long; +pub type __uintmax_t = ::std::os::raw::c_ulong; pub type __dev_t = ::std::os::raw::c_ulong; pub type __uid_t = ::std::os::raw::c_uint; pub type __gid_t = ::std::os::raw::c_uint; @@ -565,38 +538,10 @@ pub type __off_t = ::std::os::raw::c_long; pub type __off64_t = ::std::os::raw::c_long; pub type __pid_t = ::std::os::raw::c_int; #[repr(C)] -#[derive(Debug, Default, Copy)] +#[derive(Debug, Copy, Clone)] pub struct __fsid_t { pub __val: [::std::os::raw::c_int; 2usize], } -#[test] -fn bindgen_test_layout___fsid_t() { - assert_eq!( - ::std::mem::size_of::<__fsid_t>(), - 8usize, - concat!("Size of: ", stringify!(__fsid_t)) - ); - assert_eq!( - ::std::mem::align_of::<__fsid_t>(), - 4usize, - concat!("Alignment of ", stringify!(__fsid_t)) - ); - assert_eq!( - unsafe { &(*(0 as *const __fsid_t)).__val as *const _ as usize }, - 0usize, - concat!( - "Alignment of field: ", - stringify!(__fsid_t), - "::", - stringify!(__val) - ) - ); -} -impl Clone for __fsid_t { - fn clone(&self) -> Self { - *self - } -} pub type __clock_t = ::std::os::raw::c_long; pub type __rlim_t = ::std::os::raw::c_ulong; pub type __rlim64_t = ::std::os::raw::c_ulong; @@ -604,6 +549,7 @@ pub type __id_t = ::std::os::raw::c_uint; pub type __time_t = ::std::os::raw::c_long; pub type __useconds_t = ::std::os::raw::c_uint; pub type __suseconds_t = ::std::os::raw::c_long; +pub type __suseconds64_t = ::std::os::raw::c_long; pub type __daddr_t = ::std::os::raw::c_int; pub type __key_t = ::std::os::raw::c_int; pub type __clockid_t = ::std::os::raw::c_int; @@ -620,10 +566,10 @@ pub type __ssize_t = ::std::os::raw::c_long; pub type __syscall_slong_t = ::std::os::raw::c_long; pub type __syscall_ulong_t = ::std::os::raw::c_ulong; pub type __loff_t = __off64_t; -pub type __qaddr_t = *mut __quad_t; pub type __caddr_t = *mut ::std::os::raw::c_char; pub type __intptr_t = ::std::os::raw::c_long; pub type __socklen_t = ::std::os::raw::c_uint; +pub type __sig_atomic_t = ::std::os::raw::c_int; pub type u_char = __u_char; pub type u_short = __u_short; pub type u_int = __u_int; @@ -641,179 +587,47 @@ pub type uid_t = __uid_t; pub type off_t = __off_t; pub type pid_t = __pid_t; pub type id_t = __id_t; +pub type ssize_t = __ssize_t; pub type daddr_t = __daddr_t; pub type caddr_t = __caddr_t; pub type key_t = __key_t; pub type clock_t = __clock_t; -pub type time_t = __time_t; pub type clockid_t = __clockid_t; +pub type time_t = __time_t; pub type timer_t = __timer_t; pub type ulong = ::std::os::raw::c_ulong; pub type ushort = ::std::os::raw::c_ushort; pub type uint = ::std::os::raw::c_uint; -pub type u_int8_t = ::std::os::raw::c_uchar; -pub type u_int16_t = ::std::os::raw::c_ushort; -pub type u_int32_t = ::std::os::raw::c_uint; -pub type u_int64_t = ::std::os::raw::c_ulong; +pub type u_int8_t = __uint8_t; +pub type u_int16_t = __uint16_t; +pub type u_int32_t = __uint32_t; +pub type u_int64_t = __uint64_t; pub type register_t = ::std::os::raw::c_long; -pub type __sig_atomic_t = ::std::os::raw::c_int; #[repr(C)] -#[derive(Debug, Default, Copy)] +#[derive(Debug, Copy, Clone)] pub struct __sigset_t { pub __val: [::std::os::raw::c_ulong; 16usize], } -#[test] -fn bindgen_test_layout___sigset_t() { - assert_eq!( - ::std::mem::size_of::<__sigset_t>(), - 128usize, - concat!("Size of: ", stringify!(__sigset_t)) - ); - assert_eq!( - ::std::mem::align_of::<__sigset_t>(), - 8usize, - concat!("Alignment of ", stringify!(__sigset_t)) - ); - assert_eq!( - unsafe { &(*(0 as *const __sigset_t)).__val as *const _ as usize }, - 0usize, - concat!( - "Alignment of field: ", - stringify!(__sigset_t), - "::", - stringify!(__val) - ) - ); -} -impl Clone for __sigset_t { - fn clone(&self) -> Self { - *self - } -} pub type sigset_t = __sigset_t; #[repr(C)] -#[derive(Debug, Default, Copy)] -pub struct timespec { - pub tv_sec: __time_t, - pub tv_nsec: __syscall_slong_t, -} -#[test] -fn bindgen_test_layout_timespec() { - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(timespec)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(timespec)) - ); - assert_eq!( - unsafe { &(*(0 as *const timespec)).tv_sec as *const _ as usize }, - 0usize, - concat!( - "Alignment of field: ", - stringify!(timespec), - "::", - stringify!(tv_sec) - ) - ); - assert_eq!( - unsafe { &(*(0 as *const timespec)).tv_nsec as *const _ as usize }, - 8usize, - concat!( - "Alignment of field: ", - stringify!(timespec), - "::", - stringify!(tv_nsec) - ) - ); -} -impl Clone for timespec { - fn clone(&self) -> Self { - *self - } -} -#[repr(C)] -#[derive(Debug, Default, Copy)] +#[derive(Debug, Copy, Clone)] pub struct timeval { pub tv_sec: __time_t, pub tv_usec: __suseconds_t, } -#[test] -fn bindgen_test_layout_timeval() { - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(timeval)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(timeval)) - ); - assert_eq!( - unsafe { &(*(0 as *const timeval)).tv_sec as *const _ as usize }, - 0usize, - concat!( - "Alignment of field: ", - stringify!(timeval), - "::", - stringify!(tv_sec) - ) - ); - assert_eq!( - unsafe { &(*(0 as *const timeval)).tv_usec as *const _ as usize }, - 8usize, - concat!( - "Alignment of field: ", - stringify!(timeval), - "::", - stringify!(tv_usec) - ) - ); -} -impl Clone for timeval { - fn clone(&self) -> Self { - *self - } +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct timespec { + pub tv_sec: __time_t, + pub tv_nsec: __syscall_slong_t, } pub type suseconds_t = __suseconds_t; pub type __fd_mask = ::std::os::raw::c_long; #[repr(C)] -#[derive(Debug, Default, Copy)] +#[derive(Debug, Copy, Clone)] pub struct fd_set { pub __fds_bits: [__fd_mask; 16usize], } -#[test] -fn bindgen_test_layout_fd_set() { - assert_eq!( - ::std::mem::size_of::(), - 128usize, - concat!("Size of: ", stringify!(fd_set)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(fd_set)) - ); - assert_eq!( - unsafe { &(*(0 as *const fd_set)).__fds_bits as *const _ as usize }, - 0usize, - concat!( - "Alignment of field: ", - stringify!(fd_set), - "::", - stringify!(__fds_bits) - ) - ); -} -impl Clone for fd_set { - fn clone(&self) -> Self { - *self - } -} pub type fd_mask = __fd_mask; extern "C" { pub fn select( @@ -834,129 +648,26 @@ extern "C" { __sigmask: *const __sigset_t, ) -> ::std::os::raw::c_int; } -extern "C" { - pub fn gnu_dev_major(__dev: ::std::os::raw::c_ulonglong) -> ::std::os::raw::c_uint; -} -extern "C" { - pub fn gnu_dev_minor(__dev: ::std::os::raw::c_ulonglong) -> ::std::os::raw::c_uint; -} -extern "C" { - pub fn gnu_dev_makedev( - __major: ::std::os::raw::c_uint, - __minor: ::std::os::raw::c_uint, - ) -> ::std::os::raw::c_ulonglong; -} pub type blksize_t = __blksize_t; pub type blkcnt_t = __blkcnt_t; pub type fsblkcnt_t = __fsblkcnt_t; pub type fsfilcnt_t = __fsfilcnt_t; -pub type pthread_t = ::std::os::raw::c_ulong; #[repr(C)] -#[derive(Debug, Default, Copy)] -pub struct pthread_attr_t { - pub __size: __BindgenUnionField<[::std::os::raw::c_char; 56usize]>, - pub __align: __BindgenUnionField<::std::os::raw::c_long>, - pub bindgen_union_field: [u64; 7usize], -} -#[test] -fn bindgen_test_layout_pthread_attr_t() { - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(pthread_attr_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(pthread_attr_t)) - ); - assert_eq!( - unsafe { &(*(0 as *const pthread_attr_t)).__size as *const _ as usize }, - 0usize, - concat!( - "Alignment of field: ", - stringify!(pthread_attr_t), - "::", - stringify!(__size) - ) - ); - assert_eq!( - unsafe { &(*(0 as *const pthread_attr_t)).__align as *const _ as usize }, - 0usize, - concat!( - "Alignment of field: ", - stringify!(pthread_attr_t), - "::", - stringify!(__align) - ) - ); -} -impl Clone for pthread_attr_t { - fn clone(&self) -> Self { - *self - } -} -#[repr(C)] -#[derive(Debug, Copy)] +#[derive(Debug, Copy, Clone)] pub struct __pthread_internal_list { pub __prev: *mut __pthread_internal_list, pub __next: *mut __pthread_internal_list, } -#[test] -fn bindgen_test_layout___pthread_internal_list() { - assert_eq!( - ::std::mem::size_of::<__pthread_internal_list>(), - 16usize, - concat!("Size of: ", stringify!(__pthread_internal_list)) - ); - assert_eq!( - ::std::mem::align_of::<__pthread_internal_list>(), - 8usize, - concat!("Alignment of ", stringify!(__pthread_internal_list)) - ); - assert_eq!( - unsafe { &(*(0 as *const __pthread_internal_list)).__prev as *const _ as usize }, - 0usize, - concat!( - "Alignment of field: ", - stringify!(__pthread_internal_list), - "::", - stringify!(__prev) - ) - ); - assert_eq!( - unsafe { &(*(0 as *const __pthread_internal_list)).__next as *const _ as usize }, - 8usize, - concat!( - "Alignment of field: ", - stringify!(__pthread_internal_list), - "::", - stringify!(__next) - ) - ); -} -impl Clone for __pthread_internal_list { - fn clone(&self) -> Self { - *self - } -} -impl Default for __pthread_internal_list { - fn default() -> Self { - unsafe { ::std::mem::zeroed() } - } -} pub type __pthread_list_t = __pthread_internal_list; #[repr(C)] -#[derive(Debug, Default, Copy)] -pub struct pthread_mutex_t { - pub __data: __BindgenUnionField, - pub __size: __BindgenUnionField<[::std::os::raw::c_char; 40usize]>, - pub __align: __BindgenUnionField<::std::os::raw::c_long>, - pub bindgen_union_field: [u64; 5usize], +#[derive(Debug, Copy, Clone)] +pub struct __pthread_internal_slist { + pub __next: *mut __pthread_internal_slist, } +pub type __pthread_slist_t = __pthread_internal_slist; #[repr(C)] -#[derive(Debug, Copy)] -pub struct pthread_mutex_t___pthread_mutex_s { +#[derive(Debug, Copy, Clone)] +pub struct __pthread_mutex_s { pub __lock: ::std::os::raw::c_int, pub __count: ::std::os::raw::c_uint, pub __owner: ::std::os::raw::c_int, @@ -966,867 +677,124 @@ pub struct pthread_mutex_t___pthread_mutex_s { pub __elision: ::std::os::raw::c_short, pub __list: __pthread_list_t, } -#[test] -fn bindgen_test_layout_pthread_mutex_t___pthread_mutex_s() { - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(pthread_mutex_t___pthread_mutex_s)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(pthread_mutex_t___pthread_mutex_s) - ) - ); - assert_eq!( - unsafe { &(*(0 as *const pthread_mutex_t___pthread_mutex_s)).__lock as *const _ as usize }, - 0usize, - concat!( - "Alignment of field: ", - stringify!(pthread_mutex_t___pthread_mutex_s), - "::", - stringify!(__lock) - ) - ); - assert_eq!( - unsafe { &(*(0 as *const pthread_mutex_t___pthread_mutex_s)).__count as *const _ as usize }, - 4usize, - concat!( - "Alignment of field: ", - stringify!(pthread_mutex_t___pthread_mutex_s), - "::", - stringify!(__count) - ) - ); - assert_eq!( - unsafe { &(*(0 as *const pthread_mutex_t___pthread_mutex_s)).__owner as *const _ as usize }, - 8usize, - concat!( - "Alignment of field: ", - stringify!(pthread_mutex_t___pthread_mutex_s), - "::", - stringify!(__owner) - ) - ); - assert_eq!( - unsafe { - &(*(0 as *const pthread_mutex_t___pthread_mutex_s)).__nusers as *const _ as usize - }, - 12usize, - concat!( - "Alignment of field: ", - stringify!(pthread_mutex_t___pthread_mutex_s), - "::", - stringify!(__nusers) - ) - ); - assert_eq!( - unsafe { &(*(0 as *const pthread_mutex_t___pthread_mutex_s)).__kind as *const _ as usize }, - 16usize, - concat!( - "Alignment of field: ", - stringify!(pthread_mutex_t___pthread_mutex_s), - "::", - stringify!(__kind) - ) - ); - assert_eq!( - unsafe { &(*(0 as *const pthread_mutex_t___pthread_mutex_s)).__spins as *const _ as usize }, - 20usize, - concat!( - "Alignment of field: ", - stringify!(pthread_mutex_t___pthread_mutex_s), - "::", - stringify!(__spins) - ) - ); - assert_eq!( - unsafe { - &(*(0 as *const pthread_mutex_t___pthread_mutex_s)).__elision as *const _ as usize - }, - 22usize, - concat!( - "Alignment of field: ", - stringify!(pthread_mutex_t___pthread_mutex_s), - "::", - stringify!(__elision) - ) - ); - assert_eq!( - unsafe { &(*(0 as *const pthread_mutex_t___pthread_mutex_s)).__list as *const _ as usize }, - 24usize, - concat!( - "Alignment of field: ", - stringify!(pthread_mutex_t___pthread_mutex_s), - "::", - stringify!(__list) - ) - ); -} -impl Clone for pthread_mutex_t___pthread_mutex_s { - fn clone(&self) -> Self { - *self - } -} -impl Default for pthread_mutex_t___pthread_mutex_s { - fn default() -> Self { - unsafe { ::std::mem::zeroed() } - } -} -#[test] -fn bindgen_test_layout_pthread_mutex_t() { - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(pthread_mutex_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(pthread_mutex_t)) - ); - assert_eq!( - unsafe { &(*(0 as *const pthread_mutex_t)).__data as *const _ as usize }, - 0usize, - concat!( - "Alignment of field: ", - stringify!(pthread_mutex_t), - "::", - stringify!(__data) - ) - ); - assert_eq!( - unsafe { &(*(0 as *const pthread_mutex_t)).__size as *const _ as usize }, - 0usize, - concat!( - "Alignment of field: ", - stringify!(pthread_mutex_t), - "::", - stringify!(__size) - ) - ); - assert_eq!( - unsafe { &(*(0 as *const pthread_mutex_t)).__align as *const _ as usize }, - 0usize, - concat!( - "Alignment of field: ", - stringify!(pthread_mutex_t), - "::", - stringify!(__align) - ) - ); -} -impl Clone for pthread_mutex_t { - fn clone(&self) -> Self { - *self - } -} #[repr(C)] -#[derive(Debug, Default, Copy)] -pub struct pthread_mutexattr_t { - pub __size: __BindgenUnionField<[::std::os::raw::c_char; 4usize]>, - pub __align: __BindgenUnionField<::std::os::raw::c_int>, - pub bindgen_union_field: u32, -} -#[test] -fn bindgen_test_layout_pthread_mutexattr_t() { - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(pthread_mutexattr_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(pthread_mutexattr_t)) - ); - assert_eq!( - unsafe { &(*(0 as *const pthread_mutexattr_t)).__size as *const _ as usize }, - 0usize, - concat!( - "Alignment of field: ", - stringify!(pthread_mutexattr_t), - "::", - stringify!(__size) - ) - ); - assert_eq!( - unsafe { &(*(0 as *const pthread_mutexattr_t)).__align as *const _ as usize }, - 0usize, - concat!( - "Alignment of field: ", - stringify!(pthread_mutexattr_t), - "::", - stringify!(__align) - ) - ); -} -impl Clone for pthread_mutexattr_t { - fn clone(&self) -> Self { - *self - } -} -#[repr(C)] -#[derive(Debug, Default, Copy)] -pub struct pthread_cond_t { - pub __data: __BindgenUnionField, - pub __size: __BindgenUnionField<[::std::os::raw::c_char; 48usize]>, - pub __align: __BindgenUnionField<::std::os::raw::c_longlong>, - pub bindgen_union_field: [u64; 6usize], -} -#[repr(C)] -#[derive(Debug, Copy)] -pub struct pthread_cond_t__bindgen_ty_1 { - pub __lock: ::std::os::raw::c_int, - pub __futex: ::std::os::raw::c_uint, - pub __total_seq: ::std::os::raw::c_ulonglong, - pub __wakeup_seq: ::std::os::raw::c_ulonglong, - pub __woken_seq: ::std::os::raw::c_ulonglong, - pub __mutex: *mut ::std::os::raw::c_void, - pub __nwaiters: ::std::os::raw::c_uint, - pub __broadcast_seq: ::std::os::raw::c_uint, -} -#[test] -fn bindgen_test_layout_pthread_cond_t__bindgen_ty_1() { - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(pthread_cond_t__bindgen_ty_1)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(pthread_cond_t__bindgen_ty_1)) - ); - assert_eq!( - unsafe { &(*(0 as *const pthread_cond_t__bindgen_ty_1)).__lock as *const _ as usize }, - 0usize, - concat!( - "Alignment of field: ", - stringify!(pthread_cond_t__bindgen_ty_1), - "::", - stringify!(__lock) - ) - ); - assert_eq!( - unsafe { &(*(0 as *const pthread_cond_t__bindgen_ty_1)).__futex as *const _ as usize }, - 4usize, - concat!( - "Alignment of field: ", - stringify!(pthread_cond_t__bindgen_ty_1), - "::", - stringify!(__futex) - ) - ); - assert_eq!( - unsafe { &(*(0 as *const pthread_cond_t__bindgen_ty_1)).__total_seq as *const _ as usize }, - 8usize, - concat!( - "Alignment of field: ", - stringify!(pthread_cond_t__bindgen_ty_1), - "::", - stringify!(__total_seq) - ) - ); - assert_eq!( - unsafe { &(*(0 as *const pthread_cond_t__bindgen_ty_1)).__wakeup_seq as *const _ as usize }, - 16usize, - concat!( - "Alignment of field: ", - stringify!(pthread_cond_t__bindgen_ty_1), - "::", - stringify!(__wakeup_seq) - ) - ); - assert_eq!( - unsafe { &(*(0 as *const pthread_cond_t__bindgen_ty_1)).__woken_seq as *const _ as usize }, - 24usize, - concat!( - "Alignment of field: ", - stringify!(pthread_cond_t__bindgen_ty_1), - "::", - stringify!(__woken_seq) - ) - ); - assert_eq!( - unsafe { &(*(0 as *const pthread_cond_t__bindgen_ty_1)).__mutex as *const _ as usize }, - 32usize, - concat!( - "Alignment of field: ", - stringify!(pthread_cond_t__bindgen_ty_1), - "::", - stringify!(__mutex) - ) - ); - assert_eq!( - unsafe { &(*(0 as *const pthread_cond_t__bindgen_ty_1)).__nwaiters as *const _ as usize }, - 40usize, - concat!( - "Alignment of field: ", - stringify!(pthread_cond_t__bindgen_ty_1), - "::", - stringify!(__nwaiters) - ) - ); - assert_eq!( - unsafe { - &(*(0 as *const pthread_cond_t__bindgen_ty_1)).__broadcast_seq as *const _ as usize - }, - 44usize, - concat!( - "Alignment of field: ", - stringify!(pthread_cond_t__bindgen_ty_1), - "::", - stringify!(__broadcast_seq) - ) - ); -} -impl Clone for pthread_cond_t__bindgen_ty_1 { - fn clone(&self) -> Self { - *self - } -} -impl Default for pthread_cond_t__bindgen_ty_1 { - fn default() -> Self { - unsafe { ::std::mem::zeroed() } - } -} -#[test] -fn bindgen_test_layout_pthread_cond_t() { - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(pthread_cond_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(pthread_cond_t)) - ); - assert_eq!( - unsafe { &(*(0 as *const pthread_cond_t)).__data as *const _ as usize }, - 0usize, - concat!( - "Alignment of field: ", - stringify!(pthread_cond_t), - "::", - stringify!(__data) - ) - ); - assert_eq!( - unsafe { &(*(0 as *const pthread_cond_t)).__size as *const _ as usize }, - 0usize, - concat!( - "Alignment of field: ", - stringify!(pthread_cond_t), - "::", - stringify!(__size) - ) - ); - assert_eq!( - unsafe { &(*(0 as *const pthread_cond_t)).__align as *const _ as usize }, - 0usize, - concat!( - "Alignment of field: ", - stringify!(pthread_cond_t), - "::", - stringify!(__align) - ) - ); -} -impl Clone for pthread_cond_t { - fn clone(&self) -> Self { - *self - } -} -#[repr(C)] -#[derive(Debug, Default, Copy)] -pub struct pthread_condattr_t { - pub __size: __BindgenUnionField<[::std::os::raw::c_char; 4usize]>, - pub __align: __BindgenUnionField<::std::os::raw::c_int>, - pub bindgen_union_field: u32, -} -#[test] -fn bindgen_test_layout_pthread_condattr_t() { - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(pthread_condattr_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(pthread_condattr_t)) - ); - assert_eq!( - unsafe { &(*(0 as *const pthread_condattr_t)).__size as *const _ as usize }, - 0usize, - concat!( - "Alignment of field: ", - stringify!(pthread_condattr_t), - "::", - stringify!(__size) - ) - ); - assert_eq!( - unsafe { &(*(0 as *const pthread_condattr_t)).__align as *const _ as usize }, - 0usize, - concat!( - "Alignment of field: ", - stringify!(pthread_condattr_t), - "::", - stringify!(__align) - ) - ); -} -impl Clone for pthread_condattr_t { - fn clone(&self) -> Self { - *self - } -} -pub type pthread_key_t = ::std::os::raw::c_uint; -pub type pthread_once_t = ::std::os::raw::c_int; -#[repr(C)] -#[derive(Debug, Default, Copy)] -pub struct pthread_rwlock_t { - pub __data: __BindgenUnionField, - pub __size: __BindgenUnionField<[::std::os::raw::c_char; 56usize]>, - pub __align: __BindgenUnionField<::std::os::raw::c_long>, - pub bindgen_union_field: [u64; 7usize], -} -#[repr(C)] -#[derive(Debug, Default, Copy)] -pub struct pthread_rwlock_t__bindgen_ty_1 { - pub __lock: ::std::os::raw::c_int, - pub __nr_readers: ::std::os::raw::c_uint, - pub __readers_wakeup: ::std::os::raw::c_uint, - pub __writer_wakeup: ::std::os::raw::c_uint, - pub __nr_readers_queued: ::std::os::raw::c_uint, - pub __nr_writers_queued: ::std::os::raw::c_uint, - pub __writer: ::std::os::raw::c_int, +#[derive(Debug, Copy, Clone)] +pub struct __pthread_rwlock_arch_t { + pub __readers: ::std::os::raw::c_uint, + pub __writers: ::std::os::raw::c_uint, + pub __wrphase_futex: ::std::os::raw::c_uint, + pub __writers_futex: ::std::os::raw::c_uint, + pub __pad3: ::std::os::raw::c_uint, + pub __pad4: ::std::os::raw::c_uint, + pub __cur_writer: ::std::os::raw::c_int, pub __shared: ::std::os::raw::c_int, pub __rwelision: ::std::os::raw::c_schar, pub __pad1: [::std::os::raw::c_uchar; 7usize], pub __pad2: ::std::os::raw::c_ulong, pub __flags: ::std::os::raw::c_uint, } -#[test] -fn bindgen_test_layout_pthread_rwlock_t__bindgen_ty_1() { - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(pthread_rwlock_t__bindgen_ty_1)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(pthread_rwlock_t__bindgen_ty_1)) - ); - assert_eq!( - unsafe { &(*(0 as *const pthread_rwlock_t__bindgen_ty_1)).__lock as *const _ as usize }, - 0usize, - concat!( - "Alignment of field: ", - stringify!(pthread_rwlock_t__bindgen_ty_1), - "::", - stringify!(__lock) - ) - ); - assert_eq!( - unsafe { - &(*(0 as *const pthread_rwlock_t__bindgen_ty_1)).__nr_readers as *const _ as usize - }, - 4usize, - concat!( - "Alignment of field: ", - stringify!(pthread_rwlock_t__bindgen_ty_1), - "::", - stringify!(__nr_readers) - ) - ); - assert_eq!( - unsafe { - &(*(0 as *const pthread_rwlock_t__bindgen_ty_1)).__readers_wakeup as *const _ as usize - }, - 8usize, - concat!( - "Alignment of field: ", - stringify!(pthread_rwlock_t__bindgen_ty_1), - "::", - stringify!(__readers_wakeup) - ) - ); - assert_eq!( - unsafe { - &(*(0 as *const pthread_rwlock_t__bindgen_ty_1)).__writer_wakeup as *const _ as usize - }, - 12usize, - concat!( - "Alignment of field: ", - stringify!(pthread_rwlock_t__bindgen_ty_1), - "::", - stringify!(__writer_wakeup) - ) - ); - assert_eq!( - unsafe { - &(*(0 as *const pthread_rwlock_t__bindgen_ty_1)).__nr_readers_queued as *const _ - as usize - }, - 16usize, - concat!( - "Alignment of field: ", - stringify!(pthread_rwlock_t__bindgen_ty_1), - "::", - stringify!(__nr_readers_queued) - ) - ); - assert_eq!( - unsafe { - &(*(0 as *const pthread_rwlock_t__bindgen_ty_1)).__nr_writers_queued as *const _ - as usize - }, - 20usize, - concat!( - "Alignment of field: ", - stringify!(pthread_rwlock_t__bindgen_ty_1), - "::", - stringify!(__nr_writers_queued) - ) - ); - assert_eq!( - unsafe { &(*(0 as *const pthread_rwlock_t__bindgen_ty_1)).__writer as *const _ as usize }, - 24usize, - concat!( - "Alignment of field: ", - stringify!(pthread_rwlock_t__bindgen_ty_1), - "::", - stringify!(__writer) - ) - ); - assert_eq!( - unsafe { &(*(0 as *const pthread_rwlock_t__bindgen_ty_1)).__shared as *const _ as usize }, - 28usize, - concat!( - "Alignment of field: ", - stringify!(pthread_rwlock_t__bindgen_ty_1), - "::", - stringify!(__shared) - ) - ); - assert_eq!( - unsafe { - &(*(0 as *const pthread_rwlock_t__bindgen_ty_1)).__rwelision as *const _ as usize - }, - 32usize, - concat!( - "Alignment of field: ", - stringify!(pthread_rwlock_t__bindgen_ty_1), - "::", - stringify!(__rwelision) - ) - ); - assert_eq!( - unsafe { &(*(0 as *const pthread_rwlock_t__bindgen_ty_1)).__pad1 as *const _ as usize }, - 33usize, - concat!( - "Alignment of field: ", - stringify!(pthread_rwlock_t__bindgen_ty_1), - "::", - stringify!(__pad1) - ) - ); - assert_eq!( - unsafe { &(*(0 as *const pthread_rwlock_t__bindgen_ty_1)).__pad2 as *const _ as usize }, - 40usize, - concat!( - "Alignment of field: ", - stringify!(pthread_rwlock_t__bindgen_ty_1), - "::", - stringify!(__pad2) - ) - ); - assert_eq!( - unsafe { &(*(0 as *const pthread_rwlock_t__bindgen_ty_1)).__flags as *const _ as usize }, - 48usize, - concat!( - "Alignment of field: ", - stringify!(pthread_rwlock_t__bindgen_ty_1), - "::", - stringify!(__flags) - ) - ); -} -impl Clone for pthread_rwlock_t__bindgen_ty_1 { - fn clone(&self) -> Self { - *self - } -} -#[test] -fn bindgen_test_layout_pthread_rwlock_t() { - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(pthread_rwlock_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(pthread_rwlock_t)) - ); - assert_eq!( - unsafe { &(*(0 as *const pthread_rwlock_t)).__data as *const _ as usize }, - 0usize, - concat!( - "Alignment of field: ", - stringify!(pthread_rwlock_t), - "::", - stringify!(__data) - ) - ); - assert_eq!( - unsafe { &(*(0 as *const pthread_rwlock_t)).__size as *const _ as usize }, - 0usize, - concat!( - "Alignment of field: ", - stringify!(pthread_rwlock_t), - "::", - stringify!(__size) - ) - ); - assert_eq!( - unsafe { &(*(0 as *const pthread_rwlock_t)).__align as *const _ as usize }, - 0usize, - concat!( - "Alignment of field: ", - stringify!(pthread_rwlock_t), - "::", - stringify!(__align) - ) - ); -} -impl Clone for pthread_rwlock_t { - fn clone(&self) -> Self { - *self - } +#[repr(C)] +#[derive(Copy, Clone)] +pub struct __pthread_cond_s { + pub __bindgen_anon_1: __pthread_cond_s__bindgen_ty_1, + pub __bindgen_anon_2: __pthread_cond_s__bindgen_ty_2, + pub __g_refs: [::std::os::raw::c_uint; 2usize], + pub __g_size: [::std::os::raw::c_uint; 2usize], + pub __g1_orig_size: ::std::os::raw::c_uint, + pub __wrefs: ::std::os::raw::c_uint, + pub __g_signals: [::std::os::raw::c_uint; 2usize], } #[repr(C)] -#[derive(Debug, Default, Copy)] -pub struct pthread_rwlockattr_t { - pub __size: __BindgenUnionField<[::std::os::raw::c_char; 8usize]>, - pub __align: __BindgenUnionField<::std::os::raw::c_long>, - pub bindgen_union_field: u64, +#[derive(Copy, Clone)] +pub union __pthread_cond_s__bindgen_ty_1 { + pub __wseq: ::std::os::raw::c_ulonglong, + pub __wseq32: __pthread_cond_s__bindgen_ty_1__bindgen_ty_1, } -#[test] -fn bindgen_test_layout_pthread_rwlockattr_t() { - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(pthread_rwlockattr_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(pthread_rwlockattr_t)) - ); - assert_eq!( - unsafe { &(*(0 as *const pthread_rwlockattr_t)).__size as *const _ as usize }, - 0usize, - concat!( - "Alignment of field: ", - stringify!(pthread_rwlockattr_t), - "::", - stringify!(__size) - ) - ); - assert_eq!( - unsafe { &(*(0 as *const pthread_rwlockattr_t)).__align as *const _ as usize }, - 0usize, - concat!( - "Alignment of field: ", - stringify!(pthread_rwlockattr_t), - "::", - stringify!(__align) - ) - ); +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct __pthread_cond_s__bindgen_ty_1__bindgen_ty_1 { + pub __low: ::std::os::raw::c_uint, + pub __high: ::std::os::raw::c_uint, } -impl Clone for pthread_rwlockattr_t { - fn clone(&self) -> Self { - *self - } +#[repr(C)] +#[derive(Copy, Clone)] +pub union __pthread_cond_s__bindgen_ty_2 { + pub __g1_start: ::std::os::raw::c_ulonglong, + pub __g1_start32: __pthread_cond_s__bindgen_ty_2__bindgen_ty_1, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct __pthread_cond_s__bindgen_ty_2__bindgen_ty_1 { + pub __low: ::std::os::raw::c_uint, + pub __high: ::std::os::raw::c_uint, +} +pub type __tss_t = ::std::os::raw::c_uint; +pub type __thrd_t = ::std::os::raw::c_ulong; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct __once_flag { + pub __data: ::std::os::raw::c_int, +} +pub type pthread_t = ::std::os::raw::c_ulong; +#[repr(C)] +#[derive(Copy, Clone)] +pub union pthread_mutexattr_t { + pub __size: [::std::os::raw::c_char; 4usize], + pub __align: ::std::os::raw::c_int, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union pthread_condattr_t { + pub __size: [::std::os::raw::c_char; 4usize], + pub __align: ::std::os::raw::c_int, +} +pub type pthread_key_t = ::std::os::raw::c_uint; +pub type pthread_once_t = ::std::os::raw::c_int; +#[repr(C)] +#[derive(Copy, Clone)] +pub union pthread_attr_t { + pub __size: [::std::os::raw::c_char; 56usize], + pub __align: ::std::os::raw::c_long, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union pthread_mutex_t { + pub __data: __pthread_mutex_s, + pub __size: [::std::os::raw::c_char; 40usize], + pub __align: ::std::os::raw::c_long, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union pthread_cond_t { + pub __data: __pthread_cond_s, + pub __size: [::std::os::raw::c_char; 48usize], + pub __align: ::std::os::raw::c_longlong, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union pthread_rwlock_t { + pub __data: __pthread_rwlock_arch_t, + pub __size: [::std::os::raw::c_char; 56usize], + pub __align: ::std::os::raw::c_long, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union pthread_rwlockattr_t { + pub __size: [::std::os::raw::c_char; 8usize], + pub __align: ::std::os::raw::c_long, } pub type pthread_spinlock_t = ::std::os::raw::c_int; #[repr(C)] -#[derive(Debug, Default, Copy)] -pub struct pthread_barrier_t { - pub __size: __BindgenUnionField<[::std::os::raw::c_char; 32usize]>, - pub __align: __BindgenUnionField<::std::os::raw::c_long>, - pub bindgen_union_field: [u64; 4usize], -} -#[test] -fn bindgen_test_layout_pthread_barrier_t() { - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(pthread_barrier_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(pthread_barrier_t)) - ); - assert_eq!( - unsafe { &(*(0 as *const pthread_barrier_t)).__size as *const _ as usize }, - 0usize, - concat!( - "Alignment of field: ", - stringify!(pthread_barrier_t), - "::", - stringify!(__size) - ) - ); - assert_eq!( - unsafe { &(*(0 as *const pthread_barrier_t)).__align as *const _ as usize }, - 0usize, - concat!( - "Alignment of field: ", - stringify!(pthread_barrier_t), - "::", - stringify!(__align) - ) - ); -} -impl Clone for pthread_barrier_t { - fn clone(&self) -> Self { - *self - } +#[derive(Copy, Clone)] +pub union pthread_barrier_t { + pub __size: [::std::os::raw::c_char; 32usize], + pub __align: ::std::os::raw::c_long, } #[repr(C)] -#[derive(Debug, Default, Copy)] -pub struct pthread_barrierattr_t { - pub __size: __BindgenUnionField<[::std::os::raw::c_char; 4usize]>, - pub __align: __BindgenUnionField<::std::os::raw::c_int>, - pub bindgen_union_field: u32, -} -#[test] -fn bindgen_test_layout_pthread_barrierattr_t() { - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(pthread_barrierattr_t)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(pthread_barrierattr_t)) - ); - assert_eq!( - unsafe { &(*(0 as *const pthread_barrierattr_t)).__size as *const _ as usize }, - 0usize, - concat!( - "Alignment of field: ", - stringify!(pthread_barrierattr_t), - "::", - stringify!(__size) - ) - ); - assert_eq!( - unsafe { &(*(0 as *const pthread_barrierattr_t)).__align as *const _ as usize }, - 0usize, - concat!( - "Alignment of field: ", - stringify!(pthread_barrierattr_t), - "::", - stringify!(__align) - ) - ); -} -impl Clone for pthread_barrierattr_t { - fn clone(&self) -> Self { - *self - } -} -#[repr(C)] -#[derive(Debug, Copy)] -pub struct iovec { - pub iov_base: *mut ::std::os::raw::c_void, - pub iov_len: usize, -} -#[test] -fn bindgen_test_layout_iovec() { - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(iovec)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(iovec)) - ); - assert_eq!( - unsafe { &(*(0 as *const iovec)).iov_base as *const _ as usize }, - 0usize, - concat!( - "Alignment of field: ", - stringify!(iovec), - "::", - stringify!(iov_base) - ) - ); - assert_eq!( - unsafe { &(*(0 as *const iovec)).iov_len as *const _ as usize }, - 8usize, - concat!( - "Alignment of field: ", - stringify!(iovec), - "::", - stringify!(iov_len) - ) - ); -} -impl Clone for iovec { - fn clone(&self) -> Self { - *self - } -} -impl Default for iovec { - fn default() -> Self { - unsafe { ::std::mem::zeroed() } - } -} -extern "C" { - pub fn readv( - __fd: ::std::os::raw::c_int, - __iovec: *const iovec, - __count: ::std::os::raw::c_int, - ) -> isize; -} -extern "C" { - pub fn writev( - __fd: ::std::os::raw::c_int, - __iovec: *const iovec, - __count: ::std::os::raw::c_int, - ) -> isize; -} -extern "C" { - pub fn preadv( - __fd: ::std::os::raw::c_int, - __iovec: *const iovec, - __count: ::std::os::raw::c_int, - __offset: __off_t, - ) -> isize; -} -extern "C" { - pub fn pwritev( - __fd: ::std::os::raw::c_int, - __iovec: *const iovec, - __count: ::std::os::raw::c_int, - __offset: __off_t, - ) -> isize; +#[derive(Copy, Clone)] +pub union pthread_barrierattr_t { + pub __size: [::std::os::raw::c_char; 4usize], + pub __align: ::std::os::raw::c_int, } pub type socklen_t = __socklen_t; pub const __socket_type_SOCK_STREAM: __socket_type = 1; @@ -1841,349 +809,79 @@ pub const __socket_type_SOCK_NONBLOCK: __socket_type = 2048; pub type __socket_type = ::std::os::raw::c_uint; pub type sa_family_t = ::std::os::raw::c_ushort; #[repr(C)] -#[derive(Debug, Default, Copy)] +#[derive(Debug, Copy, Clone)] pub struct sockaddr { pub sa_family: sa_family_t, - pub sa_data: [::std::os::raw::c_char; 14usize], -} -#[test] -fn bindgen_test_layout_sockaddr() { - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(sockaddr)) - ); - assert_eq!( - ::std::mem::align_of::(), - 2usize, - concat!("Alignment of ", stringify!(sockaddr)) - ); - assert_eq!( - unsafe { &(*(0 as *const sockaddr)).sa_family as *const _ as usize }, - 0usize, - concat!( - "Alignment of field: ", - stringify!(sockaddr), - "::", - stringify!(sa_family) - ) - ); - assert_eq!( - unsafe { &(*(0 as *const sockaddr)).sa_data as *const _ as usize }, - 2usize, - concat!( - "Alignment of field: ", - stringify!(sockaddr), - "::", - stringify!(sa_data) - ) - ); -} -impl Clone for sockaddr { - fn clone(&self) -> Self { - *self - } + pub sa_data: [::std::os::raw::c_uchar; 14usize], } #[repr(C)] +#[derive(Copy, Clone)] pub struct sockaddr_storage { pub ss_family: sa_family_t, pub __ss_padding: [::std::os::raw::c_char; 118usize], pub __ss_align: ::std::os::raw::c_ulong, } -#[test] -fn bindgen_test_layout_sockaddr_storage() { - assert_eq!( - ::std::mem::size_of::(), - 128usize, - concat!("Size of: ", stringify!(sockaddr_storage)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(sockaddr_storage)) - ); - assert_eq!( - unsafe { &(*(0 as *const sockaddr_storage)).ss_family as *const _ as usize }, - 0usize, - concat!( - "Alignment of field: ", - stringify!(sockaddr_storage), - "::", - stringify!(ss_family) - ) - ); - assert_eq!( - unsafe { &(*(0 as *const sockaddr_storage)).__ss_padding as *const _ as usize }, - 2usize, - concat!( - "Alignment of field: ", - stringify!(sockaddr_storage), - "::", - stringify!(__ss_padding) - ) - ); - assert_eq!( - unsafe { &(*(0 as *const sockaddr_storage)).__ss_align as *const _ as usize }, - 120usize, - concat!( - "Alignment of field: ", - stringify!(sockaddr_storage), - "::", - stringify!(__ss_align) - ) - ); -} -impl Default for sockaddr_storage { - fn default() -> Self { - unsafe { ::std::mem::zeroed() } - } -} -pub const MSG_OOB: _bindgen_ty_1 = 1; -pub const MSG_PEEK: _bindgen_ty_1 = 2; -pub const MSG_DONTROUTE: _bindgen_ty_1 = 4; -pub const MSG_CTRUNC: _bindgen_ty_1 = 8; -pub const MSG_PROXY: _bindgen_ty_1 = 16; -pub const MSG_TRUNC: _bindgen_ty_1 = 32; -pub const MSG_DONTWAIT: _bindgen_ty_1 = 64; -pub const MSG_EOR: _bindgen_ty_1 = 128; -pub const MSG_WAITALL: _bindgen_ty_1 = 256; -pub const MSG_FIN: _bindgen_ty_1 = 512; -pub const MSG_SYN: _bindgen_ty_1 = 1024; -pub const MSG_CONFIRM: _bindgen_ty_1 = 2048; -pub const MSG_RST: _bindgen_ty_1 = 4096; -pub const MSG_ERRQUEUE: _bindgen_ty_1 = 8192; -pub const MSG_NOSIGNAL: _bindgen_ty_1 = 16384; -pub const MSG_MORE: _bindgen_ty_1 = 32768; -pub const MSG_WAITFORONE: _bindgen_ty_1 = 65536; -pub const MSG_FASTOPEN: _bindgen_ty_1 = 536870912; -pub const MSG_CMSG_CLOEXEC: _bindgen_ty_1 = 1073741824; +pub const MSG_OOB: ::std::os::raw::c_uint = 1; +pub const MSG_PEEK: ::std::os::raw::c_uint = 2; +pub const MSG_DONTROUTE: ::std::os::raw::c_uint = 4; +pub const MSG_CTRUNC: ::std::os::raw::c_uint = 8; +pub const MSG_PROXY: ::std::os::raw::c_uint = 16; +pub const MSG_TRUNC: ::std::os::raw::c_uint = 32; +pub const MSG_DONTWAIT: ::std::os::raw::c_uint = 64; +pub const MSG_EOR: ::std::os::raw::c_uint = 128; +pub const MSG_WAITALL: ::std::os::raw::c_uint = 256; +pub const MSG_FIN: ::std::os::raw::c_uint = 512; +pub const MSG_SYN: ::std::os::raw::c_uint = 1024; +pub const MSG_CONFIRM: ::std::os::raw::c_uint = 2048; +pub const MSG_RST: ::std::os::raw::c_uint = 4096; +pub const MSG_ERRQUEUE: ::std::os::raw::c_uint = 8192; +pub const MSG_NOSIGNAL: ::std::os::raw::c_uint = 16384; +pub const MSG_MORE: ::std::os::raw::c_uint = 32768; +pub const MSG_WAITFORONE: ::std::os::raw::c_uint = 65536; +pub const MSG_BATCH: ::std::os::raw::c_uint = 262144; +pub const MSG_ZEROCOPY: ::std::os::raw::c_uint = 67108864; +pub const MSG_FASTOPEN: ::std::os::raw::c_uint = 536870912; +pub const MSG_CMSG_CLOEXEC: ::std::os::raw::c_uint = 1073741824; pub type _bindgen_ty_1 = ::std::os::raw::c_uint; #[repr(C)] -#[derive(Debug, Copy)] +#[derive(Debug, Copy, Clone)] pub struct msghdr { pub msg_name: *mut ::std::os::raw::c_void, pub msg_namelen: socklen_t, pub msg_iov: *mut iovec, - pub msg_iovlen: usize, + pub msg_iovlen: size_t, pub msg_control: *mut ::std::os::raw::c_void, - pub msg_controllen: usize, + pub msg_controllen: size_t, pub msg_flags: ::std::os::raw::c_int, } -#[test] -fn bindgen_test_layout_msghdr() { - assert_eq!( - ::std::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(msghdr)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(msghdr)) - ); - assert_eq!( - unsafe { &(*(0 as *const msghdr)).msg_name as *const _ as usize }, - 0usize, - concat!( - "Alignment of field: ", - stringify!(msghdr), - "::", - stringify!(msg_name) - ) - ); - assert_eq!( - unsafe { &(*(0 as *const msghdr)).msg_namelen as *const _ as usize }, - 8usize, - concat!( - "Alignment of field: ", - stringify!(msghdr), - "::", - stringify!(msg_namelen) - ) - ); - assert_eq!( - unsafe { &(*(0 as *const msghdr)).msg_iov as *const _ as usize }, - 16usize, - concat!( - "Alignment of field: ", - stringify!(msghdr), - "::", - stringify!(msg_iov) - ) - ); - assert_eq!( - unsafe { &(*(0 as *const msghdr)).msg_iovlen as *const _ as usize }, - 24usize, - concat!( - "Alignment of field: ", - stringify!(msghdr), - "::", - stringify!(msg_iovlen) - ) - ); - assert_eq!( - unsafe { &(*(0 as *const msghdr)).msg_control as *const _ as usize }, - 32usize, - concat!( - "Alignment of field: ", - stringify!(msghdr), - "::", - stringify!(msg_control) - ) - ); - assert_eq!( - unsafe { &(*(0 as *const msghdr)).msg_controllen as *const _ as usize }, - 40usize, - concat!( - "Alignment of field: ", - stringify!(msghdr), - "::", - stringify!(msg_controllen) - ) - ); - assert_eq!( - unsafe { &(*(0 as *const msghdr)).msg_flags as *const _ as usize }, - 48usize, - concat!( - "Alignment of field: ", - stringify!(msghdr), - "::", - stringify!(msg_flags) - ) - ); -} -impl Clone for msghdr { - fn clone(&self) -> Self { - *self - } -} -impl Default for msghdr { - fn default() -> Self { - unsafe { ::std::mem::zeroed() } - } -} #[repr(C)] -#[derive(Debug, Default, Copy)] +#[derive(Debug)] pub struct cmsghdr { - pub cmsg_len: usize, + pub cmsg_len: size_t, pub cmsg_level: ::std::os::raw::c_int, pub cmsg_type: ::std::os::raw::c_int, pub __cmsg_data: __IncompleteArrayField<::std::os::raw::c_uchar>, } -#[test] -fn bindgen_test_layout_cmsghdr() { - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(cmsghdr)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(cmsghdr)) - ); -} -impl Clone for cmsghdr { - fn clone(&self) -> Self { - *self - } -} extern "C" { pub fn __cmsg_nxthdr(__mhdr: *mut msghdr, __cmsg: *mut cmsghdr) -> *mut cmsghdr; } -pub const SCM_RIGHTS: _bindgen_ty_2 = 1; +pub const SCM_RIGHTS: ::std::os::raw::c_uint = 1; pub type _bindgen_ty_2 = ::std::os::raw::c_uint; #[repr(C)] -#[derive(Debug, Default, Copy)] +#[derive(Debug, Copy, Clone)] pub struct linger { pub l_onoff: ::std::os::raw::c_int, pub l_linger: ::std::os::raw::c_int, } -#[test] -fn bindgen_test_layout_linger() { - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(linger)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(linger)) - ); - assert_eq!( - unsafe { &(*(0 as *const linger)).l_onoff as *const _ as usize }, - 0usize, - concat!( - "Alignment of field: ", - stringify!(linger), - "::", - stringify!(l_onoff) - ) - ); - assert_eq!( - unsafe { &(*(0 as *const linger)).l_linger as *const _ as usize }, - 4usize, - concat!( - "Alignment of field: ", - stringify!(linger), - "::", - stringify!(l_linger) - ) - ); -} -impl Clone for linger { - fn clone(&self) -> Self { - *self - } -} #[repr(C)] -#[derive(Debug, Default, Copy)] +#[derive(Debug, Copy, Clone)] pub struct osockaddr { pub sa_family: ::std::os::raw::c_ushort, pub sa_data: [::std::os::raw::c_uchar; 14usize], } -#[test] -fn bindgen_test_layout_osockaddr() { - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(osockaddr)) - ); - assert_eq!( - ::std::mem::align_of::(), - 2usize, - concat!("Alignment of ", stringify!(osockaddr)) - ); - assert_eq!( - unsafe { &(*(0 as *const osockaddr)).sa_family as *const _ as usize }, - 0usize, - concat!( - "Alignment of field: ", - stringify!(osockaddr), - "::", - stringify!(sa_family) - ) - ); - assert_eq!( - unsafe { &(*(0 as *const osockaddr)).sa_data as *const _ as usize }, - 2usize, - concat!( - "Alignment of field: ", - stringify!(osockaddr), - "::", - stringify!(sa_data) - ) - ); -} -impl Clone for osockaddr { - fn clone(&self) -> Self { - *self - } -} -pub const SHUT_RD: _bindgen_ty_3 = 0; -pub const SHUT_WR: _bindgen_ty_3 = 1; -pub const SHUT_RDWR: _bindgen_ty_3 = 2; +pub const SHUT_RD: ::std::os::raw::c_uint = 0; +pub const SHUT_WR: ::std::os::raw::c_uint = 1; +pub const SHUT_RDWR: ::std::os::raw::c_uint = 2; pub type _bindgen_ty_3 = ::std::os::raw::c_uint; extern "C" { pub fn socket( @@ -2232,51 +930,51 @@ extern "C" { pub fn send( __fd: ::std::os::raw::c_int, __buf: *const ::std::os::raw::c_void, - __n: usize, + __n: size_t, __flags: ::std::os::raw::c_int, - ) -> isize; + ) -> ssize_t; } extern "C" { pub fn recv( __fd: ::std::os::raw::c_int, __buf: *mut ::std::os::raw::c_void, - __n: usize, + __n: size_t, __flags: ::std::os::raw::c_int, - ) -> isize; + ) -> ssize_t; } extern "C" { pub fn sendto( __fd: ::std::os::raw::c_int, __buf: *const ::std::os::raw::c_void, - __n: usize, + __n: size_t, __flags: ::std::os::raw::c_int, __addr: *const sockaddr, __addr_len: socklen_t, - ) -> isize; + ) -> ssize_t; } extern "C" { pub fn recvfrom( __fd: ::std::os::raw::c_int, __buf: *mut ::std::os::raw::c_void, - __n: usize, + __n: size_t, __flags: ::std::os::raw::c_int, __addr: *mut sockaddr, __addr_len: *mut socklen_t, - ) -> isize; + ) -> ssize_t; } extern "C" { pub fn sendmsg( __fd: ::std::os::raw::c_int, __message: *const msghdr, __flags: ::std::os::raw::c_int, - ) -> isize; + ) -> ssize_t; } extern "C" { pub fn recvmsg( __fd: ::std::os::raw::c_int, __message: *mut msghdr, __flags: ::std::os::raw::c_int, - ) -> isize; + ) -> ssize_t; } extern "C" { pub fn getsockopt( @@ -2323,172 +1021,28 @@ extern "C" { ) -> ::std::os::raw::c_int; } #[repr(C)] -#[derive(Debug, Default, Copy)] +#[derive(Debug, Copy, Clone)] pub struct sync_serial_settings { pub clock_rate: ::std::os::raw::c_uint, pub clock_type: ::std::os::raw::c_uint, pub loopback: ::std::os::raw::c_ushort, } -#[test] -fn bindgen_test_layout_sync_serial_settings() { - assert_eq!( - ::std::mem::size_of::(), - 12usize, - concat!("Size of: ", stringify!(sync_serial_settings)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(sync_serial_settings)) - ); - assert_eq!( - unsafe { &(*(0 as *const sync_serial_settings)).clock_rate as *const _ as usize }, - 0usize, - concat!( - "Alignment of field: ", - stringify!(sync_serial_settings), - "::", - stringify!(clock_rate) - ) - ); - assert_eq!( - unsafe { &(*(0 as *const sync_serial_settings)).clock_type as *const _ as usize }, - 4usize, - concat!( - "Alignment of field: ", - stringify!(sync_serial_settings), - "::", - stringify!(clock_type) - ) - ); - assert_eq!( - unsafe { &(*(0 as *const sync_serial_settings)).loopback as *const _ as usize }, - 8usize, - concat!( - "Alignment of field: ", - stringify!(sync_serial_settings), - "::", - stringify!(loopback) - ) - ); -} -impl Clone for sync_serial_settings { - fn clone(&self) -> Self { - *self - } -} #[repr(C)] -#[derive(Debug, Default, Copy)] +#[derive(Debug, Copy, Clone)] pub struct te1_settings { pub clock_rate: ::std::os::raw::c_uint, pub clock_type: ::std::os::raw::c_uint, pub loopback: ::std::os::raw::c_ushort, pub slot_map: ::std::os::raw::c_uint, } -#[test] -fn bindgen_test_layout_te1_settings() { - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(te1_settings)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(te1_settings)) - ); - assert_eq!( - unsafe { &(*(0 as *const te1_settings)).clock_rate as *const _ as usize }, - 0usize, - concat!( - "Alignment of field: ", - stringify!(te1_settings), - "::", - stringify!(clock_rate) - ) - ); - assert_eq!( - unsafe { &(*(0 as *const te1_settings)).clock_type as *const _ as usize }, - 4usize, - concat!( - "Alignment of field: ", - stringify!(te1_settings), - "::", - stringify!(clock_type) - ) - ); - assert_eq!( - unsafe { &(*(0 as *const te1_settings)).loopback as *const _ as usize }, - 8usize, - concat!( - "Alignment of field: ", - stringify!(te1_settings), - "::", - stringify!(loopback) - ) - ); - assert_eq!( - unsafe { &(*(0 as *const te1_settings)).slot_map as *const _ as usize }, - 12usize, - concat!( - "Alignment of field: ", - stringify!(te1_settings), - "::", - stringify!(slot_map) - ) - ); -} -impl Clone for te1_settings { - fn clone(&self) -> Self { - *self - } -} #[repr(C)] -#[derive(Debug, Default, Copy)] +#[derive(Debug, Copy, Clone)] pub struct raw_hdlc_proto { pub encoding: ::std::os::raw::c_ushort, pub parity: ::std::os::raw::c_ushort, } -#[test] -fn bindgen_test_layout_raw_hdlc_proto() { - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(raw_hdlc_proto)) - ); - assert_eq!( - ::std::mem::align_of::(), - 2usize, - concat!("Alignment of ", stringify!(raw_hdlc_proto)) - ); - assert_eq!( - unsafe { &(*(0 as *const raw_hdlc_proto)).encoding as *const _ as usize }, - 0usize, - concat!( - "Alignment of field: ", - stringify!(raw_hdlc_proto), - "::", - stringify!(encoding) - ) - ); - assert_eq!( - unsafe { &(*(0 as *const raw_hdlc_proto)).parity as *const _ as usize }, - 2usize, - concat!( - "Alignment of field: ", - stringify!(raw_hdlc_proto), - "::", - stringify!(parity) - ) - ); -} -impl Clone for raw_hdlc_proto { - fn clone(&self) -> Self { - *self - } -} #[repr(C)] -#[derive(Debug, Default, Copy)] +#[derive(Debug, Copy, Clone)] pub struct fr_proto { pub t391: ::std::os::raw::c_uint, pub t392: ::std::os::raw::c_uint, @@ -2498,214 +1052,32 @@ pub struct fr_proto { pub lmi: ::std::os::raw::c_ushort, pub dce: ::std::os::raw::c_ushort, } -#[test] -fn bindgen_test_layout_fr_proto() { - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(fr_proto)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(fr_proto)) - ); - assert_eq!( - unsafe { &(*(0 as *const fr_proto)).t391 as *const _ as usize }, - 0usize, - concat!( - "Alignment of field: ", - stringify!(fr_proto), - "::", - stringify!(t391) - ) - ); - assert_eq!( - unsafe { &(*(0 as *const fr_proto)).t392 as *const _ as usize }, - 4usize, - concat!( - "Alignment of field: ", - stringify!(fr_proto), - "::", - stringify!(t392) - ) - ); - assert_eq!( - unsafe { &(*(0 as *const fr_proto)).n391 as *const _ as usize }, - 8usize, - concat!( - "Alignment of field: ", - stringify!(fr_proto), - "::", - stringify!(n391) - ) - ); - assert_eq!( - unsafe { &(*(0 as *const fr_proto)).n392 as *const _ as usize }, - 12usize, - concat!( - "Alignment of field: ", - stringify!(fr_proto), - "::", - stringify!(n392) - ) - ); - assert_eq!( - unsafe { &(*(0 as *const fr_proto)).n393 as *const _ as usize }, - 16usize, - concat!( - "Alignment of field: ", - stringify!(fr_proto), - "::", - stringify!(n393) - ) - ); - assert_eq!( - unsafe { &(*(0 as *const fr_proto)).lmi as *const _ as usize }, - 20usize, - concat!( - "Alignment of field: ", - stringify!(fr_proto), - "::", - stringify!(lmi) - ) - ); - assert_eq!( - unsafe { &(*(0 as *const fr_proto)).dce as *const _ as usize }, - 22usize, - concat!( - "Alignment of field: ", - stringify!(fr_proto), - "::", - stringify!(dce) - ) - ); -} -impl Clone for fr_proto { - fn clone(&self) -> Self { - *self - } -} #[repr(C)] -#[derive(Debug, Default, Copy)] +#[derive(Debug, Copy, Clone)] pub struct fr_proto_pvc { pub dlci: ::std::os::raw::c_uint, } -#[test] -fn bindgen_test_layout_fr_proto_pvc() { - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(fr_proto_pvc)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(fr_proto_pvc)) - ); - assert_eq!( - unsafe { &(*(0 as *const fr_proto_pvc)).dlci as *const _ as usize }, - 0usize, - concat!( - "Alignment of field: ", - stringify!(fr_proto_pvc), - "::", - stringify!(dlci) - ) - ); -} -impl Clone for fr_proto_pvc { - fn clone(&self) -> Self { - *self - } -} #[repr(C)] -#[derive(Debug, Default, Copy)] +#[derive(Debug, Copy, Clone)] pub struct fr_proto_pvc_info { pub dlci: ::std::os::raw::c_uint, pub master: [::std::os::raw::c_char; 16usize], } -#[test] -fn bindgen_test_layout_fr_proto_pvc_info() { - assert_eq!( - ::std::mem::size_of::(), - 20usize, - concat!("Size of: ", stringify!(fr_proto_pvc_info)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(fr_proto_pvc_info)) - ); - assert_eq!( - unsafe { &(*(0 as *const fr_proto_pvc_info)).dlci as *const _ as usize }, - 0usize, - concat!( - "Alignment of field: ", - stringify!(fr_proto_pvc_info), - "::", - stringify!(dlci) - ) - ); - assert_eq!( - unsafe { &(*(0 as *const fr_proto_pvc_info)).master as *const _ as usize }, - 4usize, - concat!( - "Alignment of field: ", - stringify!(fr_proto_pvc_info), - "::", - stringify!(master) - ) - ); -} -impl Clone for fr_proto_pvc_info { - fn clone(&self) -> Self { - *self - } -} #[repr(C)] -#[derive(Debug, Default, Copy)] +#[derive(Debug, Copy, Clone)] pub struct cisco_proto { pub interval: ::std::os::raw::c_uint, pub timeout: ::std::os::raw::c_uint, } -#[test] -fn bindgen_test_layout_cisco_proto() { - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(cisco_proto)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(cisco_proto)) - ); - assert_eq!( - unsafe { &(*(0 as *const cisco_proto)).interval as *const _ as usize }, - 0usize, - concat!( - "Alignment of field: ", - stringify!(cisco_proto), - "::", - stringify!(interval) - ) - ); - assert_eq!( - unsafe { &(*(0 as *const cisco_proto)).timeout as *const _ as usize }, - 4usize, - concat!( - "Alignment of field: ", - stringify!(cisco_proto), - "::", - stringify!(timeout) - ) - ); -} -impl Clone for cisco_proto { - fn clone(&self) -> Self { - *self - } +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct x25_hdlc_proto { + pub dce: ::std::os::raw::c_ushort, + pub modulo: ::std::os::raw::c_uint, + pub window: ::std::os::raw::c_uint, + pub t1: ::std::os::raw::c_uint, + pub t2: ::std::os::raw::c_uint, + pub n2: ::std::os::raw::c_uint, } pub const net_device_flags_IFF_UP: net_device_flags = 1; pub const net_device_flags_IFF_BROADCAST: net_device_flags = 2; @@ -2723,60 +1095,62 @@ pub const net_device_flags_IFF_MULTICAST: net_device_flags = 4096; pub const net_device_flags_IFF_PORTSEL: net_device_flags = 8192; pub const net_device_flags_IFF_AUTOMEDIA: net_device_flags = 16384; pub const net_device_flags_IFF_DYNAMIC: net_device_flags = 32768; -/** - * enum net_device_flags - &struct net_device flags - * - * These are the &struct net_device flags, they can be set by drivers, the - * kernel and some can be triggered by userspace. Userspace can query and - * set these flags using userspace utilities but there is also a sysfs - * entry available for all dev flags which can be queried and set. These flags - * are shared for all types of net_devices. The sysfs entries are available - * via /sys/class/net//flags. Flags which can be toggled through sysfs - * are annotated below, note that only a few flags can be toggled and some - * other flags are always preserved from the original net_device flags - * even if you try to set them via sysfs. Flags which are always preserved - * are kept under the flag grouping @IFF_VOLATILE. Flags which are __volatile__ - * are annotated below as such. - * - * You should have a pretty good reason to be extending these flags. - * - * @IFF_UP: interface is up. Can be toggled through sysfs. - * @IFF_BROADCAST: broadcast address valid. Volatile. - * @IFF_DEBUG: turn on debugging. Can be toggled through sysfs. - * @IFF_LOOPBACK: is a loopback net. Volatile. - * @IFF_POINTOPOINT: interface is has p-p link. Volatile. - * @IFF_NOTRAILERS: avoid use of trailers. Can be toggled through sysfs. - * Volatile. - * @IFF_RUNNING: interface RFC2863 OPER_UP. Volatile. - * @IFF_NOARP: no ARP protocol. Can be toggled through sysfs. Volatile. - * @IFF_PROMISC: receive all packets. Can be toggled through sysfs. - * @IFF_ALLMULTI: receive all multicast packets. Can be toggled through - * sysfs. - * @IFF_MASTER: master of a load balancer. Volatile. - * @IFF_SLAVE: slave of a load balancer. Volatile. - * @IFF_MULTICAST: Supports multicast. Can be toggled through sysfs. - * @IFF_PORTSEL: can set media type. Can be toggled through sysfs. - * @IFF_AUTOMEDIA: auto media select active. Can be toggled through sysfs. - * @IFF_DYNAMIC: dialup device with changing addresses. Can be toggled - * through sysfs. - * @IFF_LOWER_UP: driver signals L1 up. Volatile. - * @IFF_DORMANT: driver signals dormant. Volatile. - * @IFF_ECHO: echo sent packets. Volatile. - */ +pub const net_device_flags_IFF_LOWER_UP: net_device_flags = 65536; +pub const net_device_flags_IFF_DORMANT: net_device_flags = 131072; +pub const net_device_flags_IFF_ECHO: net_device_flags = 262144; +#[doc = " enum net_device_flags - &struct net_device flags"] +#[doc = ""] +#[doc = " These are the &struct net_device flags, they can be set by drivers, the"] +#[doc = " kernel and some can be triggered by userspace. Userspace can query and"] +#[doc = " set these flags using userspace utilities but there is also a sysfs"] +#[doc = " entry available for all dev flags which can be queried and set. These flags"] +#[doc = " are shared for all types of net_devices. The sysfs entries are available"] +#[doc = " via /sys/class/net//flags. Flags which can be toggled through sysfs"] +#[doc = " are annotated below, note that only a few flags can be toggled and some"] +#[doc = " other flags are always preserved from the original net_device flags"] +#[doc = " even if you try to set them via sysfs. Flags which are always preserved"] +#[doc = " are kept under the flag grouping @IFF_VOLATILE. Flags which are __volatile__"] +#[doc = " are annotated below as such."] +#[doc = ""] +#[doc = " You should have a pretty good reason to be extending these flags."] +#[doc = ""] +#[doc = " @IFF_UP: interface is up. Can be toggled through sysfs."] +#[doc = " @IFF_BROADCAST: broadcast address valid. Volatile."] +#[doc = " @IFF_DEBUG: turn on debugging. Can be toggled through sysfs."] +#[doc = " @IFF_LOOPBACK: is a loopback net. Volatile."] +#[doc = " @IFF_POINTOPOINT: interface is has p-p link. Volatile."] +#[doc = " @IFF_NOTRAILERS: avoid use of trailers. Can be toggled through sysfs."] +#[doc = "\tVolatile."] +#[doc = " @IFF_RUNNING: interface RFC2863 OPER_UP. Volatile."] +#[doc = " @IFF_NOARP: no ARP protocol. Can be toggled through sysfs. Volatile."] +#[doc = " @IFF_PROMISC: receive all packets. Can be toggled through sysfs."] +#[doc = " @IFF_ALLMULTI: receive all multicast packets. Can be toggled through"] +#[doc = "\tsysfs."] +#[doc = " @IFF_MASTER: master of a load balancer. Volatile."] +#[doc = " @IFF_SLAVE: slave of a load balancer. Volatile."] +#[doc = " @IFF_MULTICAST: Supports multicast. Can be toggled through sysfs."] +#[doc = " @IFF_PORTSEL: can set media type. Can be toggled through sysfs."] +#[doc = " @IFF_AUTOMEDIA: auto media select active. Can be toggled through sysfs."] +#[doc = " @IFF_DYNAMIC: dialup device with changing addresses. Can be toggled"] +#[doc = "\tthrough sysfs."] +#[doc = " @IFF_LOWER_UP: driver signals L1 up. Volatile."] +#[doc = " @IFF_DORMANT: driver signals dormant. Volatile."] +#[doc = " @IFF_ECHO: echo sent packets. Volatile."] pub type net_device_flags = ::std::os::raw::c_uint; -pub const IF_OPER_UNKNOWN: _bindgen_ty_4 = 0; -pub const IF_OPER_NOTPRESENT: _bindgen_ty_4 = 1; -pub const IF_OPER_DOWN: _bindgen_ty_4 = 2; -pub const IF_OPER_LOWERLAYERDOWN: _bindgen_ty_4 = 3; -pub const IF_OPER_TESTING: _bindgen_ty_4 = 4; -pub const IF_OPER_DORMANT: _bindgen_ty_4 = 5; -pub const IF_OPER_UP: _bindgen_ty_4 = 6; +pub const IF_OPER_UNKNOWN: ::std::os::raw::c_uint = 0; +pub const IF_OPER_NOTPRESENT: ::std::os::raw::c_uint = 1; +pub const IF_OPER_DOWN: ::std::os::raw::c_uint = 2; +pub const IF_OPER_LOWERLAYERDOWN: ::std::os::raw::c_uint = 3; +pub const IF_OPER_TESTING: ::std::os::raw::c_uint = 4; +pub const IF_OPER_DORMANT: ::std::os::raw::c_uint = 5; +pub const IF_OPER_UP: ::std::os::raw::c_uint = 6; pub type _bindgen_ty_4 = ::std::os::raw::c_uint; -pub const IF_LINK_MODE_DEFAULT: _bindgen_ty_5 = 0; -pub const IF_LINK_MODE_DORMANT: _bindgen_ty_5 = 1; +pub const IF_LINK_MODE_DEFAULT: ::std::os::raw::c_uint = 0; +pub const IF_LINK_MODE_DORMANT: ::std::os::raw::c_uint = 1; +pub const IF_LINK_MODE_TESTING: ::std::os::raw::c_uint = 2; pub type _bindgen_ty_5 = ::std::os::raw::c_uint; #[repr(C)] -#[derive(Debug, Default, Copy)] +#[derive(Debug, Copy, Clone)] pub struct ifmap { pub mem_start: ::std::os::raw::c_ulong, pub mem_end: ::std::os::raw::c_ulong, @@ -2785,480 +1159,68 @@ pub struct ifmap { pub dma: ::std::os::raw::c_uchar, pub port: ::std::os::raw::c_uchar, } -#[test] -fn bindgen_test_layout_ifmap() { - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(ifmap)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ifmap)) - ); - assert_eq!( - unsafe { &(*(0 as *const ifmap)).mem_start as *const _ as usize }, - 0usize, - concat!( - "Alignment of field: ", - stringify!(ifmap), - "::", - stringify!(mem_start) - ) - ); - assert_eq!( - unsafe { &(*(0 as *const ifmap)).mem_end as *const _ as usize }, - 8usize, - concat!( - "Alignment of field: ", - stringify!(ifmap), - "::", - stringify!(mem_end) - ) - ); - assert_eq!( - unsafe { &(*(0 as *const ifmap)).base_addr as *const _ as usize }, - 16usize, - concat!( - "Alignment of field: ", - stringify!(ifmap), - "::", - stringify!(base_addr) - ) - ); - assert_eq!( - unsafe { &(*(0 as *const ifmap)).irq as *const _ as usize }, - 18usize, - concat!( - "Alignment of field: ", - stringify!(ifmap), - "::", - stringify!(irq) - ) - ); - assert_eq!( - unsafe { &(*(0 as *const ifmap)).dma as *const _ as usize }, - 19usize, - concat!( - "Alignment of field: ", - stringify!(ifmap), - "::", - stringify!(dma) - ) - ); - assert_eq!( - unsafe { &(*(0 as *const ifmap)).port as *const _ as usize }, - 20usize, - concat!( - "Alignment of field: ", - stringify!(ifmap), - "::", - stringify!(port) - ) - ); -} -impl Clone for ifmap { - fn clone(&self) -> Self { - *self - } -} #[repr(C)] -#[derive(Debug, Default, Copy)] +#[derive(Copy, Clone)] pub struct if_settings { pub type_: ::std::os::raw::c_uint, pub size: ::std::os::raw::c_uint, pub ifs_ifsu: if_settings__bindgen_ty_1, } #[repr(C)] -#[derive(Debug, Default, Copy)] -pub struct if_settings__bindgen_ty_1 { - pub raw_hdlc: __BindgenUnionField<*mut raw_hdlc_proto>, - pub cisco: __BindgenUnionField<*mut cisco_proto>, - pub fr: __BindgenUnionField<*mut fr_proto>, - pub fr_pvc: __BindgenUnionField<*mut fr_proto_pvc>, - pub fr_pvc_info: __BindgenUnionField<*mut fr_proto_pvc_info>, - pub sync: __BindgenUnionField<*mut sync_serial_settings>, - pub te1: __BindgenUnionField<*mut te1_settings>, - pub bindgen_union_field: u64, -} -#[test] -fn bindgen_test_layout_if_settings__bindgen_ty_1() { - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(if_settings__bindgen_ty_1)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(if_settings__bindgen_ty_1)) - ); - assert_eq!( - unsafe { &(*(0 as *const if_settings__bindgen_ty_1)).raw_hdlc as *const _ as usize }, - 0usize, - concat!( - "Alignment of field: ", - stringify!(if_settings__bindgen_ty_1), - "::", - stringify!(raw_hdlc) - ) - ); - assert_eq!( - unsafe { &(*(0 as *const if_settings__bindgen_ty_1)).cisco as *const _ as usize }, - 0usize, - concat!( - "Alignment of field: ", - stringify!(if_settings__bindgen_ty_1), - "::", - stringify!(cisco) - ) - ); - assert_eq!( - unsafe { &(*(0 as *const if_settings__bindgen_ty_1)).fr as *const _ as usize }, - 0usize, - concat!( - "Alignment of field: ", - stringify!(if_settings__bindgen_ty_1), - "::", - stringify!(fr) - ) - ); - assert_eq!( - unsafe { &(*(0 as *const if_settings__bindgen_ty_1)).fr_pvc as *const _ as usize }, - 0usize, - concat!( - "Alignment of field: ", - stringify!(if_settings__bindgen_ty_1), - "::", - stringify!(fr_pvc) - ) - ); - assert_eq!( - unsafe { &(*(0 as *const if_settings__bindgen_ty_1)).fr_pvc_info as *const _ as usize }, - 0usize, - concat!( - "Alignment of field: ", - stringify!(if_settings__bindgen_ty_1), - "::", - stringify!(fr_pvc_info) - ) - ); - assert_eq!( - unsafe { &(*(0 as *const if_settings__bindgen_ty_1)).sync as *const _ as usize }, - 0usize, - concat!( - "Alignment of field: ", - stringify!(if_settings__bindgen_ty_1), - "::", - stringify!(sync) - ) - ); - assert_eq!( - unsafe { &(*(0 as *const if_settings__bindgen_ty_1)).te1 as *const _ as usize }, - 0usize, - concat!( - "Alignment of field: ", - stringify!(if_settings__bindgen_ty_1), - "::", - stringify!(te1) - ) - ); -} -impl Clone for if_settings__bindgen_ty_1 { - fn clone(&self) -> Self { - *self - } -} -#[test] -fn bindgen_test_layout_if_settings() { - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(if_settings)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(if_settings)) - ); - assert_eq!( - unsafe { &(*(0 as *const if_settings)).type_ as *const _ as usize }, - 0usize, - concat!( - "Alignment of field: ", - stringify!(if_settings), - "::", - stringify!(type_) - ) - ); - assert_eq!( - unsafe { &(*(0 as *const if_settings)).size as *const _ as usize }, - 4usize, - concat!( - "Alignment of field: ", - stringify!(if_settings), - "::", - stringify!(size) - ) - ); - assert_eq!( - unsafe { &(*(0 as *const if_settings)).ifs_ifsu as *const _ as usize }, - 8usize, - concat!( - "Alignment of field: ", - stringify!(if_settings), - "::", - stringify!(ifs_ifsu) - ) - ); -} -impl Clone for if_settings { - fn clone(&self) -> Self { - *self - } +#[derive(Copy, Clone)] +pub union if_settings__bindgen_ty_1 { + pub raw_hdlc: *mut raw_hdlc_proto, + pub cisco: *mut cisco_proto, + pub fr: *mut fr_proto, + pub fr_pvc: *mut fr_proto_pvc, + pub fr_pvc_info: *mut fr_proto_pvc_info, + pub x25: *mut x25_hdlc_proto, + pub sync: *mut sync_serial_settings, + pub te1: *mut te1_settings, } #[repr(C)] -#[derive(Debug, Default, Copy)] +#[derive(Copy, Clone)] pub struct ifreq { pub ifr_ifrn: ifreq__bindgen_ty_1, pub ifr_ifru: ifreq__bindgen_ty_2, } -#[repr(C)] -#[derive(Debug, Default, Copy)] -pub struct ifreq__bindgen_ty_1 { - pub ifrn_name: __BindgenUnionField<[::std::os::raw::c_uchar; 16usize]>, - pub bindgen_union_field: [u8; 16usize], -} -#[test] -fn bindgen_test_layout_ifreq__bindgen_ty_1() { - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(ifreq__bindgen_ty_1)) - ); - assert_eq!( - ::std::mem::align_of::(), - 1usize, - concat!("Alignment of ", stringify!(ifreq__bindgen_ty_1)) - ); - assert_eq!( - unsafe { &(*(0 as *const ifreq__bindgen_ty_1)).ifrn_name as *const _ as usize }, - 0usize, - concat!( - "Alignment of field: ", - stringify!(ifreq__bindgen_ty_1), - "::", - stringify!(ifrn_name) - ) - ); -} -impl Clone for ifreq__bindgen_ty_1 { - fn clone(&self) -> Self { - *self + +impl Default for ifreq { + fn default() -> Self { + unsafe { std::mem::zeroed() } } } #[repr(C)] -#[derive(Debug, Default, Copy)] -pub struct ifreq__bindgen_ty_2 { - pub ifru_addr: __BindgenUnionField, - pub ifru_dstaddr: __BindgenUnionField, - pub ifru_broadaddr: __BindgenUnionField, - pub ifru_netmask: __BindgenUnionField, - pub ifru_hwaddr: __BindgenUnionField, - pub ifru_flags: __BindgenUnionField<::std::os::raw::c_short>, - pub ifru_ivalue: __BindgenUnionField<::std::os::raw::c_int>, - pub ifru_mtu: __BindgenUnionField<::std::os::raw::c_int>, - pub ifru_map: __BindgenUnionField, - pub ifru_slave: __BindgenUnionField<[::std::os::raw::c_char; 16usize]>, - pub ifru_newname: __BindgenUnionField<[::std::os::raw::c_char; 16usize]>, - pub ifru_data: __BindgenUnionField<*mut ::std::os::raw::c_void>, - pub ifru_settings: __BindgenUnionField, - pub bindgen_union_field: [u64; 3usize], +#[derive(Copy, Clone)] +pub union ifreq__bindgen_ty_1 { + pub ifrn_name: [::std::os::raw::c_uchar; 16usize], } -#[test] -fn bindgen_test_layout_ifreq__bindgen_ty_2() { - assert_eq!( - ::std::mem::size_of::(), - 24usize, - concat!("Size of: ", stringify!(ifreq__bindgen_ty_2)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ifreq__bindgen_ty_2)) - ); - assert_eq!( - unsafe { &(*(0 as *const ifreq__bindgen_ty_2)).ifru_addr as *const _ as usize }, - 0usize, - concat!( - "Alignment of field: ", - stringify!(ifreq__bindgen_ty_2), - "::", - stringify!(ifru_addr) - ) - ); - assert_eq!( - unsafe { &(*(0 as *const ifreq__bindgen_ty_2)).ifru_dstaddr as *const _ as usize }, - 0usize, - concat!( - "Alignment of field: ", - stringify!(ifreq__bindgen_ty_2), - "::", - stringify!(ifru_dstaddr) - ) - ); - assert_eq!( - unsafe { &(*(0 as *const ifreq__bindgen_ty_2)).ifru_broadaddr as *const _ as usize }, - 0usize, - concat!( - "Alignment of field: ", - stringify!(ifreq__bindgen_ty_2), - "::", - stringify!(ifru_broadaddr) - ) - ); - assert_eq!( - unsafe { &(*(0 as *const ifreq__bindgen_ty_2)).ifru_netmask as *const _ as usize }, - 0usize, - concat!( - "Alignment of field: ", - stringify!(ifreq__bindgen_ty_2), - "::", - stringify!(ifru_netmask) - ) - ); - assert_eq!( - unsafe { &(*(0 as *const ifreq__bindgen_ty_2)).ifru_hwaddr as *const _ as usize }, - 0usize, - concat!( - "Alignment of field: ", - stringify!(ifreq__bindgen_ty_2), - "::", - stringify!(ifru_hwaddr) - ) - ); - assert_eq!( - unsafe { &(*(0 as *const ifreq__bindgen_ty_2)).ifru_flags as *const _ as usize }, - 0usize, - concat!( - "Alignment of field: ", - stringify!(ifreq__bindgen_ty_2), - "::", - stringify!(ifru_flags) - ) - ); - assert_eq!( - unsafe { &(*(0 as *const ifreq__bindgen_ty_2)).ifru_ivalue as *const _ as usize }, - 0usize, - concat!( - "Alignment of field: ", - stringify!(ifreq__bindgen_ty_2), - "::", - stringify!(ifru_ivalue) - ) - ); - assert_eq!( - unsafe { &(*(0 as *const ifreq__bindgen_ty_2)).ifru_mtu as *const _ as usize }, - 0usize, - concat!( - "Alignment of field: ", - stringify!(ifreq__bindgen_ty_2), - "::", - stringify!(ifru_mtu) - ) - ); - assert_eq!( - unsafe { &(*(0 as *const ifreq__bindgen_ty_2)).ifru_map as *const _ as usize }, - 0usize, - concat!( - "Alignment of field: ", - stringify!(ifreq__bindgen_ty_2), - "::", - stringify!(ifru_map) - ) - ); - assert_eq!( - unsafe { &(*(0 as *const ifreq__bindgen_ty_2)).ifru_slave as *const _ as usize }, - 0usize, - concat!( - "Alignment of field: ", - stringify!(ifreq__bindgen_ty_2), - "::", - stringify!(ifru_slave) - ) - ); - assert_eq!( - unsafe { &(*(0 as *const ifreq__bindgen_ty_2)).ifru_newname as *const _ as usize }, - 0usize, - concat!( - "Alignment of field: ", - stringify!(ifreq__bindgen_ty_2), - "::", - stringify!(ifru_newname) - ) - ); - assert_eq!( - unsafe { &(*(0 as *const ifreq__bindgen_ty_2)).ifru_data as *const _ as usize }, - 0usize, - concat!( - "Alignment of field: ", - stringify!(ifreq__bindgen_ty_2), - "::", - stringify!(ifru_data) - ) - ); - assert_eq!( - unsafe { &(*(0 as *const ifreq__bindgen_ty_2)).ifru_settings as *const _ as usize }, - 0usize, - concat!( - "Alignment of field: ", - stringify!(ifreq__bindgen_ty_2), - "::", - stringify!(ifru_settings) - ) - ); +#[repr(C)] +#[derive(Copy, Clone)] +pub union ifreq__bindgen_ty_2 { + pub ifru_addr: sockaddr, + pub ifru_dstaddr: sockaddr, + pub ifru_broadaddr: sockaddr, + pub ifru_netmask: sockaddr, + pub ifru_hwaddr: sockaddr, + pub ifru_flags: ::std::os::raw::c_short, + pub ifru_ivalue: ::std::os::raw::c_int, + pub ifru_mtu: ::std::os::raw::c_int, + pub ifru_map: ifmap, + pub ifru_slave: [::std::os::raw::c_uchar; 16usize], + pub ifru_newname: [::std::os::raw::c_uchar; 16usize], + pub ifru_data: *mut ::std::os::raw::c_void, + pub ifru_settings: if_settings, } -impl Clone for ifreq__bindgen_ty_2 { - fn clone(&self) -> Self { - *self - } +#[repr(C)] +#[derive(Copy, Clone)] +pub struct ifconf { + pub ifc_len: ::std::os::raw::c_int, + pub ifc_ifcu: ifconf__bindgen_ty_1, } -#[test] -fn bindgen_test_layout_ifreq() { - assert_eq!( - ::std::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(ifreq)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ifreq)) - ); - assert_eq!( - unsafe { &(*(0 as *const ifreq)).ifr_ifrn as *const _ as usize }, - 0usize, - concat!( - "Alignment of field: ", - stringify!(ifreq), - "::", - stringify!(ifr_ifrn) - ) - ); - assert_eq!( - unsafe { &(*(0 as *const ifreq)).ifr_ifru as *const _ as usize }, - 16usize, - concat!( - "Alignment of field: ", - stringify!(ifreq), - "::", - stringify!(ifr_ifru) - ) - ); -} -impl Clone for ifreq { - fn clone(&self) -> Self { - *self - } +#[repr(C)] +#[derive(Copy, Clone)] +pub union ifconf__bindgen_ty_1 { + pub ifcu_buf: *mut ::std::os::raw::c_char, + pub ifcu_req: *mut ifreq, } diff --git a/net_gen/src/inn.rs b/net_gen/src/inn.rs index 637a98dd0..f7a4e508a 100644 --- a/net_gen/src/inn.rs +++ b/net_gen/src/inn.rs @@ -1,103 +1,119 @@ -// Copyright 2017 The Chromium OS Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the THIRD-PARTY file. +// Copyright © 2021 Intel Corporation +// +// SPDX-License-Identifier: Apache-2.0 -/* automatically generated by rust-bindgen */ +// bindgen /usr/include/linux/in.h --no-layout-tests -pub const __BITS_PER_LONG: ::std::os::raw::c_uint = 64; -pub const __FD_SETSIZE: ::std::os::raw::c_uint = 1024; -pub const __UAPI_DEF_IN_ADDR: ::std::os::raw::c_uint = 1; -pub const __UAPI_DEF_IN_IPPROTO: ::std::os::raw::c_uint = 1; -pub const __UAPI_DEF_IN_PKTINFO: ::std::os::raw::c_uint = 1; -pub const __UAPI_DEF_IP_MREQ: ::std::os::raw::c_uint = 1; -pub const __UAPI_DEF_SOCKADDR_IN: ::std::os::raw::c_uint = 1; -pub const __UAPI_DEF_IN_CLASS: ::std::os::raw::c_uint = 1; -pub const __UAPI_DEF_IN6_ADDR: ::std::os::raw::c_uint = 1; -pub const __UAPI_DEF_IN6_ADDR_ALT: ::std::os::raw::c_uint = 1; -pub const __UAPI_DEF_SOCKADDR_IN6: ::std::os::raw::c_uint = 1; -pub const __UAPI_DEF_IPV6_MREQ: ::std::os::raw::c_uint = 1; -pub const __UAPI_DEF_IPPROTO_V6: ::std::os::raw::c_uint = 1; -pub const __UAPI_DEF_IPV6_OPTIONS: ::std::os::raw::c_uint = 1; -pub const __UAPI_DEF_IN6_PKTINFO: ::std::os::raw::c_uint = 1; -pub const __UAPI_DEF_IP6_MTUINFO: ::std::os::raw::c_uint = 1; -pub const __UAPI_DEF_XATTR: ::std::os::raw::c_uint = 1; -pub const _K_SS_MAXSIZE: ::std::os::raw::c_uint = 128; -pub const IP_TOS: ::std::os::raw::c_uint = 1; -pub const IP_TTL: ::std::os::raw::c_uint = 2; -pub const IP_HDRINCL: ::std::os::raw::c_uint = 3; -pub const IP_OPTIONS: ::std::os::raw::c_uint = 4; -pub const IP_ROUTER_ALERT: ::std::os::raw::c_uint = 5; -pub const IP_RECVOPTS: ::std::os::raw::c_uint = 6; -pub const IP_RETOPTS: ::std::os::raw::c_uint = 7; -pub const IP_PKTINFO: ::std::os::raw::c_uint = 8; -pub const IP_PKTOPTIONS: ::std::os::raw::c_uint = 9; -pub const IP_MTU_DISCOVER: ::std::os::raw::c_uint = 10; -pub const IP_RECVERR: ::std::os::raw::c_uint = 11; -pub const IP_RECVTTL: ::std::os::raw::c_uint = 12; -pub const IP_RECVTOS: ::std::os::raw::c_uint = 13; -pub const IP_MTU: ::std::os::raw::c_uint = 14; -pub const IP_FREEBIND: ::std::os::raw::c_uint = 15; -pub const IP_IPSEC_POLICY: ::std::os::raw::c_uint = 16; -pub const IP_XFRM_POLICY: ::std::os::raw::c_uint = 17; -pub const IP_PASSSEC: ::std::os::raw::c_uint = 18; -pub const IP_TRANSPARENT: ::std::os::raw::c_uint = 19; -pub const IP_RECVRETOPTS: ::std::os::raw::c_uint = 7; -pub const IP_ORIGDSTADDR: ::std::os::raw::c_uint = 20; -pub const IP_RECVORIGDSTADDR: ::std::os::raw::c_uint = 20; -pub const IP_MINTTL: ::std::os::raw::c_uint = 21; -pub const IP_NODEFRAG: ::std::os::raw::c_uint = 22; -pub const IP_CHECKSUM: ::std::os::raw::c_uint = 23; -pub const IP_BIND_ADDRESS_NO_PORT: ::std::os::raw::c_uint = 24; -pub const IP_RECVFRAGSIZE: ::std::os::raw::c_uint = 25; -pub const IP_PMTUDISC_DONT: ::std::os::raw::c_uint = 0; -pub const IP_PMTUDISC_WANT: ::std::os::raw::c_uint = 1; -pub const IP_PMTUDISC_DO: ::std::os::raw::c_uint = 2; -pub const IP_PMTUDISC_PROBE: ::std::os::raw::c_uint = 3; -pub const IP_PMTUDISC_INTERFACE: ::std::os::raw::c_uint = 4; -pub const IP_PMTUDISC_OMIT: ::std::os::raw::c_uint = 5; -pub const IP_MULTICAST_IF: ::std::os::raw::c_uint = 32; -pub const IP_MULTICAST_TTL: ::std::os::raw::c_uint = 33; -pub const IP_MULTICAST_LOOP: ::std::os::raw::c_uint = 34; -pub const IP_ADD_MEMBERSHIP: ::std::os::raw::c_uint = 35; -pub const IP_DROP_MEMBERSHIP: ::std::os::raw::c_uint = 36; -pub const IP_UNBLOCK_SOURCE: ::std::os::raw::c_uint = 37; -pub const IP_BLOCK_SOURCE: ::std::os::raw::c_uint = 38; -pub const IP_ADD_SOURCE_MEMBERSHIP: ::std::os::raw::c_uint = 39; -pub const IP_DROP_SOURCE_MEMBERSHIP: ::std::os::raw::c_uint = 40; -pub const IP_MSFILTER: ::std::os::raw::c_uint = 41; -pub const MCAST_JOIN_GROUP: ::std::os::raw::c_uint = 42; -pub const MCAST_BLOCK_SOURCE: ::std::os::raw::c_uint = 43; -pub const MCAST_UNBLOCK_SOURCE: ::std::os::raw::c_uint = 44; -pub const MCAST_LEAVE_GROUP: ::std::os::raw::c_uint = 45; -pub const MCAST_JOIN_SOURCE_GROUP: ::std::os::raw::c_uint = 46; -pub const MCAST_LEAVE_SOURCE_GROUP: ::std::os::raw::c_uint = 47; -pub const MCAST_MSFILTER: ::std::os::raw::c_uint = 48; -pub const IP_MULTICAST_ALL: ::std::os::raw::c_uint = 49; -pub const IP_UNICAST_IF: ::std::os::raw::c_uint = 50; -pub const MCAST_EXCLUDE: ::std::os::raw::c_uint = 0; -pub const MCAST_INCLUDE: ::std::os::raw::c_uint = 1; -pub const IP_DEFAULT_MULTICAST_TTL: ::std::os::raw::c_uint = 1; -pub const IP_DEFAULT_MULTICAST_LOOP: ::std::os::raw::c_uint = 1; -pub const __SOCK_SIZE__: ::std::os::raw::c_uint = 16; -pub const IN_CLASSA_NET: ::std::os::raw::c_uint = 4278190080; -pub const IN_CLASSA_NSHIFT: ::std::os::raw::c_uint = 24; -pub const IN_CLASSA_HOST: ::std::os::raw::c_uint = 16777215; -pub const IN_CLASSA_MAX: ::std::os::raw::c_uint = 128; -pub const IN_CLASSB_NET: ::std::os::raw::c_uint = 4294901760; -pub const IN_CLASSB_NSHIFT: ::std::os::raw::c_uint = 16; -pub const IN_CLASSB_HOST: ::std::os::raw::c_uint = 65535; -pub const IN_CLASSB_MAX: ::std::os::raw::c_uint = 65536; -pub const IN_CLASSC_NET: ::std::os::raw::c_uint = 4294967040; -pub const IN_CLASSC_NSHIFT: ::std::os::raw::c_uint = 8; -pub const IN_CLASSC_HOST: ::std::os::raw::c_uint = 255; -pub const IN_MULTICAST_NET: ::std::os::raw::c_uint = 4026531840; -pub const IN_LOOPBACKNET: ::std::os::raw::c_uint = 127; -pub const INADDR_LOOPBACK: ::std::os::raw::c_uint = 2130706433; -pub const INADDR_UNSPEC_GROUP: ::std::os::raw::c_uint = 3758096384; -pub const INADDR_ALLHOSTS_GROUP: ::std::os::raw::c_uint = 3758096385; -pub const INADDR_ALLRTRS_GROUP: ::std::os::raw::c_uint = 3758096386; -pub const INADDR_MAX_LOCAL_GROUP: ::std::os::raw::c_uint = 3758096639; -pub const __LITTLE_ENDIAN: ::std::os::raw::c_uint = 1234; +/* automatically generated by rust-bindgen 0.58.1 */ + +pub const __BITS_PER_LONG: u32 = 64; +pub const __FD_SETSIZE: u32 = 1024; +pub const __UAPI_DEF_IF_IFCONF: u32 = 1; +pub const __UAPI_DEF_IF_IFMAP: u32 = 1; +pub const __UAPI_DEF_IF_IFNAMSIZ: u32 = 1; +pub const __UAPI_DEF_IF_IFREQ: u32 = 1; +pub const __UAPI_DEF_IF_NET_DEVICE_FLAGS: u32 = 1; +pub const __UAPI_DEF_IF_NET_DEVICE_FLAGS_LOWER_UP_DORMANT_ECHO: u32 = 1; +pub const __UAPI_DEF_IN_ADDR: u32 = 1; +pub const __UAPI_DEF_IN_IPPROTO: u32 = 1; +pub const __UAPI_DEF_IN_PKTINFO: u32 = 1; +pub const __UAPI_DEF_IP_MREQ: u32 = 1; +pub const __UAPI_DEF_SOCKADDR_IN: u32 = 1; +pub const __UAPI_DEF_IN_CLASS: u32 = 1; +pub const __UAPI_DEF_IN6_ADDR: u32 = 1; +pub const __UAPI_DEF_IN6_ADDR_ALT: u32 = 1; +pub const __UAPI_DEF_SOCKADDR_IN6: u32 = 1; +pub const __UAPI_DEF_IPV6_MREQ: u32 = 1; +pub const __UAPI_DEF_IPPROTO_V6: u32 = 1; +pub const __UAPI_DEF_IPV6_OPTIONS: u32 = 1; +pub const __UAPI_DEF_IN6_PKTINFO: u32 = 1; +pub const __UAPI_DEF_IP6_MTUINFO: u32 = 1; +pub const __UAPI_DEF_SOCKADDR_IPX: u32 = 1; +pub const __UAPI_DEF_IPX_ROUTE_DEFINITION: u32 = 1; +pub const __UAPI_DEF_IPX_INTERFACE_DEFINITION: u32 = 1; +pub const __UAPI_DEF_IPX_CONFIG_DATA: u32 = 1; +pub const __UAPI_DEF_IPX_ROUTE_DEF: u32 = 1; +pub const __UAPI_DEF_XATTR: u32 = 1; +pub const _K_SS_MAXSIZE: u32 = 128; +pub const IP_TOS: u32 = 1; +pub const IP_TTL: u32 = 2; +pub const IP_HDRINCL: u32 = 3; +pub const IP_OPTIONS: u32 = 4; +pub const IP_ROUTER_ALERT: u32 = 5; +pub const IP_RECVOPTS: u32 = 6; +pub const IP_RETOPTS: u32 = 7; +pub const IP_PKTINFO: u32 = 8; +pub const IP_PKTOPTIONS: u32 = 9; +pub const IP_MTU_DISCOVER: u32 = 10; +pub const IP_RECVERR: u32 = 11; +pub const IP_RECVTTL: u32 = 12; +pub const IP_RECVTOS: u32 = 13; +pub const IP_MTU: u32 = 14; +pub const IP_FREEBIND: u32 = 15; +pub const IP_IPSEC_POLICY: u32 = 16; +pub const IP_XFRM_POLICY: u32 = 17; +pub const IP_PASSSEC: u32 = 18; +pub const IP_TRANSPARENT: u32 = 19; +pub const IP_RECVRETOPTS: u32 = 7; +pub const IP_ORIGDSTADDR: u32 = 20; +pub const IP_RECVORIGDSTADDR: u32 = 20; +pub const IP_MINTTL: u32 = 21; +pub const IP_NODEFRAG: u32 = 22; +pub const IP_CHECKSUM: u32 = 23; +pub const IP_BIND_ADDRESS_NO_PORT: u32 = 24; +pub const IP_RECVFRAGSIZE: u32 = 25; +pub const IP_PMTUDISC_DONT: u32 = 0; +pub const IP_PMTUDISC_WANT: u32 = 1; +pub const IP_PMTUDISC_DO: u32 = 2; +pub const IP_PMTUDISC_PROBE: u32 = 3; +pub const IP_PMTUDISC_INTERFACE: u32 = 4; +pub const IP_PMTUDISC_OMIT: u32 = 5; +pub const IP_MULTICAST_IF: u32 = 32; +pub const IP_MULTICAST_TTL: u32 = 33; +pub const IP_MULTICAST_LOOP: u32 = 34; +pub const IP_ADD_MEMBERSHIP: u32 = 35; +pub const IP_DROP_MEMBERSHIP: u32 = 36; +pub const IP_UNBLOCK_SOURCE: u32 = 37; +pub const IP_BLOCK_SOURCE: u32 = 38; +pub const IP_ADD_SOURCE_MEMBERSHIP: u32 = 39; +pub const IP_DROP_SOURCE_MEMBERSHIP: u32 = 40; +pub const IP_MSFILTER: u32 = 41; +pub const MCAST_JOIN_GROUP: u32 = 42; +pub const MCAST_BLOCK_SOURCE: u32 = 43; +pub const MCAST_UNBLOCK_SOURCE: u32 = 44; +pub const MCAST_LEAVE_GROUP: u32 = 45; +pub const MCAST_JOIN_SOURCE_GROUP: u32 = 46; +pub const MCAST_LEAVE_SOURCE_GROUP: u32 = 47; +pub const MCAST_MSFILTER: u32 = 48; +pub const IP_MULTICAST_ALL: u32 = 49; +pub const IP_UNICAST_IF: u32 = 50; +pub const MCAST_EXCLUDE: u32 = 0; +pub const MCAST_INCLUDE: u32 = 1; +pub const IP_DEFAULT_MULTICAST_TTL: u32 = 1; +pub const IP_DEFAULT_MULTICAST_LOOP: u32 = 1; +pub const __SOCK_SIZE__: u32 = 16; +pub const IN_CLASSA_NET: u32 = 4278190080; +pub const IN_CLASSA_NSHIFT: u32 = 24; +pub const IN_CLASSA_HOST: u32 = 16777215; +pub const IN_CLASSA_MAX: u32 = 128; +pub const IN_CLASSB_NET: u32 = 4294901760; +pub const IN_CLASSB_NSHIFT: u32 = 16; +pub const IN_CLASSB_HOST: u32 = 65535; +pub const IN_CLASSB_MAX: u32 = 65536; +pub const IN_CLASSC_NET: u32 = 4294967040; +pub const IN_CLASSC_NSHIFT: u32 = 8; +pub const IN_CLASSC_HOST: u32 = 255; +pub const IN_MULTICAST_NET: u32 = 3758096384; +pub const IN_CLASSE_NET: u32 = 4294967295; +pub const IN_CLASSE_NSHIFT: u32 = 0; +pub const IN_LOOPBACKNET: u32 = 127; +pub const INADDR_LOOPBACK: u32 = 2130706433; +pub const INADDR_UNSPEC_GROUP: u32 = 3758096384; +pub const INADDR_ALLHOSTS_GROUP: u32 = 3758096385; +pub const INADDR_ALLRTRS_GROUP: u32 = 3758096386; +pub const INADDR_ALLSNOOPERS_GROUP: u32 = 3758096490; +pub const INADDR_MAX_LOCAL_GROUP: u32 = 3758096639; +pub const __LITTLE_ENDIAN: u32 = 1234; pub type __s8 = ::std::os::raw::c_schar; pub type __u8 = ::std::os::raw::c_uchar; pub type __s16 = ::std::os::raw::c_short; @@ -107,38 +123,10 @@ pub type __u32 = ::std::os::raw::c_uint; pub type __s64 = ::std::os::raw::c_longlong; pub type __u64 = ::std::os::raw::c_ulonglong; #[repr(C)] -#[derive(Debug, Default, Copy)] +#[derive(Debug, Copy, Clone)] pub struct __kernel_fd_set { pub fds_bits: [::std::os::raw::c_ulong; 16usize], } -#[test] -fn bindgen_test_layout___kernel_fd_set() { - assert_eq!( - ::std::mem::size_of::<__kernel_fd_set>(), - 128usize, - concat!("Size of: ", stringify!(__kernel_fd_set)) - ); - assert_eq!( - ::std::mem::align_of::<__kernel_fd_set>(), - 8usize, - concat!("Alignment of ", stringify!(__kernel_fd_set)) - ); - assert_eq!( - unsafe { &(*(0 as *const __kernel_fd_set)).fds_bits as *const _ as usize }, - 0usize, - concat!( - "Alignment of field: ", - stringify!(__kernel_fd_set), - "::", - stringify!(fds_bits) - ) - ); -} -impl Clone for __kernel_fd_set { - fn clone(&self) -> Self { - *self - } -} pub type __kernel_sighandler_t = ::std::option::Option; pub type __kernel_key_t = ::std::os::raw::c_int; @@ -162,41 +150,15 @@ pub type __kernel_size_t = __kernel_ulong_t; pub type __kernel_ssize_t = __kernel_long_t; pub type __kernel_ptrdiff_t = __kernel_long_t; #[repr(C)] -#[derive(Debug, Default, Copy)] +#[derive(Debug, Copy, Clone)] pub struct __kernel_fsid_t { pub val: [::std::os::raw::c_int; 2usize], } -#[test] -fn bindgen_test_layout___kernel_fsid_t() { - assert_eq!( - ::std::mem::size_of::<__kernel_fsid_t>(), - 8usize, - concat!("Size of: ", stringify!(__kernel_fsid_t)) - ); - assert_eq!( - ::std::mem::align_of::<__kernel_fsid_t>(), - 4usize, - concat!("Alignment of ", stringify!(__kernel_fsid_t)) - ); - assert_eq!( - unsafe { &(*(0 as *const __kernel_fsid_t)).val as *const _ as usize }, - 0usize, - concat!( - "Alignment of field: ", - stringify!(__kernel_fsid_t), - "::", - stringify!(val) - ) - ); -} -impl Clone for __kernel_fsid_t { - fn clone(&self) -> Self { - *self - } -} pub type __kernel_off_t = __kernel_long_t; pub type __kernel_loff_t = ::std::os::raw::c_longlong; +pub type __kernel_old_time_t = __kernel_long_t; pub type __kernel_time_t = __kernel_long_t; +pub type __kernel_time64_t = ::std::os::raw::c_longlong; pub type __kernel_clock_t = __kernel_long_t; pub type __kernel_timer_t = ::std::os::raw::c_int; pub type __kernel_clockid_t = ::std::os::raw::c_int; @@ -211,267 +173,81 @@ pub type __le64 = __u64; pub type __be64 = __u64; pub type __sum16 = __u16; pub type __wsum = __u32; +pub type __poll_t = ::std::os::raw::c_uint; pub type __kernel_sa_family_t = ::std::os::raw::c_ushort; #[repr(C)] +#[derive(Copy, Clone)] pub struct __kernel_sockaddr_storage { + pub __bindgen_anon_1: __kernel_sockaddr_storage__bindgen_ty_1, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union __kernel_sockaddr_storage__bindgen_ty_1 { + pub __bindgen_anon_1: __kernel_sockaddr_storage__bindgen_ty_1__bindgen_ty_1, + pub __align: *mut ::std::os::raw::c_void, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct __kernel_sockaddr_storage__bindgen_ty_1__bindgen_ty_1 { pub ss_family: __kernel_sa_family_t, pub __data: [::std::os::raw::c_char; 126usize], - pub __bindgen_align: [u64; 0usize], } -#[test] -fn bindgen_test_layout___kernel_sockaddr_storage() { - assert_eq!( - ::std::mem::size_of::<__kernel_sockaddr_storage>(), - 128usize, - concat!("Size of: ", stringify!(__kernel_sockaddr_storage)) - ); - assert_eq!( - ::std::mem::align_of::<__kernel_sockaddr_storage>(), - 8usize, - concat!("Alignment of ", stringify!(__kernel_sockaddr_storage)) - ); - assert_eq!( - unsafe { &(*(0 as *const __kernel_sockaddr_storage)).ss_family as *const _ as usize }, - 0usize, - concat!( - "Alignment of field: ", - stringify!(__kernel_sockaddr_storage), - "::", - stringify!(ss_family) - ) - ); - assert_eq!( - unsafe { &(*(0 as *const __kernel_sockaddr_storage)).__data as *const _ as usize }, - 2usize, - concat!( - "Alignment of field: ", - stringify!(__kernel_sockaddr_storage), - "::", - stringify!(__data) - ) - ); -} -impl Default for __kernel_sockaddr_storage { - fn default() -> Self { - unsafe { ::std::mem::zeroed() } - } -} -pub const IPPROTO_IP: _bindgen_ty_1 = 0; -pub const IPPROTO_ICMP: _bindgen_ty_1 = 1; -pub const IPPROTO_IGMP: _bindgen_ty_1 = 2; -pub const IPPROTO_IPIP: _bindgen_ty_1 = 4; -pub const IPPROTO_TCP: _bindgen_ty_1 = 6; -pub const IPPROTO_EGP: _bindgen_ty_1 = 8; -pub const IPPROTO_PUP: _bindgen_ty_1 = 12; -pub const IPPROTO_UDP: _bindgen_ty_1 = 17; -pub const IPPROTO_IDP: _bindgen_ty_1 = 22; -pub const IPPROTO_TP: _bindgen_ty_1 = 29; -pub const IPPROTO_DCCP: _bindgen_ty_1 = 33; -pub const IPPROTO_IPV6: _bindgen_ty_1 = 41; -pub const IPPROTO_RSVP: _bindgen_ty_1 = 46; -pub const IPPROTO_GRE: _bindgen_ty_1 = 47; -pub const IPPROTO_ESP: _bindgen_ty_1 = 50; -pub const IPPROTO_AH: _bindgen_ty_1 = 51; -pub const IPPROTO_MTP: _bindgen_ty_1 = 92; -pub const IPPROTO_BEETPH: _bindgen_ty_1 = 94; -pub const IPPROTO_ENCAP: _bindgen_ty_1 = 98; -pub const IPPROTO_PIM: _bindgen_ty_1 = 103; -pub const IPPROTO_COMP: _bindgen_ty_1 = 108; -pub const IPPROTO_SCTP: _bindgen_ty_1 = 132; -pub const IPPROTO_UDPLITE: _bindgen_ty_1 = 136; -pub const IPPROTO_MPLS: _bindgen_ty_1 = 137; -pub const IPPROTO_RAW: _bindgen_ty_1 = 255; -pub const IPPROTO_MAX: _bindgen_ty_1 = 256; +pub const IPPROTO_IP: ::std::os::raw::c_uint = 0; +pub const IPPROTO_ICMP: ::std::os::raw::c_uint = 1; +pub const IPPROTO_IGMP: ::std::os::raw::c_uint = 2; +pub const IPPROTO_IPIP: ::std::os::raw::c_uint = 4; +pub const IPPROTO_TCP: ::std::os::raw::c_uint = 6; +pub const IPPROTO_EGP: ::std::os::raw::c_uint = 8; +pub const IPPROTO_PUP: ::std::os::raw::c_uint = 12; +pub const IPPROTO_UDP: ::std::os::raw::c_uint = 17; +pub const IPPROTO_IDP: ::std::os::raw::c_uint = 22; +pub const IPPROTO_TP: ::std::os::raw::c_uint = 29; +pub const IPPROTO_DCCP: ::std::os::raw::c_uint = 33; +pub const IPPROTO_IPV6: ::std::os::raw::c_uint = 41; +pub const IPPROTO_RSVP: ::std::os::raw::c_uint = 46; +pub const IPPROTO_GRE: ::std::os::raw::c_uint = 47; +pub const IPPROTO_ESP: ::std::os::raw::c_uint = 50; +pub const IPPROTO_AH: ::std::os::raw::c_uint = 51; +pub const IPPROTO_MTP: ::std::os::raw::c_uint = 92; +pub const IPPROTO_BEETPH: ::std::os::raw::c_uint = 94; +pub const IPPROTO_ENCAP: ::std::os::raw::c_uint = 98; +pub const IPPROTO_PIM: ::std::os::raw::c_uint = 103; +pub const IPPROTO_COMP: ::std::os::raw::c_uint = 108; +pub const IPPROTO_SCTP: ::std::os::raw::c_uint = 132; +pub const IPPROTO_UDPLITE: ::std::os::raw::c_uint = 136; +pub const IPPROTO_MPLS: ::std::os::raw::c_uint = 137; +pub const IPPROTO_ETHERNET: ::std::os::raw::c_uint = 143; +pub const IPPROTO_RAW: ::std::os::raw::c_uint = 255; +pub const IPPROTO_MPTCP: ::std::os::raw::c_uint = 262; +pub const IPPROTO_MAX: ::std::os::raw::c_uint = 263; pub type _bindgen_ty_1 = ::std::os::raw::c_uint; #[repr(C)] -#[derive(Debug, Default, Copy)] +#[derive(Debug, Copy, Clone)] pub struct in_addr { pub s_addr: __be32, } -#[test] -fn bindgen_test_layout_in_addr() { - assert_eq!( - ::std::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(in_addr)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(in_addr)) - ); - assert_eq!( - unsafe { &(*(0 as *const in_addr)).s_addr as *const _ as usize }, - 0usize, - concat!( - "Alignment of field: ", - stringify!(in_addr), - "::", - stringify!(s_addr) - ) - ); -} -impl Clone for in_addr { - fn clone(&self) -> Self { - *self - } -} #[repr(C)] -#[derive(Debug, Default, Copy)] +#[derive(Debug, Copy, Clone)] pub struct ip_mreq { pub imr_multiaddr: in_addr, pub imr_interface: in_addr, } -#[test] -fn bindgen_test_layout_ip_mreq() { - assert_eq!( - ::std::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(ip_mreq)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(ip_mreq)) - ); - assert_eq!( - unsafe { &(*(0 as *const ip_mreq)).imr_multiaddr as *const _ as usize }, - 0usize, - concat!( - "Alignment of field: ", - stringify!(ip_mreq), - "::", - stringify!(imr_multiaddr) - ) - ); - assert_eq!( - unsafe { &(*(0 as *const ip_mreq)).imr_interface as *const _ as usize }, - 4usize, - concat!( - "Alignment of field: ", - stringify!(ip_mreq), - "::", - stringify!(imr_interface) - ) - ); -} -impl Clone for ip_mreq { - fn clone(&self) -> Self { - *self - } -} #[repr(C)] -#[derive(Debug, Default, Copy)] +#[derive(Debug, Copy, Clone)] pub struct ip_mreqn { pub imr_multiaddr: in_addr, pub imr_address: in_addr, pub imr_ifindex: ::std::os::raw::c_int, } -#[test] -fn bindgen_test_layout_ip_mreqn() { - assert_eq!( - ::std::mem::size_of::(), - 12usize, - concat!("Size of: ", stringify!(ip_mreqn)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(ip_mreqn)) - ); - assert_eq!( - unsafe { &(*(0 as *const ip_mreqn)).imr_multiaddr as *const _ as usize }, - 0usize, - concat!( - "Alignment of field: ", - stringify!(ip_mreqn), - "::", - stringify!(imr_multiaddr) - ) - ); - assert_eq!( - unsafe { &(*(0 as *const ip_mreqn)).imr_address as *const _ as usize }, - 4usize, - concat!( - "Alignment of field: ", - stringify!(ip_mreqn), - "::", - stringify!(imr_address) - ) - ); - assert_eq!( - unsafe { &(*(0 as *const ip_mreqn)).imr_ifindex as *const _ as usize }, - 8usize, - concat!( - "Alignment of field: ", - stringify!(ip_mreqn), - "::", - stringify!(imr_ifindex) - ) - ); -} -impl Clone for ip_mreqn { - fn clone(&self) -> Self { - *self - } -} #[repr(C)] -#[derive(Debug, Default, Copy)] +#[derive(Debug, Copy, Clone)] pub struct ip_mreq_source { pub imr_multiaddr: __be32, pub imr_interface: __be32, pub imr_sourceaddr: __be32, } -#[test] -fn bindgen_test_layout_ip_mreq_source() { - assert_eq!( - ::std::mem::size_of::(), - 12usize, - concat!("Size of: ", stringify!(ip_mreq_source)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(ip_mreq_source)) - ); - assert_eq!( - unsafe { &(*(0 as *const ip_mreq_source)).imr_multiaddr as *const _ as usize }, - 0usize, - concat!( - "Alignment of field: ", - stringify!(ip_mreq_source), - "::", - stringify!(imr_multiaddr) - ) - ); - assert_eq!( - unsafe { &(*(0 as *const ip_mreq_source)).imr_interface as *const _ as usize }, - 4usize, - concat!( - "Alignment of field: ", - stringify!(ip_mreq_source), - "::", - stringify!(imr_interface) - ) - ); - assert_eq!( - unsafe { &(*(0 as *const ip_mreq_source)).imr_sourceaddr as *const _ as usize }, - 8usize, - concat!( - "Alignment of field: ", - stringify!(ip_mreq_source), - "::", - stringify!(imr_sourceaddr) - ) - ); -} -impl Clone for ip_mreq_source { - fn clone(&self) -> Self { - *self - } -} #[repr(C)] -#[derive(Debug, Default, Copy)] +#[derive(Debug, Copy, Clone)] pub struct ip_msfilter { pub imsf_multiaddr: __be32, pub imsf_interface: __be32, @@ -479,172 +255,21 @@ pub struct ip_msfilter { pub imsf_numsrc: __u32, pub imsf_slist: [__be32; 1usize], } -#[test] -fn bindgen_test_layout_ip_msfilter() { - assert_eq!( - ::std::mem::size_of::(), - 20usize, - concat!("Size of: ", stringify!(ip_msfilter)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(ip_msfilter)) - ); - assert_eq!( - unsafe { &(*(0 as *const ip_msfilter)).imsf_multiaddr as *const _ as usize }, - 0usize, - concat!( - "Alignment of field: ", - stringify!(ip_msfilter), - "::", - stringify!(imsf_multiaddr) - ) - ); - assert_eq!( - unsafe { &(*(0 as *const ip_msfilter)).imsf_interface as *const _ as usize }, - 4usize, - concat!( - "Alignment of field: ", - stringify!(ip_msfilter), - "::", - stringify!(imsf_interface) - ) - ); - assert_eq!( - unsafe { &(*(0 as *const ip_msfilter)).imsf_fmode as *const _ as usize }, - 8usize, - concat!( - "Alignment of field: ", - stringify!(ip_msfilter), - "::", - stringify!(imsf_fmode) - ) - ); - assert_eq!( - unsafe { &(*(0 as *const ip_msfilter)).imsf_numsrc as *const _ as usize }, - 12usize, - concat!( - "Alignment of field: ", - stringify!(ip_msfilter), - "::", - stringify!(imsf_numsrc) - ) - ); - assert_eq!( - unsafe { &(*(0 as *const ip_msfilter)).imsf_slist as *const _ as usize }, - 16usize, - concat!( - "Alignment of field: ", - stringify!(ip_msfilter), - "::", - stringify!(imsf_slist) - ) - ); -} -impl Clone for ip_msfilter { - fn clone(&self) -> Self { - *self - } -} #[repr(C)] +#[derive(Copy, Clone)] pub struct group_req { pub gr_interface: __u32, pub gr_group: __kernel_sockaddr_storage, } -#[test] -fn bindgen_test_layout_group_req() { - assert_eq!( - ::std::mem::size_of::(), - 136usize, - concat!("Size of: ", stringify!(group_req)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(group_req)) - ); - assert_eq!( - unsafe { &(*(0 as *const group_req)).gr_interface as *const _ as usize }, - 0usize, - concat!( - "Alignment of field: ", - stringify!(group_req), - "::", - stringify!(gr_interface) - ) - ); - assert_eq!( - unsafe { &(*(0 as *const group_req)).gr_group as *const _ as usize }, - 8usize, - concat!( - "Alignment of field: ", - stringify!(group_req), - "::", - stringify!(gr_group) - ) - ); -} -impl Default for group_req { - fn default() -> Self { - unsafe { ::std::mem::zeroed() } - } -} #[repr(C)] +#[derive(Copy, Clone)] pub struct group_source_req { pub gsr_interface: __u32, pub gsr_group: __kernel_sockaddr_storage, pub gsr_source: __kernel_sockaddr_storage, } -#[test] -fn bindgen_test_layout_group_source_req() { - assert_eq!( - ::std::mem::size_of::(), - 264usize, - concat!("Size of: ", stringify!(group_source_req)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(group_source_req)) - ); - assert_eq!( - unsafe { &(*(0 as *const group_source_req)).gsr_interface as *const _ as usize }, - 0usize, - concat!( - "Alignment of field: ", - stringify!(group_source_req), - "::", - stringify!(gsr_interface) - ) - ); - assert_eq!( - unsafe { &(*(0 as *const group_source_req)).gsr_group as *const _ as usize }, - 8usize, - concat!( - "Alignment of field: ", - stringify!(group_source_req), - "::", - stringify!(gsr_group) - ) - ); - assert_eq!( - unsafe { &(*(0 as *const group_source_req)).gsr_source as *const _ as usize }, - 136usize, - concat!( - "Alignment of field: ", - stringify!(group_source_req), - "::", - stringify!(gsr_source) - ) - ); -} -impl Default for group_source_req { - fn default() -> Self { - unsafe { ::std::mem::zeroed() } - } -} #[repr(C)] +#[derive(Copy, Clone)] pub struct group_filter { pub gf_interface: __u32, pub gf_group: __kernel_sockaddr_storage, @@ -652,192 +277,18 @@ pub struct group_filter { pub gf_numsrc: __u32, pub gf_slist: [__kernel_sockaddr_storage; 1usize], } -#[test] -fn bindgen_test_layout_group_filter() { - assert_eq!( - ::std::mem::size_of::(), - 272usize, - concat!("Size of: ", stringify!(group_filter)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(group_filter)) - ); - assert_eq!( - unsafe { &(*(0 as *const group_filter)).gf_interface as *const _ as usize }, - 0usize, - concat!( - "Alignment of field: ", - stringify!(group_filter), - "::", - stringify!(gf_interface) - ) - ); - assert_eq!( - unsafe { &(*(0 as *const group_filter)).gf_group as *const _ as usize }, - 8usize, - concat!( - "Alignment of field: ", - stringify!(group_filter), - "::", - stringify!(gf_group) - ) - ); - assert_eq!( - unsafe { &(*(0 as *const group_filter)).gf_fmode as *const _ as usize }, - 136usize, - concat!( - "Alignment of field: ", - stringify!(group_filter), - "::", - stringify!(gf_fmode) - ) - ); - assert_eq!( - unsafe { &(*(0 as *const group_filter)).gf_numsrc as *const _ as usize }, - 140usize, - concat!( - "Alignment of field: ", - stringify!(group_filter), - "::", - stringify!(gf_numsrc) - ) - ); - assert_eq!( - unsafe { &(*(0 as *const group_filter)).gf_slist as *const _ as usize }, - 144usize, - concat!( - "Alignment of field: ", - stringify!(group_filter), - "::", - stringify!(gf_slist) - ) - ); -} -impl Default for group_filter { - fn default() -> Self { - unsafe { ::std::mem::zeroed() } - } -} #[repr(C)] -#[derive(Debug, Default, Copy)] +#[derive(Debug, Copy, Clone)] pub struct in_pktinfo { pub ipi_ifindex: ::std::os::raw::c_int, pub ipi_spec_dst: in_addr, pub ipi_addr: in_addr, } -#[test] -fn bindgen_test_layout_in_pktinfo() { - assert_eq!( - ::std::mem::size_of::(), - 12usize, - concat!("Size of: ", stringify!(in_pktinfo)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(in_pktinfo)) - ); - assert_eq!( - unsafe { &(*(0 as *const in_pktinfo)).ipi_ifindex as *const _ as usize }, - 0usize, - concat!( - "Alignment of field: ", - stringify!(in_pktinfo), - "::", - stringify!(ipi_ifindex) - ) - ); - assert_eq!( - unsafe { &(*(0 as *const in_pktinfo)).ipi_spec_dst as *const _ as usize }, - 4usize, - concat!( - "Alignment of field: ", - stringify!(in_pktinfo), - "::", - stringify!(ipi_spec_dst) - ) - ); - assert_eq!( - unsafe { &(*(0 as *const in_pktinfo)).ipi_addr as *const _ as usize }, - 8usize, - concat!( - "Alignment of field: ", - stringify!(in_pktinfo), - "::", - stringify!(ipi_addr) - ) - ); -} -impl Clone for in_pktinfo { - fn clone(&self) -> Self { - *self - } -} #[repr(C)] -#[derive(Debug, Default, Copy)] +#[derive(Debug, Copy, Clone)] pub struct sockaddr_in { pub sin_family: __kernel_sa_family_t, pub sin_port: __be16, pub sin_addr: in_addr, pub __pad: [::std::os::raw::c_uchar; 8usize], } -#[test] -fn bindgen_test_layout_sockaddr_in() { - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(sockaddr_in)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(sockaddr_in)) - ); - assert_eq!( - unsafe { &(*(0 as *const sockaddr_in)).sin_family as *const _ as usize }, - 0usize, - concat!( - "Alignment of field: ", - stringify!(sockaddr_in), - "::", - stringify!(sin_family) - ) - ); - assert_eq!( - unsafe { &(*(0 as *const sockaddr_in)).sin_port as *const _ as usize }, - 2usize, - concat!( - "Alignment of field: ", - stringify!(sockaddr_in), - "::", - stringify!(sin_port) - ) - ); - assert_eq!( - unsafe { &(*(0 as *const sockaddr_in)).sin_addr as *const _ as usize }, - 4usize, - concat!( - "Alignment of field: ", - stringify!(sockaddr_in), - "::", - stringify!(sin_addr) - ) - ); - assert_eq!( - unsafe { &(*(0 as *const sockaddr_in)).__pad as *const _ as usize }, - 8usize, - concat!( - "Alignment of field: ", - stringify!(sockaddr_in), - "::", - stringify!(__pad) - ) - ); -} -impl Clone for sockaddr_in { - fn clone(&self) -> Self { - *self - } -} diff --git a/net_gen/src/sockios.rs b/net_gen/src/sockios.rs index 788f22653..ad3dee7c8 100644 --- a/net_gen/src/sockios.rs +++ b/net_gen/src/sockios.rs @@ -1,89 +1,95 @@ -// Copyright 2017 The Chromium OS Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the THIRD-PARTY file. +// Copyright © 2021 Intel Corporation +// +// SPDX-License-Identifier: Apache-2.0 +// -/* automatically generated by rust-bindgen */ +// bindgen /usr/include/linux/sockios.h --no-layout-tests -pub const FIOSETOWN: ::std::os::raw::c_uint = 35073; -pub const SIOCSPGRP: ::std::os::raw::c_uint = 35074; -pub const FIOGETOWN: ::std::os::raw::c_uint = 35075; -pub const SIOCGPGRP: ::std::os::raw::c_uint = 35076; -pub const SIOCATMARK: ::std::os::raw::c_uint = 35077; -pub const SIOCGSTAMP: ::std::os::raw::c_uint = 35078; -pub const SIOCGSTAMPNS: ::std::os::raw::c_uint = 35079; -pub const SOCK_IOC_TYPE: ::std::os::raw::c_uint = 137; -pub const SIOCADDRT: ::std::os::raw::c_uint = 35083; -pub const SIOCDELRT: ::std::os::raw::c_uint = 35084; -pub const SIOCRTMSG: ::std::os::raw::c_uint = 35085; -pub const SIOCGIFNAME: ::std::os::raw::c_uint = 35088; -pub const SIOCSIFLINK: ::std::os::raw::c_uint = 35089; -pub const SIOCGIFCONF: ::std::os::raw::c_uint = 35090; -pub const SIOCGIFFLAGS: ::std::os::raw::c_uint = 35091; -pub const SIOCSIFFLAGS: ::std::os::raw::c_uint = 35092; -pub const SIOCGIFADDR: ::std::os::raw::c_uint = 35093; -pub const SIOCSIFADDR: ::std::os::raw::c_uint = 35094; -pub const SIOCGIFDSTADDR: ::std::os::raw::c_uint = 35095; -pub const SIOCSIFDSTADDR: ::std::os::raw::c_uint = 35096; -pub const SIOCGIFBRDADDR: ::std::os::raw::c_uint = 35097; -pub const SIOCSIFBRDADDR: ::std::os::raw::c_uint = 35098; -pub const SIOCGIFNETMASK: ::std::os::raw::c_uint = 35099; -pub const SIOCSIFNETMASK: ::std::os::raw::c_uint = 35100; -pub const SIOCGIFMETRIC: ::std::os::raw::c_uint = 35101; -pub const SIOCSIFMETRIC: ::std::os::raw::c_uint = 35102; -pub const SIOCGIFMEM: ::std::os::raw::c_uint = 35103; -pub const SIOCSIFMEM: ::std::os::raw::c_uint = 35104; -pub const SIOCGIFMTU: ::std::os::raw::c_uint = 35105; -pub const SIOCSIFMTU: ::std::os::raw::c_uint = 35106; -pub const SIOCSIFNAME: ::std::os::raw::c_uint = 35107; -pub const SIOCSIFHWADDR: ::std::os::raw::c_uint = 35108; -pub const SIOCGIFENCAP: ::std::os::raw::c_uint = 35109; -pub const SIOCSIFENCAP: ::std::os::raw::c_uint = 35110; -pub const SIOCGIFHWADDR: ::std::os::raw::c_uint = 35111; -pub const SIOCGIFSLAVE: ::std::os::raw::c_uint = 35113; -pub const SIOCSIFSLAVE: ::std::os::raw::c_uint = 35120; -pub const SIOCADDMULTI: ::std::os::raw::c_uint = 35121; -pub const SIOCDELMULTI: ::std::os::raw::c_uint = 35122; -pub const SIOCGIFINDEX: ::std::os::raw::c_uint = 35123; -pub const SIOGIFINDEX: ::std::os::raw::c_uint = 35123; -pub const SIOCSIFPFLAGS: ::std::os::raw::c_uint = 35124; -pub const SIOCGIFPFLAGS: ::std::os::raw::c_uint = 35125; -pub const SIOCDIFADDR: ::std::os::raw::c_uint = 35126; -pub const SIOCSIFHWBROADCAST: ::std::os::raw::c_uint = 35127; -pub const SIOCGIFCOUNT: ::std::os::raw::c_uint = 35128; -pub const SIOCGIFBR: ::std::os::raw::c_uint = 35136; -pub const SIOCSIFBR: ::std::os::raw::c_uint = 35137; -pub const SIOCGIFTXQLEN: ::std::os::raw::c_uint = 35138; -pub const SIOCSIFTXQLEN: ::std::os::raw::c_uint = 35139; -pub const SIOCETHTOOL: ::std::os::raw::c_uint = 35142; -pub const SIOCGMIIPHY: ::std::os::raw::c_uint = 35143; -pub const SIOCGMIIREG: ::std::os::raw::c_uint = 35144; -pub const SIOCSMIIREG: ::std::os::raw::c_uint = 35145; -pub const SIOCWANDEV: ::std::os::raw::c_uint = 35146; -pub const SIOCOUTQNSD: ::std::os::raw::c_uint = 35147; -pub const SIOCGSKNS: ::std::os::raw::c_uint = 35148; -pub const SIOCDARP: ::std::os::raw::c_uint = 35155; -pub const SIOCGARP: ::std::os::raw::c_uint = 35156; -pub const SIOCSARP: ::std::os::raw::c_uint = 35157; -pub const SIOCDRARP: ::std::os::raw::c_uint = 35168; -pub const SIOCGRARP: ::std::os::raw::c_uint = 35169; -pub const SIOCSRARP: ::std::os::raw::c_uint = 35170; -pub const SIOCGIFMAP: ::std::os::raw::c_uint = 35184; -pub const SIOCSIFMAP: ::std::os::raw::c_uint = 35185; -pub const SIOCADDDLCI: ::std::os::raw::c_uint = 35200; -pub const SIOCDELDLCI: ::std::os::raw::c_uint = 35201; -pub const SIOCGIFVLAN: ::std::os::raw::c_uint = 35202; -pub const SIOCSIFVLAN: ::std::os::raw::c_uint = 35203; -pub const SIOCBONDENSLAVE: ::std::os::raw::c_uint = 35216; -pub const SIOCBONDRELEASE: ::std::os::raw::c_uint = 35217; -pub const SIOCBONDSETHWADDR: ::std::os::raw::c_uint = 35218; -pub const SIOCBONDSLAVEINFOQUERY: ::std::os::raw::c_uint = 35219; -pub const SIOCBONDINFOQUERY: ::std::os::raw::c_uint = 35220; -pub const SIOCBONDCHANGEACTIVE: ::std::os::raw::c_uint = 35221; -pub const SIOCBRADDBR: ::std::os::raw::c_uint = 35232; -pub const SIOCBRDELBR: ::std::os::raw::c_uint = 35233; -pub const SIOCBRADDIF: ::std::os::raw::c_uint = 35234; -pub const SIOCBRDELIF: ::std::os::raw::c_uint = 35235; -pub const SIOCSHWTSTAMP: ::std::os::raw::c_uint = 35248; -pub const SIOCGHWTSTAMP: ::std::os::raw::c_uint = 35249; -pub const SIOCDEVPRIVATE: ::std::os::raw::c_uint = 35312; -pub const SIOCPROTOPRIVATE: ::std::os::raw::c_uint = 35296; +/* automatically generated by rust-bindgen 0.58.1 */ + +pub const __BITS_PER_LONG: u32 = 64; +pub const FIOSETOWN: u32 = 35073; +pub const SIOCSPGRP: u32 = 35074; +pub const FIOGETOWN: u32 = 35075; +pub const SIOCGPGRP: u32 = 35076; +pub const SIOCATMARK: u32 = 35077; +pub const SIOCGSTAMP_OLD: u32 = 35078; +pub const SIOCGSTAMPNS_OLD: u32 = 35079; +pub const SOCK_IOC_TYPE: u32 = 137; +pub const SIOCGSTAMP: u32 = 35078; +pub const SIOCGSTAMPNS: u32 = 35079; +pub const SIOCADDRT: u32 = 35083; +pub const SIOCDELRT: u32 = 35084; +pub const SIOCRTMSG: u32 = 35085; +pub const SIOCGIFNAME: u32 = 35088; +pub const SIOCSIFLINK: u32 = 35089; +pub const SIOCGIFCONF: u32 = 35090; +pub const SIOCGIFFLAGS: u32 = 35091; +pub const SIOCSIFFLAGS: u32 = 35092; +pub const SIOCGIFADDR: u32 = 35093; +pub const SIOCSIFADDR: u32 = 35094; +pub const SIOCGIFDSTADDR: u32 = 35095; +pub const SIOCSIFDSTADDR: u32 = 35096; +pub const SIOCGIFBRDADDR: u32 = 35097; +pub const SIOCSIFBRDADDR: u32 = 35098; +pub const SIOCGIFNETMASK: u32 = 35099; +pub const SIOCSIFNETMASK: u32 = 35100; +pub const SIOCGIFMETRIC: u32 = 35101; +pub const SIOCSIFMETRIC: u32 = 35102; +pub const SIOCGIFMEM: u32 = 35103; +pub const SIOCSIFMEM: u32 = 35104; +pub const SIOCGIFMTU: u32 = 35105; +pub const SIOCSIFMTU: u32 = 35106; +pub const SIOCSIFNAME: u32 = 35107; +pub const SIOCSIFHWADDR: u32 = 35108; +pub const SIOCGIFENCAP: u32 = 35109; +pub const SIOCSIFENCAP: u32 = 35110; +pub const SIOCGIFHWADDR: u32 = 35111; +pub const SIOCGIFSLAVE: u32 = 35113; +pub const SIOCSIFSLAVE: u32 = 35120; +pub const SIOCADDMULTI: u32 = 35121; +pub const SIOCDELMULTI: u32 = 35122; +pub const SIOCGIFINDEX: u32 = 35123; +pub const SIOGIFINDEX: u32 = 35123; +pub const SIOCSIFPFLAGS: u32 = 35124; +pub const SIOCGIFPFLAGS: u32 = 35125; +pub const SIOCDIFADDR: u32 = 35126; +pub const SIOCSIFHWBROADCAST: u32 = 35127; +pub const SIOCGIFCOUNT: u32 = 35128; +pub const SIOCGIFBR: u32 = 35136; +pub const SIOCSIFBR: u32 = 35137; +pub const SIOCGIFTXQLEN: u32 = 35138; +pub const SIOCSIFTXQLEN: u32 = 35139; +pub const SIOCETHTOOL: u32 = 35142; +pub const SIOCGMIIPHY: u32 = 35143; +pub const SIOCGMIIREG: u32 = 35144; +pub const SIOCSMIIREG: u32 = 35145; +pub const SIOCWANDEV: u32 = 35146; +pub const SIOCOUTQNSD: u32 = 35147; +pub const SIOCGSKNS: u32 = 35148; +pub const SIOCDARP: u32 = 35155; +pub const SIOCGARP: u32 = 35156; +pub const SIOCSARP: u32 = 35157; +pub const SIOCDRARP: u32 = 35168; +pub const SIOCGRARP: u32 = 35169; +pub const SIOCSRARP: u32 = 35170; +pub const SIOCGIFMAP: u32 = 35184; +pub const SIOCSIFMAP: u32 = 35185; +pub const SIOCADDDLCI: u32 = 35200; +pub const SIOCDELDLCI: u32 = 35201; +pub const SIOCGIFVLAN: u32 = 35202; +pub const SIOCSIFVLAN: u32 = 35203; +pub const SIOCBONDENSLAVE: u32 = 35216; +pub const SIOCBONDRELEASE: u32 = 35217; +pub const SIOCBONDSETHWADDR: u32 = 35218; +pub const SIOCBONDSLAVEINFOQUERY: u32 = 35219; +pub const SIOCBONDINFOQUERY: u32 = 35220; +pub const SIOCBONDCHANGEACTIVE: u32 = 35221; +pub const SIOCBRADDBR: u32 = 35232; +pub const SIOCBRDELBR: u32 = 35233; +pub const SIOCBRADDIF: u32 = 35234; +pub const SIOCBRDELIF: u32 = 35235; +pub const SIOCSHWTSTAMP: u32 = 35248; +pub const SIOCGHWTSTAMP: u32 = 35249; +pub const SIOCDEVPRIVATE: u32 = 35312; +pub const SIOCPROTOPRIVATE: u32 = 35296; diff --git a/net_util/src/tap.rs b/net_util/src/tap.rs index b074b71e4..be34cdc32 100644 --- a/net_util/src/tap.rs +++ b/net_util/src/tap.rs @@ -121,13 +121,12 @@ impl Tap { let mut ifreq: net_gen::ifreq = Default::default(); unsafe { let ifrn_name = ifreq.ifr_ifrn.ifrn_name.as_mut(); - let ifru_flags = ifreq.ifr_ifru.ifru_flags.as_mut(); let name_slice = &mut ifrn_name[..terminated_if_name.len()]; name_slice.copy_from_slice(terminated_if_name.as_slice()); - *ifru_flags = + ifreq.ifr_ifru.ifru_flags = (net_gen::IFF_TAP | net_gen::IFF_NO_PI | net_gen::IFF_VNET_HDR) as c_short; if num_queue_pairs > 1 { - *ifru_flags |= net_gen::IFF_MULTI_QUEUE as c_short; + ifreq.ifr_ifru.ifru_flags |= net_gen::IFF_MULTI_QUEUE as c_short; } } @@ -138,8 +137,7 @@ impl Tap { return Err(Error::ConfigureTap(IoError::last_os_error())); } - let if_name_temp = unsafe { *ifreq.ifr_ifrn.ifrn_name.as_ref() }; - let mut if_name = if_name_temp.to_vec(); + let mut if_name = unsafe { ifreq.ifr_ifrn.ifrn_name }.to_vec(); if_name.truncate(terminated_if_name.len() - 1); // Safe since only the name is accessed, and it's cloned out. Ok(Tap { @@ -173,16 +171,16 @@ impl Tap { if ret < 0 { return Err(Error::IoctlError(IoError::last_os_error())); } - let if_name = unsafe { *ifreq.ifr_ifrn.ifrn_name.as_ref() }.to_vec(); + // We only access one field of the ifru union, hence this is safe. + let if_name = unsafe { ifreq.ifr_ifrn.ifrn_name }.to_vec(); // Try and update flags. Depending on how the tap was created (macvtap // or via open_named()) this might return -EEXIST so we just ignore that. unsafe { - let ifru_flags = ifreq.ifr_ifru.ifru_flags.as_mut(); - *ifru_flags = + ifreq.ifr_ifru.ifru_flags = (net_gen::IFF_TAP | net_gen::IFF_NO_PI | net_gen::IFF_VNET_HDR) as c_short; if num_queue_pairs > 1 { - *ifru_flags |= net_gen::IFF_MULTI_QUEUE as c_short; + ifreq.ifr_ifru.ifru_flags |= net_gen::IFF_MULTI_QUEUE as c_short; } } let ret = unsafe { ioctl_with_mut_ref(&tap_file, net_gen::TUNSETIFF(), &mut ifreq) }; @@ -204,11 +202,7 @@ impl Tap { let mut ifreq = self.get_ifreq(); - // We only access one field of the ifru union, hence this is safe. - unsafe { - let ifru_addr = ifreq.ifr_ifru.ifru_addr.as_mut(); - *ifru_addr = addr; - } + ifreq.ifr_ifru.ifru_addr = addr; // ioctl is safe. Called with a valid sock fd, and we check the return. #[allow(clippy::cast_lossless)] @@ -245,9 +239,9 @@ impl Tap { } // We only access one field of the ifru union, hence this is safe. unsafe { - let ifru_hwaddr = ifreq.ifr_ifru.ifru_hwaddr.as_mut(); + let ifru_hwaddr = &mut ifreq.ifr_ifru.ifru_hwaddr; for (i, v) in addr.get_bytes().iter().enumerate() { - ifru_hwaddr.sa_data[i] = *v as c_char; + ifru_hwaddr.sa_data[i] = *v as c_uchar; } } @@ -278,11 +272,8 @@ impl Tap { // We only access one field of the ifru union, hence this is safe. let addr = unsafe { - let ifru_hwaddr = ifreq.ifr_ifru.ifru_hwaddr.as_ref(); - MacAddr::from_bytes( - &*(&ifru_hwaddr.sa_data[0..MAC_ADDR_LEN] as *const _ as *const [u8]), - ) - .map_err(Error::MacParsing)? + MacAddr::from_bytes(&ifreq.ifr_ifru.ifru_hwaddr.sa_data[0..MAC_ADDR_LEN]) + .map_err(Error::MacParsing)? }; Ok(addr) } @@ -294,11 +285,7 @@ impl Tap { let mut ifreq = self.get_ifreq(); - // We only access one field of the ifru union, hence this is safe. - unsafe { - let ifru_addr = ifreq.ifr_ifru.ifru_addr.as_mut(); - *ifru_addr = addr; - } + ifreq.ifr_ifru.ifru_addr = addr; // ioctl is safe. Called with a valid sock fd, and we check the return. #[allow(clippy::cast_lossless)] @@ -338,7 +325,7 @@ impl Tap { } // If TAP device is already up don't try and enable it - let ifru_flags = unsafe { ifreq.ifr_ifru.ifru_flags.as_ref() }; + let ifru_flags = unsafe { ifreq.ifr_ifru.ifru_flags }; if ifru_flags & (net_gen::net_device_flags_IFF_UP | net_gen::net_device_flags_IFF_RUNNING) as i16 == (net_gen::net_device_flags_IFF_UP | net_gen::net_device_flags_IFF_RUNNING) as i16 @@ -346,13 +333,8 @@ impl Tap { return Ok(()); } - // We only access one field of the ifru union, hence this is safe. - unsafe { - let ifru_flags = ifreq.ifr_ifru.ifru_flags.as_mut(); - - *ifru_flags = - (net_gen::net_device_flags_IFF_UP | net_gen::net_device_flags_IFF_RUNNING) as i16; - } + ifreq.ifr_ifru.ifru_flags = + (net_gen::net_device_flags_IFF_UP | net_gen::net_device_flags_IFF_RUNNING) as i16; // ioctl is safe. Called with a valid sock fd, and we check the return. #[allow(clippy::cast_lossless)] @@ -631,18 +613,6 @@ mod tests { assert!(ret.is_ok()); } - #[test] - fn test_tap_get_ifreq() { - let _tap_ip_guard = TAP_IP_LOCK.lock().unwrap(); - - let tap = Tap::new(1).unwrap(); - let ret = tap.get_ifreq(); - assert_eq!( - "__BindgenUnionField", - format!("{:?}", ret.ifr_ifrn.ifrn_name) - ); - } - #[test] fn test_raw_fd() { let _tap_ip_guard = TAP_IP_LOCK.lock().unwrap();