Lines Matching defs:io_pagetable
30 * domains and permits sharing of PFNs between io_pagetable instances. This
33 * domains. The io_pagetable holds an interval tree of iopt_areas which point
38 struct io_pagetable {
54 void iopt_init_table(struct io_pagetable *iopt);
55 void iopt_destroy_table(struct io_pagetable *iopt);
56 int iopt_get_pages(struct io_pagetable *iopt, unsigned long iova,
62 int iopt_map_user_pages(struct iommufd_ctx *ictx, struct io_pagetable *iopt,
66 int iopt_map_pages(struct io_pagetable *iopt, struct list_head *pages_list,
69 int iopt_unmap_iova(struct io_pagetable *iopt, unsigned long iova,
71 int iopt_unmap_all(struct io_pagetable *iopt, unsigned long *unmapped);
73 void iommufd_access_notify_unmap(struct io_pagetable *iopt, unsigned long iova,
75 int iopt_table_add_domain(struct io_pagetable *iopt,
77 void iopt_table_remove_domain(struct io_pagetable *iopt,
79 int iopt_table_enforce_dev_resv_regions(struct io_pagetable *iopt,
82 int iopt_set_allow_iova(struct io_pagetable *iopt,
84 int iopt_reserve_iova(struct io_pagetable *iopt, unsigned long start,
86 void iopt_remove_reserved_iova(struct io_pagetable *iopt, void *owner);
87 int iopt_cut_iova(struct io_pagetable *iopt, unsigned long *iovas,
89 void iopt_enable_large_pages(struct io_pagetable *iopt);
90 int iopt_disable_large_pages(struct io_pagetable *iopt);
185 * io_pagetable object. It is a user controlled mapping of IOVA -> PFNs. The
199 struct io_pagetable iopt;
313 int iopt_add_access(struct io_pagetable *iopt, struct iommufd_access *access);
314 void iopt_remove_access(struct io_pagetable *iopt,