qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Avi Kivity <avi@redhat.com>
To: qemu-devel@nongnu.org
Cc: kvm@vger.kernel.org
Subject: [Qemu-devel] [RFC v5 19/86] pci: pass address space to pci bus when created
Date: Wed, 20 Jul 2011 19:49:29 +0300	[thread overview]
Message-ID: <1311180636-17012-20-git-send-email-avi@redhat.com> (raw)
In-Reply-To: <1311180636-17012-1-git-send-email-avi@redhat.com>

This is now done sloppily, via get_system_memory().  Eventually callers
will be converted to stop using that.

Signed-off-by: Avi Kivity <avi@redhat.com>
---
 hw/apb_pci.c       |    2 ++
 hw/bonito.c        |    4 +++-
 hw/grackle_pci.c   |    5 +++--
 hw/gt64xxx.c       |    4 +++-
 hw/pc.h            |    4 +++-
 hw/pc_piix.c       |    3 ++-
 hw/pci.c           |   16 +++++++++++-----
 hw/pci.h           |   12 +++++++++---
 hw/pci_host.h      |    1 +
 hw/pci_internals.h |    1 +
 hw/piix_pci.c      |   13 +++++++++----
 hw/ppc4xx_pci.c    |    5 ++++-
 hw/ppc_mac.h       |    9 ++++++---
 hw/ppc_newworld.c  |    5 +++--
 hw/ppc_oldworld.c  |    3 ++-
 hw/ppc_prep.c      |    3 ++-
 hw/ppce500_pci.c   |    6 +++++-
 hw/prep_pci.c      |    5 +++--
 hw/prep_pci.h      |    3 ++-
 hw/sh_pci.c        |    4 +++-
 hw/unin_pci.c      |   10 ++++++----
 hw/versatile_pci.c |    2 ++
 22 files changed, 85 insertions(+), 35 deletions(-)

diff --git a/hw/apb_pci.c b/hw/apb_pci.c
index 974c87a..8b9939c 100644
--- a/hw/apb_pci.c
+++ b/hw/apb_pci.c
@@ -34,6 +34,7 @@
 #include "rwhandler.h"
 #include "apb_pci.h"
 #include "sysemu.h"
+#include "exec-memory.h"
 
 /* debug APB */
 //#define DEBUG_APB
@@ -346,6 +347,7 @@ PCIBus *pci_apb_init(target_phys_addr_t special_base,
 
     d->bus = pci_register_bus(&d->busdev.qdev, "pci",
                                          pci_apb_set_irq, pci_pbm_map_irq, d,
+                                         get_system_memory(),
                                          0, 32);
     pci_bus_set_mem_base(d->bus, mem_base);
 
diff --git a/hw/bonito.c b/hw/bonito.c
index e8c57a3..5f62dda 100644
--- a/hw/bonito.c
+++ b/hw/bonito.c
@@ -42,6 +42,7 @@
 #include "mips.h"
 #include "pci_host.h"
 #include "sysemu.h"
+#include "exec-memory.h"
 
 //#define DEBUG_BONITO
 
@@ -773,7 +774,8 @@ PCIBus *bonito_init(qemu_irq *pic)
     dev = qdev_create(NULL, "Bonito-pcihost");
     pcihost = FROM_SYSBUS(BonitoState, sysbus_from_qdev(dev));
     b = pci_register_bus(&pcihost->busdev.qdev, "pci", pci_bonito_set_irq,
-                         pci_bonito_map_irq, pic, 0x28, 32);
+                         pci_bonito_map_irq, pic, get_system_memory(),
+                         0x28, 32);
     pcihost->bus = b;
     qdev_init_nofail(dev);
 
diff --git a/hw/grackle_pci.c b/hw/grackle_pci.c
index cee07e0..da67cf9 100644
--- a/hw/grackle_pci.c
+++ b/hw/grackle_pci.c
@@ -61,7 +61,8 @@ static void pci_grackle_reset(void *opaque)
 {
 }
 
-PCIBus *pci_grackle_init(uint32_t base, qemu_irq *pic)
+PCIBus *pci_grackle_init(uint32_t base, qemu_irq *pic,
+                         MemoryRegion *address_space)
 {
     DeviceState *dev;
     SysBusDevice *s;
@@ -74,7 +75,7 @@ PCIBus *pci_grackle_init(uint32_t base, qemu_irq *pic)
     d->host_state.bus = pci_register_bus(&d->busdev.qdev, "pci",
                                          pci_grackle_set_irq,
                                          pci_grackle_map_irq,
-                                         pic, 0, 4);
+                                         pic, address_space, 0, 4);
 
     pci_create_simple(d->host_state.bus, 0, "grackle");
 
diff --git a/hw/gt64xxx.c b/hw/gt64xxx.c
index 8e1f6a0..65e63dd 100644
--- a/hw/gt64xxx.c
+++ b/hw/gt64xxx.c
@@ -27,6 +27,7 @@
 #include "pci.h"
 #include "pci_host.h"
 #include "pc.h"
+#include "exec-memory.h"
 
 //#define DEBUG
 
