dma-mapping_32.h 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. #ifndef _ASM_SPARC_DMA_MAPPING_H
  2. #define _ASM_SPARC_DMA_MAPPING_H
  3. #include <linux/types.h>
  4. struct device;
  5. struct scatterlist;
  6. struct page;
  7. #define DMA_ERROR_CODE (~(dma_addr_t)0x0)
  8. extern int dma_supported(struct device *dev, u64 mask);
  9. extern int dma_set_mask(struct device *dev, u64 dma_mask);
  10. extern void *dma_alloc_coherent(struct device *dev, size_t size,
  11. dma_addr_t *dma_handle, gfp_t flag);
  12. extern void dma_free_coherent(struct device *dev, size_t size,
  13. void *cpu_addr, dma_addr_t dma_handle);
  14. extern dma_addr_t dma_map_single(struct device *dev, void *cpu_addr,
  15. size_t size,
  16. enum dma_data_direction direction);
  17. extern void dma_unmap_single(struct device *dev, dma_addr_t dma_addr,
  18. size_t size,
  19. enum dma_data_direction direction);
  20. extern dma_addr_t dma_map_page(struct device *dev, struct page *page,
  21. unsigned long offset, size_t size,
  22. enum dma_data_direction direction);
  23. extern void dma_unmap_page(struct device *dev, dma_addr_t dma_address,
  24. size_t size, enum dma_data_direction direction);
  25. extern int dma_map_sg(struct device *dev, struct scatterlist *sg,
  26. int nents, enum dma_data_direction direction);
  27. extern void dma_unmap_sg(struct device *dev, struct scatterlist *sg,
  28. int nents, enum dma_data_direction direction);
  29. extern void dma_sync_single_for_cpu(struct device *dev, dma_addr_t dma_handle,
  30. size_t size,
  31. enum dma_data_direction direction);
  32. extern void dma_sync_single_for_device(struct device *dev,
  33. dma_addr_t dma_handle,
  34. size_t size,
  35. enum dma_data_direction direction);
  36. extern void dma_sync_single_range_for_cpu(struct device *dev,
  37. dma_addr_t dma_handle,
  38. unsigned long offset,
  39. size_t size,
  40. enum dma_data_direction direction);
  41. extern void dma_sync_single_range_for_device(struct device *dev,
  42. dma_addr_t dma_handle,
  43. unsigned long offset, size_t size,
  44. enum dma_data_direction direction);
  45. extern void dma_sync_sg_for_cpu(struct device *dev, struct scatterlist *sg,
  46. int nelems, enum dma_data_direction direction);
  47. extern void dma_sync_sg_for_device(struct device *dev,
  48. struct scatterlist *sg, int nelems,
  49. enum dma_data_direction direction);
  50. extern int dma_mapping_error(struct device *dev, dma_addr_t dma_addr);
  51. extern int dma_get_cache_alignment(void);
  52. #define dma_alloc_noncoherent dma_alloc_coherent
  53. #define dma_free_noncoherent dma_free_coherent
  54. #endif /* _ASM_SPARC_DMA_MAPPING_H */