| /Linux-v5.15/tools/testing/selftests/kvm/x86_64/ |
| D | hyperv_features.c | 125 static void guest_hcall(vm_vaddr_t pgs_gpa, struct hcall_data *hcall) in guest_hcall() argument 133 while (hcall->control) { in guest_hcall() 135 if (!(hcall->control & HV_HYPERCALL_FAST_BIT)) { in guest_hcall() 142 res = hypercall(hcall->control, input, output); in guest_hcall() 143 if (hcall->ud_expected) in guest_hcall() 146 GUEST_ASSERT(res == hcall->expect); in guest_hcall() 480 static void guest_test_hcalls_access(struct kvm_vm *vm, struct hcall_data *hcall, in guest_test_hcalls_access() argument 502 hcall->control = 0xdeadbeef; in guest_test_hcalls_access() 503 hcall->expect = HV_STATUS_INVALID_HYPERCALL_CODE; in guest_test_hcalls_access() 507 hcall->control = HVCALL_POST_MESSAGE; in guest_test_hcalls_access() [all …]
|
| D | xen_vmcall_test.c | 116 ASSERT_EQ(run->xen.u.hcall.cpl, 0); in main() 117 ASSERT_EQ(run->xen.u.hcall.longmode, 1); in main() 118 ASSERT_EQ(run->xen.u.hcall.input, INPUTVALUE); in main() 119 ASSERT_EQ(run->xen.u.hcall.params[0], ARGVALUE(1)); in main() 120 ASSERT_EQ(run->xen.u.hcall.params[1], ARGVALUE(2)); in main() 121 ASSERT_EQ(run->xen.u.hcall.params[2], ARGVALUE(3)); in main() 122 ASSERT_EQ(run->xen.u.hcall.params[3], ARGVALUE(4)); in main() 123 ASSERT_EQ(run->xen.u.hcall.params[4], ARGVALUE(5)); in main() 124 ASSERT_EQ(run->xen.u.hcall.params[5], ARGVALUE(6)); in main() 125 run->xen.u.hcall.result = RETVALUE; in main()
|
| /Linux-v5.15/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-v5.15/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-v5.15/arch/x86/kvm/ |
| D | xen.c | 686 return kvm_xen_hypercall_set_result(vcpu, run->xen.u.hcall.result); in kvm_xen_hypercall_complete_userspace() 725 vcpu->run->xen.u.hcall.longmode = longmode; in kvm_xen_hypercall() 726 vcpu->run->xen.u.hcall.cpl = kvm_x86_ops.get_cpl(vcpu); in kvm_xen_hypercall() 727 vcpu->run->xen.u.hcall.input = input; in kvm_xen_hypercall() 728 vcpu->run->xen.u.hcall.params[0] = params[0]; in kvm_xen_hypercall() 729 vcpu->run->xen.u.hcall.params[1] = params[1]; in kvm_xen_hypercall() 730 vcpu->run->xen.u.hcall.params[2] = params[2]; in kvm_xen_hypercall() 731 vcpu->run->xen.u.hcall.params[3] = params[3]; in kvm_xen_hypercall() 732 vcpu->run->xen.u.hcall.params[4] = params[4]; in kvm_xen_hypercall() 733 vcpu->run->xen.u.hcall.params[5] = params[5]; in kvm_xen_hypercall()
|
| D | hyperv.c | 2044 return kvm_hv_hypercall_complete(vcpu, vcpu->run->hyperv.u.hcall.result); in kvm_hv_hypercall_complete_userspace() 2239 vcpu->run->hyperv.u.hcall.input = hc.param; in kvm_hv_hypercall() 2240 vcpu->run->hyperv.u.hcall.params[0] = hc.ingpa; in kvm_hv_hypercall() 2241 vcpu->run->hyperv.u.hcall.params[1] = hc.outgpa; in kvm_hv_hypercall() 2308 vcpu->run->hyperv.u.hcall.input = hc.param; in kvm_hv_hypercall() 2309 vcpu->run->hyperv.u.hcall.params[0] = hc.ingpa; in kvm_hv_hypercall() 2310 vcpu->run->hyperv.u.hcall.params[1] = hc.outgpa; in kvm_hv_hypercall()
|
| /Linux-v5.15/arch/powerpc/kvm/ |
| D | book3s_pr_papr.c | 464 unsigned int hcall; in kvmppc_pr_init_default_hcalls() local 467 hcall = default_hcall_list[i]; in kvmppc_pr_init_default_hcalls() 468 WARN_ON(!kvmppc_hcall_impl_pr(hcall)); in kvmppc_pr_init_default_hcalls() 469 __set_bit(hcall / 4, kvm->arch.enabled_hcalls); in kvmppc_pr_init_default_hcalls()
|
| D | powerpc.c | 2103 pvinfo->hcall[0] = cpu_to_be32(inst_sc1); in kvm_vm_ioctl_get_pvinfo() 2104 pvinfo->hcall[1] = cpu_to_be32(inst_nop); in kvm_vm_ioctl_get_pvinfo() 2105 pvinfo->hcall[2] = cpu_to_be32(inst_nop); in kvm_vm_ioctl_get_pvinfo() 2106 pvinfo->hcall[3] = cpu_to_be32(inst_nop); in kvm_vm_ioctl_get_pvinfo() 2122 pvinfo->hcall[0] = cpu_to_be32(inst_lis | ((KVM_SC_MAGIC_R0 >> 16) & inst_imm_mask)); in kvm_vm_ioctl_get_pvinfo() 2123 pvinfo->hcall[1] = cpu_to_be32(inst_ori | (KVM_SC_MAGIC_R0 & inst_imm_mask)); in kvm_vm_ioctl_get_pvinfo() 2124 pvinfo->hcall[2] = cpu_to_be32(inst_sc); in kvm_vm_ioctl_get_pvinfo() 2125 pvinfo->hcall[3] = cpu_to_be32(inst_nop); in kvm_vm_ioctl_get_pvinfo() 2157 unsigned long hcall = cap->args[0]; in kvm_vm_ioctl_enable_cap() local 2160 if (hcall > MAX_HCALL_OPCODE || (hcall & 3) || in kvm_vm_ioctl_enable_cap() [all …]
|
| D | book3s.c | 1014 int kvmppc_book3s_hcall_implemented(struct kvm *kvm, unsigned long hcall) in kvmppc_book3s_hcall_implemented() argument 1016 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 | 5675 unsigned int hcall; in init_default_hcalls() local 5678 hcall = default_hcall_list[i]; in init_default_hcalls() 5679 WARN_ON(!kvmppc_hcall_impl_hv(hcall)); in init_default_hcalls() 5680 __set_bit(hcall / 4, default_enabled_hcalls); in init_default_hcalls()
|
| /Linux-v5.15/arch/powerpc/platforms/pseries/ |
| D | vas.c | 145 int h_query_vas_capabilities(const u64 hcall, u8 query_type, u64 result) in h_query_vas_capabilities() argument 149 rc = plpar_hcall_norets(hcall, query_type, result); in h_query_vas_capabilities() 155 hcall, rc, query_type, result); in h_query_vas_capabilities()
|
| D | Kconfig | 133 this enables code that uses the hcall GetPerfCounterInfo and 24x7
|
| /Linux-v5.15/arch/powerpc/include/asm/ |
| D | vas.h | 257 int h_query_vas_capabilities(const u64 hcall, u8 query_type, u64 result);
|
| D | kvm_ppc.h | 300 int (*hcall_implemented)(unsigned long hcall); 607 extern int kvmppc_xics_rm_complete(struct kvm_vcpu *vcpu, u32 hcall); 636 static inline int kvmppc_xics_rm_complete(struct kvm_vcpu *vcpu, u32 hcall) in kvmppc_xics_rm_complete() argument
|
| /Linux-v5.15/tools/include/uapi/linux/ |
| D | kvm.h | 207 } hcall; member 230 } hcall; member 804 __u32 hcall[4]; member
|
| /Linux-v5.15/include/uapi/linux/ |
| D | kvm.h | 207 } hcall; member 230 } hcall; member 804 __u32 hcall[4]; member
|
| /Linux-v5.15/Documentation/virt/kvm/ |
| D | ppc-pv.rst | 207 generic hypercalls are implemented here, like the ePAPR idle hcall. These are
|
| D | api.rst | 1697 __u32 hcall[4]; 1704 The hcall array defines 4 instructions that make up a hypercall. 1711 /* the host supports the ePAPR idle hcall 2003 When the guest issues an H_PUT_TCE hcall on a liobn for which a TCE 5718 } hcall; 5836 } hcall; 6174 :Parameters: args[0] is the sPAPR hcall number; 6179 handling of an hcall is effective across the VM. On creation, an 6183 not to attempt to handle the hcall, but will always exit to userspace 6188 If the hcall number specified is not one that has an in-kernel [all …]
|
| /Linux-v5.15/Documentation/admin-guide/ |
| D | kernel-parameters.txt | 987 Disable RADIX GTSE feature and use hcall for TLB
|