On Wed, Apr 19, 2017 at 09:50:01AM -0300, Eduardo Habkost wrote: > On Wed, Apr 19, 2017 at 09:41:42AM +0100, Peter Maydell wrote: > > On 18 April 2017 at 23:17, Eduardo Habkost <ehabk...@redhat.com> wrote: > > > pci_bus_new*() and pci_register_bus() work only when the 'parent' > > > argument is a PCI_HOST_BRIDGE object. Rename them to reflect that they > > > are meant to initialize a bus that's in a PCI host bridge. > > > > > > The new function names are: > > > * pci_host_bus_init() (replacing pci_bus_new()) > > > * pci_host_bus_init_inplace() (replacing pci_bus_new_inplace()) > > > * pci_host_bus_init_irqs() (replacing pci_register_bus()) > > > > This is moving these functions away from the convention that > > we seem to mostly follow for buses (eg ISA, SCSI) of > > foo_bus_new() to allocate and return a new bus, and > > foo_bus_new_inplace() to initialize a bus that's inline in > > some other struct. > > > > I'm not sure this is a good idea unless we have a plan to > > convert all the other QOM buses and document that this is > > the right way to implement init for a bus. > > The point of the rename is that those functions are doing more > than just allocating a PCIBus. They do some initialization of > PCIHostState as well. That's why non-root PCI buses can't be > created by pci_bus_new*() today.
Hm, yeah. So.. for what's now pci_register_bus() is it even worth keeping a helper? Could we just require that callers call the other init function then call pci_bus_irqs(). That would be one less name to come up with. For the others, what about pci_common_root_bus_new() pci_common_root_bus_init_inplace() ? > Maybe the answer here is to move the PCI_HOST_BRIDGE-specific > code somewhere else, and make pci_bus_new*() more generic. This > would allow us to reuse pci_bus_new*() when creating non-root PCI > buses, later. That might work even better. -- David Gibson | I'll have my music baroque, and my code david AT gibson.dropbear.id.au | minimalist, thank you. NOT _the_ _other_ | _way_ _around_! http://www.ozlabs.org/~dgibson
signature.asc
Description: PGP signature