1#[repr(C)]
4#[derive(Default)]
5pub struct __IncompleteArrayField<T>(::std::marker::PhantomData<T>, [T; 0]);
6impl<T> __IncompleteArrayField<T> {
7 #[inline]
8 pub const fn new() -> Self {
9 __IncompleteArrayField(::std::marker::PhantomData, [])
10 }
11 #[inline]
12 pub fn as_ptr(&self) -> *const T {
13 self as *const _ as *const T
14 }
15 #[inline]
16 pub fn as_mut_ptr(&mut self) -> *mut T {
17 self as *mut _ as *mut T
18 }
19 #[inline]
20 pub unsafe fn as_slice(&self, len: usize) -> &[T] {
21 ::std::slice::from_raw_parts(self.as_ptr(), len)
22 }
23 #[inline]
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}
28impl<T> ::std::fmt::Debug for __IncompleteArrayField<T> {
29 fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
30 fmt.write_str("__IncompleteArrayField")
31 }
32}
33pub const VIRTIO_NET_F_CSUM: u32 = 0;
34pub const VIRTIO_NET_F_GUEST_CSUM: u32 = 1;
35pub const VIRTIO_NET_F_CTRL_GUEST_OFFLOADS: u32 = 2;
36pub const VIRTIO_NET_F_MTU: u32 = 3;
37pub const VIRTIO_NET_F_MAC: u32 = 5;
38pub const VIRTIO_NET_F_GUEST_TSO4: u32 = 7;
39pub const VIRTIO_NET_F_GUEST_TSO6: u32 = 8;
40pub const VIRTIO_NET_F_GUEST_ECN: u32 = 9;
41pub const VIRTIO_NET_F_GUEST_UFO: u32 = 10;
42pub const VIRTIO_NET_F_HOST_TSO4: u32 = 11;
43pub const VIRTIO_NET_F_HOST_TSO6: u32 = 12;
44pub const VIRTIO_NET_F_HOST_ECN: u32 = 13;
45pub const VIRTIO_NET_F_HOST_UFO: u32 = 14;
46pub const VIRTIO_NET_F_MRG_RXBUF: u32 = 15;
47pub const VIRTIO_NET_F_STATUS: u32 = 16;
48pub const VIRTIO_NET_F_CTRL_VQ: u32 = 17;
49pub const VIRTIO_NET_F_CTRL_RX: u32 = 18;
50pub const VIRTIO_NET_F_CTRL_VLAN: u32 = 19;
51pub const VIRTIO_NET_F_CTRL_RX_EXTRA: u32 = 20;
52pub const VIRTIO_NET_F_GUEST_ANNOUNCE: u32 = 21;
53pub const VIRTIO_NET_F_MQ: u32 = 22;
54pub const VIRTIO_NET_F_CTRL_MAC_ADDR: u32 = 23;
55pub const VIRTIO_NET_F_DEVICE_STATS: u32 = 50;
56pub const VIRTIO_NET_F_VQ_NOTF_COAL: u32 = 52;
57pub const VIRTIO_NET_F_NOTF_COAL: u32 = 53;
58pub const VIRTIO_NET_F_GUEST_USO4: u32 = 54;
59pub const VIRTIO_NET_F_GUEST_USO6: u32 = 55;
60pub const VIRTIO_NET_F_HOST_USO: u32 = 56;
61pub const VIRTIO_NET_F_HASH_REPORT: u32 = 57;
62pub const VIRTIO_NET_F_GUEST_HDRLEN: u32 = 59;
63pub const VIRTIO_NET_F_RSS: u32 = 60;
64pub const VIRTIO_NET_F_RSC_EXT: u32 = 61;
65pub const VIRTIO_NET_F_STANDBY: u32 = 62;
66pub const VIRTIO_NET_F_SPEED_DUPLEX: u32 = 63;
67pub const VIRTIO_NET_F_GSO: u32 = 6;
68pub const VIRTIO_NET_S_LINK_UP: u32 = 1;
69pub const VIRTIO_NET_S_ANNOUNCE: u32 = 2;
70pub const VIRTIO_NET_RSS_HASH_TYPE_IPv4: u32 = 1;
71pub const VIRTIO_NET_RSS_HASH_TYPE_TCPv4: u32 = 2;
72pub const VIRTIO_NET_RSS_HASH_TYPE_UDPv4: u32 = 4;
73pub const VIRTIO_NET_RSS_HASH_TYPE_IPv6: u32 = 8;
74pub const VIRTIO_NET_RSS_HASH_TYPE_TCPv6: u32 = 16;
75pub const VIRTIO_NET_RSS_HASH_TYPE_UDPv6: u32 = 32;
76pub const VIRTIO_NET_RSS_HASH_TYPE_IP_EX: u32 = 64;
77pub const VIRTIO_NET_RSS_HASH_TYPE_TCP_EX: u32 = 128;
78pub const VIRTIO_NET_RSS_HASH_TYPE_UDP_EX: u32 = 256;
79pub const VIRTIO_NET_HDR_F_NEEDS_CSUM: u32 = 1;
80pub const VIRTIO_NET_HDR_F_DATA_VALID: u32 = 2;
81pub const VIRTIO_NET_HDR_F_RSC_INFO: u32 = 4;
82pub const VIRTIO_NET_HDR_GSO_NONE: u32 = 0;
83pub const VIRTIO_NET_HDR_GSO_TCPV4: u32 = 1;
84pub const VIRTIO_NET_HDR_GSO_UDP: u32 = 3;
85pub const VIRTIO_NET_HDR_GSO_TCPV6: u32 = 4;
86pub const VIRTIO_NET_HDR_GSO_UDP_L4: u32 = 5;
87pub const VIRTIO_NET_HDR_GSO_ECN: u32 = 128;
88pub const VIRTIO_NET_HASH_REPORT_NONE: u32 = 0;
89pub const VIRTIO_NET_HASH_REPORT_IPv4: u32 = 1;
90pub const VIRTIO_NET_HASH_REPORT_TCPv4: u32 = 2;
91pub const VIRTIO_NET_HASH_REPORT_UDPv4: u32 = 3;
92pub const VIRTIO_NET_HASH_REPORT_IPv6: u32 = 4;
93pub const VIRTIO_NET_HASH_REPORT_TCPv6: u32 = 5;
94pub const VIRTIO_NET_HASH_REPORT_UDPv6: u32 = 6;
95pub const VIRTIO_NET_HASH_REPORT_IPv6_EX: u32 = 7;
96pub const VIRTIO_NET_HASH_REPORT_TCPv6_EX: u32 = 8;
97pub const VIRTIO_NET_HASH_REPORT_UDPv6_EX: u32 = 9;
98pub const VIRTIO_NET_OK: u32 = 0;
99pub const VIRTIO_NET_ERR: u32 = 1;
100pub const VIRTIO_NET_CTRL_RX: u32 = 0;
101pub const VIRTIO_NET_CTRL_RX_PROMISC: u32 = 0;
102pub const VIRTIO_NET_CTRL_RX_ALLMULTI: u32 = 1;
103pub const VIRTIO_NET_CTRL_RX_ALLUNI: u32 = 2;
104pub const VIRTIO_NET_CTRL_RX_NOMULTI: u32 = 3;
105pub const VIRTIO_NET_CTRL_RX_NOUNI: u32 = 4;
106pub const VIRTIO_NET_CTRL_RX_NOBCAST: u32 = 5;
107pub const VIRTIO_NET_CTRL_MAC: u32 = 1;
108pub const VIRTIO_NET_CTRL_MAC_TABLE_SET: u32 = 0;
109pub const VIRTIO_NET_CTRL_MAC_ADDR_SET: u32 = 1;
110pub const VIRTIO_NET_CTRL_VLAN: u32 = 2;
111pub const VIRTIO_NET_CTRL_VLAN_ADD: u32 = 0;
112pub const VIRTIO_NET_CTRL_VLAN_DEL: u32 = 1;
113pub const VIRTIO_NET_CTRL_ANNOUNCE: u32 = 3;
114pub const VIRTIO_NET_CTRL_ANNOUNCE_ACK: u32 = 0;
115pub const VIRTIO_NET_CTRL_MQ: u32 = 4;
116pub const VIRTIO_NET_CTRL_MQ_VQ_PAIRS_SET: u32 = 0;
117pub const VIRTIO_NET_CTRL_MQ_VQ_PAIRS_MIN: u32 = 1;
118pub const VIRTIO_NET_CTRL_MQ_VQ_PAIRS_MAX: u32 = 32768;
119pub const VIRTIO_NET_CTRL_MQ_RSS_CONFIG: u32 = 1;
120pub const VIRTIO_NET_CTRL_MQ_HASH_CONFIG: u32 = 2;
121pub const VIRTIO_NET_CTRL_GUEST_OFFLOADS: u32 = 5;
122pub const VIRTIO_NET_CTRL_GUEST_OFFLOADS_SET: u32 = 0;
123pub const VIRTIO_NET_CTRL_NOTF_COAL: u32 = 6;
124pub const VIRTIO_NET_CTRL_NOTF_COAL_TX_SET: u32 = 0;
125pub const VIRTIO_NET_CTRL_NOTF_COAL_RX_SET: u32 = 1;
126pub const VIRTIO_NET_CTRL_NOTF_COAL_VQ_SET: u32 = 2;
127pub const VIRTIO_NET_CTRL_NOTF_COAL_VQ_GET: u32 = 3;
128pub const VIRTIO_NET_CTRL_STATS: u32 = 8;
129pub const VIRTIO_NET_CTRL_STATS_QUERY: u32 = 0;
130pub const VIRTIO_NET_CTRL_STATS_GET: u32 = 1;
131pub const VIRTIO_NET_STATS_TYPE_CVQ: u64 = 4294967296;
132pub const VIRTIO_NET_STATS_TYPE_RX_BASIC: u32 = 1;
133pub const VIRTIO_NET_STATS_TYPE_RX_CSUM: u32 = 2;
134pub const VIRTIO_NET_STATS_TYPE_RX_GSO: u32 = 4;
135pub const VIRTIO_NET_STATS_TYPE_RX_SPEED: u32 = 8;
136pub const VIRTIO_NET_STATS_TYPE_TX_BASIC: u32 = 65536;
137pub const VIRTIO_NET_STATS_TYPE_TX_CSUM: u32 = 131072;
138pub const VIRTIO_NET_STATS_TYPE_TX_GSO: u32 = 262144;
139pub const VIRTIO_NET_STATS_TYPE_TX_SPEED: u32 = 524288;
140pub const VIRTIO_NET_STATS_TYPE_REPLY_CVQ: u32 = 32;
141pub const VIRTIO_NET_STATS_TYPE_REPLY_RX_BASIC: u32 = 0;
142pub const VIRTIO_NET_STATS_TYPE_REPLY_RX_CSUM: u32 = 1;
143pub const VIRTIO_NET_STATS_TYPE_REPLY_RX_GSO: u32 = 2;
144pub const VIRTIO_NET_STATS_TYPE_REPLY_RX_SPEED: u32 = 3;
145pub const VIRTIO_NET_STATS_TYPE_REPLY_TX_BASIC: u32 = 16;
146pub const VIRTIO_NET_STATS_TYPE_REPLY_TX_CSUM: u32 = 17;
147pub const VIRTIO_NET_STATS_TYPE_REPLY_TX_GSO: u32 = 18;
148pub const VIRTIO_NET_STATS_TYPE_REPLY_TX_SPEED: u32 = 19;
149pub type __u8 = ::std::os::raw::c_uchar;
150pub type __u16 = ::std::os::raw::c_ushort;
151pub type __u32 = ::std::os::raw::c_uint;
152pub type __u64 = ::std::os::raw::c_ulonglong;
153pub type __le16 = __u16;
154pub type __le32 = __u32;
155pub type __le64 = __u64;
156pub type __virtio16 = __u16;
157pub type __virtio32 = __u32;
158#[repr(C, packed)]
159#[derive(Debug, Default, Copy, Clone, PartialEq)]
160pub 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)]
172const _: () = {
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)]
196pub 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)]
206pub 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)]
213pub 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)]
218const _: () = {
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)]
234pub 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)]
239const _: () = {
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)]
251pub 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)]
256const _: () = {
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)]
267const _: () = {
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};
277impl Default for virtio_net_hdr_v1__bindgen_ty_1 {
278 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)]
287const _: () = {
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};
301impl Default for virtio_net_hdr_v1 {
302 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)]
312pub 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)]
319const _: () = {
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};
332impl Default for virtio_net_hdr_v1_hash {
333 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)]
343pub 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)]
352const _: () = {
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)]
370pub 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)]
375const _: () = {
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)]
387pub struct virtio_net_ctrl_hdr {
388 pub class: __u8,
389 pub cmd: __u8,
390}
391#[allow(clippy::unnecessary_operation, clippy::identity_op)]
392const _: () = {
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};
400pub type virtio_net_ctrl_ack = __u8;
401#[repr(C, packed)]
402pub struct virtio_net_ctrl_mac {
403 pub entries: __virtio32,
404 pub macs: __IncompleteArrayField<[__u8; 6usize]>,
405}
406#[allow(clippy::unnecessary_operation, clippy::identity_op)]
407const _: () = {
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};
415impl Default for virtio_net_ctrl_mac {
416 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)]
426pub struct virtio_net_ctrl_mq {
427 pub virtqueue_pairs: __virtio16,
428}
429#[allow(clippy::unnecessary_operation, clippy::identity_op)]
430const _: () = {
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)]
438pub 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)]
448const _: () = {
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)]
469pub struct virtio_net_rss_config_hdr {
470 pub hash_types: __le32,
471 pub indirection_table_mask: __le16,
472 pub unclassified_queue: __le16,
473 pub indirection_table: __IncompleteArrayField<__le16>,
474}
475#[allow(clippy::unnecessary_operation, clippy::identity_op)]
476const _: () = {
477 ["Size of virtio_net_rss_config_hdr"]
478 [::std::mem::size_of::<virtio_net_rss_config_hdr>() - 8usize];
479 ["Alignment of virtio_net_rss_config_hdr"]
480 [::std::mem::align_of::<virtio_net_rss_config_hdr>() - 4usize];
481 ["Offset of field: virtio_net_rss_config_hdr::hash_types"]
482 [::std::mem::offset_of!(virtio_net_rss_config_hdr, hash_types) - 0usize];
483 ["Offset of field: virtio_net_rss_config_hdr::indirection_table_mask"]
484 [::std::mem::offset_of!(virtio_net_rss_config_hdr, indirection_table_mask) - 4usize];
485 ["Offset of field: virtio_net_rss_config_hdr::unclassified_queue"]
486 [::std::mem::offset_of!(virtio_net_rss_config_hdr, unclassified_queue) - 6usize];
487 ["Offset of field: virtio_net_rss_config_hdr::indirection_table"]
488 [::std::mem::offset_of!(virtio_net_rss_config_hdr, indirection_table) - 8usize];
489};
490#[repr(C)]
491#[derive(Debug, Default)]
492pub struct virtio_net_rss_config_trailer {
493 pub max_tx_vq: __le16,
494 pub hash_key_length: __u8,
495 pub hash_key_data: __IncompleteArrayField<__u8>,
496}
497#[allow(clippy::unnecessary_operation, clippy::identity_op)]
498const _: () = {
499 ["Size of virtio_net_rss_config_trailer"]
500 [::std::mem::size_of::<virtio_net_rss_config_trailer>() - 4usize];
501 ["Alignment of virtio_net_rss_config_trailer"]
502 [::std::mem::align_of::<virtio_net_rss_config_trailer>() - 2usize];
503 ["Offset of field: virtio_net_rss_config_trailer::max_tx_vq"]
504 [::std::mem::offset_of!(virtio_net_rss_config_trailer, max_tx_vq) - 0usize];
505 ["Offset of field: virtio_net_rss_config_trailer::hash_key_length"]
506 [::std::mem::offset_of!(virtio_net_rss_config_trailer, hash_key_length) - 2usize];
507 ["Offset of field: virtio_net_rss_config_trailer::hash_key_data"]
508 [::std::mem::offset_of!(virtio_net_rss_config_trailer, hash_key_data) - 3usize];
509};
510#[repr(C)]
511#[derive(Debug, Default)]
512pub struct virtio_net_hash_config {
513 pub hash_types: __le32,
514 pub reserved: [__le16; 4usize],
515 pub hash_key_length: __u8,
516 pub hash_key_data: __IncompleteArrayField<__u8>,
517}
518#[allow(clippy::unnecessary_operation, clippy::identity_op)]
519const _: () = {
520 ["Size of virtio_net_hash_config"][::std::mem::size_of::<virtio_net_hash_config>() - 16usize];
521 ["Alignment of virtio_net_hash_config"]
522 [::std::mem::align_of::<virtio_net_hash_config>() - 4usize];
523 ["Offset of field: virtio_net_hash_config::hash_types"]
524 [::std::mem::offset_of!(virtio_net_hash_config, hash_types) - 0usize];
525 ["Offset of field: virtio_net_hash_config::reserved"]
526 [::std::mem::offset_of!(virtio_net_hash_config, reserved) - 4usize];
527 ["Offset of field: virtio_net_hash_config::hash_key_length"]
528 [::std::mem::offset_of!(virtio_net_hash_config, hash_key_length) - 12usize];
529 ["Offset of field: virtio_net_hash_config::hash_key_data"]
530 [::std::mem::offset_of!(virtio_net_hash_config, hash_key_data) - 13usize];
531};
532#[repr(C)]
533#[derive(Debug, Default, Copy, Clone, PartialEq)]
534pub struct virtio_net_ctrl_coal_tx {
535 pub tx_max_packets: __le32,
536 pub tx_usecs: __le32,
537}
538#[allow(clippy::unnecessary_operation, clippy::identity_op)]
539const _: () = {
540 ["Size of virtio_net_ctrl_coal_tx"][::std::mem::size_of::<virtio_net_ctrl_coal_tx>() - 8usize];
541 ["Alignment of virtio_net_ctrl_coal_tx"]
542 [::std::mem::align_of::<virtio_net_ctrl_coal_tx>() - 4usize];
543 ["Offset of field: virtio_net_ctrl_coal_tx::tx_max_packets"]
544 [::std::mem::offset_of!(virtio_net_ctrl_coal_tx, tx_max_packets) - 0usize];
545 ["Offset of field: virtio_net_ctrl_coal_tx::tx_usecs"]
546 [::std::mem::offset_of!(virtio_net_ctrl_coal_tx, tx_usecs) - 4usize];
547};
548#[repr(C)]
549#[derive(Debug, Default, Copy, Clone, PartialEq)]
550pub struct virtio_net_ctrl_coal_rx {
551 pub rx_max_packets: __le32,
552 pub rx_usecs: __le32,
553}
554#[allow(clippy::unnecessary_operation, clippy::identity_op)]
555const _: () = {
556 ["Size of virtio_net_ctrl_coal_rx"][::std::mem::size_of::<virtio_net_ctrl_coal_rx>() - 8usize];
557 ["Alignment of virtio_net_ctrl_coal_rx"]
558 [::std::mem::align_of::<virtio_net_ctrl_coal_rx>() - 4usize];
559 ["Offset of field: virtio_net_ctrl_coal_rx::rx_max_packets"]
560 [::std::mem::offset_of!(virtio_net_ctrl_coal_rx, rx_max_packets) - 0usize];
561 ["Offset of field: virtio_net_ctrl_coal_rx::rx_usecs"]
562 [::std::mem::offset_of!(virtio_net_ctrl_coal_rx, rx_usecs) - 4usize];
563};
564#[repr(C)]
565#[derive(Debug, Default, Copy, Clone, PartialEq)]
566pub struct virtio_net_ctrl_coal {
567 pub max_packets: __le32,
568 pub max_usecs: __le32,
569}
570#[allow(clippy::unnecessary_operation, clippy::identity_op)]
571const _: () = {
572 ["Size of virtio_net_ctrl_coal"][::std::mem::size_of::<virtio_net_ctrl_coal>() - 8usize];
573 ["Alignment of virtio_net_ctrl_coal"][::std::mem::align_of::<virtio_net_ctrl_coal>() - 4usize];
574 ["Offset of field: virtio_net_ctrl_coal::max_packets"]
575 [::std::mem::offset_of!(virtio_net_ctrl_coal, max_packets) - 0usize];
576 ["Offset of field: virtio_net_ctrl_coal::max_usecs"]
577 [::std::mem::offset_of!(virtio_net_ctrl_coal, max_usecs) - 4usize];
578};
579#[repr(C)]
580#[derive(Debug, Default, Copy, Clone, PartialEq)]
581pub struct virtio_net_ctrl_coal_vq {
582 pub vqn: __le16,
583 pub reserved: __le16,
584 pub coal: virtio_net_ctrl_coal,
585}
586#[allow(clippy::unnecessary_operation, clippy::identity_op)]
587const _: () = {
588 ["Size of virtio_net_ctrl_coal_vq"][::std::mem::size_of::<virtio_net_ctrl_coal_vq>() - 12usize];
589 ["Alignment of virtio_net_ctrl_coal_vq"]
590 [::std::mem::align_of::<virtio_net_ctrl_coal_vq>() - 4usize];
591 ["Offset of field: virtio_net_ctrl_coal_vq::vqn"]
592 [::std::mem::offset_of!(virtio_net_ctrl_coal_vq, vqn) - 0usize];
593 ["Offset of field: virtio_net_ctrl_coal_vq::reserved"]
594 [::std::mem::offset_of!(virtio_net_ctrl_coal_vq, reserved) - 2usize];
595 ["Offset of field: virtio_net_ctrl_coal_vq::coal"]
596 [::std::mem::offset_of!(virtio_net_ctrl_coal_vq, coal) - 4usize];
597};
598#[repr(C)]
599#[derive(Debug, Default, Copy, Clone, PartialEq)]
600pub struct virtio_net_stats_capabilities {
601 pub supported_stats_types: [__le64; 1usize],
602}
603#[allow(clippy::unnecessary_operation, clippy::identity_op)]
604const _: () = {
605 ["Size of virtio_net_stats_capabilities"]
606 [::std::mem::size_of::<virtio_net_stats_capabilities>() - 8usize];
607 ["Alignment of virtio_net_stats_capabilities"]
608 [::std::mem::align_of::<virtio_net_stats_capabilities>() - 8usize];
609 ["Offset of field: virtio_net_stats_capabilities::supported_stats_types"]
610 [::std::mem::offset_of!(virtio_net_stats_capabilities, supported_stats_types) - 0usize];
611};
612#[repr(C)]
613#[derive(Debug, Default, Copy, Clone, PartialEq)]
614pub struct virtio_net_ctrl_queue_stats {
615 pub stats: [virtio_net_ctrl_queue_stats__bindgen_ty_1; 1usize],
616}
617#[repr(C)]
618#[derive(Debug, Default, Copy, Clone, PartialEq)]
619pub struct virtio_net_ctrl_queue_stats__bindgen_ty_1 {
620 pub vq_index: __le16,
621 pub reserved: [__le16; 3usize],
622 pub types_bitmap: [__le64; 1usize],
623}
624#[allow(clippy::unnecessary_operation, clippy::identity_op)]
625const _: () = {
626 ["Size of virtio_net_ctrl_queue_stats__bindgen_ty_1"]
627 [::std::mem::size_of::<virtio_net_ctrl_queue_stats__bindgen_ty_1>() - 16usize];
628 ["Alignment of virtio_net_ctrl_queue_stats__bindgen_ty_1"]
629 [::std::mem::align_of::<virtio_net_ctrl_queue_stats__bindgen_ty_1>() - 8usize];
630 ["Offset of field: virtio_net_ctrl_queue_stats__bindgen_ty_1::vq_index"]
631 [::std::mem::offset_of!(virtio_net_ctrl_queue_stats__bindgen_ty_1, vq_index) - 0usize];
632 ["Offset of field: virtio_net_ctrl_queue_stats__bindgen_ty_1::reserved"]
633 [::std::mem::offset_of!(virtio_net_ctrl_queue_stats__bindgen_ty_1, reserved) - 2usize];
634 ["Offset of field: virtio_net_ctrl_queue_stats__bindgen_ty_1::types_bitmap"]
635 [::std::mem::offset_of!(virtio_net_ctrl_queue_stats__bindgen_ty_1, types_bitmap) - 8usize];
636};
637#[allow(clippy::unnecessary_operation, clippy::identity_op)]
638const _: () = {
639 ["Size of virtio_net_ctrl_queue_stats"]
640 [::std::mem::size_of::<virtio_net_ctrl_queue_stats>() - 16usize];
641 ["Alignment of virtio_net_ctrl_queue_stats"]
642 [::std::mem::align_of::<virtio_net_ctrl_queue_stats>() - 8usize];
643 ["Offset of field: virtio_net_ctrl_queue_stats::stats"]
644 [::std::mem::offset_of!(virtio_net_ctrl_queue_stats, stats) - 0usize];
645};
646#[repr(C)]
647#[derive(Debug, Default, Copy, Clone, PartialEq)]
648pub struct virtio_net_stats_reply_hdr {
649 pub type_: __u8,
650 pub reserved: __u8,
651 pub vq_index: __le16,
652 pub reserved1: __le16,
653 pub size: __le16,
654}
655#[allow(clippy::unnecessary_operation, clippy::identity_op)]
656const _: () = {
657 ["Size of virtio_net_stats_reply_hdr"]
658 [::std::mem::size_of::<virtio_net_stats_reply_hdr>() - 8usize];
659 ["Alignment of virtio_net_stats_reply_hdr"]
660 [::std::mem::align_of::<virtio_net_stats_reply_hdr>() - 2usize];
661 ["Offset of field: virtio_net_stats_reply_hdr::type_"]
662 [::std::mem::offset_of!(virtio_net_stats_reply_hdr, type_) - 0usize];
663 ["Offset of field: virtio_net_stats_reply_hdr::reserved"]
664 [::std::mem::offset_of!(virtio_net_stats_reply_hdr, reserved) - 1usize];
665 ["Offset of field: virtio_net_stats_reply_hdr::vq_index"]
666 [::std::mem::offset_of!(virtio_net_stats_reply_hdr, vq_index) - 2usize];
667 ["Offset of field: virtio_net_stats_reply_hdr::reserved1"]
668 [::std::mem::offset_of!(virtio_net_stats_reply_hdr, reserved1) - 4usize];
669 ["Offset of field: virtio_net_stats_reply_hdr::size"]
670 [::std::mem::offset_of!(virtio_net_stats_reply_hdr, size) - 6usize];
671};
672#[repr(C)]
673#[derive(Debug, Default, Copy, Clone, PartialEq)]
674pub struct virtio_net_stats_cvq {
675 pub hdr: virtio_net_stats_reply_hdr,
676 pub command_num: __le64,
677 pub ok_num: __le64,
678}
679#[allow(clippy::unnecessary_operation, clippy::identity_op)]
680const _: () = {
681 ["Size of virtio_net_stats_cvq"][::std::mem::size_of::<virtio_net_stats_cvq>() - 24usize];
682 ["Alignment of virtio_net_stats_cvq"][::std::mem::align_of::<virtio_net_stats_cvq>() - 8usize];
683 ["Offset of field: virtio_net_stats_cvq::hdr"]
684 [::std::mem::offset_of!(virtio_net_stats_cvq, hdr) - 0usize];
685 ["Offset of field: virtio_net_stats_cvq::command_num"]
686 [::std::mem::offset_of!(virtio_net_stats_cvq, command_num) - 8usize];
687 ["Offset of field: virtio_net_stats_cvq::ok_num"]
688 [::std::mem::offset_of!(virtio_net_stats_cvq, ok_num) - 16usize];
689};
690#[repr(C)]
691#[derive(Debug, Default, Copy, Clone, PartialEq)]
692pub struct virtio_net_stats_rx_basic {
693 pub hdr: virtio_net_stats_reply_hdr,
694 pub rx_notifications: __le64,
695 pub rx_packets: __le64,
696 pub rx_bytes: __le64,
697 pub rx_interrupts: __le64,
698 pub rx_drops: __le64,
699 pub rx_drop_overruns: __le64,
700}
701#[allow(clippy::unnecessary_operation, clippy::identity_op)]
702const _: () = {
703 ["Size of virtio_net_stats_rx_basic"]
704 [::std::mem::size_of::<virtio_net_stats_rx_basic>() - 56usize];
705 ["Alignment of virtio_net_stats_rx_basic"]
706 [::std::mem::align_of::<virtio_net_stats_rx_basic>() - 8usize];
707 ["Offset of field: virtio_net_stats_rx_basic::hdr"]
708 [::std::mem::offset_of!(virtio_net_stats_rx_basic, hdr) - 0usize];
709 ["Offset of field: virtio_net_stats_rx_basic::rx_notifications"]
710 [::std::mem::offset_of!(virtio_net_stats_rx_basic, rx_notifications) - 8usize];
711 ["Offset of field: virtio_net_stats_rx_basic::rx_packets"]
712 [::std::mem::offset_of!(virtio_net_stats_rx_basic, rx_packets) - 16usize];
713 ["Offset of field: virtio_net_stats_rx_basic::rx_bytes"]
714 [::std::mem::offset_of!(virtio_net_stats_rx_basic, rx_bytes) - 24usize];
715 ["Offset of field: virtio_net_stats_rx_basic::rx_interrupts"]
716 [::std::mem::offset_of!(virtio_net_stats_rx_basic, rx_interrupts) - 32usize];
717 ["Offset of field: virtio_net_stats_rx_basic::rx_drops"]
718 [::std::mem::offset_of!(virtio_net_stats_rx_basic, rx_drops) - 40usize];
719 ["Offset of field: virtio_net_stats_rx_basic::rx_drop_overruns"]
720 [::std::mem::offset_of!(virtio_net_stats_rx_basic, rx_drop_overruns) - 48usize];
721};
722#[repr(C)]
723#[derive(Debug, Default, Copy, Clone, PartialEq)]
724pub struct virtio_net_stats_tx_basic {
725 pub hdr: virtio_net_stats_reply_hdr,
726 pub tx_notifications: __le64,
727 pub tx_packets: __le64,
728 pub tx_bytes: __le64,
729 pub tx_interrupts: __le64,
730 pub tx_drops: __le64,
731 pub tx_drop_malformed: __le64,
732}
733#[allow(clippy::unnecessary_operation, clippy::identity_op)]
734const _: () = {
735 ["Size of virtio_net_stats_tx_basic"]
736 [::std::mem::size_of::<virtio_net_stats_tx_basic>() - 56usize];
737 ["Alignment of virtio_net_stats_tx_basic"]
738 [::std::mem::align_of::<virtio_net_stats_tx_basic>() - 8usize];
739 ["Offset of field: virtio_net_stats_tx_basic::hdr"]
740 [::std::mem::offset_of!(virtio_net_stats_tx_basic, hdr) - 0usize];
741 ["Offset of field: virtio_net_stats_tx_basic::tx_notifications"]
742 [::std::mem::offset_of!(virtio_net_stats_tx_basic, tx_notifications) - 8usize];
743 ["Offset of field: virtio_net_stats_tx_basic::tx_packets"]
744 [::std::mem::offset_of!(virtio_net_stats_tx_basic, tx_packets) - 16usize];
745 ["Offset of field: virtio_net_stats_tx_basic::tx_bytes"]
746 [::std::mem::offset_of!(virtio_net_stats_tx_basic, tx_bytes) - 24usize];
747 ["Offset of field: virtio_net_stats_tx_basic::tx_interrupts"]
748 [::std::mem::offset_of!(virtio_net_stats_tx_basic, tx_interrupts) - 32usize];
749 ["Offset of field: virtio_net_stats_tx_basic::tx_drops"]
750 [::std::mem::offset_of!(virtio_net_stats_tx_basic, tx_drops) - 40usize];
751 ["Offset of field: virtio_net_stats_tx_basic::tx_drop_malformed"]
752 [::std::mem::offset_of!(virtio_net_stats_tx_basic, tx_drop_malformed) - 48usize];
753};
754#[repr(C)]
755#[derive(Debug, Default, Copy, Clone, PartialEq)]
756pub struct virtio_net_stats_rx_csum {
757 pub hdr: virtio_net_stats_reply_hdr,
758 pub rx_csum_valid: __le64,
759 pub rx_needs_csum: __le64,
760 pub rx_csum_none: __le64,
761 pub rx_csum_bad: __le64,
762}
763#[allow(clippy::unnecessary_operation, clippy::identity_op)]
764const _: () = {
765 ["Size of virtio_net_stats_rx_csum"]
766 [::std::mem::size_of::<virtio_net_stats_rx_csum>() - 40usize];
767 ["Alignment of virtio_net_stats_rx_csum"]
768 [::std::mem::align_of::<virtio_net_stats_rx_csum>() - 8usize];
769 ["Offset of field: virtio_net_stats_rx_csum::hdr"]
770 [::std::mem::offset_of!(virtio_net_stats_rx_csum, hdr) - 0usize];
771 ["Offset of field: virtio_net_stats_rx_csum::rx_csum_valid"]
772 [::std::mem::offset_of!(virtio_net_stats_rx_csum, rx_csum_valid) - 8usize];
773 ["Offset of field: virtio_net_stats_rx_csum::rx_needs_csum"]
774 [::std::mem::offset_of!(virtio_net_stats_rx_csum, rx_needs_csum) - 16usize];
775 ["Offset of field: virtio_net_stats_rx_csum::rx_csum_none"]
776 [::std::mem::offset_of!(virtio_net_stats_rx_csum, rx_csum_none) - 24usize];
777 ["Offset of field: virtio_net_stats_rx_csum::rx_csum_bad"]
778 [::std::mem::offset_of!(virtio_net_stats_rx_csum, rx_csum_bad) - 32usize];
779};
780#[repr(C)]
781#[derive(Debug, Default, Copy, Clone, PartialEq)]
782pub struct virtio_net_stats_tx_csum {
783 pub hdr: virtio_net_stats_reply_hdr,
784 pub tx_csum_none: __le64,
785 pub tx_needs_csum: __le64,
786}
787#[allow(clippy::unnecessary_operation, clippy::identity_op)]
788const _: () = {
789 ["Size of virtio_net_stats_tx_csum"]
790 [::std::mem::size_of::<virtio_net_stats_tx_csum>() - 24usize];
791 ["Alignment of virtio_net_stats_tx_csum"]
792 [::std::mem::align_of::<virtio_net_stats_tx_csum>() - 8usize];
793 ["Offset of field: virtio_net_stats_tx_csum::hdr"]
794 [::std::mem::offset_of!(virtio_net_stats_tx_csum, hdr) - 0usize];
795 ["Offset of field: virtio_net_stats_tx_csum::tx_csum_none"]
796 [::std::mem::offset_of!(virtio_net_stats_tx_csum, tx_csum_none) - 8usize];
797 ["Offset of field: virtio_net_stats_tx_csum::tx_needs_csum"]
798 [::std::mem::offset_of!(virtio_net_stats_tx_csum, tx_needs_csum) - 16usize];
799};
800#[repr(C)]
801#[derive(Debug, Default, Copy, Clone, PartialEq)]
802pub struct virtio_net_stats_rx_gso {
803 pub hdr: virtio_net_stats_reply_hdr,
804 pub rx_gso_packets: __le64,
805 pub rx_gso_bytes: __le64,
806 pub rx_gso_packets_coalesced: __le64,
807 pub rx_gso_bytes_coalesced: __le64,
808}
809#[allow(clippy::unnecessary_operation, clippy::identity_op)]
810const _: () = {
811 ["Size of virtio_net_stats_rx_gso"][::std::mem::size_of::<virtio_net_stats_rx_gso>() - 40usize];
812 ["Alignment of virtio_net_stats_rx_gso"]
813 [::std::mem::align_of::<virtio_net_stats_rx_gso>() - 8usize];
814 ["Offset of field: virtio_net_stats_rx_gso::hdr"]
815 [::std::mem::offset_of!(virtio_net_stats_rx_gso, hdr) - 0usize];
816 ["Offset of field: virtio_net_stats_rx_gso::rx_gso_packets"]
817 [::std::mem::offset_of!(virtio_net_stats_rx_gso, rx_gso_packets) - 8usize];
818 ["Offset of field: virtio_net_stats_rx_gso::rx_gso_bytes"]
819 [::std::mem::offset_of!(virtio_net_stats_rx_gso, rx_gso_bytes) - 16usize];
820 ["Offset of field: virtio_net_stats_rx_gso::rx_gso_packets_coalesced"]
821 [::std::mem::offset_of!(virtio_net_stats_rx_gso, rx_gso_packets_coalesced) - 24usize];
822 ["Offset of field: virtio_net_stats_rx_gso::rx_gso_bytes_coalesced"]
823 [::std::mem::offset_of!(virtio_net_stats_rx_gso, rx_gso_bytes_coalesced) - 32usize];
824};
825#[repr(C)]
826#[derive(Debug, Default, Copy, Clone, PartialEq)]
827pub struct virtio_net_stats_tx_gso {
828 pub hdr: virtio_net_stats_reply_hdr,
829 pub tx_gso_packets: __le64,
830 pub tx_gso_bytes: __le64,
831 pub tx_gso_segments: __le64,
832 pub tx_gso_segments_bytes: __le64,
833 pub tx_gso_packets_noseg: __le64,
834 pub tx_gso_bytes_noseg: __le64,
835}
836#[allow(clippy::unnecessary_operation, clippy::identity_op)]
837const _: () = {
838 ["Size of virtio_net_stats_tx_gso"][::std::mem::size_of::<virtio_net_stats_tx_gso>() - 56usize];
839 ["Alignment of virtio_net_stats_tx_gso"]
840 [::std::mem::align_of::<virtio_net_stats_tx_gso>() - 8usize];
841 ["Offset of field: virtio_net_stats_tx_gso::hdr"]
842 [::std::mem::offset_of!(virtio_net_stats_tx_gso, hdr) - 0usize];
843 ["Offset of field: virtio_net_stats_tx_gso::tx_gso_packets"]
844 [::std::mem::offset_of!(virtio_net_stats_tx_gso, tx_gso_packets) - 8usize];
845 ["Offset of field: virtio_net_stats_tx_gso::tx_gso_bytes"]
846 [::std::mem::offset_of!(virtio_net_stats_tx_gso, tx_gso_bytes) - 16usize];
847 ["Offset of field: virtio_net_stats_tx_gso::tx_gso_segments"]
848 [::std::mem::offset_of!(virtio_net_stats_tx_gso, tx_gso_segments) - 24usize];
849 ["Offset of field: virtio_net_stats_tx_gso::tx_gso_segments_bytes"]
850 [::std::mem::offset_of!(virtio_net_stats_tx_gso, tx_gso_segments_bytes) - 32usize];
851 ["Offset of field: virtio_net_stats_tx_gso::tx_gso_packets_noseg"]
852 [::std::mem::offset_of!(virtio_net_stats_tx_gso, tx_gso_packets_noseg) - 40usize];
853 ["Offset of field: virtio_net_stats_tx_gso::tx_gso_bytes_noseg"]
854 [::std::mem::offset_of!(virtio_net_stats_tx_gso, tx_gso_bytes_noseg) - 48usize];
855};
856#[repr(C)]
857#[derive(Debug, Default, Copy, Clone, PartialEq)]
858pub struct virtio_net_stats_rx_speed {
859 pub hdr: virtio_net_stats_reply_hdr,
860 pub rx_ratelimit_packets: __le64,
861 pub rx_ratelimit_bytes: __le64,
862}
863#[allow(clippy::unnecessary_operation, clippy::identity_op)]
864const _: () = {
865 ["Size of virtio_net_stats_rx_speed"]
866 [::std::mem::size_of::<virtio_net_stats_rx_speed>() - 24usize];
867 ["Alignment of virtio_net_stats_rx_speed"]
868 [::std::mem::align_of::<virtio_net_stats_rx_speed>() - 8usize];
869 ["Offset of field: virtio_net_stats_rx_speed::hdr"]
870 [::std::mem::offset_of!(virtio_net_stats_rx_speed, hdr) - 0usize];
871 ["Offset of field: virtio_net_stats_rx_speed::rx_ratelimit_packets"]
872 [::std::mem::offset_of!(virtio_net_stats_rx_speed, rx_ratelimit_packets) - 8usize];
873 ["Offset of field: virtio_net_stats_rx_speed::rx_ratelimit_bytes"]
874 [::std::mem::offset_of!(virtio_net_stats_rx_speed, rx_ratelimit_bytes) - 16usize];
875};
876#[repr(C)]
877#[derive(Debug, Default, Copy, Clone, PartialEq)]
878pub struct virtio_net_stats_tx_speed {
879 pub hdr: virtio_net_stats_reply_hdr,
880 pub tx_ratelimit_packets: __le64,
881 pub tx_ratelimit_bytes: __le64,
882}
883#[allow(clippy::unnecessary_operation, clippy::identity_op)]
884const _: () = {
885 ["Size of virtio_net_stats_tx_speed"]
886 [::std::mem::size_of::<virtio_net_stats_tx_speed>() - 24usize];
887 ["Alignment of virtio_net_stats_tx_speed"]
888 [::std::mem::align_of::<virtio_net_stats_tx_speed>() - 8usize];
889 ["Offset of field: virtio_net_stats_tx_speed::hdr"]
890 [::std::mem::offset_of!(virtio_net_stats_tx_speed, hdr) - 0usize];
891 ["Offset of field: virtio_net_stats_tx_speed::tx_ratelimit_packets"]
892 [::std::mem::offset_of!(virtio_net_stats_tx_speed, tx_ratelimit_packets) - 8usize];
893 ["Offset of field: virtio_net_stats_tx_speed::tx_ratelimit_bytes"]
894 [::std::mem::offset_of!(virtio_net_stats_tx_speed, tx_ratelimit_bytes) - 16usize];
895};