blob: 07bd499b0d0928edc3b519a7364ecebffe6b4cab [file] [log] [blame]
Amit Shahe4d56392010-04-27 18:04:05 +05301/*
2 * Helpers for getting linearized buffers from iov / filling buffers into iovs
3 *
4 * Copyright IBM, Corp. 2007, 2008
5 * Copyright (C) 2010 Red Hat, Inc.
6 *
7 * Author(s):
8 * Anthony Liguori <aliguori@us.ibm.com>
9 * Amit Shah <amit.shah@redhat.com>
10 *
11 * This work is licensed under the terms of the GNU GPL, version 2. See
12 * the COPYING file in the top-level directory.
13 */
14
15#include "iov.h"
16
17size_t iov_from_buf(struct iovec *iov, unsigned int iovcnt,
18 const void *buf, size_t size)
19{
20 size_t offset;
21 unsigned int i;
22
23 offset = 0;
24 for (i = 0; offset < size && i < iovcnt; i++) {
25 size_t len;
26
27 len = MIN(iov[i].iov_len, size - offset);
28
29 memcpy(iov[i].iov_base, buf + offset, len);
30 offset += len;
31 }
32 return offset;
33}