| #define _BULK_DATA_LEN 64 |
| typedef struct |
| { |
| unsigned char data[_BULK_DATA_LEN]; |
| unsigned int size; |
| unsigned int pipe; |
| }bulk_transfer_t,*pbulk_transfer_t; |
| |
| #define DABUSB_MINOR 240 /* some unassigned USB minor */ |
| #define DABUSB_VERSION 0x1000 |
| #define IOCTL_DAB_BULK _IOWR('d', 0x30, bulk_transfer_t) |
| #define IOCTL_DAB_OVERRUNS _IOR('d', 0x15, int) |
| #define IOCTL_DAB_VERSION _IOR('d', 0x3f, int) |
| |
| #ifdef __KERNEL__ |
| |
| typedef enum { _stopped=0, _started } driver_state_t; |
| |
| typedef struct |
| { |
| struct semaphore mutex; |
| struct usb_device *usbdev; |
| wait_queue_head_t wait; |
| wait_queue_head_t remove_ok; |
| spinlock_t lock; |
| atomic_t pending_io; |
| driver_state_t state; |
| int remove_pending; |
| int got_mem; |
| int total_buffer_size; |
| unsigned int overruns; |
| int readptr; |
| int opened; |
| int devnum; |
| struct list_head free_buff_list; |
| struct list_head rec_buff_list; |
| } dabusb_t,*pdabusb_t; |
| |
| typedef struct |
| { |
| pdabusb_t s; |
| struct urb *purb; |
| struct list_head buff_list; |
| } buff_t,*pbuff_t; |
| |
| typedef struct |
| { |
| wait_queue_head_t wait; |
| } bulk_completion_context_t, *pbulk_completion_context_t; |
| |
| |
| #define _DABUSB_IF 2 |
| #define _DABUSB_ISOPIPE 0x09 |
| #define _ISOPIPESIZE 16384 |
| |
| #define _BULK_DATA_LEN 64 |
| // Vendor specific request code for Anchor Upload/Download |
| // This one is implemented in the core |
| #define ANCHOR_LOAD_INTERNAL 0xA0 |
| |
| // EZ-USB Control and Status Register. Bit 0 controls 8051 reset |
| #define CPUCS_REG 0x7F92 |
| #define _TOTAL_BUFFERS 384 |
| |
| #define MAX_INTEL_HEX_RECORD_LENGTH 16 |
| |
| #ifndef _BYTE_DEFINED |
| #define _BYTE_DEFINED |
| typedef unsigned char BYTE; |
| #endif // !_BYTE_DEFINED |
| |
| #ifndef _WORD_DEFINED |
| #define _WORD_DEFINED |
| typedef unsigned short WORD; |
| #endif // !_WORD_DEFINED |
| |
| typedef struct _INTEL_HEX_RECORD |
| { |
| BYTE Length; |
| WORD Address; |
| BYTE Type; |
| BYTE Data[MAX_INTEL_HEX_RECORD_LENGTH]; |
| } INTEL_HEX_RECORD, *PINTEL_HEX_RECORD; |
| |
| #endif |