1 /* automatically generated by rust-bindgen 0.70.1 */ 2 3 #[repr(C)] 4 #[derive(Default)] 5 pub struct __IncompleteArrayField<T>(::std::marker::PhantomData<T>, [T; 0]); 6 impl<T> __IncompleteArrayField<T> { 7 #[inline] new() -> Self8 pub const fn new() -> Self { 9 __IncompleteArrayField(::std::marker::PhantomData, []) 10 } 11 #[inline] as_ptr(&self) -> *const T12 pub fn as_ptr(&self) -> *const T { 13 self as *const _ as *const T 14 } 15 #[inline] as_mut_ptr(&mut self) -> *mut T16 pub fn as_mut_ptr(&mut self) -> *mut T { 17 self as *mut _ as *mut T 18 } 19 #[inline] as_slice(&self, len: usize) -> &[T]20 pub unsafe fn as_slice(&self, len: usize) -> &[T] { 21 ::std::slice::from_raw_parts(self.as_ptr(), len) 22 } 23 #[inline] as_mut_slice(&mut self, len: usize) -> &mut [T]24 pub unsafe fn as_mut_slice(&mut self, len: usize) -> &mut [T] { 25 ::std::slice::from_raw_parts_mut(self.as_mut_ptr(), len) 26 } 27 } 28 impl<T> ::std::fmt::Debug for __IncompleteArrayField<T> { fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result29 fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result { 30 fmt.write_str("__IncompleteArrayField") 31 } 32 } 33 pub const VIRTIO_NET_F_CSUM: u32 = 0; 34 pub const VIRTIO_NET_F_GUEST_CSUM: u32 = 1; 35 pub const VIRTIO_NET_F_CTRL_GUEST_OFFLOADS: u32 = 2; 36 pub const VIRTIO_NET_F_MTU: u32 = 3; 37 pub const VIRTIO_NET_F_MAC: u32 = 5; 38 pub const VIRTIO_NET_F_GUEST_TSO4: u32 = 7; 39 pub const VIRTIO_NET_F_GUEST_TSO6: u32 = 8; 40 pub const VIRTIO_NET_F_GUEST_ECN: u32 = 9; 41 pub const VIRTIO_NET_F_GUEST_UFO: u32 = 10; 42 pub const VIRTIO_NET_F_HOST_TSO4: u32 = 11; 43 pub const VIRTIO_NET_F_HOST_TSO6: u32 = 12; 44 pub const VIRTIO_NET_F_HOST_ECN: u32 = 13; 45 pub const VIRTIO_NET_F_HOST_UFO: u32 = 14; 46 pub const VIRTIO_NET_F_MRG_RXBUF: u32 = 15; 47 pub const VIRTIO_NET_F_STATUS: u32 = 16; 48 pub const VIRTIO_NET_F_CTRL_VQ: u32 = 17; 49 pub const VIRTIO_NET_F_CTRL_RX: u32 = 18; 50 pub const VIRTIO_NET_F_CTRL_VLAN: u32 = 19; 51 pub const VIRTIO_NET_F_CTRL_RX_EXTRA: u32 = 20; 52 pub const VIRTIO_NET_F_GUEST_ANNOUNCE: u32 = 21; 53 pub const VIRTIO_NET_F_MQ: u32 = 22; 54 pub const VIRTIO_NET_F_CTRL_MAC_ADDR: u32 = 23; 55 pub const VIRTIO_NET_F_DEVICE_STATS: u32 = 50; 56 pub const VIRTIO_NET_F_VQ_NOTF_COAL: u32 = 52; 57 pub const VIRTIO_NET_F_NOTF_COAL: u32 = 53; 58 pub const VIRTIO_NET_F_GUEST_USO4: u32 = 54; 59 pub const VIRTIO_NET_F_GUEST_USO6: u32 = 55; 60 pub const VIRTIO_NET_F_HOST_USO: u32 = 56; 61 pub const VIRTIO_NET_F_HASH_REPORT: u32 = 57; 62 pub const VIRTIO_NET_F_GUEST_HDRLEN: u32 = 59; 63 pub const VIRTIO_NET_F_RSS: u32 = 60; 64 pub const VIRTIO_NET_F_RSC_EXT: u32 = 61; 65 pub const VIRTIO_NET_F_STANDBY: u32 = 62; 66 pub const VIRTIO_NET_F_SPEED_DUPLEX: u32 = 63; 67 pub const VIRTIO_NET_F_GSO: u32 = 6; 68 pub const VIRTIO_NET_S_LINK_UP: u32 = 1; 69 pub const VIRTIO_NET_S_ANNOUNCE: u32 = 2; 70 pub const VIRTIO_NET_RSS_HASH_TYPE_IPv4: u32 = 1; 71 pub const VIRTIO_NET_RSS_HASH_TYPE_TCPv4: u32 = 2; 72 pub const VIRTIO_NET_RSS_HASH_TYPE_UDPv4: u32 = 4; 73 pub const VIRTIO_NET_RSS_HASH_TYPE_IPv6: u32 = 8; 74 pub const VIRTIO_NET_RSS_HASH_TYPE_TCPv6: u32 = 16; 75 pub const VIRTIO_NET_RSS_HASH_TYPE_UDPv6: u32 = 32; 76 pub const VIRTIO_NET_RSS_HASH_TYPE_IP_EX: u32 = 64; 77 pub const VIRTIO_NET_RSS_HASH_TYPE_TCP_EX: u32 = 128; 78 pub const VIRTIO_NET_RSS_HASH_TYPE_UDP_EX: u32 = 256; 79 pub const VIRTIO_NET_HDR_F_NEEDS_CSUM: u32 = 1; 80 pub const VIRTIO_NET_HDR_F_DATA_VALID: u32 = 2; 81 pub const VIRTIO_NET_HDR_F_RSC_INFO: u32 = 4; 82 pub const VIRTIO_NET_HDR_GSO_NONE: u32 = 0; 83 pub const VIRTIO_NET_HDR_GSO_TCPV4: u32 = 1; 84 pub const VIRTIO_NET_HDR_GSO_UDP: u32 = 3; 85 pub const VIRTIO_NET_HDR_GSO_TCPV6: u32 = 4; 86 pub const VIRTIO_NET_HDR_GSO_UDP_L4: u32 = 5; 87 pub const VIRTIO_NET_HDR_GSO_ECN: u32 = 128; 88 pub const VIRTIO_NET_HASH_REPORT_NONE: u32 = 0; 89 pub const VIRTIO_NET_HASH_REPORT_IPv4: u32 = 1; 90 pub const VIRTIO_NET_HASH_REPORT_TCPv4: u32 = 2; 91 pub const VIRTIO_NET_HASH_REPORT_UDPv4: u32 = 3; 92 pub const VIRTIO_NET_HASH_REPORT_IPv6: u32 = 4; 93 pub const VIRTIO_NET_HASH_REPORT_TCPv6: u32 = 5; 94 pub const VIRTIO_NET_HASH_REPORT_UDPv6: u32 = 6; 95 pub const VIRTIO_NET_HASH_REPORT_IPv6_EX: u32 = 7; 96 pub const VIRTIO_NET_HASH_REPORT_TCPv6_EX: u32 = 8; 97 pub const VIRTIO_NET_HASH_REPORT_UDPv6_EX: u32 = 9; 98 pub const VIRTIO_NET_OK: u32 = 0; 99 pub const VIRTIO_NET_ERR: u32 = 1; 100 pub const VIRTIO_NET_CTRL_RX: u32 = 0; 101 pub const VIRTIO_NET_CTRL_RX_PROMISC: u32 = 0; 102 pub const VIRTIO_NET_CTRL_RX_ALLMULTI: u32 = 1; 103 pub const VIRTIO_NET_CTRL_RX_ALLUNI: u32 = 2; 104 pub const VIRTIO_NET_CTRL_RX_NOMULTI: u32 = 3; 105 pub const VIRTIO_NET_CTRL_RX_NOUNI: u32 = 4; 106 pub const VIRTIO_NET_CTRL_RX_NOBCAST: u32 = 5; 107 pub const VIRTIO_NET_CTRL_MAC: u32 = 1; 108 pub const VIRTIO_NET_CTRL_MAC_TABLE_SET: u32 = 0; 109 pub const VIRTIO_NET_CTRL_MAC_ADDR_SET: u32 = 1; 110 pub const VIRTIO_NET_CTRL_VLAN: u32 = 2; 111 pub const VIRTIO_NET_CTRL_VLAN_ADD: u32 = 0; 112 pub const VIRTIO_NET_CTRL_VLAN_DEL: u32 = 1; 113 pub const VIRTIO_NET_CTRL_ANNOUNCE: u32 = 3; 114 pub const VIRTIO_NET_CTRL_ANNOUNCE_ACK: u32 = 0; 115 pub const VIRTIO_NET_CTRL_MQ: u32 = 4; 116 pub const VIRTIO_NET_CTRL_MQ_VQ_PAIRS_SET: u32 = 0; 117 pub const VIRTIO_NET_CTRL_MQ_VQ_PAIRS_MIN: u32 = 1; 118 pub const VIRTIO_NET_CTRL_MQ_VQ_PAIRS_MAX: u32 = 32768; 119 pub const VIRTIO_NET_CTRL_MQ_RSS_CONFIG: u32 = 1; 120 pub const VIRTIO_NET_CTRL_MQ_HASH_CONFIG: u32 = 2; 121 pub const VIRTIO_NET_CTRL_GUEST_OFFLOADS: u32 = 5; 122 pub const VIRTIO_NET_CTRL_GUEST_OFFLOADS_SET: u32 = 0; 123 pub const VIRTIO_NET_CTRL_NOTF_COAL: u32 = 6; 124 pub const VIRTIO_NET_CTRL_NOTF_COAL_TX_SET: u32 = 0; 125 pub const VIRTIO_NET_CTRL_NOTF_COAL_RX_SET: u32 = 1; 126 pub const VIRTIO_NET_CTRL_NOTF_COAL_VQ_SET: u32 = 2; 127 pub const VIRTIO_NET_CTRL_NOTF_COAL_VQ_GET: u32 = 3; 128 pub const VIRTIO_NET_CTRL_STATS: u32 = 8; 129 pub const VIRTIO_NET_CTRL_STATS_QUERY: u32 = 0; 130 pub const VIRTIO_NET_CTRL_STATS_GET: u32 = 1; 131 pub const VIRTIO_NET_STATS_TYPE_CVQ: u64 = 4294967296; 132 pub const VIRTIO_NET_STATS_TYPE_RX_BASIC: u32 = 1; 133 pub const VIRTIO_NET_STATS_TYPE_RX_CSUM: u32 = 2; 134 pub const VIRTIO_NET_STATS_TYPE_RX_GSO: u32 = 4; 135 pub const VIRTIO_NET_STATS_TYPE_RX_SPEED: u32 = 8; 136 pub const VIRTIO_NET_STATS_TYPE_TX_BASIC: u32 = 65536; 137 pub const VIRTIO_NET_STATS_TYPE_TX_CSUM: u32 = 131072; 138 pub const VIRTIO_NET_STATS_TYPE_TX_GSO: u32 = 262144; 139 pub const VIRTIO_NET_STATS_TYPE_TX_SPEED: u32 = 524288; 140 pub const VIRTIO_NET_STATS_TYPE_REPLY_CVQ: u32 = 32; 141 pub const VIRTIO_NET_STATS_TYPE_REPLY_RX_BASIC: u32 = 0; 142 pub const VIRTIO_NET_STATS_TYPE_REPLY_RX_CSUM: u32 = 1; 143 pub const VIRTIO_NET_STATS_TYPE_REPLY_RX_GSO: u32 = 2; 144 pub const VIRTIO_NET_STATS_TYPE_REPLY_RX_SPEED: u32 = 3; 145 pub const VIRTIO_NET_STATS_TYPE_REPLY_TX_BASIC: u32 = 16; 146 pub const VIRTIO_NET_STATS_TYPE_REPLY_TX_CSUM: u32 = 17; 147 pub const VIRTIO_NET_STATS_TYPE_REPLY_TX_GSO: u32 = 18; 148 pub const VIRTIO_NET_STATS_TYPE_REPLY_TX_SPEED: u32 = 19; 149 pub type __u8 = ::std::os::raw::c_uchar; 150 pub type __u16 = ::std::os::raw::c_ushort; 151 pub type __u32 = ::std::os::raw::c_uint; 152 pub type __u64 = ::std::os::raw::c_ulonglong; 153 pub type __le16 = __u16; 154 pub type __le32 = __u32; 155 pub type __le64 = __u64; 156 pub type __virtio16 = __u16; 157 pub type __virtio32 = __u32; 158 #[repr(C, packed)] 159 #[derive(Debug, Default, Copy, Clone, PartialEq)] 160 pub struct virtio_net_config { 161 pub mac: [__u8; 6usize], 162 pub status: __virtio16, 163 pub max_virtqueue_pairs: __virtio16, 164 pub mtu: __virtio16, 165 pub speed: __le32, 166 pub duplex: __u8, 167 pub rss_max_key_size: __u8, 168 pub rss_max_indirection_table_length: __le16, 169 pub supported_hash_types: __le32, 170 } 171 #[allow(clippy::unnecessary_operation, clippy::identity_op)] 172 const _: () = { 173 ["Size of virtio_net_config"][::std::mem::size_of::<virtio_net_config>() - 24usize]; 174 ["Alignment of virtio_net_config"][::std::mem::align_of::<virtio_net_config>() - 1usize]; 175 ["Offset of field: virtio_net_config::mac"] 176 [::std::mem::offset_of!(virtio_net_config, mac) - 0usize]; 177 ["Offset of field: virtio_net_config::status"] 178 [::std::mem::offset_of!(virtio_net_config, status) - 6usize]; 179 ["Offset of field: virtio_net_config::max_virtqueue_pairs"] 180 [::std::mem::offset_of!(virtio_net_config, max_virtqueue_pairs) - 8usize]; 181 ["Offset of field: virtio_net_config::mtu"] 182 [::std::mem::offset_of!(virtio_net_config, mtu) - 10usize]; 183 ["Offset of field: virtio_net_config::speed"] 184 [::std::mem::offset_of!(virtio_net_config, speed) - 12usize]; 185 ["Offset of field: virtio_net_config::duplex"] 186 [::std::mem::offset_of!(virtio_net_config, duplex) - 16usize]; 187 ["Offset of field: virtio_net_config::rss_max_key_size"] 188 [::std::mem::offset_of!(virtio_net_config, rss_max_key_size) - 17usize]; 189 ["Offset of field: virtio_net_config::rss_max_indirection_table_length"] 190 [::std::mem::offset_of!(virtio_net_config, rss_max_indirection_table_length) - 18usize]; 191 ["Offset of field: virtio_net_config::supported_hash_types"] 192 [::std::mem::offset_of!(virtio_net_config, supported_hash_types) - 20usize]; 193 }; 194 #[repr(C)] 195 #[derive(Copy, Clone)] 196 pub struct virtio_net_hdr_v1 { 197 pub flags: __u8, 198 pub gso_type: __u8, 199 pub hdr_len: __virtio16, 200 pub gso_size: __virtio16, 201 pub __bindgen_anon_1: virtio_net_hdr_v1__bindgen_ty_1, 202 pub num_buffers: __virtio16, 203 } 204 #[repr(C)] 205 #[derive(Copy, Clone)] 206 pub union virtio_net_hdr_v1__bindgen_ty_1 { 207 pub __bindgen_anon_1: virtio_net_hdr_v1__bindgen_ty_1__bindgen_ty_1, 208 pub csum: virtio_net_hdr_v1__bindgen_ty_1__bindgen_ty_2, 209 pub rsc: virtio_net_hdr_v1__bindgen_ty_1__bindgen_ty_3, 210 } 211 #[repr(C)] 212 #[derive(Debug, Default, Copy, Clone, PartialEq)] 213 pub struct virtio_net_hdr_v1__bindgen_ty_1__bindgen_ty_1 { 214 pub csum_start: __virtio16, 215 pub csum_offset: __virtio16, 216 } 217 #[allow(clippy::unnecessary_operation, clippy::identity_op)] 218 const _: () = { 219 ["Size of virtio_net_hdr_v1__bindgen_ty_1__bindgen_ty_1"] 220 [::std::mem::size_of::<virtio_net_hdr_v1__bindgen_ty_1__bindgen_ty_1>() - 4usize]; 221 ["Alignment of virtio_net_hdr_v1__bindgen_ty_1__bindgen_ty_1"] 222 [::std::mem::align_of::<virtio_net_hdr_v1__bindgen_ty_1__bindgen_ty_1>() - 2usize]; 223 ["Offset of field: virtio_net_hdr_v1__bindgen_ty_1__bindgen_ty_1::csum_start"][::std::mem::offset_of!( 224 virtio_net_hdr_v1__bindgen_ty_1__bindgen_ty_1, 225 csum_start 226 ) - 0usize]; 227 ["Offset of field: virtio_net_hdr_v1__bindgen_ty_1__bindgen_ty_1::csum_offset"][::std::mem::offset_of!( 228 virtio_net_hdr_v1__bindgen_ty_1__bindgen_ty_1, 229 csum_offset 230 ) - 2usize]; 231 }; 232 #[repr(C)] 233 #[derive(Debug, Default, Copy, Clone, PartialEq)] 234 pub struct virtio_net_hdr_v1__bindgen_ty_1__bindgen_ty_2 { 235 pub start: __virtio16, 236 pub offset: __virtio16, 237 } 238 #[allow(clippy::unnecessary_operation, clippy::identity_op)] 239 const _: () = { 240 ["Size of virtio_net_hdr_v1__bindgen_ty_1__bindgen_ty_2"] 241 [::std::mem::size_of::<virtio_net_hdr_v1__bindgen_ty_1__bindgen_ty_2>() - 4usize]; 242 ["Alignment of virtio_net_hdr_v1__bindgen_ty_1__bindgen_ty_2"] 243 [::std::mem::align_of::<virtio_net_hdr_v1__bindgen_ty_1__bindgen_ty_2>() - 2usize]; 244 ["Offset of field: virtio_net_hdr_v1__bindgen_ty_1__bindgen_ty_2::start"] 245 [::std::mem::offset_of!(virtio_net_hdr_v1__bindgen_ty_1__bindgen_ty_2, start) - 0usize]; 246 ["Offset of field: virtio_net_hdr_v1__bindgen_ty_1__bindgen_ty_2::offset"] 247 [::std::mem::offset_of!(virtio_net_hdr_v1__bindgen_ty_1__bindgen_ty_2, offset) - 2usize]; 248 }; 249 #[repr(C)] 250 #[derive(Debug, Default, Copy, Clone, PartialEq)] 251 pub struct virtio_net_hdr_v1__bindgen_ty_1__bindgen_ty_3 { 252 pub segments: __le16, 253 pub dup_acks: __le16, 254 } 255 #[allow(clippy::unnecessary_operation, clippy::identity_op)] 256 const _: () = { 257 ["Size of virtio_net_hdr_v1__bindgen_ty_1__bindgen_ty_3"] 258 [::std::mem::size_of::<virtio_net_hdr_v1__bindgen_ty_1__bindgen_ty_3>() - 4usize]; 259 ["Alignment of virtio_net_hdr_v1__bindgen_ty_1__bindgen_ty_3"] 260 [::std::mem::align_of::<virtio_net_hdr_v1__bindgen_ty_1__bindgen_ty_3>() - 2usize]; 261 ["Offset of field: virtio_net_hdr_v1__bindgen_ty_1__bindgen_ty_3::segments"] 262 [::std::mem::offset_of!(virtio_net_hdr_v1__bindgen_ty_1__bindgen_ty_3, segments) - 0usize]; 263 ["Offset of field: virtio_net_hdr_v1__bindgen_ty_1__bindgen_ty_3::dup_acks"] 264 [::std::mem::offset_of!(virtio_net_hdr_v1__bindgen_ty_1__bindgen_ty_3, dup_acks) - 2usize]; 265 }; 266 #[allow(clippy::unnecessary_operation, clippy::identity_op)] 267 const _: () = { 268 ["Size of virtio_net_hdr_v1__bindgen_ty_1"] 269 [::std::mem::size_of::<virtio_net_hdr_v1__bindgen_ty_1>() - 4usize]; 270 ["Alignment of virtio_net_hdr_v1__bindgen_ty_1"] 271 [::std::mem::align_of::<virtio_net_hdr_v1__bindgen_ty_1>() - 2usize]; 272 ["Offset of field: virtio_net_hdr_v1__bindgen_ty_1::csum"] 273 [::std::mem::offset_of!(virtio_net_hdr_v1__bindgen_ty_1, csum) - 0usize]; 274 ["Offset of field: virtio_net_hdr_v1__bindgen_ty_1::rsc"] 275 [::std::mem::offset_of!(virtio_net_hdr_v1__bindgen_ty_1, rsc) - 0usize]; 276 }; 277 impl Default for virtio_net_hdr_v1__bindgen_ty_1 { default() -> Self278 fn default() -> Self { 279 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 280 unsafe { 281 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 282 s.assume_init() 283 } 284 } 285 } 286 #[allow(clippy::unnecessary_operation, clippy::identity_op)] 287 const _: () = { 288 ["Size of virtio_net_hdr_v1"][::std::mem::size_of::<virtio_net_hdr_v1>() - 12usize]; 289 ["Alignment of virtio_net_hdr_v1"][::std::mem::align_of::<virtio_net_hdr_v1>() - 2usize]; 290 ["Offset of field: virtio_net_hdr_v1::flags"] 291 [::std::mem::offset_of!(virtio_net_hdr_v1, flags) - 0usize]; 292 ["Offset of field: virtio_net_hdr_v1::gso_type"] 293 [::std::mem::offset_of!(virtio_net_hdr_v1, gso_type) - 1usize]; 294 ["Offset of field: virtio_net_hdr_v1::hdr_len"] 295 [::std::mem::offset_of!(virtio_net_hdr_v1, hdr_len) - 2usize]; 296 ["Offset of field: virtio_net_hdr_v1::gso_size"] 297 [::std::mem::offset_of!(virtio_net_hdr_v1, gso_size) - 4usize]; 298 ["Offset of field: virtio_net_hdr_v1::num_buffers"] 299 [::std::mem::offset_of!(virtio_net_hdr_v1, num_buffers) - 10usize]; 300 }; 301 impl Default for virtio_net_hdr_v1 { default() -> Self302 fn default() -> Self { 303 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 304 unsafe { 305 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 306 s.assume_init() 307 } 308 } 309 } 310 #[repr(C)] 311 #[derive(Copy, Clone)] 312 pub struct virtio_net_hdr_v1_hash { 313 pub hdr: virtio_net_hdr_v1, 314 pub hash_value: __le32, 315 pub hash_report: __le16, 316 pub padding: __le16, 317 } 318 #[allow(clippy::unnecessary_operation, clippy::identity_op)] 319 const _: () = { 320 ["Size of virtio_net_hdr_v1_hash"][::std::mem::size_of::<virtio_net_hdr_v1_hash>() - 20usize]; 321 ["Alignment of virtio_net_hdr_v1_hash"] 322 [::std::mem::align_of::<virtio_net_hdr_v1_hash>() - 4usize]; 323 ["Offset of field: virtio_net_hdr_v1_hash::hdr"] 324 [::std::mem::offset_of!(virtio_net_hdr_v1_hash, hdr) - 0usize]; 325 ["Offset of field: virtio_net_hdr_v1_hash::hash_value"] 326 [::std::mem::offset_of!(virtio_net_hdr_v1_hash, hash_value) - 12usize]; 327 ["Offset of field: virtio_net_hdr_v1_hash::hash_report"] 328 [::std::mem::offset_of!(virtio_net_hdr_v1_hash, hash_report) - 16usize]; 329 ["Offset of field: virtio_net_hdr_v1_hash::padding"] 330 [::std::mem::offset_of!(virtio_net_hdr_v1_hash, padding) - 18usize]; 331 }; 332 impl Default for virtio_net_hdr_v1_hash { default() -> Self333 fn default() -> Self { 334 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 335 unsafe { 336 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 337 s.assume_init() 338 } 339 } 340 } 341 #[repr(C)] 342 #[derive(Debug, Default, Copy, Clone, PartialEq)] 343 pub struct virtio_net_hdr { 344 pub flags: __u8, 345 pub gso_type: __u8, 346 pub hdr_len: __virtio16, 347 pub gso_size: __virtio16, 348 pub csum_start: __virtio16, 349 pub csum_offset: __virtio16, 350 } 351 #[allow(clippy::unnecessary_operation, clippy::identity_op)] 352 const _: () = { 353 ["Size of virtio_net_hdr"][::std::mem::size_of::<virtio_net_hdr>() - 10usize]; 354 ["Alignment of virtio_net_hdr"][::std::mem::align_of::<virtio_net_hdr>() - 2usize]; 355 ["Offset of field: virtio_net_hdr::flags"] 356 [::std::mem::offset_of!(virtio_net_hdr, flags) - 0usize]; 357 ["Offset of field: virtio_net_hdr::gso_type"] 358 [::std::mem::offset_of!(virtio_net_hdr, gso_type) - 1usize]; 359 ["Offset of field: virtio_net_hdr::hdr_len"] 360 [::std::mem::offset_of!(virtio_net_hdr, hdr_len) - 2usize]; 361 ["Offset of field: virtio_net_hdr::gso_size"] 362 [::std::mem::offset_of!(virtio_net_hdr, gso_size) - 4usize]; 363 ["Offset of field: virtio_net_hdr::csum_start"] 364 [::std::mem::offset_of!(virtio_net_hdr, csum_start) - 6usize]; 365 ["Offset of field: virtio_net_hdr::csum_offset"] 366 [::std::mem::offset_of!(virtio_net_hdr, csum_offset) - 8usize]; 367 }; 368 #[repr(C)] 369 #[derive(Debug, Default, Copy, Clone, PartialEq)] 370 pub struct virtio_net_hdr_mrg_rxbuf { 371 pub hdr: virtio_net_hdr, 372 pub num_buffers: __virtio16, 373 } 374 #[allow(clippy::unnecessary_operation, clippy::identity_op)] 375 const _: () = { 376 ["Size of virtio_net_hdr_mrg_rxbuf"] 377 [::std::mem::size_of::<virtio_net_hdr_mrg_rxbuf>() - 12usize]; 378 ["Alignment of virtio_net_hdr_mrg_rxbuf"] 379 [::std::mem::align_of::<virtio_net_hdr_mrg_rxbuf>() - 2usize]; 380 ["Offset of field: virtio_net_hdr_mrg_rxbuf::hdr"] 381 [::std::mem::offset_of!(virtio_net_hdr_mrg_rxbuf, hdr) - 0usize]; 382 ["Offset of field: virtio_net_hdr_mrg_rxbuf::num_buffers"] 383 [::std::mem::offset_of!(virtio_net_hdr_mrg_rxbuf, num_buffers) - 10usize]; 384 }; 385 #[repr(C, packed)] 386 #[derive(Debug, Default, Copy, Clone, PartialEq)] 387 pub struct virtio_net_ctrl_hdr { 388 pub class: __u8, 389 pub cmd: __u8, 390 } 391 #[allow(clippy::unnecessary_operation, clippy::identity_op)] 392 const _: () = { 393 ["Size of virtio_net_ctrl_hdr"][::std::mem::size_of::<virtio_net_ctrl_hdr>() - 2usize]; 394 ["Alignment of virtio_net_ctrl_hdr"][::std::mem::align_of::<virtio_net_ctrl_hdr>() - 1usize]; 395 ["Offset of field: virtio_net_ctrl_hdr::class"] 396 [::std::mem::offset_of!(virtio_net_ctrl_hdr, class) - 0usize]; 397 ["Offset of field: virtio_net_ctrl_hdr::cmd"] 398 [::std::mem::offset_of!(virtio_net_ctrl_hdr, cmd) - 1usize]; 399 }; 400 pub type virtio_net_ctrl_ack = __u8; 401 #[repr(C, packed)] 402 pub struct virtio_net_ctrl_mac { 403 pub entries: __virtio32, 404 pub macs: __IncompleteArrayField<[__u8; 6usize]>, 405 } 406 #[allow(clippy::unnecessary_operation, clippy::identity_op)] 407 const _: () = { 408 ["Size of virtio_net_ctrl_mac"][::std::mem::size_of::<virtio_net_ctrl_mac>() - 4usize]; 409 ["Alignment of virtio_net_ctrl_mac"][::std::mem::align_of::<virtio_net_ctrl_mac>() - 1usize]; 410 ["Offset of field: virtio_net_ctrl_mac::entries"] 411 [::std::mem::offset_of!(virtio_net_ctrl_mac, entries) - 0usize]; 412 ["Offset of field: virtio_net_ctrl_mac::macs"] 413 [::std::mem::offset_of!(virtio_net_ctrl_mac, macs) - 4usize]; 414 }; 415 impl Default for virtio_net_ctrl_mac { default() -> Self416 fn default() -> Self { 417 let mut s = ::std::mem::MaybeUninit::<Self>::uninit(); 418 unsafe { 419 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1); 420 s.assume_init() 421 } 422 } 423 } 424 #[repr(C)] 425 #[derive(Debug, Default, Copy, Clone, PartialEq)] 426 pub struct virtio_net_ctrl_mq { 427 pub virtqueue_pairs: __virtio16, 428 } 429 #[allow(clippy::unnecessary_operation, clippy::identity_op)] 430 const _: () = { 431 ["Size of virtio_net_ctrl_mq"][::std::mem::size_of::<virtio_net_ctrl_mq>() - 2usize]; 432 ["Alignment of virtio_net_ctrl_mq"][::std::mem::align_of::<virtio_net_ctrl_mq>() - 2usize]; 433 ["Offset of field: virtio_net_ctrl_mq::virtqueue_pairs"] 434 [::std::mem::offset_of!(virtio_net_ctrl_mq, virtqueue_pairs) - 0usize]; 435 }; 436 #[repr(C)] 437 #[derive(Debug, Default)] 438 pub struct virtio_net_rss_config { 439 pub hash_types: __le32, 440 pub indirection_table_mask: __le16, 441 pub unclassified_queue: __le16, 442 pub indirection_table: [__le16; 1usize], 443 pub max_tx_vq: __le16, 444 pub hash_key_length: __u8, 445 pub hash_key_data: __IncompleteArrayField<__u8>, 446 } 447 #[allow(clippy::unnecessary_operation, clippy::identity_op)] 448 const _: () = { 449 ["Size of virtio_net_rss_config"][::std::mem::size_of::<virtio_net_rss_config>() - 16usize]; 450 ["Alignment of virtio_net_rss_config"] 451 [::std::mem::align_of::<virtio_net_rss_config>() - 4usize]; 452 ["Offset of field: virtio_net_rss_config::hash_types"] 453 [::std::mem::offset_of!(virtio_net_rss_config, hash_types) - 0usize]; 454 ["Offset of field: virtio_net_rss_config::indirection_table_mask"] 455 [::std::mem::offset_of!(virtio_net_rss_config, indirection_table_mask) - 4usize]; 456 ["Offset of field: virtio_net_rss_config::unclassified_queue"] 457 [::std::mem::offset_of!(virtio_net_rss_config, unclassified_queue) - 6usize]; 458 ["Offset of field: virtio_net_rss_config::indirection_table"] 459 [::std::mem::offset_of!(virtio_net_rss_config, indirection_table) - 8usize]; 460 ["Offset of field: virtio_net_rss_config::max_tx_vq"] 461 [::std::mem::offset_of!(virtio_net_rss_config, max_tx_vq) - 10usize]; 462 ["Offset of field: virtio_net_rss_config::hash_key_length"] 463 [::std::mem::offset_of!(virtio_net_rss_config, hash_key_length) - 12usize]; 464 ["Offset of field: virtio_net_rss_config::hash_key_data"] 465 [::std::mem::offset_of!(virtio_net_rss_config, hash_key_data) - 13usize]; 466 }; 467 #[repr(C)] 468 #[derive(Debug, Default)] 469 pub struct virtio_net_hash_config { 470 pub hash_types: __le32, 471 pub reserved: [__le16; 4usize], 472 pub hash_key_length: __u8, 473 pub hash_key_data: __IncompleteArrayField<__u8>, 474 } 475 #[allow(clippy::unnecessary_operation, clippy::identity_op)] 476 const _: () = { 477 ["Size of virtio_net_hash_config"][::std::mem::size_of::<virtio_net_hash_config>() - 16usize]; 478 ["Alignment of virtio_net_hash_config"] 479 [::std::mem::align_of::<virtio_net_hash_config>() - 4usize]; 480 ["Offset of field: virtio_net_hash_config::hash_types"] 481 [::std::mem::offset_of!(virtio_net_hash_config, hash_types) - 0usize]; 482 ["Offset of field: virtio_net_hash_config::reserved"] 483 [::std::mem::offset_of!(virtio_net_hash_config, reserved) - 4usize]; 484 ["Offset of field: virtio_net_hash_config::hash_key_length"] 485 [::std::mem::offset_of!(virtio_net_hash_config, hash_key_length) - 12usize]; 486 ["Offset of field: virtio_net_hash_config::hash_key_data"] 487 [::std::mem::offset_of!(virtio_net_hash_config, hash_key_data) - 13usize]; 488 }; 489 #[repr(C)] 490 #[derive(Debug, Default, Copy, Clone, PartialEq)] 491 pub struct virtio_net_ctrl_coal_tx { 492 pub tx_max_packets: __le32, 493 pub tx_usecs: __le32, 494 } 495 #[allow(clippy::unnecessary_operation, clippy::identity_op)] 496 const _: () = { 497 ["Size of virtio_net_ctrl_coal_tx"][::std::mem::size_of::<virtio_net_ctrl_coal_tx>() - 8usize]; 498 ["Alignment of virtio_net_ctrl_coal_tx"] 499 [::std::mem::align_of::<virtio_net_ctrl_coal_tx>() - 4usize]; 500 ["Offset of field: virtio_net_ctrl_coal_tx::tx_max_packets"] 501 [::std::mem::offset_of!(virtio_net_ctrl_coal_tx, tx_max_packets) - 0usize]; 502 ["Offset of field: virtio_net_ctrl_coal_tx::tx_usecs"] 503 [::std::mem::offset_of!(virtio_net_ctrl_coal_tx, tx_usecs) - 4usize]; 504 }; 505 #[repr(C)] 506 #[derive(Debug, Default, Copy, Clone, PartialEq)] 507 pub struct virtio_net_ctrl_coal_rx { 508 pub rx_max_packets: __le32, 509 pub rx_usecs: __le32, 510 } 511 #[allow(clippy::unnecessary_operation, clippy::identity_op)] 512 const _: () = { 513 ["Size of virtio_net_ctrl_coal_rx"][::std::mem::size_of::<virtio_net_ctrl_coal_rx>() - 8usize]; 514 ["Alignment of virtio_net_ctrl_coal_rx"] 515 [::std::mem::align_of::<virtio_net_ctrl_coal_rx>() - 4usize]; 516 ["Offset of field: virtio_net_ctrl_coal_rx::rx_max_packets"] 517 [::std::mem::offset_of!(virtio_net_ctrl_coal_rx, rx_max_packets) - 0usize]; 518 ["Offset of field: virtio_net_ctrl_coal_rx::rx_usecs"] 519 [::std::mem::offset_of!(virtio_net_ctrl_coal_rx, rx_usecs) - 4usize]; 520 }; 521 #[repr(C)] 522 #[derive(Debug, Default, Copy, Clone, PartialEq)] 523 pub struct virtio_net_ctrl_coal { 524 pub max_packets: __le32, 525 pub max_usecs: __le32, 526 } 527 #[allow(clippy::unnecessary_operation, clippy::identity_op)] 528 const _: () = { 529 ["Size of virtio_net_ctrl_coal"][::std::mem::size_of::<virtio_net_ctrl_coal>() - 8usize]; 530 ["Alignment of virtio_net_ctrl_coal"][::std::mem::align_of::<virtio_net_ctrl_coal>() - 4usize]; 531 ["Offset of field: virtio_net_ctrl_coal::max_packets"] 532 [::std::mem::offset_of!(virtio_net_ctrl_coal, max_packets) - 0usize]; 533 ["Offset of field: virtio_net_ctrl_coal::max_usecs"] 534 [::std::mem::offset_of!(virtio_net_ctrl_coal, max_usecs) - 4usize]; 535 }; 536 #[repr(C)] 537 #[derive(Debug, Default, Copy, Clone, PartialEq)] 538 pub struct virtio_net_ctrl_coal_vq { 539 pub vqn: __le16, 540 pub reserved: __le16, 541 pub coal: virtio_net_ctrl_coal, 542 } 543 #[allow(clippy::unnecessary_operation, clippy::identity_op)] 544 const _: () = { 545 ["Size of virtio_net_ctrl_coal_vq"][::std::mem::size_of::<virtio_net_ctrl_coal_vq>() - 12usize]; 546 ["Alignment of virtio_net_ctrl_coal_vq"] 547 [::std::mem::align_of::<virtio_net_ctrl_coal_vq>() - 4usize]; 548 ["Offset of field: virtio_net_ctrl_coal_vq::vqn"] 549 [::std::mem::offset_of!(virtio_net_ctrl_coal_vq, vqn) - 0usize]; 550 ["Offset of field: virtio_net_ctrl_coal_vq::reserved"] 551 [::std::mem::offset_of!(virtio_net_ctrl_coal_vq, reserved) - 2usize]; 552 ["Offset of field: virtio_net_ctrl_coal_vq::coal"] 553 [::std::mem::offset_of!(virtio_net_ctrl_coal_vq, coal) - 4usize]; 554 }; 555 #[repr(C)] 556 #[derive(Debug, Default, Copy, Clone, PartialEq)] 557 pub struct virtio_net_stats_capabilities { 558 pub supported_stats_types: [__le64; 1usize], 559 } 560 #[allow(clippy::unnecessary_operation, clippy::identity_op)] 561 const _: () = { 562 ["Size of virtio_net_stats_capabilities"] 563 [::std::mem::size_of::<virtio_net_stats_capabilities>() - 8usize]; 564 ["Alignment of virtio_net_stats_capabilities"] 565 [::std::mem::align_of::<virtio_net_stats_capabilities>() - 8usize]; 566 ["Offset of field: virtio_net_stats_capabilities::supported_stats_types"] 567 [::std::mem::offset_of!(virtio_net_stats_capabilities, supported_stats_types) - 0usize]; 568 }; 569 #[repr(C)] 570 #[derive(Debug, Default, Copy, Clone, PartialEq)] 571 pub struct virtio_net_ctrl_queue_stats { 572 pub stats: [virtio_net_ctrl_queue_stats__bindgen_ty_1; 1usize], 573 } 574 #[repr(C)] 575 #[derive(Debug, Default, Copy, Clone, PartialEq)] 576 pub struct virtio_net_ctrl_queue_stats__bindgen_ty_1 { 577 pub vq_index: __le16, 578 pub reserved: [__le16; 3usize], 579 pub types_bitmap: [__le64; 1usize], 580 } 581 #[allow(clippy::unnecessary_operation, clippy::identity_op)] 582 const _: () = { 583 ["Size of virtio_net_ctrl_queue_stats__bindgen_ty_1"] 584 [::std::mem::size_of::<virtio_net_ctrl_queue_stats__bindgen_ty_1>() - 16usize]; 585 ["Alignment of virtio_net_ctrl_queue_stats__bindgen_ty_1"] 586 [::std::mem::align_of::<virtio_net_ctrl_queue_stats__bindgen_ty_1>() - 8usize]; 587 ["Offset of field: virtio_net_ctrl_queue_stats__bindgen_ty_1::vq_index"] 588 [::std::mem::offset_of!(virtio_net_ctrl_queue_stats__bindgen_ty_1, vq_index) - 0usize]; 589 ["Offset of field: virtio_net_ctrl_queue_stats__bindgen_ty_1::reserved"] 590 [::std::mem::offset_of!(virtio_net_ctrl_queue_stats__bindgen_ty_1, reserved) - 2usize]; 591 ["Offset of field: virtio_net_ctrl_queue_stats__bindgen_ty_1::types_bitmap"] 592 [::std::mem::offset_of!(virtio_net_ctrl_queue_stats__bindgen_ty_1, types_bitmap) - 8usize]; 593 }; 594 #[allow(clippy::unnecessary_operation, clippy::identity_op)] 595 const _: () = { 596 ["Size of virtio_net_ctrl_queue_stats"] 597 [::std::mem::size_of::<virtio_net_ctrl_queue_stats>() - 16usize]; 598 ["Alignment of virtio_net_ctrl_queue_stats"] 599 [::std::mem::align_of::<virtio_net_ctrl_queue_stats>() - 8usize]; 600 ["Offset of field: virtio_net_ctrl_queue_stats::stats"] 601 [::std::mem::offset_of!(virtio_net_ctrl_queue_stats, stats) - 0usize]; 602 }; 603 #[repr(C)] 604 #[derive(Debug, Default, Copy, Clone, PartialEq)] 605 pub struct virtio_net_stats_reply_hdr { 606 pub type_: __u8, 607 pub reserved: __u8, 608 pub vq_index: __le16, 609 pub reserved1: __le16, 610 pub size: __le16, 611 } 612 #[allow(clippy::unnecessary_operation, clippy::identity_op)] 613 const _: () = { 614 ["Size of virtio_net_stats_reply_hdr"] 615 [::std::mem::size_of::<virtio_net_stats_reply_hdr>() - 8usize]; 616 ["Alignment of virtio_net_stats_reply_hdr"] 617 [::std::mem::align_of::<virtio_net_stats_reply_hdr>() - 2usize]; 618 ["Offset of field: virtio_net_stats_reply_hdr::type_"] 619 [::std::mem::offset_of!(virtio_net_stats_reply_hdr, type_) - 0usize]; 620 ["Offset of field: virtio_net_stats_reply_hdr::reserved"] 621 [::std::mem::offset_of!(virtio_net_stats_reply_hdr, reserved) - 1usize]; 622 ["Offset of field: virtio_net_stats_reply_hdr::vq_index"] 623 [::std::mem::offset_of!(virtio_net_stats_reply_hdr, vq_index) - 2usize]; 624 ["Offset of field: virtio_net_stats_reply_hdr::reserved1"] 625 [::std::mem::offset_of!(virtio_net_stats_reply_hdr, reserved1) - 4usize]; 626 ["Offset of field: virtio_net_stats_reply_hdr::size"] 627 [::std::mem::offset_of!(virtio_net_stats_reply_hdr, size) - 6usize]; 628 }; 629 #[repr(C)] 630 #[derive(Debug, Default, Copy, Clone, PartialEq)] 631 pub struct virtio_net_stats_cvq { 632 pub hdr: virtio_net_stats_reply_hdr, 633 pub command_num: __le64, 634 pub ok_num: __le64, 635 } 636 #[allow(clippy::unnecessary_operation, clippy::identity_op)] 637 const _: () = { 638 ["Size of virtio_net_stats_cvq"][::std::mem::size_of::<virtio_net_stats_cvq>() - 24usize]; 639 ["Alignment of virtio_net_stats_cvq"][::std::mem::align_of::<virtio_net_stats_cvq>() - 8usize]; 640 ["Offset of field: virtio_net_stats_cvq::hdr"] 641 [::std::mem::offset_of!(virtio_net_stats_cvq, hdr) - 0usize]; 642 ["Offset of field: virtio_net_stats_cvq::command_num"] 643 [::std::mem::offset_of!(virtio_net_stats_cvq, command_num) - 8usize]; 644 ["Offset of field: virtio_net_stats_cvq::ok_num"] 645 [::std::mem::offset_of!(virtio_net_stats_cvq, ok_num) - 16usize]; 646 }; 647 #[repr(C)] 648 #[derive(Debug, Default, Copy, Clone, PartialEq)] 649 pub struct virtio_net_stats_rx_basic { 650 pub hdr: virtio_net_stats_reply_hdr, 651 pub rx_notifications: __le64, 652 pub rx_packets: __le64, 653 pub rx_bytes: __le64, 654 pub rx_interrupts: __le64, 655 pub rx_drops: __le64, 656 pub rx_drop_overruns: __le64, 657 } 658 #[allow(clippy::unnecessary_operation, clippy::identity_op)] 659 const _: () = { 660 ["Size of virtio_net_stats_rx_basic"] 661 [::std::mem::size_of::<virtio_net_stats_rx_basic>() - 56usize]; 662 ["Alignment of virtio_net_stats_rx_basic"] 663 [::std::mem::align_of::<virtio_net_stats_rx_basic>() - 8usize]; 664 ["Offset of field: virtio_net_stats_rx_basic::hdr"] 665 [::std::mem::offset_of!(virtio_net_stats_rx_basic, hdr) - 0usize]; 666 ["Offset of field: virtio_net_stats_rx_basic::rx_notifications"] 667 [::std::mem::offset_of!(virtio_net_stats_rx_basic, rx_notifications) - 8usize]; 668 ["Offset of field: virtio_net_stats_rx_basic::rx_packets"] 669 [::std::mem::offset_of!(virtio_net_stats_rx_basic, rx_packets) - 16usize]; 670 ["Offset of field: virtio_net_stats_rx_basic::rx_bytes"] 671 [::std::mem::offset_of!(virtio_net_stats_rx_basic, rx_bytes) - 24usize]; 672 ["Offset of field: virtio_net_stats_rx_basic::rx_interrupts"] 673 [::std::mem::offset_of!(virtio_net_stats_rx_basic, rx_interrupts) - 32usize]; 674 ["Offset of field: virtio_net_stats_rx_basic::rx_drops"] 675 [::std::mem::offset_of!(virtio_net_stats_rx_basic, rx_drops) - 40usize]; 676 ["Offset of field: virtio_net_stats_rx_basic::rx_drop_overruns"] 677 [::std::mem::offset_of!(virtio_net_stats_rx_basic, rx_drop_overruns) - 48usize]; 678 }; 679 #[repr(C)] 680 #[derive(Debug, Default, Copy, Clone, PartialEq)] 681 pub struct virtio_net_stats_tx_basic { 682 pub hdr: virtio_net_stats_reply_hdr, 683 pub tx_notifications: __le64, 684 pub tx_packets: __le64, 685 pub tx_bytes: __le64, 686 pub tx_interrupts: __le64, 687 pub tx_drops: __le64, 688 pub tx_drop_malformed: __le64, 689 } 690 #[allow(clippy::unnecessary_operation, clippy::identity_op)] 691 const _: () = { 692 ["Size of virtio_net_stats_tx_basic"] 693 [::std::mem::size_of::<virtio_net_stats_tx_basic>() - 56usize]; 694 ["Alignment of virtio_net_stats_tx_basic"] 695 [::std::mem::align_of::<virtio_net_stats_tx_basic>() - 8usize]; 696 ["Offset of field: virtio_net_stats_tx_basic::hdr"] 697 [::std::mem::offset_of!(virtio_net_stats_tx_basic, hdr) - 0usize]; 698 ["Offset of field: virtio_net_stats_tx_basic::tx_notifications"] 699 [::std::mem::offset_of!(virtio_net_stats_tx_basic, tx_notifications) - 8usize]; 700 ["Offset of field: virtio_net_stats_tx_basic::tx_packets"] 701 [::std::mem::offset_of!(virtio_net_stats_tx_basic, tx_packets) - 16usize]; 702 ["Offset of field: virtio_net_stats_tx_basic::tx_bytes"] 703 [::std::mem::offset_of!(virtio_net_stats_tx_basic, tx_bytes) - 24usize]; 704 ["Offset of field: virtio_net_stats_tx_basic::tx_interrupts"] 705 [::std::mem::offset_of!(virtio_net_stats_tx_basic, tx_interrupts) - 32usize]; 706 ["Offset of field: virtio_net_stats_tx_basic::tx_drops"] 707 [::std::mem::offset_of!(virtio_net_stats_tx_basic, tx_drops) - 40usize]; 708 ["Offset of field: virtio_net_stats_tx_basic::tx_drop_malformed"] 709 [::std::mem::offset_of!(virtio_net_stats_tx_basic, tx_drop_malformed) - 48usize]; 710 }; 711 #[repr(C)] 712 #[derive(Debug, Default, Copy, Clone, PartialEq)] 713 pub struct virtio_net_stats_rx_csum { 714 pub hdr: virtio_net_stats_reply_hdr, 715 pub rx_csum_valid: __le64, 716 pub rx_needs_csum: __le64, 717 pub rx_csum_none: __le64, 718 pub rx_csum_bad: __le64, 719 } 720 #[allow(clippy::unnecessary_operation, clippy::identity_op)] 721 const _: () = { 722 ["Size of virtio_net_stats_rx_csum"] 723 [::std::mem::size_of::<virtio_net_stats_rx_csum>() - 40usize]; 724 ["Alignment of virtio_net_stats_rx_csum"] 725 [::std::mem::align_of::<virtio_net_stats_rx_csum>() - 8usize]; 726 ["Offset of field: virtio_net_stats_rx_csum::hdr"] 727 [::std::mem::offset_of!(virtio_net_stats_rx_csum, hdr) - 0usize]; 728 ["Offset of field: virtio_net_stats_rx_csum::rx_csum_valid"] 729 [::std::mem::offset_of!(virtio_net_stats_rx_csum, rx_csum_valid) - 8usize]; 730 ["Offset of field: virtio_net_stats_rx_csum::rx_needs_csum"] 731 [::std::mem::offset_of!(virtio_net_stats_rx_csum, rx_needs_csum) - 16usize]; 732 ["Offset of field: virtio_net_stats_rx_csum::rx_csum_none"] 733 [::std::mem::offset_of!(virtio_net_stats_rx_csum, rx_csum_none) - 24usize]; 734 ["Offset of field: virtio_net_stats_rx_csum::rx_csum_bad"] 735 [::std::mem::offset_of!(virtio_net_stats_rx_csum, rx_csum_bad) - 32usize]; 736 }; 737 #[repr(C)] 738 #[derive(Debug, Default, Copy, Clone, PartialEq)] 739 pub struct virtio_net_stats_tx_csum { 740 pub hdr: virtio_net_stats_reply_hdr, 741 pub tx_csum_none: __le64, 742 pub tx_needs_csum: __le64, 743 } 744 #[allow(clippy::unnecessary_operation, clippy::identity_op)] 745 const _: () = { 746 ["Size of virtio_net_stats_tx_csum"] 747 [::std::mem::size_of::<virtio_net_stats_tx_csum>() - 24usize]; 748 ["Alignment of virtio_net_stats_tx_csum"] 749 [::std::mem::align_of::<virtio_net_stats_tx_csum>() - 8usize]; 750 ["Offset of field: virtio_net_stats_tx_csum::hdr"] 751 [::std::mem::offset_of!(virtio_net_stats_tx_csum, hdr) - 0usize]; 752 ["Offset of field: virtio_net_stats_tx_csum::tx_csum_none"] 753 [::std::mem::offset_of!(virtio_net_stats_tx_csum, tx_csum_none) - 8usize]; 754 ["Offset of field: virtio_net_stats_tx_csum::tx_needs_csum"] 755 [::std::mem::offset_of!(virtio_net_stats_tx_csum, tx_needs_csum) - 16usize]; 756 }; 757 #[repr(C)] 758 #[derive(Debug, Default, Copy, Clone, PartialEq)] 759 pub struct virtio_net_stats_rx_gso { 760 pub hdr: virtio_net_stats_reply_hdr, 761 pub rx_gso_packets: __le64, 762 pub rx_gso_bytes: __le64, 763 pub rx_gso_packets_coalesced: __le64, 764 pub rx_gso_bytes_coalesced: __le64, 765 } 766 #[allow(clippy::unnecessary_operation, clippy::identity_op)] 767 const _: () = { 768 ["Size of virtio_net_stats_rx_gso"][::std::mem::size_of::<virtio_net_stats_rx_gso>() - 40usize]; 769 ["Alignment of virtio_net_stats_rx_gso"] 770 [::std::mem::align_of::<virtio_net_stats_rx_gso>() - 8usize]; 771 ["Offset of field: virtio_net_stats_rx_gso::hdr"] 772 [::std::mem::offset_of!(virtio_net_stats_rx_gso, hdr) - 0usize]; 773 ["Offset of field: virtio_net_stats_rx_gso::rx_gso_packets"] 774 [::std::mem::offset_of!(virtio_net_stats_rx_gso, rx_gso_packets) - 8usize]; 775 ["Offset of field: virtio_net_stats_rx_gso::rx_gso_bytes"] 776 [::std::mem::offset_of!(virtio_net_stats_rx_gso, rx_gso_bytes) - 16usize]; 777 ["Offset of field: virtio_net_stats_rx_gso::rx_gso_packets_coalesced"] 778 [::std::mem::offset_of!(virtio_net_stats_rx_gso, rx_gso_packets_coalesced) - 24usize]; 779 ["Offset of field: virtio_net_stats_rx_gso::rx_gso_bytes_coalesced"] 780 [::std::mem::offset_of!(virtio_net_stats_rx_gso, rx_gso_bytes_coalesced) - 32usize]; 781 }; 782 #[repr(C)] 783 #[derive(Debug, Default, Copy, Clone, PartialEq)] 784 pub struct virtio_net_stats_tx_gso { 785 pub hdr: virtio_net_stats_reply_hdr, 786 pub tx_gso_packets: __le64, 787 pub tx_gso_bytes: __le64, 788 pub tx_gso_segments: __le64, 789 pub tx_gso_segments_bytes: __le64, 790 pub tx_gso_packets_noseg: __le64, 791 pub tx_gso_bytes_noseg: __le64, 792 } 793 #[allow(clippy::unnecessary_operation, clippy::identity_op)] 794 const _: () = { 795 ["Size of virtio_net_stats_tx_gso"][::std::mem::size_of::<virtio_net_stats_tx_gso>() - 56usize]; 796 ["Alignment of virtio_net_stats_tx_gso"] 797 [::std::mem::align_of::<virtio_net_stats_tx_gso>() - 8usize]; 798 ["Offset of field: virtio_net_stats_tx_gso::hdr"] 799 [::std::mem::offset_of!(virtio_net_stats_tx_gso, hdr) - 0usize]; 800 ["Offset of field: virtio_net_stats_tx_gso::tx_gso_packets"] 801 [::std::mem::offset_of!(virtio_net_stats_tx_gso, tx_gso_packets) - 8usize]; 802 ["Offset of field: virtio_net_stats_tx_gso::tx_gso_bytes"] 803 [::std::mem::offset_of!(virtio_net_stats_tx_gso, tx_gso_bytes) - 16usize]; 804 ["Offset of field: virtio_net_stats_tx_gso::tx_gso_segments"] 805 [::std::mem::offset_of!(virtio_net_stats_tx_gso, tx_gso_segments) - 24usize]; 806 ["Offset of field: virtio_net_stats_tx_gso::tx_gso_segments_bytes"] 807 [::std::mem::offset_of!(virtio_net_stats_tx_gso, tx_gso_segments_bytes) - 32usize]; 808 ["Offset of field: virtio_net_stats_tx_gso::tx_gso_packets_noseg"] 809 [::std::mem::offset_of!(virtio_net_stats_tx_gso, tx_gso_packets_noseg) - 40usize]; 810 ["Offset of field: virtio_net_stats_tx_gso::tx_gso_bytes_noseg"] 811 [::std::mem::offset_of!(virtio_net_stats_tx_gso, tx_gso_bytes_noseg) - 48usize]; 812 }; 813 #[repr(C)] 814 #[derive(Debug, Default, Copy, Clone, PartialEq)] 815 pub struct virtio_net_stats_rx_speed { 816 pub hdr: virtio_net_stats_reply_hdr, 817 pub rx_ratelimit_packets: __le64, 818 pub rx_ratelimit_bytes: __le64, 819 } 820 #[allow(clippy::unnecessary_operation, clippy::identity_op)] 821 const _: () = { 822 ["Size of virtio_net_stats_rx_speed"] 823 [::std::mem::size_of::<virtio_net_stats_rx_speed>() - 24usize]; 824 ["Alignment of virtio_net_stats_rx_speed"] 825 [::std::mem::align_of::<virtio_net_stats_rx_speed>() - 8usize]; 826 ["Offset of field: virtio_net_stats_rx_speed::hdr"] 827 [::std::mem::offset_of!(virtio_net_stats_rx_speed, hdr) - 0usize]; 828 ["Offset of field: virtio_net_stats_rx_speed::rx_ratelimit_packets"] 829 [::std::mem::offset_of!(virtio_net_stats_rx_speed, rx_ratelimit_packets) - 8usize]; 830 ["Offset of field: virtio_net_stats_rx_speed::rx_ratelimit_bytes"] 831 [::std::mem::offset_of!(virtio_net_stats_rx_speed, rx_ratelimit_bytes) - 16usize]; 832 }; 833 #[repr(C)] 834 #[derive(Debug, Default, Copy, Clone, PartialEq)] 835 pub struct virtio_net_stats_tx_speed { 836 pub hdr: virtio_net_stats_reply_hdr, 837 pub tx_ratelimit_packets: __le64, 838 pub tx_ratelimit_bytes: __le64, 839 } 840 #[allow(clippy::unnecessary_operation, clippy::identity_op)] 841 const _: () = { 842 ["Size of virtio_net_stats_tx_speed"] 843 [::std::mem::size_of::<virtio_net_stats_tx_speed>() - 24usize]; 844 ["Alignment of virtio_net_stats_tx_speed"] 845 [::std::mem::align_of::<virtio_net_stats_tx_speed>() - 8usize]; 846 ["Offset of field: virtio_net_stats_tx_speed::hdr"] 847 [::std::mem::offset_of!(virtio_net_stats_tx_speed, hdr) - 0usize]; 848 ["Offset of field: virtio_net_stats_tx_speed::tx_ratelimit_packets"] 849 [::std::mem::offset_of!(virtio_net_stats_tx_speed, tx_ratelimit_packets) - 8usize]; 850 ["Offset of field: virtio_net_stats_tx_speed::tx_ratelimit_bytes"] 851 [::std::mem::offset_of!(virtio_net_stats_tx_speed, tx_ratelimit_bytes) - 16usize]; 852 }; 853