Skip to content

Commit

Permalink
ppce500_pci: QOM'ify e500 PCI host bridge
Browse files Browse the repository at this point in the history
Introduce type constant and cast macro. Avoid accessing parent fields
directly.

Signed-off-by: Andreas Färber <afaerber@suse.de>
Acked-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
  • Loading branch information
afaerber authored and Anthony Liguori committed Aug 22, 2012
1 parent 42c281a commit 9c1a61f
Showing 1 changed file with 11 additions and 5 deletions.
16 changes: 11 additions & 5 deletions hw/ppce500_pci.c
Expand Up @@ -72,8 +72,14 @@ struct pci_inbound {
uint32_t piwar;
};

#define TYPE_PPC_E500_PCI_HOST_BRIDGE "e500-pcihost"

#define PPC_E500_PCI_HOST_BRIDGE(obj) \
OBJECT_CHECK(PPCE500PCIState, (obj), TYPE_PPC_E500_PCI_HOST_BRIDGE)

struct PPCE500PCIState {
PCIHostState pci_state;

struct pci_outbound pob[PPCE500_PCI_NR_POBS];
struct pci_inbound pib[PPCE500_PCI_NR_PIBS];
uint32_t gasket_time;
Expand Down Expand Up @@ -310,17 +316,17 @@ static int e500_pcihost_initfn(SysBusDevice *dev)
MemoryRegion *address_space_mem = get_system_memory();
MemoryRegion *address_space_io = get_system_io();

h = FROM_SYSBUS(PCIHostState, sysbus_from_qdev(dev));
s = DO_UPCAST(PPCE500PCIState, pci_state, h);
h = FROM_SYSBUS(PCIHostState, dev);
s = PPC_E500_PCI_HOST_BRIDGE(dev);

for (i = 0; i < ARRAY_SIZE(s->irq); i++) {
sysbus_init_irq(dev, &s->irq[i]);
}

b = pci_register_bus(&s->pci_state.busdev.qdev, NULL, mpc85xx_pci_set_irq,
b = pci_register_bus(DEVICE(dev), NULL, mpc85xx_pci_set_irq,
mpc85xx_pci_map_irq, s->irq, address_space_mem,
address_space_io, PCI_DEVFN(0x11, 0), 4);
s->pci_state.bus = b;
h->bus = b;

pci_create_simple(b, 0, "e500-host-bridge");

Expand Down Expand Up @@ -367,7 +373,7 @@ static void e500_pcihost_class_init(ObjectClass *klass, void *data)
}

static const TypeInfo e500_pcihost_info = {
.name = "e500-pcihost",
.name = TYPE_PPC_E500_PCI_HOST_BRIDGE,
.parent = TYPE_SYS_BUS_DEVICE,
.instance_size = sizeof(PPCE500PCIState),
.class_init = e500_pcihost_class_init,
Expand Down

0 comments on commit 9c1a61f

Please sign in to comment.