331,47 → 331,15 |
#define BUILD_BUG_ON(condition) ((void)sizeof(char[1 - 2*!!(condition)])) |
|
|
struct scatterlist { |
unsigned long page_link; |
unsigned int offset; |
unsigned int length; |
dma_addr_t dma_address; |
unsigned int dma_length; |
}; |
|
struct sg_table { |
struct scatterlist *sgl; /* the list */ |
unsigned int nents; /* number of mapped entries */ |
unsigned int orig_nents; /* original size of list */ |
}; |
|
#define SG_MAX_SINGLE_ALLOC (4096 / sizeof(struct scatterlist)) |
|
struct scatterlist *sg_next(struct scatterlist *sg); |
|
#define sg_dma_address(sg) ((sg)->dma_address) |
#define sg_dma_len(sg) ((sg)->length) |
|
#define sg_is_chain(sg) ((sg)->page_link & 0x01) |
#define sg_is_last(sg) ((sg)->page_link & 0x02) |
#define sg_chain_ptr(sg) \ |
((struct scatterlist *) ((sg)->page_link & ~0x03)) |
|
static inline addr_t sg_page(struct scatterlist *sg) |
{ |
return (addr_t)((sg)->page_link & ~0x3); |
} |
|
#define for_each_sg(sglist, sg, nr, __i) \ |
for (__i = 0, sg = (sglist); __i < (nr); __i++, sg = sg_next(sg)) |
|
|
|
struct page |
{ |
unsigned int addr; |
}; |
|
#define page_to_phys(page) ((dma_addr_t)(page)) |
|
struct vm_fault { |
unsigned int flags; /* FAULT_FLAG_xxx flags */ |
390,5 → 358,9 |
unsigned int nents; |
}; |
|
#define page_cache_release(page) FreePage((addr_t)(page)) |
|
#define alloc_page(gfp_mask) (struct page*)AllocPage() |
|
#endif |
|