Lines Matching full:area
20 * populated in the page table. Each area is fully populated with pages.
25 * up or tearing down the area. When observed under the write side of the
26 * domain_rwsem a NULL pages must mean the area is still being setup and no
30 * for this area. It is locked by the pages->mutex. This simplifies the locking
45 /* How many bytes into the first page the area starts */
62 int iopt_area_fill_domains(struct iopt_area *area, struct iopt_pages *pages);
63 void iopt_area_unfill_domains(struct iopt_area *area, struct iopt_pages *pages);
65 int iopt_area_fill_domain(struct iopt_area *area, struct iommu_domain *domain);
66 void iopt_area_unfill_domain(struct iopt_area *area, struct iopt_pages *pages,
68 void iopt_area_unmap_domain(struct iopt_area *area,
71 static inline unsigned long iopt_area_index(struct iopt_area *area) in iopt_area_index() argument
73 return area->pages_node.start; in iopt_area_index()
76 static inline unsigned long iopt_area_last_index(struct iopt_area *area) in iopt_area_last_index() argument
78 return area->pages_node.last; in iopt_area_last_index()
81 static inline unsigned long iopt_area_iova(struct iopt_area *area) in iopt_area_iova() argument
83 return area->node.start; in iopt_area_iova()
86 static inline unsigned long iopt_area_last_iova(struct iopt_area *area) in iopt_area_last_iova() argument
88 return area->node.last; in iopt_area_last_iova()
91 static inline size_t iopt_area_length(struct iopt_area *area) in iopt_area_length() argument
93 return (area->node.last - area->node.start) + 1; in iopt_area_length()
101 static inline unsigned long iopt_area_start_byte(struct iopt_area *area, in iopt_area_start_byte() argument
105 WARN_ON(iova < iopt_area_iova(area) || in iopt_area_start_byte()
106 iova > iopt_area_last_iova(area)); in iopt_area_start_byte()
107 return (iova - iopt_area_iova(area)) + area->page_offset + in iopt_area_start_byte()
108 iopt_area_index(area) * PAGE_SIZE; in iopt_area_start_byte()
111 static inline unsigned long iopt_area_iova_to_index(struct iopt_area *area, in iopt_area_iova_to_index() argument
114 return iopt_area_start_byte(area, iova) / PAGE_SIZE; in iopt_area_iova_to_index()
143 __make_iopt_iter(area)
150 struct iopt_area *area; member
160 return iter->area && iter->last_iova <= iopt_area_last_iova(iter->area); in iopt_area_contig_done()
168 #define iopt_for_each_contig_area(iter, area, iopt, iova, last_iova) \ argument
169 for (area = iopt_area_contig_init(iter, iopt, iova, last_iova); area; \
170 area = iopt_area_contig_next(iter))
224 int iopt_area_add_access(struct iopt_area *area, unsigned long start,
227 void iopt_area_remove_access(struct iopt_area *area, unsigned long start,