diff options
-rw-r--r-- | ChangeLog | 8 | ||||
-rw-r--r-- | sysdeps/generic/fstatvfs64.c | 5 | ||||
-rw-r--r-- | sysdeps/generic/statvfs64.c | 5 | ||||
-rw-r--r-- | sysdeps/posix/fpathconf.c | 36 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/fstatvfs64.c | 5 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/statvfs64.c | 5 |
6 files changed, 55 insertions, 9 deletions
@@ -1,11 +1,19 @@ 2001-01-25 Ulrich Drepper <drepper@redhat.com> + * sysdeps/unix/sysv/linux/statvfs64.c: Rename to __statvfs64 and + make old name weak alias. + * sysdeps/generic/statvfs64.c: Likewise. + * sysdeps/unix/sysv/linux/fstatvfs64.c: Rename to __fstatvfs64 and + make old name weak alias. + * sysdeps/generic/fstatvfs64.c: Likewise. + * sysdeps/generic/bits/confname.h: Define _PC_REC_INCR_XFER_SIZE, _PC_REC_MAX_XFER_SIZE, _PC_REC_MIN_XFER_SIZE, and _PC_REC_XFER_ALIGN. * sysdeps/posix/pathconf.c (__pathconf): Implement handling of _PC_REC_INCR_XFER_SIZE, _PC_REC_MAX_XFER_SIZE, _PC_REC_MIN_XFER_SIZE, and _PC_REC_XFER_ALIGN. + * sysdeps/posix/fpathconf.c (__fpathconf): Likewise. * conform/conformtest.pl: Run Unix tests for XPG6. Implement handling of known namespace violations. diff --git a/sysdeps/generic/fstatvfs64.c b/sysdeps/generic/fstatvfs64.c index c7efc0c1d5..a2aa5137a7 100644 --- a/sysdeps/generic/fstatvfs64.c +++ b/sysdeps/generic/fstatvfs64.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1998 Free Software Foundation, Inc. +/* Copyright (C) 1998, 2001 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 @@ -21,11 +21,12 @@ /* Return information about the filesystem on which FD resides. */ int -fstatvfs64 (int fd, struct statvfs64 *buf) +__fstatvfs64 (int fd, struct statvfs64 *buf) { __set_errno (ENOSYS); return -1; } +weak_alias (__fstatvfs64, fstatvfs64) stub_warning (fstatvfs64) #include <stub-tag.h> diff --git a/sysdeps/generic/statvfs64.c b/sysdeps/generic/statvfs64.c index b9c19adf70..42f7928bfc 100644 --- a/sysdeps/generic/statvfs64.c +++ b/sysdeps/generic/statvfs64.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1998 Free Software Foundation, Inc. +/* Copyright (C) 1998, 2001 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 @@ -21,11 +21,12 @@ /* Return information about the filesystem on which FILE resides. */ int -statvfs64 (const char *file, struct statvfs64 *buf) +__statvfs64 (const char *file, struct statvfs64 *buf) { __set_errno (ENOSYS); return -1; } +weak_alias (__statvfs64, statvfs64) stub_warning (statvfs64) #include <stub-tag.h> diff --git a/sysdeps/posix/fpathconf.c b/sysdeps/posix/fpathconf.c index ede91fbf95..c92afb9439 100644 --- a/sysdeps/posix/fpathconf.c +++ b/sysdeps/posix/fpathconf.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1991, 1995, 1996, 1998, 2000 Free Software Foundation, Inc. +/* Copyright (C) 1991,1995,1996,1998,2000,2001 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 @@ -167,6 +167,40 @@ __fpathconf (fd, name) /* We let platforms with larger file sizes overwrite this value. */ return 32; #endif + + case _PC_REC_INCR_XFER_SIZE: + /* XXX It is not entirely clear what the limit is supposed to do. + What is incremented? */ + return -1; + + case _PC_REC_MAX_XFER_SIZE: + /* XXX It is not entirely clear what the limit is supposed to do. + In general there is no top limit of the number of bytes which + case be transported at once. */ + return -1; + + case _PC_REC_MIN_XFER_SIZE: + { + /* XXX It is not entirely clear what the limit is supposed to do. + I assume this is the block size of the filesystem. */ + struct statvfs64 sv; + + if (__fstatvfs64 (fd, &sv) < 0) + return -1; + return sv.f_bsize; + } + + case _PC_REC_XFER_ALIGN: + { + /* XXX It is not entirely clear what the limit is supposed to do. + I assume that the number should reflect the minimal block + alignment. */ + struct statvfs64 sv; + + if (__fstatvfs64 (fd, &sv) < 0) + return -1; + return sv.f_frsize; + } } } diff --git a/sysdeps/unix/sysv/linux/fstatvfs64.c b/sysdeps/unix/sysv/linux/fstatvfs64.c index bc2165e3ee..99a3eda40f 100644 --- a/sysdeps/unix/sysv/linux/fstatvfs64.c +++ b/sysdeps/unix/sysv/linux/fstatvfs64.c @@ -1,5 +1,5 @@ /* Return information about the filesystem on which FD resides. - Copyright (C) 1996, 1997, 1998, 2000 Free Software Foundation, Inc. + Copyright (C) 1996, 1997, 1998, 2000, 2001 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,7 +23,7 @@ /* Return information about the filesystem on which FD resides. */ int -fstatvfs64 (int fd, struct statvfs64 *buf) +__fstatvfs64 (int fd, struct statvfs64 *buf) { struct statvfs buf32; @@ -45,3 +45,4 @@ fstatvfs64 (int fd, struct statvfs64 *buf) return 0; } +weak_alias (__fstatvfs64, fstatvfs64) diff --git a/sysdeps/unix/sysv/linux/statvfs64.c b/sysdeps/unix/sysv/linux/statvfs64.c index 9417b23247..7800feab1b 100644 --- a/sysdeps/unix/sysv/linux/statvfs64.c +++ b/sysdeps/unix/sysv/linux/statvfs64.c @@ -1,5 +1,5 @@ /* Return information about the filesystem on which FILE resides. - Copyright (C) 1998, 2000 Free Software Foundation, Inc. + Copyright (C) 1998, 2000, 2001 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 @@ -24,7 +24,7 @@ /* Return information about the filesystem on which FILE resides. */ int -statvfs64 (const char *file, struct statvfs64 *buf) +__statvfs64 (const char *file, struct statvfs64 *buf) { struct statvfs buf32; @@ -46,3 +46,4 @@ statvfs64 (const char *file, struct statvfs64 *buf) return 0; } +weak_alias (__statvfs64, statvfs64) |