qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [PATCHv2 3/7] consolidate qemu_iovec_copy() and qemu_io


From: Paolo Bonzini
Subject: Re: [Qemu-devel] [PATCHv2 3/7] consolidate qemu_iovec_copy() and qemu_iovec_concat() and make them consistent
Date: Sun, 11 Mar 2012 15:59:31 +0100
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:10.0.1) Gecko/20120216 Thunderbird/10.0.1

Il 11/03/2012 02:49, Michael Tokarev ha scritto:
> 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.
> 
> Semantic change in the meaning of `count' (now renamed to `sbytes')
> argument.  Initial comment said that src is copied to dst until
> _total_ size is less than specified, so it might be interpreted
> as maximum size of the _dst_ vector.  Actual meaning of if was
> that total amount of skipped and copied bytes should not exceed
> `count'.  Make it just the amount of bytes to _copy_, without
> counting skipped bytes.  This makes it consistent with other
> iovec functions, and also matches actual _usage_ of this function.
> 
> 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
> paramere to allow resetting dst in one go.

Yes, this initially left me a bit confused.

Let's add a new function qemu_iovec_copy that does reset+concat.

Paolo



reply via email to

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