From 24030b0f789a2b6e2429c6158cf57d59518bcf36 Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Thu, 9 Apr 2009 22:06:07 +0000 Subject: [PATCH] function if it is not defined. Add some necessary casts. --- ChangeLog | 2 +- sysdeps/unix/sysv/linux/preadv.c | 17 +++++++++++++---- sysdeps/unix/sysv/linux/pwritev.c | 17 +++++++++++++---- 3 files changed, 27 insertions(+), 9 deletions(-) diff --git a/ChangeLog b/ChangeLog index b3c1302937..200c8187d1 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,7 +1,7 @@ 2009-04-09 Ulrich Drepper * sysdeps/unix/sysv/linux/preadv.c: Avoid prototype for static - function if it is not defined. + function if it is not defined. Add some necessary casts. * sysdeps/unix/sysv/linux/pwritev.c: Likewise. * sysdeps/unix/sysv/linux/kernel-features.h: SPARC and IA64 also diff --git a/sysdeps/unix/sysv/linux/preadv.c b/sysdeps/unix/sysv/linux/preadv.c index ff9af6fa05..8c89d9200e 100644 --- a/sysdeps/unix/sysv/linux/preadv.c +++ b/sysdeps/unix/sysv/linux/preadv.c @@ -29,6 +29,13 @@ #include #include +#ifdef __x86_64__ +#define __NR_preadv 295 +#elif defined __i386__ +#define __NR_preadv 333 +#endif + + #ifndef PREADV # define PREADV preadv # define PREADV_REPLACEMENT __atomic_preadv_replacement @@ -53,14 +60,16 @@ PREADV (fd, vector, count, offset) ssize_t result; if (SINGLE_THREAD_P) - result = INLINE_SYSCALL (preadv, 5, fd, vector, count, offset >> 32, - offset & 0xffffffff); + result = INLINE_SYSCALL (preadv, 5, fd, vector, count, + (off_t) ((off64_t) offset >> 32), + (off_t) (offset & 0xffffffff)); else { int oldtype = LIBC_CANCEL_ASYNC (); - result = INLINE_SYSCALL (preadv, 5, fd, vector, count, offset >> 32, - offset & 0xffffffff); + result = INLINE_SYSCALL (preadv, 5, fd, vector, count, + (off_t) ((off64_t) offset >> 32), + (off_t) (offset & 0xffffffff)); LIBC_CANCEL_RESET (oldtype); } diff --git a/sysdeps/unix/sysv/linux/pwritev.c b/sysdeps/unix/sysv/linux/pwritev.c index 2031adda10..1916abe485 100644 --- a/sysdeps/unix/sysv/linux/pwritev.c +++ b/sysdeps/unix/sysv/linux/pwritev.c @@ -29,6 +29,13 @@ #include #include +#ifdef __x86_64__ +#define __NR_pwritev 296 +#elif defined __i386__ +#define __NR_pwritev 334 +#endif + + #ifndef PWRITEV # define PWRITEV pwritev # define PWRITEV_REPLACEMENT __atomic_pwritev_replacement @@ -53,14 +60,16 @@ PWRITEV (fd, vector, count, offset) ssize_t result; if (SINGLE_THREAD_P) - result = INLINE_SYSCALL (pwritev, 5, fd, vector, count, offset >> 32, - offset & 0xffffffff); + result = INLINE_SYSCALL (pwritev, 5, fd, vector, count, + (off_t) ((off64_t) offset >> 32), + (off_t) (offset & 0xffffffff)); else { int oldtype = LIBC_CANCEL_ASYNC (); - result = INLINE_SYSCALL (pwritev, 5, fd, vector, count, offset >> 32, - offset & 0xffffffff); + result = INLINE_SYSCALL (pwritev, 5, fd, vector, count, + (off_t) ((off64_t) offset >> 32), + (off_t) (offset & 0xffffffff)); LIBC_CANCEL_RESET (oldtype); }