qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-devel] [RfC PATCH v3 09/10] ne2k_pci: qdev-ify.


From: Gerd Hoffmann
Subject: [Qemu-devel] [RfC PATCH v3 09/10] ne2k_pci: qdev-ify.
Date: Fri, 16 Oct 2009 15:42:02 +0200

Signed-off-by: Gerd Hoffmann <address@hidden>
---
 hw/ne2000.c |   27 +++++++++++++++++++++------
 1 files changed, 21 insertions(+), 6 deletions(-)

diff --git a/hw/ne2000.c b/hw/ne2000.c
index 7ce56ff..f296b10 100644
--- a/hw/ne2000.c
+++ b/hw/ne2000.c
@@ -758,22 +758,37 @@ static int pci_ne2000_init(PCIDevice *pci_dev)
                            PCI_ADDRESS_SPACE_IO, ne2000_map);
     s = &d->ne2000;
     s->irq = d->dev.irq[0];
-    qdev_get_macaddr(&d->dev.qdev, s->c.macaddr.a);
+
+    qemu_macaddr_default_if_unset(&s->c.macaddr);
     ne2000_reset(s);
-    s->vc = qdev_get_vlan_client(&d->dev.qdev,
+    s->vc = qemu_new_vlan_client(s->c.vlan, s->c.peer,
+                                 pci_dev->qdev.info->name, pci_dev->qdev.id,
                                  ne2000_can_receive, ne2000_receive, NULL,
                                  ne2000_cleanup, s);
-
     qemu_format_nic_info_str(s->vc, s->c.macaddr.a);
 
     register_savevm("ne2000", -1, 3, pci_ne2000_save, pci_ne2000_load, d);
     return 0;
 }
 
+static int pci_ne2000_exit(PCIDevice *pci_dev)
+{
+    PCINE2000State *d = DO_UPCAST(PCINE2000State, dev, pci_dev);
+    NE2000State *s = &d->ne2000;
+
+    qemu_del_vlan_client(s->vc);
+    return 0;
+}
+
 static PCIDeviceInfo ne2000_info = {
-    .qdev.name = "ne2k_pci",
-    .qdev.size = sizeof(PCINE2000State),
-    .init      = pci_ne2000_init,
+    .qdev.name  = "ne2k_pci",
+    .qdev.size  = sizeof(PCINE2000State),
+    .init       = pci_ne2000_init,
+    .exit       = pci_ne2000_exit,
+    .qdev.props = (Property[]) {
+        DEFINE_NIC_PROPERTIES(PCINE2000State, ne2000.c),
+        DEFINE_PROP_END_OF_LIST(),
+    }
 };
 
 static void ne2000_register_devices(void)
-- 
1.6.2.5





reply via email to

[Prev in Thread] Current Thread [Next in Thread]