memory: Factor out common ram ptr initialization
Introduce internal helper function to remove duplicated code from different memory_region_init_ram_*ptr functions. Signed-off-by: BALATON Zoltan <balaton@eik.bme.hu> Link: https://lore.kernel.org/r/7c5a31fc2202e6927437ed57cb9ce08a224f2a50.1772924151.git.balaton@eik.bme.hu Signed-off-by: Peter Xu <peterx@redhat.com>
BALATON Zoltan committed
Mar 8, 2026 at 00:06 UTC
7f116e951d80dbe63e39bb55acf4f6acea4c04bd
1 file changed
+11
-12
system/memory.c
+11
-12
@@ -1649,31 +1649,30 @@ bool memory_region_init_ram_from_fd(MemoryRegion *mr, Object *owner,
1649
}
1650
#endif
1651
1652
+static void memory_region_set_ram_ptr(MemoryRegion *mr, uint64_t size,
1653
+ void *ptr)
1654
+{
1655
+ /* qemu_ram_alloc_from_ptr cannot fail with ptr != NULL. */
1656
+ assert(ptr != NULL);
1657
+ RAMBlock *rb = qemu_ram_alloc_from_ptr(size, ptr, mr, &error_abort);
1658
+ memory_region_set_ram_block(mr, rb);
1659
+}
1660
+
1661
void memory_region_init_ram_ptr(MemoryRegion *mr, Object *owner,
1662
const char *name, uint64_t size,
1663
void *ptr)
1664
{
1656
- RAMBlock *rb;
1657
-
1665
memory_region_init(mr, owner, name, size);
1659
- /* qemu_ram_alloc_from_ptr cannot fail with ptr != NULL. */
1660
- assert(ptr != NULL);
1661
- rb = qemu_ram_alloc_from_ptr(size, ptr, mr, &error_abort);
1662
- memory_region_set_ram_block(mr, rb);
1666
+ memory_region_set_ram_ptr(mr, size, ptr);
1667
}
1668
1669
void memory_region_init_ram_device_ptr(MemoryRegion *mr, Object *owner,
1670
const char *name, uint64_t size,
1671
void *ptr)
1672
{
1669
- RAMBlock *rb;
1670
-
1673
memory_region_init_io(mr, owner, &ram_device_mem_ops, mr, name, size);
1674
mr->ram_device = true;
1673
- /* qemu_ram_alloc_from_ptr cannot fail with ptr != NULL. */
1674
- assert(ptr != NULL);
1675
- rb = qemu_ram_alloc_from_ptr(size, ptr, mr, &error_abort);
1676
- memory_region_set_ram_block(mr, rb);
1675
+ memory_region_set_ram_ptr(mr, size, ptr);
1676
}
1677
1678
void memory_region_init_alias(MemoryRegion *mr, Object *owner,