[PATCH] Introduce sg_set_buf

sg_init_one is a nice tool for the block layer.  However, users
of struct scatterlist in other subsystems don't usually need the
DMA attributes.  For them it's a waste of time and space to
initialise the whole struct scatterlist structure.

Therefore this patch adds a new function sg_set_buf to initialise
a scatterlist without zeroing the DMA attributes.

Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
This commit is contained in:
Herbert Xu 2005-09-17 14:41:40 +10:00
parent be15cd72d2
commit d32311fed7

View file

@ -1,14 +1,23 @@
#ifndef _LINUX_SCATTERLIST_H #ifndef _LINUX_SCATTERLIST_H
#define _LINUX_SCATTERLIST_H #define _LINUX_SCATTERLIST_H
static inline void sg_init_one(struct scatterlist *sg, #include <asm/scatterlist.h>
u8 *buf, unsigned int buflen) #include <linux/mm.h>
{ #include <linux/string.h>
memset(sg, 0, sizeof(*sg));
static inline void sg_set_buf(struct scatterlist *sg, void *buf,
unsigned int buflen)
{
sg->page = virt_to_page(buf); sg->page = virt_to_page(buf);
sg->offset = offset_in_page(buf); sg->offset = offset_in_page(buf);
sg->length = buflen; sg->length = buflen;
} }
static inline void sg_init_one(struct scatterlist *sg, void *buf,
unsigned int buflen)
{
memset(sg, 0, sizeof(*sg));
sg_set_buf(sg, buf, buflen);
}
#endif /* _LINUX_SCATTERLIST_H */ #endif /* _LINUX_SCATTERLIST_H */