aboutsummaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
authorScott Wood <scottwood@freescale.com>2011-12-20 10:34:32 -0500
committerAvi Kivity <avi@redhat.com>2012-04-08 05:51:10 -0400
commit52e1718c6fd1a1f54c676c2107dc931e93865fe8 (patch)
treeebf80e342deeb35987deb851cd1cb42e72377d8c /arch
parentfc6cf99509eb8e5f16e0f81db0c71f5301193005 (diff)
KVM: PPC: e500: clean up arch/powerpc/kvm/e500.h
Move vcpu to the beginning of vcpu_e500 to give it appropriate prominence, especially if more fields end up getting added to the end of vcpu_e500 (and vcpu ends up in the middle). Remove gratuitous "extern" and add parameter names to prototypes. Signed-off-by: Scott Wood <scottwood@freescale.com> [agraf: fix bisectability] Signed-off-by: Alexander Graf <agraf@suse.de> Signed-off-by: Avi Kivity <avi@redhat.com>
Diffstat (limited to 'arch')
-rw-r--r--arch/powerpc/kvm/e500.h25
1 files changed, 14 insertions, 11 deletions
diff --git a/arch/powerpc/kvm/e500.h b/arch/powerpc/kvm/e500.h
index 51d13bd40153..a48af005c223 100644
--- a/arch/powerpc/kvm/e500.h
+++ b/arch/powerpc/kvm/e500.h
@@ -42,6 +42,8 @@ struct kvmppc_e500_tlb_params {
42}; 42};
43 43
44struct kvmppc_vcpu_e500 { 44struct kvmppc_vcpu_e500 {
45 struct kvm_vcpu vcpu;
46
45 /* Unmodified copy of the guest's TLB -- shared with host userspace. */ 47 /* Unmodified copy of the guest's TLB -- shared with host userspace. */
46 struct kvm_book3e_206_tlb_entry *gtlb_arch; 48 struct kvm_book3e_206_tlb_entry *gtlb_arch;
47 49
@@ -85,8 +87,6 @@ struct kvmppc_vcpu_e500 {
85 87
86 struct page **shared_tlb_pages; 88 struct page **shared_tlb_pages;
87 int num_shared_tlb_pages; 89 int num_shared_tlb_pages;
88
89 struct kvm_vcpu vcpu;
90}; 90};
91 91
92static inline struct kvmppc_vcpu_e500 *to_e500(struct kvm_vcpu *vcpu) 92static inline struct kvmppc_vcpu_e500 *to_e500(struct kvm_vcpu *vcpu)
@@ -113,19 +113,22 @@ static inline struct kvmppc_vcpu_e500 *to_e500(struct kvm_vcpu *vcpu)
113 (MAS3_U0 | MAS3_U1 | MAS3_U2 | MAS3_U3 \ 113 (MAS3_U0 | MAS3_U1 | MAS3_U2 | MAS3_U3 \
114 | E500_TLB_USER_PERM_MASK | E500_TLB_SUPER_PERM_MASK) 114 | E500_TLB_USER_PERM_MASK | E500_TLB_SUPER_PERM_MASK)
115 115
116extern void kvmppc_dump_tlbs(struct kvm_vcpu *);
117extern int kvmppc_e500_emul_mt_mmucsr0(struct kvmppc_vcpu_e500 *, ulong);
118extern int kvmppc_e500_emul_tlbwe(struct kvm_vcpu *);
119extern int kvmppc_e500_emul_tlbre(struct kvm_vcpu *);
120extern int kvmppc_e500_emul_tlbivax(struct kvm_vcpu *, int, int);
121extern int kvmppc_e500_emul_tlbsx(struct kvm_vcpu *, int);
122extern int kvmppc_e500_tlb_search(struct kvm_vcpu *, gva_t, unsigned int, int);
123extern void kvmppc_e500_tlb_put(struct kvm_vcpu *); 116extern void kvmppc_e500_tlb_put(struct kvm_vcpu *);
124extern void kvmppc_e500_tlb_load(struct kvm_vcpu *, int); 117extern void kvmppc_e500_tlb_load(struct kvm_vcpu *, int);
125extern int kvmppc_e500_tlb_init(struct kvmppc_vcpu_e500 *);
126extern void kvmppc_e500_tlb_uninit(struct kvmppc_vcpu_e500 *);
127extern void kvmppc_e500_tlb_setup(struct kvmppc_vcpu_e500 *); 118extern void kvmppc_e500_tlb_setup(struct kvmppc_vcpu_e500 *);
128extern void kvmppc_e500_recalc_shadow_pid(struct kvmppc_vcpu_e500 *); 119extern void kvmppc_e500_recalc_shadow_pid(struct kvmppc_vcpu_e500 *);
120int kvmppc_e500_emul_mt_mmucsr0(struct kvmppc_vcpu_e500 *vcpu_e500,
121 ulong value);
122int kvmppc_e500_emul_tlbwe(struct kvm_vcpu *vcpu);
123int kvmppc_e500_emul_tlbre(struct kvm_vcpu *vcpu);
124int kvmppc_e500_emul_tlbivax(struct kvm_vcpu *vcpu, int ra, int rb);
125int kvmppc_e500_emul_tlbsx(struct kvm_vcpu *vcpu, int rb);
126int kvmppc_e500_tlb_search(struct kvm_vcpu *, gva_t, unsigned int, int);
127int kvmppc_e500_tlb_init(struct kvmppc_vcpu_e500 *vcpu_e500);
128void kvmppc_e500_tlb_uninit(struct kvmppc_vcpu_e500 *vcpu_e500);
129
130void kvmppc_get_sregs_e500_tlb(struct kvm_vcpu *vcpu, struct kvm_sregs *sregs);
131int kvmppc_set_sregs_e500_tlb(struct kvm_vcpu *vcpu, struct kvm_sregs *sregs);
129 132
130/* TLB helper functions */ 133/* TLB helper functions */
131static inline unsigned int 134static inline unsigned int