Revision 1e39101c hw/pci.c
b/hw/pci.c | ||
---|---|---|
263 | 263 |
} |
264 | 264 |
|
265 | 265 |
void pci_bus_new_inplace(PCIBus *bus, DeviceState *parent, |
266 |
const char *name, uint8_t devfn_min) |
|
266 |
const char *name, |
|
267 |
MemoryRegion *address_space, |
|
268 |
uint8_t devfn_min) |
|
267 | 269 |
{ |
268 | 270 |
qbus_create_inplace(&bus->qbus, &pci_bus_info, parent, name); |
269 | 271 |
assert(PCI_FUNC(devfn_min) == 0); |
270 | 272 |
bus->devfn_min = devfn_min; |
273 |
bus->address_space = address_space; |
|
271 | 274 |
|
272 | 275 |
/* host bridge */ |
273 | 276 |
QLIST_INIT(&bus->child); |
... | ... | |
276 | 279 |
vmstate_register(NULL, -1, &vmstate_pcibus, bus); |
277 | 280 |
} |
278 | 281 |
|
279 |
PCIBus *pci_bus_new(DeviceState *parent, const char *name, uint8_t devfn_min) |
|
282 |
PCIBus *pci_bus_new(DeviceState *parent, const char *name, |
|
283 |
MemoryRegion *address_space, uint8_t devfn_min) |
|
280 | 284 |
{ |
281 | 285 |
PCIBus *bus; |
282 | 286 |
|
283 | 287 |
bus = qemu_mallocz(sizeof(*bus)); |
284 | 288 |
bus->qbus.qdev_allocated = 1; |
285 |
pci_bus_new_inplace(bus, parent, name, devfn_min); |
|
289 |
pci_bus_new_inplace(bus, parent, name, address_space, devfn_min);
|
|
286 | 290 |
return bus; |
287 | 291 |
} |
288 | 292 |
|
... | ... | |
310 | 314 |
|
311 | 315 |
PCIBus *pci_register_bus(DeviceState *parent, const char *name, |
312 | 316 |
pci_set_irq_fn set_irq, pci_map_irq_fn map_irq, |
313 |
void *irq_opaque, uint8_t devfn_min, int nirq) |
|
317 |
void *irq_opaque, |
|
318 |
MemoryRegion *address_space, |
|
319 |
uint8_t devfn_min, int nirq) |
|
314 | 320 |
{ |
315 | 321 |
PCIBus *bus; |
316 | 322 |
|
317 |
bus = pci_bus_new(parent, name, devfn_min); |
|
323 |
bus = pci_bus_new(parent, name, address_space, devfn_min);
|
|
318 | 324 |
pci_bus_irqs(bus, set_irq, map_irq, irq_opaque, nirq); |
319 | 325 |
return bus; |
320 | 326 |
} |
Also available in: Unified diff