kernel/dma/debug.h

Source file repositories/reference/linux-study-clean/kernel/dma/debug.h

File Facts

System
Linux kernel
Corpus path
kernel/dma/debug.h
Extension
.h
Size
3764 bytes
Lines
129
Domain
Core OS
Bucket
Scheduler, Processes, Timers, Sync, And Syscalls
Inferred role
Core OS: implementation source
Status
source implementation candidate

Why This File Exists

Core operating-system implementation surface: boot, tasks, memory, VFS, syscall-facing interfaces, synchronization, credentials, and isolation.

Dependency Surface

Detected Declarations

Annotated Snippet

#ifndef _KERNEL_DMA_DEBUG_H
#define _KERNEL_DMA_DEBUG_H

#ifdef CONFIG_DMA_API_DEBUG
extern void debug_dma_map_phys(struct device *dev, phys_addr_t phys,
			       size_t size, int direction, dma_addr_t dma_addr,
			       unsigned long attrs);

extern void debug_dma_unmap_phys(struct device *dev, dma_addr_t addr,
				 size_t size, int direction,
				 unsigned long attrs);

extern void debug_dma_map_sg(struct device *dev, struct scatterlist *sg,
			     int nents, int mapped_ents, int direction,
			     unsigned long attrs);

extern void debug_dma_unmap_sg(struct device *dev, struct scatterlist *sglist,
			       int nelems, int dir, unsigned long attrs);

extern void debug_dma_alloc_coherent(struct device *dev, size_t size,
				     dma_addr_t dma_addr, void *virt,
				     unsigned long attrs);

extern void debug_dma_free_coherent(struct device *dev, size_t size, void *virt,
				    dma_addr_t addr, unsigned long attrs);

extern void debug_dma_sync_single_for_cpu(struct device *dev,
					  dma_addr_t dma_handle, size_t size,
					  int direction);

extern void debug_dma_sync_single_for_device(struct device *dev,
					     dma_addr_t dma_handle,
					     size_t size, int direction);

extern void debug_dma_sync_sg_for_cpu(struct device *dev,
				      struct scatterlist *sg,
				      int nelems, int direction);

extern void debug_dma_sync_sg_for_device(struct device *dev,
					 struct scatterlist *sg,
					 int nelems, int direction);
extern void debug_dma_alloc_pages(struct device *dev, struct page *page,
				  size_t size, int direction,
				  dma_addr_t dma_addr);
extern void debug_dma_free_pages(struct device *dev, struct page *page,
				 size_t size, int direction,
				 dma_addr_t dma_addr);
#else /* CONFIG_DMA_API_DEBUG */
static inline void debug_dma_map_phys(struct device *dev, phys_addr_t phys,
				      size_t size, int direction,
				      dma_addr_t dma_addr, unsigned long attrs)
{
}

static inline void debug_dma_unmap_phys(struct device *dev, dma_addr_t addr,
					size_t size, int direction,
					unsigned long attrs)
{
}

static inline void debug_dma_map_sg(struct device *dev, struct scatterlist *sg,
				    int nents, int mapped_ents, int direction,
				    unsigned long attrs)
{
}

static inline void debug_dma_unmap_sg(struct device *dev,
				      struct scatterlist *sglist, int nelems,
				      int dir, unsigned long attrs)
{
}

static inline void debug_dma_alloc_coherent(struct device *dev, size_t size,
					    dma_addr_t dma_addr, void *virt,
					    unsigned long attrs)
{
}

static inline void debug_dma_free_coherent(struct device *dev, size_t size,
					   void *virt, dma_addr_t addr,
					   unsigned long attrs)
{
}

static inline void debug_dma_sync_single_for_cpu(struct device *dev,
						 dma_addr_t dma_handle,
						 size_t size, int direction)
{
}

Annotation

Implementation Notes