• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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