qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-devel] [PATCH] net: Use iov helper functions


From: Jason Wang
Subject: [Qemu-devel] [PATCH] net: Use iov helper functions
Date: Fri, 25 Feb 2011 14:21:50 +0800

Benjamin Poirier writes:
 > Signed-off-by: Benjamin Poirier <address@hidden>
 > ---
 >  net.c |   28 ++++++----------------------
 >  1 files changed, 6 insertions(+), 22 deletions(-)
 > 

Looks good.

Acked-by: Jason Wang <address@hidden>

 > diff --git a/net.c b/net.c
 > index ec4745d..15ed40b 100644
 > --- a/net.c
 > +++ b/net.c
 > @@ -36,6 +36,7 @@
 >  #include "qemu-common.h"
 >  #include "qemu_socket.h"
 >  #include "hw/qdev.h"
 > +#include "iov.h"
 >  
 >  static QTAILQ_HEAD(, VLANState) vlans;
 >  static QTAILQ_HEAD(, VLANClientState) non_vlan_clients;
 > @@ -572,30 +573,13 @@ static ssize_t vc_sendv_compat(VLANClientState *vc, 
 > const struct iovec *iov,
 >                                 int iovcnt)
 >  {
 >      uint8_t buffer[4096];
 > -    size_t offset = 0;
 > -    int i;
 > -
 > -    for (i = 0; i < iovcnt; i++) {
 > -        size_t len;
 > +    size_t offset;
 >  
 > -        len = MIN(sizeof(buffer) - offset, iov[i].iov_len);
 > -        memcpy(buffer + offset, iov[i].iov_base, len);
 > -        offset += len;
 > -    }
 > +    offset = iov_to_buf(iov, iovcnt, buffer, 0, sizeof(buffer));
 >  
 >      return vc->info->receive(vc, buffer, offset);
 >  }
 >  
 > -static ssize_t calc_iov_length(const struct iovec *iov, int iovcnt)
 > -{
 > -    size_t offset = 0;
 > -    int i;
 > -
 > -    for (i = 0; i < iovcnt; i++)
 > -        offset += iov[i].iov_len;
 > -    return offset;
 > -}
 > -
 >  static ssize_t qemu_deliver_packet_iov(VLANClientState *sender,
 >                                         unsigned flags,
 >                                         const struct iovec *iov,
 > @@ -605,7 +589,7 @@ static ssize_t qemu_deliver_packet_iov(VLANClientState 
 > *sender,
 >      VLANClientState *vc = opaque;
 >  
 >      if (vc->link_down) {
 > -        return calc_iov_length(iov, iovcnt);
 > +        return iov_size(iov, iovcnt);
 >      }
 >  
 >      if (vc->info->receive_iov) {
 > @@ -633,7 +617,7 @@ static ssize_t 
 > qemu_vlan_deliver_packet_iov(VLANClientState *sender,
 >          }
 >  
 >          if (vc->link_down) {
 > -            ret = calc_iov_length(iov, iovcnt);
 > +            ret = iov_size(iov, iovcnt);
 >              continue;
 >          }
 >  
 > @@ -658,7 +642,7 @@ ssize_t qemu_sendv_packet_async(VLANClientState *sender,
 >      NetQueue *queue;
 >  
 >      if (sender->link_down || (!sender->peer && !sender->vlan)) {
 > -        return calc_iov_length(iov, iovcnt);
 > +        return iov_size(iov, iovcnt);
 >      }
 >  
 >      if (sender->peer) {
 > -- 
 > 1.7.2.3
 > 
 > 



reply via email to

[Prev in Thread] Current Thread [Next in Thread]