Revision 94dd91d6

b/hw/alpha_typhoon.c
15 15
#include "exec-memory.h"
16 16

  
17 17

  
18
#define TYPE_TYPHOON_PCI_HOST_BRIDGE "typhoon-pcihost"
19

  
18 20
typedef struct TyphoonCchip {
19 21
    MemoryRegion region;
20 22
    uint64_t misc;
......
40 42
    TyphoonWindow win[4];
41 43
} TyphoonPchip;
42 44

  
45
#define TYPHOON_PCI_HOST_BRIDGE(obj) \
46
    OBJECT_CHECK(TyphoonState, (obj), TYPE_TYPHOON_PCI_HOST_BRIDGE)
47

  
43 48
typedef struct TyphoonState {
44 49
    PCIHostState host;
50

  
45 51
    TyphoonCchip cchip;
46 52
    TyphoonPchip pchip;
47 53
    MemoryRegion dchip_region;
......
700 706
    MemoryRegion *addr_space = get_system_memory();
701 707
    MemoryRegion *addr_space_io = get_system_io();
702 708
    DeviceState *dev;
703
    PCIHostState *p;
704 709
    TyphoonState *s;
710
    PCIHostState *phb;
705 711
    PCIBus *b;
706 712
    int i;
707 713

  
708
    dev = qdev_create(NULL, "typhoon-pcihost");
714
    dev = qdev_create(NULL, TYPE_TYPHOON_PCI_HOST_BRIDGE);
709 715
    qdev_init_nofail(dev);
710 716

  
711
    p = FROM_SYSBUS(PCIHostState, sysbus_from_qdev(dev));
712
    s = container_of(p, TyphoonState, host);
717
    s = TYPHOON_PCI_HOST_BRIDGE(dev);
718
    phb = FROM_SYSBUS(PCIHostState, SYS_BUS_DEVICE(dev));
713 719

  
714 720
    /* Remember the CPUs so that we can deliver interrupts to them.  */
715 721
    for (i = 0; i < 4; i++) {
......
763 769
    memory_region_add_subregion(addr_space, 0x801fc000000ULL,
764 770
                                &s->pchip.reg_io);
765 771

  
766
    b = pci_register_bus(&s->host.busdev.qdev, "pci",
772
    b = pci_register_bus(dev, "pci",
767 773
                         typhoon_set_irq, sys_map_irq, s,
768 774
                         &s->pchip.reg_mem, addr_space_io, 0, 64);
769
    s->host.bus = b;
775
    phb->bus = b;
770 776

  
771 777
    /* Pchip0 PCI special/interrupt acknowledge, 0x801.F800.0000, 64MB.  */
772 778
    memory_region_init_io(&s->pchip.reg_iack, &alpha_pci_iack_ops, b,
......
818 824
}
819 825

  
820 826
static const TypeInfo typhoon_pcihost_info = {
821
    .name          = "typhoon-pcihost",
827
    .name          = TYPE_TYPHOON_PCI_HOST_BRIDGE,
822 828
    .parent        = TYPE_SYS_BUS_DEVICE,
823 829
    .instance_size = sizeof(TyphoonState),
824 830
    .class_init    = typhoon_pcihost_class_init,

Also available in: Unified diff