/openbmc/linux/drivers/virt/acrn/ |
H A D | irqfd.c | 41 static void acrn_irqfd_inject(struct hsm_irqfd *irqfd) in acrn_irqfd_inject() argument 43 struct acrn_vm *vm = irqfd->vm; in acrn_irqfd_inject() 45 acrn_msi_inject(vm, irqfd->msi.msi_addr, in acrn_irqfd_inject() 46 irqfd->msi.msi_data); in acrn_irqfd_inject() 49 static void hsm_irqfd_shutdown(struct hsm_irqfd *irqfd) in hsm_irqfd_shutdown() argument 53 lockdep_assert_held(&irqfd->vm->irqfds_lock); in hsm_irqfd_shutdown() 56 list_del_init(&irqfd->list); in hsm_irqfd_shutdown() 57 eventfd_ctx_remove_wait_queue(irqfd->eventfd, &irqfd->wait, &cnt); in hsm_irqfd_shutdown() 58 eventfd_ctx_put(irqfd->eventfd); in hsm_irqfd_shutdown() 59 kfree(irqfd); in hsm_irqfd_shutdown() [all …]
|
H A D | Makefile | 3 acrn-y := hsm.o vm.o mm.o ioreq.o ioeventfd.o irqfd.o
|
H A D | hsm.c | 120 struct acrn_irqfd irqfd; in acrn_dev_ioctl() local 412 if (copy_from_user(&irqfd, (void __user *)ioctl_param, in acrn_dev_ioctl() 413 sizeof(irqfd))) in acrn_dev_ioctl() 415 ret = acrn_irqfd_config(vm, &irqfd); in acrn_dev_ioctl()
|
/openbmc/linux/virt/kvm/ |
H A D | eventfd.c | 44 struct kvm_kernel_irqfd *irqfd = in irqfd_inject() local 46 struct kvm *kvm = irqfd->kvm; in irqfd_inject() 48 if (!irqfd->resampler) { in irqfd_inject() 49 kvm_set_irq(kvm, KVM_USERSPACE_IRQ_SOURCE_ID, irqfd->gsi, 1, in irqfd_inject() 51 kvm_set_irq(kvm, KVM_USERSPACE_IRQ_SOURCE_ID, irqfd->gsi, 0, in irqfd_inject() 55 irqfd->gsi, 1, false); in irqfd_inject() 60 struct kvm_kernel_irqfd *irqfd; in irqfd_resampler_notify() local 62 list_for_each_entry_srcu(irqfd, &resampler->list, resampler_link, in irqfd_resampler_notify() 64 eventfd_signal(irqfd->resamplefd, 1); in irqfd_resampler_notify() 92 irqfd_resampler_shutdown(struct kvm_kernel_irqfd *irqfd) in irqfd_resampler_shutdown() argument [all …]
|
/openbmc/linux/drivers/vfio/ |
H A D | virqfd.c | 116 struct fd irqfd; in vfio_virqfd_enable() local 136 irqfd = fdget(fd); in vfio_virqfd_enable() 137 if (!irqfd.file) { in vfio_virqfd_enable() 142 ctx = eventfd_ctx_fileget(irqfd.file); in vfio_virqfd_enable() 174 events = vfs_poll(irqfd.file, &virqfd->pt); in vfio_virqfd_enable() 189 fdput(irqfd); in vfio_virqfd_enable() 195 fdput(irqfd); in vfio_virqfd_enable()
|
/openbmc/linux/drivers/xen/ |
H A D | privcmd.c | 932 static int privcmd_irqfd_assign(struct privcmd_irqfd *irqfd) in privcmd_irqfd_assign() argument 941 kirqfd = kzalloc(sizeof(*kirqfd) + irqfd->size, GFP_KERNEL); in privcmd_irqfd_assign() 946 if (copy_from_user(dm_op, u64_to_user_ptr(irqfd->dm_op), irqfd->size)) { in privcmd_irqfd_assign() 951 kirqfd->xbufs.size = irqfd->size; in privcmd_irqfd_assign() 953 kirqfd->dom = irqfd->dom; in privcmd_irqfd_assign() 956 f = fdget(irqfd->fd); in privcmd_irqfd_assign() 1017 static int privcmd_irqfd_deassign(struct privcmd_irqfd *irqfd) in privcmd_irqfd_deassign() argument 1023 eventfd = eventfd_ctx_fdget(irqfd->fd); in privcmd_irqfd_deassign() 1053 struct privcmd_irqfd irqfd; in privcmd_ioctl_irqfd() local 1055 if (copy_from_user(&irqfd, udata, sizeof(irqfd))) in privcmd_ioctl_irqfd() [all …]
|
H A D | Kconfig | 273 bool "Xen irqfd support" 276 Using the irqfd mechanism a virtio backend running in a daemon can
|
/openbmc/qemu/hw/virtio/ |
H A D | virtio-pci.c | 824 VirtIOIRQFD *irqfd = &proxy->vector_irqfd[vector]; in kvm_virtio_pci_vq_vector_use() local 827 if (irqfd->users == 0) { in kvm_virtio_pci_vq_vector_use() 834 irqfd->virq = ret; in kvm_virtio_pci_vq_vector_use() 836 irqfd->users++; in kvm_virtio_pci_vq_vector_use() 843 VirtIOIRQFD *irqfd = &proxy->vector_irqfd[vector]; in kvm_virtio_pci_vq_vector_release() local 844 if (--irqfd->users == 0) { in kvm_virtio_pci_vq_vector_release() 845 kvm_irqchip_release_virq(kvm_state, irqfd->virq); in kvm_virtio_pci_vq_vector_release() 853 VirtIOIRQFD *irqfd = &proxy->vector_irqfd[vector]; in kvm_virtio_pci_irqfd_use() local 854 return kvm_irqchip_add_irqfd_notifier_gsi(kvm_state, n, NULL, irqfd->virq); in kvm_virtio_pci_irqfd_use() 861 VirtIOIRQFD *irqfd = &proxy->vector_irqfd[vector]; in kvm_virtio_pci_irqfd_release() local [all …]
|
/openbmc/linux/arch/arm64/kvm/ |
H A D | arm.c | 2355 struct kvm_kernel_irqfd *irqfd = in kvm_arch_irq_bypass_add_producer() local 2358 return kvm_vgic_v4_set_forwarding(irqfd->kvm, prod->irq, in kvm_arch_irq_bypass_add_producer() 2359 &irqfd->irq_entry); in kvm_arch_irq_bypass_add_producer() 2364 struct kvm_kernel_irqfd *irqfd = in kvm_arch_irq_bypass_del_producer() local 2367 kvm_vgic_v4_unset_forwarding(irqfd->kvm, prod->irq, in kvm_arch_irq_bypass_del_producer() 2368 &irqfd->irq_entry); in kvm_arch_irq_bypass_del_producer() 2373 struct kvm_kernel_irqfd *irqfd = in kvm_arch_irq_bypass_stop() local 2376 kvm_arm_halt_guest(irqfd->kvm); in kvm_arch_irq_bypass_stop() 2381 struct kvm_kernel_irqfd *irqfd = in kvm_arch_irq_bypass_start() local 2384 kvm_arm_resume_guest(irqfd->kvm); in kvm_arch_irq_bypass_start()
|
H A D | Makefile | 19 vgic/vgic-irqfd.o vgic/vgic-v2.o \
|
/openbmc/linux/tools/testing/selftests/kvm/aarch64/ |
H A D | vgic_irq.c | 636 struct kvm_irqfd irqfd = { in kvm_routing_and_irqfd_check() local 641 vm_ioctl(vm, KVM_IRQFD, &irqfd); in kvm_routing_and_irqfd_check()
|
/openbmc/linux/arch/powerpc/kvm/ |
H A D | book3s_hv.c | 5790 struct kvm_kernel_irqfd *irqfd = in kvmppc_irq_bypass_add_producer_hv() local 5793 irqfd->producer = prod; in kvmppc_irq_bypass_add_producer_hv() 5795 ret = kvmppc_set_passthru_irq(irqfd->kvm, prod->irq, irqfd->gsi); in kvmppc_irq_bypass_add_producer_hv() 5798 prod->irq, irqfd->gsi, ret); in kvmppc_irq_bypass_add_producer_hv() 5807 struct kvm_kernel_irqfd *irqfd = in kvmppc_irq_bypass_del_producer_hv() local 5810 irqfd->producer = NULL; in kvmppc_irq_bypass_del_producer_hv() 5817 ret = kvmppc_clr_passthru_irq(irqfd->kvm, prod->irq, irqfd->gsi); in kvmppc_irq_bypass_del_producer_hv() 5820 prod->irq, irqfd->gsi, ret); in kvmppc_irq_bypass_del_producer_hv()
|
H A D | powerpc.c | 873 struct kvm_kernel_irqfd *irqfd = in kvm_arch_irq_bypass_add_producer() local 875 struct kvm *kvm = irqfd->kvm; in kvm_arch_irq_bypass_add_producer() 886 struct kvm_kernel_irqfd *irqfd = in kvm_arch_irq_bypass_del_producer() local 888 struct kvm *kvm = irqfd->kvm; in kvm_arch_irq_bypass_del_producer()
|
/openbmc/linux/arch/x86/kvm/ |
H A D | x86.c | 13248 struct kvm_kernel_irqfd *irqfd = in kvm_arch_irq_bypass_add_producer() local 13252 irqfd->producer = prod; in kvm_arch_irq_bypass_add_producer() 13253 kvm_arch_start_assignment(irqfd->kvm); in kvm_arch_irq_bypass_add_producer() 13254 ret = static_call(kvm_x86_pi_update_irte)(irqfd->kvm, in kvm_arch_irq_bypass_add_producer() 13255 prod->irq, irqfd->gsi, 1); in kvm_arch_irq_bypass_add_producer() 13258 kvm_arch_end_assignment(irqfd->kvm); in kvm_arch_irq_bypass_add_producer() 13267 struct kvm_kernel_irqfd *irqfd = in kvm_arch_irq_bypass_del_producer() local 13270 WARN_ON(irqfd->producer != prod); in kvm_arch_irq_bypass_del_producer() 13271 irqfd->producer = NULL; in kvm_arch_irq_bypass_del_producer() 13279 ret = static_call(kvm_x86_pi_update_irte)(irqfd->kvm, prod->irq, irqfd->gsi, 0); in kvm_arch_irq_bypass_del_producer() [all …]
|
/openbmc/qemu/accel/kvm/ |
H A D | kvm-all.c | 2238 struct kvm_irqfd irqfd = { in kvm_irqchip_assign_irqfd() local 2265 irqfd.flags |= KVM_IRQFD_FLAG_RESAMPLE; in kvm_irqchip_assign_irqfd() 2266 irqfd.resamplefd = rfd; in kvm_irqchip_assign_irqfd() 2274 return kvm_vm_ioctl(s, KVM_IRQFD, &irqfd); in kvm_irqchip_assign_irqfd()
|
/openbmc/qemu/docs/devel/ |
H A D | multi-process.rst | 145 written. This irqfd file descriptor is then passed to the vhost user
|
/openbmc/linux/Documentation/virt/kvm/ |
H A D | api.rst | 3102 the guest using the specified gsi pin. The irqfd is removed using 3107 mechanism allowing emulation of level-triggered, irqfd-based 3116 irqfd. The KVM_IRQFD_FLAG_RESAMPLE is only necessary on assignment
|
/openbmc/linux/ |
H A D | opengrok2.0.log | [all...] |
H A D | opengrok0.0.log | [all...] |
H A D | opengrok1.0.log | [all...] |