Lines Matching defs:vcpu
40 static inline bool check_debug_ip(struct kvm_vcpu *vcpu)
43 return vcpu->arch.regs.nip == DEBUG_MMU_PTE_IP;
69 static int kvmppc_mmu_book3s_32_xlate_bat(struct kvm_vcpu *vcpu, gva_t eaddr,
72 static int kvmppc_mmu_book3s_32_esid_to_vsid(struct kvm_vcpu *vcpu, ulong esid,
75 static u32 find_sr(struct kvm_vcpu *vcpu, gva_t eaddr)
77 return kvmppc_get_sr(vcpu, (eaddr >> 28) & 0xf);
80 static u64 kvmppc_mmu_book3s_32_ea_to_vp(struct kvm_vcpu *vcpu, gva_t eaddr,
86 if (!kvmppc_mmu_book3s_32_xlate_bat(vcpu, eaddr, &pte, data, false))
89 kvmppc_mmu_book3s_32_esid_to_vsid(vcpu, eaddr >> SID_SHIFT, &vsid);
93 static hva_t kvmppc_mmu_book3s_32_get_pteg(struct kvm_vcpu *vcpu,
97 struct kvmppc_vcpu_book3s *vcpu_book3s = to_book3s(vcpu);
112 kvmppc_get_pc(vcpu), eaddr, vcpu_book3s->sdr1, pteg,
115 r = gfn_to_hva(vcpu->kvm, pteg >> PAGE_SHIFT);
127 static int kvmppc_mmu_book3s_32_xlate_bat(struct kvm_vcpu *vcpu, gva_t eaddr,
131 struct kvmppc_vcpu_book3s *vcpu_book3s = to_book3s(vcpu);
141 if (kvmppc_get_msr(vcpu) & MSR_PR) {
149 if (check_debug_ip(vcpu))
157 kvmppc_mmu_book3s_32_esid_to_vsid(vcpu,
182 static int kvmppc_mmu_book3s_32_xlate_pte(struct kvm_vcpu *vcpu, gva_t eaddr,
194 sre = find_sr(vcpu, eaddr);
199 pte->vpage = kvmppc_mmu_book3s_32_ea_to_vp(vcpu, eaddr, data);
201 ptegp = kvmppc_mmu_book3s_32_get_pteg(vcpu, sre, eaddr, primary);
224 if ((sr_kp(sre) && (kvmppc_get_msr(vcpu) & MSR_PR)) ||
225 (sr_ks(sre) && !(kvmppc_get_msr(vcpu) & MSR_PR)))
277 if (check_debug_ip(vcpu)) {
279 to_book3s(vcpu)->sdr1, ptegp);
290 static int kvmppc_mmu_book3s_32_xlate(struct kvm_vcpu *vcpu, gva_t eaddr,
295 ulong mp_ea = vcpu->arch.magic_page_ea;
303 !(kvmppc_get_msr(vcpu) & MSR_PR)) {
304 pte->vpage = kvmppc_mmu_book3s_32_ea_to_vp(vcpu, eaddr, data);
305 pte->raddr = vcpu->arch.magic_page_pa | (pte->raddr & 0xfff);
314 r = kvmppc_mmu_book3s_32_xlate_bat(vcpu, eaddr, pte, data, iswrite);
316 r = kvmppc_mmu_book3s_32_xlate_pte(vcpu, eaddr, pte,
319 r = kvmppc_mmu_book3s_32_xlate_pte(vcpu, eaddr, pte,
326 static u32 kvmppc_mmu_book3s_32_mfsrin(struct kvm_vcpu *vcpu, u32 srnum)
328 return kvmppc_get_sr(vcpu, srnum);
331 static void kvmppc_mmu_book3s_32_mtsrin(struct kvm_vcpu *vcpu, u32 srnum,
334 kvmppc_set_sr(vcpu, srnum, value);
335 kvmppc_mmu_map_segment(vcpu, srnum << SID_SHIFT);
338 static void kvmppc_mmu_book3s_32_tlbie(struct kvm_vcpu *vcpu, ulong ea, bool large)
344 kvm_for_each_vcpu(i, v, vcpu->kvm)
348 static int kvmppc_mmu_book3s_32_esid_to_vsid(struct kvm_vcpu *vcpu, ulong esid,
354 u64 msr = kvmppc_get_msr(vcpu);
357 sr = find_sr(vcpu, ea);
391 static bool kvmppc_mmu_book3s_32_is_dcbz32(struct kvm_vcpu *vcpu)
397 void kvmppc_mmu_book3s_32_init(struct kvm_vcpu *vcpu)
399 struct kvmppc_mmu *mmu = &vcpu->arch.mmu;