diff options
author | Jakub Jelinek <jakub@redhat.com> | 2009-04-24 08:00:37 +0000 |
---|---|---|
committer | Jakub Jelinek <jakub@redhat.com> | 2009-04-24 08:00:37 +0000 |
commit | 7dec33c08e4755e72d1280e48e61f0141dfc1da5 (patch) | |
tree | 22aa7aa8ebc1f795e180c8c0d99cdda7d2a3ffef /sysdeps/unix/sysv/linux/preadv.c | |
parent | 335206256c84eaefab082284523e5b8f89fcffb2 (diff) |
Updated to fedora-glibc-20090424T0747cvs/fedora-glibc-2_9_90-20
Diffstat (limited to 'sysdeps/unix/sysv/linux/preadv.c')
-rw-r--r-- | sysdeps/unix/sysv/linux/preadv.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/sysdeps/unix/sysv/linux/preadv.c b/sysdeps/unix/sysv/linux/preadv.c index 0d4a6c3803..72722ebc0d 100644 --- a/sysdeps/unix/sysv/linux/preadv.c +++ b/sysdeps/unix/sysv/linux/preadv.c @@ -37,6 +37,10 @@ # define OFF_T off_t #endif +#define LO_HI_LONG(val) \ + (off_t) val, \ + (off_t) ((((uint64_t) (val)) >> (sizeof (long) * 4)) >> (sizeof (long) * 4)) + #ifndef __ASSUME_PREADV static ssize_t PREADV_REPLACEMENT (int, __const struct iovec *, int, OFF_T) internal_function; @@ -55,15 +59,13 @@ PREADV (fd, vector, count, offset) if (SINGLE_THREAD_P) result = INLINE_SYSCALL (preadv, 5, fd, vector, count, - (off_t) ((off64_t) offset >> 32), - (off_t) (offset & 0xffffffff)); + LO_HI_LONG (offset)); else { int oldtype = LIBC_CANCEL_ASYNC (); result = INLINE_SYSCALL (preadv, 5, fd, vector, count, - (off_t) ((off64_t) offset >> 32), - (off_t) (offset & 0xffffffff)); + LO_HI_LONG (offset)); LIBC_CANCEL_RESET (oldtype); } |