Introduce internal memory_region_do_init_ram_ptr() function to remove duplicated code from different memory_region_init_ram_*ptr functions.
Signed-off-by: BALATON Zoltan <[email protected]> --- system/memory.c | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/system/memory.c b/system/memory.c index 87c8e78662..3d538fb9af 100644 --- a/system/memory.c +++ b/system/memory.c @@ -1663,26 +1663,29 @@ bool memory_region_init_ram_from_fd(MemoryRegion *mr, Object *owner, } #endif -void memory_region_init_ram_ptr(MemoryRegion *mr, Object *owner, - const char *name, uint64_t size, void *ptr) +static void memory_region_do_init_ram_ptr(MemoryRegion *mr, uint64_t size, + void *ptr) { - memory_region_init(mr, owner, name, size); /* qemu_ram_alloc_from_ptr cannot fail with ptr != NULL. */ assert(ptr != NULL); mr->ram_block = qemu_ram_alloc_from_ptr(size, ptr, mr, &error_abort); memory_region_do_init_ram(mr, NULL, NULL); } +void memory_region_init_ram_ptr(MemoryRegion *mr, Object *owner, + const char *name, uint64_t size, void *ptr) +{ + memory_region_init(mr, owner, name, size); + memory_region_do_init_ram_ptr(mr, size, ptr); +} + void memory_region_init_ram_device_ptr(MemoryRegion *mr, Object *owner, const char *name, uint64_t size, void *ptr) { memory_region_init(mr, owner, name, size); memory_region_set_ops(mr, &ram_device_mem_ops, mr); - /* qemu_ram_alloc_from_ptr cannot fail with ptr != NULL. */ - assert(ptr != NULL); - mr->ram_block = qemu_ram_alloc_from_ptr(size, ptr, mr, &error_abort); - memory_region_do_init_ram(mr, NULL, NULL); + memory_region_do_init_ram_ptr(mr, size, ptr); mr->ram_device = true; } -- 2.41.3
