From 24f25de65657d7ac9ccec63447efbe415110435b Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Fri, 23 Oct 1998 13:44:50 +0000 Subject: Update. * version.h (VERSION): Bump to 2.0.99. * posix/fnmath.h: Don't redefine __P when used in glibc. * posix/glob.h: Likewise. * inet/rcmd.c (__ivaliduser2): Fix memory leak. Patch by Dick Streefland . * stdio-common/tst-ungetc.c: Add more test cases. * sysdeps/unix/sysv/linux/Dist: Add linux_fsinfo.h. * sysdeps/unix/sysv/linux/fstatvfs.c: Move filesystem magic number definitions to ... * sysdeps/unix/sysv/linux/linux_fsinfo.h: ...here. New file. * sysdeps/unix/sysv/linux/fpathconf.c: New file. * sysdeps/unix/sysv/linux/pathconf.c: New file. * sysdeps/unix/sysv/linux/alpha/fpathconf.c: Handle _PC_LINK_MAX here. * sysdeps/unix/sysv/linux/alpha/pathconf.c: Likewise. 1998-10-20 Philip Blundell * sysdeps/unix/sysv/linux/arm/bits/armsigctx.h: Include to define struct pt_regs. * sysdeps/unix/sysv/linux/arm/profil-counter.h: Don't bother including here. * sysdeps/unix/sysv/linux/arm/sysdep.S: Remove spurious call to C_SYMBOL_NAME macro. 1998-10-23 Andreas Jaeger * sysdeps/generic/sys/ptrace.h (__ptrace_request): Remove comma at end of enumerator list. * sysdeps/unix/sysv/linux/sys/ptrace.h (__ptrace_request): Likewise. * posix/wordexp.h: Likewise. * db/db.h: Use __PMT instead of __P in typedefs. * db/mpool.h: Likewise. * sysdeps/generic/bits/siginfo.h: Likewise. * nis/rpcsvc/ypclnt.h: Likewise. 1998-10-23 Ulrich Drepper --- sysdeps/unix/sysv/linux/fpathconf.c | 80 +++++++++++++++++++++++++++++++++++++ 1 file changed, 80 insertions(+) create mode 100644 sysdeps/unix/sysv/linux/fpathconf.c (limited to 'sysdeps/unix/sysv/linux/fpathconf.c') diff --git a/sysdeps/unix/sysv/linux/fpathconf.c b/sysdeps/unix/sysv/linux/fpathconf.c new file mode 100644 index 0000000000..81ddef3944 --- /dev/null +++ b/sysdeps/unix/sysv/linux/fpathconf.c @@ -0,0 +1,80 @@ +/* Linux specific extensions to fpathconf. + Copyright (C) 1991, 1995, 1996, 1998 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 + modify it under the terms of the GNU Library General Public License as + published by the Free Software Foundation; either version 2 of the + License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public + License along with the GNU C Library; see the file COPYING.LIB. If not, + write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, + Boston, MA 02111-1307, USA. */ + +#include +#include +#include + +#include "linux_fsinfo.h" + +static long int posix_fpathconf (int fd, int name); + + +/* Get file-specific information about descriptor FD. */ +long int +__fpathconf (fd, name) + int fd; + int name; +{ + if (name == _PC_LINK_MAX) + { + struct statfs fsbuf; + + /* Determine the filesystem type. */ + if (__fstatfs (fd, &fsbuf) < 0) + /* not possible, return the default value. */ + return LINK_MAX; + + switch (fsbuf.f_type) + { + case EXT2_SUPER_MAGIC: + return EXT2_LINK_MAX; + + case MINIX_SUPER_MAGIC: + case MINIX_SUPER_MAGIC2: + return MINIX_LINK_MAX; + + case MINIX2_SUPER_MAGIC: + case MINIX2_SUPER_MAGIC2: + return MINIX2_LINK_MAX; + + case XENIX_SUPER_MAGIC: + return XENIX_LINK_MAX; + + case SYSV4_SUPER_MAGIC: + case SYSV2_SUPER_MAGIC: + return SYSV_LINK_MAX; + + case COH_SUPER_MAGIC: + return COH_LINK_MAX; + + case UFS_MAGIC: + case UFS_CIGAM: + return UFS_LINK_MAX; + + default: + return LINK_MAX; + } + } + + return posix_fpathconf (fd, name); +} + +#define __fpathconf static posix_fpathconf +#include -- cgit 1.4.1