truct device *dev, dma_addr_t dma_addr, size_t size, enum dma_data_direction direction); 5、有关scatter/gather的函数: int dma_map_sg(struct device *dev, struct scatterlist *sg, int nents, enum dma_data_direction direction); void dma_unmap_sg(struct device *dev, struct scatterlist *sg, int nhwentries, enum dma_data_direction direction); 6、非一致性映射(Noncoherent DMA mappings) void *dma_alloc_noncoherent(struct device *dev, size_t size, dma_addr_t *dma_handle, int flag); void dma_sync_single_range(struct device *dev, dma_addr_t dma_handle, unsigned long offset, size_t size, enum dma_data_direction direction); void dma_free_noncoherent(struct device *dev, size_t size, void *cpu_addr, dma_addr_t dma_handle); 7、DAC (double address cycle) int pci_dac_set_dma_mask(struct pci_dev *dev, u64 mask); void pci_dac_dma_sync_single(struct pci_dev *dev, dma64_addr_t dma_addr, size_t len, int direction);
|