aboutsummaryrefslogtreecommitdiff
path: root/sysdeps/unix/sysv
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>1999-11-17 20:37:54 +0000
committerUlrich Drepper <drepper@redhat.com>1999-11-17 20:37:54 +0000
commit9c9f3b1785aa47876b701cdf0e6711d6f1064b5e (patch)
treeb48ada70e709a4a2d757ef329e9d764eac55a299 /sysdeps/unix/sysv
parenteccb7fb492273efc0a6a2059e23662ffdab9278b (diff)
downloadglibc-9c9f3b1785aa47876b701cdf0e6711d6f1064b5e.zip
glibc-9c9f3b1785aa47876b701cdf0e6711d6f1064b5e.tar.gz
glibc-9c9f3b1785aa47876b701cdf0e6711d6f1064b5e.tar.bz2
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.c10
-rw-r--r--sysdeps/unix/sysv/linux/grantpt.c7
-rw-r--r--sysdeps/unix/sysv/linux/linux_fsinfo.h1
3 files changed, 14 insertions, 4 deletions
diff --git a/sysdeps/unix/sysv/linux/getpt.c b/sysdeps/unix/sysv/linux/getpt.c
index 511b900..e6cfd18 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 668f131..c6252ea 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 69047e1..85e2645 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