Rev 6588 | Details | Compare with Previous | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
4568 | Serge | 1 | #ifndef _LINUX_DMA_MAPPING_H |
2 | #define _LINUX_DMA_MAPPING_H |
||
3 | |||
6102 | serge | 4 | #include |
5 | #include |
||
6 | #include |
||
7 | #include |
||
6588 | serge | 8 | #include |
4568 | Serge | 9 | #include |
10 | #include |
||
6936 | serge | 11 | #include |
4568 | Serge | 12 | |
6102 | serge | 13 | extern void * |
14 | dma_alloc_coherent(struct device *dev, size_t size, dma_addr_t *dma_handle, |
||
15 | gfp_t flag); |
||
16 | #define DMA_BIT_MASK(n) (((n) == 64) ? ~0ULL : ((1ULL<<(n))-1)) |
||
4568 | Serge | 17 | |
6102 | serge | 18 | #define DMA_MASK_NONE 0x0ULL |
19 | |||
20 | static inline int valid_dma_direction(int dma_direction) |
||
21 | { |
||
22 | return ((dma_direction == DMA_BIDIRECTIONAL) || |
||
23 | (dma_direction == DMA_TO_DEVICE) || |
||
24 | (dma_direction == DMA_FROM_DEVICE)); |
||
25 | } |
||
26 | |||
27 | static inline int is_device_dma_capable(struct device *dev) |
||
28 | { |
||
29 | return dev->dma_mask != NULL && *dev->dma_mask != DMA_MASK_NONE; |
||
30 | } |
||
6588 | serge | 31 | |
32 | #ifdef CONFIG_HAS_DMA |
||
33 | #include |
||
34 | #else |
||
35 | #include |
||
36 | #endif |
||
6102 | serge | 37 | #ifndef dma_max_pfn |
38 | static inline unsigned long dma_max_pfn(struct device *dev) |
||
39 | { |
||
40 | return *dev->dma_mask >> PAGE_SHIFT; |
||
41 | } |
||
4568 | Serge | 42 | #endif |
6102 | serge | 43 | |
44 | static inline void *dma_zalloc_coherent(struct device *dev, size_t size, |
||
45 | dma_addr_t *dma_handle, gfp_t flag) |
||
46 | { |
||
47 | void *ret = dma_alloc_coherent(dev, size, dma_handle, |
||
48 | flag | __GFP_ZERO); |
||
49 | return ret; |
||
50 | } |
||
51 | |||
52 | #endif(n))-1)) |