void memory_region_iommu_replay(MemoryRegion *mr, Notifier *n, bool is_write)

{

    hwaddr addr, granularity;

    IOMMUTLBEntry iotlb;



    granularity = memory_region_iommu_get_min_page_size(mr);



    for (addr = 0; addr < memory_region_size(mr); addr += granularity) {

        iotlb = mr->iommu_ops->translate(mr, addr, is_write);

        if (iotlb.perm != IOMMU_NONE) {

            n->notify(n, &iotlb);

        }



        /* if (2^64 - MR size) < granularity, it's possible to get an

         * infinite loop here.  This should catch such a wraparound */

        if ((addr + granularity) < addr) {

            break;

        }

    }

}

void memory_region_iommu_replay(MemoryRegion *mr, Notifier *n, bool is_write)

{

    hwaddr addr, granularity;

    IOMMUTLBEntry iotlb;



    granularity = memory_region_iommu_get_min_page_size(mr);



    for (addr = 0; addr < memory_region_size(mr); addr += granularity) {

        iotlb = mr->iommu_ops->translate(mr, addr, is_write);

        if (iotlb.perm != IOMMU_NONE) {

            n->notify(n, &iotlb);

        }



        



        if ((addr + granularity) < addr) {

            break;

        }

    }

}

void FUNC_0(MemoryRegion *VAR_0, Notifier *VAR_1, bool VAR_2)

{

    hwaddr addr, granularity;

    IOMMUTLBEntry iotlb;



    granularity = memory_region_iommu_get_min_page_size(VAR_0);



    for (addr = 0; addr < memory_region_size(VAR_0); addr += granularity) {

        iotlb = VAR_0->iommu_ops->translate(VAR_0, addr, VAR_2);

        if (iotlb.perm != IOMMU_NONE) {

            VAR_1->notify(VAR_1, &iotlb);

        }



        



        if ((addr + granularity) < addr) {

            break;

        }

    }

}

void FUNC_0(MemoryRegion *VAR_0, Notifier *VAR_1, bool VAR_2)
{ hwaddr addr, granularity; IOMMUTLBEntry iotlb; granularity = memory_region_iommu_get_min_page_size(VAR_0); for (addr = 0; addr < memory_region_size(VAR_0); addr += granularity) { iotlb = VAR_0->iommu_ops->translate(VAR_0, addr, VAR_2); if (iotlb.perm != IOMMU_NONE) { VAR_1->notify(VAR_1, &iotlb); } if ((addr + granularity) < addr) { break; } } }