diff options
author | Uri Lublin <uril@qumranet.com> | 2007-11-27 20:39:02 +0200 |
---|---|---|
committer | Avi Kivity <avi@qumranet.com> | 2007-12-11 16:44:11 +0200 |
commit | bfb6a9a209d0394c3efb9f241cf48247bed95399 (patch) | |
tree | c43828c88a7bb5a3a285527b69719627d55633e1 | |
parent | 4fdfb8aa28fa55edee71c7d7e0b75c3d9242adf8 (diff) |
Migration: when saving/loading a pci device, save/load its irq_state
Signed-off-by: Uri Lublin <uril@qumranet.com>
Signed-off-by: Avi Kivity <avi@qumranet.com>
-rw-r--r-- | hw/pci.c | 15 |
1 files changed, 13 insertions, 2 deletions
@@ -80,18 +80,29 @@ int pci_bus_num(PCIBus *s) void pci_device_save(PCIDevice *s, QEMUFile *f) { - qemu_put_be32(f, 1); /* PCI device version */ + int i; + + qemu_put_be32(f, 2); /* PCI device version */ qemu_put_buffer(f, s->config, 256); + for (i=0; i<4; i++) + qemu_put_be32s(f, &s->irq_state[i]); } int pci_device_load(PCIDevice *s, QEMUFile *f) { uint32_t version_id; + int i; + version_id = qemu_get_be32(f); - if (version_id != 1) + if (version_id > 2) return -EINVAL; qemu_get_buffer(f, s->config, 256); pci_update_mappings(s); + + if (version_id >= 2) + for (i=0; i<4; i++) + qemu_get_be32s(f, &s->irq_state[i]); + return 0; } |