/* automatically generated by rust-bindgen 0.70.1 */ #[repr(C)] #[derive(Default)] pub struct __IncompleteArrayField(::std::marker::PhantomData, [T; 0]); impl __IncompleteArrayField { #[inline] pub const fn new() -> Self { __IncompleteArrayField(::std::marker::PhantomData, []) } #[inline] pub fn as_ptr(&self) -> *const T { self as *const _ as *const T } #[inline] 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] { ::std::slice::from_raw_parts(self.as_ptr(), len) } #[inline] pub unsafe fn as_mut_slice(&mut self, len: usize) -> &mut [T] { ::std::slice::from_raw_parts_mut(self.as_mut_ptr(), len) } } impl ::std::fmt::Debug for __IncompleteArrayField { fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result { fmt.write_str("__IncompleteArrayField") } } pub const VIRTIO_NET_F_CSUM: u32 = 0; pub const VIRTIO_NET_F_GUEST_CSUM: u32 = 1; pub const VIRTIO_NET_F_CTRL_GUEST_OFFLOADS: u32 = 2; pub const VIRTIO_NET_F_MTU: u32 = 3; pub const VIRTIO_NET_F_MAC: u32 = 5; pub const VIRTIO_NET_F_GUEST_TSO4: u32 = 7; pub const VIRTIO_NET_F_GUEST_TSO6: u32 = 8; pub const VIRTIO_NET_F_GUEST_ECN: u32 = 9; pub const VIRTIO_NET_F_GUEST_UFO: u32 = 10; pub const VIRTIO_NET_F_HOST_TSO4: u32 = 11; pub const VIRTIO_NET_F_HOST_TSO6: u32 = 12; pub const VIRTIO_NET_F_HOST_ECN: u32 = 13; pub const VIRTIO_NET_F_HOST_UFO: u32 = 14; pub const VIRTIO_NET_F_MRG_RXBUF: u32 = 15; pub const VIRTIO_NET_F_STATUS: u32 = 16; pub const VIRTIO_NET_F_CTRL_VQ: u32 = 17; pub const VIRTIO_NET_F_CTRL_RX: u32 = 18; pub const VIRTIO_NET_F_CTRL_VLAN: u32 = 19; pub const VIRTIO_NET_F_CTRL_RX_EXTRA: u32 = 20; pub const VIRTIO_NET_F_GUEST_ANNOUNCE: u32 = 21; pub const VIRTIO_NET_F_MQ: u32 = 22; pub const VIRTIO_NET_F_CTRL_MAC_ADDR: u32 = 23; pub const VIRTIO_NET_F_DEVICE_STATS: u32 = 50; pub const VIRTIO_NET_F_VQ_NOTF_COAL: u32 = 52; pub const VIRTIO_NET_F_NOTF_COAL: u32 = 53; pub const VIRTIO_NET_F_GUEST_USO4: u32 = 54; pub const VIRTIO_NET_F_GUEST_USO6: u32 = 55; pub const VIRTIO_NET_F_HOST_USO: u32 = 56; pub const VIRTIO_NET_F_HASH_REPORT: u32 = 57; pub const VIRTIO_NET_F_GUEST_HDRLEN: u32 = 59; pub const VIRTIO_NET_F_RSS: u32 = 60; pub const VIRTIO_NET_F_RSC_EXT: u32 = 61; pub const VIRTIO_NET_F_STANDBY: u32 = 62; pub const VIRTIO_NET_F_SPEED_DUPLEX: u32 = 63; pub const VIRTIO_NET_F_GSO: u32 = 6; pub const VIRTIO_NET_S_LINK_UP: u32 = 1; pub const VIRTIO_NET_S_ANNOUNCE: u32 = 2; pub const VIRTIO_NET_RSS_HASH_TYPE_IPv4: u32 = 1; pub const VIRTIO_NET_RSS_HASH_TYPE_TCPv4: u32 = 2; pub const VIRTIO_NET_RSS_HASH_TYPE_UDPv4: u32 = 4; pub const VIRTIO_NET_RSS_HASH_TYPE_IPv6: u32 = 8; pub const VIRTIO_NET_RSS_HASH_TYPE_TCPv6: u32 = 16; pub const VIRTIO_NET_RSS_HASH_TYPE_UDPv6: u32 = 32; pub const VIRTIO_NET_RSS_HASH_TYPE_IP_EX: u32 = 64; pub const VIRTIO_NET_RSS_HASH_TYPE_TCP_EX: u32 = 128; pub const VIRTIO_NET_RSS_HASH_TYPE_UDP_EX: u32 = 256; pub const VIRTIO_NET_HDR_F_NEEDS_CSUM: u32 = 1; pub const VIRTIO_NET_HDR_F_DATA_VALID: u32 = 2; pub const VIRTIO_NET_HDR_F_RSC_INFO: u32 = 4; pub const VIRTIO_NET_HDR_GSO_NONE: u32 = 0; pub const VIRTIO_NET_HDR_GSO_TCPV4: u32 = 1; pub const VIRTIO_NET_HDR_GSO_UDP: u32 = 3; pub const VIRTIO_NET_HDR_GSO_TCPV6: u32 = 4; pub const VIRTIO_NET_HDR_GSO_UDP_L4: u32 = 5; pub const VIRTIO_NET_HDR_GSO_ECN: u32 = 128; pub const VIRTIO_NET_HASH_REPORT_NONE: u32 = 0; pub const VIRTIO_NET_HASH_REPORT_IPv4: u32 = 1; pub const VIRTIO_NET_HASH_REPORT_TCPv4: u32 = 2; pub const VIRTIO_NET_HASH_REPORT_UDPv4: u32 = 3; pub const VIRTIO_NET_HASH_REPORT_IPv6: u32 = 4; pub const VIRTIO_NET_HASH_REPORT_TCPv6: u32 = 5; pub const VIRTIO_NET_HASH_REPORT_UDPv6: u32 = 6; pub const VIRTIO_NET_HASH_REPORT_IPv6_EX: u32 = 7; pub const VIRTIO_NET_HASH_REPORT_TCPv6_EX: u32 = 8; pub const VIRTIO_NET_HASH_REPORT_UDPv6_EX: u32 = 9; pub const VIRTIO_NET_OK: u32 = 0; pub const VIRTIO_NET_ERR: u32 = 1; pub const VIRTIO_NET_CTRL_RX: u32 = 0; pub const VIRTIO_NET_CTRL_RX_PROMISC: u32 = 0; pub const VIRTIO_NET_CTRL_RX_ALLMULTI: u32 = 1; pub const VIRTIO_NET_CTRL_RX_ALLUNI: u32 = 2; pub const VIRTIO_NET_CTRL_RX_NOMULTI: u32 = 3; pub const VIRTIO_NET_CTRL_RX_NOUNI: u32 = 4; pub const VIRTIO_NET_CTRL_RX_NOBCAST: u32 = 5; pub const VIRTIO_NET_CTRL_MAC: u32 = 1; pub const VIRTIO_NET_CTRL_MAC_TABLE_SET: u32 = 0; pub const VIRTIO_NET_CTRL_MAC_ADDR_SET: u32 = 1; pub const VIRTIO_NET_CTRL_VLAN: u32 = 2; pub const VIRTIO_NET_CTRL_VLAN_ADD: u32 = 0; pub const VIRTIO_NET_CTRL_VLAN_DEL: u32 = 1; pub const VIRTIO_NET_CTRL_ANNOUNCE: u32 = 3; pub const VIRTIO_NET_CTRL_ANNOUNCE_ACK: u32 = 0; pub const VIRTIO_NET_CTRL_MQ: u32 = 4; pub const VIRTIO_NET_CTRL_MQ_VQ_PAIRS_SET: u32 = 0; pub const VIRTIO_NET_CTRL_MQ_VQ_PAIRS_MIN: u32 = 1; pub const VIRTIO_NET_CTRL_MQ_VQ_PAIRS_MAX: u32 = 32768; pub const VIRTIO_NET_CTRL_MQ_RSS_CONFIG: u32 = 1; pub const VIRTIO_NET_CTRL_MQ_HASH_CONFIG: u32 = 2; pub const VIRTIO_NET_CTRL_GUEST_OFFLOADS: u32 = 5; pub const VIRTIO_NET_CTRL_GUEST_OFFLOADS_SET: u32 = 0; pub const VIRTIO_NET_CTRL_NOTF_COAL: u32 = 6; pub const VIRTIO_NET_CTRL_NOTF_COAL_TX_SET: u32 = 0; pub const VIRTIO_NET_CTRL_NOTF_COAL_RX_SET: u32 = 1; pub const VIRTIO_NET_CTRL_NOTF_COAL_VQ_SET: u32 = 2; pub const VIRTIO_NET_CTRL_NOTF_COAL_VQ_GET: u32 = 3; pub const VIRTIO_NET_CTRL_STATS: u32 = 8; pub const VIRTIO_NET_CTRL_STATS_QUERY: u32 = 0; pub const VIRTIO_NET_CTRL_STATS_GET: u32 = 1; pub const VIRTIO_NET_STATS_TYPE_CVQ: u64 = 4294967296; pub const VIRTIO_NET_STATS_TYPE_RX_BASIC: u32 = 1; pub const VIRTIO_NET_STATS_TYPE_RX_CSUM: u32 = 2; pub const VIRTIO_NET_STATS_TYPE_RX_GSO: u32 = 4; pub const VIRTIO_NET_STATS_TYPE_RX_SPEED: u32 = 8; pub const VIRTIO_NET_STATS_TYPE_TX_BASIC: u32 = 65536; pub const VIRTIO_NET_STATS_TYPE_TX_CSUM: u32 = 131072; pub const VIRTIO_NET_STATS_TYPE_TX_GSO: u32 = 262144; pub const VIRTIO_NET_STATS_TYPE_TX_SPEED: u32 = 524288; pub const VIRTIO_NET_STATS_TYPE_REPLY_CVQ: u32 = 32; pub const VIRTIO_NET_STATS_TYPE_REPLY_RX_BASIC: u32 = 0; pub const VIRTIO_NET_STATS_TYPE_REPLY_RX_CSUM: u32 = 1; pub const VIRTIO_NET_STATS_TYPE_REPLY_RX_GSO: u32 = 2; pub const VIRTIO_NET_STATS_TYPE_REPLY_RX_SPEED: u32 = 3; pub const VIRTIO_NET_STATS_TYPE_REPLY_TX_BASIC: u32 = 16; pub const VIRTIO_NET_STATS_TYPE_REPLY_TX_CSUM: u32 = 17; pub const VIRTIO_NET_STATS_TYPE_REPLY_TX_GSO: u32 = 18; pub const VIRTIO_NET_STATS_TYPE_REPLY_TX_SPEED: u32 = 19; pub type __u8 = ::std::os::raw::c_uchar; pub type __u16 = ::std::os::raw::c_ushort; pub type __u32 = ::std::os::raw::c_uint; pub type __u64 = ::std::os::raw::c_ulonglong; pub type __le16 = __u16; pub type __le32 = __u32; pub type __le64 = __u64; pub type __virtio16 = __u16; pub type __virtio32 = __u32; #[repr(C, packed)] #[derive(Debug, Default, Copy, Clone, PartialEq)] pub struct virtio_net_config { pub mac: [__u8; 6usize], pub status: __virtio16, pub max_virtqueue_pairs: __virtio16, pub mtu: __virtio16, pub speed: __le32, pub duplex: __u8, pub rss_max_key_size: __u8, pub rss_max_indirection_table_length: __le16, pub supported_hash_types: __le32, } #[allow(clippy::unnecessary_operation, clippy::identity_op)] const _: () = { ["Size of virtio_net_config"][::std::mem::size_of::() - 24usize]; ["Alignment of virtio_net_config"][::std::mem::align_of::() - 1usize]; ["Offset of field: virtio_net_config::mac"] [::std::mem::offset_of!(virtio_net_config, mac) - 0usize]; ["Offset of field: virtio_net_config::status"] [::std::mem::offset_of!(virtio_net_config, status) - 6usize]; ["Offset of field: virtio_net_config::max_virtqueue_pairs"] [::std::mem::offset_of!(virtio_net_config, max_virtqueue_pairs) - 8usize]; ["Offset of field: virtio_net_config::mtu"] [::std::mem::offset_of!(virtio_net_config, mtu) - 10usize]; ["Offset of field: virtio_net_config::speed"] [::std::mem::offset_of!(virtio_net_config, speed) - 12usize]; ["Offset of field: virtio_net_config::duplex"] [::std::mem::offset_of!(virtio_net_config, duplex) - 16usize]; ["Offset of field: virtio_net_config::rss_max_key_size"] [::std::mem::offset_of!(virtio_net_config, rss_max_key_size) - 17usize]; ["Offset of field: virtio_net_config::rss_max_indirection_table_length"] [::std::mem::offset_of!(virtio_net_config, rss_max_indirection_table_length) - 18usize]; ["Offset of field: virtio_net_config::supported_hash_types"] [::std::mem::offset_of!(virtio_net_config, supported_hash_types) - 20usize]; }; #[repr(C)] #[derive(Copy, Clone)] pub struct virtio_net_hdr_v1 { pub flags: __u8, pub gso_type: __u8, pub hdr_len: __virtio16, pub gso_size: __virtio16, pub __bindgen_anon_1: virtio_net_hdr_v1__bindgen_ty_1, pub num_buffers: __virtio16, } #[repr(C)] #[derive(Copy, Clone)] pub union virtio_net_hdr_v1__bindgen_ty_1 { pub __bindgen_anon_1: virtio_net_hdr_v1__bindgen_ty_1__bindgen_ty_1, pub csum: virtio_net_hdr_v1__bindgen_ty_1__bindgen_ty_2, pub rsc: virtio_net_hdr_v1__bindgen_ty_1__bindgen_ty_3, } #[repr(C)] #[derive(Debug, Default, Copy, Clone, PartialEq)] pub struct virtio_net_hdr_v1__bindgen_ty_1__bindgen_ty_1 { pub csum_start: __virtio16, pub csum_offset: __virtio16, } #[allow(clippy::unnecessary_operation, clippy::identity_op)] const _: () = { ["Size of virtio_net_hdr_v1__bindgen_ty_1__bindgen_ty_1"] [::std::mem::size_of::() - 4usize]; ["Alignment of virtio_net_hdr_v1__bindgen_ty_1__bindgen_ty_1"] [::std::mem::align_of::() - 2usize]; ["Offset of field: virtio_net_hdr_v1__bindgen_ty_1__bindgen_ty_1::csum_start"][::std::mem::offset_of!( virtio_net_hdr_v1__bindgen_ty_1__bindgen_ty_1, csum_start ) - 0usize]; ["Offset of field: virtio_net_hdr_v1__bindgen_ty_1__bindgen_ty_1::csum_offset"][::std::mem::offset_of!( virtio_net_hdr_v1__bindgen_ty_1__bindgen_ty_1, csum_offset ) - 2usize]; }; #[repr(C)] #[derive(Debug, Default, Copy, Clone, PartialEq)] pub struct virtio_net_hdr_v1__bindgen_ty_1__bindgen_ty_2 { pub start: __virtio16, pub offset: __virtio16, } #[allow(clippy::unnecessary_operation, clippy::identity_op)] const _: () = { ["Size of virtio_net_hdr_v1__bindgen_ty_1__bindgen_ty_2"] [::std::mem::size_of::() - 4usize]; ["Alignment of virtio_net_hdr_v1__bindgen_ty_1__bindgen_ty_2"] [::std::mem::align_of::() - 2usize]; ["Offset of field: virtio_net_hdr_v1__bindgen_ty_1__bindgen_ty_2::start"] [::std::mem::offset_of!(virtio_net_hdr_v1__bindgen_ty_1__bindgen_ty_2, start) - 0usize]; ["Offset of field: virtio_net_hdr_v1__bindgen_ty_1__bindgen_ty_2::offset"] [::std::mem::offset_of!(virtio_net_hdr_v1__bindgen_ty_1__bindgen_ty_2, offset) - 2usize]; }; #[repr(C)] #[derive(Debug, Default, Copy, Clone, PartialEq)] pub struct virtio_net_hdr_v1__bindgen_ty_1__bindgen_ty_3 { pub segments: __le16, pub dup_acks: __le16, } #[allow(clippy::unnecessary_operation, clippy::identity_op)] const _: () = { ["Size of virtio_net_hdr_v1__bindgen_ty_1__bindgen_ty_3"] [::std::mem::size_of::() - 4usize]; ["Alignment of virtio_net_hdr_v1__bindgen_ty_1__bindgen_ty_3"] [::std::mem::align_of::() - 2usize]; ["Offset of field: virtio_net_hdr_v1__bindgen_ty_1__bindgen_ty_3::segments"] [::std::mem::offset_of!(virtio_net_hdr_v1__bindgen_ty_1__bindgen_ty_3, segments) - 0usize]; ["Offset of field: virtio_net_hdr_v1__bindgen_ty_1__bindgen_ty_3::dup_acks"] [::std::mem::offset_of!(virtio_net_hdr_v1__bindgen_ty_1__bindgen_ty_3, dup_acks) - 2usize]; }; #[allow(clippy::unnecessary_operation, clippy::identity_op)] const _: () = { ["Size of virtio_net_hdr_v1__bindgen_ty_1"] [::std::mem::size_of::() - 4usize]; ["Alignment of virtio_net_hdr_v1__bindgen_ty_1"] [::std::mem::align_of::() - 2usize]; ["Offset of field: virtio_net_hdr_v1__bindgen_ty_1::csum"] [::std::mem::offset_of!(virtio_net_hdr_v1__bindgen_ty_1, csum) - 0usize]; ["Offset of field: virtio_net_hdr_v1__bindgen_ty_1::rsc"] [::std::mem::offset_of!(virtio_net_hdr_v1__bindgen_ty_1, rsc) - 0usize]; }; impl Default for virtio_net_hdr_v1__bindgen_ty_1 { fn default() -> Self { let mut s = ::std::mem::MaybeUninit::::uninit(); unsafe { ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); s.assume_init() } } } #[allow(clippy::unnecessary_operation, clippy::identity_op)] const _: () = { ["Size of virtio_net_hdr_v1"][::std::mem::size_of::() - 12usize]; ["Alignment of virtio_net_hdr_v1"][::std::mem::align_of::() - 2usize]; ["Offset of field: virtio_net_hdr_v1::flags"] [::std::mem::offset_of!(virtio_net_hdr_v1, flags) - 0usize]; ["Offset of field: virtio_net_hdr_v1::gso_type"] [::std::mem::offset_of!(virtio_net_hdr_v1, gso_type) - 1usize]; ["Offset of field: virtio_net_hdr_v1::hdr_len"] [::std::mem::offset_of!(virtio_net_hdr_v1, hdr_len) - 2usize]; ["Offset of field: virtio_net_hdr_v1::gso_size"] [::std::mem::offset_of!(virtio_net_hdr_v1, gso_size) - 4usize]; ["Offset of field: virtio_net_hdr_v1::num_buffers"] [::std::mem::offset_of!(virtio_net_hdr_v1, num_buffers) - 10usize]; }; impl Default for virtio_net_hdr_v1 { fn default() -> Self { let mut s = ::std::mem::MaybeUninit::::uninit(); unsafe { ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); s.assume_init() } } } #[repr(C)] #[derive(Copy, Clone)] pub struct virtio_net_hdr_v1_hash { pub hdr: virtio_net_hdr_v1, pub hash_value: __le32, pub hash_report: __le16, pub padding: __le16, } #[allow(clippy::unnecessary_operation, clippy::identity_op)] const _: () = { ["Size of virtio_net_hdr_v1_hash"][::std::mem::size_of::() - 20usize]; ["Alignment of virtio_net_hdr_v1_hash"] [::std::mem::align_of::() - 4usize]; ["Offset of field: virtio_net_hdr_v1_hash::hdr"] [::std::mem::offset_of!(virtio_net_hdr_v1_hash, hdr) - 0usize]; ["Offset of field: virtio_net_hdr_v1_hash::hash_value"] [::std::mem::offset_of!(virtio_net_hdr_v1_hash, hash_value) - 12usize]; ["Offset of field: virtio_net_hdr_v1_hash::hash_report"] [::std::mem::offset_of!(virtio_net_hdr_v1_hash, hash_report) - 16usize]; ["Offset of field: virtio_net_hdr_v1_hash::padding"] [::std::mem::offset_of!(virtio_net_hdr_v1_hash, padding) - 18usize]; }; impl Default for virtio_net_hdr_v1_hash { fn default() -> Self { let mut s = ::std::mem::MaybeUninit::::uninit(); unsafe { ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); s.assume_init() } } } #[repr(C)] #[derive(Debug, Default, Copy, Clone, PartialEq)] pub struct virtio_net_hdr { pub flags: __u8, pub gso_type: __u8, pub hdr_len: __virtio16, pub gso_size: __virtio16, pub csum_start: __virtio16, pub csum_offset: __virtio16, } #[allow(clippy::unnecessary_operation, clippy::identity_op)] const _: () = { ["Size of virtio_net_hdr"][::std::mem::size_of::() - 10usize]; ["Alignment of virtio_net_hdr"][::std::mem::align_of::() - 2usize]; ["Offset of field: virtio_net_hdr::flags"] [::std::mem::offset_of!(virtio_net_hdr, flags) - 0usize]; ["Offset of field: virtio_net_hdr::gso_type"] [::std::mem::offset_of!(virtio_net_hdr, gso_type) - 1usize]; ["Offset of field: virtio_net_hdr::hdr_len"] [::std::mem::offset_of!(virtio_net_hdr, hdr_len) - 2usize]; ["Offset of field: virtio_net_hdr::gso_size"] [::std::mem::offset_of!(virtio_net_hdr, gso_size) - 4usize]; ["Offset of field: virtio_net_hdr::csum_start"] [::std::mem::offset_of!(virtio_net_hdr, csum_start) - 6usize]; ["Offset of field: virtio_net_hdr::csum_offset"] [::std::mem::offset_of!(virtio_net_hdr, csum_offset) - 8usize]; }; #[repr(C)] #[derive(Debug, Default, Copy, Clone, PartialEq)] pub struct virtio_net_hdr_mrg_rxbuf { pub hdr: virtio_net_hdr, pub num_buffers: __virtio16, } #[allow(clippy::unnecessary_operation, clippy::identity_op)] const _: () = { ["Size of virtio_net_hdr_mrg_rxbuf"] [::std::mem::size_of::() - 12usize]; ["Alignment of virtio_net_hdr_mrg_rxbuf"] [::std::mem::align_of::() - 2usize]; ["Offset of field: virtio_net_hdr_mrg_rxbuf::hdr"] [::std::mem::offset_of!(virtio_net_hdr_mrg_rxbuf, hdr) - 0usize]; ["Offset of field: virtio_net_hdr_mrg_rxbuf::num_buffers"] [::std::mem::offset_of!(virtio_net_hdr_mrg_rxbuf, num_buffers) - 10usize]; }; #[repr(C, packed)] #[derive(Debug, Default, Copy, Clone, PartialEq)] pub struct virtio_net_ctrl_hdr { pub class: __u8, pub cmd: __u8, } #[allow(clippy::unnecessary_operation, clippy::identity_op)] const _: () = { ["Size of virtio_net_ctrl_hdr"][::std::mem::size_of::() - 2usize]; ["Alignment of virtio_net_ctrl_hdr"][::std::mem::align_of::() - 1usize]; ["Offset of field: virtio_net_ctrl_hdr::class"] [::std::mem::offset_of!(virtio_net_ctrl_hdr, class) - 0usize]; ["Offset of field: virtio_net_ctrl_hdr::cmd"] [::std::mem::offset_of!(virtio_net_ctrl_hdr, cmd) - 1usize]; }; pub type virtio_net_ctrl_ack = __u8; #[repr(C, packed)] pub struct virtio_net_ctrl_mac { pub entries: __virtio32, pub macs: __IncompleteArrayField<[__u8; 6usize]>, } #[allow(clippy::unnecessary_operation, clippy::identity_op)] const _: () = { ["Size of virtio_net_ctrl_mac"][::std::mem::size_of::() - 4usize]; ["Alignment of virtio_net_ctrl_mac"][::std::mem::align_of::() - 1usize]; ["Offset of field: virtio_net_ctrl_mac::entries"] [::std::mem::offset_of!(virtio_net_ctrl_mac, entries) - 0usize]; ["Offset of field: virtio_net_ctrl_mac::macs"] [::std::mem::offset_of!(virtio_net_ctrl_mac, macs) - 4usize]; }; impl Default for virtio_net_ctrl_mac { fn default() -> Self { let mut s = ::std::mem::MaybeUninit::::uninit(); unsafe { ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); s.assume_init() } } } #[repr(C)] #[derive(Debug, Default, Copy, Clone, PartialEq)] pub struct virtio_net_ctrl_mq { pub virtqueue_pairs: __virtio16, } #[allow(clippy::unnecessary_operation, clippy::identity_op)] const _: () = { ["Size of virtio_net_ctrl_mq"][::std::mem::size_of::() - 2usize]; ["Alignment of virtio_net_ctrl_mq"][::std::mem::align_of::() - 2usize]; ["Offset of field: virtio_net_ctrl_mq::virtqueue_pairs"] [::std::mem::offset_of!(virtio_net_ctrl_mq, virtqueue_pairs) - 0usize]; }; #[repr(C)] #[derive(Debug, Default)] pub struct virtio_net_rss_config { pub hash_types: __le32, pub indirection_table_mask: __le16, pub unclassified_queue: __le16, pub indirection_table: [__le16; 1usize], pub max_tx_vq: __le16, pub hash_key_length: __u8, pub hash_key_data: __IncompleteArrayField<__u8>, } #[allow(clippy::unnecessary_operation, clippy::identity_op)] const _: () = { ["Size of virtio_net_rss_config"][::std::mem::size_of::() - 16usize]; ["Alignment of virtio_net_rss_config"] [::std::mem::align_of::() - 4usize]; ["Offset of field: virtio_net_rss_config::hash_types"] [::std::mem::offset_of!(virtio_net_rss_config, hash_types) - 0usize]; ["Offset of field: virtio_net_rss_config::indirection_table_mask"] [::std::mem::offset_of!(virtio_net_rss_config, indirection_table_mask) - 4usize]; ["Offset of field: virtio_net_rss_config::unclassified_queue"] [::std::mem::offset_of!(virtio_net_rss_config, unclassified_queue) - 6usize]; ["Offset of field: virtio_net_rss_config::indirection_table"] [::std::mem::offset_of!(virtio_net_rss_config, indirection_table) - 8usize]; ["Offset of field: virtio_net_rss_config::max_tx_vq"] [::std::mem::offset_of!(virtio_net_rss_config, max_tx_vq) - 10usize]; ["Offset of field: virtio_net_rss_config::hash_key_length"] [::std::mem::offset_of!(virtio_net_rss_config, hash_key_length) - 12usize]; ["Offset of field: virtio_net_rss_config::hash_key_data"] [::std::mem::offset_of!(virtio_net_rss_config, hash_key_data) - 13usize]; }; #[repr(C)] #[derive(Debug, Default)] pub struct virtio_net_hash_config { pub hash_types: __le32, pub reserved: [__le16; 4usize], pub hash_key_length: __u8, pub hash_key_data: __IncompleteArrayField<__u8>, } #[allow(clippy::unnecessary_operation, clippy::identity_op)] const _: () = { ["Size of virtio_net_hash_config"][::std::mem::size_of::() - 16usize]; ["Alignment of virtio_net_hash_config"] [::std::mem::align_of::() - 4usize]; ["Offset of field: virtio_net_hash_config::hash_types"] [::std::mem::offset_of!(virtio_net_hash_config, hash_types) - 0usize]; ["Offset of field: virtio_net_hash_config::reserved"] [::std::mem::offset_of!(virtio_net_hash_config, reserved) - 4usize]; ["Offset of field: virtio_net_hash_config::hash_key_length"] [::std::mem::offset_of!(virtio_net_hash_config, hash_key_length) - 12usize]; ["Offset of field: virtio_net_hash_config::hash_key_data"] [::std::mem::offset_of!(virtio_net_hash_config, hash_key_data) - 13usize]; }; #[repr(C)] #[derive(Debug, Default, Copy, Clone, PartialEq)] pub struct virtio_net_ctrl_coal_tx { pub tx_max_packets: __le32, pub tx_usecs: __le32, } #[allow(clippy::unnecessary_operation, clippy::identity_op)] const _: () = { ["Size of virtio_net_ctrl_coal_tx"][::std::mem::size_of::() - 8usize]; ["Alignment of virtio_net_ctrl_coal_tx"] [::std::mem::align_of::() - 4usize]; ["Offset of field: virtio_net_ctrl_coal_tx::tx_max_packets"] [::std::mem::offset_of!(virtio_net_ctrl_coal_tx, tx_max_packets) - 0usize]; ["Offset of field: virtio_net_ctrl_coal_tx::tx_usecs"] [::std::mem::offset_of!(virtio_net_ctrl_coal_tx, tx_usecs) - 4usize]; }; #[repr(C)] #[derive(Debug, Default, Copy, Clone, PartialEq)] pub struct virtio_net_ctrl_coal_rx { pub rx_max_packets: __le32, pub rx_usecs: __le32, } #[allow(clippy::unnecessary_operation, clippy::identity_op)] const _: () = { ["Size of virtio_net_ctrl_coal_rx"][::std::mem::size_of::() - 8usize]; ["Alignment of virtio_net_ctrl_coal_rx"] [::std::mem::align_of::() - 4usize]; ["Offset of field: virtio_net_ctrl_coal_rx::rx_max_packets"] [::std::mem::offset_of!(virtio_net_ctrl_coal_rx, rx_max_packets) - 0usize]; ["Offset of field: virtio_net_ctrl_coal_rx::rx_usecs"] [::std::mem::offset_of!(virtio_net_ctrl_coal_rx, rx_usecs) - 4usize]; }; #[repr(C)] #[derive(Debug, Default, Copy, Clone, PartialEq)] pub struct virtio_net_ctrl_coal { pub max_packets: __le32, pub max_usecs: __le32, } #[allow(clippy::unnecessary_operation, clippy::identity_op)] const _: () = { ["Size of virtio_net_ctrl_coal"][::std::mem::size_of::() - 8usize]; ["Alignment of virtio_net_ctrl_coal"][::std::mem::align_of::() - 4usize]; ["Offset of field: virtio_net_ctrl_coal::max_packets"] [::std::mem::offset_of!(virtio_net_ctrl_coal, max_packets) - 0usize]; ["Offset of field: virtio_net_ctrl_coal::max_usecs"] [::std::mem::offset_of!(virtio_net_ctrl_coal, max_usecs) - 4usize]; }; #[repr(C)] #[derive(Debug, Default, Copy, Clone, PartialEq)] pub struct virtio_net_ctrl_coal_vq { pub vqn: __le16, pub reserved: __le16, pub coal: virtio_net_ctrl_coal, } #[allow(clippy::unnecessary_operation, clippy::identity_op)] const _: () = { ["Size of virtio_net_ctrl_coal_vq"][::std::mem::size_of::() - 12usize]; ["Alignment of virtio_net_ctrl_coal_vq"] [::std::mem::align_of::() - 4usize]; ["Offset of field: virtio_net_ctrl_coal_vq::vqn"] [::std::mem::offset_of!(virtio_net_ctrl_coal_vq, vqn) - 0usize]; ["Offset of field: virtio_net_ctrl_coal_vq::reserved"] [::std::mem::offset_of!(virtio_net_ctrl_coal_vq, reserved) - 2usize]; ["Offset of field: virtio_net_ctrl_coal_vq::coal"] [::std::mem::offset_of!(virtio_net_ctrl_coal_vq, coal) - 4usize]; }; #[repr(C)] #[derive(Debug, Default, Copy, Clone, PartialEq)] pub struct virtio_net_stats_capabilities { pub supported_stats_types: [__le64; 1usize], } #[allow(clippy::unnecessary_operation, clippy::identity_op)] const _: () = { ["Size of virtio_net_stats_capabilities"] [::std::mem::size_of::() - 8usize]; ["Alignment of virtio_net_stats_capabilities"] [::std::mem::align_of::() - 8usize]; ["Offset of field: virtio_net_stats_capabilities::supported_stats_types"] [::std::mem::offset_of!(virtio_net_stats_capabilities, supported_stats_types) - 0usize]; }; #[repr(C)] #[derive(Debug, Default, Copy, Clone, PartialEq)] pub struct virtio_net_ctrl_queue_stats { pub stats: [virtio_net_ctrl_queue_stats__bindgen_ty_1; 1usize], } #[repr(C)] #[derive(Debug, Default, Copy, Clone, PartialEq)] pub struct virtio_net_ctrl_queue_stats__bindgen_ty_1 { pub vq_index: __le16, pub reserved: [__le16; 3usize], pub types_bitmap: [__le64; 1usize], } #[allow(clippy::unnecessary_operation, clippy::identity_op)] const _: () = { ["Size of virtio_net_ctrl_queue_stats__bindgen_ty_1"] [::std::mem::size_of::() - 16usize]; ["Alignment of virtio_net_ctrl_queue_stats__bindgen_ty_1"] [::std::mem::align_of::() - 8usize]; ["Offset of field: virtio_net_ctrl_queue_stats__bindgen_ty_1::vq_index"] [::std::mem::offset_of!(virtio_net_ctrl_queue_stats__bindgen_ty_1, vq_index) - 0usize]; ["Offset of field: virtio_net_ctrl_queue_stats__bindgen_ty_1::reserved"] [::std::mem::offset_of!(virtio_net_ctrl_queue_stats__bindgen_ty_1, reserved) - 2usize]; ["Offset of field: virtio_net_ctrl_queue_stats__bindgen_ty_1::types_bitmap"] [::std::mem::offset_of!(virtio_net_ctrl_queue_stats__bindgen_ty_1, types_bitmap) - 8usize]; }; #[allow(clippy::unnecessary_operation, clippy::identity_op)] const _: () = { ["Size of virtio_net_ctrl_queue_stats"] [::std::mem::size_of::() - 16usize]; ["Alignment of virtio_net_ctrl_queue_stats"] [::std::mem::align_of::() - 8usize]; ["Offset of field: virtio_net_ctrl_queue_stats::stats"] [::std::mem::offset_of!(virtio_net_ctrl_queue_stats, stats) - 0usize]; }; #[repr(C)] #[derive(Debug, Default, Copy, Clone, PartialEq)] pub struct virtio_net_stats_reply_hdr { pub type_: __u8, pub reserved: __u8, pub vq_index: __le16, pub reserved1: __le16, pub size: __le16, } #[allow(clippy::unnecessary_operation, clippy::identity_op)] const _: () = { ["Size of virtio_net_stats_reply_hdr"] [::std::mem::size_of::() - 8usize]; ["Alignment of virtio_net_stats_reply_hdr"] [::std::mem::align_of::() - 2usize]; ["Offset of field: virtio_net_stats_reply_hdr::type_"] [::std::mem::offset_of!(virtio_net_stats_reply_hdr, type_) - 0usize]; ["Offset of field: virtio_net_stats_reply_hdr::reserved"] [::std::mem::offset_of!(virtio_net_stats_reply_hdr, reserved) - 1usize]; ["Offset of field: virtio_net_stats_reply_hdr::vq_index"] [::std::mem::offset_of!(virtio_net_stats_reply_hdr, vq_index) - 2usize]; ["Offset of field: virtio_net_stats_reply_hdr::reserved1"] [::std::mem::offset_of!(virtio_net_stats_reply_hdr, reserved1) - 4usize]; ["Offset of field: virtio_net_stats_reply_hdr::size"] [::std::mem::offset_of!(virtio_net_stats_reply_hdr, size) - 6usize]; }; #[repr(C)] #[derive(Debug, Default, Copy, Clone, PartialEq)] pub struct virtio_net_stats_cvq { pub hdr: virtio_net_stats_reply_hdr, pub command_num: __le64, pub ok_num: __le64, } #[allow(clippy::unnecessary_operation, clippy::identity_op)] const _: () = { ["Size of virtio_net_stats_cvq"][::std::mem::size_of::() - 24usize]; ["Alignment of virtio_net_stats_cvq"][::std::mem::align_of::() - 8usize]; ["Offset of field: virtio_net_stats_cvq::hdr"] [::std::mem::offset_of!(virtio_net_stats_cvq, hdr) - 0usize]; ["Offset of field: virtio_net_stats_cvq::command_num"] [::std::mem::offset_of!(virtio_net_stats_cvq, command_num) - 8usize]; ["Offset of field: virtio_net_stats_cvq::ok_num"] [::std::mem::offset_of!(virtio_net_stats_cvq, ok_num) - 16usize]; }; #[repr(C)] #[derive(Debug, Default, Copy, Clone, PartialEq)] pub struct virtio_net_stats_rx_basic { pub hdr: virtio_net_stats_reply_hdr, pub rx_notifications: __le64, pub rx_packets: __le64, pub rx_bytes: __le64, pub rx_interrupts: __le64, pub rx_drops: __le64, pub rx_drop_overruns: __le64, } #[allow(clippy::unnecessary_operation, clippy::identity_op)] const _: () = { ["Size of virtio_net_stats_rx_basic"] [::std::mem::size_of::() - 56usize]; ["Alignment of virtio_net_stats_rx_basic"] [::std::mem::align_of::() - 8usize]; ["Offset of field: virtio_net_stats_rx_basic::hdr"] [::std::mem::offset_of!(virtio_net_stats_rx_basic, hdr) - 0usize]; ["Offset of field: virtio_net_stats_rx_basic::rx_notifications"] [::std::mem::offset_of!(virtio_net_stats_rx_basic, rx_notifications) - 8usize]; ["Offset of field: virtio_net_stats_rx_basic::rx_packets"] [::std::mem::offset_of!(virtio_net_stats_rx_basic, rx_packets) - 16usize]; ["Offset of field: virtio_net_stats_rx_basic::rx_bytes"] [::std::mem::offset_of!(virtio_net_stats_rx_basic, rx_bytes) - 24usize]; ["Offset of field: virtio_net_stats_rx_basic::rx_interrupts"] [::std::mem::offset_of!(virtio_net_stats_rx_basic, rx_interrupts) - 32usize]; ["Offset of field: virtio_net_stats_rx_basic::rx_drops"] [::std::mem::offset_of!(virtio_net_stats_rx_basic, rx_drops) - 40usize]; ["Offset of field: virtio_net_stats_rx_basic::rx_drop_overruns"] [::std::mem::offset_of!(virtio_net_stats_rx_basic, rx_drop_overruns) - 48usize]; }; #[repr(C)] #[derive(Debug, Default, Copy, Clone, PartialEq)] pub struct virtio_net_stats_tx_basic { pub hdr: virtio_net_stats_reply_hdr, pub tx_notifications: __le64, pub tx_packets: __le64, pub tx_bytes: __le64, pub tx_interrupts: __le64, pub tx_drops: __le64, pub tx_drop_malformed: __le64, } #[allow(clippy::unnecessary_operation, clippy::identity_op)] const _: () = { ["Size of virtio_net_stats_tx_basic"] [::std::mem::size_of::() - 56usize]; ["Alignment of virtio_net_stats_tx_basic"] [::std::mem::align_of::() - 8usize]; ["Offset of field: virtio_net_stats_tx_basic::hdr"] [::std::mem::offset_of!(virtio_net_stats_tx_basic, hdr) - 0usize]; ["Offset of field: virtio_net_stats_tx_basic::tx_notifications"] [::std::mem::offset_of!(virtio_net_stats_tx_basic, tx_notifications) - 8usize]; ["Offset of field: virtio_net_stats_tx_basic::tx_packets"] [::std::mem::offset_of!(virtio_net_stats_tx_basic, tx_packets) - 16usize]; ["Offset of field: virtio_net_stats_tx_basic::tx_bytes"] [::std::mem::offset_of!(virtio_net_stats_tx_basic, tx_bytes) - 24usize]; ["Offset of field: virtio_net_stats_tx_basic::tx_interrupts"] [::std::mem::offset_of!(virtio_net_stats_tx_basic, tx_interrupts) - 32usize]; ["Offset of field: virtio_net_stats_tx_basic::tx_drops"] [::std::mem::offset_of!(virtio_net_stats_tx_basic, tx_drops) - 40usize]; ["Offset of field: virtio_net_stats_tx_basic::tx_drop_malformed"] [::std::mem::offset_of!(virtio_net_stats_tx_basic, tx_drop_malformed) - 48usize]; }; #[repr(C)] #[derive(Debug, Default, Copy, Clone, PartialEq)] pub struct virtio_net_stats_rx_csum { pub hdr: virtio_net_stats_reply_hdr, pub rx_csum_valid: __le64, pub rx_needs_csum: __le64, pub rx_csum_none: __le64, pub rx_csum_bad: __le64, } #[allow(clippy::unnecessary_operation, clippy::identity_op)] const _: () = { ["Size of virtio_net_stats_rx_csum"] [::std::mem::size_of::() - 40usize]; ["Alignment of virtio_net_stats_rx_csum"] [::std::mem::align_of::() - 8usize]; ["Offset of field: virtio_net_stats_rx_csum::hdr"] [::std::mem::offset_of!(virtio_net_stats_rx_csum, hdr) - 0usize]; ["Offset of field: virtio_net_stats_rx_csum::rx_csum_valid"] [::std::mem::offset_of!(virtio_net_stats_rx_csum, rx_csum_valid) - 8usize]; ["Offset of field: virtio_net_stats_rx_csum::rx_needs_csum"] [::std::mem::offset_of!(virtio_net_stats_rx_csum, rx_needs_csum) - 16usize]; ["Offset of field: virtio_net_stats_rx_csum::rx_csum_none"] [::std::mem::offset_of!(virtio_net_stats_rx_csum, rx_csum_none) - 24usize]; ["Offset of field: virtio_net_stats_rx_csum::rx_csum_bad"] [::std::mem::offset_of!(virtio_net_stats_rx_csum, rx_csum_bad) - 32usize]; }; #[repr(C)] #[derive(Debug, Default, Copy, Clone, PartialEq)] pub struct virtio_net_stats_tx_csum { pub hdr: virtio_net_stats_reply_hdr, pub tx_csum_none: __le64, pub tx_needs_csum: __le64, } #[allow(clippy::unnecessary_operation, clippy::identity_op)] const _: () = { ["Size of virtio_net_stats_tx_csum"] [::std::mem::size_of::() - 24usize]; ["Alignment of virtio_net_stats_tx_csum"] [::std::mem::align_of::() - 8usize]; ["Offset of field: virtio_net_stats_tx_csum::hdr"] [::std::mem::offset_of!(virtio_net_stats_tx_csum, hdr) - 0usize]; ["Offset of field: virtio_net_stats_tx_csum::tx_csum_none"] [::std::mem::offset_of!(virtio_net_stats_tx_csum, tx_csum_none) - 8usize]; ["Offset of field: virtio_net_stats_tx_csum::tx_needs_csum"] [::std::mem::offset_of!(virtio_net_stats_tx_csum, tx_needs_csum) - 16usize]; }; #[repr(C)] #[derive(Debug, Default, Copy, Clone, PartialEq)] pub struct virtio_net_stats_rx_gso { pub hdr: virtio_net_stats_reply_hdr, pub rx_gso_packets: __le64, pub rx_gso_bytes: __le64, pub rx_gso_packets_coalesced: __le64, pub rx_gso_bytes_coalesced: __le64, } #[allow(clippy::unnecessary_operation, clippy::identity_op)] const _: () = { ["Size of virtio_net_stats_rx_gso"][::std::mem::size_of::() - 40usize]; ["Alignment of virtio_net_stats_rx_gso"] [::std::mem::align_of::() - 8usize]; ["Offset of field: virtio_net_stats_rx_gso::hdr"] [::std::mem::offset_of!(virtio_net_stats_rx_gso, hdr) - 0usize]; ["Offset of field: virtio_net_stats_rx_gso::rx_gso_packets"] [::std::mem::offset_of!(virtio_net_stats_rx_gso, rx_gso_packets) - 8usize]; ["Offset of field: virtio_net_stats_rx_gso::rx_gso_bytes"] [::std::mem::offset_of!(virtio_net_stats_rx_gso, rx_gso_bytes) - 16usize]; ["Offset of field: virtio_net_stats_rx_gso::rx_gso_packets_coalesced"] [::std::mem::offset_of!(virtio_net_stats_rx_gso, rx_gso_packets_coalesced) - 24usize]; ["Offset of field: virtio_net_stats_rx_gso::rx_gso_bytes_coalesced"] [::std::mem::offset_of!(virtio_net_stats_rx_gso, rx_gso_bytes_coalesced) - 32usize]; }; #[repr(C)] #[derive(Debug, Default, Copy, Clone, PartialEq)] pub struct virtio_net_stats_tx_gso { pub hdr: virtio_net_stats_reply_hdr, pub tx_gso_packets: __le64, pub tx_gso_bytes: __le64, pub tx_gso_segments: __le64, pub tx_gso_segments_bytes: __le64, pub tx_gso_packets_noseg: __le64, pub tx_gso_bytes_noseg: __le64, } #[allow(clippy::unnecessary_operation, clippy::identity_op)] const _: () = { ["Size of virtio_net_stats_tx_gso"][::std::mem::size_of::() - 56usize]; ["Alignment of virtio_net_stats_tx_gso"] [::std::mem::align_of::() - 8usize]; ["Offset of field: virtio_net_stats_tx_gso::hdr"] [::std::mem::offset_of!(virtio_net_stats_tx_gso, hdr) - 0usize]; ["Offset of field: virtio_net_stats_tx_gso::tx_gso_packets"] [::std::mem::offset_of!(virtio_net_stats_tx_gso, tx_gso_packets) - 8usize]; ["Offset of field: virtio_net_stats_tx_gso::tx_gso_bytes"] [::std::mem::offset_of!(virtio_net_stats_tx_gso, tx_gso_bytes) - 16usize]; ["Offset of field: virtio_net_stats_tx_gso::tx_gso_segments"] [::std::mem::offset_of!(virtio_net_stats_tx_gso, tx_gso_segments) - 24usize]; ["Offset of field: virtio_net_stats_tx_gso::tx_gso_segments_bytes"] [::std::mem::offset_of!(virtio_net_stats_tx_gso, tx_gso_segments_bytes) - 32usize]; ["Offset of field: virtio_net_stats_tx_gso::tx_gso_packets_noseg"] [::std::mem::offset_of!(virtio_net_stats_tx_gso, tx_gso_packets_noseg) - 40usize]; ["Offset of field: virtio_net_stats_tx_gso::tx_gso_bytes_noseg"] [::std::mem::offset_of!(virtio_net_stats_tx_gso, tx_gso_bytes_noseg) - 48usize]; }; #[repr(C)] #[derive(Debug, Default, Copy, Clone, PartialEq)] pub struct virtio_net_stats_rx_speed { pub hdr: virtio_net_stats_reply_hdr, pub rx_ratelimit_packets: __le64, pub rx_ratelimit_bytes: __le64, } #[allow(clippy::unnecessary_operation, clippy::identity_op)] const _: () = { ["Size of virtio_net_stats_rx_speed"] [::std::mem::size_of::() - 24usize]; ["Alignment of virtio_net_stats_rx_speed"] [::std::mem::align_of::() - 8usize]; ["Offset of field: virtio_net_stats_rx_speed::hdr"] [::std::mem::offset_of!(virtio_net_stats_rx_speed, hdr) - 0usize]; ["Offset of field: virtio_net_stats_rx_speed::rx_ratelimit_packets"] [::std::mem::offset_of!(virtio_net_stats_rx_speed, rx_ratelimit_packets) - 8usize]; ["Offset of field: virtio_net_stats_rx_speed::rx_ratelimit_bytes"] [::std::mem::offset_of!(virtio_net_stats_rx_speed, rx_ratelimit_bytes) - 16usize]; }; #[repr(C)] #[derive(Debug, Default, Copy, Clone, PartialEq)] pub struct virtio_net_stats_tx_speed { pub hdr: virtio_net_stats_reply_hdr, pub tx_ratelimit_packets: __le64, pub tx_ratelimit_bytes: __le64, } #[allow(clippy::unnecessary_operation, clippy::identity_op)] const _: () = { ["Size of virtio_net_stats_tx_speed"] [::std::mem::size_of::() - 24usize]; ["Alignment of virtio_net_stats_tx_speed"] [::std::mem::align_of::() - 8usize]; ["Offset of field: virtio_net_stats_tx_speed::hdr"] [::std::mem::offset_of!(virtio_net_stats_tx_speed, hdr) - 0usize]; ["Offset of field: virtio_net_stats_tx_speed::tx_ratelimit_packets"] [::std::mem::offset_of!(virtio_net_stats_tx_speed, tx_ratelimit_packets) - 8usize]; ["Offset of field: virtio_net_stats_tx_speed::tx_ratelimit_bytes"] [::std::mem::offset_of!(virtio_net_stats_tx_speed, tx_ratelimit_bytes) - 16usize]; };