diff options
author | Marcelo Tosatti <mtosatti@redhat.com> | 2008-07-26 17:01:00 -0300 |
---|---|---|
committer | Avi Kivity <avi@qumranet.com> | 2008-10-15 10:15:16 +0200 |
commit | f52447261bc8c21dfd4635196e32d2da1352f589 (patch) | |
tree | a0de6cefa7fbfdd07285bd60c4f61e4e2f2d4ed6 /virt/kvm/ioapic.h | |
parent | 564f15378f04921d5749f27ec53d5e68a6d1d446 (diff) | |
download | kernel-mfld-blackbay-f52447261bc8c21dfd4635196e32d2da1352f589.tar.gz kernel-mfld-blackbay-f52447261bc8c21dfd4635196e32d2da1352f589.tar.bz2 kernel-mfld-blackbay-f52447261bc8c21dfd4635196e32d2da1352f589.zip |
KVM: irq ack notification
Based on a patch from: Ben-Ami Yassour <benami@il.ibm.com>
which was based on a patch from: Amit Shah <amit.shah@qumranet.com>
Notify IRQ acking on PIC/APIC emulation. The previous patch missed two things:
- Edge triggered interrupts on IOAPIC
- PIC reset with IRR/ISR set should be equivalent to ack (LAPIC probably
needs something similar).
Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
CC: Amit Shah <amit.shah@qumranet.com>
CC: Ben-Ami Yassour <benami@il.ibm.com>
Signed-off-by: Avi Kivity <avi@qumranet.com>
Diffstat (limited to 'virt/kvm/ioapic.h')
-rw-r--r-- | virt/kvm/ioapic.h | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/virt/kvm/ioapic.h b/virt/kvm/ioapic.h index 7f16675fe78..b52732f493c 100644 --- a/virt/kvm/ioapic.h +++ b/virt/kvm/ioapic.h @@ -58,6 +58,7 @@ struct kvm_ioapic { } redirtbl[IOAPIC_NUM_PINS]; struct kvm_io_device dev; struct kvm *kvm; + void (*ack_notifier)(void *opaque, int irq); }; #ifdef DEBUG @@ -87,7 +88,7 @@ static inline int irqchip_in_kernel(struct kvm *kvm) struct kvm_vcpu *kvm_get_lowest_prio_vcpu(struct kvm *kvm, u8 vector, unsigned long bitmap); -void kvm_ioapic_update_eoi(struct kvm *kvm, int vector); +void kvm_ioapic_update_eoi(struct kvm *kvm, int vector, int trigger_mode); int kvm_ioapic_init(struct kvm *kvm); void kvm_ioapic_set_irq(struct kvm_ioapic *ioapic, int irq, int level); void kvm_ioapic_reset(struct kvm_ioapic *ioapic); |