Subversion Repositories Kolibri OS

Rev

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