41#ifndef _UMAS_PROTOCOL_H_
42#define _UMAS_PROTOCOL_H_
47#define UMAS_SC_RBC 0x01
48#define UMAS_SC_8020 0x02
49#define UMAS_SC_QIC 0x03
50#define UMAS_SC_UFI 0x04
51#define UMAS_SC_8070 0x05
52#define UMAS_SC_SCSI 0x06
53#define UMAS_SC_MIN UMAS_SC_RBC
54#define UMAS_SC_MAX UMAS_SC_SCSI
57#define USB_STOR_SCSI_SENSE_HDRSZ 4
58#define USB_STOR_SCSI_SENSE_10_HDRSZ 8
61struct usb_stor_scsi_sense_hdr
65 uint8_t *devSpecParms;
66 uint8_t *blkDescLength;
69typedef struct usb_stor_scsi_sense_hdr Usb_Stor_Scsi_Sense_Hdr;
71union usb_stor_scsi_sense_hdr_u
73 Usb_Stor_Scsi_Sense_Hdr hdr;
74 uint8_t *array[USB_STOR_SCSI_SENSE_HDRSZ];
78typedef union usb_stor_scsi_sense_hdr_u Usb_Stor_Scsi_Sense_Hdr_u;
80struct usb_stor_scsi_sense_hdr_10
82 uint8_t *dataLengthMSB;
83 uint8_t *dataLengthLSB;
85 uint8_t *devSpecParms;
88 uint8_t *blkDescLengthMSB;
89 uint8_t *blkDescLengthLSB;
92typedef struct usb_stor_scsi_sense_hdr_10 Usb_Stor_Scsi_Sense_Hdr_10;
94union usb_stor_scsi_sense_hdr_10_u
96 Usb_Stor_Scsi_Sense_Hdr_10 hdr;
97 uint8_t *array[USB_STOR_SCSI_SENSE_10_HDRSZ];
100typedef union usb_stor_scsi_sense_hdr_10_u Usb_Stor_Scsi_Sense_Hdr_10_u;
104extern void UMAS_AtapiCommand(SCSI_CMD_T *srb, UMAS_DATA_T *umas);
105extern void UMAS_Qic157Command(SCSI_CMD_T *srb, UMAS_DATA_T *umas);
106extern void UMAS_UfiCommand(SCSI_CMD_T *srb, UMAS_DATA_T *umas);
107extern void UMAS_TransparentScsiCommand(SCSI_CMD_T *srb, UMAS_DATA_T *umas);