OSDN Git Service

alpha: give ISA bus to ISA methods
authorHervé Poussineau <hpoussin@reactos.org>
Thu, 15 Dec 2011 21:09:55 +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/alpha_dp264.c
hw/alpha_sys.h
hw/alpha_typhoon.c

index a07a2ff..876335a 100644 (file)
@@ -68,8 +68,8 @@ static void clipper_init(ram_addr_t ram_size,
     cpus[0]->trap_arg2 = smp_cpus;
 
     /* Init the chipset.  */
-    pci_bus = typhoon_init(ram_size, &rtc_irq, cpus, clipper_pci_map_irq);
-    isa_bus = NULL;
+    pci_bus = typhoon_init(ram_size, &isa_bus, &rtc_irq, cpus,
+                           clipper_pci_map_irq);
 
     rtc_init(isa_bus, 1980, rtc_irq);
     pit_init(isa_bus, 0x40, 0);
index 13f0177..d54b18f 100644 (file)
@@ -12,7 +12,8 @@
 #include "irq.h"
 
 
-PCIBus *typhoon_init(ram_addr_t, qemu_irq *, CPUState *[4], pci_map_irq_fn);
+PCIBus *typhoon_init(ram_addr_t, ISABus **, qemu_irq *, CPUState *[4],
+                     pci_map_irq_fn);
 
 /* alpha_pci.c.  */
 extern const MemoryRegionOps alpha_pci_bw_io_ops;
index 113837d..adf7382 100644 (file)
@@ -691,7 +691,8 @@ static void typhoon_alarm_timer(void *opaque)
     cpu_interrupt(s->cchip.cpu[cpu], CPU_INTERRUPT_TIMER);
 }
 
-PCIBus *typhoon_init(ram_addr_t ram_size, qemu_irq *p_rtc_irq,
+PCIBus *typhoon_init(ram_addr_t ram_size, ISABus **isa_bus,
+                     qemu_irq *p_rtc_irq,
                      CPUState *cpus[4], pci_map_irq_fn sys_map_irq)
 {
     const uint64_t MB = 1024 * 1024;
@@ -791,12 +792,11 @@ PCIBus *typhoon_init(ram_addr_t ram_size, qemu_irq *p_rtc_irq,
     /* ??? Technically there should be a cy82c693ub pci-isa bridge.  */
     {
         qemu_irq isa_pci_irq, *isa_irqs;
-        ISABus *isa_bus;
 
-        isa_bus = isa_bus_new(NULL, addr_space_io);
+        *isa_bus = isa_bus_new(NULL, addr_space_io);
         isa_pci_irq = *qemu_allocate_irqs(typhoon_set_isa_irq, s, 1);
-        isa_irqs = i8259_init(isa_bus, isa_pci_irq);
-        isa_bus_irqs(isa_bus, isa_irqs);
+        isa_irqs = i8259_init(*isa_bus, isa_pci_irq);
+        isa_bus_irqs(*isa_bus, isa_irqs);
     }
 
     return b;