Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 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) |
Mauro Carvalho Chehab | d56410e | 2006-03-25 09:19:53 -0300 | [diff] [blame] | 13 | #define IOCTL_DAB_VERSION _IOR('d', 0x3f, int) |
Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 14 | |
| 15 | #ifdef __KERNEL__ |
| 16 | |
| 17 | typedef enum { _stopped=0, _started } driver_state_t; |
| 18 | |
| 19 | typedef struct |
| 20 | { |
Arjan van de Ven | 4186ecf | 2006-01-11 15:55:29 +0100 | [diff] [blame] | 21 | struct mutex mutex; |
Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 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 | |
Mauro Carvalho Chehab | d56410e | 2006-03-25 09:19:53 -0300 | [diff] [blame] | 39 | typedef struct |
Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 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 |