All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Michael S. Tsirkin" <mst@redhat.com>
To: qemu-devel@nongnu.org
Cc: Peter Maydell <peter.maydell@linaro.org>,
	Juan Quintela <quintela@redhat.com>,
	Laurent Vivier <lvivier@redhat.com>, Greg Kurz <groug@kaod.org>
Subject: [Qemu-devel] [PULL 23/44] virtio: split virtio 9p bits from virtio-pci
Date: Mon, 14 Jan 2019 20:36:25 -0500	[thread overview]
Message-ID: <20190115003812.11329-24-mst@redhat.com> (raw)
In-Reply-To: <20190115003812.11329-1-mst@redhat.com>

From: Juan Quintela <quintela@redhat.com>

Reviewed-by: Laurent Vivier <lvivier@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Acked-by: Greg Kurz <groug@kaod.org>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
---
 hw/virtio/virtio-pci.h    | 20 ---------
 hw/virtio/virtio-9p-pci.c | 88 +++++++++++++++++++++++++++++++++++++++
 hw/virtio/virtio-pci.c    | 54 ------------------------
 hw/virtio/Makefile.objs   |  1 +
 tests/Makefile.include    |  2 +-
 5 files changed, 90 insertions(+), 75 deletions(-)
 create mode 100644 hw/virtio/virtio-9p-pci.c

diff --git a/hw/virtio/virtio-pci.h b/hw/virtio/virtio-pci.h
index a2988ef309..94af08410a 100644
--- a/hw/virtio/virtio-pci.h
+++ b/hw/virtio/virtio-pci.h
@@ -28,9 +28,6 @@
 #include "hw/virtio/vhost-user-blk.h"
 #endif
 
-#ifdef CONFIG_VIRTFS
-#include "hw/9pfs/virtio-9p.h"
-#endif
 #ifdef CONFIG_VHOST_SCSI
 #include "hw/virtio/vhost-scsi.h"
 #endif
@@ -286,23 +283,6 @@ struct VirtIONetPCI {
     VirtIONet vdev;
 };
 
-/*
- * virtio-9p-pci: This extends VirtioPCIProxy.
- */
-
-#ifdef CONFIG_VIRTFS
-
-#define TYPE_VIRTIO_9P_PCI "virtio-9p-pci-base"
-#define VIRTIO_9P_PCI(obj) \
-        OBJECT_CHECK(V9fsPCIState, (obj), TYPE_VIRTIO_9P_PCI)
-
-typedef struct V9fsPCIState {
-    VirtIOPCIProxy parent_obj;
-    V9fsVirtioState vdev;
-} V9fsPCIState;
-
-#endif
-
 /*
  * virtio-input-pci: This extends VirtioPCIProxy.
  */
