1 #ifndef _INTERFACE_ADAPTER_H
2 #define _INTERFACE_ADAPTER_H
3 
4 typedef struct _BULK_ENDP_IN
5 {
6     PCHAR		    bulk_in_buffer;
7     size_t          bulk_in_size;
8     UCHAR			bulk_in_endpointAddr;
9     UINT bulk_in_pipe;
10 }BULK_ENDP_IN, *PBULK_ENDP_IN;
11 
12 
13 typedef struct _BULK_ENDP_OUT
14 {
15     UCHAR			bulk_out_buffer;
16     size_t          bulk_out_size;
17     UCHAR			bulk_out_endpointAddr;
18     UINT bulk_out_pipe;
19     //this is used when int out endpoint is used as bulk out end point
20 	UCHAR			int_out_interval;
21 }BULK_ENDP_OUT, *PBULK_ENDP_OUT;
22 
23 typedef struct _INTR_ENDP_IN
24 {
25     PCHAR		    int_in_buffer;
26     size_t          int_in_size;
27     UCHAR			int_in_endpointAddr;
28     UCHAR			int_in_interval;
29     UINT int_in_pipe;
30 }INTR_ENDP_IN, *PINTR_ENDP_IN;
31 
32 typedef struct _INTR_ENDP_OUT
33 {
34     PCHAR		    int_out_buffer;
35     size_t          int_out_size;
36     UCHAR			int_out_endpointAddr;
37     UCHAR			int_out_interval;
38     UINT int_out_pipe;
39 }INTR_ENDP_OUT, *PINTR_ENDP_OUT;
40 
41 
42 typedef struct _USB_TCB
43 {
44 	struct urb *urb;
45 	PVOID psIntfAdapter;
46 	BOOLEAN bUsed;
47 }USB_TCB, *PUSB_TCB;
48 
49 
50 typedef struct _USB_RCB
51 {
52 	struct urb *urb;
53 	PVOID psIntfAdapter;
54 	BOOLEAN bUsed;
55 }USB_RCB, *PUSB_RCB;
56 
57 /*
58 //This is the interface specific Sub-Adapter
59 //Structure.
60 */
61 typedef struct _S_INTERFACE_ADAPTER
62 {
63     struct usb_device * udev;
64     struct usb_interface *  interface;
65 
66 	/* Bulk endpoint in info */
67 	BULK_ENDP_IN	sBulkIn;
68 	/* Bulk endpoint out info */
69 	BULK_ENDP_OUT	sBulkOut;
70 	/* Interrupt endpoint in info */
71 	INTR_ENDP_IN	sIntrIn;
72 	/* Interrupt endpoint out info */
73 	INTR_ENDP_OUT	sIntrOut;
74 
75 
76 
77 	ULONG ulInterruptData[2];
78 
79 	struct urb *psInterruptUrb;
80 
81 	USB_TCB			asUsbTcb[MAXIMUM_USB_TCB];
82 	USB_RCB			asUsbRcb[MAXIMUM_USB_RCB];
83 	atomic_t	  	uNumTcbUsed;
84 	atomic_t		uCurrTcb;
85 	atomic_t		uNumRcbUsed;
86 	atomic_t		uCurrRcb;
87 
88 	PMINI_ADAPTER	psAdapter;
89 	BOOLEAN                 bFlashBoot;
90 	BOOLEAN 		bHighSpeedDevice ;
91 
92 	BOOLEAN 		bSuspended;
93 	BOOLEAN 		bPreparingForBusSuspend;
94 	struct work_struct usbSuspendWork;
95 }S_INTERFACE_ADAPTER,*PS_INTERFACE_ADAPTER;
96 
97 #endif
98