diff options
-rw-r--r-- | ChangeLog | 9 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/getpt.c | 10 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/grantpt.c | 7 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/linux_fsinfo.h | 1 |
4 files changed, 23 insertions, 4 deletions
diff --git a/ChangeLog b/ChangeLog index 94d1513e1e..82fc76c516 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,12 @@ +1999-11-09 Andreas Jaeger <aj@suse.de> + + * sysdeps/unix/sysv/linux/grantpt.c (grantpt): Add support for devfs. + + * sysdeps/unix/sysv/linux/getpt.c (__getpt): Check for devfs. + Patch by German Jose Gomez Garcia <german@pinon.ccu.uniovi.es>. + + * sysdeps/unix/sysv/linux/linux_fsinfo.h (DEVFS_SUPER_MAGIC): Added. + 1999-11-17 Ulrich Drepper <drepper@cygnus.com> * sysdeps/gnu/netinet/tcp.h: Add TCP_CORK definition. diff --git a/sysdeps/unix/sysv/linux/getpt.c b/sysdeps/unix/sysv/linux/getpt.c index 511b9004c0..e6cfd18951 100644 --- a/sysdeps/unix/sysv/linux/getpt.c +++ b/sysdeps/unix/sysv/linux/getpt.c @@ -27,6 +27,9 @@ /* Constant that identifies the `devpts' filesystem. */ #define DEVPTS_SUPER_MAGIC 0x1cd1 +/* Constant that identifies the `devfs' filesystem. */ +#define DEVFS_SUPER_MAGIC 0x1373 + /* Path to the master pseudo terminal cloning device. */ #define _PATH_DEVPTMX _PATH_DEV "ptmx" /* Directory containing the UNIX98 pseudo terminals. */ @@ -50,10 +53,13 @@ __getpt (void) struct statfs fsbuf; static int devpts_mounted; - /* Check that the /dev/pts filesystem is mounted. */ + /* Check that the /dev/pts filesystem is mounted + or if /dev is a devfs filesystem (this implies /dev/pts). */ if (devpts_mounted || (__statfs (_PATH_DEVPTS, &fsbuf) == 0 - && fsbuf.f_type == DEVPTS_SUPER_MAGIC)) + && fsbuf.f_type == DEVPTS_SUPER_MAGIC) + || (__statfs (_PATH_DEV, &fsbuf) == 0 + && fsbuf.f_type == DEVFS_SUPER_MAGIC)) { /* Everything is ok. */ devpts_mounted = 1; diff --git a/sysdeps/unix/sysv/linux/grantpt.c b/sysdeps/unix/sysv/linux/grantpt.c index 668f13192e..c6252eaf79 100644 --- a/sysdeps/unix/sysv/linux/grantpt.c +++ b/sysdeps/unix/sysv/linux/grantpt.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1998 Free Software Foundation, Inc. +/* Copyright (C) 1998, 1999 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -23,6 +23,9 @@ /* Constant that identifies the `devpts' filesystem. */ #define DEVPTS_SUPER_MAGIC 0x1cd1 +/* Constant that identifies the `devfs' filesystem. */ +#define DEVFS_SUPER_MAGIC 0x1373 + /* Prototype for function that changes ownership and access permission for slave pseudo terminals that do not live on a `devpts' filesystem. */ @@ -54,7 +57,7 @@ grantpt (int fd) /* If the slave pseudo terminal lives on a `devpts' filesystem, the ownership and access permission are already set. */ - if (fsbuf.f_type == DEVPTS_SUPER_MAGIC) + if (fsbuf.f_type == DEVPTS_SUPER_MAGIC || fsbuf.f_type == DEVFS_SUPER_MAGIC) return 0; return __unix_grantpt (fd); diff --git a/sysdeps/unix/sysv/linux/linux_fsinfo.h b/sysdeps/unix/sysv/linux/linux_fsinfo.h index 69047e1853..85e2645880 100644 --- a/sysdeps/unix/sysv/linux/linux_fsinfo.h +++ b/sysdeps/unix/sysv/linux/linux_fsinfo.h @@ -29,6 +29,7 @@ #define BFS_MAGIC 0x1BADFACE #define CODA_SUPER_MAGIC 0x73757245 #define DEVPTS_SUPER_MAGIC 0x1cd1 +#define DEVFS_SUPER_MAGIC 0x1373 #define EFS_SUPER_MAGIC 0x414A53 #define EXT2_SUPER_MAGIC 0xef53 #define HPFS_SUPER_MAGIC 0xf995e849 |