From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([208.118.235.92]:59535) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TPGbd-0004Jo-BZ for qemu-devel@nongnu.org; Fri, 19 Oct 2012 13:43:39 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1TPGbX-0004b5-Ep for qemu-devel@nongnu.org; Fri, 19 Oct 2012 13:43:33 -0400 Received: from mx1.redhat.com ([209.132.183.28]:58341) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TPGbX-0004aq-5L for qemu-devel@nongnu.org; Fri, 19 Oct 2012 13:43:27 -0400 From: Stefan Hajnoczi Date: Fri, 19 Oct 2012 19:08:19 +0200 Message-Id: <1350666502-11224-1-git-send-email-stefanha@redhat.com> Subject: [Qemu-devel] [PATCH v2 0/3] net: convert NetClientState to QOM List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: Paolo Bonzini , Anthony Liguori , lersek@redhat.com, Stefan Hajnoczi This series converts NetClientState from a plain C struct to QOM. This means emulated NICs and netdevs now derive from the NetClientState base class. There should be no user-visible change. Converting the net subsystem to QOM opens the door to the following improvements which can be built on top of this series: 1. Lifecycle cleanup to make hotplug saner and allow associating a NIC with a new netdev at runtime. Really we should use the QOM lifecycle! 2. Exposing NICs and netdevs in the QOM tree so they can be configured and inspected at runtime. I have tested virtio and e1000 with -netdev tap and user. Build tested all targets on Linux host. v2: * Use object_dynamic_cast() instead of adding net_is_tap() function [Paolo] * Use "tap-net-client" type name for win32 and unix tap [Paolo] Stefan Hajnoczi (3): net: add public qemu_net_poll() function net: extract notify_link_status_changed() function net: extract notify_link_status_changed() function hw/cadence_gem.c | 27 +++++++--- hw/dp8393x.c | 41 ++++++++++---- hw/e1000.c | 32 +++++++---- hw/eepro100.c | 27 +++++++--- hw/etraxfs_eth.c | 27 +++++++--- hw/lan9118.c | 27 +++++++--- hw/lance.c | 18 +------ hw/mcf_fec.c | 32 ++++++++--- hw/milkymist-minimac2.c | 26 ++++++--- hw/mipsnet.c | 25 ++++++--- hw/musicpal.c | 26 ++++++--- hw/ne2000-isa.c | 17 +----- hw/ne2000.c | 23 +++++--- hw/ne2000.h | 2 + hw/opencores_eth.c | 28 +++++++--- hw/pcnet-pci.c | 18 +------ hw/pcnet.c | 36 +++++++++++-- hw/pcnet.h | 3 +- hw/rtl8139.c | 28 +++++++--- hw/smc91c111.c | 26 ++++++--- hw/spapr_llan.c | 24 ++++++--- hw/stellaris_enet.c | 26 ++++++--- hw/usb/dev-network.c | 25 ++++++--- hw/vhost_net.c | 11 ++-- hw/virtio-net.c | 42 ++++++++++----- hw/xen_nic.c | 29 +++++++--- hw/xgmac.c | 26 ++++++--- hw/xilinx_axienet.c | 26 ++++++--- hw/xilinx_ethlite.c | 26 ++++++--- net.c | 140 +++++++++++++++++++++++++++++++++--------------- net.h | 35 ++++++++---- net/dump.c | 30 ++++++++--- net/hub.c | 64 +++++++++++++--------- net/slirp.c | 29 +++++++--- net/socket.c | 74 ++++++++++++++++--------- net/tap-win32.c | 27 ++++++++-- net/tap.c | 77 +++++++++++++------------- net/tap.h | 4 ++ net/vde.c | 28 ++++++++-- 39 files changed, 843 insertions(+), 389 deletions(-) -- 1.7.11.7