ftp://ftp.kernel.org/pub/linux/kernel/v2.6/linux-2.6.6.tar.bz2
[linux-2.6.git] / arch / um / include / chan_kern.h
1 /* 
2  * Copyright (C) 2000, 2001 Jeff Dike (jdike@karaya.com)
3  * Licensed under the GPL
4  */
5
6 #ifndef __CHAN_KERN_H__
7 #define __CHAN_KERN_H__
8
9 #include "linux/tty.h"
10 #include "linux/list.h"
11 #include "chan_user.h"
12
13 struct chan {
14         struct list_head list;
15         char *dev;
16         unsigned int primary:1;
17         unsigned int input:1;
18         unsigned int output:1;
19         unsigned int opened:1;
20         int fd;
21         enum chan_init_pri pri;
22         struct chan_ops *ops;
23         void *data;
24 };
25
26 extern void chan_interrupt(struct list_head *chans, struct work_struct *task,
27                            struct tty_struct *tty, int irq, void *dev);
28 extern int parse_chan_pair(char *str, struct list_head *chans, int pri, 
29                            int device, struct chan_opts *opts);
30 extern int open_chan(struct list_head *chans);
31 extern int write_chan(struct list_head *chans, const char *buf, int len,
32                              int write_irq);
33 extern int console_write_chan(struct list_head *chans, const char *buf, 
34                               int len);
35 extern void close_chan(struct list_head *chans);
36 extern void chan_enable_winch(struct list_head *chans, void *line);
37 extern void enable_chan(struct list_head *chans, void *data);
38 extern int chan_window_size(struct list_head *chans, 
39                              unsigned short *rows_out, 
40                              unsigned short *cols_out);
41 extern int chan_out_fd(struct list_head *chans);
42 extern int chan_config_string(struct list_head *chans, char *str, int size,
43                               char **error_out);
44
45 #endif
46
47 /*
48  * Overrides for Emacs so that we follow Linus's tabbing style.
49  * Emacs will notice this stuff at the end of the file and automatically
50  * adjust the settings for this buffer only.  This must remain at the end
51  * of the file.
52  * ---------------------------------------------------------------------------
53  * Local variables:
54  * c-file-style: "linux"
55  * End:
56  */