Rev 5270 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
5270 | serge | 1 | #ifndef __ASM_GENERIC_SCATTERLIST_H |
2 | #define __ASM_GENERIC_SCATTERLIST_H |
||
3 | |||
4 | #include |
||
5 | |||
6 | struct scatterlist { |
||
7 | #ifdef CONFIG_DEBUG_SG |
||
8 | unsigned long sg_magic; |
||
9 | #endif |
||
10 | unsigned long page_link; |
||
11 | unsigned int offset; |
||
12 | unsigned int length; |
||
13 | dma_addr_t dma_address; |
||
14 | #ifdef CONFIG_NEED_SG_DMA_LENGTH |
||
15 | unsigned int dma_length; |
||
16 | #endif |
||
17 | }; |
||
18 | |||
19 | /* |
||
20 | * These macros should be used after a dma_map_sg call has been done |
||
21 | * to get bus addresses of each of the SG entries and their lengths. |
||
22 | * You should only work with the number of sg entries pci_map_sg |
||
23 | * returns, or alternatively stop on the first sg_dma_len(sg) which |
||
24 | * is 0. |
||
25 | */ |
||
26 | #define sg_dma_address(sg) ((sg)->dma_address) |
||
27 | |||
28 | #ifdef CONFIG_NEED_SG_DMA_LENGTH |
||
29 | #define sg_dma_len(sg) ((sg)->dma_length) |
||
30 | #else |
||
31 | #define sg_dma_len(sg) ((sg)->length) |
||
32 | #endif |
||
33 | |||
34 | #define ARCH_HAS_SG_CHAIN |
||
35 | |||
36 | int dma_map_sg(struct device *dev, struct scatterlist *sglist, |
||
37 | int nelems, int dir); |
||
38 | |||
39 | #endif /* __ASM_GENERIC_SCATTERLIST_H */ |