scsi: convert to using sg helpers
[deliverable/linux.git] / include / linux / scatterlist.h
CommitLineData
1da177e4
LT
1#ifndef _LINUX_SCATTERLIST_H
2#define _LINUX_SCATTERLIST_H
3
d32311fe
HX
4#include <asm/scatterlist.h>
5#include <linux/mm.h>
6#include <linux/string.h>
1da177e4 7
03fd9cee 8static inline void sg_set_buf(struct scatterlist *sg, const void *buf,
d32311fe
HX
9 unsigned int buflen)
10{
1da177e4
LT
11 sg->page = virt_to_page(buf);
12 sg->offset = offset_in_page(buf);
13 sg->length = buflen;
14}
15
03fd9cee 16static inline void sg_init_one(struct scatterlist *sg, const void *buf,
d32311fe
HX
17 unsigned int buflen)
18{
19 memset(sg, 0, sizeof(*sg));
20 sg_set_buf(sg, buf, buflen);
21}
22
96b418c9
JA
23#define sg_next(sg) ((sg) + 1)
24#define sg_last(sg, nents) (&(sg[(nents) - 1]))
25
26/*
27 * Loop over each sg element, following the pointer to a new list if necessary
28 */
29#define for_each_sg(sglist, sg, nr, __i) \
30 for (__i = 0, sg = (sglist); __i < (nr); __i++, sg = sg_next(sg))
31
1da177e4 32#endif /* _LINUX_SCATTERLIST_H */
This page took 0.385067 seconds and 5 git commands to generate.