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