Lines Matching refs:gather

400 static inline void iommu_iotlb_gather_init(struct iommu_iotlb_gather *gather)  in iommu_iotlb_gather_init()  argument
402 *gather = (struct iommu_iotlb_gather) { in iommu_iotlb_gather_init()
404 .freelist = LIST_HEAD_INIT(gather->freelist), in iommu_iotlb_gather_init()
530 bool iommu_iotlb_gather_is_disjoint(struct iommu_iotlb_gather *gather, in iommu_iotlb_gather_is_disjoint() argument
535 return gather->end != 0 && in iommu_iotlb_gather_is_disjoint()
536 (end + 1 < gather->start || start > gather->end + 1); in iommu_iotlb_gather_is_disjoint()
550 static inline void iommu_iotlb_gather_add_range(struct iommu_iotlb_gather *gather, in iommu_iotlb_gather_add_range() argument
555 if (gather->start > iova) in iommu_iotlb_gather_add_range()
556 gather->start = iova; in iommu_iotlb_gather_add_range()
557 if (gather->end < end) in iommu_iotlb_gather_add_range()
558 gather->end = end; in iommu_iotlb_gather_add_range()
573 struct iommu_iotlb_gather *gather, in iommu_iotlb_gather_add_page() argument
581 if ((gather->pgsize && gather->pgsize != size) || in iommu_iotlb_gather_add_page()
582 iommu_iotlb_gather_is_disjoint(gather, iova, size)) in iommu_iotlb_gather_add_page()
583 iommu_iotlb_sync(domain, gather); in iommu_iotlb_gather_add_page()
585 gather->pgsize = size; in iommu_iotlb_gather_add_page()
586 iommu_iotlb_gather_add_range(gather, iova, size); in iommu_iotlb_gather_add_page()
589 static inline bool iommu_iotlb_gather_queued(struct iommu_iotlb_gather *gather) in iommu_iotlb_gather_queued() argument
591 return gather && gather->queued; in iommu_iotlb_gather_queued()
923 static inline void iommu_iotlb_gather_init(struct iommu_iotlb_gather *gather) in iommu_iotlb_gather_init() argument
928 struct iommu_iotlb_gather *gather, in iommu_iotlb_gather_add_page() argument
933 static inline bool iommu_iotlb_gather_queued(struct iommu_iotlb_gather *gather) in iommu_iotlb_gather_queued() argument