From a402b8364306b5a01c75ea4223d7d75afdea0a98 Mon Sep 17 00:00:00 2001 From: Mohsin Kazmi Date: Fri, 25 Jan 2019 15:57:24 +0000 Subject: pci: get the number of interrupts Change-Id: I2cfb81b3c8809d027a3ee5f5f570668e60be08ef Signed-off-by: Mohsin Kazmi --- src/vlib/linux/pci.c | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) (limited to 'src/vlib/linux/pci.c') diff --git a/src/vlib/linux/pci.c b/src/vlib/linux/pci.c index 28a5140f3eb..ec35adb1c37 100644 --- a/src/vlib/linux/pci.c +++ b/src/vlib/linux/pci.c @@ -173,6 +173,24 @@ vlib_pci_get_numa_node (vlib_main_t * vm, vlib_pci_dev_handle_t h) return d->numa_node; } +u32 +vlib_pci_get_num_msix_interrupts (vlib_main_t * vm, vlib_pci_dev_handle_t h) +{ + linux_pci_device_t *d = linux_pci_get_device (h); + + if (d->type == LINUX_PCI_DEVICE_TYPE_VFIO) + { + struct vfio_irq_info ii = { 0 }; + + ii.argsz = sizeof (struct vfio_irq_info); + ii.index = VFIO_PCI_MSIX_IRQ_INDEX; + if (ioctl (d->fd, VFIO_DEVICE_GET_IRQ_INFO, &ii) < 0) + return 0; + return ii.count; + } + return 0; +} + /* Call to allocate/initialize the pci subsystem. This is not an init function so that users can explicitly enable pci only when it's needed. */ -- cgit 1.2.3-korg