diff options
author | Alexander Graf <agraf@suse.de> | 2010-07-29 08:47:42 -0400 |
---|---|---|
committer | Avi Kivity <avi@redhat.com> | 2010-10-24 04:50:42 -0400 |
commit | 96bc451a153297bf1f99ef2d633d512ea349ae7a (patch) | |
tree | 75ab4d40387ea1295a23b180e4c8719ce7053d00 /arch/powerpc/include | |
parent | 34698d8c61bd3fc86b2e99c3d1ad9ef140b3eb0d (diff) |
KVM: PPC: Introduce shared page
For transparent variable sharing between the hypervisor and guest, I introduce
a shared page. This shared page will contain all the registers the guest can
read and write safely without exiting guest context.
This patch only implements the stubs required for the basic structure of the
shared page. The actual register moving follows.
Signed-off-by: Alexander Graf <agraf@suse.de>
Signed-off-by: Avi Kivity <avi@redhat.com>
Diffstat (limited to 'arch/powerpc/include')
-rw-r--r-- | arch/powerpc/include/asm/kvm_host.h | 2 | ||||
-rw-r--r-- | arch/powerpc/include/asm/kvm_para.h | 5 |
2 files changed, 7 insertions, 0 deletions
diff --git a/arch/powerpc/include/asm/kvm_host.h b/arch/powerpc/include/asm/kvm_host.h index b0b23c007d6e..53edacdf6940 100644 --- a/arch/powerpc/include/asm/kvm_host.h +++ b/arch/powerpc/include/asm/kvm_host.h | |||
@@ -25,6 +25,7 @@ | |||
25 | #include <linux/interrupt.h> | 25 | #include <linux/interrupt.h> |
26 | #include <linux/types.h> | 26 | #include <linux/types.h> |
27 | #include <linux/kvm_types.h> | 27 | #include <linux/kvm_types.h> |
28 | #include <linux/kvm_para.h> | ||
28 | #include <asm/kvm_asm.h> | 29 | #include <asm/kvm_asm.h> |
29 | 30 | ||
30 | #define KVM_MAX_VCPUS 1 | 31 | #define KVM_MAX_VCPUS 1 |
@@ -290,6 +291,7 @@ struct kvm_vcpu_arch { | |||
290 | struct tasklet_struct tasklet; | 291 | struct tasklet_struct tasklet; |
291 | u64 dec_jiffies; | 292 | u64 dec_jiffies; |
292 | unsigned long pending_exceptions; | 293 | unsigned long pending_exceptions; |
294 | struct kvm_vcpu_arch_shared *shared; | ||
293 | 295 | ||
294 | #ifdef CONFIG_PPC_BOOK3S | 296 | #ifdef CONFIG_PPC_BOOK3S |
295 | struct hlist_head hpte_hash_pte[HPTEG_HASH_NUM_PTE]; | 297 | struct hlist_head hpte_hash_pte[HPTEG_HASH_NUM_PTE]; |
diff --git a/arch/powerpc/include/asm/kvm_para.h b/arch/powerpc/include/asm/kvm_para.h index 2d48f6a63d0b..1485ba87a52a 100644 --- a/arch/powerpc/include/asm/kvm_para.h +++ b/arch/powerpc/include/asm/kvm_para.h | |||
@@ -20,6 +20,11 @@ | |||
20 | #ifndef __POWERPC_KVM_PARA_H__ | 20 | #ifndef __POWERPC_KVM_PARA_H__ |
21 | #define __POWERPC_KVM_PARA_H__ | 21 | #define __POWERPC_KVM_PARA_H__ |
22 | 22 | ||
23 | #include <linux/types.h> | ||
24 | |||
25 | struct kvm_vcpu_arch_shared { | ||
26 | }; | ||
27 | |||
23 | #ifdef __KERNEL__ | 28 | #ifdef __KERNEL__ |
24 | 29 | ||
25 | static inline int kvm_para_available(void) | 30 | static inline int kvm_para_available(void) |