diff options
Diffstat (limited to 'arch/powerpc/include/asm')
| -rw-r--r-- | arch/powerpc/include/asm/kvm.h | 18 | ||||
| -rw-r--r-- | arch/powerpc/include/asm/kvm_asm.h | 1 | ||||
| -rw-r--r-- | arch/powerpc/include/asm/kvm_book3s.h | 3 |
3 files changed, 21 insertions, 1 deletions
diff --git a/arch/powerpc/include/asm/kvm.h b/arch/powerpc/include/asm/kvm.h index c9ca97f43bc1..81f3b0b5601e 100644 --- a/arch/powerpc/include/asm/kvm.h +++ b/arch/powerpc/include/asm/kvm.h | |||
| @@ -47,7 +47,23 @@ struct kvm_regs { | |||
| 47 | 47 | ||
| 48 | struct kvm_sregs { | 48 | struct kvm_sregs { |
| 49 | __u32 pvr; | 49 | __u32 pvr; |
| 50 | char pad[1020]; | 50 | union { |
| 51 | struct { | ||
| 52 | __u64 sdr1; | ||
| 53 | struct { | ||
| 54 | struct { | ||
| 55 | __u64 slbe; | ||
| 56 | __u64 slbv; | ||
| 57 | } slb[64]; | ||
| 58 | } ppc64; | ||
| 59 | struct { | ||
| 60 | __u32 sr[16]; | ||
| 61 | __u64 ibat[8]; | ||
| 62 | __u64 dbat[8]; | ||
| 63 | } ppc32; | ||
| 64 | } s; | ||
| 65 | __u8 pad[1020]; | ||
| 66 | } u; | ||
| 51 | }; | 67 | }; |
| 52 | 68 | ||
| 53 | struct kvm_fpu { | 69 | struct kvm_fpu { |
diff --git a/arch/powerpc/include/asm/kvm_asm.h b/arch/powerpc/include/asm/kvm_asm.h index 19ddb352fd0f..af2abe74f544 100644 --- a/arch/powerpc/include/asm/kvm_asm.h +++ b/arch/powerpc/include/asm/kvm_asm.h | |||
| @@ -87,6 +87,7 @@ | |||
| 87 | #define BOOK3S_IRQPRIO_MAX 16 | 87 | #define BOOK3S_IRQPRIO_MAX 16 |
| 88 | 88 | ||
| 89 | #define BOOK3S_HFLAG_DCBZ32 0x1 | 89 | #define BOOK3S_HFLAG_DCBZ32 0x1 |
| 90 | #define BOOK3S_HFLAG_SLB 0x2 | ||
| 90 | 91 | ||
| 91 | #define RESUME_FLAG_NV (1<<0) /* Reload guest nonvolatile state? */ | 92 | #define RESUME_FLAG_NV (1<<0) /* Reload guest nonvolatile state? */ |
| 92 | #define RESUME_FLAG_HOST (1<<1) /* Resume host? */ | 93 | #define RESUME_FLAG_HOST (1<<1) /* Resume host? */ |
diff --git a/arch/powerpc/include/asm/kvm_book3s.h b/arch/powerpc/include/asm/kvm_book3s.h index c6011336371e..74b7369770d0 100644 --- a/arch/powerpc/include/asm/kvm_book3s.h +++ b/arch/powerpc/include/asm/kvm_book3s.h | |||
| @@ -46,6 +46,7 @@ struct kvmppc_sr { | |||
| 46 | }; | 46 | }; |
| 47 | 47 | ||
| 48 | struct kvmppc_bat { | 48 | struct kvmppc_bat { |
| 49 | u64 raw; | ||
| 49 | u32 bepi; | 50 | u32 bepi; |
| 50 | u32 bepi_mask; | 51 | u32 bepi_mask; |
| 51 | bool vs; | 52 | bool vs; |
| @@ -113,6 +114,8 @@ extern struct kvmppc_pte *kvmppc_mmu_find_pte(struct kvm_vcpu *vcpu, u64 ea, boo | |||
| 113 | extern int kvmppc_ld(struct kvm_vcpu *vcpu, ulong eaddr, int size, void *ptr, bool data); | 114 | extern int kvmppc_ld(struct kvm_vcpu *vcpu, ulong eaddr, int size, void *ptr, bool data); |
| 114 | extern int kvmppc_st(struct kvm_vcpu *vcpu, ulong eaddr, int size, void *ptr); | 115 | extern int kvmppc_st(struct kvm_vcpu *vcpu, ulong eaddr, int size, void *ptr); |
| 115 | extern void kvmppc_book3s_queue_irqprio(struct kvm_vcpu *vcpu, unsigned int vec); | 116 | extern void kvmppc_book3s_queue_irqprio(struct kvm_vcpu *vcpu, unsigned int vec); |
| 117 | extern void kvmppc_set_bat(struct kvm_vcpu *vcpu, struct kvmppc_bat *bat, | ||
| 118 | bool upper, u32 val); | ||
| 116 | 119 | ||
| 117 | extern u32 kvmppc_trampoline_lowmem; | 120 | extern u32 kvmppc_trampoline_lowmem; |
| 118 | extern u32 kvmppc_trampoline_enter; | 121 | extern u32 kvmppc_trampoline_enter; |
