Commit | Line | Data |
---|---|---|
1da177e4 LT |
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) | |
d56410e0 | 13 | #define IOCTL_DAB_VERSION _IOR('d', 0x3f, int) |
1da177e4 LT |
14 | |
15 | #ifdef __KERNEL__ | |
16 | ||
17 | typedef enum { _stopped=0, _started } driver_state_t; | |
18 | ||
19 | typedef struct | |
20 | { | |
4186ecf8 | 21 | struct mutex mutex; |
1da177e4 LT |
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 | ||
d56410e0 | 39 | typedef struct |
1da177e4 LT |
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 |