| /linux/virt/lib/ |
| H A D | irqbypass.c | 94 struct eventfd_ctx *eventfd, int irq) in irq_bypass_register_producer() argument 96 unsigned long index = (unsigned long)eventfd; in irq_bypass_register_producer() 100 if (WARN_ON_ONCE(producer->eventfd)) in irq_bypass_register_producer() 120 producer->eventfd = eventfd; in irq_bypass_register_producer() 135 unsigned long index = (unsigned long)producer->eventfd; in irq_bypass_unregister_producer() 137 if (!producer->eventfd) in irq_bypass_unregister_producer() 146 producer->eventfd = NULL; in irq_bypass_unregister_producer() 159 struct eventfd_ctx *eventfd) in irq_bypass_register_consumer() argument 161 unsigned long index = (unsigned long)eventfd; in irq_bypass_register_consumer() 165 if (WARN_ON_ONCE(consumer->eventfd)) in irq_bypass_register_consumer() [all …]
|
| /linux/drivers/virt/acrn/ |
| H A D | ioeventfd.c | 29 struct eventfd_ctx *eventfd; member 47 eventfd_ctx_put(p->eventfd); in acrn_ioeventfd_shutdown() 61 if (p->eventfd == ioeventfd->eventfd && in hsm_ioeventfd_is_conflict() 79 struct eventfd_ctx *eventfd; in acrn_ioeventfd_assign() local 95 eventfd = eventfd_ctx_fdget(args->fd); in acrn_ioeventfd_assign() 96 if (IS_ERR(eventfd)) in acrn_ioeventfd_assign() 97 return PTR_ERR(eventfd); in acrn_ioeventfd_assign() 108 p->eventfd = eventfd; in acrn_ioeventfd_assign() 143 eventfd_ctx_put(eventfd); in acrn_ioeventfd_assign() 151 struct eventfd_ctx *eventfd; in acrn_ioeventfd_deassign() local [all …]
|
| /linux/virt/kvm/ |
| H A D | eventfd.c | 137 eventfd_ctx_remove_wait_queue(irqfd->eventfd, &irqfd->wait, &cnt); in irqfd_shutdown() 156 eventfd_ctx_put(irqfd->eventfd); in irqfd_shutdown() 221 eventfd_ctx_do_read(irqfd->eventfd, &cnt); in irqfd_wakeup() 374 struct eventfd_ctx *eventfd = NULL, *resamplefd = NULL; in kvm_irqfd_assign() local 403 eventfd = eventfd_ctx_fileget(fd_file(f)); in kvm_irqfd_assign() 404 if (IS_ERR(eventfd)) { in kvm_irqfd_assign() 405 ret = PTR_ERR(eventfd); in kvm_irqfd_assign() 409 irqfd->eventfd = eventfd; in kvm_irqfd_assign() 496 ret = irq_bypass_register_consumer(&irqfd->consumer, irqfd->eventfd); in kvm_irqfd_assign() 499 irqfd->eventfd, ret); in kvm_irqfd_assign() [all …]
|
| H A D | Makefile.kvm | 8 kvm-y := $(KVM)/kvm_main.o $(KVM)/eventfd.o $(KVM)/binary_stats.o
|
| /linux/tools/testing/selftests/kvm/ |
| H A D | irqfd_test.c | 28 static void juggle_eventfd_secondary(struct kvm_vm *vm, int eventfd) in juggle_eventfd_secondary() argument 41 r = __kvm_irqfd(vm, GSI_BASE_SECONDARY, eventfd, 0); in juggle_eventfd_secondary() 47 r = __kvm_irqfd(vm, GSI_BASE_SECONDARY + i, eventfd, KVM_IRQFD_FLAG_DEASSIGN); in juggle_eventfd_secondary() 63 static void juggle_eventfd_primary(struct kvm_vm *vm, int eventfd) in juggle_eventfd_primary() argument 72 r1 = __kvm_irqfd(vm, GSI_BASE_PRIMARY, eventfd, 0); in juggle_eventfd_primary() 76 r2 = __kvm_irqfd(vm, GSI_BASE_PRIMARY + 1, eventfd, 0); in juggle_eventfd_primary() 85 kvm_irqfd(vm, GSI_BASE_PRIMARY, eventfd, KVM_IRQFD_FLAG_DEASSIGN); in juggle_eventfd_primary() 86 kvm_irqfd(vm, GSI_BASE_PRIMARY + 1, eventfd, KVM_IRQFD_FLAG_DEASSIGN); in juggle_eventfd_primary()
|
| /linux/drivers/hv/ |
| H A D | mshv_eventfd.c | 396 struct eventfd_ctx *eventfd = NULL, *resamplefd = NULL; in mshv_irqfd_assign() local 418 eventfd = eventfd_ctx_fileget(fd_file(f)); in mshv_irqfd_assign() 419 if (IS_ERR(eventfd)) { in mshv_irqfd_assign() 420 ret = PTR_ERR(eventfd); in mshv_irqfd_assign() 424 irqfd->irqfd_eventfd_ctx = eventfd; in mshv_irqfd_assign() 532 if (eventfd && !IS_ERR(eventfd)) in mshv_irqfd_assign() 533 eventfd_ctx_put(eventfd); in mshv_irqfd_assign() 548 struct eventfd_ctx *eventfd; in mshv_irqfd_deassign() local 550 eventfd = eventfd_ctx_fdget(args->fd); in mshv_irqfd_deassign() 551 if (IS_ERR(eventfd)) in mshv_irqfd_deassign() [all …]
|
| H A D | mshv_trace.h | 425 void *eventfd, int ret), 426 TP_ARGS(partition_id, addr, length, datamatch, wildcard, eventfd, ret), 433 __field(struct eventfd_ctx *, eventfd) 442 __entry->eventfd = eventfd; 451 __entry->eventfd, 458 void *eventfd), 459 TP_ARGS(partition_id, addr, length, datamatch, wildcard, eventfd), 466 __field(struct eventfd_ctx *, eventfd) 474 __entry->eventfd = eventfd; 482 __entry->eventfd
|
| H A D | mshv_vtl_main.c | 301 struct eventfd_ctx *eventfd; in mshv_vtl_vmbus_isr() local 318 eventfd = READ_ONCE(flag_eventfds[i]); in mshv_vtl_vmbus_isr() 319 if (eventfd) in mshv_vtl_vmbus_isr() 320 eventfd_signal(eventfd); in mshv_vtl_vmbus_isr() 976 struct eventfd_ctx *eventfd, *old_eventfd; in mshv_vtl_sint_ioctl_set_eventfd() local 983 eventfd = NULL; in mshv_vtl_sint_ioctl_set_eventfd() 985 eventfd = eventfd_ctx_fdget(set_eventfd.fd); in mshv_vtl_sint_ioctl_set_eventfd() 986 if (IS_ERR(eventfd)) in mshv_vtl_sint_ioctl_set_eventfd() 987 return PTR_ERR(eventfd); in mshv_vtl_sint_ioctl_set_eventfd() 992 WRITE_ONCE(flag_eventfds[set_eventfd.flag], eventfd); in mshv_vtl_sint_ioctl_set_eventfd()
|
| /linux/include/linux/ |
| H A D | irqbypass.h | 49 struct eventfd_ctx *eventfd; member 75 struct eventfd_ctx *eventfd; member 87 struct eventfd_ctx *eventfd, int irq); 90 struct eventfd_ctx *eventfd);
|
| H A D | kvm_irqfd.h | 56 struct eventfd_ctx *eventfd; member
|
| /linux/drivers/vfio/ |
| H A D | virqfd.c | 47 eventfd_ctx_do_read(virqfd->eventfd, &cnt); in virqfd_wakeup() 90 eventfd_ctx_remove_wait_queue(virqfd->eventfd, &virqfd->wait, &cnt); in virqfd_shutdown() 92 eventfd_ctx_put(virqfd->eventfd); in virqfd_shutdown() 147 virqfd->eventfd = ctx; in vfio_virqfd_enable()
|
| /linux/drivers/vfio/pci/ |
| H A D | vfio_pci_intrs.c | 741 struct vfio_pci_eventfd *eventfd; in vfio_pci_set_ctx_trigger_single() local 743 eventfd = rcu_dereference_protected(*peventfd, in vfio_pci_set_ctx_trigger_single() 746 if (!eventfd) in vfio_pci_set_ctx_trigger_single() 750 eventfd_signal(eventfd->ctx); in vfio_pci_set_ctx_trigger_single() 764 struct vfio_pci_eventfd *eventfd = in vfio_pci_set_ctx_trigger_single() local 768 if (eventfd) in vfio_pci_set_ctx_trigger_single() 769 eventfd_signal(eventfd->ctx); in vfio_pci_set_ctx_trigger_single()
|
| /linux/tools/build/feature/ |
| H A D | test-eventfd.c | 8 return eventfd(0, EFD_NONBLOCK); in main()
|
| H A D | Makefile | 11 test-eventfd.bin \ 148 $(OUTPUT)test-eventfd.bin:
|
| /linux/tools/testing/selftests/kvm/include/ |
| H A D | kvm_util.h | 21 #include <sys/eventfd.h> 539 static inline int __kvm_irqfd(struct kvm_vm *vm, u32 gsi, int eventfd, in __kvm_irqfd() argument 543 .fd = eventfd, in __kvm_irqfd() 552 static inline void kvm_irqfd(struct kvm_vm *vm, u32 gsi, int eventfd, u32 flags) in kvm_irqfd() argument 554 int ret = __kvm_irqfd(vm, gsi, eventfd, flags); in kvm_irqfd() 559 static inline void kvm_assign_irqfd(struct kvm_vm *vm, u32 gsi, int eventfd) in kvm_assign_irqfd() argument 561 kvm_irqfd(vm, gsi, eventfd, 0); in kvm_assign_irqfd() 564 static inline void kvm_deassign_irqfd(struct kvm_vm *vm, u32 gsi, int eventfd) in kvm_deassign_irqfd() argument 566 kvm_irqfd(vm, gsi, eventfd, KVM_IRQFD_FLAG_DEASSIGN); in kvm_deassign_irqfd() 571 int fd = eventfd( in kvm_new_eventfd() [all...] |
| /linux/arch/x86/kvm/ |
| H A D | hyperv.c | 2424 struct eventfd_ctx *eventfd; in kvm_hvcall_signal_event() local 2453 eventfd = idr_find(&hv->conn_to_evt, hc->ingpa); in kvm_hvcall_signal_event() 2455 if (!eventfd) in kvm_hvcall_signal_event() 2458 eventfd_signal(eventfd); in kvm_hvcall_signal_event() 2714 struct eventfd_ctx *eventfd; in kvm_hv_destroy_vm() local 2717 idr_for_each_entry(&hv->conn_to_evt, eventfd, i) in kvm_hv_destroy_vm() 2718 eventfd_ctx_put(eventfd); in kvm_hv_destroy_vm() 2725 struct eventfd_ctx *eventfd; in kvm_hv_eventfd_assign() local 2728 eventfd = eventfd_ctx_fdget(fd); in kvm_hv_eventfd_assign() 2729 if (IS_ERR(eventfd)) in kvm_hv_eventfd_assign() [all …]
|
| /linux/tools/virtio/ringtest/ |
| H A D | main.c | 302 kickfd = eventfd(0, 0); in main() 304 callfd = eventfd(0, 0); in main()
|
| /linux/samples/cgroup/ |
| H A D | cgroup_event_listener.c | 47 efd = eventfd(0, 0); in main()
|
| /linux/drivers/accel/habanalabs/common/ |
| H A D | habanalabs_ioctl.c | 776 if (hpriv->notifier_event.eventfd) { in eventfd_register() 781 hpriv->notifier_event.eventfd = eventfd_ctx_fdget(args->eventfd); in eventfd_register() 782 if (IS_ERR(hpriv->notifier_event.eventfd)) { in eventfd_register() 783 rc = PTR_ERR(hpriv->notifier_event.eventfd); in eventfd_register() 784 hpriv->notifier_event.eventfd = NULL; in eventfd_register() 796 if (!hpriv->notifier_event.eventfd) { in eventfd_unregister() 801 eventfd_ctx_put(hpriv->notifier_event.eventfd); in eventfd_unregister() 802 hpriv->notifier_event.eventfd = NULL; in eventfd_unregister()
|
| /linux/include/uapi/misc/ |
| H A D | ocxl.h | 65 __s32 eventfd; member
|
| /linux/Documentation/translations/zh_CN/virt/ |
| H A D | ne_overview.rst | 59 设备使用eventfd作为信令。enclave虚拟机看到通常的接口——本地APIC和IOAPIC——从
|
| /linux/tools/virtio/ |
| H A D | virtio_test.c | 116 info->kick = eventfd(0, EFD_NONBLOCK); in vq_info_add() 117 info->call = eventfd(0, EFD_NONBLOCK); in vq_info_add()
|
| /linux/drivers/vdpa/vdpa_user/ |
| H A D | vduse_dev.c | 1200 struct vduse_vq_eventfd *eventfd) in vduse_kickfd_setup() argument 1206 if (eventfd->index >= dev->vq_num) in vduse_kickfd_setup() 1209 index = array_index_nospec(eventfd->index, dev->vq_num); in vduse_kickfd_setup() 1211 if (eventfd->fd >= 0) { in vduse_kickfd_setup() 1212 ctx = eventfd_ctx_fdget(eventfd->fd); in vduse_kickfd_setup() 1215 } else if (eventfd->fd != VDUSE_EVENTFD_DEASSIGN) in vduse_kickfd_setup() 1636 struct vduse_vq_eventfd eventfd; in vduse_dev_ioctl() local 1639 if (copy_from_user(&eventfd, argp, sizeof(eventfd))) in vduse_dev_ioctl() 1642 ret = vduse_kickfd_setup(dev, &eventfd); in vduse_dev_ioctl()
|
| /linux/include/uapi/drm/ |
| H A D | qaic_accel.h | 103 __u32 eventfd; member
|
| /linux/tools/build/ |
| H A D | Makefile.feature | 69 eventfd \
|