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