/* automatically generated by rust-bindgen 0.59.1 */ #![allow(non_upper_case_globals)] #![allow(non_camel_case_types)] #![allow(non_snake_case)] #![allow(dead_code)] pub const __BITS_PER_LONG: u32 = 64; pub const __FD_SETSIZE: u32 = 1024; pub const _K_SS_MAXSIZE: u32 = 128; pub const NETLINK_ROUTE: u32 = 0; pub const NETLINK_UNUSED: u32 = 1; pub const NETLINK_USERSOCK: u32 = 2; pub const NETLINK_FIREWALL: u32 = 3; pub const NETLINK_SOCK_DIAG: u32 = 4; pub const NETLINK_NFLOG: u32 = 5; pub const NETLINK_XFRM: u32 = 6; pub const NETLINK_SELINUX: u32 = 7; pub const NETLINK_ISCSI: u32 = 8; pub const NETLINK_AUDIT: u32 = 9; pub const NETLINK_FIB_LOOKUP: u32 = 10; pub const NETLINK_CONNECTOR: u32 = 11; pub const NETLINK_NETFILTER: u32 = 12; pub const NETLINK_IP6_FW: u32 = 13; pub const NETLINK_DNRTMSG: u32 = 14; pub const NETLINK_KOBJECT_UEVENT: u32 = 15; pub const NETLINK_GENERIC: u32 = 16; pub const NETLINK_SCSITRANSPORT: u32 = 18; pub const NETLINK_ECRYPTFS: u32 = 19; pub const NETLINK_RDMA: u32 = 20; pub const NETLINK_CRYPTO: u32 = 21; pub const NETLINK_SMC: u32 = 22; pub const NETLINK_INET_DIAG: u32 = 4; pub const MAX_LINKS: u32 = 32; pub const NLM_F_REQUEST: u32 = 1; pub const NLM_F_MULTI: u32 = 2; pub const NLM_F_ACK: u32 = 4; pub const NLM_F_ECHO: u32 = 8; pub const NLM_F_DUMP_INTR: u32 = 16; pub const NLM_F_DUMP_FILTERED: u32 = 32; pub const NLM_F_ROOT: u32 = 256; pub const NLM_F_MATCH: u32 = 512; pub const NLM_F_ATOMIC: u32 = 1024; pub const NLM_F_DUMP: u32 = 768; pub const NLM_F_REPLACE: u32 = 256; pub const NLM_F_EXCL: u32 = 512; pub const NLM_F_CREATE: u32 = 1024; pub const NLM_F_APPEND: u32 = 2048; pub const NLM_F_NONREC: u32 = 256; pub const NLM_F_CAPPED: u32 = 256; pub const NLM_F_ACK_TLVS: u32 = 512; pub const NLMSG_ALIGNTO: u32 = 4; pub const NLMSG_NOOP: u32 = 1; pub const NLMSG_ERROR: u32 = 2; pub const NLMSG_DONE: u32 = 3; pub const NLMSG_OVERRUN: u32 = 4; pub const NLMSG_MIN_TYPE: u32 = 16; pub const NETLINK_ADD_MEMBERSHIP: u32 = 1; pub const NETLINK_DROP_MEMBERSHIP: u32 = 2; pub const NETLINK_PKTINFO: u32 = 3; pub const NETLINK_BROADCAST_ERROR: u32 = 4; pub const NETLINK_NO_ENOBUFS: u32 = 5; pub const NETLINK_RX_RING: u32 = 6; pub const NETLINK_TX_RING: u32 = 7; pub const NETLINK_LISTEN_ALL_NSID: u32 = 8; pub const NETLINK_LIST_MEMBERSHIPS: u32 = 9; pub const NETLINK_CAP_ACK: u32 = 10; pub const NETLINK_EXT_ACK: u32 = 11; pub const NL_MMAP_MSG_ALIGNMENT: u32 = 4; pub const NET_MAJOR: u32 = 36; pub const NLA_F_NESTED: u32 = 32768; pub const NLA_F_NET_BYTEORDER: u32 = 16384; pub const NLA_TYPE_MASK: i32 = -49153; pub const NLA_ALIGNTO: u32 = 4; pub const GENL_NAMSIZ: u32 = 16; pub const GENL_MIN_ID: u32 = 16; pub const GENL_MAX_ID: u32 = 1023; pub const GENL_ADMIN_PERM: u32 = 1; pub const GENL_CMD_CAP_DO: u32 = 2; pub const GENL_CMD_CAP_DUMP: u32 = 4; pub const GENL_CMD_CAP_HASPOL: u32 = 8; pub const GENL_UNS_ADMIN_PERM: u32 = 16; pub const GENL_ID_CTRL: u32 = 16; pub const GENL_ID_VFS_DQUOT: u32 = 17; pub const GENL_ID_PMCRAID: u32 = 18; pub const GENL_START_ALLOC: u32 = 19; pub type __s8 = ::std::os::raw::c_schar; pub type __u8 = ::std::os::raw::c_uchar; pub type __s16 = ::std::os::raw::c_short; pub type __u16 = ::std::os::raw::c_ushort; pub type __s32 = ::std::os::raw::c_int; 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, 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 { &(*(::std::ptr::null::<__kernel_fd_set>())).fds_bits as *const _ as usize }, 0usize, concat!( "Offset of field: ", stringify!(__kernel_fd_set), "::", stringify!(fds_bits) ) ); } pub type __kernel_sighandler_t = ::std::option::Option; pub type __kernel_key_t = ::std::os::raw::c_int; pub type __kernel_mqd_t = ::std::os::raw::c_int; pub type __kernel_old_uid_t = ::std::os::raw::c_ushort; pub type __kernel_old_gid_t = ::std::os::raw::c_ushort; pub type __kernel_old_dev_t = ::std::os::raw::c_ulong; pub type __kernel_long_t = ::std::os::raw::c_long; pub type __kernel_ulong_t = ::std::os::raw::c_ulong; pub type __kernel_ino_t = __kernel_ulong_t; pub type __kernel_mode_t = ::std::os::raw::c_uint; pub type __kernel_pid_t = ::std::os::raw::c_int; pub type __kernel_ipc_pid_t = ::std::os::raw::c_int; pub type __kernel_uid_t = ::std::os::raw::c_uint; pub type __kernel_gid_t = ::std::os::raw::c_uint; pub type __kernel_suseconds_t = __kernel_long_t; pub type __kernel_daddr_t = ::std::os::raw::c_int; pub type __kernel_uid32_t = ::std::os::raw::c_uint; pub type __kernel_gid32_t = ::std::os::raw::c_uint; 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, 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 { &(*(::std::ptr::null::<__kernel_fsid_t>())).val as *const _ as usize }, 0usize, concat!( "Offset of field: ", stringify!(__kernel_fsid_t), "::", stringify!(val) ) ); } pub type __kernel_off_t = __kernel_long_t; pub type __kernel_loff_t = ::std::os::raw::c_longlong; pub type __kernel_time_t = __kernel_long_t; 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; pub type __kernel_caddr_t = *mut ::std::os::raw::c_char; pub type __kernel_uid16_t = ::std::os::raw::c_ushort; pub type __kernel_gid16_t = ::std::os::raw::c_ushort; pub type __le16 = __u16; pub type __be16 = __u16; pub type __le32 = __u32; pub type __be32 = __u32; 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)] #[repr(align(8))] #[derive(Debug, Copy, Clone)] pub struct __kernel_sockaddr_storage { pub ss_family: __kernel_sa_family_t, pub __data: [::std::os::raw::c_char; 126usize], } #[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 { &(*(::std::ptr::null::<__kernel_sockaddr_storage>())).ss_family as *const _ as usize }, 0usize, concat!( "Offset of field: ", stringify!(__kernel_sockaddr_storage), "::", stringify!(ss_family) ) ); assert_eq!( unsafe { &(*(::std::ptr::null::<__kernel_sockaddr_storage>())).__data as *const _ as usize }, 2usize, concat!( "Offset of field: ", stringify!(__kernel_sockaddr_storage), "::", stringify!(__data) ) ); } #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct sockaddr_nl { pub nl_family: __kernel_sa_family_t, pub nl_pad: ::std::os::raw::c_ushort, pub nl_pid: __u32, pub nl_groups: __u32, } #[test] fn bindgen_test_layout_sockaddr_nl() { assert_eq!( ::std::mem::size_of::(), 12usize, concat!("Size of: ", stringify!(sockaddr_nl)) ); assert_eq!( ::std::mem::align_of::(), 4usize, concat!("Alignment of ", stringify!(sockaddr_nl)) ); assert_eq!( unsafe { &(*(::std::ptr::null::())).nl_family as *const _ as usize }, 0usize, concat!( "Offset of field: ", stringify!(sockaddr_nl), "::", stringify!(nl_family) ) ); assert_eq!( unsafe { &(*(::std::ptr::null::())).nl_pad as *const _ as usize }, 2usize, concat!( "Offset of field: ", stringify!(sockaddr_nl), "::", stringify!(nl_pad) ) ); assert_eq!( unsafe { &(*(::std::ptr::null::())).nl_pid as *const _ as usize }, 4usize, concat!( "Offset of field: ", stringify!(sockaddr_nl), "::", stringify!(nl_pid) ) ); assert_eq!( unsafe { &(*(::std::ptr::null::())).nl_groups as *const _ as usize }, 8usize, concat!( "Offset of field: ", stringify!(sockaddr_nl), "::", stringify!(nl_groups) ) ); } #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct nlmsghdr { pub nlmsg_len: __u32, pub nlmsg_type: __u16, pub nlmsg_flags: __u16, pub nlmsg_seq: __u32, pub nlmsg_pid: __u32, } #[test] fn bindgen_test_layout_nlmsghdr() { assert_eq!( ::std::mem::size_of::(), 16usize, concat!("Size of: ", stringify!(nlmsghdr)) ); assert_eq!( ::std::mem::align_of::(), 4usize, concat!("Alignment of ", stringify!(nlmsghdr)) ); assert_eq!( unsafe { &(*(::std::ptr::null::())).nlmsg_len as *const _ as usize }, 0usize, concat!( "Offset of field: ", stringify!(nlmsghdr), "::", stringify!(nlmsg_len) ) ); assert_eq!( unsafe { &(*(::std::ptr::null::())).nlmsg_type as *const _ as usize }, 4usize, concat!( "Offset of field: ", stringify!(nlmsghdr), "::", stringify!(nlmsg_type) ) ); assert_eq!( unsafe { &(*(::std::ptr::null::())).nlmsg_flags as *const _ as usize }, 6usize, concat!( "Offset of field: ", stringify!(nlmsghdr), "::", stringify!(nlmsg_flags) ) ); assert_eq!( unsafe { &(*(::std::ptr::null::())).nlmsg_seq as *const _ as usize }, 8usize, concat!( "Offset of field: ", stringify!(nlmsghdr), "::", stringify!(nlmsg_seq) ) ); assert_eq!( unsafe { &(*(::std::ptr::null::())).nlmsg_pid as *const _ as usize }, 12usize, concat!( "Offset of field: ", stringify!(nlmsghdr), "::", stringify!(nlmsg_pid) ) ); } #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct nlmsgerr { pub error: ::std::os::raw::c_int, pub msg: nlmsghdr, } #[test] fn bindgen_test_layout_nlmsgerr() { assert_eq!( ::std::mem::size_of::(), 20usize, concat!("Size of: ", stringify!(nlmsgerr)) ); assert_eq!( ::std::mem::align_of::(), 4usize, concat!("Alignment of ", stringify!(nlmsgerr)) ); assert_eq!( unsafe { &(*(::std::ptr::null::())).error as *const _ as usize }, 0usize, concat!( "Offset of field: ", stringify!(nlmsgerr), "::", stringify!(error) ) ); assert_eq!( unsafe { &(*(::std::ptr::null::())).msg as *const _ as usize }, 4usize, concat!( "Offset of field: ", stringify!(nlmsgerr), "::", stringify!(msg) ) ); } pub const nlmsgerr_attrs_NLMSGERR_ATTR_UNUSED: nlmsgerr_attrs = 0; pub const nlmsgerr_attrs_NLMSGERR_ATTR_MSG: nlmsgerr_attrs = 1; pub const nlmsgerr_attrs_NLMSGERR_ATTR_OFFS: nlmsgerr_attrs = 2; pub const nlmsgerr_attrs_NLMSGERR_ATTR_COOKIE: nlmsgerr_attrs = 3; pub const nlmsgerr_attrs___NLMSGERR_ATTR_MAX: nlmsgerr_attrs = 4; pub const nlmsgerr_attrs_NLMSGERR_ATTR_MAX: nlmsgerr_attrs = 3; pub type nlmsgerr_attrs = ::std::os::raw::c_uint; #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct nl_pktinfo { pub group: __u32, } #[test] fn bindgen_test_layout_nl_pktinfo() { assert_eq!( ::std::mem::size_of::(), 4usize, concat!("Size of: ", stringify!(nl_pktinfo)) ); assert_eq!( ::std::mem::align_of::(), 4usize, concat!("Alignment of ", stringify!(nl_pktinfo)) ); assert_eq!( unsafe { &(*(::std::ptr::null::())).group as *const _ as usize }, 0usize, concat!( "Offset of field: ", stringify!(nl_pktinfo), "::", stringify!(group) ) ); } #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct nl_mmap_req { pub nm_block_size: ::std::os::raw::c_uint, pub nm_block_nr: ::std::os::raw::c_uint, pub nm_frame_size: ::std::os::raw::c_uint, pub nm_frame_nr: ::std::os::raw::c_uint, } #[test] fn bindgen_test_layout_nl_mmap_req() { assert_eq!( ::std::mem::size_of::(), 16usize, concat!("Size of: ", stringify!(nl_mmap_req)) ); assert_eq!( ::std::mem::align_of::(), 4usize, concat!("Alignment of ", stringify!(nl_mmap_req)) ); assert_eq!( unsafe { &(*(::std::ptr::null::())).nm_block_size as *const _ as usize }, 0usize, concat!( "Offset of field: ", stringify!(nl_mmap_req), "::", stringify!(nm_block_size) ) ); assert_eq!( unsafe { &(*(::std::ptr::null::())).nm_block_nr as *const _ as usize }, 4usize, concat!( "Offset of field: ", stringify!(nl_mmap_req), "::", stringify!(nm_block_nr) ) ); assert_eq!( unsafe { &(*(::std::ptr::null::())).nm_frame_size as *const _ as usize }, 8usize, concat!( "Offset of field: ", stringify!(nl_mmap_req), "::", stringify!(nm_frame_size) ) ); assert_eq!( unsafe { &(*(::std::ptr::null::())).nm_frame_nr as *const _ as usize }, 12usize, concat!( "Offset of field: ", stringify!(nl_mmap_req), "::", stringify!(nm_frame_nr) ) ); } #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct nl_mmap_hdr { pub nm_status: ::std::os::raw::c_uint, pub nm_len: ::std::os::raw::c_uint, pub nm_group: __u32, pub nm_pid: __u32, pub nm_uid: __u32, pub nm_gid: __u32, } #[test] fn bindgen_test_layout_nl_mmap_hdr() { assert_eq!( ::std::mem::size_of::(), 24usize, concat!("Size of: ", stringify!(nl_mmap_hdr)) ); assert_eq!( ::std::mem::align_of::(), 4usize, concat!("Alignment of ", stringify!(nl_mmap_hdr)) ); assert_eq!( unsafe { &(*(::std::ptr::null::())).nm_status as *const _ as usize }, 0usize, concat!( "Offset of field: ", stringify!(nl_mmap_hdr), "::", stringify!(nm_status) ) ); assert_eq!( unsafe { &(*(::std::ptr::null::())).nm_len as *const _ as usize }, 4usize, concat!( "Offset of field: ", stringify!(nl_mmap_hdr), "::", stringify!(nm_len) ) ); assert_eq!( unsafe { &(*(::std::ptr::null::())).nm_group as *const _ as usize }, 8usize, concat!( "Offset of field: ", stringify!(nl_mmap_hdr), "::", stringify!(nm_group) ) ); assert_eq!( unsafe { &(*(::std::ptr::null::())).nm_pid as *const _ as usize }, 12usize, concat!( "Offset of field: ", stringify!(nl_mmap_hdr), "::", stringify!(nm_pid) ) ); assert_eq!( unsafe { &(*(::std::ptr::null::())).nm_uid as *const _ as usize }, 16usize, concat!( "Offset of field: ", stringify!(nl_mmap_hdr), "::", stringify!(nm_uid) ) ); assert_eq!( unsafe { &(*(::std::ptr::null::())).nm_gid as *const _ as usize }, 20usize, concat!( "Offset of field: ", stringify!(nl_mmap_hdr), "::", stringify!(nm_gid) ) ); } pub const nl_mmap_status_NL_MMAP_STATUS_UNUSED: nl_mmap_status = 0; pub const nl_mmap_status_NL_MMAP_STATUS_RESERVED: nl_mmap_status = 1; pub const nl_mmap_status_NL_MMAP_STATUS_VALID: nl_mmap_status = 2; pub const nl_mmap_status_NL_MMAP_STATUS_COPY: nl_mmap_status = 3; pub const nl_mmap_status_NL_MMAP_STATUS_SKIP: nl_mmap_status = 4; pub type nl_mmap_status = ::std::os::raw::c_uint; pub const NETLINK_UNCONNECTED: ::std::os::raw::c_uint = 0; pub const NETLINK_CONNECTED: ::std::os::raw::c_uint = 1; pub type _bindgen_ty_1 = ::std::os::raw::c_uint; #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct nlattr { pub nla_len: __u16, pub nla_type: __u16, } #[test] fn bindgen_test_layout_nlattr() { assert_eq!( ::std::mem::size_of::(), 4usize, concat!("Size of: ", stringify!(nlattr)) ); assert_eq!( ::std::mem::align_of::(), 2usize, concat!("Alignment of ", stringify!(nlattr)) ); assert_eq!( unsafe { &(*(::std::ptr::null::())).nla_len as *const _ as usize }, 0usize, concat!( "Offset of field: ", stringify!(nlattr), "::", stringify!(nla_len) ) ); assert_eq!( unsafe { &(*(::std::ptr::null::())).nla_type as *const _ as usize }, 2usize, concat!( "Offset of field: ", stringify!(nlattr), "::", stringify!(nla_type) ) ); } #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct nla_bitfield32 { pub value: __u32, pub selector: __u32, } #[test] fn bindgen_test_layout_nla_bitfield32() { assert_eq!( ::std::mem::size_of::(), 8usize, concat!("Size of: ", stringify!(nla_bitfield32)) ); assert_eq!( ::std::mem::align_of::(), 4usize, concat!("Alignment of ", stringify!(nla_bitfield32)) ); assert_eq!( unsafe { &(*(::std::ptr::null::())).value as *const _ as usize }, 0usize, concat!( "Offset of field: ", stringify!(nla_bitfield32), "::", stringify!(value) ) ); assert_eq!( unsafe { &(*(::std::ptr::null::())).selector as *const _ as usize }, 4usize, concat!( "Offset of field: ", stringify!(nla_bitfield32), "::", stringify!(selector) ) ); } #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct genlmsghdr { pub cmd: __u8, pub version: __u8, pub reserved: __u16, } #[test] fn bindgen_test_layout_genlmsghdr() { assert_eq!( ::std::mem::size_of::(), 4usize, concat!("Size of: ", stringify!(genlmsghdr)) ); assert_eq!( ::std::mem::align_of::(), 2usize, concat!("Alignment of ", stringify!(genlmsghdr)) ); assert_eq!( unsafe { &(*(::std::ptr::null::())).cmd as *const _ as usize }, 0usize, concat!( "Offset of field: ", stringify!(genlmsghdr), "::", stringify!(cmd) ) ); assert_eq!( unsafe { &(*(::std::ptr::null::())).version as *const _ as usize }, 1usize, concat!( "Offset of field: ", stringify!(genlmsghdr), "::", stringify!(version) ) ); assert_eq!( unsafe { &(*(::std::ptr::null::())).reserved as *const _ as usize }, 2usize, concat!( "Offset of field: ", stringify!(genlmsghdr), "::", stringify!(reserved) ) ); } pub const CTRL_CMD_UNSPEC: ::std::os::raw::c_uint = 0; pub const CTRL_CMD_NEWFAMILY: ::std::os::raw::c_uint = 1; pub const CTRL_CMD_DELFAMILY: ::std::os::raw::c_uint = 2; pub const CTRL_CMD_GETFAMILY: ::std::os::raw::c_uint = 3; pub const CTRL_CMD_NEWOPS: ::std::os::raw::c_uint = 4; pub const CTRL_CMD_DELOPS: ::std::os::raw::c_uint = 5; pub const CTRL_CMD_GETOPS: ::std::os::raw::c_uint = 6; pub const CTRL_CMD_NEWMCAST_GRP: ::std::os::raw::c_uint = 7; pub const CTRL_CMD_DELMCAST_GRP: ::std::os::raw::c_uint = 8; pub const CTRL_CMD_GETMCAST_GRP: ::std::os::raw::c_uint = 9; pub const __CTRL_CMD_MAX: ::std::os::raw::c_uint = 10; pub type _bindgen_ty_2 = ::std::os::raw::c_uint; pub const CTRL_ATTR_UNSPEC: ::std::os::raw::c_uint = 0; pub const CTRL_ATTR_FAMILY_ID: ::std::os::raw::c_uint = 1; pub const CTRL_ATTR_FAMILY_NAME: ::std::os::raw::c_uint = 2; pub const CTRL_ATTR_VERSION: ::std::os::raw::c_uint = 3; pub const CTRL_ATTR_HDRSIZE: ::std::os::raw::c_uint = 4; pub const CTRL_ATTR_MAXATTR: ::std::os::raw::c_uint = 5; pub const CTRL_ATTR_OPS: ::std::os::raw::c_uint = 6; pub const CTRL_ATTR_MCAST_GROUPS: ::std::os::raw::c_uint = 7; pub const __CTRL_ATTR_MAX: ::std::os::raw::c_uint = 8; pub type _bindgen_ty_3 = ::std::os::raw::c_uint; pub const CTRL_ATTR_OP_UNSPEC: ::std::os::raw::c_uint = 0; pub const CTRL_ATTR_OP_ID: ::std::os::raw::c_uint = 1; pub const CTRL_ATTR_OP_FLAGS: ::std::os::raw::c_uint = 2; pub const __CTRL_ATTR_OP_MAX: ::std::os::raw::c_uint = 3; pub type _bindgen_ty_4 = ::std::os::raw::c_uint; pub const CTRL_ATTR_MCAST_GRP_UNSPEC: ::std::os::raw::c_uint = 0; pub const CTRL_ATTR_MCAST_GRP_NAME: ::std::os::raw::c_uint = 1; pub const CTRL_ATTR_MCAST_GRP_ID: ::std::os::raw::c_uint = 2; pub const __CTRL_ATTR_MCAST_GRP_MAX: ::std::os::raw::c_uint = 3; pub type _bindgen_ty_5 = ::std::os::raw::c_uint;