diff --git a/hw/virtio/virtio-9p-pci.c b/hw/virtio/virtio-9p-pci.c
new file mode 100644
index 0000000000..7bf1130966
--- /dev/null
+++ b/hw/virtio/virtio-9p-pci.c
@@ -0,0 +1,88 @@
+/*
+ * Virtio 9p PCI Bindings
+ *
+ * Copyright IBM, Corp. 2010
+ *
+ * Authors:
+ *  Anthony Liguori   <aliguori@us.ibm.com>
+ *
+ * This work is licensed under the terms of the GNU GPL, version 2.  See
+ * the COPYING file in the top-level directory.
+ *
+ * Contributions after 2012-01-13 are licensed under the terms of the
+ * GNU GPL, version 2 or (at your option) any later version.
+ */
+
+#include "qemu/osdep.h"
+
+#include "virtio-pci.h"
+#include "hw/9pfs/virtio-9p.h"
+
+/*
+ * virtio-9p-pci: This extends VirtioPCIProxy.
+ */
+
+#define TYPE_VIRTIO_9P_PCI "virtio-9p-pci-base"
+#define VIRTIO_9P_PCI(obj) \
+        OBJECT_CHECK(V9fsPCIState, (obj), TYPE_VIRTIO_9P_PCI)
+
+typedef struct V9fsPCIState {
+    VirtIOPCIProxy parent_obj;
+    V9fsVirtioState vdev;
+} V9fsPCIState;
+
+static void virtio_9p_pci_realize(VirtIOPCIProxy *vpci_dev, Error **errp)
+{
+    V9fsPCIState *dev = VIRTIO_9P_PCI(vpci_dev);
+    DeviceState *vdev = DEVICE(&dev->vdev);
+
+    qdev_set_parent_bus(vdev, BUS(&vpci_dev->bus));
+    object_property_set_bool(OBJECT(vdev), true, "realized", errp);
+}
+
+static Property virtio_9p_pci_properties[] = {
+    DEFINE_PROP_BIT("ioeventfd", VirtIOPCIProxy, flags,
+                    VIRTIO_PCI_FLAG_USE_IOEVENTFD_BIT, true),
+    DEFINE_PROP_UINT32("vectors", VirtIOPCIProxy, nvectors, 2),
+    DEFINE_PROP_END_OF_LIST(),
+};
+
+static void virtio_9p_pci_class_init(ObjectClass *klass, void *data)
+{
+    DeviceClass *dc = DEVICE_CLASS(klass);
+    PCIDeviceClass *pcidev_k = PCI_DEVICE_CLASS(klass);
+    VirtioPCIClass *k = VIRTIO_PCI_CLASS(klass);
+
+    k->realize = virtio_9p_pci_realize;
+    pcidev_k->vendor_id = PCI_VENDOR_ID_REDHAT_QUMRANET;
+    pcidev_k->device_id = PCI_DEVICE_ID_VIRTIO_9P;
+    pcidev_k->revision = VIRTIO_PCI_ABI_VERSION;
+    pcidev_k->class_id = 0x2;
+    set_bit(DEVICE_CATEGORY_STORAGE, dc->categories);
+    dc->props = virtio_9p_pci_properties;
+}
+
+static void virtio_9p_pci_instance_init(Object *obj)
+{
+    V9fsPCIState *dev = VIRTIO_9P_PCI(obj);
+
+    virtio_instance_init_common(obj, &dev->vdev, sizeof(dev->vdev),
+                                TYPE_VIRTIO_9P);
+}
+
+static const VirtioPCIDeviceTypeInfo virtio_9p_pci_info = {
+    .base_name              = TYPE_VIRTIO_9P_PCI,
+    .generic_name           = "virtio-9p-pci",
+    .transitional_name      = "virtio-9p-pci-transitional",
+    .non_transitional_name  = "virtio-9p-pci-non-transitional",
+    .instance_size = sizeof(V9fsPCIState),
+    .instance_init = virtio_9p_pci_instance_init,
+    .class_init    = virtio_9p_pci_class_init,
+};
+
+static void virtio_9p_pci_register(void)
+{
+    virtio_pci_types_register(&virtio_9p_pci_info);
+}
+
+type_init(virtio_9p_pci_register)
diff --git a/hw/virtio/virtio-pci.c b/hw/virtio/virtio-pci.c
index a01c9dd46f..a62006c72c 100644
--- a/hw/virtio/virtio-pci.c
+++ b/hw/virtio/virtio-pci.c
@@ -1077,57 +1077,6 @@ static void virtio_pci_vmstate_change(DeviceState *d, bool running)
     }
 }
 
