Lines Matching refs:ioeventfd

282 	struct vfio_pci_ioeventfd *ioeventfd = opaque;  in vfio_pci_ioeventfd_handler()  local
284 switch (ioeventfd->count) { in vfio_pci_ioeventfd_handler()
286 vfio_iowrite8(ioeventfd->data, ioeventfd->addr); in vfio_pci_ioeventfd_handler()
289 vfio_iowrite16(ioeventfd->data, ioeventfd->addr); in vfio_pci_ioeventfd_handler()
292 vfio_iowrite32(ioeventfd->data, ioeventfd->addr); in vfio_pci_ioeventfd_handler()
296 vfio_iowrite64(ioeventfd->data, ioeventfd->addr); in vfio_pci_ioeventfd_handler()
310 struct vfio_pci_ioeventfd *ioeventfd; in vfio_pci_ioeventfd() local
336 list_for_each_entry(ioeventfd, &vdev->ioeventfds_list, next) { in vfio_pci_ioeventfd()
337 if (ioeventfd->pos == pos && ioeventfd->bar == bar && in vfio_pci_ioeventfd()
338 ioeventfd->data == data && ioeventfd->count == count) { in vfio_pci_ioeventfd()
340 vfio_virqfd_disable(&ioeventfd->virqfd); in vfio_pci_ioeventfd()
341 list_del(&ioeventfd->next); in vfio_pci_ioeventfd()
343 kfree(ioeventfd); in vfio_pci_ioeventfd()
362 ioeventfd = kzalloc(sizeof(*ioeventfd), GFP_KERNEL); in vfio_pci_ioeventfd()
363 if (!ioeventfd) { in vfio_pci_ioeventfd()
368 ioeventfd->addr = vdev->barmap[bar] + pos; in vfio_pci_ioeventfd()
369 ioeventfd->data = data; in vfio_pci_ioeventfd()
370 ioeventfd->pos = pos; in vfio_pci_ioeventfd()
371 ioeventfd->bar = bar; in vfio_pci_ioeventfd()
372 ioeventfd->count = count; in vfio_pci_ioeventfd()
374 ret = vfio_virqfd_enable(ioeventfd, vfio_pci_ioeventfd_handler, in vfio_pci_ioeventfd()
375 NULL, NULL, &ioeventfd->virqfd, fd); in vfio_pci_ioeventfd()
377 kfree(ioeventfd); in vfio_pci_ioeventfd()
381 list_add(&ioeventfd->next, &vdev->ioeventfds_list); in vfio_pci_ioeventfd()