XenevaOS
Loading...
Searching...
No Matches
Macros | Functions
dma-mapping.h File Reference
#include <linux/cache.h>
#include <linux/kernel.h>
#include <linux/dma-direction.h>
#include <linux/scatterlist.h>
Include dependency graph for dma-mapping.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Macros

#define DMA_BIT_MASK(n)   (((n) == 64) ? ~0ULL : ((1ULL << (n)) - 1))
 
#define ____dma_from_device_aligned
 
#define __dma_from_device_group_begin(GROUP)    __cacheline_group_begin(GROUP) ____dma_from_device_aligned
 
#define __dma_from_device_group_end(GROUP)    __cacheline_group_end(GROUP) ____dma_from_device_aligned
 
#define DMA_ATTR_WRITE_BARRIER   (1UL << 0)
 
#define DMA_ATTR_WEAK_ORDERING   (1UL << 1)
 
#define DMA_ATTR_WRITE_COMBINE   (1UL << 2)
 
#define DMA_ATTR_NON_CONSISTENT   (1UL << 3)
 
#define DMA_ATTR_NO_KERNEL_MAPPING   (1UL << 4)
 
#define DMA_ATTR_SKIP_CPU_SYNC   (1UL << 5)
 
#define DMA_ATTR_FORCE_CONTIGUOUS   (1UL << 6)
 
#define DMA_ATTR_ALLOC_SINGLE_PAGES   (1UL << 7)
 
#define DMA_ATTR_NO_WARN   (1UL << 8)
 
#define DMA_ATTR_MERGEABLE   (1UL << 9)
 
#define DMA_ATTR_CPU_MAPPABLE   (1UL << 10)
 
#define DMA_ATTR_FORCE_DMA32   (1UL << 11)
 
#define DMA_ATTR_ALLOC_PAGES   (1UL << 12)
 

Functions

void * dma_alloc_coherent (struct device *dev, size_t size, dma_addr_t *dma_handle, gfp_t gfp)
 
void dma_free_coherent (struct device *dev, size_t size, void *vaddr, dma_addr_t handle)
 
int dma_map_sg (struct device *dev, struct scatterlist *sg, int nents, enum dma_data_direction dir)
 
void dma_unmap_sg (struct device *dev, struct scatterlist *sg, int nents, enum dma_data_direction dir)
 
int dma_coerce_mask_and_coherent (struct device *dev, u64 mask)
 
size_t dma_max_mapping_size (struct device *dev)
 

Macro Definition Documentation

◆ ____dma_from_device_aligned

#define ____dma_from_device_aligned

◆ __dma_from_device_group_begin

#define __dma_from_device_group_begin (   GROUP)     __cacheline_group_begin(GROUP) ____dma_from_device_aligned

◆ __dma_from_device_group_end

#define __dma_from_device_group_end (   GROUP)     __cacheline_group_end(GROUP) ____dma_from_device_aligned

◆ DMA_ATTR_ALLOC_PAGES

#define DMA_ATTR_ALLOC_PAGES   (1UL << 12)

◆ DMA_ATTR_ALLOC_SINGLE_PAGES

#define DMA_ATTR_ALLOC_SINGLE_PAGES   (1UL << 7)

◆ DMA_ATTR_CPU_MAPPABLE

#define DMA_ATTR_CPU_MAPPABLE   (1UL << 10)

◆ DMA_ATTR_FORCE_CONTIGUOUS

#define DMA_ATTR_FORCE_CONTIGUOUS   (1UL << 6)

◆ DMA_ATTR_FORCE_DMA32

#define DMA_ATTR_FORCE_DMA32   (1UL << 11)

◆ DMA_ATTR_MERGEABLE

#define DMA_ATTR_MERGEABLE   (1UL << 9)

◆ DMA_ATTR_NO_KERNEL_MAPPING

#define DMA_ATTR_NO_KERNEL_MAPPING   (1UL << 4)

◆ DMA_ATTR_NO_WARN

#define DMA_ATTR_NO_WARN   (1UL << 8)

◆ DMA_ATTR_NON_CONSISTENT

#define DMA_ATTR_NON_CONSISTENT   (1UL << 3)

◆ DMA_ATTR_SKIP_CPU_SYNC

#define DMA_ATTR_SKIP_CPU_SYNC   (1UL << 5)

◆ DMA_ATTR_WEAK_ORDERING

#define DMA_ATTR_WEAK_ORDERING   (1UL << 1)

◆ DMA_ATTR_WRITE_BARRIER

#define DMA_ATTR_WRITE_BARRIER   (1UL << 0)

◆ DMA_ATTR_WRITE_COMBINE

#define DMA_ATTR_WRITE_COMBINE   (1UL << 2)

◆ DMA_BIT_MASK

#define DMA_BIT_MASK (   n)    (((n) == 64) ? ~0ULL : ((1ULL << (n)) - 1))

Function Documentation

◆ dma_alloc_coherent()

void * dma_alloc_coherent ( struct device *  dev,
size_t  size,
dma_addr_t *  dma_handle,
gfp_t  gfp 
)

◆ dma_coerce_mask_and_coherent()

int dma_coerce_mask_and_coherent ( struct device *  dev,
u64  mask 
)

◆ dma_free_coherent()

void dma_free_coherent ( struct device *  dev,
size_t  size,
void *  vaddr,
dma_addr_t  handle 
)

◆ dma_map_sg()

int dma_map_sg ( struct device *  dev,
struct scatterlist *  sg,
int  nents,
enum dma_data_direction  dir 
)

◆ dma_max_mapping_size()

size_t dma_max_mapping_size ( struct device *  dev)

◆ dma_unmap_sg()

void dma_unmap_sg ( struct device *  dev,
struct scatterlist *  sg,
int  nents,
enum dma_data_direction  dir 
)