-#ifdef CONFIG_VIRTFS
-static void virtio_9p_pci_realize(VirtIOPCIProxy *vpci_dev, Error **errp)
-{
-    V9fsPCIState *dev = VIRTIO_9P_PCI(vpci_dev);
-    DeviceState *vdev = DEVICE(&dev->vdev);
-
-    qdev_set_parent_bus(vdev, BUS(&vpci_dev->bus));
-    object_property_set_bool(OBJECT(vdev), true, "realized", errp);
-}
-
-static Property virtio_9p_pci_properties[] = {
-    DEFINE_PROP_BIT("ioeventfd", VirtIOPCIProxy, flags,
-                    VIRTIO_PCI_FLAG_USE_IOEVENTFD_BIT, true),
-    DEFINE_PROP_UINT32("vectors", VirtIOPCIProxy, nvectors, 2),
-    DEFINE_PROP_END_OF_LIST(),
-};
-
-static void virtio_9p_pci_class_init(ObjectClass *klass, void *data)
-{
-    DeviceClass *dc = DEVICE_CLASS(klass);
-    PCIDeviceClass *pcidev_k = PCI_DEVICE_CLASS(klass);
-    VirtioPCIClass *k = VIRTIO_PCI_CLASS(klass);
-
-    k->realize = virtio_9p_pci_realize;
-    pcidev_k->vendor_id = PCI_VENDOR_ID_REDHAT_QUMRANET;
-    pcidev_k->device_id = PCI_DEVICE_ID_VIRTIO_9P;
-    pcidev_k->revision = VIRTIO_PCI_ABI_VERSION;
-    pcidev_k->class_id = 0x2;
-    set_bit(DEVICE_CATEGORY_STORAGE, dc->categories);
-    dc->props = virtio_9p_pci_properties;
-}
-
-static void virtio_9p_pci_instance_init(Object *obj)
-{
-    V9fsPCIState *dev = VIRTIO_9P_PCI(obj);
-
-    virtio_instance_init_common(obj, &dev->vdev, sizeof(dev->vdev),
-                                TYPE_VIRTIO_9P);
-}
-
-static const VirtioPCIDeviceTypeInfo virtio_9p_pci_info = {
-    .base_name              = TYPE_VIRTIO_9P_PCI,
-    .generic_name           = "virtio-9p-pci",
-    .transitional_name      = "virtio-9p-pci-transitional",
-    .non_transitional_name  = "virtio-9p-pci-non-transitional",
-    .instance_size = sizeof(V9fsPCIState),
-    .instance_init = virtio_9p_pci_instance_init,
-    .class_init    = virtio_9p_pci_class_init,
-};
-#endif /* CONFIG_VIRTFS */
-
 /*
  * virtio-pci: This is the PCIDevice which has a virtio-pci-bus.
  */
@@ -2539,9 +2488,6 @@ static void virtio_pci_register_types(void)
     type_register_static(&virtio_pci_info);
 
     /* Implementations: */
-#ifdef CONFIG_VIRTFS
-    virtio_pci_types_register(&virtio_9p_pci_info);
-#endif
     virtio_pci_types_register(&virtio_blk_pci_info);
 #if defined(CONFIG_VHOST_USER) && defined(CONFIG_LINUX)
     virtio_pci_types_register(&vhost_user_blk_pci_info);
diff --git a/hw/virtio/Makefile.objs b/hw/virtio/Makefile.objs
index 9e33104ce6..3e655fdce6 100644
--- a/hw/virtio/Makefile.objs
+++ b/hw/virtio/Makefile.objs
@@ -17,6 +17,7 @@ obj-$(CONFIG_VIRTIO_INPUT_HOST) += virtio-input-host-pci.o
 obj-$(CONFIG_VIRTIO_INPUT) += virtio-input-pci.o
 obj-$(CONFIG_VIRTIO_RNG) += virtio-rng-pci.o
 obj-$(CONFIG_VIRTIO_BALLOON) += virtio-balloon-pci.o
+obj-$(CONFIG_VIRTIO_9P) += virtio-9p-pci.o
 endif
 endif
 
diff --git a/tests/Makefile.include b/tests/Makefile.include
index 0d76ec6a74..c2845b67aa 100644
--- a/tests/Makefile.include
+++ b/tests/Makefile.include
@@ -152,7 +152,7 @@ check-qtest-virtio-y += tests/virtio-blk-test$(EXESUF)
 check-qtest-virtio-$(CONFIG_VIRTIO_RNG) += tests/virtio-rng-test$(EXESUF)
 check-qtest-virtio-y += tests/virtio-scsi-test$(EXESUF)
 ifeq ($(CONFIG_VIRTIO)$(CONFIG_VIRTFS)$(CONFIG_PCI),yyy)
