aboutsummaryrefslogtreecommitdiffstats
path: root/include
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 /include
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 'include')
-rw-r--r--include/linux/kvm.h7
-rw-r--r--include/linux/kvm_para.h2
2 files changed, 9 insertions, 0 deletions
diff --git a/include/linux/kvm.h b/include/linux/kvm.h
index 850f5ef76636..b27a381db5e8 100644
--- a/include/linux/kvm.h
+++ b/include/linux/kvm.h
@@ -216,6 +216,11 @@ struct kvm_tpr_access_ctl {
216 __u32 reserved[8]; 216 __u32 reserved[8];
217}; 217};
218 218
219/* for KVM_SET_VAPIC_ADDR */
220struct kvm_vapic_addr {
221 __u64 vapic_addr;
222};
223
219#define KVMIO 0xAE 224#define KVMIO 0xAE
220 225
221/* 226/*
@@ -291,5 +296,7 @@ struct kvm_tpr_access_ctl {
291#define KVM_GET_CPUID2 _IOWR(KVMIO, 0x91, struct kvm_cpuid2) 296#define KVM_GET_CPUID2 _IOWR(KVMIO, 0x91, struct kvm_cpuid2)
292/* Available with KVM_CAP_VAPIC */ 297/* Available with KVM_CAP_VAPIC */
293#define KVM_TPR_ACCESS_REPORTING _IOWR(KVMIO, 0x92, struct kvm_tpr_access_ctl) 298#define KVM_TPR_ACCESS_REPORTING _IOWR(KVMIO, 0x92, struct kvm_tpr_access_ctl)
299/* Available with KVM_CAP_VAPIC */
300#define KVM_SET_VAPIC_ADDR _IOW(KVMIO, 0x93, struct kvm_vapic_addr)
294 301
295#endif 302#endif
diff --git a/include/linux/kvm_para.h b/include/linux/kvm_para.h
index e4db25ffdb52..6af91a506fbf 100644
--- a/include/linux/kvm_para.h
+++ b/include/linux/kvm_para.h
@@ -12,6 +12,8 @@
12/* Return values for hypercalls */ 12/* Return values for hypercalls */
13#define KVM_ENOSYS 1000 13#define KVM_ENOSYS 1000
14 14
15#define KVM_HC_VAPIC_POLL_IRQ 1
16
15#ifdef __KERNEL__ 17#ifdef __KERNEL__
16/* 18/*
17 * hypercalls use architecture specific 19 * hypercalls use architecture specific