Lines Matching defs:vcpu
13 int kvm_virt_ipi(struct kvm_vcpu *vcpu)
19 ipi_bitmap = vcpu->arch.gprs[REG_A1];
20 min = vcpu->arch.gprs[REG_A2];
21 action = vcpu->arch.gprs[REG_A3];
26 kvm_helper_send_ipi(vcpu, cpu + min, action);
34 int kvm_save_notify(struct kvm_vcpu *vcpu)
37 struct gfn_to_pfn_cache *cache = &vcpu->arch.st.cache;
41 num = vcpu->arch.gprs[REG_A0];
42 id = vcpu->arch.gprs[REG_A1];
43 data = vcpu->arch.gprs[REG_A2];
50 if (vcpu->arch.st.guest_addr && (data == 0))
53 vcpu->arch.st.guest_addr = data;
54 kvm_debug("cpu :%d addr:%lx\n", vcpu->vcpu_id, data);
55 vcpu->arch.st.last_steal = current->sched_info.run_delay;
56 kvm_make_request(KVM_REQ_RECORD_STEAL, vcpu);
65 static int _kvm_pv_feature(struct kvm_vcpu *vcpu)
67 int feature = vcpu->arch.gprs[REG_A1];
88 static int kvm_pv_kick_cpu(struct kvm_vcpu *vcpu)
90 int cpu = vcpu->arch.gprs[REG_A1];
91 struct kvm_vcpu *dst_vcpu = vcpu->kvm->vcpus[cpu];
104 int _kvm_handle_pv_hcall(struct kvm_vcpu *vcpu)
106 unsigned long func = vcpu->arch.gprs[REG_A0];
111 hyp_ret = _kvm_pv_feature(vcpu);
114 hyp_ret = kvm_save_notify(vcpu);
117 hyp_ret = kvm_virt_ipi(vcpu);
120 hyp_ret = kvm_pv_kick_cpu(vcpu);
123 kvm_info("[%#lx] hvc func:%#lx unsupported\n", vcpu->arch.pc, func);
127 vcpu->arch.gprs[REG_A0] = hyp_ret;