]> git.proxmox.com Git - qemu.git/commitdiff
pc: give ISA bus to ISA methods
authorHervé Poussineau <hpoussin@reactos.org>
Thu, 15 Dec 2011 21:09:54 +0000 (22:09 +0100)
committerAnthony Liguori <aliguori@us.ibm.com>
Tue, 20 Dec 2011 21:44:30 +0000 (15:44 -0600)
Signed-off-by: Hervé Poussineau <hpoussin@reactos.org>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
hw/pc.h
hw/pc_piix.c
hw/piix_pci.c

diff --git a/hw/pc.h b/hw/pc.h
index afb75352ee0e984fdeec07b4a8649250466b7dcf..04e72cc77fd64b02503b73462e61fa7a5618100e 100644 (file)
--- a/hw/pc.h
+++ b/hw/pc.h
@@ -183,7 +183,7 @@ struct PCII440FXState;
 typedef struct PCII440FXState PCII440FXState;
 
 PCIBus *i440fx_init(PCII440FXState **pi440fx_state, int *piix_devfn,
-                    qemu_irq *pic,
+                    ISABus **isa_bus, qemu_irq *pic,
                     MemoryRegion *address_space_mem,
                     MemoryRegion *address_space_io,
                     ram_addr_t ram_size,
index b4126b511783e87cf07c27b5eaf26fd85fe47405..77b88b40cf9fe0539d7fa160423414019182902f 100644 (file)
@@ -137,7 +137,7 @@ static void pc_init1(MemoryRegion *system_memory,
     gsi = qemu_allocate_irqs(gsi_handler, gsi_state, GSI_NUM_PINS);
 
     if (pci_enabled) {
-        pci_bus = i440fx_init(&i440fx_state, &piix3_devfn, gsi,
+        pci_bus = i440fx_init(&i440fx_state, &piix3_devfn, &isa_bus, gsi,
                               system_memory, system_io, ram_size,
                               below_4g_mem_size,
                               0x100000000ULL - below_4g_mem_size,
@@ -146,7 +146,6 @@ static void pc_init1(MemoryRegion *system_memory,
                                ? 0
                                : ((uint64_t)1 << 62)),
                               pci_memory, ram_memory);
-        isa_bus = NULL;
     } else {
         pci_bus = NULL;
         i440fx_state = NULL;
index e188c7a1a51691cf33c72c8a49c36499069c25fa..3652522e58f0bbed35d687013af9978bdb4901f7 100644 (file)
@@ -252,7 +252,7 @@ static int i440fx_initfn(PCIDevice *dev)
 static PCIBus *i440fx_common_init(const char *device_name,
                                   PCII440FXState **pi440fx_state,
                                   int *piix3_devfn,
-                                  qemu_irq *pic,
+                                  ISABus **isa_bus, qemu_irq *pic,
                                   MemoryRegion *address_space_mem,
                                   MemoryRegion *address_space_io,
                                   ram_addr_t ram_size,
@@ -318,6 +318,8 @@ static PCIBus *i440fx_common_init(const char *device_name,
     }
     qdev_property_add_child(dev, "piix3", &piix3->dev.qdev, NULL);
     piix3->pic = pic;
+    *isa_bus = DO_UPCAST(ISABus, qbus,
+                         qdev_get_child_bus(&piix3->dev.qdev, "isa.0"));
 
     *piix3_devfn = piix3->dev.devfn;
 
@@ -332,7 +334,7 @@ static PCIBus *i440fx_common_init(const char *device_name,
 }
 
 PCIBus *i440fx_init(PCII440FXState **pi440fx_state, int *piix3_devfn,
-                    qemu_irq *pic,
+                    ISABus **isa_bus, qemu_irq *pic,
                     MemoryRegion *address_space_mem,
                     MemoryRegion *address_space_io,
                     ram_addr_t ram_size,
@@ -345,7 +347,7 @@ PCIBus *i440fx_init(PCII440FXState **pi440fx_state, int *piix3_devfn,
 {
     PCIBus *b;
 
-    b = i440fx_common_init("i440FX", pi440fx_state, piix3_devfn, pic,
+    b = i440fx_common_init("i440FX", pi440fx_state, piix3_devfn, isa_bus, pic,
                            address_space_mem, address_space_io, ram_size,
                            pci_hole_start, pci_hole_size,
                            pci_hole64_size, pci_hole64_size,