int virq;
MSIMessage msg = {0, 0};
- if (dev) {
+ if (pci_available && dev) {
msg = pci_get_msi_message(dev, vector);
}
kroute.u.msi.address_lo = (uint32_t)msg.address;
kroute.u.msi.address_hi = msg.address >> 32;
kroute.u.msi.data = le32_to_cpu(msg.data);
- if (kvm_msi_devid_required()) {
+ if (pci_available && kvm_msi_devid_required()) {
kroute.flags = KVM_MSI_VALID_DEVID;
kroute.u.msi.devid = pci_requester_id(dev);
}
kroute.u.msi.address_lo = (uint32_t)msg.address;
kroute.u.msi.address_hi = msg.address >> 32;
kroute.u.msi.data = le32_to_cpu(msg.data);
- if (kvm_msi_devid_required()) {
+ if (pci_available && kvm_msi_devid_required()) {
kroute.flags = KVM_MSI_VALID_DEVID;
kroute.u.msi.devid = pci_requester_id(dev);
}
#include "hw/pci/msi.h"
bool msi_nonbroken;
+bool pci_available;
PciInfoList *qmp_query_pci(Error **errp)
{
{
monitor_printf(mon, "PCI devices not supported\n");
}
+
+/* kvm-all wants this */
+MSIMessage pci_get_msi_message(PCIDevice *dev, int vector)
+{
+ g_assert(false);
+ return (MSIMessage){};
+}
+
+uint16_t pci_requester_id(PCIDevice *dev)
+{
+ g_assert(false);
+ return 0;
+}
# define PCI_DPRINTF(format, ...) do { } while (0)
#endif
+bool pci_available = true;
+
static void pcibus_dev_print(Monitor *mon, DeviceState *dev, int indent);
static char *pcibus_get_dev_path(DeviceState *dev);
static char *pcibus_get_fw_dev_path(DeviceState *dev);