diff options
author | Adhemerval Zanella <adhemerval.zanella@linaro.org> | 2018-04-22 17:55:11 -0300 |
---|---|---|
committer | Adhemerval Zanella <adhemerval.zanella@linaro.org> | 2018-04-27 17:38:43 -0300 |
commit | c57bf7c15ba179168d01f7c6acde7ecbf5dd9cd8 (patch) | |
tree | d60ffc27f581d78947a519b0048128c7dee8f44f /sysdeps/unix/sysv/linux/readahead.c | |
parent | 33927914420ad1aec86551c8e5cf085d8ee80ebb (diff) | |
download | glibc-c57bf7c15ba179168d01f7c6acde7ecbf5dd9cd8.tar.gz |
Consolidate Linux readahead implementation
This patch consolidate Linux readahead implementation on generic
sysdeps/unix/sysv/linux/readahead.c one. The changes are:
- Assume __NR_readahead existence with current minimum kernel of 3.2
for all architectures.
- Use INLINE_SYSCALL_CALL, __ALIGNMENT_ARG, and SYSCALL_LL64 to pass
the 64 bit offset. This allows architectures with different abis
to use the same implementation.
- Remove arch-specific readahead implementations.
Checked on x86_64-linux-gnu and i686-linux-gnu.
* sysdeps/unix/sysv/linux/arm/readahead.c: Remove file.
* sysdeps/unix/sysv/linux/mips/mips32/readahead.c: Likewise.
* sysdeps/unix/sysv/linux/mips/mips64/n32/syscalls.list (readahead):
Remove.
* sysdeps/unix/sysv/linux/mips/mips64/n64/syscalls.list: Likewise.
* sysdeps/unix/sysv/linux/powerpc/powerpc32/syscalls.list: Likewise.
* sysdeps/unix/sysv/linux/wordsize-64/syscalls.list: Likewise.
* sysdeps/unix/sysv/linux/readahead.c (__readahead): Assume
__NR_readahead existence, and use INLINE_SYSCALL_CALL, __ALIGNMENT_ARG,
and SYSCALL_LL64.
Diffstat (limited to 'sysdeps/unix/sysv/linux/readahead.c')
-rw-r--r-- | sysdeps/unix/sysv/linux/readahead.c | 24 |
1 files changed, 4 insertions, 20 deletions
diff --git a/sysdeps/unix/sysv/linux/readahead.c b/sysdeps/unix/sysv/linux/readahead.c index 49f5eb4df7..f84d210f34 100644 --- a/sysdeps/unix/sysv/linux/readahead.c +++ b/sysdeps/unix/sysv/linux/readahead.c @@ -16,31 +16,15 @@ 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 <errno.h> #include <sysdep.h> -#include <sys/syscall.h> - - -#ifdef __NR_readahead ssize_t __readahead (int fd, off64_t offset, size_t count) { - return INLINE_SYSCALL (readahead, 4, fd, - __LONG_LONG_PAIR ((off_t) (offset >> 32), - (off_t) (offset & 0xffffffff)), - count); + return INLINE_SYSCALL_CALL (readahead, fd, + __ALIGNMENT_ARG SYSCALL_LL64 (offset), + count); } -#else -ssize_t -__readahead (int fd, off64_t offset, size_t count) -{ - return INLINE_SYSCALL_ERROR_RETURN_VALUE (ENOSYS); -} -stub_warning (readahead) -#endif - weak_alias (__readahead, readahead) |