[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]
Subject: [RESEND Patch v1 05/37] vhost-pci-slave: start the implementation of vhost-pci-slave
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 <wei.w.wang@intel.com> --- 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..6b6deb2 --- /dev/null +++ b/hw/virtio/vhost-pci-slave.c @@ -0,0 +1,53 @@ +/* + * Vhost-pci Slave + * + * Copyright Intel Corp. 2016 + * + * Authors: + * Wei Wang <wei.w.wang@intel.com> + * + * 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 = 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
[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]