On Sun, Nov 15, 2015 at 05:39:05PM +0200, Marcel Apfelbaum wrote: > Look for pxb devices on both i386 machines. > > Signed-off-by: Marcel Apfelbaum <mar...@redhat.com> [...] > diff --git a/hw/pci-host/q35.c b/hw/pci-host/q35.c > index c81507d..2fbbcd3 100644 > --- a/hw/pci-host/q35.c > +++ b/hw/pci-host/q35.c > @@ -511,6 +511,14 @@ static void mch_realize(PCIDevice *d, Error **errp) > } > } > > +PCIBus *find_q35(void) > +{ > + PCIHostState *s = OBJECT_CHECK(PCIHostState, > + object_resolve_path("/machine/q35", NULL), > + TYPE_PCI_HOST_BRIDGE);
Why not use the PCI_HOST_BRIDGE macro? > + return s ? s->bus : NULL; > +} > + > uint64_t mch_mcfg_base(void) > { > bool ambiguous; > diff --git a/include/hw/i386/pc.h b/include/hw/i386/pc.h > index 4bbc0ff..95d7610 100644 > --- a/include/hw/i386/pc.h > +++ b/include/hw/i386/pc.h > @@ -242,6 +242,15 @@ PCIBus *i440fx_init(const char *host_type, const char > *pci_type, > MemoryRegion *ram_memory); > > PCIBus *find_i440fx(void); > +PCIBus *find_q35(void); > + > +static inline PCIBus *find_pc(void) > +{ > + PCIBus *bus = find_i440fx(); > + > + return bus ? bus : find_q35(); Have you considered a /machine/pci link, or (in case you don't want to add something new to the QOM tree) a simple PCMachineState::pci_bus struct field? -- Eduardo