Subversion Repositories Kolibri OS

Rev

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