| 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 |