diff options
author | Marc-André Lureau <marcandre.lureau@redhat.com> | 2018-11-14 16:36:14 +0400 |
---|---|---|
committer | Samuel Thibault <samuel.thibault@ens-lyon.org> | 2019-01-14 00:40:54 +0100 |
commit | 03cee2fb5f3e1eb82587e4cd03131238f43ec9c1 (patch) | |
tree | 2ffb012c502cb396fd903ed3c55ee1ba940ffe94 /slirp | |
parent | 74f0304e17cf9956b3512d4795dfff65ab786d0d (diff) | |
download | qemu-03cee2fb5f3e1eb82587e4cd03131238f43ec9c1.zip qemu-03cee2fb5f3e1eb82587e4cd03131238f43ec9c1.tar.gz qemu-03cee2fb5f3e1eb82587e4cd03131238f43ec9c1.tar.bz2 |
slirp: remove the disabled readv()/writev() code path
The soread() function may be used on datagram sockets, and would
provide different behaviour if HAVE_READV was set, on empty datagrams.
This looks like a minor optimization, that never has been a strong
goal for slirp.
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
Signed-off-by: Samuel Thibault <samuel.thibault@ens-lyon.org>
Diffstat (limited to 'slirp')
-rw-r--r-- | slirp/slirp_config.h | 3 | ||||
-rw-r--r-- | slirp/socket.c | 15 |
2 files changed, 0 insertions, 18 deletions
diff --git a/slirp/slirp_config.h b/slirp/slirp_config.h index f0cc1c7..3ce64e0 100644 --- a/slirp/slirp_config.h +++ b/slirp/slirp_config.h @@ -29,9 +29,6 @@ /* Define if the machine is big endian */ //#undef HOST_WORDS_BIGENDIAN -/* Define if you have readv */ -#undef HAVE_READV - /* Define if iovec needs to be declared */ #undef DECLARE_IOVEC #ifdef _WIN32 diff --git a/slirp/socket.c b/slirp/socket.c index 041ec50..7012c7c 100644 --- a/slirp/socket.c +++ b/slirp/socket.c @@ -187,12 +187,7 @@ soread(struct socket *so) */ sopreprbuf(so, iov, &n); -#ifdef HAVE_READV - nn = readv(so->s, (struct iovec *)iov, n); - DEBUG_MISC((dfd, " ... read nn = %d bytes\n", nn)); -#else nn = qemu_recv(so->s, iov[0].iov_base, iov[0].iov_len,0); -#endif if (nn <= 0) { if (nn < 0 && (errno == EINTR || errno == EAGAIN)) return 0; @@ -226,7 +221,6 @@ soread(struct socket *so) } } -#ifndef HAVE_READV /* * If there was no error, try and read the second time round * We read again if n = 2 (ie, there's another part of the buffer) @@ -244,7 +238,6 @@ soread(struct socket *so) } DEBUG_MISC((dfd, " ... read nn = %d bytes\n", nn)); -#endif /* Update fields */ sb->sb_cc += nn; @@ -452,13 +445,7 @@ sowrite(struct socket *so) } /* Check if there's urgent data to send, and if so, send it */ -#ifdef HAVE_READV - nn = writev(so->s, (const struct iovec *)iov, n); - - DEBUG_MISC((dfd, " ... wrote nn = %d bytes\n", nn)); -#else nn = slirp_send(so, iov[0].iov_base, iov[0].iov_len,0); -#endif /* This should never happen, but people tell me it does *shrug* */ if (nn < 0 && (errno == EAGAIN || errno == EINTR)) return 0; @@ -467,7 +454,6 @@ sowrite(struct socket *so) goto err_disconnected; } -#ifndef HAVE_READV if (n == 2 && nn == iov[0].iov_len) { int ret; ret = slirp_send(so, iov[1].iov_base, iov[1].iov_len,0); @@ -475,7 +461,6 @@ sowrite(struct socket *so) nn += ret; } DEBUG_MISC((dfd, " ... wrote nn = %d bytes\n", nn)); -#endif /* Update sbuf */ sb->sb_cc -= nn; |