1*8d67ca89SAndroid Build Coastguard Worker /* 2*8d67ca89SAndroid Build Coastguard Worker * This file is auto-generated. Modifications will be lost. 3*8d67ca89SAndroid Build Coastguard Worker * 4*8d67ca89SAndroid Build Coastguard Worker * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/ 5*8d67ca89SAndroid Build Coastguard Worker * for more information. 6*8d67ca89SAndroid Build Coastguard Worker */ 7*8d67ca89SAndroid Build Coastguard Worker #ifndef _LINUX_VIRTIO_SCSI_H 8*8d67ca89SAndroid Build Coastguard Worker #define _LINUX_VIRTIO_SCSI_H 9*8d67ca89SAndroid Build Coastguard Worker #include <linux/virtio_types.h> 10*8d67ca89SAndroid Build Coastguard Worker #define VIRTIO_SCSI_CDB_DEFAULT_SIZE 32 11*8d67ca89SAndroid Build Coastguard Worker #define VIRTIO_SCSI_SENSE_DEFAULT_SIZE 96 12*8d67ca89SAndroid Build Coastguard Worker #ifndef VIRTIO_SCSI_CDB_SIZE 13*8d67ca89SAndroid Build Coastguard Worker #define VIRTIO_SCSI_CDB_SIZE VIRTIO_SCSI_CDB_DEFAULT_SIZE 14*8d67ca89SAndroid Build Coastguard Worker #endif 15*8d67ca89SAndroid Build Coastguard Worker #ifndef VIRTIO_SCSI_SENSE_SIZE 16*8d67ca89SAndroid Build Coastguard Worker #define VIRTIO_SCSI_SENSE_SIZE VIRTIO_SCSI_SENSE_DEFAULT_SIZE 17*8d67ca89SAndroid Build Coastguard Worker #endif 18*8d67ca89SAndroid Build Coastguard Worker struct virtio_scsi_cmd_req { 19*8d67ca89SAndroid Build Coastguard Worker __u8 lun[8]; 20*8d67ca89SAndroid Build Coastguard Worker __virtio64 tag; 21*8d67ca89SAndroid Build Coastguard Worker __u8 task_attr; 22*8d67ca89SAndroid Build Coastguard Worker __u8 prio; 23*8d67ca89SAndroid Build Coastguard Worker __u8 crn; 24*8d67ca89SAndroid Build Coastguard Worker __u8 cdb[VIRTIO_SCSI_CDB_SIZE]; 25*8d67ca89SAndroid Build Coastguard Worker } __attribute__((packed)); 26*8d67ca89SAndroid Build Coastguard Worker struct virtio_scsi_cmd_req_pi { 27*8d67ca89SAndroid Build Coastguard Worker __u8 lun[8]; 28*8d67ca89SAndroid Build Coastguard Worker __virtio64 tag; 29*8d67ca89SAndroid Build Coastguard Worker __u8 task_attr; 30*8d67ca89SAndroid Build Coastguard Worker __u8 prio; 31*8d67ca89SAndroid Build Coastguard Worker __u8 crn; 32*8d67ca89SAndroid Build Coastguard Worker __virtio32 pi_bytesout; 33*8d67ca89SAndroid Build Coastguard Worker __virtio32 pi_bytesin; 34*8d67ca89SAndroid Build Coastguard Worker __u8 cdb[VIRTIO_SCSI_CDB_SIZE]; 35*8d67ca89SAndroid Build Coastguard Worker } __attribute__((packed)); 36*8d67ca89SAndroid Build Coastguard Worker struct virtio_scsi_cmd_resp { 37*8d67ca89SAndroid Build Coastguard Worker __virtio32 sense_len; 38*8d67ca89SAndroid Build Coastguard Worker __virtio32 resid; 39*8d67ca89SAndroid Build Coastguard Worker __virtio16 status_qualifier; 40*8d67ca89SAndroid Build Coastguard Worker __u8 status; 41*8d67ca89SAndroid Build Coastguard Worker __u8 response; 42*8d67ca89SAndroid Build Coastguard Worker __u8 sense[VIRTIO_SCSI_SENSE_SIZE]; 43*8d67ca89SAndroid Build Coastguard Worker } __attribute__((packed)); 44*8d67ca89SAndroid Build Coastguard Worker struct virtio_scsi_ctrl_tmf_req { 45*8d67ca89SAndroid Build Coastguard Worker __virtio32 type; 46*8d67ca89SAndroid Build Coastguard Worker __virtio32 subtype; 47*8d67ca89SAndroid Build Coastguard Worker __u8 lun[8]; 48*8d67ca89SAndroid Build Coastguard Worker __virtio64 tag; 49*8d67ca89SAndroid Build Coastguard Worker } __attribute__((packed)); 50*8d67ca89SAndroid Build Coastguard Worker struct virtio_scsi_ctrl_tmf_resp { 51*8d67ca89SAndroid Build Coastguard Worker __u8 response; 52*8d67ca89SAndroid Build Coastguard Worker } __attribute__((packed)); 53*8d67ca89SAndroid Build Coastguard Worker struct virtio_scsi_ctrl_an_req { 54*8d67ca89SAndroid Build Coastguard Worker __virtio32 type; 55*8d67ca89SAndroid Build Coastguard Worker __u8 lun[8]; 56*8d67ca89SAndroid Build Coastguard Worker __virtio32 event_requested; 57*8d67ca89SAndroid Build Coastguard Worker } __attribute__((packed)); 58*8d67ca89SAndroid Build Coastguard Worker struct virtio_scsi_ctrl_an_resp { 59*8d67ca89SAndroid Build Coastguard Worker __virtio32 event_actual; 60*8d67ca89SAndroid Build Coastguard Worker __u8 response; 61*8d67ca89SAndroid Build Coastguard Worker } __attribute__((packed)); 62*8d67ca89SAndroid Build Coastguard Worker struct virtio_scsi_event { 63*8d67ca89SAndroid Build Coastguard Worker __virtio32 event; 64*8d67ca89SAndroid Build Coastguard Worker __u8 lun[8]; 65*8d67ca89SAndroid Build Coastguard Worker __virtio32 reason; 66*8d67ca89SAndroid Build Coastguard Worker } __attribute__((packed)); 67*8d67ca89SAndroid Build Coastguard Worker struct virtio_scsi_config { 68*8d67ca89SAndroid Build Coastguard Worker __virtio32 num_queues; 69*8d67ca89SAndroid Build Coastguard Worker __virtio32 seg_max; 70*8d67ca89SAndroid Build Coastguard Worker __virtio32 max_sectors; 71*8d67ca89SAndroid Build Coastguard Worker __virtio32 cmd_per_lun; 72*8d67ca89SAndroid Build Coastguard Worker __virtio32 event_info_size; 73*8d67ca89SAndroid Build Coastguard Worker __virtio32 sense_size; 74*8d67ca89SAndroid Build Coastguard Worker __virtio32 cdb_size; 75*8d67ca89SAndroid Build Coastguard Worker __virtio16 max_channel; 76*8d67ca89SAndroid Build Coastguard Worker __virtio16 max_target; 77*8d67ca89SAndroid Build Coastguard Worker __virtio32 max_lun; 78*8d67ca89SAndroid Build Coastguard Worker } __attribute__((packed)); 79*8d67ca89SAndroid Build Coastguard Worker #define VIRTIO_SCSI_F_INOUT 0 80*8d67ca89SAndroid Build Coastguard Worker #define VIRTIO_SCSI_F_HOTPLUG 1 81*8d67ca89SAndroid Build Coastguard Worker #define VIRTIO_SCSI_F_CHANGE 2 82*8d67ca89SAndroid Build Coastguard Worker #define VIRTIO_SCSI_F_T10_PI 3 83*8d67ca89SAndroid Build Coastguard Worker #define VIRTIO_SCSI_S_OK 0 84*8d67ca89SAndroid Build Coastguard Worker #define VIRTIO_SCSI_S_OVERRUN 1 85*8d67ca89SAndroid Build Coastguard Worker #define VIRTIO_SCSI_S_ABORTED 2 86*8d67ca89SAndroid Build Coastguard Worker #define VIRTIO_SCSI_S_BAD_TARGET 3 87*8d67ca89SAndroid Build Coastguard Worker #define VIRTIO_SCSI_S_RESET 4 88*8d67ca89SAndroid Build Coastguard Worker #define VIRTIO_SCSI_S_BUSY 5 89*8d67ca89SAndroid Build Coastguard Worker #define VIRTIO_SCSI_S_TRANSPORT_FAILURE 6 90*8d67ca89SAndroid Build Coastguard Worker #define VIRTIO_SCSI_S_TARGET_FAILURE 7 91*8d67ca89SAndroid Build Coastguard Worker #define VIRTIO_SCSI_S_NEXUS_FAILURE 8 92*8d67ca89SAndroid Build Coastguard Worker #define VIRTIO_SCSI_S_FAILURE 9 93*8d67ca89SAndroid Build Coastguard Worker #define VIRTIO_SCSI_S_FUNCTION_SUCCEEDED 10 94*8d67ca89SAndroid Build Coastguard Worker #define VIRTIO_SCSI_S_FUNCTION_REJECTED 11 95*8d67ca89SAndroid Build Coastguard Worker #define VIRTIO_SCSI_S_INCORRECT_LUN 12 96*8d67ca89SAndroid Build Coastguard Worker #define VIRTIO_SCSI_T_TMF 0 97*8d67ca89SAndroid Build Coastguard Worker #define VIRTIO_SCSI_T_AN_QUERY 1 98*8d67ca89SAndroid Build Coastguard Worker #define VIRTIO_SCSI_T_AN_SUBSCRIBE 2 99*8d67ca89SAndroid Build Coastguard Worker #define VIRTIO_SCSI_T_TMF_ABORT_TASK 0 100*8d67ca89SAndroid Build Coastguard Worker #define VIRTIO_SCSI_T_TMF_ABORT_TASK_SET 1 101*8d67ca89SAndroid Build Coastguard Worker #define VIRTIO_SCSI_T_TMF_CLEAR_ACA 2 102*8d67ca89SAndroid Build Coastguard Worker #define VIRTIO_SCSI_T_TMF_CLEAR_TASK_SET 3 103*8d67ca89SAndroid Build Coastguard Worker #define VIRTIO_SCSI_T_TMF_I_T_NEXUS_RESET 4 104*8d67ca89SAndroid Build Coastguard Worker #define VIRTIO_SCSI_T_TMF_LOGICAL_UNIT_RESET 5 105*8d67ca89SAndroid Build Coastguard Worker #define VIRTIO_SCSI_T_TMF_QUERY_TASK 6 106*8d67ca89SAndroid Build Coastguard Worker #define VIRTIO_SCSI_T_TMF_QUERY_TASK_SET 7 107*8d67ca89SAndroid Build Coastguard Worker #define VIRTIO_SCSI_T_EVENTS_MISSED 0x80000000 108*8d67ca89SAndroid Build Coastguard Worker #define VIRTIO_SCSI_T_NO_EVENT 0 109*8d67ca89SAndroid Build Coastguard Worker #define VIRTIO_SCSI_T_TRANSPORT_RESET 1 110*8d67ca89SAndroid Build Coastguard Worker #define VIRTIO_SCSI_T_ASYNC_NOTIFY 2 111*8d67ca89SAndroid Build Coastguard Worker #define VIRTIO_SCSI_T_PARAM_CHANGE 3 112*8d67ca89SAndroid Build Coastguard Worker #define VIRTIO_SCSI_EVT_RESET_HARD 0 113*8d67ca89SAndroid Build Coastguard Worker #define VIRTIO_SCSI_EVT_RESET_RESCAN 1 114*8d67ca89SAndroid Build Coastguard Worker #define VIRTIO_SCSI_EVT_RESET_REMOVED 2 115*8d67ca89SAndroid Build Coastguard Worker #define VIRTIO_SCSI_S_SIMPLE 0 116*8d67ca89SAndroid Build Coastguard Worker #define VIRTIO_SCSI_S_ORDERED 1 117*8d67ca89SAndroid Build Coastguard Worker #define VIRTIO_SCSI_S_HEAD 2 118*8d67ca89SAndroid Build Coastguard Worker #define VIRTIO_SCSI_S_ACA 3 119*8d67ca89SAndroid Build Coastguard Worker #endif 120