Lines Matching refs:gather
456 static inline void iommu_iotlb_gather_init(struct iommu_iotlb_gather *gather) in iommu_iotlb_gather_init() argument
458 *gather = (struct iommu_iotlb_gather) { in iommu_iotlb_gather_init()
460 .freelist = LIST_HEAD_INIT(gather->freelist), in iommu_iotlb_gather_init()
571 bool iommu_iotlb_gather_is_disjoint(struct iommu_iotlb_gather *gather, in iommu_iotlb_gather_is_disjoint() argument
576 return gather->end != 0 && in iommu_iotlb_gather_is_disjoint()
577 (end + 1 < gather->start || start > gather->end + 1); in iommu_iotlb_gather_is_disjoint()
591 static inline void iommu_iotlb_gather_add_range(struct iommu_iotlb_gather *gather, in iommu_iotlb_gather_add_range() argument
596 if (gather->start > iova) in iommu_iotlb_gather_add_range()
597 gather->start = iova; in iommu_iotlb_gather_add_range()
598 if (gather->end < end) in iommu_iotlb_gather_add_range()
599 gather->end = end; in iommu_iotlb_gather_add_range()
614 struct iommu_iotlb_gather *gather, in iommu_iotlb_gather_add_page() argument
622 if ((gather->pgsize && gather->pgsize != size) || in iommu_iotlb_gather_add_page()
623 iommu_iotlb_gather_is_disjoint(gather, iova, size)) in iommu_iotlb_gather_add_page()
624 iommu_iotlb_sync(domain, gather); in iommu_iotlb_gather_add_page()
626 gather->pgsize = size; in iommu_iotlb_gather_add_page()
627 iommu_iotlb_gather_add_range(gather, iova, size); in iommu_iotlb_gather_add_page()
630 static inline bool iommu_iotlb_gather_queued(struct iommu_iotlb_gather *gather) in iommu_iotlb_gather_queued() argument
632 return gather && gather->queued; in iommu_iotlb_gather_queued()
958 static inline void iommu_iotlb_gather_init(struct iommu_iotlb_gather *gather) in iommu_iotlb_gather_init() argument
963 struct iommu_iotlb_gather *gather, in iommu_iotlb_gather_add_page() argument
968 static inline bool iommu_iotlb_gather_queued(struct iommu_iotlb_gather *gather) in iommu_iotlb_gather_queued() argument