src/dpdk/lib/librte_eal/linux/eal_interrupts.c
static int
vfio_ack_intx(const struct rte_intr_handle *intr_handle)
{
	struct vfio_irq_set irq_set;

	/* unmask INTx */
	memset(&irq_set, 0, sizeof(irq_set));
	irq_set.argsz = sizeof(irq_set);
	irq_set.count = 1;
	irq_set.flags = VFIO_IRQ_SET_DATA_NONE | VFIO_IRQ_SET_ACTION_UNMASK;
	irq_set.index = VFIO_PCI_INTX_IRQ_INDEX;
	irq_set.start = 0;

	if (ioctl(intr_handle->vfio_dev_fd, VFIO_DEVICE_SET_IRQS, &irq_set)) {
		RTE_LOG(ERR, EAL, "Error unmasking INTx interrupts for fd %d\n",
			intr_handle->fd);
		return -1;
	}
	return 0;
}
/* unmask/ack legacy (INTx) interrupts */
unmask/ack legacy (INTx) interrupts
unmask / ack legacy ( INTx ) interrupts
static int
vfio_ack_intx(const struct rte_intr_handle *intr_handle)
{
	struct vfio_irq_set irq_set;
	memset(&irq_set, 0, sizeof(irq_set));
	irq_set.argsz = sizeof(irq_set);
	irq_set.count = 1;
	irq_set.flags = VFIO_IRQ_SET_DATA_NONE | VFIO_IRQ_SET_ACTION_UNMASK;
	irq_set.index = VFIO_PCI_INTX_IRQ_INDEX;
	irq_set.start = 0;
	if (ioctl(intr_handle->vfio_dev_fd, VFIO_DEVICE_SET_IRQS, &irq_set)) {
		RTE_LOG(ERR, EAL, "Error unmasking INTx interrupts for fd %d\n",
			intr_handle->fd);
		return -1;
	}
	return 0;
}
static int vfio_ack_intx ( const struct rte_intr_handle * intr_handle ) { struct vfio_irq_set irq_set ; memset ( & irq_set , 0 , sizeof ( irq_set ) ) ; irq_set . argsz = sizeof ( irq_set ) ; irq_set . count = 1 ; irq_set . flags = VFIO_IRQ_SET_DATA_NONE | VFIO_IRQ_SET_ACTION_UNMASK ; irq_set . index = VFIO_PCI_INTX_IRQ_INDEX ; irq_set . start = 0 ; if ( ioctl ( intr_handle -> vfio_dev_fd , VFIO_DEVICE_SET_IRQS , & irq_set ) ) { RTE_LOG ( ERR , EAL , " \n " , intr_handle -> fd ) ; return -1 ; } return 0 ; }
unmask/ack legacy (INTx) interrupts
unmask / ack legacy ( INTx ) interrupts
/* unmask INTx */