1 #define _BULK_DATA_LEN 64 2 typedef struct 3 { 4 unsigned char data[_BULK_DATA_LEN]; 5 unsigned int size; 6 unsigned int pipe; 7 }bulk_transfer_t,*pbulk_transfer_t; 8 9 #define DABUSB_MINOR 240 /* some unassigned USB minor */ 10 #define DABUSB_VERSION 0x1000 11 #define IOCTL_DAB_BULK _IOWR('d', 0x30, bulk_transfer_t) 12 #define IOCTL_DAB_OVERRUNS _IOR('d', 0x15, int) 13 #define IOCTL_DAB_VERSION _IOR('d', 0x3f, int) 14 15 #ifdef __KERNEL__ 16 17 typedef enum { _stopped=0, _started } driver_state_t; 18 19 typedef struct 20 { 21 struct mutex mutex; 22 struct usb_device *usbdev; 23 wait_queue_head_t wait; 24 wait_queue_head_t remove_ok; 25 spinlock_t lock; 26 atomic_t pending_io; 27 driver_state_t state; 28 int remove_pending; 29 int got_mem; 30 int total_buffer_size; 31 unsigned int overruns; 32 int readptr; 33 int opened; 34 int devnum; 35 struct list_head free_buff_list; 36 struct list_head rec_buff_list; 37 } dabusb_t,*pdabusb_t; 38 39 typedef struct 40 { 41 pdabusb_t s; 42 struct urb *purb; 43 struct list_head buff_list; 44 } buff_t,*pbuff_t; 45 46 typedef struct 47 { 48 wait_queue_head_t wait; 49 } bulk_completion_context_t, *pbulk_completion_context_t; 50 51 52 #define _DABUSB_IF 2 53 #define _DABUSB_ISOPIPE 0x09 54 #define _ISOPIPESIZE 16384 55 56 #define _BULK_DATA_LEN 64 57 // Vendor specific request code for Anchor Upload/Download 58 // This one is implemented in the core 59 #define ANCHOR_LOAD_INTERNAL 0xA0 60 61 // EZ-USB Control and Status Register. Bit 0 controls 8051 reset 62 #define CPUCS_REG 0x7F92 63 #define _TOTAL_BUFFERS 384 64 65 #define MAX_INTEL_HEX_RECORD_LENGTH 16 66 67 #ifndef _BYTE_DEFINED 68 #define _BYTE_DEFINED 69 typedef unsigned char BYTE; 70 #endif // !_BYTE_DEFINED 71 72 #ifndef _WORD_DEFINED 73 #define _WORD_DEFINED 74 typedef unsigned short WORD; 75 #endif // !_WORD_DEFINED 76 77 typedef struct _INTEL_HEX_RECORD 78 { 79 BYTE Length; 80 WORD Address; 81 BYTE Type; 82 BYTE Data[MAX_INTEL_HEX_RECORD_LENGTH]; 83 } INTEL_HEX_RECORD, *PINTEL_HEX_RECORD; 84 85 #endif 86