diff --git a/hw/gt64xxx.c b/hw/gt64xxx.c index 9f030263d31c2cce49ece2f49addc58ac9f5441f..76472df39ba6ccd7b4f94c77ca12674abea83d07 100644 --- a/hw/gt64xxx.c +++ b/hw/gt64xxx.c @@ -945,6 +945,25 @@ static void gt64120_write_config(PCIDevice *d, uint32_t address, uint32_t val, pci_default_write_config(d, address, val, len); } +static void gt64120_save(QEMUFile* f, void *opaque) +{ + PCIDevice *d = opaque; + pci_device_save(d, f); +} + +static int gt64120_load(QEMUFile* f, void *opaque, int version_id) +{ + PCIDevice *d = opaque; + int ret; + + if (version_id != 1) + return -EINVAL; + ret = pci_device_load(d, f); + if (ret < 0) + return ret; + return 0; +} + PCIBus *pci_gt64120_init(qemu_irq *pic) { GT64120State *s; @@ -988,5 +1007,7 @@ PCIBus *pci_gt64120_init(qemu_irq *pic) d->config[0x27] = 0x14; d->config[0x3D] = 0x01; + register_savevm("GT64120 PCI Bus", 0, 1, gt64120_save, gt64120_load, d); + return s->pci->bus; }