fedora core 6 1.2949 + vserver 2.2.0
[linux-2.6.git] / arch / um / drivers / xterm.c
index 93dc191..850221d 100644 (file)
@@ -14,7 +14,6 @@
 #include <sys/socket.h>
 #include "kern_util.h"
 #include "chan_user.h"
-#include "helper.h"
 #include "user_util.h"
 #include "user.h"
 #include "os.h"
@@ -32,7 +31,7 @@ struct xterm_chan {
 };
 
 /* Not static because it's called directly by the tt mode gdb code */
-void *xterm_init(char *str, int device, struct chan_opts *opts)
+void *xterm_init(char *str, int device, const struct chan_opts *opts)
 {
        struct xterm_chan *data;
 
@@ -110,13 +109,15 @@ int xterm_open(int input, int output, int primary, void *d,
 
        fd = mkstemp(file);
        if(fd < 0){
+               err = -errno;
                printk("xterm_open : mkstemp failed, errno = %d\n", errno);
-               return(-errno);
+               return err;
        }
 
        if(unlink(file)){
+               err = -errno;
                printk("xterm_open : unlink failed, errno = %d\n", errno);
-               return(-errno);
+               return err;
        }
        os_close_file(fd);
 
@@ -135,8 +136,6 @@ int xterm_open(int input, int output, int primary, void *d,
                return(pid);
        }
 
-       if(data->stack == 0) free_stack(stack, 0);
-
        if (data->direct_rcv) {
                new = os_rcv_fd(fd, &data->helper_pid);
        } else {
@@ -193,21 +192,14 @@ static void xterm_free(void *d)
        free(d);
 }
 
-static int xterm_console_write(int fd, const char *buf, int n, void *d)
-{
-       struct xterm_chan *data = d;
-
-       return(generic_console_write(fd, buf, n, &data->tt));
-}
-
-struct chan_ops xterm_ops = {
+const struct chan_ops xterm_ops = {
        .type           = "xterm",
        .init           = xterm_init,
        .open           = xterm_open,
        .close          = xterm_close,
        .read           = generic_read,
        .write          = generic_write,
-       .console_write  = xterm_console_write,
+       .console_write  = generic_console_write,
        .window_size    = generic_window_size,
        .free           = xterm_free,
        .winch          = 1,