]> git.ipfire.org Git - thirdparty/glibc.git/commitdiff
Don't use MAX_IOVEC. Test for UIO_FASTIOV and set to 8 if not available.
authorUlrich Drepper <drepper@redhat.com>
Wed, 19 Mar 1997 21:09:31 +0000 (21:09 +0000)
committerUlrich Drepper <drepper@redhat.com>
Wed, 19 Mar 1997 21:09:31 +0000 (21:09 +0000)
sysdeps/unix/sysv/linux/readv.c
sysdeps/unix/sysv/linux/writev.c

index 458e8ffb38e36749d3b4133fec3e7e14ab8b989a..c8ff55ab45617f7647726ff3571879eab86e707a 100644 (file)
@@ -26,15 +26,12 @@ extern ssize_t __syscall_readv __P ((int, __const struct iovec *, int));
 
 
 /* Not all versions of the kernel support the large number of records.  */
-#undef MAX_IOVEC
-#ifdef UIO_FASTIOV
-# define MAX_IOVEC     UIO_FASTIOV
-#else
-# define MAX_IOVEC     8       /* 8 is a safe number. */
+#ifndef UIO_FASTIOV
+# define UIO_FASTIOV   8       /* 8 is a safe number.  */
 #endif
 
 
-/* We should deal with kernel which have a smaller UIO_MAXIOV as well
+/* We should deal with kernel which have a smaller UIO_FASTIOV as well
    as a very big count.  */
 ssize_t
 readv (fd, vector, count)
@@ -47,7 +44,7 @@ readv (fd, vector, count)
 
   bytes_read = __syscall_readv (fd, vector, count);
 
-  if (bytes_read < 0 && errno == EINVAL && count > MAX_IOVEC)
+  if (bytes_read < 0 && errno == EINVAL && count > UIO_FASTIOV)
     {
       int i;
 
@@ -55,10 +52,10 @@ readv (fd, vector, count)
       __set_errno (errno_saved);
 
       bytes_read = 0;
-      for (i = 0; i < count; i += MAX_IOVEC)
+      for (i = 0; i < count; i += UIO_FASTIOV)
        {
          ssize_t bytes = __syscall_readv (fd, vector + i,
-                                          MIN (count - i, MAX_IOVEC));
+                                          MIN (count - i, UIO_FASTIOV));
 
          if (bytes < 0)
            return bytes;
index 11afd81d2e1d5f95eb7855df8fb7c3dee11a037d..d147186b515972fd8bc43230ab370e73f641382a 100644 (file)
 extern ssize_t __syscall_writev __P ((int, const struct iovec *, int));
 
 /* Not all versions of the kernel support the large number of records.  */
-#undef MAX_IOVEC
-#ifdef UIO_FASTIOV
-# define MAX_IOVEC     UIO_FASTIOV
-#else
-# define MAX_IOVEC     8       /* 8 is a safe number. */
+#ifndef UIO_FASTIOV
+# define UIO_FASTIOV   8       /* 8 is a safe number.  */
 #endif
 
 
-/* We should deal with kernel which have a smaller UIO_MAXIOV as well
+/* We should deal with kernel which have a smaller UIO_FASTIOV as well
    as a very big count.  */
 ssize_t
 writev (fd, vector, count)
@@ -46,7 +43,7 @@ writev (fd, vector, count)
 
   bytes_written = __syscall_writev (fd, vector, count);
 
-  if (bytes_written < 0 && errno == EINVAL && count > MAX_IOVEC)
+  if (bytes_written < 0 && errno == EINVAL && count > UIO_FASTIOV)
     {
       int i;
 
@@ -54,10 +51,10 @@ writev (fd, vector, count)
       __set_errno (errno_saved);
 
       bytes_written = 0;
-      for (i = 0; i < count; i += MAX_IOVEC)
+      for (i = 0; i < count; i += UIO_FASTIOV)
        {
          ssize_t bytes = __syscall_writev (fd, vector + i,
-                                           MIN (count - i, MAX_IOVEC));
+                                           MIN (count - i, UIO_FASTIOV));
 
          if (bytes < 0)
            return bytes_written > 0 ? bytes_written : bytes;