about summary refs log tree commit diff
path: root/sysdeps/unix/sysv/linux/mips/pwrite64.c
diff options
context:
space:
mode:
authorAndreas Jaeger <aj@suse.de>2000-02-08 09:46:57 +0000
committerAndreas Jaeger <aj@suse.de>2000-02-08 09:46:57 +0000
commit046219c750012530a5e08eddec3d7b3e2ea1e066 (patch)
tree169b71c970d8db2e0652d35518f459eb9bb6df4a /sysdeps/unix/sysv/linux/mips/pwrite64.c
parent9359483248843b91fecd86cf72ddeabbe941d566 (diff)
downloadglibc-046219c750012530a5e08eddec3d7b3e2ea1e066.tar.gz
glibc-046219c750012530a5e08eddec3d7b3e2ea1e066.tar.xz
glibc-046219c750012530a5e08eddec3d7b3e2ea1e066.zip
Update.
2000-02-08  Andreas Jaeger  <aj@suse.de>

	* sysdeps/unix/sysv/linux/mips/pwrite64.c: Define __libc_* variant
	for cancelation wrapper; use __ASSUME_PWRITE_SYSCALL macro.
	* sysdeps/unix/sysv/linux/mips/pread64.c: Likewise.
	* sysdeps/unix/sysv/linux/mips/pwrite.c: Likewise.
	* sysdeps/unix/sysv/linux/mips/pread.c: Likewise.
Diffstat (limited to 'sysdeps/unix/sysv/linux/mips/pwrite64.c')
-rw-r--r--sysdeps/unix/sysv/linux/mips/pwrite64.c31
1 files changed, 21 insertions, 10 deletions
diff --git a/sysdeps/unix/sysv/linux/mips/pwrite64.c b/sysdeps/unix/sysv/linux/mips/pwrite64.c
index f73b10e0aa..2086f76985 100644
--- a/sysdeps/unix/sysv/linux/mips/pwrite64.c
+++ b/sysdeps/unix/sysv/linux/mips/pwrite64.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997, 1998 Free Software Foundation, Inc.
+/* Copyright (C) 1997, 1998, 2000 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ralf Baechle <ralf@gnu.org>, 1998.
 
@@ -23,17 +23,20 @@
 #include <sysdep.h>
 #include <sys/syscall.h>
 
-#ifdef __NR_pwrite
+#include <kernel-features.h>
+
+#if defined __NR_pwrite || __ASSUME_PWRITE_SYSCALL > 0
 
 extern ssize_t __syscall_pwrite (int fd, const void *buf, size_t count,
 				 int dummy, off_t offset_hi, off_t offset_lo);
 
+# if __ASSUME_PWRITE_SYSCALL == 0
 static ssize_t __emulate_pwrite64 (int fd, const void *buf, size_t count,
 				   off64_t offset) internal_function;
-
+# endif
 
 ssize_t
-__pwrite64 (fd, buf, count, offset)
+__libc_pwrite64 (fd, buf, count, offset)
      int fd;
      const void *buf;
      size_t count;
@@ -42,24 +45,32 @@ __pwrite64 (fd, buf, count, offset)
   ssize_t result;
 
   /* First try the syscall.  */
-#if defined(__MIPSEB__)
+# if defined(__MIPSEB__)
   result = INLINE_SYSCALL (pwrite, 6, fd, buf, count, 0, (off_t) (offset >> 32),
 			   (off_t) (offset & 0xffffffff));
-#elif defined(__MIPSEL__)
+# elif defined(__MIPSEL__)
   result = INLINE_SYSCALL (pwrite, 6, fd, buf, count, 0,
 			   (off_t) (offset & 0xffffffff),
 			   (off_t) (offset >> 32));
-#endif
+# endif
+
+# if __ASSUME_PWRITE_SYSCALL == 0
   if (result == -1 && errno == ENOSYS)
     /* No system call available.  Use the emulation.  */
     result = __emulate_pwrite64 (fd, buf, count, offset);
+# endif
 
   return result;
 }
 
-weak_alias (__pwrite64, pwrite64)
+strong_alias (__libc_pwrite64, __pwrite64)
+weak_alias (__libc_pwrite64, pwrite64)
 
-#define __pwrite64(fd, buf, count, offset) \
+# define __libc_pwrite64(fd, buf, count, offset) \
      static internal_function __emulate_pwrite64 (fd, buf, count, offset)
 #endif
-#include <sysdeps/posix/pwrite64.c>
+
+#if __ASSUME_PWRITE_SYSCALL == 0
+# include <sysdeps/posix/pwrite64.c>
+#endif
+