From dc217c26c9c950dd3849ae24f7e28ffcb6dce21e Mon Sep 17 00:00:00 2001 From: Steven Date: Wed, 4 Oct 2017 13:47:38 -0700 Subject: LDPRELOAD: Implement readv and writev Iteratively call vcom_read for readv and vcom_write for writev system call. Change-Id: I1d5795165e22c84b3303dde3273ce0cfa76abb4a Signed-off-by: Steven --- vcl-ldpreload/src/libvcl-ldpreload/vcom_socket_wrapper.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) (limited to 'vcl-ldpreload/src/libvcl-ldpreload/vcom_socket_wrapper.c') diff --git a/vcl-ldpreload/src/libvcl-ldpreload/vcom_socket_wrapper.c b/vcl-ldpreload/src/libvcl-ldpreload/vcom_socket_wrapper.c index 8fe7e1d..c8b7ee6 100644 --- a/vcl-ldpreload/src/libvcl-ldpreload/vcom_socket_wrapper.c +++ b/vcl-ldpreload/src/libvcl-ldpreload/vcom_socket_wrapper.c @@ -578,6 +578,14 @@ libc_read (int fd, void *buf, size_t count) return swrap.libc.symbols._libc_read.f (fd, buf, count); } +ssize_t +libc_readv (int fd, const struct iovec *iov, int iovcnt) +{ + swrap_bind_symbol_libc (readv); + + return swrap.libc.symbols._libc_readv.f (fd, iov, iovcnt); +} + int libc_recv (int sockfd, void *buf, size_t len, int flags) { @@ -671,6 +679,14 @@ libc_write (int fd, const void *buf, size_t count) return swrap.libc.symbols._libc_write.f (fd, buf, count); } +ssize_t +libc_writev (int fd, const struct iovec *iov, int iovcnt) +{ + swrap_bind_symbol_libc (writev); + + return swrap.libc.symbols._libc_writev.f (fd, iov, iovcnt); +} + int libc_shutdown (int fd, int how) { -- cgit 1.2.3-korg