mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-06 01:03:55 -06:00
pci: introduce multifunction property.
introduce multifunction property. Also introduce new convenient device creation function which will be used later. For bisectability this patch doesn't do anything, but sets the property resulting in no functional changes. Actual changes will be introduced by later patch. Signed-off-by: Isaku Yamahata <yamahata@valinux.co.jp> Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
This commit is contained in:
parent
f4594a3be0
commit
498238687f
2 changed files with 29 additions and 4 deletions
24
hw/pci.c
24
hw/pci.c
|
@ -69,6 +69,8 @@ static struct BusInfo pci_bus_info = {
|
|||
DEFINE_PROP_PCI_DEVFN("addr", PCIDevice, devfn, -1),
|
||||
DEFINE_PROP_STRING("romfile", PCIDevice, romfile),
|
||||
DEFINE_PROP_UINT32("rombar", PCIDevice, rom_bar, 1),
|
||||
DEFINE_PROP_BIT("multifunction", PCIDevice, cap_present,
|
||||
QEMU_PCI_CAP_MULTIFUNCTION_BITNR, false),
|
||||
DEFINE_PROP_END_OF_LIST()
|
||||
}
|
||||
};
|
||||
|
@ -1659,20 +1661,34 @@ void pci_qdev_register_many(PCIDeviceInfo *info)
|
|||
}
|
||||
}
|
||||
|
||||
PCIDevice *pci_create(PCIBus *bus, int devfn, const char *name)
|
||||
PCIDevice *pci_create_multifunction(PCIBus *bus, int devfn, bool multifunction,
|
||||
const char *name)
|
||||
{
|
||||
DeviceState *dev;
|
||||
|
||||
dev = qdev_create(&bus->qbus, name);
|
||||
qdev_prop_set_uint32(dev, "addr", devfn);
|
||||
qdev_prop_set_bit(dev, "multifunction", multifunction);
|
||||
return DO_UPCAST(PCIDevice, qdev, dev);
|
||||
}
|
||||
|
||||
PCIDevice *pci_create_simple_multifunction(PCIBus *bus, int devfn,
|
||||
bool multifunction,
|
||||
const char *name)
|
||||
{
|
||||
PCIDevice *dev = pci_create_multifunction(bus, devfn, multifunction, name);
|
||||
qdev_init_nofail(&dev->qdev);
|
||||
return dev;
|
||||
}
|
||||
|
||||
PCIDevice *pci_create(PCIBus *bus, int devfn, const char *name)
|
||||
{
|
||||
return pci_create_multifunction(bus, devfn, false, name);
|
||||
}
|
||||
|
||||
PCIDevice *pci_create_simple(PCIBus *bus, int devfn, const char *name)
|
||||
{
|
||||
PCIDevice *dev = pci_create(bus, devfn, name);
|
||||
qdev_init_nofail(&dev->qdev);
|
||||
return dev;
|
||||
return pci_create_simple_multifunction(bus, devfn, false, name);
|
||||
}
|
||||
|
||||
static int pci_find_space(PCIDevice *pdev, uint8_t size)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue