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