]> pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - include/linux/tty_driver.h
proc: remove ->get_info infrastructure
[linux-2.6-omap-h63xx.git] / include / linux / tty_driver.h
index 5c8473bb6882e7cc4f7dfe03a33072e94f6bceb2..21f69aca45053c2a538d55ce19d685619cbcfc4f 100644 (file)
  *     This routine allows the tty driver to implement
  *     device-specific ioctl's.  If the ioctl number passed in cmd
  *     is not recognized by the driver, it should return ENOIOCTLCMD.
+ *
+ * long (*compat_ioctl)(struct tty_struct *tty, struct file * file,
+ *                     unsigned int cmd, unsigned long arg);
+ *
+ *     implement ioctl processing for 32 bit process on 64 bit system
  * 
- * void (*set_termios)(struct tty_struct *tty, struct termios * old);
+ * void (*set_termios)(struct tty_struct *tty, struct ktermios * old);
  *
  *     This routine allows the tty driver to be notified when
  *     device's termios settings have changed.  Note that a
 #include <linux/cdev.h>
 
 struct tty_struct;
+struct tty_driver;
 
 struct tty_operations {
        int  (*open)(struct tty_struct * tty, struct file * filp);
@@ -132,7 +138,9 @@ struct tty_operations {
        int  (*chars_in_buffer)(struct tty_struct *tty);
        int  (*ioctl)(struct tty_struct *tty, struct file * file,
                    unsigned int cmd, unsigned long arg);
-       void (*set_termios)(struct tty_struct *tty, struct termios * old);
+       long (*compat_ioctl)(struct tty_struct *tty, struct file * file,
+                            unsigned int cmd, unsigned long arg);
+       void (*set_termios)(struct tty_struct *tty, struct ktermios * old);
        void (*throttle)(struct tty_struct * tty);
        void (*unthrottle)(struct tty_struct * tty);
        void (*stop)(struct tty_struct *tty);
@@ -150,6 +158,11 @@ struct tty_operations {
        int (*tiocmget)(struct tty_struct *tty, struct file *file);
        int (*tiocmset)(struct tty_struct *tty, struct file *file,
                        unsigned int set, unsigned int clear);
+#ifdef CONFIG_CONSOLE_POLL
+       int (*poll_init)(struct tty_driver *driver, int line, char *options);
+       int (*poll_get_char)(struct tty_driver *driver, int line);
+       void (*poll_put_char)(struct tty_driver *driver, int line, char ch);
+#endif
 };
 
 struct tty_driver {
@@ -165,7 +178,7 @@ struct tty_driver {
        int     num;            /* number of devices allocated */
        short   type;           /* type of tty driver */
        short   subtype;        /* subtype of tty driver */
-       struct termios init_termios; /* Initial termios */
+       struct ktermios init_termios; /* Initial termios */
        int     flags;          /* tty driver flags */
        int     refcount;       /* for loadable tty drivers */
        struct proc_dir_entry *proc_entry; /* /proc fs entry */
@@ -175,8 +188,8 @@ struct tty_driver {
         * Pointer to the tty data structures
         */
        struct tty_struct **ttys;
-       struct termios **termios;
-       struct termios **termios_locked;
+       struct ktermios **termios;
+       struct ktermios **termios_locked;
        void *driver_state;     /* only used for the PTY driver */
        
        /*
@@ -193,7 +206,9 @@ struct tty_driver {
        int  (*chars_in_buffer)(struct tty_struct *tty);
        int  (*ioctl)(struct tty_struct *tty, struct file * file,
                    unsigned int cmd, unsigned long arg);
-       void (*set_termios)(struct tty_struct *tty, struct termios * old);
+       long (*compat_ioctl)(struct tty_struct *tty, struct file * file,
+                            unsigned int cmd, unsigned long arg);
+       void (*set_termios)(struct tty_struct *tty, struct ktermios * old);
        void (*throttle)(struct tty_struct * tty);
        void (*unthrottle)(struct tty_struct * tty);
        void (*stop)(struct tty_struct *tty);
@@ -211,6 +226,11 @@ struct tty_driver {
        int (*tiocmget)(struct tty_struct *tty, struct file *file);
        int (*tiocmset)(struct tty_struct *tty, struct file *file,
                        unsigned int set, unsigned int clear);
+#ifdef CONFIG_CONSOLE_POLL
+       int (*poll_init)(struct tty_driver *driver, int line, char *options);
+       int (*poll_get_char)(struct tty_driver *driver, int line);
+       void (*poll_put_char)(struct tty_driver *driver, int line, char ch);
+#endif
 
        struct list_head tty_drivers;
 };
@@ -221,6 +241,7 @@ struct tty_driver *alloc_tty_driver(int lines);
 void put_tty_driver(struct tty_driver *driver);
 void tty_set_operations(struct tty_driver *driver,
                        const struct tty_operations *op);
+extern struct tty_driver *tty_find_polling_driver(char *name, int *line);
 
 /* tty driver magic number */
 #define TTY_DRIVER_MAGIC               0x5402