aboutsummaryrefslogtreecommitdiffstats
path: root/include/uapi/linux/kvm.h
diff options
context:
space:
mode:
authorAlexander Graf <agraf@suse.de>2013-01-04 12:12:48 -0500
committerAlexander Graf <agraf@suse.de>2013-01-10 07:42:31 -0500
commit1c810636556c8d53a37406b34a64d9b9b0161aa6 (patch)
treeb163d427c9dcff066330d4ac13de529a9831a044 /include/uapi/linux/kvm.h
parent37ecb257f68ce4fb7c7048a1123bbcbbe36d9575 (diff)
KVM: PPC: BookE: Implement EPR exit
The External Proxy Facility in FSL BookE chips allows the interrupt controller to automatically acknowledge an interrupt as soon as a core gets its pending external interrupt delivered. Today, user space implements the interrupt controller, so we need to check on it during such a cycle. This patch implements logic for user space to enable EPR exiting, disable EPR exiting and EPR exiting itself, so that user space can acknowledge an interrupt when an external interrupt has successfully been delivered into the guest vcpu. Signed-off-by: Alexander Graf <agraf@suse.de>
Diffstat (limited to 'include/uapi/linux/kvm.h')
-rw-r--r--include/uapi/linux/kvm.h6
1 files changed, 6 insertions, 0 deletions
diff --git a/include/uapi/linux/kvm.h b/include/uapi/linux/kvm.h
index 8bb0bf83afc5..9a2db5767ed5 100644
--- a/include/uapi/linux/kvm.h
+++ b/include/uapi/linux/kvm.h
@@ -169,6 +169,7 @@ struct kvm_pit_config {
169#define KVM_EXIT_S390_UCONTROL 20 169#define KVM_EXIT_S390_UCONTROL 20
170#define KVM_EXIT_WATCHDOG 21 170#define KVM_EXIT_WATCHDOG 21
171#define KVM_EXIT_S390_TSCH 22 171#define KVM_EXIT_S390_TSCH 22
172#define KVM_EXIT_EPR 23
172 173
173/* For KVM_EXIT_INTERNAL_ERROR */ 174/* For KVM_EXIT_INTERNAL_ERROR */
174/* Emulate instruction failed. */ 175/* Emulate instruction failed. */
@@ -295,6 +296,10 @@ struct kvm_run {
295 __u32 ipb; 296 __u32 ipb;
296 __u8 dequeued; 297 __u8 dequeued;
297 } s390_tsch; 298 } s390_tsch;
299 /* KVM_EXIT_EPR */
300 struct {
301 __u32 epr;
302 } epr;
298 /* Fix the size of the union. */ 303 /* Fix the size of the union. */
299 char padding[256]; 304 char padding[256];
300 }; 305 };
@@ -656,6 +661,7 @@ struct kvm_ppc_smmu_info {
656#define KVM_CAP_PPC_BOOKE_WATCHDOG 83 661#define KVM_CAP_PPC_BOOKE_WATCHDOG 83
657#define KVM_CAP_PPC_HTAB_FD 84 662#define KVM_CAP_PPC_HTAB_FD 84
658#define KVM_CAP_S390_CSS_SUPPORT 85 663#define KVM_CAP_S390_CSS_SUPPORT 85
664#define KVM_CAP_PPC_EPR 86
659 665
660#ifdef KVM_CAP_IRQ_ROUTING 666#ifdef KVM_CAP_IRQ_ROUTING
661 667