@@ -1092,7 +1093,8 @@ PCIBus *gt64120_register(qemu_irq *pic)
     d = FROM_SYSBUS(GT64120State, s);
     d->pci.bus = pci_register_bus(&d->busdev.qdev, "pci",
                                   gt64120_pci_set_irq, gt64120_pci_map_irq,
-                                  pic, PCI_DEVFN(18, 0), 4);
+                                  pic, get_system_memory(),
+                                  PCI_DEVFN(18, 0), 4);
     d->ISD_handle = cpu_register_io_memory(gt64120_read, gt64120_write, d,
                                            DEVICE_NATIVE_ENDIAN);
 
diff --git a/hw/pc.h b/hw/pc.h
index 40684f4..a2de0fe 100644
--- a/hw/pc.h
+++ b/hw/pc.h
@@ -178,7 +178,9 @@ int pcspk_audio_init(qemu_irq *pic);
 struct PCII440FXState;
 typedef struct PCII440FXState PCII440FXState;
 
-PCIBus *i440fx_init(PCII440FXState **pi440fx_state, int *piix_devfn, qemu_irq *pic, ram_addr_t ram_size);
+PCIBus *i440fx_init(PCII440FXState **pi440fx_state, int *piix_devfn,
+                    qemu_irq *pic, MemoryRegion *address_space,
+                    ram_addr_t ram_size);
 void i440fx_init_memory_mappings(PCII440FXState *d);
 
 /* piix4.c */
diff --git a/hw/pc_piix.c b/hw/pc_piix.c
index f2d0476..2b9c2b1 100644
--- a/hw/pc_piix.c
+++ b/hw/pc_piix.c
@@ -128,7 +128,8 @@ static void pc_init1(MemoryRegion *system_memory,
     isa_irq = qemu_allocate_irqs(isa_irq_handler, isa_irq_state, 24);
 
     if (pci_enabled) {
-        pci_bus = i440fx_init(&i440fx_state, &piix3_devfn, isa_irq, ram_size);
+        pci_bus = i440fx_init(&i440fx_state, &piix3_devfn, isa_irq,
+                              system_memory, ram_size);
     } else {
         pci_bus = NULL;
         i440fx_state = NULL;
diff --git a/hw/pci.c b/hw/pci.c
index b904a4e..cf16f3b 100644
--- a/hw/pci.c
+++ b/hw/pci.c
@@ -263,11 +263,14 @@ int pci_find_domain(const PCIBus *bus)
 }
 
 void pci_bus_new_inplace(PCIBus *bus, DeviceState *parent,
-                         const char *name, uint8_t devfn_min)
+                         const char *name,
+                         MemoryRegion *address_space,
+                         uint8_t devfn_min)
 {
     qbus_create_inplace(&bus->qbus, &pci_bus_info, parent, name);
     assert(PCI_FUNC(devfn_min) == 0);
     bus->devfn_min = devfn_min;
+    bus->address_space = address_space;
 
     /* host bridge */
     QLIST_INIT(&bus->child);
@@ -276,13 +279,14 @@ void pci_bus_new_inplace(PCIBus *bus, DeviceState *parent,
     vmstate_register(NULL, -1, &vmstate_pcibus, bus);
 }
 
-PCIBus *pci_bus_new(DeviceState *parent, const char *name, uint8_t devfn_min)
+PCIBus *pci_bus_new(DeviceState *parent, const char *name,
+                    MemoryRegion *address_space, uint8_t devfn_min)
 {
     PCIBus *bus;
 
     bus = qemu_mallocz(sizeof(*bus));
     bus->qbus.qdev_allocated = 1;
-    pci_bus_new_inplace(bus, parent, name, devfn_min);
+    pci_bus_new_inplace(bus, parent, name, address_space, devfn_min);
     return bus;
 }
 
@@ -310,11 +314,13 @@ void pci_bus_set_mem_base(PCIBus *bus, target_phys_addr_t base)
 
 PCIBus *pci_register_bus(DeviceState *parent, const char *name,
                          pci_set_irq_fn set_irq, pci_map_irq_fn map_irq,
-                         void *irq_opaque, uint8_t devfn_min, int nirq)
+                         void *irq_opaque,
+                         MemoryRegion *address_space,
+                         uint8_t devfn_min, int nirq)
 {
     PCIBus *bus;
 
-    bus = pci_bus_new(parent, name, devfn_min);
+    bus = pci_bus_new(parent, name, address_space, devfn_min);
     pci_bus_irqs(bus, set_irq, map_irq, irq_opaque, nirq);
     return bus;
 }
diff --git a/hw/pci.h b/hw/pci.h
index c220745..cfeb042 100644
--- a/hw/pci.h
+++ b/hw/pci.h
@@ -5,6 +5,7 @@
 #include "qobject.h"
 
 #include "qdev.h"
+#include "memory.h"
 
 /* PCI includes legacy ISA access.  */
 #include "isa.h"
