aboutsummaryrefslogtreecommitdiff
path: root/sysdeps/unix/sysv/linux/mips
diff options
context:
space:
mode:
authorAdhemerval Zanella <adhemerval.zanella@linaro.org>2016-10-04 11:57:38 -0300
committerAdhemerval Zanella <adhemerval.zanella@linaro.org>2016-10-11 16:21:12 -0300
commit5da2c626a53bb3d4cfcdf773d94a153d8408d45b (patch)
treebb3ddd4d38bb03ede44ebbb536b46cb868c5cbae /sysdeps/unix/sysv/linux/mips
parentbf8c54240338eb84fe48eaef7a34d3cb7e954dd5 (diff)
downloadglibc-5da2c626a53bb3d4cfcdf773d94a153d8408d45b.tar
glibc-5da2c626a53bb3d4cfcdf773d94a153d8408d45b.tar.gz
glibc-5da2c626a53bb3d4cfcdf773d94a153d8408d45b.tar.bz2
glibc-5da2c626a53bb3d4cfcdf773d94a153d8408d45b.zip
Consolidate Linux sync_file_range implementations
This patch consolidates all the sync_file_range implementation for Linux in only one (sysdeps/unix/sysv/linux/sync_file_range.c). It also removes the syscall from the auto-generation using assembly macros (except for x86_64 due x32 [1]). For current minimum supported kernel (2.6.32 for x86_64 and 3.2 for all other architectures) either sync_file_range or sync_file_range2 is supported and it is expected that any future Linux ABI will provide either of one syscall. So the code path that returns ENOSYS in the case of missing syscall is removed. Checked on x86_64, i386, powerpc64le, aarch64, and armhf. * sysdeps/unix/sysv/linux/Makefile (tests): Add tst-sync_file_range. * sysdeps/unix/sysv/linux/mips/mips32/sync_file_range.c: Remove file. * sysdeps/sysv/linux/powerpc/powerpc64/sync_file_range.c: Likewise. * sysdeps/unix/sysv/linux/sync_file_range.c: New file. * sysdeps/unix/sysv/linux/tst-sync_file_range.c (sync_file_range): Consolidate all Linux implementations. [1] https://patchwork.ozlabs.org/patch/659794/
Diffstat (limited to 'sysdeps/unix/sysv/linux/mips')
-rw-r--r--sysdeps/unix/sysv/linux/mips/mips32/sync_file_range.c33
-rw-r--r--sysdeps/unix/sysv/linux/mips/mips64/n32/syscalls.list1
-rw-r--r--sysdeps/unix/sysv/linux/mips/mips64/n64/syscalls.list2
3 files changed, 0 insertions, 36 deletions
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/sync_file_range.c b/sysdeps/unix/sysv/linux/mips/mips32/sync_file_range.c
deleted file mode 100644
index de831c79e4..0000000000
--- a/sysdeps/unix/sysv/linux/mips/mips32/sync_file_range.c
+++ /dev/null
@@ -1,33 +0,0 @@
-/* Selective file content synch'ing.
- Copyright (C) 2006-2016 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 <sys/types.h>
-
-#include <sysdep-cancel.h>
-#include <sys/syscall.h>
-
-int
-sync_file_range (int fd, __off64_t from, __off64_t to, unsigned int flags)
-{
- return SYSCALL_CANCEL (sync_file_range, fd, 0,
- __LONG_LONG_PAIR ((long) (from >> 32), (long) from),
- __LONG_LONG_PAIR ((long) (to >> 32), (long) to),
- flags);
-}
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/syscalls.list b/sysdeps/unix/sysv/linux/mips/mips64/n32/syscalls.list
index f55a94ac89..58fd46a9b9 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n32/syscalls.list
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/syscalls.list
@@ -3,7 +3,6 @@
mmap64 - mmap b:aniiii __mmap64 mmap64
readahead - readahead i:iii __readahead readahead
-sync_file_range - sync_file_range Ci:iiii sync_file_range
prlimit64 EXTRA prlimit64 i:iipp prlimit64
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/syscalls.list b/sysdeps/unix/sysv/linux/mips/mips64/n64/syscalls.list
index 890a74494a..533f19d7d1 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n64/syscalls.list
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/syscalls.list
@@ -2,8 +2,6 @@
mmap - mmap b:aniiii __mmap mmap __mmap64 mmap64
-sync_file_range - sync_file_range Ci:iiii sync_file_range
-
prlimit EXTRA prlimit64 i:iipp prlimit prlimit64
fanotify_mark EXTRA fanotify_mark i:iiiis fanotify_mark