From 4bd40bcf44e79e610189d4498c49bba3ecb01c42 Mon Sep 17 00:00:00 2001 From: Florian Weimer Date: Fri, 24 Apr 2015 13:26:09 +0200 Subject: 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. --- sysdeps/unix/sysv/linux/i386/Makefile | 5 +- sysdeps/unix/sysv/linux/i386/call_fallocate.S | 7 --- sysdeps/unix/sysv/linux/i386/fallocate.c | 53 --------------------- sysdeps/unix/sysv/linux/i386/fallocate64.c | 53 --------------------- sysdeps/unix/sysv/linux/i386/posix_fallocate.c | 57 ---------------------- sysdeps/unix/sysv/linux/i386/posix_fallocate64.c | 60 ------------------------ 6 files changed, 3 insertions(+), 232 deletions(-) delete mode 100644 sysdeps/unix/sysv/linux/i386/call_fallocate.S delete mode 100644 sysdeps/unix/sysv/linux/i386/fallocate.c delete mode 100644 sysdeps/unix/sysv/linux/i386/fallocate64.c delete mode 100644 sysdeps/unix/sysv/linux/i386/posix_fallocate.c delete mode 100644 sysdeps/unix/sysv/linux/i386/posix_fallocate64.c (limited to 'sysdeps/unix/sysv/linux/i386') 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 - -#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 - . */ - -#include -#include -#include - - -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 - . */ - -#include -#include -#include - - -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 - . */ - -#include -#include -#include - -#define posix_fallocate static internal_fallocate -#include -#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 - . */ - -#include -#include -#include - -extern int __posix_fallocate64_l64 (int fd, __off64_t offset, __off64_t len); -#define __posix_fallocate64_l64 static internal_fallocate64 -#include -#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); -} -- cgit 1.4.1