NEWS update.
[paraslash.git] / fd.c
diff --git a/fd.c b/fd.c
index 23b89b5d35a19f0641ca0e506c1be34c2e4eab49..32d11079267abb8c53db0f2dea5756f77f24d6f5 100644 (file)
--- a/fd.c
+++ b/fd.c
@@ -6,6 +6,7 @@
 
 /** \file fd.c Helper functions for file descriptor handling. */
 
+#include <regex.h>
 #include <sys/types.h>
 #include <dirent.h>
 #include <sys/mman.h>
@@ -15,6 +16,7 @@
 #include "para.h"
 #include "error.h"
 #include "string.h"
+
 /**
  * Write a buffer to a file descriptor, re-write on short writes.
  *
@@ -79,6 +81,27 @@ int write_nonblock(int fd, const char *buf, size_t len,
        return written;
 }
 
+/**
+ * Simple wrapper for readv().
+ *
+ * \param fd The file descriptor to read from.
+ * \param iov Scatter/gather array used in readv().
+ * \param iovcnt Number of elements in \a iov.
+ *
+ * \return A negative error code on errors, the return value of the underlying
+ * call to readv() otherwise.
+ *
+ * \sa readv(2).
+ */
+int para_readv(int fd, struct iovec *iov, int iovcnt)
+{
+       int ret = readv(fd, iov, iovcnt);
+
+       if (ret < 0)
+               return -ERRNO_TO_PARA_ERROR(errno);
+       return ret;
+}
+
 /**
  * Check whether a file exists.
  *
@@ -419,7 +442,7 @@ out:
  * \param start The start address of the memory mapping.
  * \param length The size of the mapping.
  *
- * \return Positive on success, \p -E_MUNMAP on errors.
+ * \return Standard.
  *
  * \sa munmap(2), mmap_full_file().
  */