Skip to content
  • Michael Tokarev's avatar
    rename qemu_sendv to iov_send, change proto and move declarations to iov.h · 3e80bf93
    Michael Tokarev authored
    
    
    Rename arguments and use size_t for sizes instead of int,
    from
     int
     qemu_sendv(int sockfd, struct iovec *iov,
                int len, int iov_offset)
    to
     ssize_t
     iov_send(int sockfd, struct iovec *iov,
              size_t offset, size_t bytes)
    
    The main motivation was to make it clear that length
    and offset are in _bytes_, not in iov elements: it was
    very confusing before, because all standard functions
    which deals with iovecs expects number of iovs, not
    bytes, even the fact that struct iovec has iov_len and
    iov_ prefix does not help.  With "bytes" and "offset",
    especially since they're now size_t, it is much more
    explicit.  Also change the return type to be ssize_t
    instead of int.
    
    This also changes it to match other iov-related functons,
    but not _quite_: there's still no argument indicating
    where iovec ends, ie, no iov_cnt parameter as used
    in iov_size() and friends.  If will be added in subsequent
    patch/rewrite.
    
    All callers of qemu_sendv() and qemu_recvv() and
    related, like qemu_co_sendv() and qemu_co_recvv(),
    were checked to verify that it is safe to use unsigned
    datatype instead of int.
    
    Note that the order of arguments is changed to: offset
    and bytes (len and iov_offset) are swapped with each
    other.  This is to make them consistent with very similar
    functions from qemu_iovec family, where offset always
    follows qiov, to mean the place in it to start from.
    
    Signed-off-by: default avatarMichael Tokarev <mjt@tls.msk.ru>
    3e80bf93