Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Macros | Enumerations | Functions
swiotlb-xen.c File Reference
#include <linux/bootmem.h>
#include <linux/dma-mapping.h>
#include <linux/export.h>
#include <xen/swiotlb-xen.h>
#include <xen/page.h>
#include <xen/xen-ops.h>
#include <xen/hvc-console.h>

Go to the source code of this file.

Macros

#define SLABS_PER_PAGE   (1 << (PAGE_SHIFT - IO_TLB_SHIFT))
 
#define IO_TLB_MIN_SLABS   ((1<<20) >> IO_TLB_SHIFT)
 

Enumerations

enum  xen_swiotlb_err { XEN_SWIOTLB_UNKNOWN = 0, XEN_SWIOTLB_ENOMEM, XEN_SWIOTLB_EFIXUP }
 

Functions

int __ref xen_swiotlb_init (int verbose, bool early)
 
voidxen_swiotlb_alloc_coherent (struct device *hwdev, size_t size, dma_addr_t *dma_handle, gfp_t flags, struct dma_attrs *attrs)
 
 EXPORT_SYMBOL_GPL (xen_swiotlb_alloc_coherent)
 
void xen_swiotlb_free_coherent (struct device *hwdev, size_t size, void *vaddr, dma_addr_t dev_addr, struct dma_attrs *attrs)
 
 EXPORT_SYMBOL_GPL (xen_swiotlb_free_coherent)
 
dma_addr_t xen_swiotlb_map_page (struct device *dev, struct page *page, unsigned long offset, size_t size, enum dma_data_direction dir, struct dma_attrs *attrs)
 
 EXPORT_SYMBOL_GPL (xen_swiotlb_map_page)
 
void xen_swiotlb_unmap_page (struct device *hwdev, dma_addr_t dev_addr, size_t size, enum dma_data_direction dir, struct dma_attrs *attrs)
 
 EXPORT_SYMBOL_GPL (xen_swiotlb_unmap_page)
 
void xen_swiotlb_sync_single_for_cpu (struct device *hwdev, dma_addr_t dev_addr, size_t size, enum dma_data_direction dir)
 
 EXPORT_SYMBOL_GPL (xen_swiotlb_sync_single_for_cpu)
 
void xen_swiotlb_sync_single_for_device (struct device *hwdev, dma_addr_t dev_addr, size_t size, enum dma_data_direction dir)
 
 EXPORT_SYMBOL_GPL (xen_swiotlb_sync_single_for_device)
 
int xen_swiotlb_map_sg_attrs (struct device *hwdev, struct scatterlist *sgl, int nelems, enum dma_data_direction dir, struct dma_attrs *attrs)
 
 EXPORT_SYMBOL_GPL (xen_swiotlb_map_sg_attrs)
 
void xen_swiotlb_unmap_sg_attrs (struct device *hwdev, struct scatterlist *sgl, int nelems, enum dma_data_direction dir, struct dma_attrs *attrs)
 
 EXPORT_SYMBOL_GPL (xen_swiotlb_unmap_sg_attrs)
 
void xen_swiotlb_sync_sg_for_cpu (struct device *hwdev, struct scatterlist *sg, int nelems, enum dma_data_direction dir)
 
 EXPORT_SYMBOL_GPL (xen_swiotlb_sync_sg_for_cpu)
 
void xen_swiotlb_sync_sg_for_device (struct device *hwdev, struct scatterlist *sg, int nelems, enum dma_data_direction dir)
 
 EXPORT_SYMBOL_GPL (xen_swiotlb_sync_sg_for_device)
 
int xen_swiotlb_dma_mapping_error (struct device *hwdev, dma_addr_t dma_addr)
 
 EXPORT_SYMBOL_GPL (xen_swiotlb_dma_mapping_error)
 
int xen_swiotlb_dma_supported (struct device *hwdev, u64 mask)
 
 EXPORT_SYMBOL_GPL (xen_swiotlb_dma_supported)
 

Macro Definition Documentation

#define IO_TLB_MIN_SLABS   ((1<<20) >> IO_TLB_SHIFT)
#define SLABS_PER_PAGE   (1 << (PAGE_SHIFT - IO_TLB_SHIFT))

Enumeration Type Documentation

