Lines Matching defs:io_pagetable

34  * domains and permits sharing of PFNs between io_pagetable instances. This
37 * domains. The io_pagetable holds an interval tree of iopt_areas which point
42 struct io_pagetable {
58 void iopt_init_table(struct io_pagetable *iopt);
59 void iopt_destroy_table(struct io_pagetable *iopt);
60 int iopt_get_pages(struct io_pagetable *iopt, unsigned long iova,
66 int iopt_map_user_pages(struct iommufd_ctx *ictx, struct io_pagetable *iopt,
70 int iopt_map_pages(struct io_pagetable *iopt, struct list_head *pages_list,
73 int iopt_unmap_iova(struct io_pagetable *iopt, unsigned long iova,
75 int iopt_unmap_all(struct io_pagetable *iopt, unsigned long *unmapped);
77 int iopt_read_and_clear_dirty_data(struct io_pagetable *iopt,
81 int iopt_set_dirty_tracking(struct io_pagetable *iopt,
84 void iommufd_access_notify_unmap(struct io_pagetable *iopt, unsigned long iova,
86 int iopt_table_add_domain(struct io_pagetable *iopt,
88 void iopt_table_remove_domain(struct io_pagetable *iopt,
90 int iopt_table_enforce_dev_resv_regions(struct io_pagetable *iopt,
93 int iopt_set_allow_iova(struct io_pagetable *iopt,
95 int iopt_reserve_iova(struct io_pagetable *iopt, unsigned long start,
97 void iopt_remove_reserved_iova(struct io_pagetable *iopt, void *owner);
98 int iopt_cut_iova(struct io_pagetable *iopt, unsigned long *iovas,
100 void iopt_enable_large_pages(struct io_pagetable *iopt);
101 int iopt_disable_large_pages(struct io_pagetable *iopt);
243 * io_pagetable object. It is a user controlled mapping of IOVA -> PFNs. The
257 struct io_pagetable iopt;
283 int iommufd_check_iova_range(struct io_pagetable *iopt,
423 int iopt_add_access(struct io_pagetable *iopt, struct iommufd_access *access);
424 void iopt_remove_access(struct io_pagetable *iopt,