bool kvm_cpu__handle_exit(struct kvm_cpu *vcpu) { bool ret = true; struct kvm_run *run = vcpu->kvm_run; switch(run->exit_reason) { case KVM_EXIT_PAPR_HCALL: run->papr_hcall.ret = spapr_hypercall(vcpu, run->papr_hcall.nr, (target_ulong*)run->papr_hcall.args); break; default: ret = false; } return ret; }
static void emulate_spapr_hypercall(CPUState *env) { env->gpr[3] = spapr_hypercall(env, env->gpr[3], &env->gpr[4]); }