aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAvi Kivity <avi@qumranet.com>2008-07-03 08:17:01 -0400
committerAvi Kivity <avi@qumranet.com>2008-10-15 04:15:13 -0400
commit937a7eaef9f08342958d17055a350982b7bd92cb (patch)
treed7dbefa1b71617ca08bb6b3d9867d392632e6752
parent35920a356957eea9fd1f9da043f93469e8d72eab (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.h11
-rw-r--r--include/asm-x86/kvm_host.h5
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
11static 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
17static 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;