KVM: PPC: Use now shadowed vcpu fields
[safe/jmp/linux-2.6] / arch / powerpc / include / asm / kvm_host.h
index d615fa8..5a83995 100644 (file)
@@ -66,7 +66,7 @@ struct kvm_vcpu_stat {
        u32 dec_exits;
        u32 ext_intr_exits;
        u32 halt_wakeup;
-#ifdef CONFIG_PPC64
+#ifdef CONFIG_PPC_BOOK3S
        u32 pf_storage;
        u32 pf_instruc;
        u32 sp_storage;
@@ -127,9 +127,9 @@ struct kvmppc_pte {
        u64 eaddr;
        u64 vpage;
        u64 raddr;
-       bool may_read;
-       bool may_write;
-       bool may_execute;
+       bool may_read           : 1;
+       bool may_write          : 1;
+       bool may_execute        : 1;
 };
 
 struct kvmppc_mmu {
@@ -160,33 +160,51 @@ struct hpte_cache {
 struct kvm_vcpu_arch {
        ulong host_stack;
        u32 host_pid;
-#ifdef CONFIG_PPC64
+#ifdef CONFIG_PPC_BOOK3S
        ulong host_msr;
        ulong host_r2;
        void *host_retip;
        ulong trampoline_lowmem;
        ulong trampoline_enter;
        ulong highmem_handler;
+       ulong rmcall;
        ulong host_paca_phys;
        struct kvmppc_mmu mmu;
 #endif
 
-       u64 fpr[32];
        ulong gpr[32];
 
+       u64 fpr[32];
+       u64 fpscr;
+
+#ifdef CONFIG_ALTIVEC
+       vector128 vr[32];
+       vector128 vscr;
+#endif
+
+#ifdef CONFIG_VSX
+       u64 vsr[32];
+#endif
+
+#ifdef CONFIG_PPC_BOOK3S
+       /* For Gekko paired singles */
+       u32 qpr[32];
+#endif
+
+#ifdef CONFIG_BOOKE
        ulong pc;
        ulong ctr;
        ulong lr;
 
-#ifdef CONFIG_BOOKE
        ulong xer;
        u32 cr;
 #endif
 
        ulong msr;
-#ifdef CONFIG_PPC64
+#ifdef CONFIG_PPC_BOOK3S
        ulong shadow_msr;
        ulong hflags;
+       ulong guest_owned_ext;
 #endif
        u32 mmucr;
        ulong sprg0;
@@ -239,18 +257,22 @@ struct kvm_vcpu_arch {
        struct dentry *debugfs_exit_timing;
 #endif
 
+#ifdef CONFIG_BOOKE
        u32 last_inst;
-#ifdef CONFIG_PPC64
-       ulong fault_dsisr;
-#endif
        ulong fault_dear;
        ulong fault_esr;
+       ulong queued_dear;
+       ulong queued_esr;
+#endif
        gpa_t paddr_accessed;
 
        u8 io_gpr; /* GPR used as IO source/target */
        u8 mmio_is_bigendian;
+       u8 mmio_sign_extend;
        u8 dcr_needed;
        u8 dcr_is_write;
+       u8 osi_needed;
+       u8 osi_enabled;
 
        u32 cpr0_cfgaddr; /* holds the last set cpr0_cfgaddr */
 
@@ -259,7 +281,7 @@ struct kvm_vcpu_arch {
        u64 dec_jiffies;
        unsigned long pending_exceptions;
 
-#ifdef CONFIG_PPC64
+#ifdef CONFIG_PPC_BOOK3S
        struct hpte_cache hpte_cache[HPTEG_CACHE_NUM];
        int hpte_cache_offset;
 #endif