]> git.karo-electronics.de Git - mv-sheeva.git/blobdiff - arch/um/include/chan_kern.h
[PATCH] uml: Simplify console opening/closing and irq registration
[mv-sheeva.git] / arch / um / include / chan_kern.h
index 22bf3a73437c3dc8af5f253ecff9dfdb155d102e..84d1f64f9795d1930a1efa6bb753e2fe2ca86ec8 100644 (file)
 
 struct chan {
        struct list_head list;
+       struct list_head free_list;
+       struct line *line;
        char *dev;
        unsigned int primary:1;
        unsigned int input:1;
        unsigned int output:1;
        unsigned int opened:1;
+       unsigned int enabled:1;
        int fd;
        struct chan_ops *ops;
        void *data;
@@ -26,7 +29,7 @@ struct chan {
 
 extern void chan_interrupt(struct list_head *chans, struct work_struct *task,
                           struct tty_struct *tty, int irq);
-extern int parse_chan_pair(char *str, struct list_head *chans, int device,
+extern int parse_chan_pair(char *str, struct line *line, int device,
                           struct chan_opts *opts);
 extern int open_chan(struct list_head *chans);
 extern int write_chan(struct list_head *chans, const char *buf, int len,
@@ -35,9 +38,9 @@ extern int console_write_chan(struct list_head *chans, const char *buf,
                              int len);
 extern int console_open_chan(struct line *line, struct console *co,
                             struct chan_opts *opts);
-extern void close_chan(struct list_head *chans);
 extern void chan_enable_winch(struct list_head *chans, struct tty_struct *tty);
-extern void enable_chan(struct list_head *chans, struct tty_struct *tty);
+extern void enable_chan(struct line *line);
+extern void close_chan(struct list_head *chans, int delay_free_irq);
 extern int chan_window_size(struct list_head *chans, 
                             unsigned short *rows_out, 
                             unsigned short *cols_out);