/linux-2.6.39/drivers/pci/ |
D | iova.c | 39 struct iova *curr_iova = in __get_cached_rbnode() 40 container_of(iovad->cached32_node, struct iova, node); in __get_cached_rbnode() 48 unsigned long limit_pfn, struct iova *new) in __cached_rbnode_insert_update() 56 __cached_rbnode_delete_update(struct iova_domain *iovad, struct iova *free) in __cached_rbnode_delete_update() 58 struct iova *cached_iova; in __cached_rbnode_delete_update() 64 cached_iova = container_of(curr, struct iova, node); in __cached_rbnode_delete_update() 87 struct iova *new, bool size_aligned) in __alloc_and_insert_iova_range() 100 struct iova *curr_iova = container_of(curr, struct iova, node); in __alloc_and_insert_iova_range() 146 struct iova *this = container_of(*entry, in __alloc_and_insert_iova_range() 147 struct iova, node); in __alloc_and_insert_iova_range() [all …]
|
D | intel-iommu.c | 363 struct iova *iova[HIGH_WATER_MARK]; member 469 struct iova *alloc_iova_mem(void) in alloc_iova_mem() 474 void free_iova_mem(struct iova *iova) in free_iova_mem() argument 476 kmem_cache_free(iommu_iova_cache, iova); in free_iova_mem() 1305 struct iova *iova; in dmar_init_reserved_ranges() local 1314 iova = reserve_iova(&reserved_iova_list, IOVA_PFN(IOAPIC_RANGE_START), in dmar_init_reserved_ranges() 1316 if (!iova) { in dmar_init_reserved_ranges() 1329 iova = reserve_iova(&reserved_iova_list, in dmar_init_reserved_ranges() 1332 if (!iova) { in dmar_init_reserved_ranges() 2442 static struct iova *intel_alloc_iova(struct device *dev, in intel_alloc_iova() [all …]
|
D | Makefile | 33 obj-$(CONFIG_DMAR) += dmar.o iova.o intel-iommu.o
|
/linux-2.6.39/include/linux/ |
D | iova.h | 23 struct iova { struct 37 struct iova *alloc_iova_mem(void); 38 void free_iova_mem(struct iova *iova); 40 void __free_iova(struct iova_domain *iovad, struct iova *iova); 41 struct iova *alloc_iova(struct iova_domain *iovad, unsigned long size, 44 struct iova *reserve_iova(struct iova_domain *iovad, unsigned long pfn_lo, 48 struct iova *find_iova(struct iova_domain *iovad, unsigned long pfn);
|
D | iommu.h | 40 int (*map)(struct iommu_domain *domain, unsigned long iova, 42 int (*unmap)(struct iommu_domain *domain, unsigned long iova, 45 unsigned long iova); 60 extern int iommu_map(struct iommu_domain *domain, unsigned long iova, 62 extern int iommu_unmap(struct iommu_domain *domain, unsigned long iova, 65 unsigned long iova); 100 static inline int iommu_map(struct iommu_domain *domain, unsigned long iova, in iommu_map() argument 106 static inline int iommu_unmap(struct iommu_domain *domain, unsigned long iova, in iommu_unmap() argument 113 unsigned long iova) in iommu_iova_to_phys() argument
|
/linux-2.6.39/drivers/base/ |
D | iommu.c | 84 unsigned long iova) in iommu_iova_to_phys() argument 86 return iommu_ops->iova_to_phys(domain, iova); in iommu_iova_to_phys() 97 int iommu_map(struct iommu_domain *domain, unsigned long iova, in iommu_map() argument 106 BUG_ON((iova | paddr) & invalid_mask); in iommu_map() 108 return iommu_ops->map(domain, iova, paddr, gfp_order, prot); in iommu_map() 112 int iommu_unmap(struct iommu_domain *domain, unsigned long iova, int gfp_order) in iommu_unmap() argument 120 BUG_ON(iova & invalid_mask); in iommu_unmap() 122 return iommu_ops->unmap(domain, iova, gfp_order); in iommu_unmap()
|
/linux-2.6.39/arch/ia64/hp/common/ |
D | sba_iommu.c | 223 dma_addr_t iova; member 436 #define SBA_IOVP(ioc,iova) ((iova) & ~(ioc->ibase)) argument 669 sba_mark_invalid(ioc, d->iova, d->size); in sba_alloc_range() 670 sba_free_range(ioc, d->iova, d->size); in sba_alloc_range() 729 sba_free_range(struct ioc *ioc, dma_addr_t iova, size_t size) in sba_free_range() argument 731 unsigned long iovp = SBA_IOVP(ioc, iova); in sba_free_range() 755 DBG_RES("%s( ,%x,%x) %x/%lx %x %p %lx\n", __func__, (uint) iova, size, in sba_free_range() 847 sba_mark_invalid(struct ioc *ioc, dma_addr_t iova, size_t byte_cnt) in sba_mark_invalid() argument 849 u32 iovp = (u32) SBA_IOVP(ioc,iova); in sba_mark_invalid() 1016 sba_mark_clean(struct ioc *ioc, dma_addr_t iova, size_t size) in sba_mark_clean() argument [all …]
|
/linux-2.6.39/drivers/infiniband/hw/ipath/ |
D | ipath_mr.c | 148 mr->mr.iova = *iova_start; in ipath_reg_phys_mr() 218 mr->mr.iova = virt_addr; in ipath_reg_user_mr() 322 fmr->mr.iova = 0; in ipath_alloc_fmr() 353 int list_len, u64 iova) in ipath_map_phys_fmr() argument 368 fmr->mr.user_base = iova; in ipath_map_phys_fmr() 369 fmr->mr.iova = iova; in ipath_map_phys_fmr() 406 fmr->mr.iova = 0; in ipath_unmap_fmr()
|
D | ipath_keys.c | 239 off = vaddr - mr->iova; in ipath_rkey_ok() 240 if (unlikely(vaddr < mr->iova || off + len > mr->length || in ipath_rkey_ok()
|
D | ipath_verbs.h | 244 u64 iova; /* IB start address of this region */ member 836 int list_len, u64 iova);
|
/linux-2.6.39/drivers/infiniband/hw/qib/ |
D | qib_mr.c | 159 mr->mr.iova = *iova_start; in qib_reg_phys_mr() 228 mr->mr.iova = virt_addr; in qib_reg_user_mr() 307 mr->mr.iova = 0; in qib_alloc_fast_reg_mr() 390 fmr->mr.iova = 0; in qib_alloc_fmr() 422 int list_len, u64 iova) in qib_map_phys_fmr() argument 440 fmr->mr.user_base = iova; in qib_map_phys_fmr() 441 fmr->mr.iova = iova; in qib_map_phys_fmr() 477 fmr->mr.iova = 0; in qib_unmap_fmr()
|
D | qib_keys.c | 264 off = vaddr - mr->iova; in qib_rkey_ok() 265 if (unlikely(vaddr < mr->iova || off + len > mr->length || in qib_rkey_ok() 340 mr->iova = wr->wr.fast_reg.iova_start; in qib_fast_reg_mr()
|
/linux-2.6.39/arch/parisc/include/asm/ |
D | dma-mapping.h | 11 void *(*alloc_consistent)(struct device *dev, size_t size, dma_addr_t *iova, gfp_t flag); 12 void *(*alloc_noncoherent)(struct device *dev, size_t size, dma_addr_t *iova, gfp_t flag); 13 void (*free_consistent)(struct device *dev, size_t size, void *vaddr, dma_addr_t iova); 15 …void (*unmap_single)(struct device *dev, dma_addr_t iova, size_t size, enum dma_data_direction dir… 18 …void (*dma_sync_single_for_cpu)(struct device *dev, dma_addr_t iova, unsigned long offset, size_t … 19 …void (*dma_sync_single_for_device)(struct device *dev, dma_addr_t iova, unsigned long offset, size…
|
D | ropes.h | 49 dma_addr_t iova; member
|
/linux-2.6.39/drivers/parisc/ |
D | sba_iommu.c | 305 #define SBA_IOVP(ioc,iova) ((iova) & (ioc)->iovp_mask) argument 309 #define SBA_IOVP(ioc,iova) (iova) argument 487 sba_free_range(struct ioc *ioc, dma_addr_t iova, size_t size) in sba_free_range() argument 489 unsigned long iovp = SBA_IOVP(ioc, iova); in sba_free_range() 500 __func__, (uint) iova, size, in sba_free_range() 608 sba_mark_invalid(struct ioc *ioc, dma_addr_t iova, size_t byte_cnt) in sba_mark_invalid() argument 610 u32 iovp = (u32) SBA_IOVP(ioc,iova); in sba_mark_invalid() 791 sba_unmap_single(struct device *dev, dma_addr_t iova, size_t size, in sba_unmap_single() argument 801 DBG_RUN("%s() iovp 0x%lx/%x\n", __func__, (long) iova, size); in sba_unmap_single() 804 offset = iova & ~IOVP_MASK; in sba_unmap_single() [all …]
|
D | ccio-dma.c | 283 #define CCIO_IOVP(iova) ((iova) & IOVP_MASK) argument 431 ccio_free_range(struct ioc *ioc, dma_addr_t iova, unsigned long pages_mapped) in ccio_free_range() argument 433 unsigned long iovp = CCIO_IOVP(iova); in ccio_free_range() 663 ccio_mark_invalid(struct ioc *ioc, dma_addr_t iova, size_t byte_cnt) in ccio_mark_invalid() argument 665 u32 iovp = (u32)CCIO_IOVP(iova); in ccio_mark_invalid() 693 ccio_clear_io_tlb(ioc, CCIO_IOVP(iova), saved_byte_cnt); in ccio_mark_invalid() 800 ccio_unmap_single(struct device *dev, dma_addr_t iova, size_t size, in ccio_unmap_single() argument 805 dma_addr_t offset = iova & ~IOVP_MASK; in ccio_unmap_single() 811 __func__, (long)iova, size); in ccio_unmap_single() 813 iova ^= offset; /* clear offset bits */ in ccio_unmap_single() [all …]
|
/linux-2.6.39/drivers/net/mlx4/ |
D | mr.c | 266 int mlx4_mr_alloc(struct mlx4_dev *dev, u32 pd, u64 iova, u64 size, u32 access, in mlx4_mr_alloc() argument 277 mr->iova = iova; in mlx4_mr_alloc() 336 mpt_entry->start = cpu_to_be64(mr->iova); in mlx4_mr_enable() 506 int npages, u64 iova) in mlx4_check_fmr() argument 516 if (iova & page_mask) in mlx4_check_fmr() 533 int npages, u64 iova, u32 *lkey, u32 *rkey) in mlx4_map_phys_fmr() argument 538 err = mlx4_check_fmr(fmr, page_list, npages, iova); in mlx4_map_phys_fmr() 565 fmr->mpt->start = cpu_to_be64(iova); in mlx4_map_phys_fmr()
|
/linux-2.6.39/drivers/infiniband/hw/mthca/ |
D | mthca_mr.c | 437 u64 iova, u64 total_size, u32 access, struct mthca_mr *mr) in mthca_mr_alloc() argument 477 mpt_entry->start = cpu_to_be64(iova); in mthca_mr_alloc() 535 int list_len, u64 iova, u64 total_size, in mthca_mr_alloc_phys() argument 550 err = mthca_mr_alloc(dev, pd, buffer_size_shift, iova, in mthca_mr_alloc_phys() 717 int list_len, u64 iova) in mthca_check_fmr() argument 727 if (iova & page_mask) in mthca_check_fmr() 745 int list_len, u64 iova) in mthca_tavor_map_phys_fmr() argument 753 err = mthca_check_fmr(fmr, page_list, list_len, iova); in mthca_tavor_map_phys_fmr() 773 mpt_entry.start = cpu_to_be64(iova); in mthca_tavor_map_phys_fmr() 786 int list_len, u64 iova) in mthca_arbel_map_phys_fmr() argument [all …]
|
D | mthca_dev.h | 472 u64 iova, u64 total_size, u32 access, struct mthca_mr *mr); 477 int list_len, u64 iova, u64 total_size, 484 int list_len, u64 iova); 487 int list_len, u64 iova);
|
/linux-2.6.39/include/linux/mlx4/ |
D | device.h | 332 u64 iova; member 500 int mlx4_mr_alloc(struct mlx4_dev *dev, u32 pd, u64 iova, u64 size, u32 access, 556 int npages, u64 iova, u32 *lkey, u32 *rkey);
|
/linux-2.6.39/drivers/infiniband/hw/mlx4/ |
D | mr.c | 303 int npages, u64 iova) in mlx4_ib_map_phys_fmr() argument 308 return mlx4_map_phys_fmr(dev->dev, &ifmr->mfmr, page_list, npages, iova, in mlx4_ib_map_phys_fmr()
|
D | mlx4_ib.h | 330 u64 iova);
|
/linux-2.6.39/arch/arm/plat-omap/include/plat/ |
D | iommu.h | 167 extern size_t iopgtable_clear_entry(struct iommu *obj, u32 iova);
|
/linux-2.6.39/arch/x86/kernel/ |
D | amd_iommu.c | 2513 static int amd_iommu_map(struct iommu_domain *dom, unsigned long iova, in amd_iommu_map() argument 2527 ret = iommu_map_page(domain, iova, paddr, prot, page_size); in amd_iommu_map() 2533 static int amd_iommu_unmap(struct iommu_domain *dom, unsigned long iova, in amd_iommu_unmap() argument 2542 unmap_size = iommu_unmap_page(domain, iova, page_size); in amd_iommu_unmap() 2551 unsigned long iova) in amd_iommu_iova_to_phys() argument 2558 pte = fetch_pte(domain, iova); in amd_iommu_iova_to_phys() 2569 paddr = (__pte & ~offset_mask) | (iova & offset_mask); in amd_iommu_iova_to_phys()
|
/linux-2.6.39/drivers/infiniband/hw/ehca/ |
D | ehca_iverbs.h | 110 u64 *page_list, int list_len, u64 iova);
|