Commit | Line | Data |
---|---|---|
348748b0 SAS |
1 | #ifndef __USB_UAS_H__ |
2 | #define __USB_UAS_H__ | |
3 | ||
4 | #include <scsi/scsi.h> | |
5 | #include <scsi/scsi_cmnd.h> | |
6 | ||
7 | /* Common header for all IUs */ | |
8 | struct iu { | |
9 | __u8 iu_id; | |
10 | __u8 rsvd1; | |
11 | __be16 tag; | |
12 | }; | |
13 | ||
14 | enum { | |
15 | IU_ID_COMMAND = 0x01, | |
16 | IU_ID_STATUS = 0x03, | |
17 | IU_ID_RESPONSE = 0x04, | |
18 | IU_ID_TASK_MGMT = 0x05, | |
19 | IU_ID_READ_READY = 0x06, | |
20 | IU_ID_WRITE_READY = 0x07, | |
21 | }; | |
22 | ||
23 | struct command_iu { | |
24 | __u8 iu_id; | |
25 | __u8 rsvd1; | |
26 | __be16 tag; | |
27 | __u8 prio_attr; | |
28 | __u8 rsvd5; | |
29 | __u8 len; | |
30 | __u8 rsvd7; | |
31 | struct scsi_lun lun; | |
32 | __u8 cdb[16]; /* XXX: Overflow-checking tools may misunderstand */ | |
33 | }; | |
34 | ||
35 | /* | |
36 | * Also used for the Read Ready and Write Ready IUs since they have the | |
37 | * same first four bytes | |
38 | */ | |
39 | struct sense_iu { | |
40 | __u8 iu_id; | |
41 | __u8 rsvd1; | |
42 | __be16 tag; | |
43 | __be16 status_qual; | |
44 | __u8 status; | |
45 | __u8 rsvd7[7]; | |
46 | __be16 len; | |
47 | __u8 sense[SCSI_SENSE_BUFFERSIZE]; | |
48 | }; | |
49 | ||
ee398b59 SAS |
50 | struct usb_pipe_usage_descriptor { |
51 | __u8 bLength; | |
52 | __u8 bDescriptorType; | |
53 | ||
54 | __u8 bPipeID; | |
55 | __u8 Reserved; | |
56 | } __attribute__((__packed__)); | |
57 | ||
348748b0 SAS |
58 | enum { |
59 | CMD_PIPE_ID = 1, | |
60 | STATUS_PIPE_ID = 2, | |
61 | DATA_IN_PIPE_ID = 3, | |
62 | DATA_OUT_PIPE_ID = 4, | |
63 | ||
64 | UAS_SIMPLE_TAG = 0, | |
65 | UAS_HEAD_TAG = 1, | |
66 | UAS_ORDERED_TAG = 2, | |
67 | UAS_ACA = 4, | |
68 | }; | |
69 | #endif |