virtio_sys/
virtio_scsi.rs

1/* automatically generated by tools/bindgen-all-the-things */
2
3#![allow(clippy::missing_safety_doc)]
4#![allow(clippy::ptr_offset_with_cast)] // https://github.com/rust-lang/rust-bindgen/issues/3053
5#![allow(clippy::undocumented_unsafe_blocks)]
6#![allow(clippy::upper_case_acronyms)]
7#![allow(non_upper_case_globals)]
8#![allow(non_camel_case_types)]
9#![allow(non_snake_case)]
10#![allow(dead_code)]
11
12// Added by virtio_sys/bindgen.sh
13use zerocopy::FromBytes;
14use zerocopy::Immutable;
15use zerocopy::IntoBytes;
16use zerocopy::KnownLayout;
17
18pub const VIRTIO_SCSI_CDB_DEFAULT_SIZE: u32 = 32;
19pub const VIRTIO_SCSI_SENSE_DEFAULT_SIZE: u32 = 96;
20pub const VIRTIO_SCSI_CDB_SIZE: u32 = 32;
21pub const VIRTIO_SCSI_SENSE_SIZE: u32 = 96;
22pub const VIRTIO_SCSI_F_INOUT: u32 = 0;
23pub const VIRTIO_SCSI_F_HOTPLUG: u32 = 1;
24pub const VIRTIO_SCSI_F_CHANGE: u32 = 2;
25pub const VIRTIO_SCSI_F_T10_PI: u32 = 3;
26pub const VIRTIO_SCSI_S_OK: u32 = 0;
27pub const VIRTIO_SCSI_S_OVERRUN: u32 = 1;
28pub const VIRTIO_SCSI_S_ABORTED: u32 = 2;
29pub const VIRTIO_SCSI_S_BAD_TARGET: u32 = 3;
30pub const VIRTIO_SCSI_S_RESET: u32 = 4;
31pub const VIRTIO_SCSI_S_BUSY: u32 = 5;
32pub const VIRTIO_SCSI_S_TRANSPORT_FAILURE: u32 = 6;
33pub const VIRTIO_SCSI_S_TARGET_FAILURE: u32 = 7;
34pub const VIRTIO_SCSI_S_NEXUS_FAILURE: u32 = 8;
35pub const VIRTIO_SCSI_S_FAILURE: u32 = 9;
36pub const VIRTIO_SCSI_S_FUNCTION_SUCCEEDED: u32 = 10;
37pub const VIRTIO_SCSI_S_FUNCTION_REJECTED: u32 = 11;
38pub const VIRTIO_SCSI_S_INCORRECT_LUN: u32 = 12;
39pub const VIRTIO_SCSI_T_TMF: u32 = 0;
40pub const VIRTIO_SCSI_T_AN_QUERY: u32 = 1;
41pub const VIRTIO_SCSI_T_AN_SUBSCRIBE: u32 = 2;
42pub const VIRTIO_SCSI_T_TMF_ABORT_TASK: u32 = 0;
43pub const VIRTIO_SCSI_T_TMF_ABORT_TASK_SET: u32 = 1;
44pub const VIRTIO_SCSI_T_TMF_CLEAR_ACA: u32 = 2;
45pub const VIRTIO_SCSI_T_TMF_CLEAR_TASK_SET: u32 = 3;
46pub const VIRTIO_SCSI_T_TMF_I_T_NEXUS_RESET: u32 = 4;
47pub const VIRTIO_SCSI_T_TMF_LOGICAL_UNIT_RESET: u32 = 5;
48pub const VIRTIO_SCSI_T_TMF_QUERY_TASK: u32 = 6;
49pub const VIRTIO_SCSI_T_TMF_QUERY_TASK_SET: u32 = 7;
50pub const VIRTIO_SCSI_T_EVENTS_MISSED: u32 = 2147483648;
51pub const VIRTIO_SCSI_T_NO_EVENT: u32 = 0;
52pub const VIRTIO_SCSI_T_TRANSPORT_RESET: u32 = 1;
53pub const VIRTIO_SCSI_T_ASYNC_NOTIFY: u32 = 2;
54pub const VIRTIO_SCSI_T_PARAM_CHANGE: u32 = 3;
55pub const VIRTIO_SCSI_EVT_RESET_HARD: u32 = 0;
56pub const VIRTIO_SCSI_EVT_RESET_RESCAN: u32 = 1;
57pub const VIRTIO_SCSI_EVT_RESET_REMOVED: u32 = 2;
58pub const VIRTIO_SCSI_S_SIMPLE: u32 = 0;
59pub const VIRTIO_SCSI_S_ORDERED: u32 = 1;
60pub const VIRTIO_SCSI_S_HEAD: u32 = 2;
61pub const VIRTIO_SCSI_S_ACA: u32 = 3;
62pub type __virtio16 = u16;
63pub type __virtio32 = u32;
64pub type __virtio64 = u64;
65#[repr(C, packed)]
66#[derive(Debug, Default, Copy, Clone, FromBytes, Immutable, IntoBytes, KnownLayout)]
67pub struct virtio_scsi_cmd_req {
68    pub lun: [u8; 8usize],
69    pub tag: __virtio64,
70    pub task_attr: u8,
71    pub prio: u8,
72    pub crn: u8,
73    pub cdb: [u8; 32usize],
74}
75#[repr(C, packed)]
76#[derive(Debug, Copy, Clone, FromBytes, Immutable, IntoBytes, KnownLayout)]
77pub struct virtio_scsi_cmd_resp {
78    pub sense_len: __virtio32,
79    pub resid: __virtio32,
80    pub status_qualifier: __virtio16,
81    pub status: u8,
82    pub response: u8,
83    pub sense: [u8; 96usize],
84}
85impl Default for virtio_scsi_cmd_resp {
86    fn default() -> Self {
87        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
88        unsafe {
89            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
90            s.assume_init()
91        }
92    }
93}
94#[repr(C, packed)]
95#[derive(Debug, Default, Copy, Clone, FromBytes, Immutable, IntoBytes, KnownLayout)]
96pub struct virtio_scsi_ctrl_tmf_req {
97    pub type_: __virtio32,
98    pub subtype: __virtio32,
99    pub lun: [u8; 8usize],
100    pub tag: __virtio64,
101}
102#[repr(C, packed)]
103#[derive(Debug, Default, Copy, Clone, FromBytes, Immutable, IntoBytes, KnownLayout)]
104pub struct virtio_scsi_ctrl_tmf_resp {
105    pub response: u8,
106}
107#[repr(C, packed)]
108#[derive(Debug, Default, Copy, Clone, FromBytes, Immutable, IntoBytes, KnownLayout)]
109pub struct virtio_scsi_ctrl_an_req {
110    pub type_: __virtio32,
111    pub lun: [u8; 8usize],
112    pub event_requested: __virtio32,
113}
114#[repr(C, packed)]
115#[derive(Debug, Default, Copy, Clone, FromBytes, Immutable, IntoBytes, KnownLayout)]
116pub struct virtio_scsi_ctrl_an_resp {
117    pub event_actual: __virtio32,
118    pub response: u8,
119}
120#[repr(C, packed)]
121#[derive(Debug, Default, Copy, Clone)]
122pub struct virtio_scsi_event {
123    pub event: __virtio32,
124    pub lun: [u8; 8usize],
125    pub reason: __virtio32,
126}
127#[repr(C, packed)]
128#[derive(Debug, Default, Copy, Clone, FromBytes, Immutable, IntoBytes, KnownLayout)]
129pub struct virtio_scsi_config {
130    pub num_queues: __virtio32,
131    pub seg_max: __virtio32,
132    pub max_sectors: __virtio32,
133    pub cmd_per_lun: __virtio32,
134    pub event_info_size: __virtio32,
135    pub sense_size: __virtio32,
136    pub cdb_size: __virtio32,
137    pub max_channel: __virtio16,
138    pub max_target: __virtio16,
139    pub max_lun: __virtio32,
140}