diff options
Diffstat (limited to 'tools')
-rw-r--r-- | tools/ioemu/hw/piix4acpi.c | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/tools/ioemu/hw/piix4acpi.c b/tools/ioemu/hw/piix4acpi.c index c4a8e38cd0..731ba83f80 100644 --- a/tools/ioemu/hw/piix4acpi.c +++ b/tools/ioemu/hw/piix4acpi.c @@ -57,6 +57,20 @@ typedef struct PCIAcpiState { uint16_t pm1_control; /* pm1a_ECNT_BLK */ } PCIAcpiState; +static void piix4acpi_save(QEMUFile *f, void *opaque) +{ + PCIAcpiState *s = opaque; + qemu_put_be16s(f, &s->pm1_control); +} + +static int piix4acpi_load(QEMUFile *f, void *opaque, int version_id) +{ + PCIAcpiState *s = opaque; + if (version_id > 1) + return -EINVAL; + qemu_get_be16s(f, &s->pm1_control); +} + static void acpiPm1Control_writeb(void *opaque, uint32_t addr, uint32_t val) { PCIAcpiState *s = opaque; @@ -193,4 +207,8 @@ void pci_piix4_acpi_init(PCIBus *bus, int devfn) d->pm1_control = SCI_EN; acpi_map(d, 0, 0x1f40, 0x10, PCI_ADDRESS_SPACE_IO); + + register_savevm("piix4acpi", 0, 1, piix4acpi_save, piix4acpi_load, d); + register_savevm("piix4acpi_pci", 0, 1, generic_pci_save, generic_pci_load, + &d->dev); } |