[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH v1 05/37] vhost-pci-slave: start the implementation
From: |
Wei Wang |
Subject: |
[Qemu-devel] [PATCH v1 05/37] vhost-pci-slave: start the implementation of vhost-pci-slave |
Date: |
Sat, 17 Dec 2016 18:43:15 +0800 |
Vhost-pci-slave uses a QEMU socket to talk to the master. This patch
associates the slave with the qemu sever socket.
Signed-off-by: Wei Wang <address@hidden>
---
hw/virtio/Makefile.objs | 1 +
hw/virtio/vhost-pci-slave.c | 53 +++++++++++++++++++++++++++++++++++++
include/hw/virtio/vhost-pci-slave.h | 16 +++++++++++
3 files changed, 70 insertions(+)
create mode 100644 hw/virtio/vhost-pci-slave.c
create mode 100644 include/hw/virtio/vhost-pci-slave.h
diff --git a/hw/virtio/Makefile.objs b/hw/virtio/Makefile.objs
index 95c4c30..3af6787 100644
--- a/hw/virtio/Makefile.objs
+++ b/hw/virtio/Makefile.objs
@@ -2,6 +2,7 @@ common-obj-y += virtio-rng.o
common-obj-$(CONFIG_VIRTIO_PCI) += virtio-pci.o
common-obj-y += virtio-bus.o
common-obj-y += virtio-mmio.o
+common-obj-y += vhost-pci-slave.o
obj-y += virtio.o virtio-balloon.o
obj-$(CONFIG_LINUX) += vhost.o vhost-backend.o vhost-user.o
diff --git a/hw/virtio/vhost-pci-slave.c b/hw/virtio/vhost-pci-slave.c
new file mode 100644
index 0000000..5ff9a09
--- /dev/null
+++ b/hw/virtio/vhost-pci-slave.c
@@ -0,0 +1,53 @@
+/*
+ * Vhost-pci Slave
+ *
+ * Copyright Intel Corp. 2016
+ *
+ * Authors:
+ * Wei Wang <address@hidden>
+ *
+ * This work is licensed under the terms of the GNU GPL, version 2 or later.
+ * See the COPYING file in the top-level directory.
+ */
+
+#include <qemu/osdep.h>
+
+#include "qapi/error.h"
+#include "qemu/error-report.h"
+#include "hw/virtio/vhost-pci-slave.h"
+
+VhostPCISlave *vp_slave;
+
+static CharDriverState *vp_slave_parse_chardev(const char *id)
+{
+ CharDriverState *chr = qemu_chr_find(id);
+ if (chr == NULL) {
+ error_report("chardev \"%s\" not found", id);
+ return NULL;
+ }
+
+ return chr;
+}
+
+int vhost_pci_slave_init(QemuOpts *opts)
+{
+ CharDriverState *chr;
+ const char *chardev_id = qemu_opt_get(opts, "chardev");
+
+ vp_slave = (VhostPCISlave *)g_malloc(sizeof(VhostPCISlave));
+ chr = vp_slave_parse_chardev(chardev_id);
+ if (!chr) {
+ return -1;
+ }
+ qemu_chr_fe_init(&vp_slave->chr_be, chr, &error_abort);
+
+ return 0;
+}
+
+int vhost_pci_slave_cleanup(void)
+{
+ qemu_chr_fe_deinit(&vp_slave->chr_be);
+ g_free(vp_slave);
+
+ return 0;
+}
diff --git a/include/hw/virtio/vhost-pci-slave.h
b/include/hw/virtio/vhost-pci-slave.h
new file mode 100644
index 0000000..c82c775
--- /dev/null
+++ b/include/hw/virtio/vhost-pci-slave.h
@@ -0,0 +1,16 @@
+#ifndef QEMU_VHOST_PCI_SLAVE_H
+#define QEMU_VHOST_PCI_SLAVE_H
+
+#include "sysemu/char.h"
+
+typedef struct VhostPCISlave {
+ CharBackend chr_be;
+} VhostPCISlave;
+
+extern VhostPCISlave *vp_slave;
+
+extern int vhost_pci_slave_init(QemuOpts *opts);
+
+extern int vhost_pci_slave_cleanup(void);
+
+#endif
--
2.7.4
- [Qemu-devel] [PATCH v1 00/37] Implementation of vhost-pci for inter-vm commucation, Wei Wang, 2016/12/17
- [Qemu-devel] [PATCH v1 01/37] vhost-pci-net: the fundamental vhost-pci-net device emulation, Wei Wang, 2016/12/17
- [Qemu-devel] [PATCH v1 02/37] vhost-pci-net: the fundamental implementation of vhost-pci-net-pci, Wei Wang, 2016/12/17
- [Qemu-devel] [PATCH v1 04/37] vl: add the vhost-pci-slave command line option, Wei Wang, 2016/12/17
- [Qemu-devel] [PATCH v1 03/37] vhost-user: share the vhost-user protocol related structures, Wei Wang, 2016/12/17
- [Qemu-devel] [PATCH v1 05/37] vhost-pci-slave: start the implementation of vhost-pci-slave,
Wei Wang <=
- [Qemu-devel] [PATCH v1 06/37] vhost-pci-slave: set up the fundamental handlers for the server socket, Wei Wang, 2016/12/17
- [Qemu-devel] [PATCH v1 08/37] vhost-pci-slave/msg: VHOST_USER_SET_FEATURES, Wei Wang, 2016/12/17
- [Qemu-devel] [PATCH v1 07/37] vhost-pci-slave/msg: VHOST_USER_GET_FEATURES, Wei Wang, 2016/12/17
- [Qemu-devel] [PATCH v1 09/37] vhost-pci-slave/msg: VHOST_USER_GET_PROTOCOL_FEATURES, Wei Wang, 2016/12/17
- [Qemu-devel] [PATCH v1 10/37] vhost-pci-slave/msg: VHOST_USER_SET_PROTOCOL_FEATURES, Wei Wang, 2016/12/17
- [Qemu-devel] [PATCH v1 11/37] vhost-user/msg: VHOST_USER_PROTOCOL_F_SET_DEVICE_ID, Wei Wang, 2016/12/17
- [Qemu-devel] [PATCH v1 12/37] vhost-pci-slave/msg: VHOST_USER_SET_DEVICE_ID, Wei Wang, 2016/12/17
- [Qemu-devel] [PATCH v1 14/37] vhost-pci-slave/msg: VHOST_USER_SET_OWNER, Wei Wang, 2016/12/17
- [Qemu-devel] [PATCH v1 13/37] vhost-pci-slave/msg: VHOST_USER_GET_QUEUE_NUM, Wei Wang, 2016/12/17
- [Qemu-devel] [PATCH v1 15/37] vhost-pci-slave/msg: VHOST_USER_SET_MEM_TABLE, Wei Wang, 2016/12/17