Revert to Fedora kernel-2.6.17-1.2187_FC5 patched with vs2.0.2.1; there are too many...
[linux-2.6.git] / arch / um / drivers / tty.c
index b3676e9..94c9265 100644 (file)
@@ -18,7 +18,7 @@ struct tty_chan {
        struct termios tt;
 };
 
-void *tty_chan_init(char *str, int device, struct chan_opts *opts)
+static void *tty_chan_init(char *str, int device, struct chan_opts *opts)
 {
        struct tty_chan *data;
 
@@ -29,8 +29,8 @@ void *tty_chan_init(char *str, int device, struct chan_opts *opts)
        }
        str++;
 
-       data = um_kmalloc(sizeof(*data)); 
-       if(data == NULL) 
+       data = um_kmalloc(sizeof(*data));
+       if(data == NULL)
                return(NULL);
        *data = ((struct tty_chan) { .dev       = str,
                                     .raw       = opts->raw });
@@ -38,29 +38,28 @@ void *tty_chan_init(char *str, int device, struct chan_opts *opts)
        return(data);
 }
 
-int tty_open(int input, int output, int primary, void *d, char **dev_out)
+static int tty_open(int input, int output, int primary, void *d,
+                   char **dev_out)
 {
        struct tty_chan *data = d;
-       int fd;
+       int fd, err;
 
        fd = os_open_file(data->dev, of_set_rw(OPENFLAGS(), input, output), 0);
        if(fd < 0) return(fd);
        if(data->raw){
-               tcgetattr(fd, &data->tt);
-               raw(fd, 0);
+               CATCH_EINTR(err = tcgetattr(fd, &data->tt));
+               if(err)
+                       return(err);
+
+               err = raw(fd);
+               if(err)
+                       return(err);
        }
 
        *dev_out = data->dev;
        return(fd);
 }
 
-int tty_console_write(int fd, const char *buf, int n, void *d)
-{
-       struct tty_chan *data = d;
-
-       return(generic_console_write(fd, buf, n, &data->tt));
-}
-
 struct chan_ops tty_ops = {
        .type           = "tty",
        .init           = tty_chan_init,
@@ -68,7 +67,7 @@ struct chan_ops tty_ops = {
        .close          = generic_close,
        .read           = generic_read,
        .write          = generic_write,
-       .console_write  = tty_console_write,
+       .console_write  = generic_console_write,
        .window_size    = generic_window_size,
        .free           = generic_free,
        .winch          = 0,