public inbox for kvm@vger.kernel.org
 help / color / mirror / Atom feed
From: Anthony Liguori <anthony@codemonkey.ws>
To: Avi Kivity <avi@redhat.com>
Cc: qemu-devel@nongnu.org, kvm@vger.kernel.org
Subject: Re: [PATCH 20/23] pci: pass address space to pci bus when created
Date: Mon, 25 Jul 2011 15:03:34 -0500	[thread overview]
Message-ID: <4E2DCC16.8060001@codemonkey.ws> (raw)
In-Reply-To: <1311602584-23409-21-git-send-email-avi@redhat.com>

On 07/25/2011 09:03 AM, Avi Kivity wrote:
> 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>

Reviewed-by: Anthony Liguori <aliguori@us.ibm.com>

Regards,

Anthony Liguori

> ---
>   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 290a900..cffe387 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.  */

  reply	other threads:[~2011-07-25 20:03 UTC|newest]

Thread overview: 66+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-07-25 14:02 [PATCH 00/23] Memory API, batch 1 Avi Kivity
2011-07-25 14:02 ` [PATCH 01/23] Hierarchical memory region API Avi Kivity
2011-07-25 18:41   ` [Qemu-devel] " Anthony Liguori
2011-07-26  9:35     ` Avi Kivity
2011-07-25 14:02 ` [PATCH 02/23] memory: implement dirty tracking Avi Kivity
2011-07-25 18:43   ` Anthony Liguori
2011-07-25 14:02 ` [PATCH 03/23] memory: merge adjacent segments of a single memory region Avi Kivity
2011-07-25 18:48   ` [Qemu-devel] " Anthony Liguori
2011-07-26  9:55     ` Avi Kivity
2011-07-25 14:02 ` [PATCH 04/23] Internal interfaces for memory API Avi Kivity
2011-07-25 18:49   ` [Qemu-devel] " Anthony Liguori
2011-07-25 14:02 ` [PATCH 05/23] memory: abstract address space operations Avi Kivity
2011-07-25 18:51   ` [Qemu-devel] " Anthony Liguori
2011-07-25 14:02 ` [PATCH 06/23] memory: rename MemoryRegion::has_ram_addr to ::terminates Avi Kivity
2011-07-25 18:56   ` [Qemu-devel] " Anthony Liguori
2011-07-26  9:59     ` Avi Kivity
2011-07-25 14:02 ` [PATCH 07/23] memory: late initialization of ram_addr Avi Kivity
2011-07-25 14:02 ` [PATCH 08/23] memory: I/O address space support Avi Kivity
2011-07-25 19:00   ` [Qemu-devel] " Anthony Liguori
2011-07-25 14:02 ` [PATCH 09/23] memory: add backward compatibility for old portio registration Avi Kivity
2011-07-25 19:01   ` [Qemu-devel] " Anthony Liguori
2011-07-25 14:02 ` [PATCH 10/23] memory: add backward compatibility for old mmio registration Avi Kivity
2011-07-25 19:02   ` [Qemu-devel] " Anthony Liguori
2011-07-25 14:02 ` [PATCH 11/23] memory: add ioeventfd support Avi Kivity
2011-07-25 15:16   ` [Qemu-devel] " malc
2011-07-25 15:17     ` Avi Kivity
2011-07-25 15:22       ` malc
2011-07-25 15:28         ` [Qemu-devel] " Avi Kivity
2011-07-25 15:38           ` malc
2011-07-25 15:43             ` Avi Kivity
2011-07-25 19:08   ` Anthony Liguori
2011-07-26 10:08     ` Avi Kivity
2011-07-25 14:02 ` [PATCH 12/23] memory: separate building the final memory map into two steps Avi Kivity
2011-07-25 19:12   ` [Qemu-devel] " Anthony Liguori
2011-07-26 10:43     ` Avi Kivity
2011-07-25 14:02 ` [PATCH 13/23] memory: document the memory API Avi Kivity
2011-07-25 19:15   ` [Qemu-devel] " Anthony Liguori
2011-07-26 10:44     ` Avi Kivity
2011-07-25 14:02 ` [PATCH 14/23] memory: transaction API Avi Kivity
2011-07-25 19:16   ` [Qemu-devel] " Anthony Liguori
2011-07-26 10:48     ` Avi Kivity
2011-07-26 11:39       ` Avi Kivity
2011-07-25 14:02 ` [PATCH 15/23] exec.c: initialize memory map Avi Kivity
2011-07-25 19:17   ` [Qemu-devel] " Anthony Liguori
2011-07-26 10:55     ` Avi Kivity
2011-07-25 14:02 ` [PATCH 16/23] ioport: register ranges by byte aligned addresses always Avi Kivity
2011-07-25 19:20   ` [Qemu-devel] " Anthony Liguori
2011-07-26 10:59     ` Avi Kivity
2011-07-25 14:02 ` [PATCH 17/23] pc: grab system_memory Avi Kivity
2011-07-25 19:22   ` [Qemu-devel] " Anthony Liguori
2011-07-25 14:02 ` [PATCH 18/23] pc: convert pc_memory_init() to memory API Avi Kivity
2011-07-25 19:23   ` [Qemu-devel] " Anthony Liguori
2011-07-25 14:03 ` [PATCH 19/23] pc: move global memory map out of pc_init1() and into its callers Avi Kivity
2011-07-25 20:02   ` [Qemu-devel] " Anthony Liguori
2011-07-26 11:02     ` Avi Kivity
2011-07-25 14:03 ` [PATCH 20/23] pci: pass address space to pci bus when created Avi Kivity
2011-07-25 20:03   ` Anthony Liguori [this message]
2011-07-25 14:03 ` [PATCH 21/23] pci: add MemoryRegion based BAR management API Avi Kivity
2011-07-25 20:20   ` Anthony Liguori
2011-07-26 11:06     ` Avi Kivity
2011-07-25 14:03 ` [PATCH 22/23] sysbus: add MemoryRegion based memory " Avi Kivity
2011-07-25 20:21   ` Anthony Liguori
2011-07-25 14:03 ` [PATCH 23/23] usb-ohci: convert to MemoryRegion Avi Kivity
2011-07-25 20:22   ` [Qemu-devel] " Anthony Liguori
2011-07-25 20:23 ` [PATCH 00/23] Memory API, batch 1 Anthony Liguori
2011-07-26 11:32   ` [Qemu-devel] " Avi Kivity

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=4E2DCC16.8060001@codemonkey.ws \
    --to=anthony@codemonkey.ws \
    --cc=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