Home
last modified time | relevance | path

Searched refs:hypercall (Results 1 – 25 of 43) sorted by relevance

12

/linux-6.15/arch/arm/xen/
H A Dhypercall.S57 #define HYPERCALL_SIMPLE(hypercall) \ argument
58 ENTRY(HYPERVISOR_##hypercall) \
59 mov r12, #__HYPERVISOR_##hypercall; \
62 ENDPROC(HYPERVISOR_##hypercall)
70 #define HYPERCALL5(hypercall) \ argument
71 ENTRY(HYPERVISOR_##hypercall) \
74 mov r12, #__HYPERVISOR_##hypercall; \
78 ENDPROC(HYPERVISOR_##hypercall)
H A DMakefile2 obj-y := enlighten.o hypercall.o grant-table.o p2m.o mm.o
/linux-6.15/Documentation/virt/kvm/x86/
H A Dhypercalls.rst13 The hypercall number should be placed in rax and the return value will be
15 by the particular hypercall.
21 S390 uses diagnose instruction as hypercall (0x500) along with hypercall
43 The template for each hypercall is:
73 OR KVM specific enumeration mechanism (which is this hypercall)
84 through memory using this hypercall.
100 is used in the hypercall for future use.
133 The hypercall lets a guest compute a precise timestamp across
152 The hypercall lets a guest send multicast IPIs, with at most 128
153 128 destinations per hypercall in 64-bit mode and 64 vCPUs per
[all …]
H A Dcpuid.rst100 using the map gpa range hypercall
/linux-6.15/arch/arm64/xen/
H A Dhypercall.S58 #define HYPERCALL_SIMPLE(hypercall) \ argument
59 SYM_FUNC_START(HYPERVISOR_##hypercall) \
60 mov x16, #__HYPERVISOR_##hypercall; \
63 SYM_FUNC_END(HYPERVISOR_##hypercall)
H A DMakefile3 obj-y := xen-arm.o hypercall.o
/linux-6.15/Documentation/virt/kvm/loongarch/
H A Dhypercalls.rst7 KVM hypercalls use the HVCL instruction with code 0x100 and the hypercall
30 KVM hypercall ABI
33 The KVM hypercall ABI is simple, with one scratch register a0 (v0) and at most
36 remain unmodified during a hypercall.
66 The template for each hypercall is as follows:
81 The hypercall lets a guest send multiple IPIs (Inter-Process Interrupts) with
82 at most 128 destinations per hypercall. The destinations are represented in a
/linux-6.15/Documentation/virt/kvm/
H A Dppc-pv.rst35 'hypercall-instructions'. This property contains at most 4 opcodes that make
36 up the hypercall. To call a hypercall, just call these instructions.
52 r11 hypercall number 8th output value
56 Hypercall definitions are shared in generic code, so the same hypercall numbers
57 apply for x86 and powerpc alike with the exception that each KVM hypercall
75 map this shared page using the KVM hypercall KVM_HC_PPC_MAP_MAGIC_PAGE.
77 With this hypercall issued the guest always gets the magic page mapped at the
88 also define a new hypercall feature to indicate that the host can give you more
97 When mapping the magic page using the KVM hypercall KVM_HC_PPC_MAP_MAGIC_PAGE,
206 These are ePAPR compliant hypercall implementation (mentioned above). Even
[all …]
/linux-6.15/tools/testing/selftests/kvm/x86/
H A Dprivate_mem_conversions_test.c292 uint64_t gpa = run->hypercall.args[0]; in handle_exit_hypercall()
293 uint64_t size = run->hypercall.args[1] * PAGE_SIZE; in handle_exit_hypercall()
294 bool set_attributes = run->hypercall.args[2] & MAP_GPA_SET_ATTRIBUTES; in handle_exit_hypercall()
295 bool map_shared = run->hypercall.args[2] & MAP_GPA_SHARED; in handle_exit_hypercall()
296 bool do_fallocate = run->hypercall.args[2] & MAP_GPA_DO_FALLOCATE; in handle_exit_hypercall()
299 TEST_ASSERT(run->hypercall.nr == KVM_HC_MAP_GPA_RANGE, in handle_exit_hypercall()
301 KVM_HC_MAP_GPA_RANGE, run->hypercall.nr); in handle_exit_hypercall()
309 run->hypercall.ret = 0; in handle_exit_hypercall()
/linux-6.15/tools/testing/selftests/kvm/arm64/
H A Dsmccc_filter.c214 TEST_ASSERT(run->hypercall.nr == func_id, in expect_call_fwd_to_user()
215 "Unexpected SMCCC function: %llu", run->hypercall.nr); in expect_call_fwd_to_user()
218 TEST_ASSERT(run->hypercall.flags & KVM_HYPERCALL_EXIT_SMC, in expect_call_fwd_to_user()
221 TEST_ASSERT(!(run->hypercall.flags & KVM_HYPERCALL_EXIT_SMC), in expect_call_fwd_to_user()
/linux-6.15/Documentation/arch/powerpc/
H A Dultravisor.rst539 contain any output values of the hypercall.
866 other output values from the hypercall.
890 uint64_t hypercall(const uint64_t H_SVM_INIT_START)
907 completed, Ultravisor issues the H_SVM_INIT_DONE hypercall.
926 uint64_t hypercall(const uint64_t H_SVM_INIT_DONE)
936 hypercall).
964 uint64_t hypercall(const uint64_t H_SVM_INIT_ABORT)
977 H_SVM_INIT_DONE hypercall was successful).
1024 uint64_t hypercall(const uint64_t H_SVM_PAGE_IN,
1083 uint64_t hypercall(const uint64_t H_SVM_PAGE_OUT,
[all …]
/linux-6.15/arch/loongarch/kvm/
H A Dexit.c721 kvm_write_reg(vcpu, LOONGARCH_GPR_A0, run->hypercall.ret); in kvm_complete_user_service()
898 vcpu->run->hypercall.nr = KVM_HCALL_USER_SERVICE; in kvm_handle_hypercall()
899 vcpu->run->hypercall.args[0] = kvm_read_reg(vcpu, LOONGARCH_GPR_A0); in kvm_handle_hypercall()
900 vcpu->run->hypercall.args[1] = kvm_read_reg(vcpu, LOONGARCH_GPR_A1); in kvm_handle_hypercall()
901 vcpu->run->hypercall.args[2] = kvm_read_reg(vcpu, LOONGARCH_GPR_A2); in kvm_handle_hypercall()
902 vcpu->run->hypercall.args[3] = kvm_read_reg(vcpu, LOONGARCH_GPR_A3); in kvm_handle_hypercall()
903 vcpu->run->hypercall.args[4] = kvm_read_reg(vcpu, LOONGARCH_GPR_A4); in kvm_handle_hypercall()
904 vcpu->run->hypercall.args[5] = kvm_read_reg(vcpu, LOONGARCH_GPR_A5); in kvm_handle_hypercall()
905 vcpu->run->hypercall.flags = 0; in kvm_handle_hypercall()
909 vcpu->run->hypercall.ret = KVM_HCALL_INVALID_CODE; in kvm_handle_hypercall()
/linux-6.15/Documentation/virt/kvm/arm/
H A Dhyp-abi.rst59 This hypercall is not expected to return to its caller.
74 The return value of a stub hypercall is held by r0/x0, and is 0 on
75 success, and HVC_STUB_ERR on error. A stub hypercall is allowed to
78 the hypercall.
H A Dfw-pseudo-registers.rst7 KVM handles the hypercall services as requested by the guests. New hypercall
13 is tied to a particular version of a hypercall service, or if a migration
82 hypercall services in the form of a feature-bitmap to the userspace. This
89 hypercall services via GET_ONE_REG. The user-space can write-back the
H A Dpvtime.rst22 the PV_TIME_FEATURES hypercall should be probed using the SMCCC 1.1
54 The structure pointed to by the PV_TIME_ST hypercall is as follows:
H A Dptp_kvm.rst8 host to the guest using a KVM-specific hypercall.
/linux-6.15/arch/x86/hyperv/
H A Divm.c61 } hypercall; member
91 hv_ghcb->hypercall.outputgpa = (u64)output; in hv_ghcb_hypercall()
92 hv_ghcb->hypercall.hypercallinput.asuint64 = 0; in hv_ghcb_hypercall()
93 hv_ghcb->hypercall.hypercallinput.callcode = control; in hv_ghcb_hypercall()
96 memcpy(hv_ghcb->hypercall.hypercalldata, input, input_size); in hv_ghcb_hypercall()
104 status = hv_ghcb->hypercall.hypercalloutput.callstatus; in hv_ghcb_hypercall()
/linux-6.15/Documentation/devicetree/bindings/arm/
H A Dxen.txt12 hypercall.
62 http://xenbits.xen.org/docs/unstable/hypercall/x86_64/include,public,platform.h.html.
/linux-6.15/drivers/xen/
H A Dprivcmd.c83 struct privcmd_hypercall hypercall; in privcmd_ioctl_hypercall() local
90 if (copy_from_user(&hypercall, udata, sizeof(hypercall))) in privcmd_ioctl_hypercall()
94 ret = privcmd_call(hypercall.op, in privcmd_ioctl_hypercall()
95 hypercall.arg[0], hypercall.arg[1], in privcmd_ioctl_hypercall()
96 hypercall.arg[2], hypercall.arg[3], in privcmd_ioctl_hypercall()
97 hypercall.arg[4]); in privcmd_ioctl_hypercall()
/linux-6.15/Documentation/translations/zh_CN/virt/acrn/
H A Dintroduction.rst40 +---------------------hypercall----------------------------------------+
/linux-6.15/Documentation/virt/acrn/
H A Dintroduction.rst29 +---------------------hypercall----------------------------------------+
/linux-6.15/arch/powerpc/platforms/ps3/
H A DKconfig91 bool "PS3 Verbose LV1 hypercall results" if PS3_ADVANCED
94 Enables more verbose log messages for LV1 hypercall results.
/linux-6.15/arch/arm64/kvm/
H A Dhypercalls.c259 run->hypercall = (typeof(run->hypercall)) { in kvm_prepare_hypercall_exit()
/linux-6.15/arch/x86/kvm/svm/
H A Dsev.c3615 if (vcpu->run->hypercall.ret) in snp_complete_psc_msr()
3640 vcpu->run->hypercall.nr = KVM_HC_MAP_GPA_RANGE; in snp_begin_psc_msr()
3647 vcpu->run->hypercall.ret = 0; in snp_begin_psc_msr()
3648 vcpu->run->hypercall.args[0] = gpa; in snp_begin_psc_msr()
3649 vcpu->run->hypercall.args[1] = 1; in snp_begin_psc_msr()
3709 if (vcpu->run->hypercall.ret) { in snp_complete_one_psc()
3817 vcpu->run->hypercall.nr = KVM_HC_MAP_GPA_RANGE; in snp_begin_psc()
3824 vcpu->run->hypercall.ret = 0; in snp_begin_psc()
3825 vcpu->run->hypercall.args[0] = gfn_to_gpa(gfn); in snp_begin_psc()
3826 vcpu->run->hypercall.args[1] = npages; in snp_begin_psc()
[all …]
/linux-6.15/arch/x86/kvm/vmx/
H A Dx86_ops.h89 void vmx_patch_hypercall(struct kvm_vcpu *vcpu, unsigned char *hypercall);

12