mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-04 08:13:54 -06:00
vhost-vsock: add virtio sockets device
Implement the new virtio sockets device for host<->guest communication using the Sockets API. Most of the work is done in a vhost kernel driver so that virtio-vsock can hook into the AF_VSOCK address family. The QEMU vhost-vsock device handles configuration and live migration while the rx/tx happens in the vhost_vsock.ko Linux kernel driver. The vsock device must be given a CID (host-wide unique address): # qemu -device vhost-vsock-pci,id=vhost-vsock-pci0,guest-cid=3 ... For more information see: http://qemu-project.org/Features/VirtioVsock [Endianness fixes and virtio-ccw support by Claudio Imbrenda <imbrenda@linux.vnet.ibm.com>] Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com> [mst: rebase to master] Reviewed-by: Michael S. Tsirkin <mst@redhat.com> Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
This commit is contained in:
parent
947b205fdb
commit
fc0b9b0e1c
11 changed files with 631 additions and 0 deletions
|
@ -31,6 +31,9 @@
|
|||
#ifdef CONFIG_VHOST_SCSI
|
||||
#include "hw/virtio/vhost-scsi.h"
|
||||
#endif
|
||||
#ifdef CONFIG_VHOST_VSOCK
|
||||
#include "hw/virtio/vhost-vsock.h"
|
||||
#endif
|
||||
|
||||
typedef struct VirtIOPCIProxy VirtIOPCIProxy;
|
||||
typedef struct VirtIOBlkPCI VirtIOBlkPCI;
|
||||
|
@ -44,6 +47,7 @@ typedef struct VirtIOInputPCI VirtIOInputPCI;
|
|||
typedef struct VirtIOInputHIDPCI VirtIOInputHIDPCI;
|
||||
typedef struct VirtIOInputHostPCI VirtIOInputHostPCI;
|
||||
typedef struct VirtIOGPUPCI VirtIOGPUPCI;
|
||||
typedef struct VHostVSockPCI VHostVSockPCI;
|
||||
|
||||
/* virtio-pci-bus */
|
||||
|
||||
|
@ -329,6 +333,20 @@ struct VirtIOGPUPCI {
|
|||
VirtIOGPU vdev;
|
||||
};
|
||||
|
||||
#ifdef CONFIG_VHOST_VSOCK
|
||||
/*
|
||||
* vhost-vsock-pci: This extends VirtioPCIProxy.
|
||||
*/
|
||||
#define TYPE_VHOST_VSOCK_PCI "vhost-vsock-pci"
|
||||
#define VHOST_VSOCK_PCI(obj) \
|
||||
OBJECT_CHECK(VHostVSockPCI, (obj), TYPE_VHOST_VSOCK_PCI)
|
||||
|
||||
struct VHostVSockPCI {
|
||||
VirtIOPCIProxy parent_obj;
|
||||
VHostVSock vdev;
|
||||
};
|
||||
#endif
|
||||
|
||||
/* Virtio ABI version, if we increment this, we break the guest driver. */
|
||||
#define VIRTIO_PCI_ABI_VERSION 0
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue