diff options
author | Avi Kivity <avi@qumranet.com> | 2007-10-25 10:52:32 -0400 |
---|---|---|
committer | Avi Kivity <avi@qumranet.com> | 2008-01-30 11:01:20 -0500 |
commit | b93463aa59d67b21b4921e30bd5c5dcc7c35ffbd (patch) | |
tree | 8de9a2789624d27155d8a94c93a23c01f473fea7 /include | |
parent | b209749f528488c4c0d20a42c0fbcbf49e6933b3 (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.h | 7 | ||||
-rw-r--r-- | include/linux/kvm_para.h | 2 |
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 */ | ||
220 | struct 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 |