Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
microtek.h
Go to the documentation of this file.
1  /*
2  * Driver for Microtek Scanmaker X6 USB scanner and possibly others.
3  *
4  * (C) Copyright 2000 John Fremlin <[email protected]>
5  * (C) Copyright 2000 Oliver Neukum <[email protected]>
6  *
7  * See microtek.c for history
8  *
9  */
10 
11 typedef void (*mts_scsi_cmnd_callback)(struct scsi_cmnd *);
12 
13 
15 {
16  struct mts_desc* instance;
18  struct scsi_cmnd *srb;
19 
20  void* data;
21  unsigned data_length;
22  int data_pipe;
23  int fragment;
24 
25  u8 *scsi_status; /* status returned from ep_response after command completion */
26 };
27 
28 
29 struct mts_desc {
30  struct mts_desc *next;
31  struct mts_desc *prev;
32 
33  struct usb_device *usb_dev;
35 
36  /* Endpoint addresses */
40 
41  struct Scsi_Host * host;
42 
43  struct urb *urb;
45 };
46 
47 
48 #define MTS_EP_OUT 0x1
49 #define MTS_EP_RESPONSE 0x2
50 #define MTS_EP_IMAGE 0x3
51 #define MTS_EP_TOTAL 0x3
52 
53 #define MTS_SCSI_ERR_MASK ~0x3fu
54