Lines Matching refs:vcpu

143 	vcpu_e500->vcpu.arch.shadow_pid = kvmppc_e500_get_sid(vcpu_e500,  in kvmppc_e500_recalc_shadow_pid()
144 get_cur_as(&vcpu_e500->vcpu), in kvmppc_e500_recalc_shadow_pid()
145 get_cur_pid(&vcpu_e500->vcpu), in kvmppc_e500_recalc_shadow_pid()
146 get_cur_pr(&vcpu_e500->vcpu), 1); in kvmppc_e500_recalc_shadow_pid()
147 vcpu_e500->vcpu.arch.shadow_pid1 = kvmppc_e500_get_sid(vcpu_e500, in kvmppc_e500_recalc_shadow_pid()
148 get_cur_as(&vcpu_e500->vcpu), 0, in kvmppc_e500_recalc_shadow_pid()
149 get_cur_pr(&vcpu_e500->vcpu), 1); in kvmppc_e500_recalc_shadow_pid()
218 unsigned int kvmppc_e500_get_tlb_stid(struct kvm_vcpu *vcpu, in kvmppc_e500_get_tlb_stid() argument
221 return kvmppc_e500_get_sid(to_e500(vcpu), get_tlb_ts(gtlbe), in kvmppc_e500_get_tlb_stid()
222 get_tlb_tid(gtlbe), get_cur_pr(vcpu), 0); in kvmppc_e500_get_tlb_stid()
225 void kvmppc_set_pid(struct kvm_vcpu *vcpu, u32 pid) in kvmppc_set_pid() argument
227 struct kvmppc_vcpu_e500 *vcpu_e500 = to_e500(vcpu); in kvmppc_set_pid()
229 if (vcpu->arch.pid != pid) { in kvmppc_set_pid()
230 vcpu_e500->pid[0] = vcpu->arch.pid = pid; in kvmppc_set_pid()
297 void kvmppc_mmu_msr_notify(struct kvm_vcpu *vcpu, u32 old_msr) in kvmppc_mmu_msr_notify() argument
300 kvmppc_e500_recalc_shadow_pid(to_e500(vcpu)); in kvmppc_mmu_msr_notify()
303 static void kvmppc_core_vcpu_load_e500(struct kvm_vcpu *vcpu, int cpu) in kvmppc_core_vcpu_load_e500() argument
305 kvmppc_booke_vcpu_load(vcpu, cpu); in kvmppc_core_vcpu_load_e500()
308 kvmppc_e500_recalc_shadow_pid(to_e500(vcpu)); in kvmppc_core_vcpu_load_e500()
311 static void kvmppc_core_vcpu_put_e500(struct kvm_vcpu *vcpu) in kvmppc_core_vcpu_put_e500() argument
314 if (vcpu->arch.shadow_msr & MSR_SPE) in kvmppc_core_vcpu_put_e500()
315 kvmppc_vcpu_disable_spe(vcpu); in kvmppc_core_vcpu_put_e500()
318 kvmppc_booke_vcpu_put(vcpu); in kvmppc_core_vcpu_put_e500()
350 int kvmppc_core_vcpu_setup(struct kvm_vcpu *vcpu) in kvmppc_core_vcpu_setup() argument
352 struct kvmppc_vcpu_e500 *vcpu_e500 = to_e500(vcpu); in kvmppc_core_vcpu_setup()
357 vcpu->arch.pvr = mfspr(SPRN_PVR); in kvmppc_core_vcpu_setup()
360 vcpu->arch.cpu_type = KVM_CPU_E500V2; in kvmppc_core_vcpu_setup()
365 static int kvmppc_core_get_sregs_e500(struct kvm_vcpu *vcpu, in kvmppc_core_get_sregs_e500() argument
368 struct kvmppc_vcpu_e500 *vcpu_e500 = to_e500(vcpu); in kvmppc_core_get_sregs_e500()
379 sregs->u.e.ivor_high[0] = vcpu->arch.ivor[BOOKE_IRQPRIO_SPE_UNAVAIL]; in kvmppc_core_get_sregs_e500()
380 sregs->u.e.ivor_high[1] = vcpu->arch.ivor[BOOKE_IRQPRIO_SPE_FP_DATA]; in kvmppc_core_get_sregs_e500()
381 sregs->u.e.ivor_high[2] = vcpu->arch.ivor[BOOKE_IRQPRIO_SPE_FP_ROUND]; in kvmppc_core_get_sregs_e500()
383 vcpu->arch.ivor[BOOKE_IRQPRIO_PERFORMANCE_MONITOR]; in kvmppc_core_get_sregs_e500()
385 kvmppc_get_sregs_ivor(vcpu, sregs); in kvmppc_core_get_sregs_e500()
386 kvmppc_get_sregs_e500_tlb(vcpu, sregs); in kvmppc_core_get_sregs_e500()
390 static int kvmppc_core_set_sregs_e500(struct kvm_vcpu *vcpu, in kvmppc_core_set_sregs_e500() argument
393 struct kvmppc_vcpu_e500 *vcpu_e500 = to_e500(vcpu); in kvmppc_core_set_sregs_e500()
402 ret = kvmppc_set_sregs_e500_tlb(vcpu, sregs); in kvmppc_core_set_sregs_e500()
410 vcpu->arch.ivor[BOOKE_IRQPRIO_SPE_UNAVAIL] = in kvmppc_core_set_sregs_e500()
412 vcpu->arch.ivor[BOOKE_IRQPRIO_SPE_FP_DATA] = in kvmppc_core_set_sregs_e500()
414 vcpu->arch.ivor[BOOKE_IRQPRIO_SPE_FP_ROUND] = in kvmppc_core_set_sregs_e500()
419 vcpu->arch.ivor[BOOKE_IRQPRIO_PERFORMANCE_MONITOR] = in kvmppc_core_set_sregs_e500()
423 return kvmppc_set_sregs_ivor(vcpu, sregs); in kvmppc_core_set_sregs_e500()
426 static int kvmppc_get_one_reg_e500(struct kvm_vcpu *vcpu, u64 id, in kvmppc_get_one_reg_e500() argument
429 int r = kvmppc_get_one_reg_e500_tlb(vcpu, id, val); in kvmppc_get_one_reg_e500()
433 static int kvmppc_set_one_reg_e500(struct kvm_vcpu *vcpu, u64 id, in kvmppc_set_one_reg_e500() argument
436 int r = kvmppc_get_one_reg_e500_tlb(vcpu, id, val); in kvmppc_set_one_reg_e500()
444 struct kvm_vcpu *vcpu; in kvmppc_core_vcpu_create_e500() local
453 vcpu = &vcpu_e500->vcpu; in kvmppc_core_vcpu_create_e500()
454 err = kvm_vcpu_init(vcpu, kvm, id); in kvmppc_core_vcpu_create_e500()
465 vcpu->arch.shared = (void*)__get_free_page(GFP_KERNEL|__GFP_ZERO); in kvmppc_core_vcpu_create_e500()
466 if (!vcpu->arch.shared) in kvmppc_core_vcpu_create_e500()
469 return vcpu; in kvmppc_core_vcpu_create_e500()
476 kvm_vcpu_uninit(vcpu); in kvmppc_core_vcpu_create_e500()
483 static void kvmppc_core_vcpu_free_e500(struct kvm_vcpu *vcpu) in kvmppc_core_vcpu_free_e500() argument
485 struct kvmppc_vcpu_e500 *vcpu_e500 = to_e500(vcpu); in kvmppc_core_vcpu_free_e500()
487 free_page((unsigned long)vcpu->arch.shared); in kvmppc_core_vcpu_free_e500()
490 kvm_vcpu_uninit(vcpu); in kvmppc_core_vcpu_free_e500()