Hi, This series is based on previously discussed "[PATCH v4 00/29] vhost-user for input & GPU" and "vhost-user: define conventions for vhost-user backends" work. The GPU part is left off for now.
This series introduces a "vhost-user-backend": a convenience object for vhost-user devices, for common command line and initilization handling. As a simple showcase, a "vhost-user-input-pci" device is introduced, which can be used with the "contrib: add vhost-user-input" example. vhost-user-input isn't meant to be installed, discovered or used by libvirt: no installation is done (no vhost-user JSON file is provided either). thanks Marc-André Lureau (11): vhost-user: define conventions for vhost-user backends vhost-user: simplify vhost_user_init/vhost_user_cleanup libvhost-user: exit by default on VHOST_USER_NONE vhost-user: wrap some read/write with retry handling Add vhost-user-backend vhost-user: split vhost_user_read() vhost-user: add vhost_user_input_get_config() libvhost-user-glib: export vug_source_new() libvhost-user: add vu_queue_unpop() Add vhost-user-input-pci contrib: add vhost-user-input contrib/libvhost-user/libvhost-user-glib.h | 3 + contrib/libvhost-user/libvhost-user.h | 15 + hw/virtio/virtio-pci.h | 10 + include/hw/virtio/vhost-backend.h | 4 + include/hw/virtio/vhost-user-blk.h | 2 +- include/hw/virtio/vhost-user-scsi.h | 2 +- include/hw/virtio/vhost-user.h | 2 +- include/hw/virtio/virtio-input.h | 14 + include/sysemu/vhost-user-backend.h | 60 ++++ backends/cryptodev-vhost-user.c | 18 +- backends/vhost-user.c | 244 +++++++++++++ contrib/libvhost-user/libvhost-user-glib.c | 11 +- contrib/libvhost-user/libvhost-user.c | 19 +- contrib/vhost-user-input/main.c | 398 +++++++++++++++++++++ hw/block/vhost-user-blk.c | 22 +- hw/input/vhost-user-input.c | 110 ++++++ hw/scsi/vhost-user-scsi.c | 20 +- hw/virtio/vhost-stub.c | 4 +- hw/virtio/vhost-user.c | 118 +++++- hw/virtio/virtio-pci.c | 22 ++ net/vhost-user.c | 13 +- vl.c | 3 +- MAINTAINERS | 5 + Makefile | 3 + Makefile.objs | 1 + backends/Makefile.objs | 3 +- configure | 3 + contrib/vhost-user-input/Makefile.objs | 1 + docs/interop/vhost-user.json | 219 ++++++++++++ docs/interop/vhost-user.txt | 109 +++++- hw/input/Makefile.objs | 1 + qemu-options.hx | 20 ++ 32 files changed, 1392 insertions(+), 87 deletions(-) create mode 100644 include/sysemu/vhost-user-backend.h create mode 100644 backends/vhost-user.c create mode 100644 contrib/vhost-user-input/main.c create mode 100644 hw/input/vhost-user-input.c create mode 100644 contrib/vhost-user-input/Makefile.objs create mode 100644 docs/interop/vhost-user.json -- 2.20.0.rc1