Lines Matching +full:iommu +full:- +full:map
1 /* SPDX-License-Identifier: GPL-2.0 */
6 #include <linux/iommu.h>
9 * Public API for use by IOMMU drivers
22 * struct iommu_flush_ops - IOMMU callbacks for TLB and page table management.
50 * struct io_pgtable_cfg - Configuration data for a set of page tables.
53 * action by the low-level page table allocator.
59 * by the IOMMU are coherent with the CPU caches.
68 * even in non-secure state where they should normally be ignored.
71 * IOMMU_NOEXEC flags and map everything with full access, for
73 * format, and/or requires some format-specific default value.
104 /* Low-level data specific to the table format */
147 * struct io_pgtable_ops - Page table manipulation API for IOMMU drivers.
149 * @map: Map a physically contiguous memory region.
153 * These functions map directly onto the iommu_ops member functions with
157 int (*map)(struct io_pgtable_ops *ops, unsigned long iova, member
166 * alloc_io_pgtable_ops() - Allocate a page table allocator for use by an IOMMU.
172 * @cookie: An opaque token provided by the IOMMU driver and passed back to
173 * the callback routines in cfg->tlb.
180 * free_io_pgtable_ops() - Free an io_pgtable_ops structure. The caller
194 * struct io_pgtable - Internal structure describing a set of page tables.
197 * @cookie: An opaque token provided by the IOMMU driver and passed back to
213 iop->cfg.tlb->tlb_flush_all(iop->cookie); in io_pgtable_tlb_flush_all()
220 iop->cfg.tlb->tlb_flush_walk(iova, size, granule, iop->cookie); in io_pgtable_tlb_flush_walk()
227 iop->cfg.tlb->tlb_flush_leaf(iova, size, granule, iop->cookie); in io_pgtable_tlb_flush_leaf()
235 if (iop->cfg.tlb->tlb_add_page) in io_pgtable_tlb_add_page()
236 iop->cfg.tlb->tlb_add_page(gather, iova, granule, iop->cookie); in io_pgtable_tlb_add_page()
240 * struct io_pgtable_init_fns - Alloc/free a set of page tables for a