// SPDX-License-Identifier: GPL-2.0-or-later /* * iov.c - helpers for using (partial) iovecs. * * Copyrigh Red Hat * Author: Laurent Vivier * * This file also contains code originally from QEMU include/qemu/iov.h: * * Author(s): * Amit Shah * Michael Tokarev */ #ifndef IOVEC_H #define IOVEC_H #include #include #define IOV_OF_LVALUE(lval) \ (struct iovec){ .iov_base = &(lval), .iov_len = sizeof(lval) } size_t iov_skip_bytes(const struct iovec *iov, size_t n, size_t skip, size_t *offset); size_t iov_from_buf(const struct iovec *iov, size_t iov_cnt, size_t offset, const void *buf, size_t bytes); size_t iov_to_buf(const struct iovec *iov, size_t iov_cnt, size_t offset, void *buf, size_t bytes); size_t iov_size(const struct iovec *iov, size_t iov_cnt); unsigned iov_copy(struct iovec *dst_iov, size_t dst_iov_cnt, const struct iovec *iov, size_t iov_cnt, size_t offset, size_t bytes); #endif /* IOVEC_H */