[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 19/26] Add pci_ne2000_{save/load} functions, then re
From: |
Juan Quintela |
Subject: |
[Qemu-devel] [PATCH 19/26] Add pci_ne2000_{save/load} functions, then remove pci_dev NE2000State field |
Date: |
Mon, 24 Aug 2009 18:42:53 +0200 |
Signed-off-by: Juan Quintela <address@hidden>
---
hw/ne2000.c | 43 ++++++++++++++++++++++++++++---------------
1 files changed, 28 insertions(+), 15 deletions(-)
diff --git a/hw/ne2000.c b/hw/ne2000.c
index 1c47c84..c983bc5 100644
--- a/hw/ne2000.c
+++ b/hw/ne2000.c
@@ -141,7 +141,6 @@ typedef struct NE2000State {
uint8_t mult[8]; /* multicast mask array */
qemu_irq irq;
int isa_io_base;
- PCIDevice *pci_dev;
VLANClientState *vc;
uint8_t macaddr[6];
uint8_t mem[NE2000_MEM_SIZE];
@@ -653,14 +652,11 @@ static uint32_t ne2000_reset_ioport_read(void *opaque,
uint32_t addr)
return 0;
}
-static void ne2000_save(QEMUFile* f,void* opaque)
+static void ne2000_save(QEMUFile* f, void* opaque)
{
NE2000State* s = opaque;
uint32_t tmp;
- if (s->pci_dev)
- pci_device_save(s->pci_dev, f);
-
qemu_put_8s(f, &s->rxcr);
qemu_put_8s(f, &s->cmd);
@@ -684,21 +680,14 @@ static void ne2000_save(QEMUFile* f,void* opaque)
qemu_put_buffer(f, s->mem, NE2000_MEM_SIZE);
}
-static int ne2000_load(QEMUFile* f,void* opaque,int version_id)
+static int ne2000_load(QEMUFile* f, void* opaque, int version_id)
{
NE2000State* s = opaque;
- int ret;
uint32_t tmp;
if (version_id > 3)
return -EINVAL;
- if (s->pci_dev && version_id >= 3) {
- ret = pci_device_load(s->pci_dev, f);
- if (ret < 0)
- return ret;
- }
-
if (version_id >= 2) {
qemu_get_8s(f, &s->rxcr);
} else {
@@ -727,6 +716,31 @@ static int ne2000_load(QEMUFile* f,void* opaque,int
version_id)
return 0;
}
+static void pci_ne2000_save(QEMUFile* f, void* opaque)
+{
+ PCINE2000State* s = opaque;
+
+ pci_device_save(&s->dev, f);
+ ne2000_save(f, &s->ne2000);
+}
+
+static int pci_ne2000_load(QEMUFile* f, void* opaque, int version_id)
+{
+ PCINE2000State* s = opaque;
+ int ret;
+
+ if (version_id > 3)
+ return -EINVAL;
+
+ if (version_id >= 3) {
+ ret = pci_device_load(&s->dev, f);
+ if (ret < 0)
+ return ret;
+ }
+
+ return ne2000_load(f, &s->ne2000, version_id);
+}
+
static void isa_ne2000_cleanup(VLANClientState *vc)
{
NE2000State *s = vc->opaque;
@@ -820,7 +834,6 @@ static void pci_ne2000_init(PCIDevice *pci_dev)
PCI_ADDRESS_SPACE_IO, ne2000_map);
s = &d->ne2000;
s->irq = d->dev.irq[0];
- s->pci_dev = pci_dev;
qdev_get_macaddr(&d->dev.qdev, s->macaddr);
ne2000_reset(s);
s->vc = qdev_get_vlan_client(&d->dev.qdev,
@@ -829,7 +842,7 @@ static void pci_ne2000_init(PCIDevice *pci_dev)
qemu_format_nic_info_str(s->vc, s->macaddr);
- register_savevm("ne2000", -1, 3, ne2000_save, ne2000_load, s);
+ register_savevm("ne2000", -1, 3, pci_ne2000_save, pci_ne2000_load, d);
}
static PCIDeviceInfo ne2000_info = {
--
1.6.2.5
- [Qemu-devel] [PATCH 09/26] lsi53c895a: rename PCIDevice field from pci_dev to dev (consistence), (continued)
- [Qemu-devel] [PATCH 09/26] lsi53c895a: rename PCIDevice field from pci_dev to dev (consistence), Juan Quintela, 2009/08/24
- [Qemu-devel] [PATCH 10/26] lsi53c895a: LSIState is a DeviceHost, Juan Quintela, 2009/08/24
- [Qemu-devel] [PATCH 12/26] vga: Rename vga_state -> vga, Juan Quintela, 2009/08/24
- [Qemu-devel] [PATCH 11/26] Introduce vga_common_reset() to be able to typcheck vga_reset(), Juan Quintela, 2009/08/24
- [Qemu-devel] [PATCH 14/26] usb-ohci: Change casts to DO_UPCAST() for OHCIPCIState, Juan Quintela, 2009/08/24
- [Qemu-devel] [PATCH 13/26] Everything outside of vga.c should use VGACommonState, Juan Quintela, 2009/08/24
- [Qemu-devel] [PATCH 15/26] ne2000: remove casts from void *, Juan Quintela, 2009/08/24
- [Qemu-devel] [PATCH 16/26] ne2000: pci_dev has this very value with the right type, Juan Quintela, 2009/08/24
- [Qemu-devel] [PATCH 17/26] ne2000: Change casts to DO_UPCAST() for PCINE2000State, Juan Quintela, 2009/08/24
- [Qemu-devel] [PATCH 18/26] We need PCINE2000State for save/load functions, Juan Quintela, 2009/08/24
- [Qemu-devel] [PATCH 19/26] Add pci_ne2000_{save/load} functions, then remove pci_dev NE2000State field,
Juan Quintela <=
- [Qemu-devel] [PATCH 20/26] cirrus_vga: remove pointless cast from void *, Juan Quintela, 2009/08/24
- [Qemu-devel] [PATCH 22/26] Add pci_cirrus_vga_{save/load} functions, then remove vga.pci_dev use, Juan Quintela, 2009/08/24
- [Qemu-devel] [PATCH 24/26] pcnet: remove useless casts This are casts to the very type of the function, Juan Quintela, 2009/08/24
- [Qemu-devel] [PATCH 23/26] pcnet: Change casts to DO_UPCAST() for PCIPCNetState, Juan Quintela, 2009/08/24
- [Qemu-devel] [PATCH 21/26] cirrus_vga: Change casts to DO_UPCAST() for PCICirrusVGAState, Juan Quintela, 2009/08/24
- [Qemu-devel] [PATCH 26/26] e1000 cleanup, Juan Quintela, 2009/08/24
- [Qemu-devel] [PATCH 25/26] pcnet: Add pci_pcnet_{save/load} functions, then remove PCNetState pci_dev field, Juan Quintela, 2009/08/24
- Re: [Qemu-devel] [PATCH 00/26] Indirection Cleanup, Gerd Hoffmann, 2009/08/25