qemu-devel
[Top][All Lists]
Advanced

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

[Qemu-devel] [RFC PATCH V8 00/15] Virtio refactoring.


From: fred . konrad
Subject: [Qemu-devel] [RFC PATCH V8 00/15] Virtio refactoring.
Date: Wed, 19 Dec 2012 10:53:26 +0100

From: KONRAD Frederic <address@hidden>

You can clone that from here :
git.greensocs.com/home/greensocs/git/qemu_virtio.git virtio_refactoring_v8


The new modifications :
    * start the s390-virtio-bus refactoring.
    * add some virtio cleanup as moving VirtioBindings to VirtioBusClass and
      moving the VirtIODevice function pointers to VirtioDeviceClass, it breaks
      everything as all the device have not been refactored in this RFC.

For testing just remove the three last steps.

Is the s390 modifications working and making sense ?


Changes v7 -> v8:
    * Moved virtio-blk-pci PCI IDs to "Add the virtio-blk device.".
    * virtio : Added virtio_device_init which init children and plug the device.
    * virtio : Added virtio_common_cleanup in the same way as
      virtio_common_init.
    * virtio-blk : Moved virtio_plug_device to virtio-device init.
    * virtio-blk : Inline the virtio_blk_exit function in
      virtio_blk_device_exit and use virtio_common_cleanup.
    * virtio-s390-bus : Added virtio-s390-bus.
    * virtio-s390-device : Added a virtio-s390-bus.
    * virtio-blk-s390 : Switched to the new API.
    * virtio : removed function pointer.
    * virtio : removed VirtinBindings.
    * virtio : cleaned up init and exit function.

Changes v6 -> v7:
    * virtio-bus : Added virtio-bus-reset.
    * virtio-pci : Fixed virtio-pci-exit.
    * virtio-pci : Added virtio-pci-rst.
    * virtio-pci : Added VirtioPCIClass filled with an init function.
    * virtio-blk : Added virtio_blk_set_conf.
    * virtio-blk : QOM casts.
    * virtio-blk-pci : Switched to the new API.

Changes v5 -> v6:
    * Renamed virtio_common_init_ to virtio_init, modify virtio_common_init to
      allocate and call virtio_init. Drop the unused structure size parameters.
    * Renamed init/exit callback in VirtioBusClass.
    * Renamed virtio_blk_init virtio_blk_common_init.
    * Modified virtio_blk_init to call virtio_blk_common_init.

Changes v4 -> v5:
    * use ERROR_CLASS_GENERIC_ERROR in place of creating a new error type for
      the maximum device limitation. ( Peter )
    * Removed bus_in_use function. We assume that the virtio-bus is not in use,
      when plugin in. ( Peter )
    * Added virtio_bus_destroy_device().
    * Implemented the exit function of virtio-pci.
    * Implemented the init callback for virtio-pci ( must be modified, it still
      access vdev directly. ).
    * Implemented the exit callback for virtio-pci.
    * Started virtio-device refactoring.
    * Started virtio-blk refactoring. 

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 (15):
  qdev : add a maximum device allowed field for the bus.
  virtio-bus : Introduce virtio-bus
  virtio-pci-bus : Introduce virtio-pci-bus.
  virtio-pci : Refactor virtio-pci device.
  virtio-device : Refactor virtio-device.
  virtio-s390-bus : Add virtio-s390-bus.
  virtio-s390-device : create a virtio-s390-bus during init.
  virtio-blk : Add the virtio-blk device.
  virtio-blk-pci : Switch to new API.
  virtio-blk-s390 : Switch to the new API.
  virtio-blk : cleanup : use QOM cast.
  virtio-blk : cleanup : remove qdev field.
  virtio : Remove the function pointer.
  virtio : Remove VirtIOBindings.
  virtio : cleanup : init and exit function.

 hw/Makefile.objs     |   1 +
 hw/qdev-core.h       |   2 +
 hw/qdev-monitor.c    |  11 ++
 hw/s390-virtio-bus.c |  41 ++++++--
 hw/s390-virtio-bus.h |  14 +++
 hw/virtio-blk.c      | 129 +++++++++++++++---------
 hw/virtio-blk.h      |  21 ++++
 hw/virtio-bus.c      | 149 +++++++++++++++++++++++++++
 hw/virtio-bus.h      |  92 +++++++++++++++++
 hw/virtio-pci.c      | 278 ++++++++++++++++++++++++++++++++++++++-------------
 hw/virtio-pci.h      |  52 +++++++++-
 hw/virtio.c          | 154 ++++++++++++++++++----------
 hw/virtio.h          |  52 +++++-----
 13 files changed, 793 insertions(+), 203 deletions(-)
 create mode 100644 hw/virtio-bus.c
 create mode 100644 hw/virtio-bus.h

-- 
1.7.11.7




reply via email to

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