diff options
author | Ulrich Drepper <drepper@redhat.com> | 2009-04-09 22:06:07 +0000 |
---|---|---|
committer | Ulrich Drepper <drepper@redhat.com> | 2009-04-09 22:06:07 +0000 |
commit | 24030b0f789a2b6e2429c6158cf57d59518bcf36 (patch) | |
tree | b63ceb00aa7dbff8a3e18ca7e8885b5ac3c3bdf0 /sysdeps/unix/sysv/linux/preadv.c | |
parent | f9fe75e9455f8473ce9b5c34cfb9e6a22627be09 (diff) | |
download | glibc-24030b0f789a2b6e2429c6158cf57d59518bcf36.tar.gz glibc-24030b0f789a2b6e2429c6158cf57d59518bcf36.tar.xz glibc-24030b0f789a2b6e2429c6158cf57d59518bcf36.zip |
function if it is not defined. Add some necessary casts.
Diffstat (limited to 'sysdeps/unix/sysv/linux/preadv.c')
-rw-r--r-- | sysdeps/unix/sysv/linux/preadv.c | 17 |
1 files changed, 13 insertions, 4 deletions
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 <sys/syscall.h> #include <kernel-features.h> +#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); } |