@@ -233,15 +234,20 @@ typedef enum {
 typedef int (*pci_hotplug_fn)(DeviceState *qdev, PCIDevice *pci_dev,
                               PCIHotplugState state);
 void pci_bus_new_inplace(PCIBus *bus, DeviceState *parent,
-                         const char *name, uint8_t devfn_min);
-PCIBus *pci_bus_new(DeviceState *parent, const char *name, uint8_t devfn_min);
+                         const char *name,
+                         MemoryRegion *address_space,
+                         uint8_t devfn_min);
+PCIBus *pci_bus_new(DeviceState *parent, const char *name,
+                    MemoryRegion *address_space, uint8_t devfn_min);
 void pci_bus_irqs(PCIBus *bus, pci_set_irq_fn set_irq, pci_map_irq_fn map_irq,
                   void *irq_opaque, int nirq);
 int pci_bus_get_irq_level(PCIBus *bus, int irq_num);
 void pci_bus_hotplug(PCIBus *bus, pci_hotplug_fn hotplug, DeviceState *dev);
 PCIBus *pci_register_bus(DeviceState *parent, const char *name,
                          pci_set_irq_fn set_irq, pci_map_irq_fn map_irq,
-                         void *irq_opaque, uint8_t devfn_min, int nirq);
+                         void *irq_opaque,
+                         MemoryRegion *address_space,
+                         uint8_t devfn_min, int nirq);
 void pci_device_reset(PCIDevice *dev);
 void pci_bus_reset(PCIBus *bus);
 
diff --git a/hw/pci_host.h b/hw/pci_host.h
index 0a58595..05dcb66 100644
--- a/hw/pci_host.h
+++ b/hw/pci_host.h
@@ -35,6 +35,7 @@ struct PCIHostState {
     SysBusDevice busdev;
     ReadWriteHandler conf_handler;
     ReadWriteHandler data_handler;
+    MemoryRegion *address_space;
     uint32_t config_reg;
     PCIBus *bus;
 };
diff --git a/hw/pci_internals.h b/hw/pci_internals.h
index fbe1866..c3a463a 100644
--- a/hw/pci_internals.h
+++ b/hw/pci_internals.h
@@ -25,6 +25,7 @@ struct PCIBus {
     PCIDevice *devices[PCI_SLOT_MAX * PCI_FUNC_MAX];
     PCIDevice *parent_dev;
     target_phys_addr_t mem_base;
+    MemoryRegion *address_space;
 
     QLIST_HEAD(, PCIBus) child; /* this will be replaced by qdev later */
     QLIST_ENTRY(PCIBus) sibling;/* this will be replaced by qdev later */
diff --git a/hw/piix_pci.c b/hw/piix_pci.c
index d08b31a..80d6665 100644
--- a/hw/piix_pci.c
+++ b/hw/piix_pci.c
@@ -241,7 +241,9 @@ static int i440fx_initfn(PCIDevice *dev)
 static PCIBus *i440fx_common_init(const char *device_name,
                                   PCII440FXState **pi440fx_state,
                                   int *piix3_devfn,
-                                  qemu_irq *pic, ram_addr_t ram_size)
+                                  qemu_irq *pic,
+                                  MemoryRegion *address_space,
+                                  ram_addr_t ram_size)
 {
     DeviceState *dev;
     PCIBus *b;
@@ -251,7 +253,8 @@ static PCIBus *i440fx_common_init(const char *device_name,
 
     dev = qdev_create(NULL, "i440FX-pcihost");
     s = FROM_SYSBUS(I440FXState, sysbus_from_qdev(dev));
-    b = pci_bus_new(&s->busdev.qdev, NULL, 0);
+    s->address_space = address_space;
+    b = pci_bus_new(&s->busdev.qdev, NULL, s->address_space, 0);
     s->bus = b;
     qdev_init_nofail(dev);
 
@@ -288,11 +291,13 @@ static PCIBus *i440fx_common_init(const char *device_name,
 }
 
 PCIBus *i440fx_init(PCII440FXState **pi440fx_state, int *piix3_devfn,
-                    qemu_irq *pic, ram_addr_t ram_size)
+                    qemu_irq *pic, MemoryRegion *address_space,
+                    ram_addr_t ram_size)
 {
     PCIBus *b;
 
-    b = i440fx_common_init("i440FX", pi440fx_state, piix3_devfn, pic, ram_size);
+    b = i440fx_common_init("i440FX", pi440fx_state, piix3_devfn, pic,
+                           address_space, ram_size);
     return b;
 }
 
diff --git a/hw/ppc4xx_pci.c b/hw/ppc4xx_pci.c
index 299473c..15c24f6 100644
--- a/hw/ppc4xx_pci.c
+++ b/hw/ppc4xx_pci.c
@@ -24,6 +24,7 @@
 #include "ppc4xx.h"
 #include "pci.h"
 #include "pci_host.h"
+#include "exec-memory.h"
 
 #undef DEBUG
 #ifdef DEBUG
@@ -345,7 +346,9 @@ PCIBus *ppc4xx_pci_init(CPUState *env, qemu_irq pci_irqs[4],
     controller->pci_state.bus = pci_register_bus(NULL, "pci",
                                                  ppc4xx_pci_set_irq,
                                                  ppc4xx_pci_map_irq,
-                                                 pci_irqs, 0, 4);
+                                                 pci_irqs,
+                                                 get_system_memory(),
+                                                 0, 4);
 
     controller->pci_dev = pci_register_device(controller->pci_state.bus,
                                               "host bridge", sizeof(PCIDevice),
diff --git a/hw/ppc_mac.h b/hw/ppc_mac.h
index 68dade7..6fad20a 100644
--- a/hw/ppc_mac.h
+++ b/hw/ppc_mac.h
@@ -25,6 +25,8 @@
 #if !defined(__PPC_MAC_H__)
 #define __PPC_MAC_H__
 
+#include "memory.h"
+
 /* SMP is not enabled, for now */
 #define MAX_CPUS 1
 
@@ -52,11 +54,12 @@ qemu_irq *heathrow_pic_init(int *pmem_index,
                             int nb_cpus, qemu_irq **irqs);
 
 /* Grackle PCI */
-PCIBus *pci_grackle_init(uint32_t base, qemu_irq *pic);
+PCIBus *pci_grackle_init(uint32_t base, qemu_irq *pic,
+                         MemoryRegion *address_space);
 
 /* UniNorth PCI */
-PCIBus *pci_pmac_init(qemu_irq *pic);
-PCIBus *pci_pmac_u3_init(qemu_irq *pic);
+PCIBus *pci_pmac_init(qemu_irq *pic, MemoryRegion *address_space);
+PCIBus *pci_pmac_u3_init(qemu_irq *pic, MemoryRegion *address_space);
 
 /* Mac NVRAM */
 typedef struct MacIONVRAMState MacIONVRAMState;
diff --git a/hw/ppc_newworld.c b/hw/ppc_newworld.c
index 5bce709..2c0fae8 100644
--- a/hw/ppc_newworld.c
+++ b/hw/ppc_newworld.c
@@ -67,6 +67,7 @@
 #include "kvm_ppc.h"
 #include "hw/usb.h"
 #include "blockdev.h"
+#include "exec-memory.h"
 
 #define MAX_IDE_BUS 2
 #define CFG_ADDR 0xf0000510
@@ -317,10 +318,10 @@ static void ppc_core99_init (ram_addr_t ram_size,
     pic = openpic_init(NULL, &pic_mem_index, smp_cpus, openpic_irqs, NULL);
     if (PPC_INPUT(env) == PPC_FLAGS_INPUT_970) {
         /* 970 gets a U3 bus */
-        pci_bus = pci_pmac_u3_init(pic);
+        pci_bus = pci_pmac_u3_init(pic, get_system_memory());
         machine_arch = ARCH_MAC99_U3;
     } else {
-        pci_bus = pci_pmac_init(pic);
+        pci_bus = pci_pmac_init(pic, get_system_memory());
         machine_arch = ARCH_MAC99;
     }
     /* init basic PC hardware */
diff --git a/hw/ppc_oldworld.c b/hw/ppc_oldworld.c
index 20cd8e1..585afd6 100644
--- a/hw/ppc_oldworld.c
+++ b/hw/ppc_oldworld.c
@@ -43,6 +43,7 @@
 #include "kvm.h"
 #include "kvm_ppc.h"
 #include "blockdev.h"
+#include "exec-memory.h"
 
 #define MAX_IDE_BUS 2
 #define CFG_ADDR 0xf0000510
@@ -233,7 +234,7 @@ static void ppc_heathrow_init (ram_addr_t ram_size,
         hw_error("Only 6xx bus is supported on heathrow machine\n");
     }
     pic = heathrow_pic_init(&pic_mem_index, 1, heathrow_irqs);
-    pci_bus = pci_grackle_init(0xfec00000, pic);
+    pci_bus = pci_grackle_init(0xfec00000, pic, get_system_memory());
     pci_vga_init(pci_bus);
 
     escc_mem_index = escc_init(0x80013000, pic[0x0f], pic[0x10], serial_hds[0],
diff --git a/hw/ppc_prep.c b/hw/ppc_prep.c
index 0e9cfc2..91ebe07 100644
--- a/hw/ppc_prep.c
+++ b/hw/ppc_prep.c
@@ -38,6 +38,7 @@
 #include "loader.h"
 #include "mc146818rtc.h"
 #include "blockdev.h"
+#include "exec-memory.h"
 
 //#define HARD_DEBUG_PPC_IO
 //#define DEBUG_PPC_IO
@@ -648,7 +649,7 @@ static void ppc_prep_init (ram_addr_t ram_size,
         hw_error("Only 6xx bus is supported on PREP machine\n");
     }
     i8259 = i8259_init(first_cpu->irq_inputs[PPC6xx_INPUT_INT]);
-    pci_bus = pci_prep_init(i8259);
+    pci_bus = pci_prep_init(i8259, get_system_memory());
     /* Hmm, prep has no pci-isa bridge ??? */
     isa_bus_new(NULL);
     isa_bus_irqs(i8259);
diff --git a/hw/ppce500_pci.c b/hw/ppce500_pci.c
index fc11af4..1344539 100644
--- a/hw/ppce500_pci.c
+++ b/hw/ppce500_pci.c
@@ -274,12 +274,15 @@ static void e500_pci_map(SysBusDevice *dev, target_phys_addr_t base)
                                  s->reg);
 }
 
+#include "exec-memory.h"
+
 static int e500_pcihost_initfn(SysBusDevice *dev)
 {
     PCIHostState *h;
     PPCE500PCIState *s;
     PCIBus *b;
     int i;
+    MemoryRegion *address_space = get_system_memory();
 
     h = FROM_SYSBUS(PCIHostState, sysbus_from_qdev(dev));
     s = DO_UPCAST(PPCE500PCIState, pci_state, h);
@@ -289,7 +292,8 @@ static int e500_pcihost_initfn(SysBusDevice *dev)
     }
 
     b = pci_register_bus(&s->pci_state.busdev.qdev, NULL, mpc85xx_pci_set_irq,
-                         mpc85xx_pci_map_irq, s->irq, PCI_DEVFN(0x11, 0), 4);
+                         mpc85xx_pci_map_irq, s->irq, address_space,
+                         PCI_DEVFN(0x11, 0), 4);
     s->pci_state.bus = b;
 
     pci_create_simple(b, 0, "e500-host-bridge");
diff --git a/hw/prep_pci.c b/hw/prep_pci.c
index f88b825..da02f0e 100644
--- a/hw/prep_pci.c
+++ b/hw/prep_pci.c
@@ -110,7 +110,7 @@ static void prep_set_irq(void *opaque, int irq_num, int level)
     qemu_set_irq(pic[(irq_num & 1) ? 11 : 9] , level);
 }
 
