From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([208.118.235.92]:35106) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TeU7y-0002JL-NK for qemu-devel@nongnu.org; Fri, 30 Nov 2012 12:11:56 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1TeU7u-0000QN-Il for qemu-devel@nongnu.org; Fri, 30 Nov 2012 12:11:50 -0500 Received: from greensocs.com ([87.106.252.221]:41196 helo=s15328186.onlinehome-server.info) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TeU7u-0000OV-CI for qemu-devel@nongnu.org; Fri, 30 Nov 2012 12:11:46 -0500 From: fred.konrad@greensocs.com Date: Fri, 30 Nov 2012 18:12:04 +0100 Message-Id: <1354295530-18644-1-git-send-email-fred.konrad@greensocs.com> Subject: [Qemu-devel] [RFC PATCH V4 0/6] Virtio refactoring. List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: peter.maydell@linaro.org, aliguori@us.ibm.com, e.voevodin@samsung.com, mark.burton@greensocs.com, stefanha@redhat.com, cornelia.huck@de.ibm.com, afaerber@suse.de, fred.konrad@greensocs.com From: KONRAD Frederic I send this RFC, to know if you're all happy with the current structure of the device (QOM). This patch-set is : * Introducing a virtio-bus which extends bus-state. * Implementing a virtio-pci-bus which extends virtio-bus. * Implementing a virtio-pci device which has a virtio-pci-bus. * Implementing virtio-device which extends device-states. * Implementing a virtio-blk which extends virtio-device. The first patch is a modification of qdev-monitor.c, it forces the function qbus_find_recursive(..) to return a non-full bus, and return an error if the desired bus ( with "bus=" option ) is full. It add a max_dev field to the bus_state structure. If max_dev=0 it has no limitation, if not the maximum amount of device connected to the bus is max_dev. Changes v3 -> v4: * Added virtio-bus.o in Makefile.objs ( accidentally dropped from v3 ). * *const* TypeInfo in virtio-bus. * Introduced virtio-pci-bus. * Reintroduced virtio-pci. * Introduced virtio-device. * Started virtio-blk refactoring. * Added an error type in qerror.h for the "bus full" error. Changes v2 -> v3: * Added VirtioBusClass. * Renamed VirtioBus -> VirtioBusState. * Renamed qbus -> parent_obj. * Plug the device only in a non-full bus. Changes v1 -> v2: * All the little fix you suggest ( License, Debug printf, naming convention, ...) * Added get_virtio_device_id(), and remove the pci_id* from the VirtioBus structure. * Added virtio_bus_reset(). * Added cast macros VIRTIO_BUS. * Added virtio_bus_plug_device. * Replaced the old-style "bus->qbus" by BUS() macro. Fred. KONRAD Frederic (6): qdev : add a maximum device allowed field for the bus. virtio-bus : Introduce virtio-bus virtio-pci-bus : Introduce virtio-pci-bus. virtio-pci : Introduce virtio-pci device. virtio-device : Introduce virtio-device. virtio-blk : Refactoring virtio-blk. hw/Makefile.objs | 1 + hw/qdev-core.h | 2 + hw/qdev-monitor.c | 11 +++++ hw/virtio-blk.c | 61 ++++++++++++++++++++++++++++ hw/virtio-blk.h | 16 +++++++ hw/virtio-bus.c | 114 +++++++++++++++++++++++++++++++++++++++++++++++++++++ hw/virtio-bus.h | 78 ++++++++++++++++++++++++++++++++++++ hw/virtio-pci.c | 91 ++++++++++++++++++++++++++++++++++++++++++ hw/virtio-pci.h | 34 +++++++++++++++- hw/virtio.c | 28 +++++++++++++ hw/virtio.h | 27 ++++++++++++ qerror.h | 3 + 12 files changed, 464 insertions(+), 2 deletions(-) create mode 100644 hw/virtio-bus.c create mode 100644 hw/virtio-bus.h