summaryrefslogtreecommitdiff
path: root/sysdeps/unix/sysv/linux/mips/pread.c
diff options
context:
space:
mode:
authorRoland McGrath <roland@gnu.org>2003-09-10 23:39:29 +0000
committerRoland McGrath <roland@gnu.org>2003-09-10 23:39:29 +0000
commit1fe4d5652dc109d04c3ef14985d37123a7dd6d9f (patch)
treea5ece31c5ba4e73d534b0eb0150f82e70d98e327 /sysdeps/unix/sysv/linux/mips/pread.c
parent38791048930dfcf0a4dda23d04f4f188d28eb213 (diff)
* sysdeps/unix/sysv/linux/mips/pread64.c (__libc_pread64): Fix
syscall invocation. * sysdeps/unix/sysv/linux/mips/pwrite64.c (__libc_pwrite64): Likewise. * sysdeps/unix/sysv/linux/mips/pread.c (__libc_pread): Likewise. Also, only assert off_t size is 4 for N32 and O32, and clean up white space. * sysdeps/unix/sysv/linux/mips/pwrite.c (__libc_pwrite): Likewise.
Diffstat (limited to 'sysdeps/unix/sysv/linux/mips/pread.c')
-rw-r--r--sysdeps/unix/sysv/linux/mips/pread.c31
1 files changed, 16 insertions, 15 deletions
diff --git a/sysdeps/unix/sysv/linux/mips/pread.c b/sysdeps/unix/sysv/linux/mips/pread.c
index 86d47e9b7a..7a9b0860ba 100644
--- a/sysdeps/unix/sysv/linux/mips/pread.c
+++ b/sysdeps/unix/sysv/linux/mips/pread.c
@@ -51,32 +51,33 @@ __libc_pread (fd, buf, count, offset)
{
ssize_t result;
+#if (defined _ABI64 && _MIPS_SIM != _ABI64)
+ assert (sizeof (offset) == 4);
+#endif
+
if (SINGLE_THREAD_P)
{
- /* First try the syscall. */
- assert (sizeof (offset) == 4);
-#if defined _ABI64 && _MIPS_SIM == _ABI64
- result = INLINE_SYSCALL (pread, 5, fd, CHECK_N (buf, count), count, 0,
- offset);
+ /* First try the syscall. */
+#if (defined _ABIN32 && _MIPS_SIM == _ABIN32) || (defined _ABI64 && _MIPS_SIM == _ABI64)
+ result = INLINE_SYSCALL (pread, 4, fd, CHECK_N (buf, count), count,
+ offset);
#else
- result = INLINE_SYSCALL (pread, 6, fd, CHECK_N (buf, count), count, 0,
- __LONG_LONG_PAIR (offset >> 31, offset));
+ result = INLINE_SYSCALL (pread, 6, fd, CHECK_N (buf, count), count, 0,
+ __LONG_LONG_PAIR (offset >> 31, offset));
#endif
# if __ASSUME_PREAD_SYSCALL == 0
- if (result == -1 && errno == ENOSYS)
- /* No system call available. Use the emulation. */
- result = __emulate_pread (fd, buf, count, offset);
+ if (result == -1 && errno == ENOSYS)
+ /* No system call available. Use the emulation. */
+ result = __emulate_pread (fd, buf, count, offset);
# endif
- return result;
+ return result;
}
int oldtype = LIBC_CANCEL_ASYNC ();
/* First try the syscall. */
- assert (sizeof (offset) == 4);
-#if defined _ABI64 && _MIPS_SIM == _ABI64
- result = INLINE_SYSCALL (pread, 5, fd, CHECK_N (buf, count), count, 0,
- offset);
+#if (defined _ABIN32 && _MIPS_SIM == _ABIN32) || (defined _ABI64 && _MIPS_SIM == _ABI64)
+ result = INLINE_SYSCALL (pread, 4, fd, CHECK_N (buf, count), count, offset);
#else
result = INLINE_SYSCALL (pread, 6, fd, CHECK_N (buf, count), count, 0,
__LONG_LONG_PAIR (offset >> 31, offset));