about summary refs log tree commit diff
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)
downloadglibc-1fe4d5652dc109d04c3ef14985d37123a7dd6d9f.tar.gz
glibc-1fe4d5652dc109d04c3ef14985d37123a7dd6d9f.tar.xz
glibc-1fe4d5652dc109d04c3ef14985d37123a7dd6d9f.zip
* 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));