Lines Matching full:mr
357 if (resolve_subpage && section->mr->subpage) { in address_space_lookup_region()
358 subpage = container_of(section->mr, subpage_t, iomem); in address_space_lookup_region()
370 MemoryRegion *mr; in address_space_translate_internal() local
380 mr = section->mr; in address_space_translate_internal()
393 if (memory_region_is_ram(mr)) { in address_space_translate_internal()
461 iommu_mr = memory_region_get_iommu(section->mr); in address_space_translate_iommu()
470 return (MemoryRegionSection) { .mr = &io_mem_unassigned }; in address_space_translate_iommu()
515 iommu_mr = memory_region_get_iommu(section->mr); in flatview_do_translate()
546 if (section.mr == &io_mem_unassigned) { in address_space_get_iotlb_entry()
572 MemoryRegion *mr; in flatview_translate() local
579 mr = section.mr; in flatview_translate()
581 if (xen_enabled() && memory_access_is_direct(mr, is_write, attrs)) { in flatview_translate()
586 return mr; in flatview_translate()
591 MemoryRegion *mr; member
621 MemoryRegion *mr = MEMORY_REGION(iommu_mr); in tcg_register_iommu_notifier() local
627 if (notifier->mr == mr && notifier->iommu_idx == iommu_idx) { in tcg_register_iommu_notifier()
637 notifier->mr = mr; in tcg_register_iommu_notifier()
652 memory_region_register_iommu_notifier(notifier->mr, ¬ifier->n, in tcg_register_iommu_notifier()
669 memory_region_unregister_iommu_notifier(notifier->mr, ¬ifier->n); in tcg_iommu_free_notifier_list()
697 iommu_mr = memory_region_get_iommu(section->mr); in address_space_translate_for_iotlb()
730 assert(!memory_region_is_iommu(section->mr)); in address_space_translate_for_iotlb()
749 const char *prefix, MemoryRegion *mr) in cpu_address_space_init() argument
755 assert(mr); in cpu_address_space_init()
757 address_space_init(as, mr, as_name); in cpu_address_space_init()
919 memory_region_clear_dirty_bitmap(ramblock->mr, mr_offset, mr_size); in cpu_physical_memory_test_and_clear_dirty()
930 (MemoryRegion *mr, hwaddr offset, hwaddr length, unsigned client) in cpu_physical_memory_snapshot_and_clear_dirty() argument
938 start = memory_region_get_ram_addr(mr); in cpu_physical_memory_snapshot_and_clear_dirty()
978 memory_region_clear_dirty_bitmap(mr, offset, length); in cpu_physical_memory_snapshot_and_clear_dirty()
1031 memory_region_ref(section->mr); in phys_section_add()
1035 static void phys_section_destroy(MemoryRegion *mr) in phys_section_destroy() argument
1037 bool have_sub_page = mr->subpage; in phys_section_destroy()
1039 memory_region_unref(mr); in phys_section_destroy()
1042 subpage_t *subpage = container_of(mr, subpage_t, iomem); in phys_section_destroy()
1052 phys_section_destroy(section->mr); in phys_sections_free()
1071 assert(existing->mr->subpage || existing->mr == &io_mem_unassigned); in register_subpage()
1073 if (!(existing->mr->subpage)) { in register_subpage()
1076 subsection.mr = &subpage->iomem; in register_subpage()
1080 subpage = container_of(existing->mr, subpage_t, iomem); in register_subpage()
1183 block->mr->readonly ? "ro" : "rw"); in ram_block_format()
1422 if (block->mr->align % block->page_size) { in file_ram_alloc()
1425 block->mr->align, block->page_size); in file_ram_alloc()
1427 } else if (block->mr->align && !is_power_of_2(block->mr->align)) { in file_ram_alloc()
1429 " must be a power of two", block->mr->align); in file_ram_alloc()
1437 block->mr->align = MAX(block->page_size, block->mr->align); in file_ram_alloc()
1440 block->mr->align = MAX(block->mr->align, QEMU_VMALLOC_ALIGN); in file_ram_alloc()
1475 area = qemu_ram_mmap(fd, memory, block->mr->align, qemu_map_flags, offset); in file_ram_alloc()
1670 static char *cpr_name(MemoryRegion *mr) in cpr_name() argument
1672 const char *mr_name = memory_region_name(mr); in cpr_name()
1673 g_autofree char *id = mr->dev ? qdev_get_dev_path(mr->dev) : NULL; in cpr_name()
1733 if (unaligned_size != memory_region_size(block->mr)) { in qemu_ram_resize()
1734 memory_region_set_size(block->mr, unaligned_size); in qemu_ram_resize()
1767 memory_region_set_size(block->mr, unaligned_size); in qemu_ram_resize()
1865 new_block->mr, &err); in ram_block_add()
1873 &new_block->mr->align, in ram_block_add()
1878 memory_region_name(new_block->mr)); in ram_block_add()
1920 memory_region_name(new_block->mr)); in ram_block_add()
1982 qemu_ram_resize_cb resized, MemoryRegion *mr, in qemu_ram_alloc_from_fd() argument
2024 memory_region_name(mr), file_size, max_size, in qemu_ram_alloc_from_fd()
2030 if (file_align > 0 && file_align > mr->align) { in qemu_ram_alloc_from_fd()
2033 file_align, mr->align); in qemu_ram_alloc_from_fd()
2038 new_block->mr = mr; in qemu_ram_alloc_from_fd()
2063 RAMBlock *qemu_ram_alloc_from_file(ram_addr_t size, MemoryRegion *mr, in qemu_ram_alloc_from_file() argument
2071 fd = file_ram_open(mem_path, memory_region_name(mr), in qemu_ram_alloc_from_file()
2083 fd = file_ram_open(mem_path, memory_region_name(mr), true, in qemu_ram_alloc_from_file()
2098 block = qemu_ram_alloc_from_fd(size, size, NULL, mr, ram_flags, fd, offset, in qemu_ram_alloc_from_file()
2145 MemoryRegion *mr, Error **errp) in qemu_ram_alloc_internal() argument
2167 g_autofree char *name = cpr_name(mr); in qemu_ram_alloc_internal()
2175 mr->align = QEMU_VMALLOC_ALIGN; in qemu_ram_alloc_internal()
2188 new_block = qemu_ram_alloc_from_fd(size, max_size, resized, mr, in qemu_ram_alloc_internal()
2210 new_block->mr = mr; in qemu_ram_alloc_internal()
2229 MemoryRegion *mr, Error **errp) in qemu_ram_alloc_from_ptr() argument
2231 return qemu_ram_alloc_internal(size, size, NULL, host, RAM_PREALLOC, mr, in qemu_ram_alloc_from_ptr()
2236 MemoryRegion *mr, Error **errp) in qemu_ram_alloc() argument
2240 return qemu_ram_alloc_internal(size, size, NULL, NULL, ram_flags, mr, errp); in qemu_ram_alloc()
2245 MemoryRegion *mr, Error **errp) in qemu_ram_alloc_resizeable() argument
2248 RAM_RESIZEABLE, mr, errp); in qemu_ram_alloc_resizeable()
2288 name = cpr_name(block->mr); in qemu_ram_free()
2418 if (xen_mr_is_memory(block->mr)) { in qemu_ram_ptr_length()
2419 return xen_map_cache(block->mr, block->offset + addr, in qemu_ram_ptr_length()
2424 block->host = xen_map_cache(block->mr, block->offset, in qemu_ram_ptr_length()
2657 static uint16_t dummy_section(PhysPageMap *map, FlatView *fv, MemoryRegion *mr) in dummy_section() argument
2662 .mr = mr, in dummy_section()
2682 assert(ret->mr); in iotlb_to_section()
2683 assert(ret->mr->ops); in iotlb_to_section()
2812 static void invalidate_and_set_dirty(MemoryRegion *mr, hwaddr addr, in invalidate_and_set_dirty() argument
2815 uint8_t dirty_log_mask = memory_region_get_dirty_log_mask(mr); in invalidate_and_set_dirty()
2816 ram_addr_t ramaddr = memory_region_get_ram_addr(mr); in invalidate_and_set_dirty()
2838 void memory_region_flush_rom_device(MemoryRegion *mr, hwaddr addr, hwaddr size) in memory_region_flush_rom_device() argument
2846 assert(memory_region_is_romd(mr)); in memory_region_flush_rom_device()
2848 invalidate_and_set_dirty(mr, addr, size); in memory_region_flush_rom_device()
2851 int memory_access_size(MemoryRegion *mr, unsigned l, hwaddr addr) in memory_access_size() argument
2853 unsigned access_size_max = mr->ops->valid.max_access_size; in memory_access_size()
2862 if (!mr->ops->impl.unaligned) { in memory_access_size()
2878 bool prepare_mmio_access(MemoryRegion *mr) in prepare_mmio_access() argument
2886 if (mr->flush_coalesced_mmio) { in prepare_mmio_access()
2895 * @mr: #MemoryRegion to be accessed
2904 static bool flatview_access_allowed(MemoryRegion *mr, MemTxAttrs attrs, in flatview_access_allowed() argument
2910 if (memory_region_is_ram(mr)) { in flatview_access_allowed()
2916 "region '%s'\n", addr, len, memory_region_name(mr)); in flatview_access_allowed()
2923 hwaddr *l, MemoryRegion *mr) in flatview_write_continue_step() argument
2925 if (!flatview_access_allowed(mr, attrs, mr_addr, *l)) { in flatview_write_continue_step()
2929 if (!memory_access_is_direct(mr, true, attrs)) { in flatview_write_continue_step()
2932 bool release_lock = prepare_mmio_access(mr); in flatview_write_continue_step()
2934 *l = memory_access_size(mr, *l, mr_addr); in flatview_write_continue_step()
2951 result = memory_region_dispatch_write(mr, mr_addr, val, in flatview_write_continue_step()
2960 uint8_t *ram_ptr = qemu_ram_ptr_length(mr->ram_block, mr_addr, l, in flatview_write_continue_step()
2964 invalidate_and_set_dirty(mr, mr_addr, *l); in flatview_write_continue_step()
2975 hwaddr l, MemoryRegion *mr) in flatview_write_continue() argument
2982 mr); in flatview_write_continue()
2993 mr = flatview_translate(fv, addr, &mr_addr, &l, true, attrs); in flatview_write_continue()
3005 MemoryRegion *mr; in flatview_write() local
3008 mr = flatview_translate(fv, addr, &mr_addr, &l, true, attrs); in flatview_write()
3009 if (!flatview_access_allowed(mr, attrs, addr, len)) { in flatview_write()
3013 mr_addr, l, mr); in flatview_write()
3019 MemoryRegion *mr) in flatview_read_continue_step() argument
3021 if (!flatview_access_allowed(mr, attrs, mr_addr, *l)) { in flatview_read_continue_step()
3025 if (!memory_access_is_direct(mr, false, attrs)) { in flatview_read_continue_step()
3029 bool release_lock = prepare_mmio_access(mr); in flatview_read_continue_step()
3031 *l = memory_access_size(mr, *l, mr_addr); in flatview_read_continue_step()
3032 result = memory_region_dispatch_read(mr, mr_addr, &val, size_memop(*l), in flatview_read_continue_step()
3053 uint8_t *ram_ptr = qemu_ram_ptr_length(mr->ram_block, mr_addr, l, in flatview_read_continue_step()
3066 MemoryRegion *mr) in flatview_read_continue() argument
3071 fuzz_dma_read_cb(addr, len, mr); in flatview_read_continue()
3073 result |= flatview_read_continue_step(attrs, buf, len, mr_addr, &l, mr); in flatview_read_continue()
3084 mr = flatview_translate(fv, addr, &mr_addr, &l, false, attrs); in flatview_read_continue()
3096 MemoryRegion *mr; in flatview_read() local
3099 mr = flatview_translate(fv, addr, &mr_addr, &l, false, attrs); in flatview_read()
3100 if (!flatview_access_allowed(mr, attrs, addr, len)) { in flatview_read()
3104 mr_addr, l, mr); in flatview_read()
3189 MemoryRegion *mr; in address_space_write_rom_internal() local
3195 mr = address_space_translate(as, addr, &addr1, &l, true, attrs); in address_space_write_rom_internal()
3197 if (!memory_region_supports_direct_access(mr)) { in address_space_write_rom_internal()
3198 l = memory_access_size(mr, l, addr1); in address_space_write_rom_internal()
3201 ram_ptr = qemu_map_ram_ptr(mr->ram_block, addr1); in address_space_write_rom_internal()
3205 invalidate_and_set_dirty(mr, addr1, l); in address_space_write_rom_internal()
3253 MemoryRegion *mr; member
3328 MemoryRegion *mr; in flatview_access_valid() local
3333 mr = flatview_translate(fv, addr, &xlat, &l, is_write, attrs); in flatview_access_valid()
3334 if (!memory_access_is_direct(mr, is_write, attrs)) { in flatview_access_valid()
3335 l = memory_access_size(mr, l, addr); in flatview_access_valid()
3336 if (!memory_region_access_valid(mr, xlat, l, is_write, attrs)) { in flatview_access_valid()
3361 MemoryRegion *mr, hwaddr base, hwaddr len, in flatview_extend_translation() argument
3379 if (this_mr != mr || xlat != base + done) { in flatview_extend_translation()
3400 MemoryRegion *mr; in address_space_map() local
3412 mr = flatview_translate(fv, addr, &xlat, &l, is_write, attrs); in address_space_map()
3414 if (!memory_access_is_direct(mr, is_write, attrs)) { in address_space_map()
3435 memory_region_ref(mr); in address_space_map()
3436 bounce->mr = mr; in address_space_map()
3449 memory_region_ref(mr); in address_space_map()
3450 *plen = flatview_extend_translation(fv, addr, len, mr, xlat, in address_space_map()
3452 fuzz_dma_read_cb(addr, *plen, mr); in address_space_map()
3453 return qemu_ram_ptr_length(mr->ram_block, xlat, plen, true, is_write); in address_space_map()
3463 MemoryRegion *mr; in address_space_unmap() local
3466 mr = memory_region_from_host(buffer, &addr1); in address_space_unmap()
3467 if (mr != NULL) { in address_space_unmap()
3469 invalidate_and_set_dirty(mr, addr1, access_len); in address_space_unmap()
3474 memory_region_unref(mr); in address_space_unmap()
3489 memory_region_unref(bounce->mr); in address_space_unmap()
3526 MemoryRegion *mr; in address_space_cache_init() local
3537 * cache->xlat is now relative to cache->mrs.mr, not to the section itself. in address_space_cache_init()
3545 mr = cache->mrs.mr; in address_space_cache_init()
3546 memory_region_ref(mr); in address_space_cache_init()
3547 if (memory_access_is_direct(mr, is_write, MEMTXATTRS_UNSPECIFIED)) { in address_space_cache_init()
3552 l = flatview_extend_translation(cache->fv, addr, len, mr, in address_space_cache_init()
3555 cache->ptr = qemu_ram_ptr_length(mr->ram_block, cache->xlat, &l, true, in address_space_cache_init()
3572 invalidate_and_set_dirty(cache->mrs.mr, addr + cache->xlat, access_len); in address_space_cache_invalidate()
3578 if (!cache->mrs.mr) { in address_space_cache_destroy()
3585 memory_region_unref(cache->mrs.mr); in address_space_cache_destroy()
3587 cache->mrs.mr = NULL; in address_space_cache_destroy()
3601 MemoryRegion *mr; in address_space_translate_cached() local
3608 mr = cache->mrs.mr; in address_space_translate_cached()
3609 iommu_mr = memory_region_get_iommu(mr); in address_space_translate_cached()
3612 return mr; in address_space_translate_cached()
3618 return section.mr; in address_space_translate_cached()
3627 MemoryRegion *mr) in address_space_write_continue_cached() argument
3634 mr); in address_space_write_continue_cached()
3654 MemoryRegion *mr) in address_space_read_continue_cached() argument
3660 result |= flatview_read_continue_step(attrs, buf, len, mr_addr, &l, mr); in address_space_read_continue_cached()
3682 MemoryRegion *mr; in address_space_read_cached_slow() local
3685 mr = address_space_translate_cached(cache, addr, &mr_addr, &l, false, in address_space_read_cached_slow()
3688 buf, len, mr_addr, l, mr); in address_space_read_cached_slow()
3699 MemoryRegion *mr; in address_space_write_cached_slow() local
3702 mr = address_space_translate_cached(cache, addr, &mr_addr, &l, true, in address_space_write_cached_slow()
3705 buf, len, mr_addr, l, mr); in address_space_write_cached_slow()
3754 MemoryRegion*mr; in cpu_physical_memory_is_io() local
3758 mr = address_space_translate(&address_space_memory, in cpu_physical_memory_is_io()
3762 return !(memory_region_is_ram(mr) || memory_region_is_romd(mr)); in cpu_physical_memory_is_io()
3971 s->mr->name ? s->mr->name : "(noname)", in mtree_print_dispatch()
3973 s->mr == root ? " [ROOT]" : "", in mtree_print_dispatch()
3975 s->mr->is_iommu ? " [iommu]" : ""); in mtree_print_dispatch()
3977 if (s->mr->alias) { in mtree_print_dispatch()
3978 qemu_printf(" alias=%s", s->mr->alias->name ? in mtree_print_dispatch()
3979 s->mr->alias->name : "noname"); in mtree_print_dispatch()
4122 MemoryRegion *mr = rb->mr; in ram_is_cpr_compatible() local
4124 if (!mr || !memory_region_is_ram(mr)) { in ram_is_cpr_compatible()
4129 if (memory_region_is_ram_device(mr)) { in ram_is_cpr_compatible()
4161 "required.", memory_region_name(rb->mr)); in ram_block_add_cpr_blocker()