Add preadv2/pwritev2 wrappers.
They're in glibc, though not in musl.
Also add basic doc comments to the whole of <sys/uio.h>.
Bug: http://b/203002492
Test: treehugger
Change-Id: Ic607f7f349e5b7c9bf66c25b7bd68f827da530d6
diff --git a/libc/SYSCALLS.TXT b/libc/SYSCALLS.TXT
index 289eddb..22b82f1 100644
--- a/libc/SYSCALLS.TXT
+++ b/libc/SYSCALLS.TXT
@@ -97,13 +97,14 @@
ssize_t pwrite64|pwrite(int, void*, size_t, off_t) lp64
# On LP32, preadv/pwritev don't use off64_t --- they use pairs of 32-bit
-# arguments to avoid problems on architectures like ARM where 64-bit arguments
+# arguments to avoid problems on architectures like arm32 where 64-bit arguments
# must be in a register pair starting with an even-numbered register.
# See linux/fs/read_write.c and https://lwn.net/Articles/311630/.
-ssize_t __preadv64:preadv(int, const struct iovec*, int, long, long) lp32
-ssize_t preadv|preadv64(int, const struct iovec*, int, off_t) lp64
-ssize_t __pwritev64:pwritev(int, const struct iovec*, int, long, long) lp32
-ssize_t pwritev|pwritev64(int, const struct iovec*, int, off_t) lp64
+# Note that there's an unused always-0 second long even on LP64!
+ssize_t __preadv64:preadv(int, const struct iovec*, int, long, long) all
+ssize_t __pwritev64:pwritev(int, const struct iovec*, int, long, long) all
+ssize_t __preadv64v2:preadv2(int, const struct iovec*, int, long, long, int) all
+ssize_t __pwritev64v2:pwritev2(int, const struct iovec*, int, long, long, int) all
int __close:close(int) all
pid_t __getpid:getpid() all