aboutsummaryrefslogtreecommitdiffstats
path: root/tools
diff options
context:
space:
mode:
Diffstat (limited to 'tools')
-rw-r--r--tools/ioemu/hw/ne2000.c11
-rw-r--r--tools/ioemu/hw/pcnet.c8
-rw-r--r--tools/ioemu/hw/rtl8139.c9
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);