From 24030b0f789a2b6e2429c6158cf57d59518bcf36 Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Thu, 9 Apr 2009 22:06:07 +0000 Subject: function if it is not defined. Add some necessary casts. --- sysdeps/unix/sysv/linux/preadv.c | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) (limited to 'sysdeps/unix/sysv/linux/preadv.c') 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); } -- cgit v1.2.1