]> xenbits.xensource.com Git - people/liuw/libxenctrl-split/mini-os.git/commitdiff
minios: Use posix_openpt() rather than non-standard openpty().
authorKeir Fraser <keir.fraser@citrix.com>
Thu, 18 Jun 2009 09:19:25 +0000 (10:19 +0100)
committerKeir Fraser <keir.fraser@citrix.com>
Thu, 18 Jun 2009 09:19:25 +0000 (10:19 +0100)
Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
include/lib.h
lib/sys.c

index 4aa34d4e7c48d81dfd83bab3039d70c05c62ea58..0834a18c6273a44e786025c6e13f538f0f21e99f 100644 (file)
@@ -101,7 +101,6 @@ char * strcat(char * dest, const char * src);
 char  *strdup(const char *s);
 #endif
 #include <mini-os/console.h>
-int openpty(void);
 
 #define RAND_MIX 2654435769U
 
index 045481e73f97e12160bd41925724e345ecf0029d..166ecc9c0996bd9ecaac80fff07b76794c1d6a4c 100644 (file)
--- a/lib/sys.c
+++ b/lib/sys.c
@@ -167,15 +167,17 @@ int mkdir(const char *pathname, mode_t mode)
     return 0;
 }
 
-int openpty(void)
+int posix_openpt(int flags)
 {
     struct consfront_dev *dev;
 
+    /* Ignore flags */
+
     dev = init_consfront(NULL);
     dev->fd = alloc_fd(FTYPE_CONSOLE);
     files[dev->fd].cons.dev = dev;
 
-    printk("fd(%d) = openpty\n", dev->fd);
+    printk("fd(%d) = posix_openpt\n", dev->fd);
     return(dev->fd);
 }
 
@@ -188,6 +190,8 @@ int open(const char *pathname, int flags, ...)
         printk("open(%s) -> %d\n", pathname, fd);
         return fd;
     }
+    if (!strncmp(pathname, "/dev/ptmx", strlen("/dev/ptmx")))
+        return posix_openpt(flags);
     printk("open(%s, %x)", pathname, flags);
     switch (flags & ~O_ACCMODE) {
         case 0:
@@ -1341,6 +1345,9 @@ unsupported_function_crash(lockf);
 unsupported_function_crash(sysconf);
 unsupported_function(int, tcsetattr, -1);
 unsupported_function(int, tcgetattr, 0);
+unsupported_function(int, grantpt, -1);
+unsupported_function(int, unlockpt, -1);
+unsupported_function(char *, ptsname, NULL);
 unsupported_function(int, poll, -1);
 
 /* net/if.h */