mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-05 16:53:55 -06:00
vmstate, memory: decouple vmstate from memory API
Currently creating a memory region automatically registers it for live migration. This differs from other state (which is enumerated in a VMStateDescription structure) and ties the live migration code into the memory core. Decouple the two by introducing a separate API, vmstate_register_ram(), for registering a RAM block for migration. Currently the same implementation is reused, but later it can be moved into a separate list, and registrations can be moved to VMStateDescription blocks. Signed-off-by: Avi Kivity <avi@redhat.com>
This commit is contained in:
parent
8991c79b57
commit
c5705a7728
71 changed files with 286 additions and 154 deletions
12
hw/sun4m.c
12
hw/sun4m.c
|
@ -602,7 +602,8 @@ static int idreg_init1(SysBusDevice *dev)
|
|||
{
|
||||
IDRegState *s = FROM_SYSBUS(IDRegState, dev);
|
||||
|
||||
memory_region_init_ram(&s->mem, NULL, "sun4m.idreg", sizeof(idreg_data));
|
||||
memory_region_init_ram(&s->mem, "sun4m.idreg", sizeof(idreg_data));
|
||||
vmstate_register_ram_global(&s->mem);
|
||||
memory_region_set_readonly(&s->mem, true);
|
||||
sysbus_init_mmio(dev, &s->mem);
|
||||
return 0;
|
||||
|
@ -643,7 +644,8 @@ static int afx_init1(SysBusDevice *dev)
|
|||
{
|
||||
AFXState *s = FROM_SYSBUS(AFXState, dev);
|
||||
|
||||
memory_region_init_ram(&s->mem, NULL, "sun4m.afx", 4);
|
||||
memory_region_init_ram(&s->mem, "sun4m.afx", 4);
|
||||
vmstate_register_ram_global(&s->mem);
|
||||
sysbus_init_mmio(dev, &s->mem);
|
||||
return 0;
|
||||
}
|
||||
|
@ -711,7 +713,8 @@ static int prom_init1(SysBusDevice *dev)
|
|||
{
|
||||
PROMState *s = FROM_SYSBUS(PROMState, dev);
|
||||
|
||||
memory_region_init_ram(&s->prom, NULL, "sun4m.prom", PROM_SIZE_MAX);
|
||||
memory_region_init_ram(&s->prom, "sun4m.prom", PROM_SIZE_MAX);
|
||||
vmstate_register_ram_global(&s->prom);
|
||||
memory_region_set_readonly(&s->prom, true);
|
||||
sysbus_init_mmio(dev, &s->prom);
|
||||
return 0;
|
||||
|
@ -745,7 +748,8 @@ static int ram_init1(SysBusDevice *dev)
|
|||
{
|
||||
RamDevice *d = FROM_SYSBUS(RamDevice, dev);
|
||||
|
||||
memory_region_init_ram(&d->ram, NULL, "sun4m.ram", d->size);
|
||||
memory_region_init_ram(&d->ram, "sun4m.ram", d->size);
|
||||
vmstate_register_ram_global(&d->ram);
|
||||
sysbus_init_mmio(dev, &d->ram);
|
||||
return 0;
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue