1 #ifndef KVM_UTIL_IOVEC_H_
2 #define KVM_UTIL_IOVEC_H_
3
4 extern int memcpy_fromiovec(unsigned char *kdata, struct iovec *iov, int len);
5 extern int memcpy_fromiovecend(unsigned char *kdata, const struct iovec *iov,
6 size_t offset, int len);
7 extern int memcpy_toiovec(struct iovec *v, unsigned char *kdata, int len);
8 extern int memcpy_toiovecend(const struct iovec *v, unsigned char *kdata,
9 size_t offset, int len);
10 ssize_t memcpy_fromiovec_safe(void *buf, struct iovec **iov, size_t len,
11 size_t *iovcount);
12
iov_size(const struct iovec * iovec,size_t len)13 static inline size_t iov_size(const struct iovec *iovec, size_t len)
14 {
15 size_t size = 0, i;
16
17 for (i = 0; i < len; i++)
18 size += iovec[i].iov_len;
19
20 return size;
21 }
22
23 #endif
24