Merge branch 'sparc-perf-events-fixes-for-linus' of git://git.kernel.org/pub/scm...
[safe/jmp/linux-2.6] / include / linux / tty.h
index a916a31..f0f43d0 100644 (file)
@@ -187,7 +187,12 @@ struct tty_port;
 struct tty_port_operations {
        /* Return 1 if the carrier is raised */
        int (*carrier_raised)(struct tty_port *port);
+       /* Control the DTR line */
        void (*dtr_rts)(struct tty_port *port, int raise);
+       /* Called when the last close completes or a hangup finishes
+          IFF the port was initialized. Do not use to free resources */
+       void (*shutdown)(struct tty_port *port);
+       void (*drop)(struct tty_port *port);
 };
        
 struct tty_port {
@@ -198,11 +203,12 @@ struct tty_port {
        int                     count;          /* Usage count */
        wait_queue_head_t       open_wait;      /* Open waiters */
        wait_queue_head_t       close_wait;     /* Close waiters */
+       wait_queue_head_t       delta_msr_wait; /* Modem status change */
        unsigned long           flags;          /* TTY flags ASY_*/
        struct mutex            mutex;          /* Locking */
        unsigned char           *xmit_buf;      /* Optional buffer */
-       int                     close_delay;    /* Close port delay */
-       int                     closing_wait;   /* Delay for output */
+       unsigned int            close_delay;    /* Close port delay */
+       unsigned int            closing_wait;   /* Delay for output */
        int                     drain_delay;    /* Set to zero if no pure time
                                                   based drain is needed else
                                                   set to size of fifo */
@@ -459,6 +465,12 @@ extern int tty_port_block_til_ready(struct tty_port *port,
 extern int tty_port_close_start(struct tty_port *port,
                                struct tty_struct *tty, struct file *filp);
 extern void tty_port_close_end(struct tty_port *port, struct tty_struct *tty);
+extern void tty_port_close(struct tty_port *port,
+                               struct tty_struct *tty, struct file *filp);
+extern inline int tty_port_users(struct tty_port *port)
+{
+       return port->count + port->blocked_open;
+}
 
 extern int tty_register_ldisc(int disc, struct tty_ldisc_ops *new_ldisc);
 extern int tty_unregister_ldisc(int disc);
@@ -524,5 +536,8 @@ extern int pcxe_open(struct tty_struct *tty, struct file *filp);
 extern int vt_ioctl(struct tty_struct *tty, struct file *file,
                    unsigned int cmd, unsigned long arg);
 
+extern long vt_compat_ioctl(struct tty_struct *tty, struct file * file,
+                    unsigned int cmd, unsigned long arg);
+
 #endif /* __KERNEL__ */
 #endif