Akihiko Odaki <akihiko.od...@daynix.com> writes: > vfio determines if rombar is explicitly enabled by inspecting QDict. > Inspecting QDict is not nice because QDict is untyped and depends on the > details on the external interface. Add an infrastructure to determine if > rombar is explicitly enabled to hw/pci. > > Signed-off-by: Akihiko Odaki <akihiko.od...@daynix.com> > --- > include/hw/pci/pci_device.h | 5 +++++ > 1 file changed, 5 insertions(+) > > diff --git a/include/hw/pci/pci_device.h b/include/hw/pci/pci_device.h > index ca151325085d..6be0f989ebe0 100644 > --- a/include/hw/pci/pci_device.h > +++ b/include/hw/pci/pci_device.h > @@ -205,6 +205,11 @@ static inline uint16_t pci_get_bdf(PCIDevice *dev) > return PCI_BUILD_BDF(pci_bus_num(pci_get_bus(dev)), dev->devfn); > } > > +static inline bool pci_rom_bar_explicitly_enabled(PCIDevice *dev) > +{ > + return dev->rom_bar && dev->rom_bar != UINT32_MAX; > +} > + > static inline void pci_set_power(PCIDevice *pci_dev, bool state) > { > /*
I agree inspecting QDict is not nice. The replacement has its own small drawback, though: an explicit "rombar=4294967296" is now misinterpreted as "user did not set rombar". The previous commit argues that users are really unlikely to do that. I don't disagree, but I think the drawback is worth mentioning in the commit message.