diff options
author | Florian Weimer <fweimer@redhat.com> | 2015-04-24 13:26:09 +0200 |
---|---|---|
committer | Florian Weimer <fweimer@redhat.com> | 2015-05-05 08:27:28 +0200 |
commit | 4bd40bcf44e79e610189d4498c49bba3ecb01c42 (patch) | |
tree | 3d2e2887529c052de3f28ad5d77e480a9eb823d6 | |
parent | 305392eaca0be3111cdabc4b458400a6596b6970 (diff) | |
download | glibc-4bd40bcf44e79e610189d4498c49bba3ecb01c42.tar.gz glibc-4bd40bcf44e79e610189d4498c49bba3ecb01c42.tar.xz glibc-4bd40bcf44e79e610189d4498c49bba3ecb01c42.zip |
i386: Remove fallocate, fallocate64, posix_fallocate, posix_fallocate64
With 6-argument system call support, the generic Linux implementations of these system calls work, and there is no need for i386-specific versions.
-rw-r--r-- | ChangeLog | 11 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/i386/Makefile | 5 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/i386/call_fallocate.S | 7 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/i386/fallocate.c | 53 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/i386/fallocate64.c | 53 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/i386/posix_fallocate.c | 57 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/i386/posix_fallocate64.c | 60 |
7 files changed, 14 insertions, 232 deletions
diff --git a/ChangeLog b/ChangeLog index b5a58c75a6..4dda364057 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,14 @@ +2015-05-05 Florian Weimer <fweimer@redhat.com> + + * sysdeps/unix/sysv/linux/i386/Makefile + (sysdep_routines) [$(subdir) = misc]: Remove call_fallocate. + (sysdep_routines) [$(subdir) = io]: Add libc-do-syscall. + * sysdeps/unix/sysv/linux/i386/call_fallocate.S: Remove. + * sysdeps/unix/sysv/linux/i386/fallocate.c: Likewise. + * sysdeps/unix/sysv/linux/i386/fallocate64.c: Likewise. + * sysdeps/unix/sysv/linux/i386/posix_fallocate.c: Likewise. + * sysdeps/unix/sysv/linux/i386/posix_fallocate64.c: Likewise. + 2015-05-02 Joseph Myers <joseph@codesourcery.com> * math/auto-libm-test-in: Add more tests of atan, clog, clog10, diff --git a/sysdeps/unix/sysv/linux/i386/Makefile b/sysdeps/unix/sysv/linux/i386/Makefile index d7a59d345d..e0fb1edd77 100644 --- a/sysdeps/unix/sysv/linux/i386/Makefile +++ b/sysdeps/unix/sysv/linux/i386/Makefile @@ -2,7 +2,7 @@ default-abi := 32 ifeq ($(subdir),misc) -sysdep_routines += ioperm iopl vm86 call_pselect6 call_fallocate +sysdep_routines += ioperm iopl vm86 call_pselect6 endif ifeq ($(subdir),elf) @@ -10,8 +10,9 @@ sysdep-others += lddlibc4 install-bin += lddlibc4 endif +# fallocate, posix_fallocate use six-argument inline syscalls. ifeq ($(subdir),io) -sysdep_routines += call_sync_file_range +sysdep_routines += call_sync_file_range libc-do-syscall endif # libpthread uses six-argument inline syscalls. diff --git a/sysdeps/unix/sysv/linux/i386/call_fallocate.S b/sysdeps/unix/sysv/linux/i386/call_fallocate.S deleted file mode 100644 index 39ab7979cc..0000000000 --- a/sysdeps/unix/sysv/linux/i386/call_fallocate.S +++ /dev/null @@ -1,7 +0,0 @@ -#include <sysdep.h> - -#ifdef __NR_fallocate -PSEUDO_ERRVAL (__call_fallocate, fallocate, 6) - ret_ERRVAL -PSEUDO_END_ERRVAL(__call_fallocate) -#endif diff --git a/sysdeps/unix/sysv/linux/i386/fallocate.c b/sysdeps/unix/sysv/linux/i386/fallocate.c deleted file mode 100644 index 55341136da..0000000000 --- a/sysdeps/unix/sysv/linux/i386/fallocate.c +++ /dev/null @@ -1,53 +0,0 @@ -/* Copyright (C) 2007-2015 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 Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 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 - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, see - <http://www.gnu.org/licenses/>. */ - -#include <errno.h> -#include <fcntl.h> -#include <sysdep-cancel.h> - - -extern int __call_fallocate (int fd, int mode, __off64_t offset, __off64_t len) - attribute_hidden; - - -/* Reserve storage for the data of the file associated with FD. */ -int -fallocate (int fd, int mode, __off_t offset, __off_t len) -{ -#ifdef __NR_fallocate - int err; - if (SINGLE_THREAD_P) - err = __call_fallocate (fd, mode, offset, len); - else - { - int oldtype = LIBC_CANCEL_ASYNC (); - - err = __call_fallocate (fd, mode, offset, len); - - LIBC_CANCEL_RESET (oldtype); - } - if (__glibc_unlikely (err)) - { - __set_errno (err); - err = -1; - } - return err; -#else - __set_errno (ENOSYS); - return -1; -#endif -} diff --git a/sysdeps/unix/sysv/linux/i386/fallocate64.c b/sysdeps/unix/sysv/linux/i386/fallocate64.c deleted file mode 100644 index d0ead81e67..0000000000 --- a/sysdeps/unix/sysv/linux/i386/fallocate64.c +++ /dev/null @@ -1,53 +0,0 @@ -/* Copyright (C) 2007-2015 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 Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 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 - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, see - <http://www.gnu.org/licenses/>. */ - -#include <errno.h> -#include <fcntl.h> -#include <sysdep-cancel.h> - - -extern int __call_fallocate (int fd, int mode, __off64_t offset, __off64_t len) - attribute_hidden; - - -/* Reserve storage for the data of the file associated with FD. */ -int -fallocate64 (int fd, int mode, __off64_t offset, __off64_t len) -{ -#ifdef __NR_fallocate - int err; - if (SINGLE_THREAD_P) - err = __call_fallocate (fd, mode, offset, len); - else - { - int oldtype = LIBC_CANCEL_ASYNC (); - - err = __call_fallocate (fd, mode, offset, len); - - LIBC_CANCEL_RESET (oldtype); - } - if (__glibc_unlikely (err)) - { - __set_errno (err); - err = -1; - } - return err; -#else - __set_errno (ENOSYS); - return -1; -#endif -} diff --git a/sysdeps/unix/sysv/linux/i386/posix_fallocate.c b/sysdeps/unix/sysv/linux/i386/posix_fallocate.c deleted file mode 100644 index 19a9ffe2d7..0000000000 --- a/sysdeps/unix/sysv/linux/i386/posix_fallocate.c +++ /dev/null @@ -1,57 +0,0 @@ -/* Copyright (C) 2007-2015 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 Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 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 - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, see - <http://www.gnu.org/licenses/>. */ - -#include <fcntl.h> -#include <kernel-features.h> -#include <sysdep.h> - -#define posix_fallocate static internal_fallocate -#include <sysdeps/posix/posix_fallocate.c> -#undef posix_fallocate - -#if !defined __ASSUME_FALLOCATE && defined __NR_fallocate -int __have_fallocate attribute_hidden; -#endif - -extern int __call_fallocate (int fd, int mode, __off64_t offset, __off64_t len) - attribute_hidden; - -/* Reserve storage for the data of the file associated with FD. */ -int -posix_fallocate (int fd, __off_t offset, __off_t len) -{ -#ifdef __NR_fallocate -# ifndef __ASSUME_FALLOCATE - if (__glibc_likely (__have_fallocate >= 0)) -# endif - { - int res = __call_fallocate (fd, 0, offset, len); - if (! res) - return 0; - -# ifndef __ASSUME_FALLOCATE - if (__glibc_unlikely (res == ENOSYS)) - __have_fallocate = -1; - else -# endif - if (res != EOPNOTSUPP) - return res; - } -#endif - - return internal_fallocate (fd, offset, len); -} diff --git a/sysdeps/unix/sysv/linux/i386/posix_fallocate64.c b/sysdeps/unix/sysv/linux/i386/posix_fallocate64.c deleted file mode 100644 index a9a7b9a264..0000000000 --- a/sysdeps/unix/sysv/linux/i386/posix_fallocate64.c +++ /dev/null @@ -1,60 +0,0 @@ -/* Copyright (C) 2007-2015 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 Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 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 - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, see - <http://www.gnu.org/licenses/>. */ - -#include <fcntl.h> -#include <kernel-features.h> -#include <sysdep.h> - -extern int __posix_fallocate64_l64 (int fd, __off64_t offset, __off64_t len); -#define __posix_fallocate64_l64 static internal_fallocate64 -#include <sysdeps/posix/posix_fallocate64.c> -#undef __posix_fallocate64_l64 - -#if !defined __ASSUME_FALLOCATE && defined __NR_fallocate -/* Defined in posix_fallocate.c. */ -extern int __have_fallocate attribute_hidden; -#endif - -extern int __call_fallocate (int fd, int mode, __off64_t offset, __off64_t len) - attribute_hidden; - -/* Reserve storage for the data of the file associated with FD. */ -int -__posix_fallocate64_l64 (int fd, __off64_t offset, __off64_t len) -{ -#ifdef __NR_fallocate -# ifndef __ASSUME_FALLOCATE - if (__glibc_likely (__have_fallocate >= 0)) -# endif - { - int res = __call_fallocate (fd, 0, offset, len); - - if (! res) - return 0; - -# ifndef __ASSUME_FALLOCATE - if (__glibc_unlikely (res == ENOSYS)) - __have_fallocate = -1; - else -# endif - if (res != EOPNOTSUPP) - return res; - } -#endif - - return internal_fallocate64 (fd, offset, len); -} |