1
2
3
4
5
6
7
8
9
10
11
12 typedef void (*mts_scsi_cmnd_callback)(struct scsi_cmnd *);
13
14
15 struct mts_transfer_context
16 {
17 struct mts_desc *instance;
18 mts_scsi_cmnd_callback final_callback;
19 struct scsi_cmnd *srb;
20
21 void *data;
22 unsigned data_length;
23 int data_pipe;
24 struct scatterlist *curr_sg;
25
26 u8 *scsi_status;
27 };
28
29
30 struct mts_desc {
31 struct mts_desc *next;
32 struct mts_desc *prev;
33
34 struct usb_device *usb_dev;
35 struct usb_interface *usb_intf;
36
37
38 u8 ep_out;
39 u8 ep_response;
40 u8 ep_image;
41
42 struct Scsi_Host *host;
43
44 struct urb *urb;
45 struct mts_transfer_context context;
46 };
47
48
49 #define MTS_EP_OUT 0x1
50 #define MTS_EP_RESPONSE 0x2
51 #define MTS_EP_IMAGE 0x3
52 #define MTS_EP_TOTAL 0x3
53
54 #define MTS_SCSI_ERR_MASK ~0x3fu
55