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