• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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