-PCIBus *pci_prep_init(qemu_irq *pic)
+PCIBus *pci_prep_init(qemu_irq *pic, MemoryRegion *address_space)
 {
     PREPPCIState *s;
     PCIDevice *d;
@@ -118,7 +118,8 @@ PCIBus *pci_prep_init(qemu_irq *pic)
 
     s = qemu_mallocz(sizeof(PREPPCIState));
     s->bus = pci_register_bus(NULL, "pci",
-                              prep_set_irq, prep_map_irq, pic, 0, 4);
+                              prep_set_irq, prep_map_irq, pic,
+                              address_space, 0, 4);
 
     pci_host_conf_register_ioport(0xcf8, s);
 
diff --git a/hw/prep_pci.h b/hw/prep_pci.h
index cd68512..a27368b 100644
--- a/hw/prep_pci.h
+++ b/hw/prep_pci.h
@@ -2,7 +2,8 @@
 #define QEMU_PREP_PCI_H
 
 #include "qemu-common.h"
+#include "memory.h"
 
-PCIBus *pci_prep_init(qemu_irq *pic);
+PCIBus *pci_prep_init(qemu_irq *pic, MemoryRegion *address_space);
 
 #endif
diff --git a/hw/sh_pci.c b/hw/sh_pci.c
index a076cf2..0ef93a0 100644
--- a/hw/sh_pci.c
+++ b/hw/sh_pci.c
@@ -26,6 +26,7 @@
 #include "pci.h"
 #include "pci_host.h"
 #include "bswap.h"
+#include "exec-memory.h"
 
 typedef struct SHPCIState {
     SysBusDevice busdev;
@@ -127,7 +128,8 @@ static int sh_pci_init_device(SysBusDevice *dev)
     }
     s->bus = pci_register_bus(&s->busdev.qdev, "pci",
                               sh_pci_set_irq, sh_pci_map_irq,
-                              s->irq, PCI_DEVFN(0, 0), 4);
+                              s->irq, get_system_memory(),
+                              PCI_DEVFN(0, 0), 4);
     s->memconfig = cpu_register_io_memory(sh_pci_reg.r, sh_pci_reg.w,
                                           s, DEVICE_NATIVE_ENDIAN);
     sysbus_init_mmio_cb(dev, 0x224, sh_pci_map);
diff --git a/hw/unin_pci.c b/hw/unin_pci.c
index d364daa..b499523 100644
--- a/hw/unin_pci.c
+++ b/hw/unin_pci.c
@@ -201,7 +201,7 @@ static int pci_unin_internal_init_device(SysBusDevice *dev)
     return 0;
 }
 
-PCIBus *pci_pmac_init(qemu_irq *pic)
+PCIBus *pci_pmac_init(qemu_irq *pic, MemoryRegion *address_space)
 {
     DeviceState *dev;
     SysBusDevice *s;
@@ -215,7 +215,8 @@ PCIBus *pci_pmac_init(qemu_irq *pic)
     d = FROM_SYSBUS(UNINState, s);
     d->host_state.bus = pci_register_bus(&d->busdev.qdev, "pci",
                                          pci_unin_set_irq, pci_unin_map_irq,
-                                         pic, PCI_DEVFN(11, 0), 4);
+                                         pic, address_space,
+                                         PCI_DEVFN(11, 0), 4);
 
 #if 0
     pci_create_simple(d->host_state.bus, PCI_DEVFN(11, 0), "uni-north");
