diff options
author | Paolo Bonzini <pbonzini@redhat.com> | 2012-07-05 17:16:30 +0200 |
---|---|---|
committer | Avi Kivity <avi@redhat.com> | 2012-07-12 14:08:11 +0300 |
commit | 15b2bd1847239fe0b4a1041b69a631741d2e273a (patch) | |
tree | 36b395a7ea3642442e9f45ec4280013ca56ae033 /kvm-all.c | |
parent | b1f416aa8d870fab71030abc9401cfc77b948e8e (diff) | |
download | qemu-15b2bd1847239fe0b4a1041b69a631741d2e273a.tar.gz qemu-15b2bd1847239fe0b4a1041b69a631741d2e273a.tar.bz2 qemu-15b2bd1847239fe0b4a1041b69a631741d2e273a.zip |
virtio: move common irqfd handling out of virtio-pci
All transports can use the same event handler for the irqfd, though the
exact mechanics of the assignment will be specific. Note that there
are three states: handled by the kernel, handled in userspace, disabled.
This also lets virtio use event_notifier_set_handler.
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Avi Kivity <avi@redhat.com>
Diffstat (limited to 'kvm-all.c')
-rw-r--r-- | kvm-all.c | 10 |
1 files changed, 10 insertions, 0 deletions
@@ -1163,11 +1163,21 @@ int kvm_irqchip_add_irqfd(KVMState *s, int fd, int virq) return kvm_irqchip_assign_irqfd(s, fd, virq, true); } +int kvm_irqchip_add_irq_notifier(KVMState *s, EventNotifier *n, int virq) +{ + return kvm_irqchip_add_irqfd(s, event_notifier_get_fd(n), virq); +} + int kvm_irqchip_remove_irqfd(KVMState *s, int fd, int virq) { return kvm_irqchip_assign_irqfd(s, fd, virq, false); } +int kvm_irqchip_remove_irq_notifier(KVMState *s, EventNotifier *n, int virq) +{ + return kvm_irqchip_remove_irqfd(s, event_notifier_get_fd(n), virq); +} + static int kvm_irqchip_create(KVMState *s) { QemuOptsList *list = qemu_find_opts("machine"); |