XenevaOS
Loading...
Searching...
No Matches
Classes | Macros | Functions
scatterlist.h File Reference
#include <linux/kernel.h>
Include dependency graph for scatterlist.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  scatterlist
 
struct  sg_table
 
struct  sg_page_iter
 
struct  sg_dma_page_iter
 

Macros

#define for_each_sg_page(sglist, pgi, nents, pgoff)
 
#define for_each_sgtable_page(sgt, pgi, pgoff)    for_each_sg_page((sgt)->sgl, pgi, (sgt)->orig_nents, pgoff)
 
#define sg_dma_address(sg)   ((sg)->dma_address)
 
#define sg_dma_len(sg)   ((sg)->dma_length)
 
#define for_each_sg_dma(sglist, sg, nents, i)    for ((i) = 0; (i) < (nents) && ((sg) = &(sglist)[(i)]); (i)++)
 
#define for_each_sgtable_dma_sg(sgt, sg, i)    for_each_sg_dma((sgt)->sgl, sg, (sgt)->nents, i)
 
#define for_each_sg(sglist, sg, nents, i)    for ((i) = 0; (i) < (nents) && ((sg) = &(sglist)[(i)]); (i)++)
 
#define for_each_sgtable_sg(sgt, sg, i)    for_each_sg((sgt)->sgl, sg, (sgt)->orig_nents, i)
 
#define for_each_sgtable_dma_page(sgt, pgi, pgoff)    for_each_sg_page((sgt)->sgl, &(pgi)->base, (sgt)->nents, pgoff)
 

Functions

void sg_init_one (struct scatterlist *sg, const void *buf, unsigned int len)
 
struct page * sg_page (const struct scatterlist *sg)
 
void sg_set_page (struct scatterlist *sg, struct page *page, unsigned int len, unsigned int offset)
 
void sg_init_table (struct scatterlist *sgl, unsigned int n)
 
int sg_alloc_table_from_pages_segment (struct sg_table *sgt, struct page **pages, unsigned int n_pages, unsigned int offset, unsigned long size, unsigned int max_segment, gfp_t gfp_mask)
 
int sg_alloc_table (struct sg_table *sgt, unsigned int nents, gfp_t gfp)
 
void sg_free_table (struct sg_table *sgt)
 
dma_addr_t sg_phys (const struct scatterlist *sg)
 

Macro Definition Documentation

◆ for_each_sg

#define for_each_sg (   sglist,
  sg,
  nents,
  i 
)     for ((i) = 0; (i) < (nents) && ((sg) = &(sglist)[(i)]); (i)++)

◆ for_each_sg_dma

#define for_each_sg_dma (   sglist,
  sg,
  nents,
  i 
)     for ((i) = 0; (i) < (nents) && ((sg) = &(sglist)[(i)]); (i)++)

◆ for_each_sg_page

#define for_each_sg_page (   sglist,
  pgi,
  nents,
  pgoff 
)
Value:
for (__sg_page_iter_start(pgi, sglist, nents, pgoff); \
__sg_page_iter_next(pgi);)

◆ for_each_sgtable_dma_page

#define for_each_sgtable_dma_page (   sgt,
  pgi,
  pgoff 
)     for_each_sg_page((sgt)->sgl, &(pgi)->base, (sgt)->nents, pgoff)

◆ for_each_sgtable_dma_sg

#define for_each_sgtable_dma_sg (   sgt,
  sg,
  i 
)     for_each_sg_dma((sgt)->sgl, sg, (sgt)->nents, i)

◆ for_each_sgtable_page

#define for_each_sgtable_page (   sgt,
  pgi,
  pgoff 
)     for_each_sg_page((sgt)->sgl, pgi, (sgt)->orig_nents, pgoff)

◆ for_each_sgtable_sg

#define for_each_sgtable_sg (   sgt,
  sg,
  i 
)     for_each_sg((sgt)->sgl, sg, (sgt)->orig_nents, i)

◆ sg_dma_address

#define sg_dma_address (   sg)    ((sg)->dma_address)

◆ sg_dma_len

#define sg_dma_len (   sg)    ((sg)->dma_length)

Function Documentation

◆ sg_alloc_table()

int sg_alloc_table ( struct sg_table *  sgt,
unsigned int  nents,
gfp_t  gfp 
)

◆ sg_alloc_table_from_pages_segment()

int sg_alloc_table_from_pages_segment ( struct sg_table *  sgt,
struct page **  pages,
unsigned int  n_pages,
unsigned int  offset,
unsigned long  size,
unsigned int  max_segment,
gfp_t  gfp_mask 
)

◆ sg_free_table()

void sg_free_table ( struct sg_table *  sgt)

◆ sg_init_one()

void sg_init_one ( struct scatterlist *  sg,
const void *  buf,
unsigned int  len 
)
extern

◆ sg_init_table()

void sg_init_table ( struct scatterlist *  sgl,
unsigned int  n 
)
extern

◆ sg_page()

struct page * sg_page ( const struct scatterlist *  sg)
extern

◆ sg_phys()

dma_addr_t sg_phys ( const struct scatterlist *  sg)

◆ sg_set_page()

void sg_set_page ( struct scatterlist *  sg,
struct page *  page,
unsigned int  len,
unsigned int  offset 
)
extern