Enumerator:
XEN_SWIOTLB_UNKNOWN 
XEN_SWIOTLB_ENOMEM 
XEN_SWIOTLB_EFIXUP 

Definition at line 158 of file swiotlb-xen.c.

Function Documentation

EXPORT_SYMBOL_GPL ( xen_swiotlb_alloc_coherent  )
EXPORT_SYMBOL_GPL ( xen_swiotlb_free_coherent  )
EXPORT_SYMBOL_GPL ( xen_swiotlb_map_page  )
EXPORT_SYMBOL_GPL ( xen_swiotlb_unmap_page  )
EXPORT_SYMBOL_GPL ( xen_swiotlb_sync_single_for_cpu  )
EXPORT_SYMBOL_GPL ( xen_swiotlb_sync_single_for_device  )
EXPORT_SYMBOL_GPL ( xen_swiotlb_map_sg_attrs  )
EXPORT_SYMBOL_GPL ( xen_swiotlb_unmap_sg_attrs  )
EXPORT_SYMBOL_GPL ( xen_swiotlb_sync_sg_for_cpu  )
EXPORT_SYMBOL_GPL ( xen_swiotlb_sync_sg_for_device  )
EXPORT_SYMBOL_GPL ( xen_swiotlb_dma_mapping_error  )
EXPORT_SYMBOL_GPL ( xen_swiotlb_dma_supported  )
void* xen_swiotlb_alloc_coherent ( struct device hwdev,
size_t  size,
dma_addr_t dma_handle,
gfp_t  flags,
struct dma_attrs attrs 
)

Definition at line 255 of file swiotlb-xen.c.

int xen_swiotlb_dma_mapping_error ( struct device hwdev,
dma_addr_t  dma_addr 
)

Definition at line 575 of file swiotlb-xen.c.

int xen_swiotlb_dma_supported ( struct device hwdev,
u64  mask 
)

Definition at line 588 of file swiotlb-xen.c.

void xen_swiotlb_free_coherent ( struct device hwdev,
size_t  size,
void vaddr,
dma_addr_t  dev_addr,
struct dma_attrs attrs 
)

Definition at line 305 of file swiotlb-xen.c.

int __ref xen_swiotlb_init ( int  verbose,
bool  early 
)

Definition at line 179 of file swiotlb-xen.c.

dma_addr_t xen_swiotlb_map_page ( struct device dev,
struct page page,
unsigned long  offset,
size_t  size,
enum dma_data_direction  dir,
struct dma_attrs attrs 
)

Definition at line 336 of file swiotlb-xen.c.

int xen_swiotlb_map_sg_attrs ( struct device hwdev,
struct scatterlist sgl,
int  nelems,
enum dma_data_direction  dir,
struct dma_attrs attrs 
)

Definition at line 481 of file swiotlb-xen.c.

void xen_swiotlb_sync_sg_for_cpu ( struct device hwdev,
struct scatterlist sg,
int  nelems,
enum dma_data_direction  dir 
)

Definition at line 559 of file swiotlb-xen.c.

void xen_swiotlb_sync_sg_for_device ( struct device hwdev,
struct scatterlist sg,
int  nelems,
enum dma_data_direction  dir 
)

Definition at line 567 of file swiotlb-xen.c.

void xen_swiotlb_sync_single_for_cpu ( struct device hwdev,
dma_addr_t  dev_addr,
size_t  size,
enum dma_data_direction  dir 
)

Definition at line 449 of file swiotlb-xen.c.

void xen_swiotlb_sync_single_for_device ( struct device hwdev,
dma_addr_t  dev_addr,
size_t  size,
enum dma_data_direction  dir 
)

Definition at line 457 of file swiotlb-xen.c.

void xen_swiotlb_unmap_page ( struct device hwdev,
dma_addr_t  dev_addr,
size_t  size,
enum dma_data_direction  dir,
struct dma_attrs attrs 
)

Definition at line 408 of file swiotlb-xen.c.

void xen_swiotlb_unmap_sg_attrs ( struct device hwdev,
struct scatterlist sgl,
int  nelems,
enum dma_data_direction  dir,
struct dma_attrs attrs 
)

Definition at line 523 of file swiotlb-xen.c.