i440fx-pcihost: Use QOM realize for i440fx-pcihost
Signed-off-by: Hu Tao <hutao@cn.fujitsu.com> Signed-off-by: Andreas Färber <afaerber@suse.de>
This commit is contained in:
		
							parent
							
								
									2aedfa4649
								
							
						
					
					
						commit
						a3560fbf01
					
				@ -203,21 +203,26 @@ static const VMStateDescription vmstate_i440fx = {
 | 
				
			|||||||
    }
 | 
					    }
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static int i440fx_pcihost_initfn(SysBusDevice *dev)
 | 
					static void i440fx_pcihost_initfn(Object *obj)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    PCIHostState *s = PCI_HOST_BRIDGE(obj);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    memory_region_init_io(&s->conf_mem, obj, &pci_host_conf_le_ops, s,
 | 
				
			||||||
 | 
					                          "pci-conf-idx", 4);
 | 
				
			||||||
 | 
					    memory_region_init_io(&s->data_mem, obj, &pci_host_data_le_ops, s,
 | 
				
			||||||
 | 
					                          "pci-conf-data", 4);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					static void i440fx_pcihost_realize(DeviceState *dev, Error **errp)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    PCIHostState *s = PCI_HOST_BRIDGE(dev);
 | 
					    PCIHostState *s = PCI_HOST_BRIDGE(dev);
 | 
				
			||||||
 | 
					    SysBusDevice *sbd = SYS_BUS_DEVICE(dev);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    memory_region_init_io(&s->conf_mem, OBJECT(dev), &pci_host_conf_le_ops, s,
 | 
					    sysbus_add_io(sbd, 0xcf8, &s->conf_mem);
 | 
				
			||||||
                          "pci-conf-idx", 4);
 | 
					    sysbus_init_ioports(sbd, 0xcf8, 4);
 | 
				
			||||||
    sysbus_add_io(dev, 0xcf8, &s->conf_mem);
 | 
					 | 
				
			||||||
    sysbus_init_ioports(&s->busdev, 0xcf8, 4);
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    memory_region_init_io(&s->data_mem, OBJECT(dev), &pci_host_data_le_ops, s,
 | 
					    sysbus_add_io(sbd, 0xcfc, &s->data_mem);
 | 
				
			||||||
                          "pci-conf-data", 4);
 | 
					    sysbus_init_ioports(sbd, 0xcfc, 4);
 | 
				
			||||||
    sysbus_add_io(dev, 0xcfc, &s->data_mem);
 | 
					 | 
				
			||||||
    sysbus_init_ioports(&s->busdev, 0xcfc, 4);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    return 0;
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static int i440fx_initfn(PCIDevice *dev)
 | 
					static int i440fx_initfn(PCIDevice *dev)
 | 
				
			||||||
@ -647,11 +652,10 @@ static const char *i440fx_pcihost_root_bus_path(PCIHostState *host_bridge,
 | 
				
			|||||||
static void i440fx_pcihost_class_init(ObjectClass *klass, void *data)
 | 
					static void i440fx_pcihost_class_init(ObjectClass *klass, void *data)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    DeviceClass *dc = DEVICE_CLASS(klass);
 | 
					    DeviceClass *dc = DEVICE_CLASS(klass);
 | 
				
			||||||
    SysBusDeviceClass *k = SYS_BUS_DEVICE_CLASS(klass);
 | 
					 | 
				
			||||||
    PCIHostBridgeClass *hc = PCI_HOST_BRIDGE_CLASS(klass);
 | 
					    PCIHostBridgeClass *hc = PCI_HOST_BRIDGE_CLASS(klass);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    hc->root_bus_path = i440fx_pcihost_root_bus_path;
 | 
					    hc->root_bus_path = i440fx_pcihost_root_bus_path;
 | 
				
			||||||
    k->init = i440fx_pcihost_initfn;
 | 
					    dc->realize = i440fx_pcihost_realize;
 | 
				
			||||||
    dc->fw_name = "pci";
 | 
					    dc->fw_name = "pci";
 | 
				
			||||||
    dc->no_user = 1;
 | 
					    dc->no_user = 1;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
@ -660,6 +664,7 @@ static const TypeInfo i440fx_pcihost_info = {
 | 
				
			|||||||
    .name          = "i440FX-pcihost",
 | 
					    .name          = "i440FX-pcihost",
 | 
				
			||||||
    .parent        = TYPE_PCI_HOST_BRIDGE,
 | 
					    .parent        = TYPE_PCI_HOST_BRIDGE,
 | 
				
			||||||
    .instance_size = sizeof(I440FXState),
 | 
					    .instance_size = sizeof(I440FXState),
 | 
				
			||||||
 | 
					    .instance_init = i440fx_pcihost_initfn,
 | 
				
			||||||
    .class_init    = i440fx_pcihost_class_init,
 | 
					    .class_init    = i440fx_pcihost_class_init,
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user