#define VFIO_IRQ_SET_DATA_EVENTFD (1 << 2) /* Data is eventfd (s32) */ #define VFIO_IRQ_SET_ACTION_MASK (1 << 3) /* Mask interrupt */ #define VFIO_IRQ_SET_ACTION_UNMASK (1 << 4) /* Unmask interrupt */ #define V
#define VFIO_IRQ_SET_DATA_EVENTFD(1 << 2) /* Data is eventfd (s32) */ #define VFIO_IRQ_SET_ACTION_MASK(1 << 3) /* Mask interrupt */ #define VFIO_IRQ_SET_ACTION_UNMASK(1 << 4) /* Unmask interrupt */ #define VFIO_IRQ_SET_ACTION_TRIGGER(1 << 5) /* Trigger interrupt */ ...
irqfd_wakeup);// 注册主动poll该eventfd的查询函数init_poll_funcptr(&irqfd->pt, irqfd_ptable_queue_proc);// 更新系统中的irqfdirqfd_update(kvm, irqfd);/* 注册一个irq的consumer. 调用该consumer的.add_producer成员会导致更新irq对应的host_irq的IOMMU-IRTE */#ifdefCONFIG_HAVE_KVM_...
len=sizeof(irq_set_buf);/*enable INTx*/irq_set= (structvfio_irq_set *) irq_set_buf; irq_set->argsz =len; irq_set->count =1; irq_set->flags = VFIO_IRQ_SET_DATA_EVENTFD |VFIO_IRQ_SET_ACTION_TRIGGER; irq_set->index =VFIO_PCI_INTX_IRQ_INDEX; irq_set->start =0; fd_ptr=...
VFIO_DEVICE_GET_IRQ_INFO:得到设备的中断信息 VFIO_DEVICE_RESET:重置设备 下图展示了用户态app,内核态VFIO, vfio-pci驱动,VFIO IOMMU 驱动,PCI驱动,IOMMU 驱动以及内核态和用户态通过三个层面的接口示意图: 图3 应用程序和VFIO接口 03 VFIO 驱动主要数据结构 ...
if (priv->wol_irq == -EPROBE_DEFER) return -EPROBE_DEFER; priv->wol_irq = priv->dev->irq; } priv->lpi_irq = platform_get_irq_byname(pdev, "eth_lpi"); if (priv->lpi_irq == -EPROBE_DEFER) return -EPROBE_DEFER; platform_set_drvdata(pdev, priv->dev); pr_debug("STMMAC...
VFIO_DEVICE_GET_IRQ_INFO:得到设备的中断信息 VFIO_DEVICE_RESET:重置设备 下图展示了用户态app,内核态VFIO, vfio-pci驱动,VFIO IOMMU 驱动,PCI驱动,IOMMU 驱动以及内核态和用户态通过三个层面的接口示意图: 图3 应用程序和VFIO接口 03 VFIO 驱动主要数据结构 ...
#define VFIO_IRQ_SET_ACTION_TRIGGER(1 << 5) /* Trigger interrupt */ __u32index; __u32start; __u32count; __u8data[]; }; VFIO_DEVICE_RESET:复位设备 vfio-pci驱动作为一个中间桥梁,是vfio模块和物理pci 设备之间的纽带。向下提供控制pci物理设备的行为,向上提供vfio的接口信息。对pci 设备的控...
irq_set->argsz = sizeof(*irq_set) + sizeof(irqfd); irq_set->flags = VFIO_IRQ_SET_DATA_EVENTFD | VFIO_IRQ_SET_ACTION_TRIGGER; irq_set->index = irq_index; irq_set->start = 0; irq_set->count = 1; irq_set->data = irqfd; ...
->vfio_set_irq_signaling(VFIO_IRQ_SET_ACTION_TRIGGER) ->msix_set_vector_notifiers 7VFIO用户态驱动模板 int container, group, device, i; struct vfio_group_status group_status = { .argsz = sizeof(group_status) }; struct vfio_iommu_type1_info iommu_info = { .argsz = sizeof(iommu_info...