VServer 1.9.2 (patch-2.6.8.1-vs1.9.2.diff)
[linux-2.6.git] / drivers / usb / class / cdc-acm.h
index 2e4f49a..bf72f27 100644 (file)
@@ -86,17 +86,23 @@ struct acm {
        struct usb_interface *data;                     /* data interface */
        struct tty_struct *tty;                         /* the corresponding tty */
        struct urb *ctrlurb, *readurb, *writeurb;       /* urbs */
+       u8 *ctrl_buffer, *read_buffer, *write_buffer;   /* buffers of urbs */
+       dma_addr_t ctrl_dma, read_dma, write_dma;       /* dma handles of buffers */
        struct acm_line line;                           /* line coding (bits, stop, parity) */
        struct work_struct work;                        /* work queue entry for line discipline waking up */
        struct tasklet_struct bh;                       /* rx processing */
+       spinlock_t throttle_lock;                       /* synchronize throtteling and read callback */
        unsigned int ctrlin;                            /* input control lines (DCD, DSR, RI, break, overruns) */
        unsigned int ctrlout;                           /* output control lines (DTR, RTS) */
        unsigned int writesize;                         /* max packet size for the output bulk endpoint */
+       unsigned int readsize,ctrlsize;                 /* buffer sizes for freeing */
        unsigned int used;                              /* someone has this acm's device open */
        unsigned int minor;                             /* acm minor number */
        unsigned char throttle;                         /* throttled by tty layer */
        unsigned char clocal;                           /* termios CLOCAL */
        unsigned char ready_for_write;                  /* write urb can be used */
+       unsigned char resubmit_to_unthrottle;           /* throtteling has disabled the read urb */
+       unsigned int ctrl_caps;                         /* control capabilities from the class specific header */
 };
 
 /* "Union Functional Descriptor" from CDC spec 5.2.3.X */
@@ -110,6 +116,12 @@ struct union_desc {
        /* ... and there could be other slave interfaces */
 } __attribute__ ((packed));
 
-#define CDC_UNION_TYPE         0x06
+/* class specific descriptor types */
+#define CDC_CALL_MANAGEMENT_TYPE       0x01
+#define CDC_AC_MANAGEMENT_TYPE         0x02
+#define CDC_UNION_TYPE                 0x06
+#define CDC_COUNTRY_TYPE               0x07
+
 #define CDC_DATA_INTERFACE_TYPE        0x0a
 
+