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