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_BLK_F_SIZE_MAX: u32 = 1;
34 pub const VIRTIO_BLK_F_SEG_MAX: u32 = 2;
35 pub const VIRTIO_BLK_F_GEOMETRY: u32 = 4;
36 pub const VIRTIO_BLK_F_RO: u32 = 5;
37 pub const VIRTIO_BLK_F_BLK_SIZE: u32 = 6;
38 pub const VIRTIO_BLK_F_TOPOLOGY: u32 = 10;
39 pub const VIRTIO_BLK_F_MQ: u32 = 12;
40 pub const VIRTIO_BLK_F_DISCARD: u32 = 13;
41 pub const VIRTIO_BLK_F_WRITE_ZEROES: u32 = 14;
42 pub const VIRTIO_BLK_F_SECURE_ERASE: u32 = 16;
43 pub const VIRTIO_BLK_F_ZONED: u32 = 17;
44 pub const VIRTIO_BLK_F_BARRIER: u32 = 0;
45 pub const VIRTIO_BLK_F_SCSI: u32 = 7;
46 pub const VIRTIO_BLK_F_FLUSH: u32 = 9;
47 pub const VIRTIO_BLK_F_CONFIG_WCE: u32 = 11;
48 pub const VIRTIO_BLK_F_WCE: u32 = 9;
49 pub const VIRTIO_BLK_ID_BYTES: u32 = 20;
50 pub const VIRTIO_BLK_T_IN: u32 = 0;
51 pub const VIRTIO_BLK_T_OUT: u32 = 1;
52 pub const VIRTIO_BLK_T_SCSI_CMD: u32 = 2;
53 pub const VIRTIO_BLK_T_FLUSH: u32 = 4;
54 pub const VIRTIO_BLK_T_GET_ID: u32 = 8;
55 pub const VIRTIO_BLK_T_DISCARD: u32 = 11;
56 pub const VIRTIO_BLK_T_WRITE_ZEROES: u32 = 13;
57 pub const VIRTIO_BLK_T_SECURE_ERASE: u32 = 14;
58 pub const VIRTIO_BLK_T_ZONE_APPEND: u32 = 15;
59 pub const VIRTIO_BLK_T_ZONE_REPORT: u32 = 16;
60 pub const VIRTIO_BLK_T_ZONE_OPEN: u32 = 18;
61 pub const VIRTIO_BLK_T_ZONE_CLOSE: u32 = 20;
62 pub const VIRTIO_BLK_T_ZONE_FINISH: u32 = 22;
63 pub const VIRTIO_BLK_T_ZONE_RESET: u32 = 24;
64 pub const VIRTIO_BLK_T_ZONE_RESET_ALL: u32 = 26;
65 pub const VIRTIO_BLK_T_BARRIER: u32 = 2147483648;
66 pub const VIRTIO_BLK_Z_NONE: u32 = 0;
67 pub const VIRTIO_BLK_Z_HM: u32 = 1;
68 pub const VIRTIO_BLK_Z_HA: u32 = 2;
69 pub const VIRTIO_BLK_ZT_CONV: u32 = 1;
70 pub const VIRTIO_BLK_ZT_SWR: u32 = 2;
71 pub const VIRTIO_BLK_ZT_SWP: u32 = 3;
72 pub const VIRTIO_BLK_ZS_NOT_WP: u32 = 0;
73 pub const VIRTIO_BLK_ZS_EMPTY: u32 = 1;
74 pub const VIRTIO_BLK_ZS_IOPEN: u32 = 2;
75 pub const VIRTIO_BLK_ZS_EOPEN: u32 = 3;
76 pub const VIRTIO_BLK_ZS_CLOSED: u32 = 4;
77 pub const VIRTIO_BLK_ZS_RDONLY: u32 = 13;
78 pub const VIRTIO_BLK_ZS_FULL: u32 = 14;
79 pub const VIRTIO_BLK_ZS_OFFLINE: u32 = 15;
80 pub const VIRTIO_BLK_WRITE_ZEROES_FLAG_UNMAP: u32 = 1;
81 pub const VIRTIO_BLK_S_OK: u32 = 0;
82 pub const VIRTIO_BLK_S_IOERR: u32 = 1;
83 pub const VIRTIO_BLK_S_UNSUPP: u32 = 2;
84 pub const VIRTIO_BLK_S_ZONE_INVALID_CMD: u32 = 3;
85 pub const VIRTIO_BLK_S_ZONE_UNALIGNED_WP: u32 = 4;
86 pub const VIRTIO_BLK_S_ZONE_OPEN_RESOURCE: u32 = 5;
87 pub const VIRTIO_BLK_S_ZONE_ACTIVE_RESOURCE: u32 = 6;
88 pub type __u8 = ::std::os::raw::c_uchar;
89 pub type __u16 = ::std::os::raw::c_ushort;
90 pub type __u32 = ::std::os::raw::c_uint;
91 pub type __u64 = ::std::os::raw::c_ulonglong;
92 pub type __le32 = __u32;
93 pub type __le64 = __u64;
94 pub type __virtio16 = __u16;
95 pub type __virtio32 = __u32;
96 pub type __virtio64 = __u64;
97 #[repr(C, packed)]
98 #[derive(Debug, Default, Copy, Clone, PartialEq)]
99 pub struct virtio_blk_config {
100     pub capacity: __virtio64,
101     pub size_max: __virtio32,
102     pub seg_max: __virtio32,
103     pub geometry: virtio_blk_config_virtio_blk_geometry,
104     pub blk_size: __virtio32,
105     pub physical_block_exp: __u8,
106     pub alignment_offset: __u8,
107     pub min_io_size: __virtio16,
108     pub opt_io_size: __virtio32,
109     pub wce: __u8,
110     pub unused: __u8,
111     pub num_queues: __virtio16,
112     pub max_discard_sectors: __virtio32,
113     pub max_discard_seg: __virtio32,
114     pub discard_sector_alignment: __virtio32,
115     pub max_write_zeroes_sectors: __virtio32,
116     pub max_write_zeroes_seg: __virtio32,
117     pub write_zeroes_may_unmap: __u8,
118     pub unused1: [__u8; 3usize],
119     pub max_secure_erase_sectors: __virtio32,
120     pub max_secure_erase_seg: __virtio32,
121     pub secure_erase_sector_alignment: __virtio32,
122     pub zoned: virtio_blk_config_virtio_blk_zoned_characteristics,
123 }
124 #[repr(C)]
125 #[derive(Debug, Default, Copy, Clone, PartialEq)]
126 pub struct virtio_blk_config_virtio_blk_geometry {
127     pub cylinders: __virtio16,
128     pub heads: __u8,
129     pub sectors: __u8,
130 }
131 #[test]
bindgen_test_layout_virtio_blk_config_virtio_blk_geometry()132 fn bindgen_test_layout_virtio_blk_config_virtio_blk_geometry() {
133     const UNINIT: ::std::mem::MaybeUninit<virtio_blk_config_virtio_blk_geometry> =
134         ::std::mem::MaybeUninit::uninit();
135     let ptr = UNINIT.as_ptr();
136     assert_eq!(
137         ::std::mem::size_of::<virtio_blk_config_virtio_blk_geometry>(),
138         4usize,
139         concat!(
140             "Size of: ",
141             stringify!(virtio_blk_config_virtio_blk_geometry)
142         )
143     );
144     assert_eq!(
145         ::std::mem::align_of::<virtio_blk_config_virtio_blk_geometry>(),
146         2usize,
147         concat!(
148             "Alignment of ",
149             stringify!(virtio_blk_config_virtio_blk_geometry)
150         )
151     );
152     assert_eq!(
153         unsafe { ::std::ptr::addr_of!((*ptr).cylinders) as usize - ptr as usize },
154         0usize,
155         concat!(
156             "Offset of field: ",
157             stringify!(virtio_blk_config_virtio_blk_geometry),
158             "::",
159             stringify!(cylinders)
160         )
161     );
162     assert_eq!(
163         unsafe { ::std::ptr::addr_of!((*ptr).heads) as usize - ptr as usize },
164         2usize,
165         concat!(
166             "Offset of field: ",
167             stringify!(virtio_blk_config_virtio_blk_geometry),
168             "::",
169             stringify!(heads)
170         )
171     );
172     assert_eq!(
173         unsafe { ::std::ptr::addr_of!((*ptr).sectors) as usize - ptr as usize },
174         3usize,
175         concat!(
176             "Offset of field: ",
177             stringify!(virtio_blk_config_virtio_blk_geometry),
178             "::",
179             stringify!(sectors)
180         )
181     );
182 }
183 #[repr(C)]
184 #[derive(Debug, Default, Copy, Clone, PartialEq)]
185 pub struct virtio_blk_config_virtio_blk_zoned_characteristics {
186     pub zone_sectors: __virtio32,
187     pub max_open_zones: __virtio32,
188     pub max_active_zones: __virtio32,
189     pub max_append_sectors: __virtio32,
190     pub write_granularity: __virtio32,
191     pub model: __u8,
192     pub unused2: [__u8; 3usize],
193 }
194 #[test]
bindgen_test_layout_virtio_blk_config_virtio_blk_zoned_characteristics()195 fn bindgen_test_layout_virtio_blk_config_virtio_blk_zoned_characteristics() {
196     const UNINIT: ::std::mem::MaybeUninit<virtio_blk_config_virtio_blk_zoned_characteristics> =
197         ::std::mem::MaybeUninit::uninit();
198     let ptr = UNINIT.as_ptr();
199     assert_eq!(
200         ::std::mem::size_of::<virtio_blk_config_virtio_blk_zoned_characteristics>(),
201         24usize,
202         concat!(
203             "Size of: ",
204             stringify!(virtio_blk_config_virtio_blk_zoned_characteristics)
205         )
206     );
207     assert_eq!(
208         ::std::mem::align_of::<virtio_blk_config_virtio_blk_zoned_characteristics>(),
209         4usize,
210         concat!(
211             "Alignment of ",
212             stringify!(virtio_blk_config_virtio_blk_zoned_characteristics)
213         )
214     );
215     assert_eq!(
216         unsafe { ::std::ptr::addr_of!((*ptr).zone_sectors) as usize - ptr as usize },
217         0usize,
218         concat!(
219             "Offset of field: ",
220             stringify!(virtio_blk_config_virtio_blk_zoned_characteristics),
221             "::",
222             stringify!(zone_sectors)
223         )
224     );
225     assert_eq!(
226         unsafe { ::std::ptr::addr_of!((*ptr).max_open_zones) as usize - ptr as usize },
227         4usize,
228         concat!(
229             "Offset of field: ",
230             stringify!(virtio_blk_config_virtio_blk_zoned_characteristics),
231             "::",
232             stringify!(max_open_zones)
233         )
234     );
235     assert_eq!(
236         unsafe { ::std::ptr::addr_of!((*ptr).max_active_zones) as usize - ptr as usize },
237         8usize,
238         concat!(
239             "Offset of field: ",
240             stringify!(virtio_blk_config_virtio_blk_zoned_characteristics),
241             "::",
242             stringify!(max_active_zones)
243         )
244     );
245     assert_eq!(
246         unsafe { ::std::ptr::addr_of!((*ptr).max_append_sectors) as usize - ptr as usize },
247         12usize,
248         concat!(
249             "Offset of field: ",
250             stringify!(virtio_blk_config_virtio_blk_zoned_characteristics),
251             "::",
252             stringify!(max_append_sectors)
253         )
254     );
255     assert_eq!(
256         unsafe { ::std::ptr::addr_of!((*ptr).write_granularity) as usize - ptr as usize },
257         16usize,
258         concat!(
259             "Offset of field: ",
260             stringify!(virtio_blk_config_virtio_blk_zoned_characteristics),
261             "::",
262             stringify!(write_granularity)
263         )
264     );
265     assert_eq!(
266         unsafe { ::std::ptr::addr_of!((*ptr).model) as usize - ptr as usize },
267         20usize,
268         concat!(
269             "Offset of field: ",
270             stringify!(virtio_blk_config_virtio_blk_zoned_characteristics),
271             "::",
272             stringify!(model)
273         )
274     );
275     assert_eq!(
276         unsafe { ::std::ptr::addr_of!((*ptr).unused2) as usize - ptr as usize },
277         21usize,
278         concat!(
279             "Offset of field: ",
280             stringify!(virtio_blk_config_virtio_blk_zoned_characteristics),
281             "::",
282             stringify!(unused2)
283         )
284     );
285 }
286 #[test]
bindgen_test_layout_virtio_blk_config()287 fn bindgen_test_layout_virtio_blk_config() {
288     const UNINIT: ::std::mem::MaybeUninit<virtio_blk_config> = ::std::mem::MaybeUninit::uninit();
289     let ptr = UNINIT.as_ptr();
290     assert_eq!(
291         ::std::mem::size_of::<virtio_blk_config>(),
292         96usize,
293         concat!("Size of: ", stringify!(virtio_blk_config))
294     );
295     assert_eq!(
296         ::std::mem::align_of::<virtio_blk_config>(),
297         1usize,
298         concat!("Alignment of ", stringify!(virtio_blk_config))
299     );
300     assert_eq!(
301         unsafe { ::std::ptr::addr_of!((*ptr).capacity) as usize - ptr as usize },
302         0usize,
303         concat!(
304             "Offset of field: ",
305             stringify!(virtio_blk_config),
306             "::",
307             stringify!(capacity)
308         )
309     );
310     assert_eq!(
311         unsafe { ::std::ptr::addr_of!((*ptr).size_max) as usize - ptr as usize },
312         8usize,
313         concat!(
314             "Offset of field: ",
315             stringify!(virtio_blk_config),
316             "::",
317             stringify!(size_max)
318         )
319     );
320     assert_eq!(
321         unsafe { ::std::ptr::addr_of!((*ptr).seg_max) as usize - ptr as usize },
322         12usize,
323         concat!(
324             "Offset of field: ",
325             stringify!(virtio_blk_config),
326             "::",
327             stringify!(seg_max)
328         )
329     );
330     assert_eq!(
331         unsafe { ::std::ptr::addr_of!((*ptr).geometry) as usize - ptr as usize },
332         16usize,
333         concat!(
334             "Offset of field: ",
335             stringify!(virtio_blk_config),
336             "::",
337             stringify!(geometry)
338         )
339     );
340     assert_eq!(
341         unsafe { ::std::ptr::addr_of!((*ptr).blk_size) as usize - ptr as usize },
342         20usize,
343         concat!(
344             "Offset of field: ",
345             stringify!(virtio_blk_config),
346             "::",
347             stringify!(blk_size)
348         )
349     );
350     assert_eq!(
351         unsafe { ::std::ptr::addr_of!((*ptr).physical_block_exp) as usize - ptr as usize },
352         24usize,
353         concat!(
354             "Offset of field: ",
355             stringify!(virtio_blk_config),
356             "::",
357             stringify!(physical_block_exp)
358         )
359     );
360     assert_eq!(
361         unsafe { ::std::ptr::addr_of!((*ptr).alignment_offset) as usize - ptr as usize },
362         25usize,
363         concat!(
364             "Offset of field: ",
365             stringify!(virtio_blk_config),
366             "::",
367             stringify!(alignment_offset)
368         )
369     );
370     assert_eq!(
371         unsafe { ::std::ptr::addr_of!((*ptr).min_io_size) as usize - ptr as usize },
372         26usize,
373         concat!(
374             "Offset of field: ",
375             stringify!(virtio_blk_config),
376             "::",
377             stringify!(min_io_size)
378         )
379     );
380     assert_eq!(
381         unsafe { ::std::ptr::addr_of!((*ptr).opt_io_size) as usize - ptr as usize },
382         28usize,
383         concat!(
384             "Offset of field: ",
385             stringify!(virtio_blk_config),
386             "::",
387             stringify!(opt_io_size)
388         )
389     );
390     assert_eq!(
391         unsafe { ::std::ptr::addr_of!((*ptr).wce) as usize - ptr as usize },
392         32usize,
393         concat!(
394             "Offset of field: ",
395             stringify!(virtio_blk_config),
396             "::",
397             stringify!(wce)
398         )
399     );
400     assert_eq!(
401         unsafe { ::std::ptr::addr_of!((*ptr).unused) as usize - ptr as usize },
402         33usize,
403         concat!(
404             "Offset of field: ",
405             stringify!(virtio_blk_config),
406             "::",
407             stringify!(unused)
408         )
409     );
410     assert_eq!(
411         unsafe { ::std::ptr::addr_of!((*ptr).num_queues) as usize - ptr as usize },
412         34usize,
413         concat!(
414             "Offset of field: ",
415             stringify!(virtio_blk_config),
416             "::",
417             stringify!(num_queues)
418         )
419     );
420     assert_eq!(
421         unsafe { ::std::ptr::addr_of!((*ptr).max_discard_sectors) as usize - ptr as usize },
422         36usize,
423         concat!(
424             "Offset of field: ",
425             stringify!(virtio_blk_config),
426             "::",
427             stringify!(max_discard_sectors)
428         )
429     );
430     assert_eq!(
431         unsafe { ::std::ptr::addr_of!((*ptr).max_discard_seg) as usize - ptr as usize },
432         40usize,
433         concat!(
434             "Offset of field: ",
435             stringify!(virtio_blk_config),
436             "::",
437             stringify!(max_discard_seg)
438         )
439     );
440     assert_eq!(
441         unsafe { ::std::ptr::addr_of!((*ptr).discard_sector_alignment) as usize - ptr as usize },
442         44usize,
443         concat!(
444             "Offset of field: ",
445             stringify!(virtio_blk_config),
446             "::",
447             stringify!(discard_sector_alignment)
448         )
449     );
450     assert_eq!(
451         unsafe { ::std::ptr::addr_of!((*ptr).max_write_zeroes_sectors) as usize - ptr as usize },
452         48usize,
453         concat!(
454             "Offset of field: ",
455             stringify!(virtio_blk_config),
456             "::",
457             stringify!(max_write_zeroes_sectors)
458         )
459     );
460     assert_eq!(
461         unsafe { ::std::ptr::addr_of!((*ptr).max_write_zeroes_seg) as usize - ptr as usize },
462         52usize,
463         concat!(
464             "Offset of field: ",
465             stringify!(virtio_blk_config),
466             "::",
467             stringify!(max_write_zeroes_seg)
468         )
469     );
470     assert_eq!(
471         unsafe { ::std::ptr::addr_of!((*ptr).write_zeroes_may_unmap) as usize - ptr as usize },
472         56usize,
473         concat!(
474             "Offset of field: ",
475             stringify!(virtio_blk_config),
476             "::",
477             stringify!(write_zeroes_may_unmap)
478         )
479     );
480     assert_eq!(
481         unsafe { ::std::ptr::addr_of!((*ptr).unused1) as usize - ptr as usize },
482         57usize,
483         concat!(
484             "Offset of field: ",
485             stringify!(virtio_blk_config),
486             "::",
487             stringify!(unused1)
488         )
489     );
490     assert_eq!(
491         unsafe { ::std::ptr::addr_of!((*ptr).max_secure_erase_sectors) as usize - ptr as usize },
492         60usize,
493         concat!(
494             "Offset of field: ",
495             stringify!(virtio_blk_config),
496             "::",
497             stringify!(max_secure_erase_sectors)
498         )
499     );
500     assert_eq!(
501         unsafe { ::std::ptr::addr_of!((*ptr).max_secure_erase_seg) as usize - ptr as usize },
502         64usize,
503         concat!(
504             "Offset of field: ",
505             stringify!(virtio_blk_config),
506             "::",
507             stringify!(max_secure_erase_seg)
508         )
509     );
510     assert_eq!(
511         unsafe {
512             ::std::ptr::addr_of!((*ptr).secure_erase_sector_alignment) as usize - ptr as usize
513         },
514         68usize,
515         concat!(
516             "Offset of field: ",
517             stringify!(virtio_blk_config),
518             "::",
519             stringify!(secure_erase_sector_alignment)
520         )
521     );
522     assert_eq!(
523         unsafe { ::std::ptr::addr_of!((*ptr).zoned) as usize - ptr as usize },
524         72usize,
525         concat!(
526             "Offset of field: ",
527             stringify!(virtio_blk_config),
528             "::",
529             stringify!(zoned)
530         )
531     );
532 }
533 #[repr(C)]
534 #[derive(Debug, Default, Copy, Clone, PartialEq)]
535 pub struct virtio_blk_outhdr {
536     pub type_: __virtio32,
537     pub ioprio: __virtio32,
538     pub sector: __virtio64,
539 }
540 #[test]
bindgen_test_layout_virtio_blk_outhdr()541 fn bindgen_test_layout_virtio_blk_outhdr() {
542     const UNINIT: ::std::mem::MaybeUninit<virtio_blk_outhdr> = ::std::mem::MaybeUninit::uninit();
543     let ptr = UNINIT.as_ptr();
544     assert_eq!(
545         ::std::mem::size_of::<virtio_blk_outhdr>(),
546         16usize,
547         concat!("Size of: ", stringify!(virtio_blk_outhdr))
548     );
549     assert_eq!(
550         ::std::mem::align_of::<virtio_blk_outhdr>(),
551         8usize,
552         concat!("Alignment of ", stringify!(virtio_blk_outhdr))
553     );
554     assert_eq!(
555         unsafe { ::std::ptr::addr_of!((*ptr).type_) as usize - ptr as usize },
556         0usize,
557         concat!(
558             "Offset of field: ",
559             stringify!(virtio_blk_outhdr),
560             "::",
561             stringify!(type_)
562         )
563     );
564     assert_eq!(
565         unsafe { ::std::ptr::addr_of!((*ptr).ioprio) as usize - ptr as usize },
566         4usize,
567         concat!(
568             "Offset of field: ",
569             stringify!(virtio_blk_outhdr),
570             "::",
571             stringify!(ioprio)
572         )
573     );
574     assert_eq!(
575         unsafe { ::std::ptr::addr_of!((*ptr).sector) as usize - ptr as usize },
576         8usize,
577         concat!(
578             "Offset of field: ",
579             stringify!(virtio_blk_outhdr),
580             "::",
581             stringify!(sector)
582         )
583     );
584 }
585 #[repr(C)]
586 #[derive(Debug, Copy, Clone, PartialEq)]
587 pub struct virtio_blk_zone_descriptor {
588     pub z_cap: __virtio64,
589     pub z_start: __virtio64,
590     pub z_wp: __virtio64,
591     pub z_type: __u8,
592     pub z_state: __u8,
593     pub reserved: [__u8; 38usize],
594 }
595 #[test]
bindgen_test_layout_virtio_blk_zone_descriptor()596 fn bindgen_test_layout_virtio_blk_zone_descriptor() {
597     const UNINIT: ::std::mem::MaybeUninit<virtio_blk_zone_descriptor> =
598         ::std::mem::MaybeUninit::uninit();
599     let ptr = UNINIT.as_ptr();
600     assert_eq!(
601         ::std::mem::size_of::<virtio_blk_zone_descriptor>(),
602         64usize,
603         concat!("Size of: ", stringify!(virtio_blk_zone_descriptor))
604     );
605     assert_eq!(
606         ::std::mem::align_of::<virtio_blk_zone_descriptor>(),
607         8usize,
608         concat!("Alignment of ", stringify!(virtio_blk_zone_descriptor))
609     );
610     assert_eq!(
611         unsafe { ::std::ptr::addr_of!((*ptr).z_cap) as usize - ptr as usize },
612         0usize,
613         concat!(
614             "Offset of field: ",
615             stringify!(virtio_blk_zone_descriptor),
616             "::",
617             stringify!(z_cap)
618         )
619     );
620     assert_eq!(
621         unsafe { ::std::ptr::addr_of!((*ptr).z_start) as usize - ptr as usize },
622         8usize,
623         concat!(
624             "Offset of field: ",
625             stringify!(virtio_blk_zone_descriptor),
626             "::",
627             stringify!(z_start)
628         )
629     );
630     assert_eq!(
631         unsafe { ::std::ptr::addr_of!((*ptr).z_wp) as usize - ptr as usize },
632         16usize,
633         concat!(
634             "Offset of field: ",
635             stringify!(virtio_blk_zone_descriptor),
636             "::",
637             stringify!(z_wp)
638         )
639     );
640     assert_eq!(
641         unsafe { ::std::ptr::addr_of!((*ptr).z_type) as usize - ptr as usize },
642         24usize,
643         concat!(
644             "Offset of field: ",
645             stringify!(virtio_blk_zone_descriptor),
646             "::",
647             stringify!(z_type)
648         )
649     );
650     assert_eq!(
651         unsafe { ::std::ptr::addr_of!((*ptr).z_state) as usize - ptr as usize },
652         25usize,
653         concat!(
654             "Offset of field: ",
655             stringify!(virtio_blk_zone_descriptor),
656             "::",
657             stringify!(z_state)
658         )
659     );
660     assert_eq!(
661         unsafe { ::std::ptr::addr_of!((*ptr).reserved) as usize - ptr as usize },
662         26usize,
663         concat!(
664             "Offset of field: ",
665             stringify!(virtio_blk_zone_descriptor),
666             "::",
667             stringify!(reserved)
668         )
669     );
670 }
671 impl Default for virtio_blk_zone_descriptor {
default() -> Self672     fn default() -> Self {
673         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
674         unsafe {
675             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
676             s.assume_init()
677         }
678     }
679 }
680 #[repr(C)]
681 #[derive(Debug)]
682 pub struct virtio_blk_zone_report {
683     pub nr_zones: __virtio64,
684     pub reserved: [__u8; 56usize],
685     pub zones: __IncompleteArrayField<virtio_blk_zone_descriptor>,
686 }
687 #[test]
bindgen_test_layout_virtio_blk_zone_report()688 fn bindgen_test_layout_virtio_blk_zone_report() {
689     const UNINIT: ::std::mem::MaybeUninit<virtio_blk_zone_report> =
690         ::std::mem::MaybeUninit::uninit();
691     let ptr = UNINIT.as_ptr();
692     assert_eq!(
693         ::std::mem::size_of::<virtio_blk_zone_report>(),
694         64usize,
695         concat!("Size of: ", stringify!(virtio_blk_zone_report))
696     );
697     assert_eq!(
698         ::std::mem::align_of::<virtio_blk_zone_report>(),
699         8usize,
700         concat!("Alignment of ", stringify!(virtio_blk_zone_report))
701     );
702     assert_eq!(
703         unsafe { ::std::ptr::addr_of!((*ptr).nr_zones) as usize - ptr as usize },
704         0usize,
705         concat!(
706             "Offset of field: ",
707             stringify!(virtio_blk_zone_report),
708             "::",
709             stringify!(nr_zones)
710         )
711     );
712     assert_eq!(
713         unsafe { ::std::ptr::addr_of!((*ptr).reserved) as usize - ptr as usize },
714         8usize,
715         concat!(
716             "Offset of field: ",
717             stringify!(virtio_blk_zone_report),
718             "::",
719             stringify!(reserved)
720         )
721     );
722     assert_eq!(
723         unsafe { ::std::ptr::addr_of!((*ptr).zones) as usize - ptr as usize },
724         64usize,
725         concat!(
726             "Offset of field: ",
727             stringify!(virtio_blk_zone_report),
728             "::",
729             stringify!(zones)
730         )
731     );
732 }
733 impl Default for virtio_blk_zone_report {
default() -> Self734     fn default() -> Self {
735         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
736         unsafe {
737             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
738             s.assume_init()
739         }
740     }
741 }
742 #[repr(C)]
743 #[derive(Debug, Default, Copy, Clone, PartialEq)]
744 pub struct virtio_blk_discard_write_zeroes {
745     pub sector: __le64,
746     pub num_sectors: __le32,
747     pub flags: __le32,
748 }
749 #[test]
bindgen_test_layout_virtio_blk_discard_write_zeroes()750 fn bindgen_test_layout_virtio_blk_discard_write_zeroes() {
751     const UNINIT: ::std::mem::MaybeUninit<virtio_blk_discard_write_zeroes> =
752         ::std::mem::MaybeUninit::uninit();
753     let ptr = UNINIT.as_ptr();
754     assert_eq!(
755         ::std::mem::size_of::<virtio_blk_discard_write_zeroes>(),
756         16usize,
757         concat!("Size of: ", stringify!(virtio_blk_discard_write_zeroes))
758     );
759     assert_eq!(
760         ::std::mem::align_of::<virtio_blk_discard_write_zeroes>(),
761         8usize,
762         concat!("Alignment of ", stringify!(virtio_blk_discard_write_zeroes))
763     );
764     assert_eq!(
765         unsafe { ::std::ptr::addr_of!((*ptr).sector) as usize - ptr as usize },
766         0usize,
767         concat!(
768             "Offset of field: ",
769             stringify!(virtio_blk_discard_write_zeroes),
770             "::",
771             stringify!(sector)
772         )
773     );
774     assert_eq!(
775         unsafe { ::std::ptr::addr_of!((*ptr).num_sectors) as usize - ptr as usize },
776         8usize,
777         concat!(
778             "Offset of field: ",
779             stringify!(virtio_blk_discard_write_zeroes),
780             "::",
781             stringify!(num_sectors)
782         )
783     );
784     assert_eq!(
785         unsafe { ::std::ptr::addr_of!((*ptr).flags) as usize - ptr as usize },
786         12usize,
787         concat!(
788             "Offset of field: ",
789             stringify!(virtio_blk_discard_write_zeroes),
790             "::",
791             stringify!(flags)
792         )
793     );
794 }
795 #[repr(C)]
796 #[derive(Debug, Default, Copy, Clone, PartialEq)]
797 pub struct virtio_scsi_inhdr {
798     pub errors: __virtio32,
799     pub data_len: __virtio32,
800     pub sense_len: __virtio32,
801     pub residual: __virtio32,
802 }
803 #[test]
bindgen_test_layout_virtio_scsi_inhdr()804 fn bindgen_test_layout_virtio_scsi_inhdr() {
805     const UNINIT: ::std::mem::MaybeUninit<virtio_scsi_inhdr> = ::std::mem::MaybeUninit::uninit();
806     let ptr = UNINIT.as_ptr();
807     assert_eq!(
808         ::std::mem::size_of::<virtio_scsi_inhdr>(),
809         16usize,
810         concat!("Size of: ", stringify!(virtio_scsi_inhdr))
811     );
812     assert_eq!(
813         ::std::mem::align_of::<virtio_scsi_inhdr>(),
814         4usize,
815         concat!("Alignment of ", stringify!(virtio_scsi_inhdr))
816     );
817     assert_eq!(
818         unsafe { ::std::ptr::addr_of!((*ptr).errors) as usize - ptr as usize },
819         0usize,
820         concat!(
821             "Offset of field: ",
822             stringify!(virtio_scsi_inhdr),
823             "::",
824             stringify!(errors)
825         )
826     );
827     assert_eq!(
828         unsafe { ::std::ptr::addr_of!((*ptr).data_len) as usize - ptr as usize },
829         4usize,
830         concat!(
831             "Offset of field: ",
832             stringify!(virtio_scsi_inhdr),
833             "::",
834             stringify!(data_len)
835         )
836     );
837     assert_eq!(
838         unsafe { ::std::ptr::addr_of!((*ptr).sense_len) as usize - ptr as usize },
839         8usize,
840         concat!(
841             "Offset of field: ",
842             stringify!(virtio_scsi_inhdr),
843             "::",
844             stringify!(sense_len)
845         )
846     );
847     assert_eq!(
848         unsafe { ::std::ptr::addr_of!((*ptr).residual) as usize - ptr as usize },
849         12usize,
850         concat!(
851             "Offset of field: ",
852             stringify!(virtio_scsi_inhdr),
853             "::",
854             stringify!(residual)
855         )
856     );
857 }
858