diff options
author | Ulrich Drepper <drepper@redhat.com> | 2003-08-22 18:11:32 +0000 |
---|---|---|
committer | Ulrich Drepper <drepper@redhat.com> | 2003-08-22 18:11:32 +0000 |
commit | 089d05d5c2271fe619f5967e01c97d169b165947 (patch) | |
tree | 54af9ed3937aaffc4437aca64447da1a9939e22c /sysdeps/posix | |
parent | 87865838da97993a22a4414d29b6b90f5e750970 (diff) | |
download | glibc-089d05d5c2271fe619f5967e01c97d169b165947.tar.gz glibc-089d05d5c2271fe619f5967e01c97d169b165947.tar.xz glibc-089d05d5c2271fe619f5967e01c97d169b165947.zip |
Update.
2003-08-22 Ulrich Drepper <drepper@redhat.com> * io/fcntl.h (posix_fallocate): Change type of third parameter to off_t. (posix_fallocate64): Change type of third parameter to off64_t. * sysdeps/generic/posix_fallocate.c: Adjust for type change. * sysdeps/posix/posix_fallocate.c: Likewise. * sysdeps/generic/posix_fallocate64.c: Likewise. * sysdeps/posix/posix_fallocate64.c: Likewise. Add compatibility code for 32-bit platforms. * sysdeps/unix/sysv/linux/i386/Versions: Add new version for posix_fallocate64. * sysdeps/unix/sysv/linux/powerpc/powerpc32/Versions: Likewise. * sysdeps/unix/sysv/linux/s390/s390-32/Versions: Likewise. * sysdeps/unix/sysv/linux/sparc/sparc32/Versions: Likewise.
Diffstat (limited to 'sysdeps/posix')
-rw-r--r-- | sysdeps/posix/posix_fallocate.c | 6 | ||||
-rw-r--r-- | sysdeps/posix/posix_fallocate64.c | 24 |
2 files changed, 24 insertions, 6 deletions
diff --git a/sysdeps/posix/posix_fallocate.c b/sysdeps/posix/posix_fallocate.c index 955cf2e127..838e7a004a 100644 --- a/sysdeps/posix/posix_fallocate.c +++ b/sysdeps/posix/posix_fallocate.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2000 Free Software Foundation, Inc. +/* Copyright (C) 2000, 2003 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 @@ -25,7 +25,7 @@ /* Reserve storage for the data of the file associated with FD. */ int -posix_fallocate (int fd, __off_t offset, size_t len) +posix_fallocate (int fd, __off_t offset, __off_t len) { struct stat64 st; struct statfs f; @@ -33,7 +33,7 @@ posix_fallocate (int fd, __off_t offset, size_t len) /* `off_tī is a signed type. Therefore we can determine whether OFFSET + LEN is too large if it is a negative value. */ - if (offset < 0 || len == 0) + if (offset < 0 || len < 0) return EINVAL; if (offset + len < 0) return EFBIG; diff --git a/sysdeps/posix/posix_fallocate64.c b/sysdeps/posix/posix_fallocate64.c index 7aa8672408..e5fb18d549 100644 --- a/sysdeps/posix/posix_fallocate64.c +++ b/sysdeps/posix/posix_fallocate64.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2000 Free Software Foundation, Inc. +/* Copyright (C) 2000, 2003 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 @@ -25,7 +25,7 @@ /* Reserve storage for the data of the file associated with FD. */ int -posix_fallocate64 (int fd, __off64_t offset, size_t len) +__posix_fallocate64_l64 (int fd, __off64_t offset, __off64_t len) { struct stat64 st; struct statfs64 f; @@ -33,7 +33,7 @@ posix_fallocate64 (int fd, __off64_t offset, size_t len) /* `off64_tī is a signed type. Therefore we can determine whether OFFSET + LEN is too large if it is a negative value. */ - if (offset < 0 || len == 0) + if (offset < 0 || len < 0) return EINVAL; if (offset + len < 0) return EFBIG; @@ -69,3 +69,21 @@ posix_fallocate64 (int fd, __off64_t offset, size_t len) return 0; } + +#include <shlib-compat.h> +#include <bits/wordsize.h> + +#if __WORDSIZE == 32 && SHLIB_COMPAT(libc, GLIBC_2_2, GLIBC_2_3_3) + +int +__posix_fallocate64_l32 (int fd, off64_t offset, size_t len) +{ + return __posix_fallocate64_l64 (fd, offset, len); +} + +versioned_symbol (libc, __posix_fallocate64_l64, posix_fallocate64, + GLIBC_2_3_3); +compat_symbol (libc, __posix_fallocate64_l32, posix_fallocate64, GLIBC_2_2); +#else +strong_alias (__posix_fallocate64_l64, posix_fallocate64); +#endif |