Introduce internal helper function to remove duplicated code from different memory_region_init_ram_*ptr functions.
Signed-off-by: BALATON Zoltan <[email protected]> --- system/memory.c | 23 +++++++++++------------ 1 file changed, 11 insertions(+), 12 deletions(-) diff --git a/system/memory.c b/system/memory.c index 2cda814bd6..f1db72eb42 100644 --- a/system/memory.c +++ b/system/memory.c @@ -1649,31 +1649,30 @@ bool memory_region_init_ram_from_fd(MemoryRegion *mr, Object *owner, } #endif +static void memory_region_set_ram_ptr(MemoryRegion *mr, uint64_t size, + void *ptr) +{ + /* qemu_ram_alloc_from_ptr cannot fail with ptr != NULL. */ + assert(ptr != NULL); + RAMBlock *rb = qemu_ram_alloc_from_ptr(size, ptr, mr, &error_abort); + memory_region_set_ram_block(mr, rb); +} + void memory_region_init_ram_ptr(MemoryRegion *mr, Object *owner, const char *name, uint64_t size, void *ptr) { - RAMBlock *rb; - memory_region_init(mr, owner, name, size); - /* qemu_ram_alloc_from_ptr cannot fail with ptr != NULL. */ - assert(ptr != NULL); - rb = qemu_ram_alloc_from_ptr(size, ptr, mr, &error_abort); - memory_region_set_ram_block(mr, rb); + memory_region_set_ram_ptr(mr, size, ptr); } void memory_region_init_ram_device_ptr(MemoryRegion *mr, Object *owner, const char *name, uint64_t size, void *ptr) { - RAMBlock *rb; - memory_region_init_io(mr, owner, &ram_device_mem_ops, mr, name, size); mr->ram_device = true; - /* qemu_ram_alloc_from_ptr cannot fail with ptr != NULL. */ - assert(ptr != NULL); - rb = qemu_ram_alloc_from_ptr(size, ptr, mr, &error_abort); - memory_region_set_ram_block(mr, rb); + memory_region_set_ram_ptr(mr, size, ptr); } void memory_region_init_alias(MemoryRegion *mr, Object *owner, -- 2.41.3
