diff options
author | Avi Kivity <avi@qumranet.com> | 2008-07-03 08:17:01 -0400 |
---|---|---|
committer | Avi Kivity <avi@qumranet.com> | 2008-10-15 04:15:13 -0400 |
commit | 937a7eaef9f08342958d17055a350982b7bd92cb (patch) | |
tree | d7dbefa1b71617ca08bb6b3d9867d392632e6752 | |
parent | 35920a356957eea9fd1f9da043f93469e8d72eab (diff) |
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) | |||
8 | vcpu->arch.exception.pending = false; | 8 | vcpu->arch.exception.pending = false; |
9 | } | 9 | } |
10 | 10 | ||
11 | static inline void kvm_queue_interrupt(struct kvm_vcpu *vcpu, u8 vector) | ||
12 | { | ||
13 | vcpu->arch.interrupt.pending = true; | ||
14 | vcpu->arch.interrupt.nr = vector; | ||
15 | } | ||
16 | |||
17 | static inline void kvm_clear_interrupt_queue(struct kvm_vcpu *vcpu) | ||
18 | { | ||
19 | vcpu->arch.interrupt.pending = false; | ||
20 | } | ||
21 | |||
11 | #endif | 22 | #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 { | |||
275 | u32 error_code; | 275 | u32 error_code; |
276 | } exception; | 276 | } exception; |
277 | 277 | ||
278 | struct kvm_queued_interrupt { | ||
279 | bool pending; | ||
280 | u8 nr; | ||
281 | } interrupt; | ||
282 | |||
278 | struct { | 283 | struct { |
279 | int active; | 284 | int active; |
280 | u8 save_iopl; | 285 | u8 save_iopl; |