aboutsummaryrefslogtreecommitdiff
path: root/include/hw/virtio/vhost-backend.h
diff options
context:
space:
mode:
authorStefan Hajnoczi <stefanha@redhat.com>2016-08-16 13:27:22 +0100
committerMichael S. Tsirkin <mst@redhat.com>2016-09-10 00:28:08 +0300
commitfc0b9b0e1cbb49017ea882758634cf876be17bc3 (patch)
tree2776687fb2ca563fae8a0a8196da7a78fcdac64d /include/hw/virtio/vhost-backend.h
parent947b205fdb46941453f0dc43316e13741d45834c (diff)
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>
Diffstat (limited to 'include/hw/virtio/vhost-backend.h')
-rw-r--r--include/hw/virtio/vhost-backend.h5
1 files changed, 5 insertions, 0 deletions
diff --git a/include/hw/virtio/vhost-backend.h b/include/hw/virtio/vhost-backend.h
index cf7f0b5a69..6e90703cad 100644
--- a/include/hw/virtio/vhost-backend.h
+++ b/include/hw/virtio/vhost-backend.h
@@ -73,6 +73,9 @@ typedef int (*vhost_migration_done_op)(struct vhost_dev *dev,
typedef bool (*vhost_backend_can_merge_op)(struct vhost_dev *dev,
uint64_t start1, uint64_t size1,
uint64_t start2, uint64_t size2);
+typedef int (*vhost_vsock_set_guest_cid_op)(struct vhost_dev *dev,
+ uint64_t guest_cid);
+typedef int (*vhost_vsock_set_running_op)(struct vhost_dev *dev, int start);
typedef struct VhostOps {
VhostBackendType backend_type;
@@ -102,6 +105,8 @@ typedef struct VhostOps {
vhost_requires_shm_log_op vhost_requires_shm_log;
vhost_migration_done_op vhost_migration_done;
vhost_backend_can_merge_op vhost_backend_can_merge;
+ vhost_vsock_set_guest_cid_op vhost_vsock_set_guest_cid;
+ vhost_vsock_set_running_op vhost_vsock_set_running;
} VhostOps;
extern const VhostOps user_ops;