aboutsummaryrefslogtreecommitdiffstats
path: root/arch/x86/kvm/lapic.h
diff options
context:
space:
mode:
authorAvi Kivity <avi@qumranet.com>2007-10-25 10:52:32 -0400
committerAvi Kivity <avi@qumranet.com>2008-01-30 11:01:20 -0500
commitb93463aa59d67b21b4921e30bd5c5dcc7c35ffbd (patch)
tree8de9a2789624d27155d8a94c93a23c01f473fea7 /arch/x86/kvm/lapic.h
parentb209749f528488c4c0d20a42c0fbcbf49e6933b3 (diff)
KVM: Accelerated apic support
This adds a mechanism for exposing the virtual apic tpr to the guest, and a protocol for letting the guest update the tpr without causing a vmexit if conditions allow (e.g. there is no interrupt pending with a higher priority than the new tpr). Signed-off-by: Avi Kivity <avi@qumranet.com>
Diffstat (limited to 'arch/x86/kvm/lapic.h')
-rw-r--r--arch/x86/kvm/lapic.h6
1 files changed, 6 insertions, 0 deletions
diff --git a/arch/x86/kvm/lapic.h b/arch/x86/kvm/lapic.h
index 447b654aefbb..676c396c9cee 100644
--- a/arch/x86/kvm/lapic.h
+++ b/arch/x86/kvm/lapic.h
@@ -18,6 +18,8 @@ struct kvm_lapic {
18 struct kvm_vcpu *vcpu; 18 struct kvm_vcpu *vcpu;
19 struct page *regs_page; 19 struct page *regs_page;
20 void *regs; 20 void *regs;
21 gpa_t vapic_addr;
22 struct page *vapic_page;
21}; 23};
22int kvm_create_lapic(struct kvm_vcpu *vcpu); 24int kvm_create_lapic(struct kvm_vcpu *vcpu);
23void kvm_free_lapic(struct kvm_vcpu *vcpu); 25void kvm_free_lapic(struct kvm_vcpu *vcpu);
@@ -41,4 +43,8 @@ int kvm_lapic_enabled(struct kvm_vcpu *vcpu);
41int kvm_lapic_find_highest_irr(struct kvm_vcpu *vcpu); 43int kvm_lapic_find_highest_irr(struct kvm_vcpu *vcpu);
42void kvm_apic_timer_intr_post(struct kvm_vcpu *vcpu, int vec); 44void kvm_apic_timer_intr_post(struct kvm_vcpu *vcpu, int vec);
43 45
46void kvm_lapic_set_vapic_addr(struct kvm_vcpu *vcpu, gpa_t vapic_addr);
47void kvm_lapic_sync_from_vapic(struct kvm_vcpu *vcpu);
48void kvm_lapic_sync_to_vapic(struct kvm_vcpu *vcpu);
49
44#endif 50#endif