A lot of our vhost-user stubs are large chunks of boilerplate that do (mostly) the same thing. This series continues the cleanups by splitting the vhost-user-base and vhost-user-generic implementations. After adding a new vq_size property the rng, gpio and i2c vhost-user devices become simple specialisations of the common base defining the ID, number of queues and potentially the config handling.
I've also added Manos' vhost-user-sound and Leo's vhost-user-input stubs which are based on the same base. Changes ------- v9 - re-base and fix conflicts - add Leo's vhost-user-input series v8 - scrubbed errant Message-Id v7 - various review comments - move to async teardown (fixes CI failure) v6 - re-base to current master - make vhost-user-device abstract - mention abstractness in docs v5 - addressing comments and tags - improved the docs v4 - dropped the F_TRANSPORT work for another series - added vhost-user-sound Alex Bennée (6): virtio: split into vhost-user-base and vhost-user-device hw/virtio: convert vhost-user-base to async shutdown hw/virtio: derive vhost-user-rng from vhost-user-base hw/virtio: derive vhost-user-gpio from vhost-user-base hw/virtio: derive vhost-user-i2c from vhost-user-base docs/system: add a basic enumeration of vhost-user devices Leo Yan (4): hw/virtio: Support set_config() callback in vhost-user-base docs/system: Add vhost-user-input documentation hw/virtio: Move vhost-user-input into virtio folder hw/virtio: derive vhost-user-input from vhost-user-base Manos Pitsidianakis (1): hw/virtio: add vhost-user-snd and virtio-snd-pci devices MAINTAINERS | 16 +- docs/system/device-emulation.rst | 1 + docs/system/devices/vhost-user-input.rst | 45 ++ docs/system/devices/vhost-user-rng.rst | 2 + docs/system/devices/vhost-user.rst | 72 +++- ...{vhost-user-device.h => vhost-user-base.h} | 21 +- include/hw/virtio/vhost-user-gpio.h | 25 +- include/hw/virtio/vhost-user-i2c.h | 14 +- include/hw/virtio/vhost-user-rng.h | 13 +- include/hw/virtio/vhost-user-snd.h | 24 ++ include/hw/virtio/virtio-input.h | 6 +- hw/input/vhost-user-input.c | 136 ------ hw/virtio/vhost-user-base.c | 371 ++++++++++++++++ hw/virtio/vhost-user-device-pci.c | 13 +- hw/virtio/vhost-user-device.c | 338 +-------------- hw/virtio/vhost-user-gpio.c | 407 +----------------- hw/virtio/vhost-user-i2c.c | 272 +----------- hw/virtio/vhost-user-input-pci.c | 3 - hw/virtio/vhost-user-input.c | 58 +++ hw/virtio/vhost-user-rng.c | 294 +------------ hw/virtio/vhost-user-snd-pci.c | 75 ++++ hw/virtio/vhost-user-snd.c | 67 +++ hw/input/meson.build | 1 - hw/virtio/Kconfig | 5 + hw/virtio/meson.build | 27 +- 25 files changed, 850 insertions(+), 1456 deletions(-) create mode 100644 docs/system/devices/vhost-user-input.rst rename include/hw/virtio/{vhost-user-device.h => vhost-user-base.h} (71%) create mode 100644 include/hw/virtio/vhost-user-snd.h delete mode 100644 hw/input/vhost-user-input.c create mode 100644 hw/virtio/vhost-user-base.c create mode 100644 hw/virtio/vhost-user-input.c create mode 100644 hw/virtio/vhost-user-snd-pci.c create mode 100644 hw/virtio/vhost-user-snd.c -- 2.39.2