From c5705a7728b4a6bc9e4f2d35911adbaf28042b25 Mon Sep 17 00:00:00 2001 From: Avi Kivity Date: Tue, 20 Dec 2011 15:59:12 +0200 Subject: 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 --- hw/pci.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'hw/pci.c') diff --git a/hw/pci.c b/hw/pci.c index 399227fc3d..c3082bc7c6 100644 --- a/hw/pci.c +++ b/hw/pci.c @@ -1765,7 +1765,8 @@ static int pci_add_option_rom(PCIDevice *pdev, bool is_default_rom) else snprintf(name, sizeof(name), "%s.rom", pdev->qdev.info->name); pdev->has_rom = true; - memory_region_init_ram(&pdev->rom, &pdev->qdev, name, size); + memory_region_init_ram(&pdev->rom, name, size); + vmstate_register_ram(&pdev->rom, &pdev->qdev); ptr = memory_region_get_ram_ptr(&pdev->rom); load_image(path, ptr); g_free(path); @@ -1787,6 +1788,7 @@ static void pci_del_option_rom(PCIDevice *pdev) if (!pdev->has_rom) return; + vmstate_unregister_ram(&pdev->rom, &pdev->qdev); memory_region_destroy(&pdev->rom); pdev->has_rom = false; } -- cgit v1.2.1