| /Linux-v6.1/tools/testing/selftests/kvm/x86_64/ |
| D | hyperv_features.c | 67 static void guest_hcall(vm_vaddr_t pgs_gpa, struct hcall_data *hcall) in guest_hcall() argument 72 GUEST_ASSERT(hcall->control); in guest_hcall() 77 if (!(hcall->control & HV_HYPERCALL_FAST_BIT)) { in guest_hcall() 84 vector = hypercall(hcall->control, input, output, &res); in guest_hcall() 85 if (hcall->ud_expected) { in guest_hcall() 86 GUEST_ASSERT_2(vector == UD_VECTOR, hcall->control, vector); in guest_hcall() 88 GUEST_ASSERT_2(!vector, hcall->control, vector); in guest_hcall() 89 GUEST_ASSERT_2(res == hcall->expect, hcall->expect, res); in guest_hcall() 475 struct hcall_data *hcall; in guest_test_hcalls_access() local 489 hcall = addr_gva2hva(vm, hcall_params); in guest_test_hcalls_access() [all …]
|
| D | xen_vmcall_test.c | 112 ASSERT_EQ(run->xen.u.hcall.cpl, 0); in main() 113 ASSERT_EQ(run->xen.u.hcall.longmode, 1); in main() 114 ASSERT_EQ(run->xen.u.hcall.input, INPUTVALUE); in main() 115 ASSERT_EQ(run->xen.u.hcall.params[0], ARGVALUE(1)); in main() 116 ASSERT_EQ(run->xen.u.hcall.params[1], ARGVALUE(2)); in main() 117 ASSERT_EQ(run->xen.u.hcall.params[2], ARGVALUE(3)); in main() 118 ASSERT_EQ(run->xen.u.hcall.params[3], ARGVALUE(4)); in main() 119 ASSERT_EQ(run->xen.u.hcall.params[4], ARGVALUE(5)); in main() 120 ASSERT_EQ(run->xen.u.hcall.params[5], ARGVALUE(6)); in main() 121 run->xen.u.hcall.result = RETVALUE; in main()
|
| /Linux-v6.1/Documentation/ABI/testing/ |
| D | debugfs-pfo-nx-crypto | 15 only errors counted here are those returned from the hcall, H_COP_OP. 18 The most recent non-zero return code from the H_COP_OP hcall. -EBUSY is not 19 recorded here (the hcall will retry until -EBUSY goes away). 23 hcall.
|
| D | sysfs-bus-papr-pmem | 9 response to H_SCM_HEALTH hcall. The details of the bit 10 flags returned in response to this hcall is available
|
| /Linux-v6.1/Documentation/powerpc/ |
| D | papr_hcalls.rst | 28 Hence a Hypercall (hcall) is essentially a request by the pseries guest 36 The ABI specification for a hcall between a pseries guest and PAPR hypervisor 38 done via the instruction **HVCS** that expects the Opcode for hcall is set in *r3* 39 and any in-arguments for the hcall are provided in registers *r4-r12*. If values 44 'HVCS' instruction the return value of the hcall is available in *r3* and any 55 Any hcall should follow same register convention as described in section 2.2.1.1 69 | r3 | Y | hcall opcode/return value | 122 After servicing the hcall, hypervisor sets the return-value in *r3* indicating 123 success or failure of the hcall. In case of a failure an error code indicates 127 In some cases a hcall can potentially take a long time and need to be issued [all …]
|
| /Linux-v6.1/arch/powerpc/kvm/ |
| D | book3s_pr_papr.c | 489 unsigned int hcall; in kvmppc_pr_init_default_hcalls() local 492 hcall = default_hcall_list[i]; in kvmppc_pr_init_default_hcalls() 493 WARN_ON(!kvmppc_hcall_impl_pr(hcall)); in kvmppc_pr_init_default_hcalls() 494 __set_bit(hcall / 4, kvm->arch.enabled_hcalls); in kvmppc_pr_init_default_hcalls()
|
| D | powerpc.c | 2138 pvinfo->hcall[0] = cpu_to_be32(inst_sc1); in kvm_vm_ioctl_get_pvinfo() 2139 pvinfo->hcall[1] = cpu_to_be32(inst_nop); in kvm_vm_ioctl_get_pvinfo() 2140 pvinfo->hcall[2] = cpu_to_be32(inst_nop); in kvm_vm_ioctl_get_pvinfo() 2141 pvinfo->hcall[3] = cpu_to_be32(inst_nop); in kvm_vm_ioctl_get_pvinfo() 2157 pvinfo->hcall[0] = cpu_to_be32(inst_lis | ((KVM_SC_MAGIC_R0 >> 16) & inst_imm_mask)); in kvm_vm_ioctl_get_pvinfo() 2158 pvinfo->hcall[1] = cpu_to_be32(inst_ori | (KVM_SC_MAGIC_R0 & inst_imm_mask)); in kvm_vm_ioctl_get_pvinfo() 2159 pvinfo->hcall[2] = cpu_to_be32(inst_sc); in kvm_vm_ioctl_get_pvinfo() 2160 pvinfo->hcall[3] = cpu_to_be32(inst_nop); in kvm_vm_ioctl_get_pvinfo() 2192 unsigned long hcall = cap->args[0]; in kvm_vm_ioctl_enable_cap() local 2195 if (hcall > MAX_HCALL_OPCODE || (hcall & 3) || in kvm_vm_ioctl_enable_cap() [all …]
|
| D | book3s.c | 1012 int kvmppc_book3s_hcall_implemented(struct kvm *kvm, unsigned long hcall) in kvmppc_book3s_hcall_implemented() argument 1014 return kvm->arch.kvm_ops->hcall_implemented(hcall); in kvmppc_book3s_hcall_implemented()
|
| D | book3s_xics.c | 848 int kvmppc_xics_rm_complete(struct kvm_vcpu *vcpu, u32 hcall) in kvmppc_xics_rm_complete() argument 854 hcall, icp->rm_action, icp->rm_dbgstate.raw, icp->rm_dbgtgt); in kvmppc_xics_rm_complete()
|
| D | book3s_hv.c | 2741 {"hypercall", offsetof(struct kvm_vcpu, arch.hcall)}, 4849 accumulate_time(vcpu, &vcpu->arch.hcall); in kvmppc_vcpu_run_hv() 5885 unsigned int hcall; in init_default_hcalls() local 5888 hcall = default_hcall_list[i]; in init_default_hcalls() 5889 WARN_ON(!kvmppc_hcall_impl_hv(hcall)); in init_default_hcalls() 5890 __set_bit(hcall / 4, default_enabled_hcalls); in init_default_hcalls()
|
| /Linux-v6.1/arch/x86/kvm/ |
| D | xen.c | 954 return kvm_xen_hypercall_set_result(vcpu, run->xen.u.hcall.result); in kvm_xen_hypercall_complete_userspace() 1306 vcpu->run->xen.u.hcall.longmode = longmode; in kvm_xen_hypercall() 1307 vcpu->run->xen.u.hcall.cpl = cpl; in kvm_xen_hypercall() 1308 vcpu->run->xen.u.hcall.input = input; in kvm_xen_hypercall() 1309 vcpu->run->xen.u.hcall.params[0] = params[0]; in kvm_xen_hypercall() 1310 vcpu->run->xen.u.hcall.params[1] = params[1]; in kvm_xen_hypercall() 1311 vcpu->run->xen.u.hcall.params[2] = params[2]; in kvm_xen_hypercall() 1312 vcpu->run->xen.u.hcall.params[3] = params[3]; in kvm_xen_hypercall() 1313 vcpu->run->xen.u.hcall.params[4] = params[4]; in kvm_xen_hypercall() 1314 vcpu->run->xen.u.hcall.params[5] = params[5]; in kvm_xen_hypercall()
|
| D | hyperv.c | 2073 return kvm_hv_hypercall_complete(vcpu, vcpu->run->hyperv.u.hcall.result); in kvm_hv_hypercall_complete_userspace() 2275 vcpu->run->hyperv.u.hcall.input = hc.param; in kvm_hv_hypercall() 2276 vcpu->run->hyperv.u.hcall.params[0] = hc.ingpa; in kvm_hv_hypercall() 2277 vcpu->run->hyperv.u.hcall.params[1] = hc.outgpa; in kvm_hv_hypercall() 2341 vcpu->run->hyperv.u.hcall.input = hc.param; in kvm_hv_hypercall() 2342 vcpu->run->hyperv.u.hcall.params[0] = hc.ingpa; in kvm_hv_hypercall() 2343 vcpu->run->hyperv.u.hcall.params[1] = hc.outgpa; in kvm_hv_hypercall()
|
| /Linux-v6.1/arch/powerpc/platforms/pseries/ |
| D | vas.c | 147 int h_query_vas_capabilities(const u64 hcall, u8 query_type, u64 result) in h_query_vas_capabilities() argument 151 rc = plpar_hcall_norets(hcall, query_type, result); in h_query_vas_capabilities() 159 (hcall == H_QUERY_VAS_CAPABILITIES) ? in h_query_vas_capabilities()
|
| D | Kconfig | 135 this enables code that uses the hcall GetPerfCounterInfo and 24x7
|
| /Linux-v6.1/arch/powerpc/include/asm/ |
| D | vas.h | 271 int h_query_vas_capabilities(const u64 hcall, u8 query_type, u64 result);
|
| D | kvm_ppc.h | 292 int (*hcall_implemented)(unsigned long hcall); 612 extern int kvmppc_xics_rm_complete(struct kvm_vcpu *vcpu, u32 hcall); 641 static inline int kvmppc_xics_rm_complete(struct kvm_vcpu *vcpu, u32 hcall) in kvmppc_xics_rm_complete() argument
|
| D | kvm_host.h | 841 struct kvmhv_tb_accumulator hcall; member
|
| /Linux-v6.1/tools/include/uapi/linux/ |
| D | kvm.h | 207 } hcall; member 230 } hcall; member 852 __u32 hcall[4]; member
|
| /Linux-v6.1/include/uapi/linux/ |
| D | kvm.h | 207 } hcall; member 230 } hcall; member 852 __u32 hcall[4]; member
|
| /Linux-v6.1/Documentation/virt/kvm/ |
| D | ppc-pv.rst | 207 generic hypercalls are implemented here, like the ePAPR idle hcall. These are
|
| D | api.rst | 1803 __u32 hcall[4]; 1810 The hcall array defines 4 instructions that make up a hypercall. 1817 /* the host supports the ePAPR idle hcall 2128 When the guest issues an H_PUT_TCE hcall on a liobn for which a TCE 6364 } hcall; 6481 } hcall; 6859 :Parameters: args[0] is the sPAPR hcall number; 6864 handling of an hcall is effective across the VM. On creation, an 6868 not to attempt to handle the hcall, but will always exit to userspace 6873 If the hcall number specified is not one that has an in-kernel [all …]
|
| /Linux-v6.1/Documentation/admin-guide/ |
| D | kernel-parameters.txt | 1052 Disable RADIX GTSE feature and use hcall for TLB
|