mirror of https://github.com/xqemu/xqemu.git
util: add return value to qemu_iovec_concat_iov
This will be necessary later to recognize the case where a request has both dataout and datain. Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
This commit is contained in:
parent
1016b239c5
commit
519661ee65
|
@ -315,9 +315,9 @@ void qemu_iovec_init_external(QEMUIOVector *qiov, struct iovec *iov, int niov);
|
||||||
void qemu_iovec_add(QEMUIOVector *qiov, void *base, size_t len);
|
void qemu_iovec_add(QEMUIOVector *qiov, void *base, size_t len);
|
||||||
void qemu_iovec_concat(QEMUIOVector *dst,
|
void qemu_iovec_concat(QEMUIOVector *dst,
|
||||||
QEMUIOVector *src, size_t soffset, size_t sbytes);
|
QEMUIOVector *src, size_t soffset, size_t sbytes);
|
||||||
void qemu_iovec_concat_iov(QEMUIOVector *dst,
|
size_t qemu_iovec_concat_iov(QEMUIOVector *dst,
|
||||||
struct iovec *src_iov, unsigned int src_cnt,
|
struct iovec *src_iov, unsigned int src_cnt,
|
||||||
size_t soffset, size_t sbytes);
|
size_t soffset, size_t sbytes);
|
||||||
bool qemu_iovec_is_zero(QEMUIOVector *qiov);
|
bool qemu_iovec_is_zero(QEMUIOVector *qiov);
|
||||||
void qemu_iovec_destroy(QEMUIOVector *qiov);
|
void qemu_iovec_destroy(QEMUIOVector *qiov);
|
||||||
void qemu_iovec_reset(QEMUIOVector *qiov);
|
void qemu_iovec_reset(QEMUIOVector *qiov);
|
||||||
|
|
10
util/iov.c
10
util/iov.c
|
@ -295,15 +295,15 @@ void qemu_iovec_add(QEMUIOVector *qiov, void *base, size_t len)
|
||||||
* of src".
|
* of src".
|
||||||
* Only vector pointers are processed, not the actual data buffers.
|
* Only vector pointers are processed, not the actual data buffers.
|
||||||
*/
|
*/
|
||||||
void qemu_iovec_concat_iov(QEMUIOVector *dst,
|
size_t qemu_iovec_concat_iov(QEMUIOVector *dst,
|
||||||
struct iovec *src_iov, unsigned int src_cnt,
|
struct iovec *src_iov, unsigned int src_cnt,
|
||||||
size_t soffset, size_t sbytes)
|
size_t soffset, size_t sbytes)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
size_t done;
|
size_t done;
|
||||||
|
|
||||||
if (!sbytes) {
|
if (!sbytes) {
|
||||||
return;
|
return 0;
|
||||||
}
|
}
|
||||||
assert(dst->nalloc != -1);
|
assert(dst->nalloc != -1);
|
||||||
for (i = 0, done = 0; done < sbytes && i < src_cnt; i++) {
|
for (i = 0, done = 0; done < sbytes && i < src_cnt; i++) {
|
||||||
|
@ -317,6 +317,8 @@ void qemu_iovec_concat_iov(QEMUIOVector *dst,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
assert(soffset == 0); /* offset beyond end of src */
|
assert(soffset == 0); /* offset beyond end of src */
|
||||||
|
|
||||||
|
return done;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
Loading…
Reference in New Issue