1 /* automatically generated by rust-bindgen 0.63.0 */
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_NOTF_COAL: u32 = 53;
56 pub const VIRTIO_NET_F_GUEST_USO4: u32 = 54;
57 pub const VIRTIO_NET_F_GUEST_USO6: u32 = 55;
58 pub const VIRTIO_NET_F_HOST_USO: u32 = 56;
59 pub const VIRTIO_NET_F_HASH_REPORT: u32 = 57;
60 pub const VIRTIO_NET_F_GUEST_HDRLEN: u32 = 59;
61 pub const VIRTIO_NET_F_RSS: u32 = 60;
62 pub const VIRTIO_NET_F_RSC_EXT: u32 = 61;
63 pub const VIRTIO_NET_F_STANDBY: u32 = 62;
64 pub const VIRTIO_NET_F_SPEED_DUPLEX: u32 = 63;
65 pub const VIRTIO_NET_F_GSO: u32 = 6;
66 pub const VIRTIO_NET_S_LINK_UP: u32 = 1;
67 pub const VIRTIO_NET_S_ANNOUNCE: u32 = 2;
68 pub const VIRTIO_NET_RSS_HASH_TYPE_IPv4: u32 = 1;
69 pub const VIRTIO_NET_RSS_HASH_TYPE_TCPv4: u32 = 2;
70 pub const VIRTIO_NET_RSS_HASH_TYPE_UDPv4: u32 = 4;
71 pub const VIRTIO_NET_RSS_HASH_TYPE_IPv6: u32 = 8;
72 pub const VIRTIO_NET_RSS_HASH_TYPE_TCPv6: u32 = 16;
73 pub const VIRTIO_NET_RSS_HASH_TYPE_UDPv6: u32 = 32;
74 pub const VIRTIO_NET_RSS_HASH_TYPE_IP_EX: u32 = 64;
75 pub const VIRTIO_NET_RSS_HASH_TYPE_TCP_EX: u32 = 128;
76 pub const VIRTIO_NET_RSS_HASH_TYPE_UDP_EX: u32 = 256;
77 pub const VIRTIO_NET_HDR_F_NEEDS_CSUM: u32 = 1;
78 pub const VIRTIO_NET_HDR_F_DATA_VALID: u32 = 2;
79 pub const VIRTIO_NET_HDR_F_RSC_INFO: u32 = 4;
80 pub const VIRTIO_NET_HDR_GSO_NONE: u32 = 0;
81 pub const VIRTIO_NET_HDR_GSO_TCPV4: u32 = 1;
82 pub const VIRTIO_NET_HDR_GSO_UDP: u32 = 3;
83 pub const VIRTIO_NET_HDR_GSO_TCPV6: u32 = 4;
84 pub const VIRTIO_NET_HDR_GSO_UDP_L4: u32 = 5;
85 pub const VIRTIO_NET_HDR_GSO_ECN: u32 = 128;
86 pub const VIRTIO_NET_HASH_REPORT_NONE: u32 = 0;
87 pub const VIRTIO_NET_HASH_REPORT_IPv4: u32 = 1;
88 pub const VIRTIO_NET_HASH_REPORT_TCPv4: u32 = 2;
89 pub const VIRTIO_NET_HASH_REPORT_UDPv4: u32 = 3;
90 pub const VIRTIO_NET_HASH_REPORT_IPv6: u32 = 4;
91 pub const VIRTIO_NET_HASH_REPORT_TCPv6: u32 = 5;
92 pub const VIRTIO_NET_HASH_REPORT_UDPv6: u32 = 6;
93 pub const VIRTIO_NET_HASH_REPORT_IPv6_EX: u32 = 7;
94 pub const VIRTIO_NET_HASH_REPORT_TCPv6_EX: u32 = 8;
95 pub const VIRTIO_NET_HASH_REPORT_UDPv6_EX: u32 = 9;
96 pub const VIRTIO_NET_OK: u32 = 0;
97 pub const VIRTIO_NET_ERR: u32 = 1;
98 pub const VIRTIO_NET_CTRL_RX: u32 = 0;
99 pub const VIRTIO_NET_CTRL_RX_PROMISC: u32 = 0;
100 pub const VIRTIO_NET_CTRL_RX_ALLMULTI: u32 = 1;
101 pub const VIRTIO_NET_CTRL_RX_ALLUNI: u32 = 2;
102 pub const VIRTIO_NET_CTRL_RX_NOMULTI: u32 = 3;
103 pub const VIRTIO_NET_CTRL_RX_NOUNI: u32 = 4;
104 pub const VIRTIO_NET_CTRL_RX_NOBCAST: u32 = 5;
105 pub const VIRTIO_NET_CTRL_MAC: u32 = 1;
106 pub const VIRTIO_NET_CTRL_MAC_TABLE_SET: u32 = 0;
107 pub const VIRTIO_NET_CTRL_MAC_ADDR_SET: u32 = 1;
108 pub const VIRTIO_NET_CTRL_VLAN: u32 = 2;
109 pub const VIRTIO_NET_CTRL_VLAN_ADD: u32 = 0;
110 pub const VIRTIO_NET_CTRL_VLAN_DEL: u32 = 1;
111 pub const VIRTIO_NET_CTRL_ANNOUNCE: u32 = 3;
112 pub const VIRTIO_NET_CTRL_ANNOUNCE_ACK: u32 = 0;
113 pub const VIRTIO_NET_CTRL_MQ: u32 = 4;
114 pub const VIRTIO_NET_CTRL_MQ_VQ_PAIRS_SET: u32 = 0;
115 pub const VIRTIO_NET_CTRL_MQ_VQ_PAIRS_MIN: u32 = 1;
116 pub const VIRTIO_NET_CTRL_MQ_VQ_PAIRS_MAX: u32 = 32768;
117 pub const VIRTIO_NET_CTRL_MQ_RSS_CONFIG: u32 = 1;
118 pub const VIRTIO_NET_CTRL_MQ_HASH_CONFIG: u32 = 2;
119 pub const VIRTIO_NET_CTRL_GUEST_OFFLOADS: u32 = 5;
120 pub const VIRTIO_NET_CTRL_GUEST_OFFLOADS_SET: u32 = 0;
121 pub const VIRTIO_NET_CTRL_NOTF_COAL: u32 = 6;
122 pub const VIRTIO_NET_CTRL_NOTF_COAL_TX_SET: u32 = 0;
123 pub const VIRTIO_NET_CTRL_NOTF_COAL_RX_SET: u32 = 1;
124 pub type __u8 = ::std::os::raw::c_uchar;
125 pub type __u16 = ::std::os::raw::c_ushort;
126 pub type __u32 = ::std::os::raw::c_uint;
127 pub type __le16 = __u16;
128 pub type __le32 = __u32;
129 pub type __virtio16 = __u16;
130 pub type __virtio32 = __u32;
131 #[repr(C, packed)]
132 #[derive(Debug, Default, Copy, Clone, PartialEq)]
133 pub struct virtio_net_config {
134 pub mac: [__u8; 6usize],
135 pub status: __virtio16,
136 pub max_virtqueue_pairs: __virtio16,
137 pub mtu: __virtio16,
138 pub speed: __le32,
139 pub duplex: __u8,
140 pub rss_max_key_size: __u8,
141 pub rss_max_indirection_table_length: __le16,
142 pub supported_hash_types: __le32,
143 }
144 #[test]
bindgen_test_layout_virtio_net_config()145 fn bindgen_test_layout_virtio_net_config() {
146 const UNINIT: ::std::mem::MaybeUninit<virtio_net_config> = ::std::mem::MaybeUninit::uninit();
147 let ptr = UNINIT.as_ptr();
148 assert_eq!(
149 ::std::mem::size_of::<virtio_net_config>(),
150 24usize,
151 concat!("Size of: ", stringify!(virtio_net_config))
152 );
153 assert_eq!(
154 ::std::mem::align_of::<virtio_net_config>(),
155 1usize,
156 concat!("Alignment of ", stringify!(virtio_net_config))
157 );
158 assert_eq!(
159 unsafe { ::std::ptr::addr_of!((*ptr).mac) as usize - ptr as usize },
160 0usize,
161 concat!(
162 "Offset of field: ",
163 stringify!(virtio_net_config),
164 "::",
165 stringify!(mac)
166 )
167 );
168 assert_eq!(
169 unsafe { ::std::ptr::addr_of!((*ptr).status) as usize - ptr as usize },
170 6usize,
171 concat!(
172 "Offset of field: ",
173 stringify!(virtio_net_config),
174 "::",
175 stringify!(status)
176 )
177 );
178 assert_eq!(
179 unsafe { ::std::ptr::addr_of!((*ptr).max_virtqueue_pairs) as usize - ptr as usize },
180 8usize,
181 concat!(
182 "Offset of field: ",
183 stringify!(virtio_net_config),
184 "::",
185 stringify!(max_virtqueue_pairs)
186 )
187 );
188 assert_eq!(
189 unsafe { ::std::ptr::addr_of!((*ptr).mtu) as usize - ptr as usize },
190 10usize,
191 concat!(
192 "Offset of field: ",
193 stringify!(virtio_net_config),
194 "::",
195 stringify!(mtu)
196 )
197 );
198 assert_eq!(
199 unsafe { ::std::ptr::addr_of!((*ptr).speed) as usize - ptr as usize },
200 12usize,
201 concat!(
202 "Offset of field: ",
203 stringify!(virtio_net_config),
204 "::",
205 stringify!(speed)
206 )
207 );
208 assert_eq!(
209 unsafe { ::std::ptr::addr_of!((*ptr).duplex) as usize - ptr as usize },
210 16usize,
211 concat!(
212 "Offset of field: ",
213 stringify!(virtio_net_config),
214 "::",
215 stringify!(duplex)
216 )
217 );
218 assert_eq!(
219 unsafe { ::std::ptr::addr_of!((*ptr).rss_max_key_size) as usize - ptr as usize },
220 17usize,
221 concat!(
222 "Offset of field: ",
223 stringify!(virtio_net_config),
224 "::",
225 stringify!(rss_max_key_size)
226 )
227 );
228 assert_eq!(
229 unsafe {
230 ::std::ptr::addr_of!((*ptr).rss_max_indirection_table_length) as usize - ptr as usize
231 },
232 18usize,
233 concat!(
234 "Offset of field: ",
235 stringify!(virtio_net_config),
236 "::",
237 stringify!(rss_max_indirection_table_length)
238 )
239 );
240 assert_eq!(
241 unsafe { ::std::ptr::addr_of!((*ptr).supported_hash_types) as usize - ptr as usize },
242 20usize,
243 concat!(
244 "Offset of field: ",
245 stringify!(virtio_net_config),
246 "::",
247 stringify!(supported_hash_types)
248 )
249 );
250 }
251 #[repr(C)]
252 #[derive(Copy, Clone)]
253 pub struct virtio_net_hdr_v1 {
254 pub flags: __u8,
255 pub gso_type: __u8,
256 pub hdr_len: __virtio16,
257 pub gso_size: __virtio16,
258 pub __bindgen_anon_1: virtio_net_hdr_v1__bindgen_ty_1,
259 pub num_buffers: __virtio16,
260 }
261 #[repr(C)]
262 #[derive(Copy, Clone)]
263 pub union virtio_net_hdr_v1__bindgen_ty_1 {
264 pub __bindgen_anon_1: virtio_net_hdr_v1__bindgen_ty_1__bindgen_ty_1,
265 pub csum: virtio_net_hdr_v1__bindgen_ty_1__bindgen_ty_2,
266 pub rsc: virtio_net_hdr_v1__bindgen_ty_1__bindgen_ty_3,
267 }
268 #[repr(C)]
269 #[derive(Debug, Default, Copy, Clone, PartialEq)]
270 pub struct virtio_net_hdr_v1__bindgen_ty_1__bindgen_ty_1 {
271 pub csum_start: __virtio16,
272 pub csum_offset: __virtio16,
273 }
274 #[test]
bindgen_test_layout_virtio_net_hdr_v1__bindgen_ty_1__bindgen_ty_1()275 fn bindgen_test_layout_virtio_net_hdr_v1__bindgen_ty_1__bindgen_ty_1() {
276 const UNINIT: ::std::mem::MaybeUninit<virtio_net_hdr_v1__bindgen_ty_1__bindgen_ty_1> =
277 ::std::mem::MaybeUninit::uninit();
278 let ptr = UNINIT.as_ptr();
279 assert_eq!(
280 ::std::mem::size_of::<virtio_net_hdr_v1__bindgen_ty_1__bindgen_ty_1>(),
281 4usize,
282 concat!(
283 "Size of: ",
284 stringify!(virtio_net_hdr_v1__bindgen_ty_1__bindgen_ty_1)
285 )
286 );
287 assert_eq!(
288 ::std::mem::align_of::<virtio_net_hdr_v1__bindgen_ty_1__bindgen_ty_1>(),
289 2usize,
290 concat!(
291 "Alignment of ",
292 stringify!(virtio_net_hdr_v1__bindgen_ty_1__bindgen_ty_1)
293 )
294 );
295 assert_eq!(
296 unsafe { ::std::ptr::addr_of!((*ptr).csum_start) as usize - ptr as usize },
297 0usize,
298 concat!(
299 "Offset of field: ",
300 stringify!(virtio_net_hdr_v1__bindgen_ty_1__bindgen_ty_1),
301 "::",
302 stringify!(csum_start)
303 )
304 );
305 assert_eq!(
306 unsafe { ::std::ptr::addr_of!((*ptr).csum_offset) as usize - ptr as usize },
307 2usize,
308 concat!(
309 "Offset of field: ",
310 stringify!(virtio_net_hdr_v1__bindgen_ty_1__bindgen_ty_1),
311 "::",
312 stringify!(csum_offset)
313 )
314 );
315 }
316 #[repr(C)]
317 #[derive(Debug, Default, Copy, Clone, PartialEq)]
318 pub struct virtio_net_hdr_v1__bindgen_ty_1__bindgen_ty_2 {
319 pub start: __virtio16,
320 pub offset: __virtio16,
321 }
322 #[test]
bindgen_test_layout_virtio_net_hdr_v1__bindgen_ty_1__bindgen_ty_2()323 fn bindgen_test_layout_virtio_net_hdr_v1__bindgen_ty_1__bindgen_ty_2() {
324 const UNINIT: ::std::mem::MaybeUninit<virtio_net_hdr_v1__bindgen_ty_1__bindgen_ty_2> =
325 ::std::mem::MaybeUninit::uninit();
326 let ptr = UNINIT.as_ptr();
327 assert_eq!(
328 ::std::mem::size_of::<virtio_net_hdr_v1__bindgen_ty_1__bindgen_ty_2>(),
329 4usize,
330 concat!(
331 "Size of: ",
332 stringify!(virtio_net_hdr_v1__bindgen_ty_1__bindgen_ty_2)
333 )
334 );
335 assert_eq!(
336 ::std::mem::align_of::<virtio_net_hdr_v1__bindgen_ty_1__bindgen_ty_2>(),
337 2usize,
338 concat!(
339 "Alignment of ",
340 stringify!(virtio_net_hdr_v1__bindgen_ty_1__bindgen_ty_2)
341 )
342 );
343 assert_eq!(
344 unsafe { ::std::ptr::addr_of!((*ptr).start) as usize - ptr as usize },
345 0usize,
346 concat!(
347 "Offset of field: ",
348 stringify!(virtio_net_hdr_v1__bindgen_ty_1__bindgen_ty_2),
349 "::",
350 stringify!(start)
351 )
352 );
353 assert_eq!(
354 unsafe { ::std::ptr::addr_of!((*ptr).offset) as usize - ptr as usize },
355 2usize,
356 concat!(
357 "Offset of field: ",
358 stringify!(virtio_net_hdr_v1__bindgen_ty_1__bindgen_ty_2),
359 "::",
360 stringify!(offset)
361 )
362 );
363 }
364 #[repr(C)]
365 #[derive(Debug, Default, Copy, Clone, PartialEq)]
366 pub struct virtio_net_hdr_v1__bindgen_ty_1__bindgen_ty_3 {
367 pub segments: __le16,
368 pub dup_acks: __le16,
369 }
370 #[test]
bindgen_test_layout_virtio_net_hdr_v1__bindgen_ty_1__bindgen_ty_3()371 fn bindgen_test_layout_virtio_net_hdr_v1__bindgen_ty_1__bindgen_ty_3() {
372 const UNINIT: ::std::mem::MaybeUninit<virtio_net_hdr_v1__bindgen_ty_1__bindgen_ty_3> =
373 ::std::mem::MaybeUninit::uninit();
374 let ptr = UNINIT.as_ptr();
375 assert_eq!(
376 ::std::mem::size_of::<virtio_net_hdr_v1__bindgen_ty_1__bindgen_ty_3>(),
377 4usize,
378 concat!(
379 "Size of: ",
380 stringify!(virtio_net_hdr_v1__bindgen_ty_1__bindgen_ty_3)
381 )
382 );
383 assert_eq!(
384 ::std::mem::align_of::<virtio_net_hdr_v1__bindgen_ty_1__bindgen_ty_3>(),
385 2usize,
386 concat!(
387 "Alignment of ",
388 stringify!(virtio_net_hdr_v1__bindgen_ty_1__bindgen_ty_3)
389 )
390 );
391 assert_eq!(
392 unsafe { ::std::ptr::addr_of!((*ptr).segments) as usize - ptr as usize },
393 0usize,
394 concat!(
395 "Offset of field: ",
396 stringify!(virtio_net_hdr_v1__bindgen_ty_1__bindgen_ty_3),
397 "::",
398 stringify!(segments)
399 )
400 );
401 assert_eq!(
402 unsafe { ::std::ptr::addr_of!((*ptr).dup_acks) as usize - ptr as usize },
403 2usize,
404 concat!(
405 "Offset of field: ",
406 stringify!(virtio_net_hdr_v1__bindgen_ty_1__bindgen_ty_3),
407 "::",
408 stringify!(dup_acks)
409 )
410 );
411 }
412 #[test]
bindgen_test_layout_virtio_net_hdr_v1__bindgen_ty_1()413 fn bindgen_test_layout_virtio_net_hdr_v1__bindgen_ty_1() {
414 const UNINIT: ::std::mem::MaybeUninit<virtio_net_hdr_v1__bindgen_ty_1> =
415 ::std::mem::MaybeUninit::uninit();
416 let ptr = UNINIT.as_ptr();
417 assert_eq!(
418 ::std::mem::size_of::<virtio_net_hdr_v1__bindgen_ty_1>(),
419 4usize,
420 concat!("Size of: ", stringify!(virtio_net_hdr_v1__bindgen_ty_1))
421 );
422 assert_eq!(
423 ::std::mem::align_of::<virtio_net_hdr_v1__bindgen_ty_1>(),
424 2usize,
425 concat!("Alignment of ", stringify!(virtio_net_hdr_v1__bindgen_ty_1))
426 );
427 assert_eq!(
428 unsafe { ::std::ptr::addr_of!((*ptr).csum) as usize - ptr as usize },
429 0usize,
430 concat!(
431 "Offset of field: ",
432 stringify!(virtio_net_hdr_v1__bindgen_ty_1),
433 "::",
434 stringify!(csum)
435 )
436 );
437 assert_eq!(
438 unsafe { ::std::ptr::addr_of!((*ptr).rsc) as usize - ptr as usize },
439 0usize,
440 concat!(
441 "Offset of field: ",
442 stringify!(virtio_net_hdr_v1__bindgen_ty_1),
443 "::",
444 stringify!(rsc)
445 )
446 );
447 }
448 impl Default for virtio_net_hdr_v1__bindgen_ty_1 {
default() -> Self449 fn default() -> Self {
450 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
451 unsafe {
452 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
453 s.assume_init()
454 }
455 }
456 }
457 #[test]
bindgen_test_layout_virtio_net_hdr_v1()458 fn bindgen_test_layout_virtio_net_hdr_v1() {
459 const UNINIT: ::std::mem::MaybeUninit<virtio_net_hdr_v1> = ::std::mem::MaybeUninit::uninit();
460 let ptr = UNINIT.as_ptr();
461 assert_eq!(
462 ::std::mem::size_of::<virtio_net_hdr_v1>(),
463 12usize,
464 concat!("Size of: ", stringify!(virtio_net_hdr_v1))
465 );
466 assert_eq!(
467 ::std::mem::align_of::<virtio_net_hdr_v1>(),
468 2usize,
469 concat!("Alignment of ", stringify!(virtio_net_hdr_v1))
470 );
471 assert_eq!(
472 unsafe { ::std::ptr::addr_of!((*ptr).flags) as usize - ptr as usize },
473 0usize,
474 concat!(
475 "Offset of field: ",
476 stringify!(virtio_net_hdr_v1),
477 "::",
478 stringify!(flags)
479 )
480 );
481 assert_eq!(
482 unsafe { ::std::ptr::addr_of!((*ptr).gso_type) as usize - ptr as usize },
483 1usize,
484 concat!(
485 "Offset of field: ",
486 stringify!(virtio_net_hdr_v1),
487 "::",
488 stringify!(gso_type)
489 )
490 );
491 assert_eq!(
492 unsafe { ::std::ptr::addr_of!((*ptr).hdr_len) as usize - ptr as usize },
493 2usize,
494 concat!(
495 "Offset of field: ",
496 stringify!(virtio_net_hdr_v1),
497 "::",
498 stringify!(hdr_len)
499 )
500 );
501 assert_eq!(
502 unsafe { ::std::ptr::addr_of!((*ptr).gso_size) as usize - ptr as usize },
503 4usize,
504 concat!(
505 "Offset of field: ",
506 stringify!(virtio_net_hdr_v1),
507 "::",
508 stringify!(gso_size)
509 )
510 );
511 assert_eq!(
512 unsafe { ::std::ptr::addr_of!((*ptr).num_buffers) as usize - ptr as usize },
513 10usize,
514 concat!(
515 "Offset of field: ",
516 stringify!(virtio_net_hdr_v1),
517 "::",
518 stringify!(num_buffers)
519 )
520 );
521 }
522 impl Default for virtio_net_hdr_v1 {
default() -> Self523 fn default() -> Self {
524 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
525 unsafe {
526 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
527 s.assume_init()
528 }
529 }
530 }
531 #[repr(C)]
532 #[derive(Copy, Clone)]
533 pub struct virtio_net_hdr_v1_hash {
534 pub hdr: virtio_net_hdr_v1,
535 pub hash_value: __le32,
536 pub hash_report: __le16,
537 pub padding: __le16,
538 }
539 #[test]
bindgen_test_layout_virtio_net_hdr_v1_hash()540 fn bindgen_test_layout_virtio_net_hdr_v1_hash() {
541 const UNINIT: ::std::mem::MaybeUninit<virtio_net_hdr_v1_hash> =
542 ::std::mem::MaybeUninit::uninit();
543 let ptr = UNINIT.as_ptr();
544 assert_eq!(
545 ::std::mem::size_of::<virtio_net_hdr_v1_hash>(),
546 20usize,
547 concat!("Size of: ", stringify!(virtio_net_hdr_v1_hash))
548 );
549 assert_eq!(
550 ::std::mem::align_of::<virtio_net_hdr_v1_hash>(),
551 4usize,
552 concat!("Alignment of ", stringify!(virtio_net_hdr_v1_hash))
553 );
554 assert_eq!(
555 unsafe { ::std::ptr::addr_of!((*ptr).hdr) as usize - ptr as usize },
556 0usize,
557 concat!(
558 "Offset of field: ",
559 stringify!(virtio_net_hdr_v1_hash),
560 "::",
561 stringify!(hdr)
562 )
563 );
564 assert_eq!(
565 unsafe { ::std::ptr::addr_of!((*ptr).hash_value) as usize - ptr as usize },
566 12usize,
567 concat!(
568 "Offset of field: ",
569 stringify!(virtio_net_hdr_v1_hash),
570 "::",
571 stringify!(hash_value)
572 )
573 );
574 assert_eq!(
575 unsafe { ::std::ptr::addr_of!((*ptr).hash_report) as usize - ptr as usize },
576 16usize,
577 concat!(
578 "Offset of field: ",
579 stringify!(virtio_net_hdr_v1_hash),
580 "::",
581 stringify!(hash_report)
582 )
583 );
584 assert_eq!(
585 unsafe { ::std::ptr::addr_of!((*ptr).padding) as usize - ptr as usize },
586 18usize,
587 concat!(
588 "Offset of field: ",
589 stringify!(virtio_net_hdr_v1_hash),
590 "::",
591 stringify!(padding)
592 )
593 );
594 }
595 impl Default for virtio_net_hdr_v1_hash {
default() -> Self596 fn default() -> Self {
597 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
598 unsafe {
599 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
600 s.assume_init()
601 }
602 }
603 }
604 #[repr(C)]
605 #[derive(Debug, Default, Copy, Clone, PartialEq)]
606 pub struct virtio_net_hdr {
607 pub flags: __u8,
608 pub gso_type: __u8,
609 pub hdr_len: __virtio16,
610 pub gso_size: __virtio16,
611 pub csum_start: __virtio16,
612 pub csum_offset: __virtio16,
613 }
614 #[test]
bindgen_test_layout_virtio_net_hdr()615 fn bindgen_test_layout_virtio_net_hdr() {
616 const UNINIT: ::std::mem::MaybeUninit<virtio_net_hdr> = ::std::mem::MaybeUninit::uninit();
617 let ptr = UNINIT.as_ptr();
618 assert_eq!(
619 ::std::mem::size_of::<virtio_net_hdr>(),
620 10usize,
621 concat!("Size of: ", stringify!(virtio_net_hdr))
622 );
623 assert_eq!(
624 ::std::mem::align_of::<virtio_net_hdr>(),
625 2usize,
626 concat!("Alignment of ", stringify!(virtio_net_hdr))
627 );
628 assert_eq!(
629 unsafe { ::std::ptr::addr_of!((*ptr).flags) as usize - ptr as usize },
630 0usize,
631 concat!(
632 "Offset of field: ",
633 stringify!(virtio_net_hdr),
634 "::",
635 stringify!(flags)
636 )
637 );
638 assert_eq!(
639 unsafe { ::std::ptr::addr_of!((*ptr).gso_type) as usize - ptr as usize },
640 1usize,
641 concat!(
642 "Offset of field: ",
643 stringify!(virtio_net_hdr),
644 "::",
645 stringify!(gso_type)
646 )
647 );
648 assert_eq!(
649 unsafe { ::std::ptr::addr_of!((*ptr).hdr_len) as usize - ptr as usize },
650 2usize,
651 concat!(
652 "Offset of field: ",
653 stringify!(virtio_net_hdr),
654 "::",
655 stringify!(hdr_len)
656 )
657 );
658 assert_eq!(
659 unsafe { ::std::ptr::addr_of!((*ptr).gso_size) as usize - ptr as usize },
660 4usize,
661 concat!(
662 "Offset of field: ",
663 stringify!(virtio_net_hdr),
664 "::",
665 stringify!(gso_size)
666 )
667 );
668 assert_eq!(
669 unsafe { ::std::ptr::addr_of!((*ptr).csum_start) as usize - ptr as usize },
670 6usize,
671 concat!(
672 "Offset of field: ",
673 stringify!(virtio_net_hdr),
674 "::",
675 stringify!(csum_start)
676 )
677 );
678 assert_eq!(
679 unsafe { ::std::ptr::addr_of!((*ptr).csum_offset) as usize - ptr as usize },
680 8usize,
681 concat!(
682 "Offset of field: ",
683 stringify!(virtio_net_hdr),
684 "::",
685 stringify!(csum_offset)
686 )
687 );
688 }
689 #[repr(C)]
690 #[derive(Debug, Default, Copy, Clone, PartialEq)]
691 pub struct virtio_net_hdr_mrg_rxbuf {
692 pub hdr: virtio_net_hdr,
693 pub num_buffers: __virtio16,
694 }
695 #[test]
bindgen_test_layout_virtio_net_hdr_mrg_rxbuf()696 fn bindgen_test_layout_virtio_net_hdr_mrg_rxbuf() {
697 const UNINIT: ::std::mem::MaybeUninit<virtio_net_hdr_mrg_rxbuf> =
698 ::std::mem::MaybeUninit::uninit();
699 let ptr = UNINIT.as_ptr();
700 assert_eq!(
701 ::std::mem::size_of::<virtio_net_hdr_mrg_rxbuf>(),
702 12usize,
703 concat!("Size of: ", stringify!(virtio_net_hdr_mrg_rxbuf))
704 );
705 assert_eq!(
706 ::std::mem::align_of::<virtio_net_hdr_mrg_rxbuf>(),
707 2usize,
708 concat!("Alignment of ", stringify!(virtio_net_hdr_mrg_rxbuf))
709 );
710 assert_eq!(
711 unsafe { ::std::ptr::addr_of!((*ptr).hdr) as usize - ptr as usize },
712 0usize,
713 concat!(
714 "Offset of field: ",
715 stringify!(virtio_net_hdr_mrg_rxbuf),
716 "::",
717 stringify!(hdr)
718 )
719 );
720 assert_eq!(
721 unsafe { ::std::ptr::addr_of!((*ptr).num_buffers) as usize - ptr as usize },
722 10usize,
723 concat!(
724 "Offset of field: ",
725 stringify!(virtio_net_hdr_mrg_rxbuf),
726 "::",
727 stringify!(num_buffers)
728 )
729 );
730 }
731 #[repr(C, packed)]
732 #[derive(Debug, Default, Copy, Clone, PartialEq)]
733 pub struct virtio_net_ctrl_hdr {
734 pub class: __u8,
735 pub cmd: __u8,
736 }
737 #[test]
bindgen_test_layout_virtio_net_ctrl_hdr()738 fn bindgen_test_layout_virtio_net_ctrl_hdr() {
739 const UNINIT: ::std::mem::MaybeUninit<virtio_net_ctrl_hdr> = ::std::mem::MaybeUninit::uninit();
740 let ptr = UNINIT.as_ptr();
741 assert_eq!(
742 ::std::mem::size_of::<virtio_net_ctrl_hdr>(),
743 2usize,
744 concat!("Size of: ", stringify!(virtio_net_ctrl_hdr))
745 );
746 assert_eq!(
747 ::std::mem::align_of::<virtio_net_ctrl_hdr>(),
748 1usize,
749 concat!("Alignment of ", stringify!(virtio_net_ctrl_hdr))
750 );
751 assert_eq!(
752 unsafe { ::std::ptr::addr_of!((*ptr).class) as usize - ptr as usize },
753 0usize,
754 concat!(
755 "Offset of field: ",
756 stringify!(virtio_net_ctrl_hdr),
757 "::",
758 stringify!(class)
759 )
760 );
761 assert_eq!(
762 unsafe { ::std::ptr::addr_of!((*ptr).cmd) as usize - ptr as usize },
763 1usize,
764 concat!(
765 "Offset of field: ",
766 stringify!(virtio_net_ctrl_hdr),
767 "::",
768 stringify!(cmd)
769 )
770 );
771 }
772 pub type virtio_net_ctrl_ack = __u8;
773 #[repr(C, packed)]
774 pub struct virtio_net_ctrl_mac {
775 pub entries: __virtio32,
776 pub macs: __IncompleteArrayField<[__u8; 6usize]>,
777 }
778 #[test]
bindgen_test_layout_virtio_net_ctrl_mac()779 fn bindgen_test_layout_virtio_net_ctrl_mac() {
780 const UNINIT: ::std::mem::MaybeUninit<virtio_net_ctrl_mac> = ::std::mem::MaybeUninit::uninit();
781 let ptr = UNINIT.as_ptr();
782 assert_eq!(
783 ::std::mem::size_of::<virtio_net_ctrl_mac>(),
784 4usize,
785 concat!("Size of: ", stringify!(virtio_net_ctrl_mac))
786 );
787 assert_eq!(
788 ::std::mem::align_of::<virtio_net_ctrl_mac>(),
789 1usize,
790 concat!("Alignment of ", stringify!(virtio_net_ctrl_mac))
791 );
792 assert_eq!(
793 unsafe { ::std::ptr::addr_of!((*ptr).entries) as usize - ptr as usize },
794 0usize,
795 concat!(
796 "Offset of field: ",
797 stringify!(virtio_net_ctrl_mac),
798 "::",
799 stringify!(entries)
800 )
801 );
802 assert_eq!(
803 unsafe { ::std::ptr::addr_of!((*ptr).macs) as usize - ptr as usize },
804 4usize,
805 concat!(
806 "Offset of field: ",
807 stringify!(virtio_net_ctrl_mac),
808 "::",
809 stringify!(macs)
810 )
811 );
812 }
813 impl Default for virtio_net_ctrl_mac {
default() -> Self814 fn default() -> Self {
815 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
816 unsafe {
817 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
818 s.assume_init()
819 }
820 }
821 }
822 #[repr(C)]
823 #[derive(Debug, Default, Copy, Clone, PartialEq)]
824 pub struct virtio_net_ctrl_mq {
825 pub virtqueue_pairs: __virtio16,
826 }
827 #[test]
bindgen_test_layout_virtio_net_ctrl_mq()828 fn bindgen_test_layout_virtio_net_ctrl_mq() {
829 const UNINIT: ::std::mem::MaybeUninit<virtio_net_ctrl_mq> = ::std::mem::MaybeUninit::uninit();
830 let ptr = UNINIT.as_ptr();
831 assert_eq!(
832 ::std::mem::size_of::<virtio_net_ctrl_mq>(),
833 2usize,
834 concat!("Size of: ", stringify!(virtio_net_ctrl_mq))
835 );
836 assert_eq!(
837 ::std::mem::align_of::<virtio_net_ctrl_mq>(),
838 2usize,
839 concat!("Alignment of ", stringify!(virtio_net_ctrl_mq))
840 );
841 assert_eq!(
842 unsafe { ::std::ptr::addr_of!((*ptr).virtqueue_pairs) as usize - ptr as usize },
843 0usize,
844 concat!(
845 "Offset of field: ",
846 stringify!(virtio_net_ctrl_mq),
847 "::",
848 stringify!(virtqueue_pairs)
849 )
850 );
851 }
852 #[repr(C)]
853 #[derive(Debug, Default)]
854 pub struct virtio_net_rss_config {
855 pub hash_types: __le32,
856 pub indirection_table_mask: __le16,
857 pub unclassified_queue: __le16,
858 pub indirection_table: [__le16; 1usize],
859 pub max_tx_vq: __le16,
860 pub hash_key_length: __u8,
861 pub hash_key_data: __IncompleteArrayField<__u8>,
862 }
863 #[test]
bindgen_test_layout_virtio_net_rss_config()864 fn bindgen_test_layout_virtio_net_rss_config() {
865 const UNINIT: ::std::mem::MaybeUninit<virtio_net_rss_config> =
866 ::std::mem::MaybeUninit::uninit();
867 let ptr = UNINIT.as_ptr();
868 assert_eq!(
869 ::std::mem::size_of::<virtio_net_rss_config>(),
870 16usize,
871 concat!("Size of: ", stringify!(virtio_net_rss_config))
872 );
873 assert_eq!(
874 ::std::mem::align_of::<virtio_net_rss_config>(),
875 4usize,
876 concat!("Alignment of ", stringify!(virtio_net_rss_config))
877 );
878 assert_eq!(
879 unsafe { ::std::ptr::addr_of!((*ptr).hash_types) as usize - ptr as usize },
880 0usize,
881 concat!(
882 "Offset of field: ",
883 stringify!(virtio_net_rss_config),
884 "::",
885 stringify!(hash_types)
886 )
887 );
888 assert_eq!(
889 unsafe { ::std::ptr::addr_of!((*ptr).indirection_table_mask) as usize - ptr as usize },
890 4usize,
891 concat!(
892 "Offset of field: ",
893 stringify!(virtio_net_rss_config),
894 "::",
895 stringify!(indirection_table_mask)
896 )
897 );
898 assert_eq!(
899 unsafe { ::std::ptr::addr_of!((*ptr).unclassified_queue) as usize - ptr as usize },
900 6usize,
901 concat!(
902 "Offset of field: ",
903 stringify!(virtio_net_rss_config),
904 "::",
905 stringify!(unclassified_queue)
906 )
907 );
908 assert_eq!(
909 unsafe { ::std::ptr::addr_of!((*ptr).indirection_table) as usize - ptr as usize },
910 8usize,
911 concat!(
912 "Offset of field: ",
913 stringify!(virtio_net_rss_config),
914 "::",
915 stringify!(indirection_table)
916 )
917 );
918 assert_eq!(
919 unsafe { ::std::ptr::addr_of!((*ptr).max_tx_vq) as usize - ptr as usize },
920 10usize,
921 concat!(
922 "Offset of field: ",
923 stringify!(virtio_net_rss_config),
924 "::",
925 stringify!(max_tx_vq)
926 )
927 );
928 assert_eq!(
929 unsafe { ::std::ptr::addr_of!((*ptr).hash_key_length) as usize - ptr as usize },
930 12usize,
931 concat!(
932 "Offset of field: ",
933 stringify!(virtio_net_rss_config),
934 "::",
935 stringify!(hash_key_length)
936 )
937 );
938 assert_eq!(
939 unsafe { ::std::ptr::addr_of!((*ptr).hash_key_data) as usize - ptr as usize },
940 13usize,
941 concat!(
942 "Offset of field: ",
943 stringify!(virtio_net_rss_config),
944 "::",
945 stringify!(hash_key_data)
946 )
947 );
948 }
949 #[repr(C)]
950 #[derive(Debug, Default)]
951 pub struct virtio_net_hash_config {
952 pub hash_types: __le32,
953 pub reserved: [__le16; 4usize],
954 pub hash_key_length: __u8,
955 pub hash_key_data: __IncompleteArrayField<__u8>,
956 }
957 #[test]
bindgen_test_layout_virtio_net_hash_config()958 fn bindgen_test_layout_virtio_net_hash_config() {
959 const UNINIT: ::std::mem::MaybeUninit<virtio_net_hash_config> =
960 ::std::mem::MaybeUninit::uninit();
961 let ptr = UNINIT.as_ptr();
962 assert_eq!(
963 ::std::mem::size_of::<virtio_net_hash_config>(),
964 16usize,
965 concat!("Size of: ", stringify!(virtio_net_hash_config))
966 );
967 assert_eq!(
968 ::std::mem::align_of::<virtio_net_hash_config>(),
969 4usize,
970 concat!("Alignment of ", stringify!(virtio_net_hash_config))
971 );
972 assert_eq!(
973 unsafe { ::std::ptr::addr_of!((*ptr).hash_types) as usize - ptr as usize },
974 0usize,
975 concat!(
976 "Offset of field: ",
977 stringify!(virtio_net_hash_config),
978 "::",
979 stringify!(hash_types)
980 )
981 );
982 assert_eq!(
983 unsafe { ::std::ptr::addr_of!((*ptr).reserved) as usize - ptr as usize },
984 4usize,
985 concat!(
986 "Offset of field: ",
987 stringify!(virtio_net_hash_config),
988 "::",
989 stringify!(reserved)
990 )
991 );
992 assert_eq!(
993 unsafe { ::std::ptr::addr_of!((*ptr).hash_key_length) as usize - ptr as usize },
994 12usize,
995 concat!(
996 "Offset of field: ",
997 stringify!(virtio_net_hash_config),
998 "::",
999 stringify!(hash_key_length)
1000 )
1001 );
1002 assert_eq!(
1003 unsafe { ::std::ptr::addr_of!((*ptr).hash_key_data) as usize - ptr as usize },
1004 13usize,
1005 concat!(
1006 "Offset of field: ",
1007 stringify!(virtio_net_hash_config),
1008 "::",
1009 stringify!(hash_key_data)
1010 )
1011 );
1012 }
1013 #[repr(C)]
1014 #[derive(Debug, Default, Copy, Clone, PartialEq)]
1015 pub struct virtio_net_ctrl_coal_tx {
1016 pub tx_max_packets: __le32,
1017 pub tx_usecs: __le32,
1018 }
1019 #[test]
bindgen_test_layout_virtio_net_ctrl_coal_tx()1020 fn bindgen_test_layout_virtio_net_ctrl_coal_tx() {
1021 const UNINIT: ::std::mem::MaybeUninit<virtio_net_ctrl_coal_tx> =
1022 ::std::mem::MaybeUninit::uninit();
1023 let ptr = UNINIT.as_ptr();
1024 assert_eq!(
1025 ::std::mem::size_of::<virtio_net_ctrl_coal_tx>(),
1026 8usize,
1027 concat!("Size of: ", stringify!(virtio_net_ctrl_coal_tx))
1028 );
1029 assert_eq!(
1030 ::std::mem::align_of::<virtio_net_ctrl_coal_tx>(),
1031 4usize,
1032 concat!("Alignment of ", stringify!(virtio_net_ctrl_coal_tx))
1033 );
1034 assert_eq!(
1035 unsafe { ::std::ptr::addr_of!((*ptr).tx_max_packets) as usize - ptr as usize },
1036 0usize,
1037 concat!(
1038 "Offset of field: ",
1039 stringify!(virtio_net_ctrl_coal_tx),
1040 "::",
1041 stringify!(tx_max_packets)
1042 )
1043 );
1044 assert_eq!(
1045 unsafe { ::std::ptr::addr_of!((*ptr).tx_usecs) as usize - ptr as usize },
1046 4usize,
1047 concat!(
1048 "Offset of field: ",
1049 stringify!(virtio_net_ctrl_coal_tx),
1050 "::",
1051 stringify!(tx_usecs)
1052 )
1053 );
1054 }
1055 #[repr(C)]
1056 #[derive(Debug, Default, Copy, Clone, PartialEq)]
1057 pub struct virtio_net_ctrl_coal_rx {
1058 pub rx_max_packets: __le32,
1059 pub rx_usecs: __le32,
1060 }
1061 #[test]
bindgen_test_layout_virtio_net_ctrl_coal_rx()1062 fn bindgen_test_layout_virtio_net_ctrl_coal_rx() {
1063 const UNINIT: ::std::mem::MaybeUninit<virtio_net_ctrl_coal_rx> =
1064 ::std::mem::MaybeUninit::uninit();
1065 let ptr = UNINIT.as_ptr();
1066 assert_eq!(
1067 ::std::mem::size_of::<virtio_net_ctrl_coal_rx>(),
1068 8usize,
1069 concat!("Size of: ", stringify!(virtio_net_ctrl_coal_rx))
1070 );
1071 assert_eq!(
1072 ::std::mem::align_of::<virtio_net_ctrl_coal_rx>(),
1073 4usize,
1074 concat!("Alignment of ", stringify!(virtio_net_ctrl_coal_rx))
1075 );
1076 assert_eq!(
1077 unsafe { ::std::ptr::addr_of!((*ptr).rx_max_packets) as usize - ptr as usize },
1078 0usize,
1079 concat!(
1080 "Offset of field: ",
1081 stringify!(virtio_net_ctrl_coal_rx),
1082 "::",
1083 stringify!(rx_max_packets)
1084 )
1085 );
1086 assert_eq!(
1087 unsafe { ::std::ptr::addr_of!((*ptr).rx_usecs) as usize - ptr as usize },
1088 4usize,
1089 concat!(
1090 "Offset of field: ",
1091 stringify!(virtio_net_ctrl_coal_rx),
1092 "::",
1093 stringify!(rx_usecs)
1094 )
1095 );
1096 }
1097