diff options
Diffstat (limited to 'tools')
-rw-r--r-- | tools/ioemu/hw/ne2000.c | 11 | ||||
-rw-r--r-- | tools/ioemu/hw/pcnet.c | 8 | ||||
-rw-r--r-- | tools/ioemu/hw/rtl8139.c | 9 |
3 files changed, 16 insertions, 12 deletions
diff --git a/tools/ioemu/hw/ne2000.c b/tools/ioemu/hw/ne2000.c index 5fe383fb2a..78f341372b 100644 --- a/tools/ioemu/hw/ne2000.c +++ b/tools/ioemu/hw/ne2000.c @@ -770,7 +770,7 @@ void isa_ne2000_init(int base, int irq, NICInfo *nd) s->macaddr[4], s->macaddr[5]); - register_savevm("ne2000", 0, 2, ne2000_save, ne2000_load, s); + register_savevm("ne2000", base, 2, ne2000_save, ne2000_load, s); } /***********************************************************/ @@ -806,6 +806,7 @@ void pci_ne2000_init(PCIBus *bus, NICInfo *nd) PCINE2000State *d; NE2000State *s; uint8_t *pci_conf; + int instance; d = (PCINE2000State *)pci_register_device(bus, "NE2000", sizeof(PCINE2000State), @@ -840,8 +841,8 @@ void pci_ne2000_init(PCIBus *bus, NICInfo *nd) s->macaddr[4], s->macaddr[5]); - /* XXX: instance number ? */ - register_savevm("ne2000", 0, 2, ne2000_save, ne2000_load, s); - register_savevm("ne2000_pci", 0, 1, generic_pci_save, generic_pci_load, - &d->dev); + instance = pci_bus_num(bus) << 8 | s->pci_dev->devfn; + register_savevm("ne2000", instance, 2, ne2000_save, ne2000_load, s); + register_savevm("ne2000_pci", instance, 1, generic_pci_save, + generic_pci_load, &d->dev); } diff --git a/tools/ioemu/hw/pcnet.c b/tools/ioemu/hw/pcnet.c index b150517bbc..6e0b0ed58f 100644 --- a/tools/ioemu/hw/pcnet.c +++ b/tools/ioemu/hw/pcnet.c @@ -1783,6 +1783,7 @@ void pci_pcnet_init(PCIBus *bus, NICInfo *nd) { PCNetState *d; uint8_t *pci_conf; + int instance; #if 0 printf("sizeof(RMD)=%d, sizeof(TMD)=%d\n", @@ -1828,9 +1829,10 @@ void pci_pcnet_init(PCIBus *bus, NICInfo *nd) d->vc = qemu_new_vlan_client(nd->vlan, pcnet_receive, pcnet_can_receive, d); - register_savevm("pcnet", 0, 1, pcnet_save, pcnet_load, d); - register_savevm("pcnet_pci", 0, 1, generic_pci_save, generic_pci_load, - &d->dev); + instance = pci_bus_num(bus) << 8 | d->dev.devfn; + register_savevm("pcnet", instance, 1, pcnet_save, pcnet_load, d); + register_savevm("pcnet_pci", instance, 1, generic_pci_save, + generic_pci_load, &d->dev); snprintf(d->vc->info_str, sizeof(d->vc->info_str), "pcnet macaddr=%02x:%02x:%02x:%02x:%02x:%02x", diff --git a/tools/ioemu/hw/rtl8139.c b/tools/ioemu/hw/rtl8139.c index e4ba40dfe3..3c67507ff4 100644 --- a/tools/ioemu/hw/rtl8139.c +++ b/tools/ioemu/hw/rtl8139.c @@ -3406,6 +3406,7 @@ void pci_rtl8139_init(PCIBus *bus, NICInfo *nd) PCIRTL8139State *d; RTL8139State *s; uint8_t *pci_conf; + int instance; d = (PCIRTL8139State *)pci_register_device(bus, "RTL8139", sizeof(PCIRTL8139State), @@ -3460,10 +3461,10 @@ void pci_rtl8139_init(PCIBus *bus, NICInfo *nd) s->cplus_txbuffer_len = 0; s->cplus_txbuffer_offset = 0; - /* XXX: instance number ? */ - register_savevm("rtl8139", 0, 2, rtl8139_save, rtl8139_load, s); - register_savevm("rtl8139_pci", 0, 1, generic_pci_save, generic_pci_load, - &d->dev); + instance = pci_bus_num(bus) << 8 | s->pci_dev->devfn; + register_savevm("rtl8139", instance, 2, rtl8139_save, rtl8139_load, s); + register_savevm("rtl8139_pci", instance, 1, generic_pci_save, + generic_pci_load, &d->dev); #if RTL8139_ONBOARD_TIMER s->timer = qemu_new_timer(vm_clock, rtl8139_timer, s); |