xref: /kvmtool/include/kvm/iovec.h (revision c492534f3ac930107a628c0fadd4c152e8972b35)
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