dabusb.h
上传用户:lgb322
上传日期:2013-02-24
资源大小:30529k
文件大小:2k
源码类别:

嵌入式Linux

开发平台:

Unix_Linux

  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. #define DABUSB_MINOR 240 /* some unassigned USB minor */
  9. #define DABUSB_VERSION 0x1000
  10. #define IOCTL_DAB_BULK              _IOWR('d', 0x30, bulk_transfer_t)
  11. #define IOCTL_DAB_OVERRUNS     _IOR('d',  0x15, int)
  12. #define IOCTL_DAB_VERSION           _IOR('d', 0x3f, int) 
  13. #ifdef __KERNEL__
  14. typedef enum { _stopped=0, _started } driver_state_t;
  15. typedef struct
  16. {
  17. struct semaphore mutex;
  18. struct usb_device *usbdev;
  19. wait_queue_head_t wait;
  20. wait_queue_head_t remove_ok;
  21. spinlock_t lock;
  22. atomic_t pending_io;
  23. driver_state_t state;
  24. int remove_pending;
  25. int got_mem;
  26. int total_buffer_size;
  27. unsigned int overruns;
  28. int readptr;
  29. int opened;
  30. struct list_head free_buff_list;
  31. struct list_head rec_buff_list;
  32. } dabusb_t,*pdabusb_t;
  33. typedef struct 
  34. {
  35. pdabusb_t s;
  36. purb_t purb;
  37. struct list_head buff_list;
  38. } buff_t,*pbuff_t;
  39. typedef struct
  40. {
  41. wait_queue_head_t wait;
  42. } bulk_completion_context_t, *pbulk_completion_context_t;
  43. #define _DABUSB_IF 2
  44. #define _DABUSB_ISOPIPE 0x09
  45. #define _ISOPIPESIZE 16384
  46. #define _BULK_DATA_LEN 64
  47. // Vendor specific request code for Anchor Upload/Download
  48. // This one is implemented in the core
  49. #define ANCHOR_LOAD_INTERNAL  0xA0
  50. // EZ-USB Control and Status Register.  Bit 0 controls 8051 reset
  51. #define CPUCS_REG    0x7F92
  52. #define _TOTAL_BUFFERS 384
  53. #define MAX_INTEL_HEX_RECORD_LENGTH 16
  54. #ifndef _BYTE_DEFINED
  55. #define _BYTE_DEFINED
  56. typedef unsigned char BYTE;
  57. #endif // !_BYTE_DEFINED
  58. #ifndef _WORD_DEFINED
  59. #define _WORD_DEFINED
  60. typedef unsigned short WORD;
  61. #endif // !_WORD_DEFINED
  62. typedef struct _INTEL_HEX_RECORD
  63. {
  64.    BYTE  Length;
  65.    WORD  Address;
  66.    BYTE  Type;
  67.    BYTE  Data[MAX_INTEL_HEX_RECORD_LENGTH];
  68. } INTEL_HEX_RECORD, *PINTEL_HEX_RECORD;
  69. #endif