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