qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH 07/17] s390x/pci: introduce S390PCIBus


From: Marcel Apfelbaum
Subject: Re: [Qemu-devel] [PATCH 07/17] s390x/pci: introduce S390PCIBus
Date: Tue, 28 Jun 2016 17:39:30 +0300
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.5.0

On 06/24/2016 04:28 PM, Cornelia Huck wrote:
From: Yi Min Zhao <address@hidden>

To enable S390PCIBusDevice as qdev, there should be a new bus to
plug and manage all instances of S390PCIBusDevice. Due to this,
S390PCIBus is introduced.

Signed-off-by: Yi Min Zhao <address@hidden>
Reviewed-by: Pierre Morel <address@hidden>
Signed-off-by: Cornelia Huck <address@hidden>
---
  hw/s390x/s390-pci-bus.c | 10 ++++++++++
  hw/s390x/s390-pci-bus.h |  8 ++++++++
  2 files changed, 18 insertions(+)

diff --git a/hw/s390x/s390-pci-bus.c b/hw/s390x/s390-pci-bus.c
index 0f6fcef..0c67c1e 100644
--- a/hw/s390x/s390-pci-bus.c
+++ b/hw/s390x/s390-pci-bus.c
@@ -527,6 +527,9 @@ static int s390_pcihost_init(SysBusDevice *dev)
      bus = BUS(b);
      qbus_set_hotplug_handler(bus, DEVICE(dev), NULL);
      phb->bus = b;
+
+    s->bus = S390_PCI_BUS(qbus_create(TYPE_S390_PCI_BUS, DEVICE(s), NULL));
+
      QTAILQ_INIT(&s->pending_sei);
      return 0;
  }
@@ -636,9 +639,16 @@ static const TypeInfo s390_pcihost_info = {
      }
  };

+static const TypeInfo s390_pcibus_info = {
+    .name = TYPE_S390_PCI_BUS,
+    .parent = TYPE_BUS,

Hi,

The type is named TYPE_S390_PCI_BUS, but does not
derive from PCI_BUS. I find it a little confusing, anyway is just a thought.
Maybe you should go with TYPE_S390_BUS.

Thanks,
Marcel


+    .instance_size = sizeof(S390PCIBus),
+};
+
  static void s390_pci_register_types(void)
  {
      type_register_static(&s390_pcihost_info);
+    type_register_static(&s390_pcibus_info);
  }

  type_init(s390_pci_register_types)
diff --git a/hw/s390x/s390-pci-bus.h b/hw/s390x/s390-pci-bus.h
index e332f6a..c4d4079 100644
--- a/hw/s390x/s390-pci-bus.h
+++ b/hw/s390x/s390-pci-bus.h
@@ -21,6 +21,7 @@
  #include "hw/s390x/css.h"

  #define TYPE_S390_PCI_HOST_BRIDGE "s390-pcihost"
+#define TYPE_S390_PCI_BUS "s390-pcibus"
  #define FH_MASK_ENABLE   0x80000000
  #define FH_MASK_INSTANCE 0x7f000000
  #define FH_MASK_SHM      0x00ff0000
@@ -31,6 +32,8 @@

  #define S390_PCI_HOST_BRIDGE(obj) \
      OBJECT_CHECK(S390pciState, (obj), TYPE_S390_PCI_HOST_BRIDGE)
+#define S390_PCI_BUS(obj) \
+    OBJECT_CHECK(S390PCIBus, (obj), TYPE_S390_PCI_BUS)

  #define HP_EVENT_TO_CONFIGURED        0x0301
  #define HP_EVENT_RESERVED_TO_STANDBY  0x0302
@@ -267,8 +270,13 @@ typedef struct S390PCIBusDevice {
      IndAddr *indicator;
  } S390PCIBusDevice;

+typedef struct S390PCIBus {
+    BusState qbus;
+} S390PCIBus;
+
  typedef struct S390pciState {
      PCIHostState parent_obj;
+    S390PCIBus *bus;
      S390PCIBusDevice pbdev[PCI_SLOT_MAX];
      AddressSpace msix_notify_as;
      MemoryRegion msix_notify_mr;





reply via email to

[Prev in Thread] Current Thread [Next in Thread]