• M
    consolidate qemu_iovec_copy() and qemu_iovec_concat() and make them consistent · 1b093c48
    Michael Tokarev 提交于
    qemu_iovec_concat() is currently a wrapper for
    qemu_iovec_copy(), use the former (with extra
    "0" arg) in a few places where it is used.
    
    Change skip argument of qemu_iovec_copy() from
    uint64_t to size_t, since size of qiov itself
    is size_t, so there's no way to skip larger
    sizes.  Rename it to soffset, to make it clear
    that the offset is applied to src.
    
    Also change the only usage of uint64_t in
    hw/9pfs/virtio-9p.c, in v9fs_init_qiov_from_pdu() -
    all callers of it actually uses size_t too,
    not uint64_t.
    
    One added restriction: as for all other iovec-related
    functions, soffset must point inside src.
    
    Order of argumens is already good:
     qemu_iovec_memset(QEMUIOVector *qiov, size_t offset,
                       int c, size_t bytes)
    vs:
     qemu_iovec_concat(QEMUIOVector *dst,
                       QEMUIOVector *src,
                       size_t soffset, size_t sbytes)
    (note soffset is after _src_ not dst, since it applies to src;
    for memset it applies to qiov).
    
    Note that in many places where this function is used,
    the previous call is qemu_iovec_reset(), which means
    many callers actually want copy (replacing dst content),
    not concat.  So we may want to add a wrapper like
    qemu_iovec_copy() with the same arguments but which
    calls qemu_iovec_reset() before _concat().
    Signed-off-by: NMichael Tokarev <mjt@tls.msk.ru>
    1b093c48
block.c 118.9 KB