Lines Matching refs:msix

250 static int vfio_msi_enable(struct vfio_pci_device *vdev, int nvec, bool msix)  in vfio_msi_enable()  argument
262 if (msix) { in vfio_msi_enable()
265 vdev->msix = kzalloc(nvec * sizeof(struct msix_entry), in vfio_msi_enable()
267 if (!vdev->msix) { in vfio_msi_enable()
273 vdev->msix[i].entry = i; in vfio_msi_enable()
275 ret = pci_enable_msix_range(pdev, vdev->msix, 1, nvec); in vfio_msi_enable()
279 kfree(vdev->msix); in vfio_msi_enable()
294 vdev->irq_type = msix ? VFIO_PCI_MSIX_IRQ_INDEX : in vfio_msi_enable()
297 if (!msix) { in vfio_msi_enable()
309 int vector, int fd, bool msix) in vfio_msi_set_vector_signal() argument
312 int irq = msix ? vdev->msix[vector].vector : pdev->irq + vector; in vfio_msi_set_vector_signal()
313 char *name = msix ? "vfio-msix" : "vfio-msi"; in vfio_msi_set_vector_signal()
348 if (msix) { in vfio_msi_set_vector_signal()
369 unsigned count, int32_t *fds, bool msix) in vfio_msi_set_block() argument
378 ret = vfio_msi_set_vector_signal(vdev, j, fd, msix); in vfio_msi_set_block()
383 vfio_msi_set_vector_signal(vdev, j, -1, msix); in vfio_msi_set_block()
389 static void vfio_msi_disable(struct vfio_pci_device *vdev, bool msix) in vfio_msi_disable() argument
394 vfio_msi_set_block(vdev, 0, vdev->num_ctx, NULL, msix); in vfio_msi_disable()
401 if (msix) { in vfio_msi_disable()
403 kfree(vdev->msix); in vfio_msi_disable()
510 bool msix = (index == VFIO_PCI_MSIX_IRQ_INDEX) ? true : false; in vfio_pci_set_msi_trigger() local
513 vfio_msi_disable(vdev, msix); in vfio_pci_set_msi_trigger()
526 fds, msix); in vfio_pci_set_msi_trigger()
528 ret = vfio_msi_enable(vdev, start + count, msix); in vfio_pci_set_msi_trigger()
532 ret = vfio_msi_set_block(vdev, start, count, fds, msix); in vfio_pci_set_msi_trigger()
534 vfio_msi_disable(vdev, msix); in vfio_pci_set_msi_trigger()