• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /* automatically generated by rust-bindgen 0.70.1 */
2 
3 #[repr(C)]
4 #[derive(Default)]
5 pub struct __IncompleteArrayField<T>(::std::marker::PhantomData<T>, [T; 0]);
6 impl<T> __IncompleteArrayField<T> {
7     #[inline]
new() -> Self8     pub const fn new() -> Self {
9         __IncompleteArrayField(::std::marker::PhantomData, [])
10     }
11     #[inline]
as_ptr(&self) -> *const T12     pub fn as_ptr(&self) -> *const T {
13         self as *const _ as *const T
14     }
15     #[inline]
as_mut_ptr(&mut self) -> *mut T16     pub fn as_mut_ptr(&mut self) -> *mut T {
17         self as *mut _ as *mut T
18     }
19     #[inline]
as_slice(&self, len: usize) -> &[T]20     pub unsafe fn as_slice(&self, len: usize) -> &[T] {
21         ::std::slice::from_raw_parts(self.as_ptr(), len)
22     }
23     #[inline]
as_mut_slice(&mut self, len: usize) -> &mut [T]24     pub unsafe fn as_mut_slice(&mut self, len: usize) -> &mut [T] {
25         ::std::slice::from_raw_parts_mut(self.as_mut_ptr(), len)
26     }
27 }
28 impl<T> ::std::fmt::Debug for __IncompleteArrayField<T> {
fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result29     fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
30         fmt.write_str("__IncompleteArrayField")
31     }
32 }
33 pub const VIRTIO_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 #[allow(clippy::unnecessary_operation, clippy::identity_op)]
132 const _: () = {
133     ["Size of virtio_blk_config_virtio_blk_geometry"]
134         [::std::mem::size_of::<virtio_blk_config_virtio_blk_geometry>() - 4usize];
135     ["Alignment of virtio_blk_config_virtio_blk_geometry"]
136         [::std::mem::align_of::<virtio_blk_config_virtio_blk_geometry>() - 2usize];
137     ["Offset of field: virtio_blk_config_virtio_blk_geometry::cylinders"]
138         [::std::mem::offset_of!(virtio_blk_config_virtio_blk_geometry, cylinders) - 0usize];
139     ["Offset of field: virtio_blk_config_virtio_blk_geometry::heads"]
140         [::std::mem::offset_of!(virtio_blk_config_virtio_blk_geometry, heads) - 2usize];
141     ["Offset of field: virtio_blk_config_virtio_blk_geometry::sectors"]
142         [::std::mem::offset_of!(virtio_blk_config_virtio_blk_geometry, sectors) - 3usize];
143 };
144 #[repr(C)]
145 #[derive(Debug, Default, Copy, Clone, PartialEq)]
146 pub struct virtio_blk_config_virtio_blk_zoned_characteristics {
147     pub zone_sectors: __virtio32,
148     pub max_open_zones: __virtio32,
149     pub max_active_zones: __virtio32,
150     pub max_append_sectors: __virtio32,
151     pub write_granularity: __virtio32,
152     pub model: __u8,
153     pub unused2: [__u8; 3usize],
154 }
155 #[allow(clippy::unnecessary_operation, clippy::identity_op)]
156 const _: () = {
157     ["Size of virtio_blk_config_virtio_blk_zoned_characteristics"]
158         [::std::mem::size_of::<virtio_blk_config_virtio_blk_zoned_characteristics>() - 24usize];
159     ["Alignment of virtio_blk_config_virtio_blk_zoned_characteristics"]
160         [::std::mem::align_of::<virtio_blk_config_virtio_blk_zoned_characteristics>() - 4usize];
161     ["Offset of field: virtio_blk_config_virtio_blk_zoned_characteristics::zone_sectors"][::std::mem::offset_of!(
162         virtio_blk_config_virtio_blk_zoned_characteristics,
163         zone_sectors
164     )
165         - 0usize];
166     ["Offset of field: virtio_blk_config_virtio_blk_zoned_characteristics::max_open_zones"][::std::mem::offset_of!(
167         virtio_blk_config_virtio_blk_zoned_characteristics,
168         max_open_zones
169     )
170         - 4usize];
171     ["Offset of field: virtio_blk_config_virtio_blk_zoned_characteristics::max_active_zones"][::std::mem::offset_of!(
172         virtio_blk_config_virtio_blk_zoned_characteristics,
173         max_active_zones
174     )
175         - 8usize];
176     ["Offset of field: virtio_blk_config_virtio_blk_zoned_characteristics::max_append_sectors"][::std::mem::offset_of!(
177         virtio_blk_config_virtio_blk_zoned_characteristics,
178         max_append_sectors
179     )
180         - 12usize];
181     ["Offset of field: virtio_blk_config_virtio_blk_zoned_characteristics::write_granularity"][::std::mem::offset_of!(
182         virtio_blk_config_virtio_blk_zoned_characteristics,
183         write_granularity
184     )
185         - 16usize];
186     ["Offset of field: virtio_blk_config_virtio_blk_zoned_characteristics::model"][::std::mem::offset_of!(
187         virtio_blk_config_virtio_blk_zoned_characteristics,
188         model
189     ) - 20usize];
190     ["Offset of field: virtio_blk_config_virtio_blk_zoned_characteristics::unused2"][::std::mem::offset_of!(
191         virtio_blk_config_virtio_blk_zoned_characteristics,
192         unused2
193     ) - 21usize];
194 };
195 #[allow(clippy::unnecessary_operation, clippy::identity_op)]
196 const _: () = {
197     ["Size of virtio_blk_config"][::std::mem::size_of::<virtio_blk_config>() - 96usize];
198     ["Alignment of virtio_blk_config"][::std::mem::align_of::<virtio_blk_config>() - 1usize];
199     ["Offset of field: virtio_blk_config::capacity"]
200         [::std::mem::offset_of!(virtio_blk_config, capacity) - 0usize];
201     ["Offset of field: virtio_blk_config::size_max"]
202         [::std::mem::offset_of!(virtio_blk_config, size_max) - 8usize];
203     ["Offset of field: virtio_blk_config::seg_max"]
204         [::std::mem::offset_of!(virtio_blk_config, seg_max) - 12usize];
205     ["Offset of field: virtio_blk_config::geometry"]
206         [::std::mem::offset_of!(virtio_blk_config, geometry) - 16usize];
207     ["Offset of field: virtio_blk_config::blk_size"]
208         [::std::mem::offset_of!(virtio_blk_config, blk_size) - 20usize];
209     ["Offset of field: virtio_blk_config::physical_block_exp"]
210         [::std::mem::offset_of!(virtio_blk_config, physical_block_exp) - 24usize];
211     ["Offset of field: virtio_blk_config::alignment_offset"]
212         [::std::mem::offset_of!(virtio_blk_config, alignment_offset) - 25usize];
213     ["Offset of field: virtio_blk_config::min_io_size"]
214         [::std::mem::offset_of!(virtio_blk_config, min_io_size) - 26usize];
215     ["Offset of field: virtio_blk_config::opt_io_size"]
216         [::std::mem::offset_of!(virtio_blk_config, opt_io_size) - 28usize];
217     ["Offset of field: virtio_blk_config::wce"]
218         [::std::mem::offset_of!(virtio_blk_config, wce) - 32usize];
219     ["Offset of field: virtio_blk_config::unused"]
220         [::std::mem::offset_of!(virtio_blk_config, unused) - 33usize];
221     ["Offset of field: virtio_blk_config::num_queues"]
222         [::std::mem::offset_of!(virtio_blk_config, num_queues) - 34usize];
223     ["Offset of field: virtio_blk_config::max_discard_sectors"]
224         [::std::mem::offset_of!(virtio_blk_config, max_discard_sectors) - 36usize];
225     ["Offset of field: virtio_blk_config::max_discard_seg"]
226         [::std::mem::offset_of!(virtio_blk_config, max_discard_seg) - 40usize];
227     ["Offset of field: virtio_blk_config::discard_sector_alignment"]
228         [::std::mem::offset_of!(virtio_blk_config, discard_sector_alignment) - 44usize];
229     ["Offset of field: virtio_blk_config::max_write_zeroes_sectors"]
230         [::std::mem::offset_of!(virtio_blk_config, max_write_zeroes_sectors) - 48usize];
231     ["Offset of field: virtio_blk_config::max_write_zeroes_seg"]
232         [::std::mem::offset_of!(virtio_blk_config, max_write_zeroes_seg) - 52usize];
233     ["Offset of field: virtio_blk_config::write_zeroes_may_unmap"]
234         [::std::mem::offset_of!(virtio_blk_config, write_zeroes_may_unmap) - 56usize];
235     ["Offset of field: virtio_blk_config::unused1"]
236         [::std::mem::offset_of!(virtio_blk_config, unused1) - 57usize];
237     ["Offset of field: virtio_blk_config::max_secure_erase_sectors"]
238         [::std::mem::offset_of!(virtio_blk_config, max_secure_erase_sectors) - 60usize];
239     ["Offset of field: virtio_blk_config::max_secure_erase_seg"]
240         [::std::mem::offset_of!(virtio_blk_config, max_secure_erase_seg) - 64usize];
241     ["Offset of field: virtio_blk_config::secure_erase_sector_alignment"]
242         [::std::mem::offset_of!(virtio_blk_config, secure_erase_sector_alignment) - 68usize];
243     ["Offset of field: virtio_blk_config::zoned"]
244         [::std::mem::offset_of!(virtio_blk_config, zoned) - 72usize];
245 };
246 #[repr(C)]
247 #[derive(Debug, Default, Copy, Clone, PartialEq)]
248 pub struct virtio_blk_outhdr {
249     pub type_: __virtio32,
250     pub ioprio: __virtio32,
251     pub sector: __virtio64,
252 }
253 #[allow(clippy::unnecessary_operation, clippy::identity_op)]
254 const _: () = {
255     ["Size of virtio_blk_outhdr"][::std::mem::size_of::<virtio_blk_outhdr>() - 16usize];
256     ["Alignment of virtio_blk_outhdr"][::std::mem::align_of::<virtio_blk_outhdr>() - 8usize];
257     ["Offset of field: virtio_blk_outhdr::type_"]
258         [::std::mem::offset_of!(virtio_blk_outhdr, type_) - 0usize];
259     ["Offset of field: virtio_blk_outhdr::ioprio"]
260         [::std::mem::offset_of!(virtio_blk_outhdr, ioprio) - 4usize];
261     ["Offset of field: virtio_blk_outhdr::sector"]
262         [::std::mem::offset_of!(virtio_blk_outhdr, sector) - 8usize];
263 };
264 #[repr(C)]
265 #[derive(Debug, Copy, Clone, PartialEq)]
266 pub struct virtio_blk_zone_descriptor {
267     pub z_cap: __virtio64,
268     pub z_start: __virtio64,
269     pub z_wp: __virtio64,
270     pub z_type: __u8,
271     pub z_state: __u8,
272     pub reserved: [__u8; 38usize],
273 }
274 #[allow(clippy::unnecessary_operation, clippy::identity_op)]
275 const _: () = {
276     ["Size of virtio_blk_zone_descriptor"]
277         [::std::mem::size_of::<virtio_blk_zone_descriptor>() - 64usize];
278     ["Alignment of virtio_blk_zone_descriptor"]
279         [::std::mem::align_of::<virtio_blk_zone_descriptor>() - 8usize];
280     ["Offset of field: virtio_blk_zone_descriptor::z_cap"]
281         [::std::mem::offset_of!(virtio_blk_zone_descriptor, z_cap) - 0usize];
282     ["Offset of field: virtio_blk_zone_descriptor::z_start"]
283         [::std::mem::offset_of!(virtio_blk_zone_descriptor, z_start) - 8usize];
284     ["Offset of field: virtio_blk_zone_descriptor::z_wp"]
285         [::std::mem::offset_of!(virtio_blk_zone_descriptor, z_wp) - 16usize];
286     ["Offset of field: virtio_blk_zone_descriptor::z_type"]
287         [::std::mem::offset_of!(virtio_blk_zone_descriptor, z_type) - 24usize];
288     ["Offset of field: virtio_blk_zone_descriptor::z_state"]
289         [::std::mem::offset_of!(virtio_blk_zone_descriptor, z_state) - 25usize];
290     ["Offset of field: virtio_blk_zone_descriptor::reserved"]
291         [::std::mem::offset_of!(virtio_blk_zone_descriptor, reserved) - 26usize];
292 };
293 impl Default for virtio_blk_zone_descriptor {
default() -> Self294     fn default() -> Self {
295         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
296         unsafe {
297             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
298             s.assume_init()
299         }
300     }
301 }
302 #[repr(C)]
303 #[derive(Debug)]
304 pub struct virtio_blk_zone_report {
305     pub nr_zones: __virtio64,
306     pub reserved: [__u8; 56usize],
307     pub zones: __IncompleteArrayField<virtio_blk_zone_descriptor>,
308 }
309 #[allow(clippy::unnecessary_operation, clippy::identity_op)]
310 const _: () = {
311     ["Size of virtio_blk_zone_report"][::std::mem::size_of::<virtio_blk_zone_report>() - 64usize];
312     ["Alignment of virtio_blk_zone_report"]
313         [::std::mem::align_of::<virtio_blk_zone_report>() - 8usize];
314     ["Offset of field: virtio_blk_zone_report::nr_zones"]
315         [::std::mem::offset_of!(virtio_blk_zone_report, nr_zones) - 0usize];
316     ["Offset of field: virtio_blk_zone_report::reserved"]
317         [::std::mem::offset_of!(virtio_blk_zone_report, reserved) - 8usize];
318     ["Offset of field: virtio_blk_zone_report::zones"]
319         [::std::mem::offset_of!(virtio_blk_zone_report, zones) - 64usize];
320 };
321 impl Default for virtio_blk_zone_report {
default() -> Self322     fn default() -> Self {
323         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
324         unsafe {
325             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
326             s.assume_init()
327         }
328     }
329 }
330 #[repr(C)]
331 #[derive(Debug, Default, Copy, Clone, PartialEq)]
332 pub struct virtio_blk_discard_write_zeroes {
333     pub sector: __le64,
334     pub num_sectors: __le32,
335     pub flags: __le32,
336 }
337 #[allow(clippy::unnecessary_operation, clippy::identity_op)]
338 const _: () = {
339     ["Size of virtio_blk_discard_write_zeroes"]
340         [::std::mem::size_of::<virtio_blk_discard_write_zeroes>() - 16usize];
341     ["Alignment of virtio_blk_discard_write_zeroes"]
342         [::std::mem::align_of::<virtio_blk_discard_write_zeroes>() - 8usize];
343     ["Offset of field: virtio_blk_discard_write_zeroes::sector"]
344         [::std::mem::offset_of!(virtio_blk_discard_write_zeroes, sector) - 0usize];
345     ["Offset of field: virtio_blk_discard_write_zeroes::num_sectors"]
346         [::std::mem::offset_of!(virtio_blk_discard_write_zeroes, num_sectors) - 8usize];
347     ["Offset of field: virtio_blk_discard_write_zeroes::flags"]
348         [::std::mem::offset_of!(virtio_blk_discard_write_zeroes, flags) - 12usize];
349 };
350 #[repr(C)]
351 #[derive(Debug, Default, Copy, Clone, PartialEq)]
352 pub struct virtio_scsi_inhdr {
353     pub errors: __virtio32,
354     pub data_len: __virtio32,
355     pub sense_len: __virtio32,
356     pub residual: __virtio32,
357 }
358 #[allow(clippy::unnecessary_operation, clippy::identity_op)]
359 const _: () = {
360     ["Size of virtio_scsi_inhdr"][::std::mem::size_of::<virtio_scsi_inhdr>() - 16usize];
361     ["Alignment of virtio_scsi_inhdr"][::std::mem::align_of::<virtio_scsi_inhdr>() - 4usize];
362     ["Offset of field: virtio_scsi_inhdr::errors"]
363         [::std::mem::offset_of!(virtio_scsi_inhdr, errors) - 0usize];
364     ["Offset of field: virtio_scsi_inhdr::data_len"]
365         [::std::mem::offset_of!(virtio_scsi_inhdr, data_len) - 4usize];
366     ["Offset of field: virtio_scsi_inhdr::sense_len"]
367         [::std::mem::offset_of!(virtio_scsi_inhdr, sense_len) - 8usize];
368     ["Offset of field: virtio_scsi_inhdr::residual"]
369         [::std::mem::offset_of!(virtio_scsi_inhdr, residual) - 12usize];
370 };
371