@@ -252,7 +253,7 @@ PCIBus *pci_pmac_init(qemu_irq *pic)
     return d->host_state.bus;
 }
 
-PCIBus *pci_pmac_u3_init(qemu_irq *pic)
+PCIBus *pci_pmac_u3_init(qemu_irq *pic, MemoryRegion *address_space)
 {
     DeviceState *dev;
     SysBusDevice *s;
@@ -267,7 +268,8 @@ PCIBus *pci_pmac_u3_init(qemu_irq *pic)
 
     d->host_state.bus = pci_register_bus(&d->busdev.qdev, "pci",
                                          pci_unin_set_irq, pci_unin_map_irq,
-                                         pic, PCI_DEVFN(11, 0), 4);
+                                         pic, address_space,
+                                         PCI_DEVFN(11, 0), 4);
 
     sysbus_mmio_map(s, 0, 0xf0800000);
     sysbus_mmio_map(s, 1, 0xf0c00000);
diff --git a/hw/versatile_pci.c b/hw/versatile_pci.c
index 8e75ffc..6b693df 100644
--- a/hw/versatile_pci.c
+++ b/hw/versatile_pci.c
@@ -10,6 +10,7 @@
 #include "sysbus.h"
 #include "pci.h"
 #include "pci_host.h"
+#include "exec-memory.h"
 
 typedef struct {
     SysBusDevice busdev;
@@ -111,6 +112,7 @@ static int pci_vpb_init(SysBusDevice *dev)
     }
     bus = pci_register_bus(&dev->qdev, "pci",
                            pci_vpb_set_irq, pci_vpb_map_irq, s->irq,
+                           get_system_memory(),
                            PCI_DEVFN(11, 0), 4);
 
     /* ??? Register memory space.  */
-- 
1.7.5.3

  parent reply	other threads:[~2011-07-20 16:57 UTC|newest]

