diff options
author | Ulrich Drepper <drepper@redhat.com> | 1999-11-17 20:37:54 +0000 |
---|---|---|
committer | Ulrich Drepper <drepper@redhat.com> | 1999-11-17 20:37:54 +0000 |
commit | 9c9f3b1785aa47876b701cdf0e6711d6f1064b5e (patch) | |
tree | b48ada70e709a4a2d757ef329e9d764eac55a299 /sysdeps/unix/sysv | |
parent | eccb7fb492273efc0a6a2059e23662ffdab9278b (diff) | |
download | glibc-9c9f3b1785aa47876b701cdf0e6711d6f1064b5e.tar.gz glibc-9c9f3b1785aa47876b701cdf0e6711d6f1064b5e.tar.xz glibc-9c9f3b1785aa47876b701cdf0e6711d6f1064b5e.zip |
Update.
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.
Diffstat (limited to 'sysdeps/unix/sysv')
-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 |
3 files changed, 14 insertions, 4 deletions
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 |