diff options
author | Avi Kivity <avi@qumranet.com> | 2008-07-03 15:17:01 +0300 |
---|---|---|
committer | Avi Kivity <avi@qumranet.com> | 2008-10-15 10:15:13 +0200 |
commit | 937a7eaef9f08342958d17055a350982b7bd92cb (patch) | |
tree | d7dbefa1b71617ca08bb6b3d9867d392632e6752 | |
parent | 35920a356957eea9fd1f9da043f93469e8d72eab (diff) | |
download | linux-937a7eaef9f08342958d17055a350982b7bd92cb.tar.gz linux-937a7eaef9f08342958d17055a350982b7bd92cb.tar.bz2 linux-937a7eaef9f08342958d17055a350982b7bd92cb.zip |
KVM: Add a pending interrupt queue
Similar to the exception queue, this hold interrupts that have been
accepted by the virtual processor core but not yet injected.
Not yet used.
Signed-off-by: Avi Kivity <avi@qumranet.com>
-rw-r--r-- | arch/x86/kvm/x86.h | 11 | ||||
-rw-r--r-- | include/asm-x86/kvm_host.h | 5 |
2 files changed, 16 insertions, 0 deletions
diff --git a/arch/x86/kvm/x86.h b/arch/x86/kvm/x86.h index c666649c4bb2..6a4be78a7384 100644 --- a/arch/x86/kvm/x86.h +++ b/arch/x86/kvm/x86.h @@ -8,4 +8,15 @@ static inline void kvm_clear_exception_queue(struct kvm_vcpu *vcpu) vcpu->arch.exception.pending = false; } +static inline void kvm_queue_interrupt(struct kvm_vcpu *vcpu, u8 vector) +{ + vcpu->arch.interrupt.pending = true; + vcpu->arch.interrupt.nr = vector; +} + +static inline void kvm_clear_interrupt_queue(struct kvm_vcpu *vcpu) +{ + vcpu->arch.interrupt.pending = false; +} + #endif diff --git a/include/asm-x86/kvm_host.h b/include/asm-x86/kvm_host.h index 7cf69fd1dcfe..65c6a0e5b739 100644 --- a/include/asm-x86/kvm_host.h +++ b/include/asm-x86/kvm_host.h @@ -275,6 +275,11 @@ struct kvm_vcpu_arch { u32 error_code; } exception; + struct kvm_queued_interrupt { + bool pending; + u8 nr; + } interrupt; + struct { int active; u8 save_iopl; |