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()
349 if (msix) { in vfio_msi_set_vector_signal()
378 unsigned count, int32_t *fds, bool msix) in vfio_msi_set_block() argument
387 ret = vfio_msi_set_vector_signal(vdev, j, fd, msix); in vfio_msi_set_block()
392 vfio_msi_set_vector_signal(vdev, j, -1, msix); in vfio_msi_set_block()
398 static void vfio_msi_disable(struct vfio_pci_device *vdev, bool msix) in vfio_msi_disable() argument
403 vfio_msi_set_block(vdev, 0, vdev->num_ctx, NULL, msix); in vfio_msi_disable()
410 if (msix) { in vfio_msi_disable()
412 kfree(vdev->msix); in vfio_msi_disable()
519 bool msix = (index == VFIO_PCI_MSIX_IRQ_INDEX) ? true : false; in vfio_pci_set_msi_trigger() local
522 vfio_msi_disable(vdev, msix); in vfio_pci_set_msi_trigger()
535 fds, msix); in vfio_pci_set_msi_trigger()
537 ret = vfio_msi_enable(vdev, start + count, msix); in vfio_pci_set_msi_trigger()
541 ret = vfio_msi_set_block(vdev, start, count, fds, msix); in vfio_pci_set_msi_trigger()
543 vfio_msi_disable(vdev, msix); in vfio_pci_set_msi_trigger()