Rev 6102 | Go to most recent revision | 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 |
||
11 | |||
6102 | serge | 12 | extern void * |
13 | dma_alloc_coherent(struct device *dev, size_t size, dma_addr_t *dma_handle, |
||
14 | gfp_t flag); |
||
15 | #define DMA_BIT_MASK(n) (((n) == 64) ? ~0ULL : ((1ULL<<(n))-1)) |
||
4568 | Serge | 16 | |
6102 | serge | 17 | #define DMA_MASK_NONE 0x0ULL |
18 | |||
19 | static inline int valid_dma_direction(int dma_direction) |
||
20 | { |
||
21 | return ((dma_direction == DMA_BIDIRECTIONAL) || |
||
22 | (dma_direction == DMA_TO_DEVICE) || |
||
23 | (dma_direction == DMA_FROM_DEVICE)); |
||
24 | } |
||
25 | |||
26 | static inline int is_device_dma_capable(struct device *dev) |
||
27 | { |
||
28 | return dev->dma_mask != NULL && *dev->dma_mask != DMA_MASK_NONE; |
||
29 | } |
||
6588 | serge | 30 | |
31 | #ifdef CONFIG_HAS_DMA |
||
32 | #include |
||
33 | #else |
||
34 | #include |
||
35 | #endif |
||
6102 | serge | 36 | #ifndef dma_max_pfn |
37 | static inline unsigned long dma_max_pfn(struct device *dev) |
||
38 | { |
||
39 | return *dev->dma_mask >> PAGE_SHIFT; |
||
40 | } |
||
4568 | Serge | 41 | #endif |
6102 | serge | 42 | |
43 | static inline void *dma_zalloc_coherent(struct device *dev, size_t size, |
||
44 | dma_addr_t *dma_handle, gfp_t flag) |
||
45 | { |
||
46 | void *ret = dma_alloc_coherent(dev, size, dma_handle, |
||
47 | flag | __GFP_ZERO); |
||
48 | return ret; |
||
49 | } |
||
50 | |||
51 | #endif(n))-1)) |