From 73b40546d59c6bebd782aeaa15a6bdc8109485bd Mon Sep 17 00:00:00 2001 From: ptrcnull Date: Wed, 13 Jul 2022 04:58:08 +0200 Subject: uio: add pwritev64v2 and preadv64v2 --- libgcompat/uio.c | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 libgcompat/uio.c (limited to 'libgcompat') diff --git a/libgcompat/uio.c b/libgcompat/uio.c new file mode 100644 index 0000000..797cb3a --- /dev/null +++ b/libgcompat/uio.c @@ -0,0 +1,32 @@ +#include +#include /* iovec, pwritev, preadv */ +#include /* errno */ +#include /* syscall */ + +ssize_t pwritev64v2(int fd, const struct iovec *iov, int count, off_t ofs, int flags) +{ + if (flags != 0) { + errno = ENOTSUP; + return -1; + } + + if (ofs == -1) { + return writev(fd, iov, count); + } + + return syscall(__NR_pwritev2, fd, iov, count, ofs); +} + +ssize_t preadv64v2(int fd, const struct iovec *iov, int count, off_t ofs, int flags) +{ + if (flags != 0) { + errno = ENOTSUP; + return -1; + } + + if (ofs == -1) { + return readv(fd, iov, count); + } + + return syscall(__NR_preadv2, fd, iov, count, ofs); +} -- cgit v1.2.3-70-g09d2