Add sys_writev
authorVolker Lendecke <vl@samba.org>
Sun, 21 Dec 2008 22:22:30 +0000 (23:22 +0100)
committerVolker Lendecke <vl@samba.org>
Mon, 29 Dec 2008 12:24:27 +0000 (13:24 +0100)
source3/include/proto.h
source3/lib/system.c

index 5a3776b005d6848752eb790e4d099ee612efbf78..f1be1874bf4dce412f6781da707cf1f846480b72 100644 (file)
@@ -969,6 +969,7 @@ void *sys_memalign( size_t align, size_t size );
 int sys_usleep(long usecs);
 ssize_t sys_read(int fd, void *buf, size_t count);
 ssize_t sys_write(int fd, const void *buf, size_t count);
+ssize_t sys_writev(int fd, const struct iovec *iov, int iovcnt);
 ssize_t sys_pread(int fd, void *buf, size_t count, SMB_OFF_T off);
 ssize_t sys_pwrite(int fd, const void *buf, size_t count, SMB_OFF_T off);
 ssize_t sys_send(int s, const void *msg, size_t len, int flags);
index 86c4ef2097f8610ab885d3e4b1d57e6653a07ca2..d52d12bf721ab6e933fb7404d0c1b710ee5d425c 100644 (file)
@@ -141,6 +141,20 @@ ssize_t sys_write(int fd, const void *buf, size_t count)
        return ret;
 }
 
+/*******************************************************************
+A writev wrapper that will deal with EINTR.
+********************************************************************/
+
+ssize_t sys_writev(int fd, const struct iovec *iov, int iovcnt)
+{
+       ssize_t ret;
+
+       do {
+               ret = writev(fd, iov, iovcnt);
+       } while (ret == -1 && errno == EINTR);
+       return ret;
+}
+
 /*******************************************************************
 A pread wrapper that will deal with EINTR and 64-bit file offsets.
 ********************************************************************/