linux/drivers/media/video/dabusb.h
<<
>>
Prefs
   1#define _BULK_DATA_LEN 64
   2typedef 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
  17typedef enum { _stopped=0, _started } driver_state_t;
  18
  19typedef 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
  39typedef struct
  40{
  41        pdabusb_t s;
  42        struct urb *purb;
  43        struct list_head buff_list;
  44} buff_t,*pbuff_t;
  45
  46typedef 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
  69typedef unsigned char BYTE;
  70#endif // !_BYTE_DEFINED
  71
  72#ifndef _WORD_DEFINED
  73#define _WORD_DEFINED
  74typedef unsigned short WORD;
  75#endif // !_WORD_DEFINED
  76
  77typedef 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