From a5d1fd20ccfd1fbe840729378e4adbc3eb0f8306 Mon Sep 17 00:00:00 2001 From: Isaku Yamahata Date: Tue, 19 Oct 2010 18:06:29 +0900 Subject: pci: introduce helper function to handle msi-x and msi. this patch implements helper functions to handle msi-x and msi uniformly. They will be used later. Signed-off-by: Isaku Yamahata Signed-off-by: Michael S. Tsirkin --- hw/pci.c | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) (limited to 'hw/pci.c') diff --git a/hw/pci.c b/hw/pci.c index e3462a9384..300079f4af 100644 --- a/hw/pci.c +++ b/hw/pci.c @@ -25,6 +25,8 @@ #include "pci.h" #include "pci_bridge.h" #include "pci_internals.h" +#include "msix.h" +#include "msi.h" #include "monitor.h" #include "net.h" #include "sysemu.h" @@ -1034,6 +1036,23 @@ static void pci_set_irq(void *opaque, int irq_num, int level) pci_change_irq_level(pci_dev, irq_num, change); } +bool pci_msi_enabled(PCIDevice *dev) +{ + return msix_enabled(dev) || msi_enabled(dev); +} + +void pci_msi_notify(PCIDevice *dev, unsigned int vector) +{ + if (msix_enabled(dev)) { + msix_notify(dev, vector); + } else if (msi_enabled(dev)) { + msi_notify(dev, vector); + } else { + /* MSI/MSI-X must be enabled */ + abort(); + } +} + /***********************************************************/ /* monitor info on PCI */ -- cgit 1.4.1