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 <balaton@eik.bme.hu>
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
---
system/memory.c | 17 ++++++++++-------
1 file changed, 10 insertions(+), 7 deletions(-)
diff --git a/system/memory.c b/system/memory.c
index 74179463ea..4504f6fa05 100644
--- a/system/memory.c
+++ b/system/memory.c
@@ -1658,26 +1658,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