Home
last modified time | relevance | path

Searched refs:hcall (Results 1 – 23 of 23) sorted by relevance

/linux-6.6.21/tools/testing/selftests/kvm/x86_64/
Dhyperv_features.c85 static void guest_hcall(vm_vaddr_t pgs_gpa, struct hcall_data *hcall) in guest_hcall() argument
90 GUEST_ASSERT_NE(hcall->control, 0); in guest_hcall()
95 if (!(hcall->control & HV_HYPERCALL_FAST_BIT)) { in guest_hcall()
102 vector = __hyperv_hypercall(hcall->control, input, output, &res); in guest_hcall()
103 if (hcall->ud_expected) { in guest_hcall()
106 hcall->control, vector); in guest_hcall()
110 hcall->control, vector); in guest_hcall()
111 GUEST_ASSERT_EQ(res, hcall->expect); in guest_hcall()
530 struct hcall_data *hcall; in guest_test_hcalls_access() local
544 hcall = addr_gva2hva(vm, hcall_params); in guest_test_hcalls_access()
[all …]
Dxen_vmcall_test.c112 TEST_ASSERT_EQ(run->xen.u.hcall.cpl, 0); in main()
113 TEST_ASSERT_EQ(run->xen.u.hcall.longmode, 1); in main()
114 TEST_ASSERT_EQ(run->xen.u.hcall.input, INPUTVALUE); in main()
115 TEST_ASSERT_EQ(run->xen.u.hcall.params[0], ARGVALUE(1)); in main()
116 TEST_ASSERT_EQ(run->xen.u.hcall.params[1], ARGVALUE(2)); in main()
117 TEST_ASSERT_EQ(run->xen.u.hcall.params[2], ARGVALUE(3)); in main()
118 TEST_ASSERT_EQ(run->xen.u.hcall.params[3], ARGVALUE(4)); in main()
119 TEST_ASSERT_EQ(run->xen.u.hcall.params[4], ARGVALUE(5)); in main()
120 TEST_ASSERT_EQ(run->xen.u.hcall.params[5], ARGVALUE(6)); in main()
121 run->xen.u.hcall.result = RETVALUE; in main()
Dhyperv_extended_hypercalls.c74 outval = addr_gpa2hva(vm, run->hyperv.u.hcall.params[1]); in main()
76 run->hyperv.u.hcall.result = HV_STATUS_SUCCESS; in main()
/linux-6.6.21/Documentation/ABI/testing/
Ddebugfs-pfo-nx-crypto15 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.
Dsysfs-bus-papr-pmem9 response to H_SCM_HEALTH hcall. The details of the bit
10 flags returned in response to this hcall is available
/linux-6.6.21/Documentation/powerpc/
Dpapr_hcalls.rst28 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-6.6.21/arch/powerpc/kvm/
Dbook3s_pr_papr.c489 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()
Dpowerpc.c2130 pvinfo->hcall[0] = cpu_to_be32(inst_sc1); in kvm_vm_ioctl_get_pvinfo()
2131 pvinfo->hcall[1] = cpu_to_be32(inst_nop); in kvm_vm_ioctl_get_pvinfo()
2132 pvinfo->hcall[2] = cpu_to_be32(inst_nop); in kvm_vm_ioctl_get_pvinfo()
2133 pvinfo->hcall[3] = cpu_to_be32(inst_nop); in kvm_vm_ioctl_get_pvinfo()
2149 pvinfo->hcall[0] = cpu_to_be32(inst_lis | ((KVM_SC_MAGIC_R0 >> 16) & inst_imm_mask)); in kvm_vm_ioctl_get_pvinfo()
2150 pvinfo->hcall[1] = cpu_to_be32(inst_ori | (KVM_SC_MAGIC_R0 & inst_imm_mask)); in kvm_vm_ioctl_get_pvinfo()
2151 pvinfo->hcall[2] = cpu_to_be32(inst_sc); in kvm_vm_ioctl_get_pvinfo()
2152 pvinfo->hcall[3] = cpu_to_be32(inst_nop); in kvm_vm_ioctl_get_pvinfo()
2199 unsigned long hcall = cap->args[0]; in kvm_vm_ioctl_enable_cap() local
2202 if (hcall > MAX_HCALL_OPCODE || (hcall & 3) || in kvm_vm_ioctl_enable_cap()
[all …]
Dbook3s.c1024 int kvmppc_book3s_hcall_implemented(struct kvm *kvm, unsigned long hcall) in kvmppc_book3s_hcall_implemented() argument
1026 return kvm->arch.kvm_ops->hcall_implemented(hcall); in kvmppc_book3s_hcall_implemented()
Dbook3s_xics.c848 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()
Dbook3s_hv.c2762 {"hypercall", offsetof(struct kvm_vcpu, arch.hcall)},
4883 accumulate_time(vcpu, &vcpu->arch.hcall); in kvmppc_vcpu_run_hv()
5919 unsigned int hcall; in init_default_hcalls() local
5922 hcall = default_hcall_list[i]; in init_default_hcalls()
5923 WARN_ON(!kvmppc_hcall_impl_hv(hcall)); in init_default_hcalls()
5924 __set_bit(hcall / 4, default_enabled_hcalls); in init_default_hcalls()
/linux-6.6.21/arch/x86/kvm/
Dxen.c1156 return kvm_xen_hypercall_set_result(vcpu, run->xen.u.hcall.result); in kvm_xen_hypercall_complete_userspace()
1515 vcpu->run->xen.u.hcall.longmode = longmode; in kvm_xen_hypercall()
1516 vcpu->run->xen.u.hcall.cpl = cpl; in kvm_xen_hypercall()
1517 vcpu->run->xen.u.hcall.input = input; in kvm_xen_hypercall()
1518 vcpu->run->xen.u.hcall.params[0] = params[0]; in kvm_xen_hypercall()
1519 vcpu->run->xen.u.hcall.params[1] = params[1]; in kvm_xen_hypercall()
1520 vcpu->run->xen.u.hcall.params[2] = params[2]; in kvm_xen_hypercall()
1521 vcpu->run->xen.u.hcall.params[3] = params[3]; in kvm_xen_hypercall()
1522 vcpu->run->xen.u.hcall.params[4] = params[4]; in kvm_xen_hypercall()
1523 vcpu->run->xen.u.hcall.params[5] = params[5]; in kvm_xen_hypercall()
Dhyperv.c2351 return kvm_hv_hypercall_complete(vcpu, vcpu->run->hyperv.u.hcall.result); in kvm_hv_hypercall_complete_userspace()
2632 vcpu->run->hyperv.u.hcall.input = hc.param; in kvm_hv_hypercall()
2633 vcpu->run->hyperv.u.hcall.params[0] = hc.ingpa; in kvm_hv_hypercall()
2634 vcpu->run->hyperv.u.hcall.params[1] = hc.outgpa; in kvm_hv_hypercall()
/linux-6.6.21/arch/powerpc/platforms/pseries/
Dvas.c148 int h_query_vas_capabilities(const u64 hcall, u8 query_type, u64 result) in h_query_vas_capabilities() argument
152 rc = plpar_hcall_norets(hcall, query_type, result); in h_query_vas_capabilities()
160 (hcall == H_QUERY_VAS_CAPABILITIES) ? in h_query_vas_capabilities()
DKconfig137 this enables code that uses the hcall GetPerfCounterInfo and 24x7
/linux-6.6.21/arch/powerpc/include/asm/
Dvas.h271 int h_query_vas_capabilities(const u64 hcall, u8 query_type, u64 result);
Dkvm_ppc.h302 int (*hcall_implemented)(unsigned long hcall);
637 extern int kvmppc_xics_rm_complete(struct kvm_vcpu *vcpu, u32 hcall);
666 static inline int kvmppc_xics_rm_complete(struct kvm_vcpu *vcpu, u32 hcall) in kvmppc_xics_rm_complete() argument
Dkvm_host.h841 struct kvmhv_tb_accumulator hcall; member
/linux-6.6.21/tools/include/uapi/linux/
Dkvm.h199 } hcall; member
222 } hcall; member
860 __u32 hcall[4]; member
/linux-6.6.21/include/uapi/linux/
Dkvm.h199 } hcall; member
222 } hcall; member
860 __u32 hcall[4]; member
/linux-6.6.21/Documentation/virt/kvm/
Dppc-pv.rst207 generic hypercalls are implemented here, like the ePAPR idle hcall. These are
Dapi.rst1784 __u32 hcall[4];
1791 The hcall array defines 4 instructions that make up a hypercall.
1798 /* the host supports the ePAPR idle hcall
2109 When the guest issues an H_PUT_TCE hcall on a liobn for which a TCE
6549 } hcall;
6670 } hcall;
7043 :Parameters: args[0] is the sPAPR hcall number;
7048 handling of an hcall is effective across the VM. On creation, an
7052 not to attempt to handle the hcall, but will always exit to userspace
7057 If the hcall number specified is not one that has an in-kernel
[all …]
/linux-6.6.21/Documentation/admin-guide/
Dkernel-parameters.txt4691 Disable RADIX GTSE feature and use hcall for TLB