Lines Matching full:fr
155 #define MEMORY_LISTENER_UPDATE_REGION(fr, as, dir, callback, _args...) \ argument
157 MemoryRegionSection mrs = section_from_flat_range(fr, \
234 section_from_flat_range(FlatRange *fr, FlatView *fv) in section_from_flat_range() argument
237 .mr = fr->mr, in section_from_flat_range()
239 .offset_within_region = fr->offset_in_region, in section_from_flat_range()
240 .size = fr->addr.size, in section_from_flat_range()
241 .offset_within_address_space = int128_get64(fr->addr.start), in section_from_flat_range()
242 .readonly = fr->readonly, in section_from_flat_range()
243 .nonvolatile = fr->nonvolatile, in section_from_flat_range()
244 .unmergeable = fr->unmergeable, in section_from_flat_range()
741 FlatRange fr; in render_memory_region() local
783 fr.mr = mr; in render_memory_region()
784 fr.dirty_log_mask = memory_region_get_dirty_log_mask(mr); in render_memory_region()
785 fr.romd_mode = mr->romd_mode; in render_memory_region()
786 fr.readonly = readonly; in render_memory_region()
787 fr.nonvolatile = nonvolatile; in render_memory_region()
788 fr.unmergeable = unmergeable; in render_memory_region()
798 fr.offset_in_region = offset_in_region; in render_memory_region()
799 fr.addr = addrrange_make(base, now); in render_memory_region()
800 flatview_insert(view, i, &fr); in render_memory_region()
814 fr.offset_in_region = offset_in_region; in render_memory_region()
815 fr.addr = addrrange_make(base, remain); in render_memory_region()
816 flatview_insert(view, i, &fr); in render_memory_region()
822 FlatRange *fr; in flatview_for_each_range() local
827 FOR_EACH_FLAT_RANGE(fr, fv) { in flatview_for_each_range()
828 if (cb(fr->addr.start, fr->addr.size, fr->mr, in flatview_for_each_range()
829 fr->offset_in_region, opaque)) { in flatview_for_each_range()
972 FlatRange *fr; in address_space_update_ioeventfds() local
992 FOR_EACH_FLAT_RANGE(fr, view) { in address_space_update_ioeventfds()
993 for (i = 0; i < fr->mr->ioeventfd_nb; ++i) { in address_space_update_ioeventfds()
994 tmp = addrrange_shift(fr->mr->ioeventfds[i].addr, in address_space_update_ioeventfds()
995 int128_sub(fr->addr.start, in address_space_update_ioeventfds()
996 int128_make64(fr->offset_in_region))); in address_space_update_ioeventfds()
997 if (addrrange_intersects(fr->addr, tmp)) { in address_space_update_ioeventfds()
1004 ioeventfds[ioeventfd_nb-1] = fr->mr->ioeventfds[i]; in address_space_update_ioeventfds()
1024 static void flat_range_coalesced_io_notify(FlatRange *fr, AddressSpace *as, in flat_range_coalesced_io_notify() argument
1030 int128_sub(fr->addr.start, in flat_range_coalesced_io_notify()
1031 int128_make64(fr->offset_in_region))); in flat_range_coalesced_io_notify()
1032 if (!addrrange_intersects(tmp, fr->addr)) { in flat_range_coalesced_io_notify()
1035 tmp = addrrange_intersection(tmp, fr->addr); in flat_range_coalesced_io_notify()
1038 MEMORY_LISTENER_UPDATE_REGION(fr, as, Forward, coalesced_io_add, in flat_range_coalesced_io_notify()
1042 MEMORY_LISTENER_UPDATE_REGION(fr, as, Reverse, coalesced_io_del, in flat_range_coalesced_io_notify()
1048 static void flat_range_coalesced_io_del(FlatRange *fr, AddressSpace *as) in flat_range_coalesced_io_del() argument
1052 QTAILQ_FOREACH(cmr, &fr->mr->coalesced, link) { in flat_range_coalesced_io_del()
1053 flat_range_coalesced_io_notify(fr, as, cmr, false); in flat_range_coalesced_io_del()
1057 static void flat_range_coalesced_io_add(FlatRange *fr, AddressSpace *as) in flat_range_coalesced_io_add() argument
1059 MemoryRegion *mr = fr->mr; in flat_range_coalesced_io_add()
1067 flat_range_coalesced_io_notify(fr, as, cmr, true); in flat_range_coalesced_io_add()
1072 flat_range_coalesced_io_notify_listener_add_del(FlatRange *fr, in flat_range_coalesced_io_notify_listener_add_del() argument
1078 MemoryRegion *mr = fr->mr; in flat_range_coalesced_io_notify_listener_add_del()
1083 int128_sub(fr->addr.start, in flat_range_coalesced_io_notify_listener_add_del()
1084 int128_make64(fr->offset_in_region))); in flat_range_coalesced_io_notify_listener_add_del()
1086 if (!addrrange_intersects(tmp, fr->addr)) { in flat_range_coalesced_io_notify_listener_add_del()
1089 tmp = addrrange_intersection(tmp, fr->addr); in flat_range_coalesced_io_notify_listener_add_del()
2421 FlatRange *fr; in memory_region_sync_dirty_bitmap() local
2432 FOR_EACH_FLAT_RANGE(fr, view) { in memory_region_sync_dirty_bitmap()
2433 if (fr->dirty_log_mask && (!mr || fr->mr == mr)) { in memory_region_sync_dirty_bitmap()
2434 MemoryRegionSection mrs = section_from_flat_range(fr, view); in memory_region_sync_dirty_bitmap()
2459 FlatRange *fr; in memory_region_clear_dirty_bitmap() local
2468 FOR_EACH_FLAT_RANGE(fr, view) { in memory_region_clear_dirty_bitmap()
2469 if (!fr->dirty_log_mask || fr->mr != mr) { in memory_region_clear_dirty_bitmap()
2477 mrs = section_from_flat_range(fr, view); in memory_region_clear_dirty_bitmap()
2636 FlatRange *fr; in memory_region_update_coalesced_range() local
2640 FOR_EACH_FLAT_RANGE(fr, view) { in memory_region_update_coalesced_range()
2641 if (fr->mr == mr) { in memory_region_update_coalesced_range()
2642 flat_range_coalesced_io_notify(fr, as, cmr, add); in memory_region_update_coalesced_range()
2922 const FlatRange *fr = fr_; in cmp_flatrange_addr() local
2924 if (int128_le(addrrange_end(*addr), fr->addr.start)) { in cmp_flatrange_addr()
2926 } else if (int128_ge(addr->start, addrrange_end(fr->addr))) { in cmp_flatrange_addr()
2954 FlatRange *fr; in memory_region_find_rcu() local
2969 fr = flatview_lookup(view, range); in memory_region_find_rcu()
2970 if (!fr) { in memory_region_find_rcu()
2974 while (fr > view->ranges && addrrange_intersects(fr[-1].addr, range)) { in memory_region_find_rcu()
2975 --fr; in memory_region_find_rcu()
2978 ret.mr = fr->mr; in memory_region_find_rcu()
2980 range = addrrange_intersection(range, fr->addr); in memory_region_find_rcu()
2981 ret.offset_within_region = fr->offset_in_region; in memory_region_find_rcu()
2983 fr->addr.start)); in memory_region_find_rcu()
2986 ret.readonly = fr->readonly; in memory_region_find_rcu()
2987 ret.nonvolatile = fr->nonvolatile; in memory_region_find_rcu()
3181 FlatRange *fr; in listener_add_address_space() local
3201 FOR_EACH_FLAT_RANGE(fr, view) { in listener_add_address_space()
3202 MemoryRegionSection section = section_from_flat_range(fr, view); in listener_add_address_space()
3209 flat_range_coalesced_io_notify_listener_add_del(fr, §ion, in listener_add_address_space()
3212 if (fr->dirty_log_mask && listener->log_start) { in listener_add_address_space()
3213 listener->log_start(listener, §ion, 0, fr->dirty_log_mask); in listener_add_address_space()
3246 FlatRange *fr; in listener_del_address_space() local
3253 FOR_EACH_FLAT_RANGE(fr, view) { in listener_del_address_space()
3254 MemoryRegionSection section = section_from_flat_range(fr, view); in listener_del_address_space()
3256 if (fr->dirty_log_mask && listener->log_stop) { in listener_del_address_space()
3257 listener->log_stop(listener, §ion, fr->dirty_log_mask, 0); in listener_del_address_space()
3261 flat_range_coalesced_io_notify_listener_add_del(fr, §ion, in listener_del_address_space()