-check-qtest-virtio-y += tests/virtio-9p-test$(EXESUF)
+check-qtest-virtio-$(CONFIG_VIRTIO_9P) += tests/virtio-9p-test$(EXESUF)
 endif
 check-qtest-virtio-y += tests/virtio-serial-test$(EXESUF)
 check-qtest-virtio-y += $(check-qtest-virtioserial-y)
-- 
MST

  parent reply	other threads:[~2019-01-15  1:41 UTC|newest]

Thread overview: 47+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-01-15  1:35 [Qemu-devel] [PULL 00/44] pci, pc, virtio: fixes, features Michael S. Tsirkin
2019-01-15  1:35 ` [Qemu-devel] [PULL 01/44] pci/pcie: stop plug/unplug if the slot is locked Michael S. Tsirkin
2019-01-15  1:35 ` [Qemu-devel] [PULL 02/44] msix: make pba size math more uniform Michael S. Tsirkin
2019-01-15  1:35 ` [Qemu-devel] [PULL 03/44] hw/misc/ivshmem: Remove deprecated "ivshmem" legacy device Michael S. Tsirkin
2019-01-15  1:35 ` [Qemu-devel] [PULL 04/44] qemu: avoid memory leak while remove disk Michael S. Tsirkin
2019-01-15  1:35 ` [Qemu-devel] [PULL 05/44] tests: vhost-user-test: initialize 'fd' in chr_read Michael S. Tsirkin
2019-01-15  1:35 ` [Qemu-devel] [PULL 06/44] vhost-user: fix ioeventfd_enabled Michael S. Tsirkin
2019-01-15  1:35 ` [Qemu-devel] [PULL 07/44] util: check the return value of fcntl in qemu_set_{block, nonblock} Michael S. Tsirkin
2019-01-15  1:35 ` [Qemu-devel] [PULL 08/44] tests: acpi: use AcpiSdtTable::aml in consistent way Michael S. Tsirkin
2019-01-15  1:35 ` [Qemu-devel] [PULL 09/44] tests: acpi: make sure FADT is fetched only once Michael S. Tsirkin
2019-01-15  1:35 ` [Qemu-devel] [PULL 10/44] tests: acpi: simplify rsdt handling Michael S. Tsirkin
2019-01-15  1:35 ` [Qemu-devel] [PULL 11/44] tests: acpi: reuse fetch_table() for fetching FACS and DSDT Michael S. Tsirkin
2019-01-15  1:36 ` [Qemu-devel] [PULL 12/44] tests: acpi: reuse fetch_table() in vmgenid-test Michael S. Tsirkin
2019-01-15  1:36 ` [Qemu-devel] [PULL 13/44] tests: smbios: fetch whole table in one step instead of reading it step by step Michael S. Tsirkin
2019-01-15  1:36 ` [Qemu-devel] [PULL 14/44] tests: acpi: squash sanitize_fadt_ptrs() into test_acpi_fadt_table() Michael S. Tsirkin
2019-01-15  1:36 ` [Qemu-devel] [PULL 15/44] tests: acpi: use AcpiSdtTable::aml instead of AcpiSdtTable::header::signature Michael S. Tsirkin
2019-01-15  1:36 ` [Qemu-devel] [PULL 16/44] virtio-net: support RSC v4/v6 tcp traffic for Windows HCK Michael S. Tsirkin
2019-01-15  1:36 ` [Qemu-devel] [PULL 17/44] virtio-net: changed VIRTIO_NET_F_RSC_EXT to be 61 Michael S. Tsirkin
2019-01-15  1:36 ` [Qemu-devel] [PULL 18/44] virtio: split vhost vsock bits from virtio-pci Michael S. Tsirkin
2019-01-15  1:36 ` [Qemu-devel] [PULL 19/44] virtio: split virtio input host " Michael S. Tsirkin
2019-01-15  1:36 ` [Qemu-devel] [PULL 20/44] virtio: split virtio input " Michael S. Tsirkin
2019-01-15  1:36 ` [Qemu-devel] [PULL 21/44] virtio: split virtio rng " Michael S. Tsirkin
2019-01-15  1:36 ` [Qemu-devel] [PULL 22/44] virtio: split virtio balloon " Michael S. Tsirkin
2019-01-15  1:36 ` Michael S. Tsirkin [this message]
2019-01-15  1:36 ` [Qemu-devel] [PULL 24/44] virtio: split vhost user blk " Michael S. Tsirkin
2019-01-15  1:36 ` [Qemu-devel] [PULL 25/44] virtio: split vhost user scsi " Michael S. Tsirkin
2019-01-15  1:36 ` [Qemu-devel] [PULL 26/44] virtio: split vhost " Michael S. Tsirkin
2019-01-15  1:36 ` [Qemu-devel] [PULL 27/44] virtio: split virtio " Michael S. Tsirkin
2019-01-15  1:36 ` [Qemu-devel] [PULL 28/44] virtio: split virtio blk " Michael S. Tsirkin
2019-01-15  1:36 ` [Qemu-devel] [PULL 29/44] virtio: split virtio net " Michael S. Tsirkin
2019-01-15  1:36 ` [Qemu-devel] [PULL 30/44] virtio: split virtio serial " Michael S. Tsirkin
2019-01-15  1:36 ` [Qemu-devel] [PULL 31/44] virtio: split virtio gpu bits from virtio-pci.h Michael S. Tsirkin
2019-01-15  1:36 ` [Qemu-devel] [PULL 32/44] virtio: split virtio crypto " Michael S. Tsirkin
2019-01-15  1:36 ` [Qemu-devel] [PULL 33/44] virtio: virtio 9p really requires CONFIG_VIRTFS to work Michael S. Tsirkin
2019-01-15  1:36 ` [Qemu-devel] [PULL 34/44] globals: Allow global properties to be optional Michael S. Tsirkin
2019-01-15  1:36 ` [Qemu-devel] [PULL 35/44] virtio: Make disable-legacy/disable-modern compat properties optional Michael S. Tsirkin
2019-01-15  1:36 ` [Qemu-devel] [PULL 36/44] hw/misc/edu: add msi_uninit() for pci_edu_uninit() Michael S. Tsirkin
2019-01-15  1:37 ` [Qemu-devel] [PULL 37/44] tpm: add a "ppi" boolean property Michael S. Tsirkin
2019-01-15  1:37 ` [Qemu-devel] [PULL 38/44] tpm: allocate/map buffer for TPM Physical Presence interface Michael S. Tsirkin
2019-01-15  1:37 ` [Qemu-devel] [PULL 39/44] acpi: expose TPM/PPI configuration parameters to firmware via fw_cfg Michael S. Tsirkin
2019-01-15  1:37 ` [Qemu-devel] [PULL 40/44] acpi: build TPM Physical Presence interface Michael S. Tsirkin
2019-01-15  1:37 ` [Qemu-devel] [PULL 41/44] acpi: add ACPI memory clear interface Michael S. Tsirkin
2019-01-15  1:37 ` [Qemu-devel] [PULL 42/44] tpm: clear RAM when "memory overwrite" requested Michael S. Tsirkin
2019-01-15  1:37 ` [Qemu-devel] [PULL 43/44] hw: acpi: Fix memory hotplug AML generation error Michael S. Tsirkin
2019-01-15  1:37 ` [Qemu-devel] [PULL 44/44] acpi: update expected files Michael S. Tsirkin
2019-01-15  5:38 ` [Qemu-devel] [PULL 00/44] pci, pc, virtio: fixes, features Peter Xu
2019-01-15 12:49   ` Michael S. Tsirkin

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20190115003812.11329-24-mst@redhat.com \
    --to=mst@redhat.com \
    --cc=groug@kaod.org \
    --cc=lvivier@redhat.com \
    --cc=peter.maydell@linaro.org \
    --cc=qemu-devel@nongnu.org \
    --cc=quintela@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.