Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
torvalds
GitHub Repository: torvalds/linux
Path: blob/master/kernel/dma/debug.h
29509 views
1
/* SPDX-License-Identifier: GPL-2.0-only */
2
/*
3
* Copyright (C) 2008 Advanced Micro Devices, Inc.
4
*
5
* Author: Joerg Roedel <[email protected]>
6
*/
7
8
#ifndef _KERNEL_DMA_DEBUG_H
9
#define _KERNEL_DMA_DEBUG_H
10
11
#ifdef CONFIG_DMA_API_DEBUG
12
extern void debug_dma_map_phys(struct device *dev, phys_addr_t phys,
13
size_t size, int direction, dma_addr_t dma_addr,
14
unsigned long attrs);
15
16
extern void debug_dma_unmap_phys(struct device *dev, dma_addr_t addr,
17
size_t size, int direction);
18
19
extern void debug_dma_map_sg(struct device *dev, struct scatterlist *sg,
20
int nents, int mapped_ents, int direction,
21
unsigned long attrs);
22
23
extern void debug_dma_unmap_sg(struct device *dev, struct scatterlist *sglist,
24
int nelems, int dir);
25
26
extern void debug_dma_alloc_coherent(struct device *dev, size_t size,
27
dma_addr_t dma_addr, void *virt,
28
unsigned long attrs);
29
30
extern void debug_dma_free_coherent(struct device *dev, size_t size,
31
void *virt, dma_addr_t addr);
32
33
extern void debug_dma_sync_single_for_cpu(struct device *dev,
34
dma_addr_t dma_handle, size_t size,
35
int direction);
36
37
extern void debug_dma_sync_single_for_device(struct device *dev,
38
dma_addr_t dma_handle,
39
size_t size, int direction);
40
41
extern void debug_dma_sync_sg_for_cpu(struct device *dev,
42
struct scatterlist *sg,
43
int nelems, int direction);
44
45
extern void debug_dma_sync_sg_for_device(struct device *dev,
46
struct scatterlist *sg,
47
int nelems, int direction);
48
extern void debug_dma_alloc_pages(struct device *dev, struct page *page,
49
size_t size, int direction,
50
dma_addr_t dma_addr,
51
unsigned long attrs);
52
extern void debug_dma_free_pages(struct device *dev, struct page *page,
53
size_t size, int direction,
54
dma_addr_t dma_addr);
55
#else /* CONFIG_DMA_API_DEBUG */
56
static inline void debug_dma_map_phys(struct device *dev, phys_addr_t phys,
57
size_t size, int direction,
58
dma_addr_t dma_addr, unsigned long attrs)
59
{
60
}
61
62
static inline void debug_dma_unmap_phys(struct device *dev, dma_addr_t addr,
63
size_t size, int direction)
64
{
65
}
66
67
static inline void debug_dma_map_sg(struct device *dev, struct scatterlist *sg,
68
int nents, int mapped_ents, int direction,
69
unsigned long attrs)
70
{
71
}
72
73
static inline void debug_dma_unmap_sg(struct device *dev,
74
struct scatterlist *sglist,
75
int nelems, int dir)
76
{
77
}
78
79
static inline void debug_dma_alloc_coherent(struct device *dev, size_t size,
80
dma_addr_t dma_addr, void *virt,
81
unsigned long attrs)
82
{
83
}
84
85
static inline void debug_dma_free_coherent(struct device *dev, size_t size,
86
void *virt, dma_addr_t addr)
87
{
88
}
89
90
static inline void debug_dma_sync_single_for_cpu(struct device *dev,
91
dma_addr_t dma_handle,
92
size_t size, int direction)
93
{
94
}
95
96
static inline void debug_dma_sync_single_for_device(struct device *dev,
97
dma_addr_t dma_handle,
98
size_t size, int direction)
99
{
100
}
101
102
static inline void debug_dma_sync_sg_for_cpu(struct device *dev,
103
struct scatterlist *sg,
104
int nelems, int direction)
105
{
106
}
107
108
static inline void debug_dma_sync_sg_for_device(struct device *dev,
109
struct scatterlist *sg,
110
int nelems, int direction)
111
{
112
}
113
114
static inline void debug_dma_alloc_pages(struct device *dev, struct page *page,
115
size_t size, int direction,
116
dma_addr_t dma_addr,
117
unsigned long attrs)
118
{
119
}
120
121
static inline void debug_dma_free_pages(struct device *dev, struct page *page,
122
size_t size, int direction,
123
dma_addr_t dma_addr)
124
{
125
}
126
#endif /* CONFIG_DMA_API_DEBUG */
127
#endif /* _KERNEL_DMA_DEBUG_H */
128
129