Thread overview: 108+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-07-20 16:49 [Qemu-devel] [RFC v5 00/86] Memory API Avi Kivity
2011-07-20 16:49 ` [Qemu-devel] [RFC v5 01/86] xen: fix xen-mapcache build on non-Xen capable targets Avi Kivity
2011-07-20 16:49 ` [Qemu-devel] [RFC v5 02/86] Hierarchical memory region API Avi Kivity
2011-07-20 16:49 ` [Qemu-devel] [RFC v5 03/86] memory: implement dirty tracking Avi Kivity
2011-07-20 16:49 ` [Qemu-devel] [RFC v5 04/86] memory: merge adjacent segments of a single memory region Avi Kivity
2011-07-20 16:49 ` [Qemu-devel] [RFC v5 05/86] Internal interfaces for memory API Avi Kivity
2011-07-20 16:49 ` [Qemu-devel] [RFC v5 06/86] memory: abstract address space operations Avi Kivity
2011-07-20 16:49 ` [Qemu-devel] [RFC v5 07/86] memory: rename MemoryRegion::has_ram_addr to ::terminates Avi Kivity
2011-07-20 16:49 ` [Qemu-devel] [RFC v5 08/86] memory: late initialization of ram_addr Avi Kivity
2011-07-20 16:49 ` [Qemu-devel] [RFC v5 09/86] memory: I/O address space support Avi Kivity
2011-07-20 16:49 ` [Qemu-devel] [RFC v5 10/86] memory: add backward compatibility for old portio registration Avi Kivity
2011-07-20 16:49 ` [Qemu-devel] [RFC v5 11/86] memory: add backward compatibility for old mmio registration Avi Kivity
2011-07-20 16:49 ` [Qemu-devel] [RFC v5 12/86] memory: add ioeventfd support Avi Kivity
2011-07-21 19:55   ` Blue Swirl
2011-07-22  7:05     ` Avi Kivity
2011-07-20 16:49 ` [Qemu-devel] [RFC v5 13/86] memory: separate building the final memory map into two steps Avi Kivity
2011-07-20 16:49 ` [Qemu-devel] [RFC v5 14/86] exec.c: initialize memory map Avi Kivity
2011-07-20 16:49 ` [Qemu-devel] [RFC v5 15/86] ioport: register ranges by byte aligned addresses always Avi Kivity
2011-07-20 16:49 ` [Qemu-devel] [RFC v5 16/86] pc: grab system_memory Avi Kivity
2011-07-20 16:49 ` [Qemu-devel] [RFC v5 17/86] pc: convert pc_memory_init() to memory API Avi Kivity
2011-07-20 16:49 ` [Qemu-devel] [RFC v5 18/86] pc: move global memory map out of pc_init1() and into its callers Avi Kivity
2011-07-20 16:49 ` Avi Kivity [this message]
2011-07-20 16:49 ` [Qemu-devel] [RFC v5 20/86] pci: add MemoryRegion based BAR management API Avi Kivity
2011-07-20 16:49 ` [Qemu-devel] [RFC v5 21/86] sysbus: add MemoryRegion based memory " Avi Kivity
2011-07-20 16:49 ` [Qemu-devel] [RFC v5 22/86] usb-ohci: convert to MemoryRegion Avi Kivity
2011-07-20 16:49 ` [Qemu-devel] [RFC v5 23/86] pci: add API to get a BAR's mapped address Avi Kivity
2011-07-20 16:49 ` [Qemu-devel] [RFC v5 24/86] vmsvga: don't remember pci BAR address in callback any more Avi Kivity
2011-07-20 16:49 ` [Qemu-devel] [RFC v5 25/86] vga: convert vga and its derivatives to the memory API Avi Kivity
2011-07-20 16:49 ` [Qemu-devel] [RFC v5 26/86] cirrus: simplify mmio BAR access functions Avi Kivity
2011-07-20 16:49 ` [Qemu-devel] [RFC v5 27/86] cirrus: simplify bitblt " Avi Kivity
2011-07-20 16:49 ` [Qemu-devel] [RFC v5 28/86] cirrus: simplify vga window mmio " Avi Kivity
2011-07-20 16:49 ` [Qemu-devel] [RFC v5 29/86] vga: " Avi Kivity
2011-07-20 16:49 ` [Qemu-devel] [RFC v5 30/86] cirrus: simplify linear framebuffer " Avi Kivity
2011-07-20 16:49 ` [Qemu-devel] [RFC v5 31/86] Integrate I/O memory regions into qemu Avi Kivity
2011-07-20 16:49 ` [Qemu-devel] [RFC v5 32/86] exec.c: fix initialization of system I/O memory region Avi Kivity
2011-07-20 16:49 ` [Qemu-devel] [RFC v5 33/86] pci: pass I/O address space to new PCI bus Avi Kivity
2011-07-20 16:49 ` [Qemu-devel] [RFC v5 34/86] pci: allow I/O BARs to be registered with pci_register_bar_region() Avi Kivity
2011-07-20 16:49 ` [Qemu-devel] [RFC v5 35/86] rtl8139: convert to memory API Avi Kivity
2011-07-20 16:49 ` [Qemu-devel] [RFC v5 36/86] ac97: " Avi Kivity
2011-07-20 16:49 ` [Qemu-devel] [RFC v5 37/86] e1000: " Avi Kivity
2011-07-20 16:49 ` [Qemu-devel] [RFC v5 38/86] eepro100: " Avi Kivity
2011-07-20 16:49 ` [Qemu-devel] [RFC v5 39/86] es1370: " Avi Kivity
2011-07-20 16:49 ` [Qemu-devel] [RFC v5 40/86] ide: " Avi Kivity
2011-07-20 16:49 ` [Qemu-devel] [RFC v5 41/86] ivshmem: " Avi Kivity
2011-07-20 16:49 ` [Qemu-devel] [RFC v5 42/86] virtio-pci: " Avi Kivity
2011-07-20 16:49 ` [Qemu-devel] [RFC v5 43/86] ahci: " Avi Kivity
2011-07-20 16:49 ` [Qemu-devel] [RFC v5 44/86] intel-hda: " Avi Kivity
2011-07-20 16:49 ` [Qemu-devel] [RFC v5 45/86] lsi53c895a: " Avi Kivity
2011-07-20 16:49 ` [Qemu-devel] [RFC v5 46/86] ppc: " Avi Kivity
2011-07-20 16:49 ` [Qemu-devel] [RFC v5 47/86] ne2000: " Avi Kivity
2011-07-20 16:49 ` [Qemu-devel] [RFC v5 48/86] pcnet: " Avi Kivity
2011-07-20 16:49 ` [Qemu-devel] [RFC v5 49/86] i6300esb: " Avi Kivity
2011-07-20 16:50 ` [Qemu-devel] [RFC v5 50/86] isa-mmio: concert " Avi Kivity
2011-07-20 16:50 ` [Qemu-devel] [RFC v5 51/86] sun4u: convert " Avi Kivity
2011-07-20 16:50 ` [Qemu-devel] [RFC v5 52/86] ehci: " Avi Kivity
2011-07-20 16:50 ` [Qemu-devel] [RFC v5 53/86] uhci: " Avi Kivity
2011-07-20 16:50 ` [Qemu-devel] [RFC v5 54/86] xen-platform: " Avi Kivity
2011-07-20 16:50 ` [Qemu-devel] [RFC v5 55/86] msix: " Avi Kivity
2011-07-20 16:50 ` [Qemu-devel] [RFC v5 56/86] pci: remove pci_register_bar_simple() Avi Kivity
2011-07-20 16:50 ` [Qemu-devel] [RFC v5 57/86] pci: convert pci rom to memory API Avi Kivity
2011-07-20 16:50 ` [Qemu-devel] [RFC v5 58/86] pci: remove pci_register_bar() Avi Kivity
2011-07-20 16:50 ` [Qemu-devel] [RFC v5 59/86] pci: fold BAR mapping function into its caller Avi Kivity
2011-07-20 16:50 ` [Qemu-devel] [RFC v5 60/86] pci: rename pci_register_bar_region() to pci_register_bar() Avi Kivity
2011-07-20 16:50 ` [Qemu-devel] [RFC v5 61/86] pci: remove support for pre memory API BARs Avi Kivity
2011-07-20 16:50 ` [Qemu-devel] [RFC v5 62/86] Introduce QEMU_NEW() Avi Kivity
2011-07-20 16:50 ` [Qemu-devel] [RFC v5 63/86] apb_pci: convert to memory API Avi Kivity
2011-07-20 16:50 ` [Qemu-devel] [RFC v5 64/86] apic: " Avi Kivity
2011-07-20 16:50 ` [Qemu-devel] [RFC v5 65/86] arm_gic: " Avi Kivity
2011-07-20 16:50 ` [Qemu-devel] [RFC v5 66/86] arm_sysctl: " Avi Kivity
2011-07-20 16:50 ` [Qemu-devel] [RFC v5 67/86] arm_timer: " Avi Kivity
2011-07-20 16:50 ` [Qemu-devel] [RFC v5 68/86] armv7m: " Avi Kivity
2011-07-20 16:50 ` [Qemu-devel] [RFC v5 69/86] gt64xxx.c: " Avi Kivity
2011-07-20 16:50 ` [Qemu-devel] [RFC v5 70/86] tusb6010: move declarations to new file tusb6010.h Avi Kivity
2011-07-20 16:50 ` [Qemu-devel] [RFC v5 71/86] omap_gpmc/nseries/tusb6010: convert to memory API Avi Kivity
2011-07-20 16:50 ` [Qemu-devel] [RFC v5 72/86] onenand: " Avi Kivity
2011-07-20 16:50 ` [Qemu-devel] [RFC v5 73/86] pcie_host: " Avi Kivity
2011-07-20 16:50 ` [Qemu-devel] [RFC v5 74/86] ppc405_uc: " Avi Kivity
2011-07-20 16:50 ` [Qemu-devel] [RFC v5 75/86] ppc4xx_sdram: " Avi Kivity
2011-07-20 16:50 ` [Qemu-devel] [RFC v5 76/86] stellaris_enet: " Avi Kivity
2011-07-20 16:50 ` [Qemu-devel] [RFC v5 77/86] sysbus: add a variant of sysbus_init_mmio_cb with an unmap callback Avi Kivity
2011-07-20 16:50 ` [Qemu-devel] [RFC v5 78/86] sh_pci: convert to memory API Avi Kivity
2011-07-20 16:50 ` [Qemu-devel] [RFC v5 79/86] arm11mpcore: use sysbus_init_mmio_cb2 Avi Kivity
2011-07-20 16:50 ` [Qemu-devel] [RFC v5 80/86] versatile_pci: convert to memory API Avi Kivity
2011-07-20 16:50 ` [Qemu-devel] [RFC v5 81/86] ppce500_pci: convert to sysbus_init_mmio_cb2() Avi Kivity
2011-07-20 16:50 ` [Qemu-devel] [RFC v5 82/86] sysbus: remove sysbus_init_mmio_cb() Avi Kivity
2011-07-20 16:50 ` [Qemu-devel] [RFC v5 83/86] isa: add isa_address_space() Avi Kivity
2011-07-20 16:50 ` [Qemu-devel] [RFC v5 84/86] pci: add pci_address_space() Avi Kivity
2011-07-20 16:50 ` [Qemu-devel] [RFC v5 85/86] vga: drop get_system_memory() from vga devices and derivatives Avi Kivity
2011-07-20 16:50 ` [Qemu-devel] [RFC v5 86/86] 440fx: fix PAM, PCI holes Avi Kivity
2011-07-25 13:07   ` Anthony Liguori
2011-07-25 13:14     ` Avi Kivity
2011-07-25 13:17       ` Gleb Natapov
2011-07-25 13:28         ` Avi Kivity
2011-07-25 13:31           ` Gleb Natapov
2011-07-25 13:31           ` Avi Kivity
2011-07-25 13:35             ` Gleb Natapov
2011-07-25 13:38               ` Avi Kivity
2011-07-25 13:47                 ` Anthony Liguori
2011-07-25 13:50                   ` Gleb Natapov
2011-07-25 14:05                   ` Avi Kivity
2011-07-25 14:08                     ` Anthony Liguori
2011-07-25 14:10                       ` Avi Kivity
2011-07-25 13:32           ` Anthony Liguori
2011-07-25 21:34   ` Eric Northup
2011-07-26  8:01     ` Avi Kivity
2011-07-20 17:41 ` [Qemu-devel] [RFC v5 00/86] Memory API Jan Kiszka
2011-07-20 17:43   ` Avi Kivity
2011-07-20 21:43     ` Jan Kiszka

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=1311180636-17012-20-git-send-email-avi@redhat.com \
    --to=avi@redhat.com \
    --cc=kvm@vger.kernel.org \
    --cc=qemu-devel@nongnu.org \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).