Home
last modified time | relevance | path

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

12

/linux/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/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.
18 R2-R7 are used for parameters 1-6. In addition, R1 is used for hypercall
21 S390 uses diagnose instruction as hypercall (0x500) along with hypercall
28 It uses R3-R10 and hypercall number in R11. R4-R11 are used as output registers.
31 KVM hypercalls uses 4 byte opcode, that are patched with 'hypercall-instructions'
36 KVM hypercalls use the HYPCALL instruction with code 0 and the hypercall
43 The template for each hypercall is:
70 :Purpose: Expose hypercall availability to the guest. On x86 platforms, cpuid
73 OR KVM specific enumeration mechanism (which is this hypercall)
[all …]
H A Dcpuid.rst100 using the map gpa range hypercall
/linux/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/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/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/Documentation/arch/powerpc/
H A Dultravisor.rst173 registers not needed for the hypercall then reflects the call to
174 the hypervisor for processing. The H_RANDOM hypercall is performed
323 ``H_SVM_PAGE_OUT`` hypercall to the Hypervisor. The Hypervisor will
510 processing an hypercall or interrupt that was forwarded (aka
529 When an SVM makes an hypercall or incurs some other exception, the
537 * If returning from an hypercall, register R0 contains the return
539 contain any output values of the hypercall.
548 the SVM such as processing hypercall and other exceptions. After
864 additional parameters to the hypercall, if any. On output, register
866 other output values from the hypercall.
[all …]
/linux/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 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/arch/x86/hyperv/
H A Divm.c64 } hypercall; member
94 hv_ghcb->hypercall.outputgpa = (u64)output; in hv_ghcb_hypercall()
95 hv_ghcb->hypercall.hypercallinput.asuint64 = 0; in hv_ghcb_hypercall()
96 hv_ghcb->hypercall.hypercallinput.callcode = control; in hv_ghcb_hypercall()
99 memcpy(hv_ghcb->hypercall.hypercalldata, input, input_size); in hv_ghcb_hypercall()
107 status = hv_ghcb->hypercall.hypercalloutput.callstatus; in hv_ghcb_hypercall()
/linux/arch/arm64/xen/
H A DMakefile3 obj-y := xen-arm.o hypercall.o
/linux/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/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()
H A DKconfig263 tristate "Xen hypercall passthrough driver"
267 The hypercall passthrough driver allows privileged user programs to
/linux/Documentation/translations/zh_CN/virt/acrn/
H A Dintroduction.rst40 +---------------------hypercall----------------------------------------+
/linux/Documentation/virt/acrn/
H A Dintroduction.rst29 +---------------------hypercall----------------------------------------+
/linux/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/arch/x86/kvm/svm/
H A Dsev.c3727 if (vcpu->run->hypercall.ret) in snp_complete_psc_msr()
3752 vcpu->run->hypercall.nr = KVM_HC_MAP_GPA_RANGE; in snp_begin_psc_msr()
3759 vcpu->run->hypercall.ret = 0; in snp_begin_psc_msr()
3760 vcpu->run->hypercall.args[0] = gpa; in snp_begin_psc_msr()
3761 vcpu->run->hypercall.args[1] = 1; in snp_begin_psc_msr()
3762 vcpu->run->hypercall.args[2] = (op == SNP_PAGE_STATE_PRIVATE) in snp_begin_psc_msr()
3765 vcpu->run->hypercall.args[2] |= KVM_MAP_GPA_RANGE_PAGE_SZ_4K; in snp_begin_psc_msr()
3821 if (vcpu->run->hypercall.ret) { in snp_complete_one_psc()
3929 vcpu->run->hypercall.nr = KVM_HC_MAP_GPA_RANGE; in snp_begin_psc()
3936 vcpu->run->hypercall.ret = 0; in snp_begin_psc()
[all …]
/linux/arch/x86/kvm/vmx/
H A Dtdx.c1164 tdvmcall_set_return_code(vcpu, vcpu->run->hypercall.ret); in complete_hypercall_exit()
1191 if (vcpu->run->hypercall.ret) { in tdx_complete_vmcall_map_gpa()
1225 tdx->vcpu.run->hypercall.nr = KVM_HC_MAP_GPA_RANGE; in __tdx_map_gpa()
1232 tdx->vcpu.run->hypercall.ret = 0; in __tdx_map_gpa()
1233 tdx->vcpu.run->hypercall.args[0] = gpa & ~gfn_to_gpa(kvm_gfn_direct_bits(tdx->vcpu.kvm)); in __tdx_map_gpa()
1234 tdx->vcpu.run->hypercall.args[1] = size / PAGE_SIZE; in __tdx_map_gpa()
1235 tdx->vcpu.run->hypercall.args[2] = vt_is_tdx_private_gpa(tdx->vcpu.kvm, gpa) ? in __tdx_map_gpa()
1238 tdx->vcpu.run->hypercall.flags = KVM_EXIT_HYPERCALL_LONG_MODE; in __tdx_map_gpa()
H A Dx86_ops.h88 void vmx_patch_hypercall(struct kvm_vcpu *vcpu, unsigned char *hypercall);
H A Dmain.c628 unsigned char *hypercall) in vt_patch_hypercall() argument
637 vmx_patch_hypercall(vcpu, hypercall); in vt_patch_hypercall()
/linux/Documentation/virt/hyperv/
H A Dvpci.rst200 virtual PCI driver in the guest must make a hypercall to tell
204 hypercall is made by hv_arch_irq_unmask(). On arm64, the
208 which Hyper-V emulates, so no hypercall is necessary as with
/linux/drivers/hv/
H A Dmshv_vtl_main.c585 goto hypercall; in mshv_vtl_get_set_reg()
600 hypercall: in mshv_vtl_get_set_reg()

12