From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1Myn4b-0001yM-Vh for qemu-devel@nongnu.org; Fri, 16 Oct 2009 09:42:27 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1Myn4S-0001s0-4k for qemu-devel@nongnu.org; Fri, 16 Oct 2009 09:42:20 -0400 Received: from [199.232.76.173] (port=40525 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1Myn4Q-0001rW-TQ for qemu-devel@nongnu.org; Fri, 16 Oct 2009 09:42:14 -0400 Received: from mx1.redhat.com ([209.132.183.28]:29629) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1Myn4Q-0007nz-FK for qemu-devel@nongnu.org; Fri, 16 Oct 2009 09:42:14 -0400 Received: from int-mx08.intmail.prod.int.phx2.redhat.com (int-mx08.intmail.prod.int.phx2.redhat.com [10.5.11.21]) by mx1.redhat.com (8.13.8/8.13.8) with ESMTP id n9GDgDu5013707 for ; Fri, 16 Oct 2009 09:42:13 -0400 From: Gerd Hoffmann Date: Fri, 16 Oct 2009 15:42:02 +0200 Message-Id: <1255700523-15270-10-git-send-email-kraxel@redhat.com> In-Reply-To: <1255700523-15270-1-git-send-email-kraxel@redhat.com> References: <1255700523-15270-1-git-send-email-kraxel@redhat.com> Subject: [Qemu-devel] [RfC PATCH v3 09/10] ne2k_pci: qdev-ify. List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: Gerd Hoffmann Signed-off-by: Gerd Hoffmann --- 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