Hi Peter, On 10/21/21 12:42 PM, Peter Xu wrote: > It's used in quite a few places of pci.c and also in the rest of the code > base. > Define such a hook so that it doesn't need to be defined all over the places. > > Signed-off-by: Peter Xu <pet...@redhat.com> > --- > hw/pci/pci.c | 14 ++++---------- > include/hw/pci/pci.h | 7 ++++--- > 2 files changed, 8 insertions(+), 13 deletions(-) > > diff --git a/hw/pci/pci.c b/hw/pci/pci.c > index 186758ee11..1ab2b78321 100644 > --- a/hw/pci/pci.c > +++ b/hw/pci/pci.c > @@ -1655,9 +1655,7 @@ static const pci_class_desc pci_class_descriptions[] = > }; > > static void pci_for_each_device_under_bus_reverse(PCIBus *bus, > - void (*fn)(PCIBus *b, > - PCIDevice *d, > - void *opaque), > + pci_bus_dev_fn fn, > void *opaque) > { > PCIDevice *d; > @@ -1672,8 +1670,7 @@ static void > pci_for_each_device_under_bus_reverse(PCIBus *bus, > } > > void pci_for_each_device_reverse(PCIBus *bus, int bus_num, > - void (*fn)(PCIBus *b, PCIDevice *d, void *opaque), > - void *opaque) > + pci_bus_dev_fn fn, void *opaque) > { > bus = pci_find_bus_nr(bus, bus_num); > > @@ -1683,9 +1680,7 @@ void pci_for_each_device_reverse(PCIBus *bus, int > bus_num, > } > > static void pci_for_each_device_under_bus(PCIBus *bus, > - void (*fn)(PCIBus *b, PCIDevice *d, > - void *opaque), > - void *opaque) > + pci_bus_dev_fn fn, void *opaque) > { > PCIDevice *d; > int devfn; > @@ -1699,8 +1694,7 @@ static void pci_for_each_device_under_bus(PCIBus *bus, > } > > void pci_for_each_device(PCIBus *bus, int bus_num, > - void (*fn)(PCIBus *b, PCIDevice *d, void *opaque), > - void *opaque) > + pci_bus_dev_fn fn, void *opaque) > { > bus = pci_find_bus_nr(bus, bus_num); > > diff --git a/include/hw/pci/pci.h b/include/hw/pci/pci.h > index 7fc90132cf..8e2d80860b 100644 > --- a/include/hw/pci/pci.h > +++ b/include/hw/pci/pci.h > @@ -401,6 +401,8 @@ typedef PCIINTxRoute (*pci_route_irq_fn)(void *opaque, > int pin); > OBJECT_DECLARE_TYPE(PCIBus, PCIBusClass, PCI_BUS) > #define TYPE_PCIE_BUS "PCIE" > > +typedef void (*pci_bus_dev_fn)(PCIBus *b, PCIDevice *d, void *opaque); > + > bool pci_bus_is_express(PCIBus *bus); > > void pci_root_bus_init(PCIBus *bus, size_t bus_size, DeviceState *parent, > @@ -458,11 +460,10 @@ static inline int pci_dev_bus_num(const PCIDevice *dev) > > int pci_bus_numa_node(PCIBus *bus); > void pci_for_each_device(PCIBus *bus, int bus_num, > - void (*fn)(PCIBus *bus, PCIDevice *d, void *opaque), > + pci_bus_dev_fn fn, > void *opaque); > void pci_for_each_device_reverse(PCIBus *bus, int bus_num, > - void (*fn)(PCIBus *bus, PCIDevice *d, > - void *opaque), > + pci_bus_dev_fn fn, > void *opaque); > void pci_for_each_bus_depth_first(PCIBus *bus, > void *(*begin)(PCIBus *bus, void > *parent_state), There is another candidate in hw/ppc/pegasos2.c: void (*dtf)(PCIBus *bus, PCIDevice *d, FDTInfo *fi); but this may be coverted later by the maintainer of this file.
Reviewed-by: Eric Auger <eric.au...@redhat.com> Eric