Hello,
This is the 6th revision of the vfio-user client implementation. It is the first patch series (the previous revisions were RFCs) First of all, thank you for your time reviewing the RFC versions. The vfio-user framework consists of 3 parts: 1) The VFIO user protocol specification. 2) A client - the VFIO device in QEMU that encapsulates VFIO messages and sends them to the server. 3) A server - a remote process that emulates a device. This patchset implements parts 1 and 2. The libvfio-user project (https://github.com/nutanix/libvfio-user) can be used by a remote process to handle the protocol to implement the third part. We also have upstreamed a patch series that implement a server using QEMU. Contributors: John G Johnson <john.g.john...@oracle.com> John Levon <john.le...@nutanix.com> Thanos Makatos <thanos.maka...@nutanix.com> Elena Ufimtseva <elena.ufimts...@oracle.com> Jagannathan Raman <jag.ra...@oracle.com> John Johnson (23): vfio-user: add VFIO base abstract class vfio-user: add container IO ops vector vfio-user: add region cache vfio-user: add device IO ops vector vfio-user: Define type vfio_user_pci_dev_info vfio-user: connect vfio proxy to remote server vfio-user: define socket receive functions vfio-user: define socket send functions vfio-user: get device info vfio-user: get region info vfio-user: region read/write vfio-user: pci_user_realize PCI setup vfio-user: get and set IRQs vfio-user: forward msix BAR accesses to server vfio-user: proxy container connect/disconnect vfio-user: dma map/unmap operations vfio-user: add dma_unmap_all vfio-user: secure DMA support vfio-user: dma read/write operations vfio-user: pci reset vfio-user: add 'x-msg-timeout' option that specifies msg wait times vfio-user: add coalesced posted writes vfio-user: add trace points Thanos Makatos (1): vfio-user: introduce vfio-user protocol specification MAINTAINERS | 11 + docs/devel/index-internals.rst | 1 + docs/devel/vfio-user.rst | 1522 ++++++++++++++++++++++++++++++++ hw/vfio/Kconfig | 10 + hw/vfio/ap.c | 1 + hw/vfio/ccw.c | 7 +- hw/vfio/common.c | 648 ++++++++++++-- hw/vfio/igd.c | 23 +- hw/vfio/meson.build | 1 + hw/vfio/migration.c | 2 - hw/vfio/pci-quirks.c | 19 +- hw/vfio/pci.c | 926 ++++++++++++++----- hw/vfio/pci.h | 29 +- hw/vfio/platform.c | 2 + hw/vfio/trace-events | 15 + hw/vfio/user-protocol.h | 244 +++++ hw/vfio/user.c | 1904 ++++++++++++++++++++++++++++++++++++++++ hw/vfio/user.h | 112 +++ include/hw/vfio/vfio-common.h | 82 ++ 19 files changed, 5230 insertions(+), 329 deletions(-) create mode 100644 docs/devel/vfio-user.rst create mode 100644 hw/vfio/user-protocol.h create mode 100644 hw/vfio/user.c create mode 100644 hw/vfio/user.h -- 1.8.3.1