| /linux/arch/arm/xen/ |
| H A D | hypercall.S | 57 #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 D | Makefile | 2 obj-y := enlighten.o hypercall.o grant-table.o p2m.o mm.o
|
| /linux/Documentation/virt/kvm/x86/ |
| H A D | hypercalls.rst | 13 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 D | cpuid.rst | 100 using the map gpa range hypercall
|
| /linux/Documentation/virt/kvm/loongarch/ |
| H A D | hypercalls.rst | 7 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 D | private_mem_conversions_test.c | 292 gpa_t gpa = run->hypercall.args[0]; in handle_exit_hypercall() 293 u64 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 D | ppc-pv.rst | 35 '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 …]
|
| H A D | api.rst | 999 Sets the MSR that the Xen HVM guest uses to initialize its hypercall 1000 page, and provides the starting address and size of the hypercall 1025 the contents of the hypercall page automatically; hypercalls will be 1033 such as intercepting the SCHEDOP_poll hypercall to accelerate PV 1874 The hcall array defines 4 instructions that make up a hypercall. 2701 The bitmap feature firmware registers exposes the hypercall services that 4468 implementing the H_RESIZE_HPT_PREPARE hypercall. 4525 H_RESIZE_HPT_COMMIT hypercall. 4810 H_GET_CPU_CHARACTERISTICS hypercall. 4876 the specified Hyper-V connection id through the SIGNAL_EVENT hypercall, without [all …]
|
| /linux/tools/testing/selftests/kvm/arm64/ |
| H A D | smccc_filter.c | 227 TEST_ASSERT(run->hypercall.nr == func_id, in expect_call_fwd_to_user() 228 "Unexpected SMCCC function: %llu", run->hypercall.nr); in expect_call_fwd_to_user() 231 TEST_ASSERT(run->hypercall.flags & KVM_HYPERCALL_EXIT_SMC, in expect_call_fwd_to_user() 234 TEST_ASSERT(!(run->hypercall.flags & KVM_HYPERCALL_EXIT_SMC), in expect_call_fwd_to_user()
|
| /linux/Documentation/arch/powerpc/ |
| H A D | ultravisor.rst | 173 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 D | hyp-abi.rst | 59 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 D | pvtime.rst | 22 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 D | ptp_kvm.rst | 8 host to the guest using a KVM-specific hypercall.
|
| /linux/arch/x86/hyperv/ |
| H A D | ivm.c | 65 } hypercall; member 95 hv_ghcb->hypercall.outputgpa = (u64)output; in hv_ghcb_hypercall() 96 hv_ghcb->hypercall.hypercallinput.asuint64 = 0; in hv_ghcb_hypercall() 97 hv_ghcb->hypercall.hypercallinput.callcode = control; in hv_ghcb_hypercall() 100 memcpy(hv_ghcb->hypercall.hypercalldata, input, input_size); in hv_ghcb_hypercall() 108 status = hv_ghcb->hypercall.hypercalloutput.callstatus; in hv_ghcb_hypercall()
|
| /linux/arch/arm64/xen/ |
| H A D | Makefile | 3 obj-y := xen-arm.o hypercall.o
|
| /linux/Documentation/translations/zh_CN/virt/acrn/ |
| H A D | introduction.rst | 40 +---------------------hypercall----------------------------------------+
|
| /linux/Documentation/virt/acrn/ |
| H A D | introduction.rst | 29 +---------------------hypercall----------------------------------------+
|
| /linux/arch/powerpc/platforms/ps3/ |
| H A D | Kconfig | 91 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 D | sev.c | 3728 u64 hypercall_ret = READ_ONCE(vcpu->run->hypercall.ret); in snp_complete_psc_msr() 3759 vcpu->run->hypercall.nr = KVM_HC_MAP_GPA_RANGE; in snp_begin_psc_msr() 3766 vcpu->run->hypercall.ret = 0; in snp_begin_psc_msr() 3767 vcpu->run->hypercall.args[0] = gpa; in snp_begin_psc_msr() 3768 vcpu->run->hypercall.args[1] = 1; in snp_begin_psc_msr() 3769 vcpu->run->hypercall.args[2] = (op == SNP_PAGE_STATE_PRIVATE) in snp_begin_psc_msr() 3772 vcpu->run->hypercall.args[2] |= KVM_MAP_GPA_RANGE_PAGE_SZ_4K; in snp_begin_psc_msr() 3823 u64 hypercall_ret = READ_ONCE(vcpu->run->hypercall.ret); in snp_complete_one_psc() 3927 vcpu->run->hypercall.nr = KVM_HC_MAP_GPA_RANGE; in snp_do_psc() 3934 vcpu->run->hypercall.ret = 0; in snp_do_psc() [all …]
|
| /linux/arch/x86/kvm/vmx/ |
| H A D | tdx.c | 1156 tdvmcall_set_return_code(vcpu, vcpu->run->hypercall.ret); in complete_hypercall_exit() 1181 u64 hypercall_ret = READ_ONCE(vcpu->run->hypercall.ret); in tdx_complete_vmcall_map_gpa() 1231 tdx->vcpu.run->hypercall.nr = KVM_HC_MAP_GPA_RANGE; in __tdx_map_gpa() 1238 tdx->vcpu.run->hypercall.ret = 0; in __tdx_map_gpa() 1239 tdx->vcpu.run->hypercall.args[0] = gpa & ~gfn_to_gpa(kvm_gfn_direct_bits(tdx->vcpu.kvm)); in __tdx_map_gpa() 1240 tdx->vcpu.run->hypercall.args[1] = size / PAGE_SIZE; in __tdx_map_gpa() 1241 tdx->vcpu.run->hypercall.args[2] = vt_is_tdx_private_gpa(tdx->vcpu.kvm, gpa) ? in __tdx_map_gpa() 1244 tdx->vcpu.run->hypercall.flags = KVM_EXIT_HYPERCALL_LONG_MODE; in __tdx_map_gpa()
|
| H A D | x86_ops.h | 89 void vmx_patch_hypercall(struct kvm_vcpu *vcpu, unsigned char *hypercall);
|
| H A D | main.c | 633 unsigned char *hypercall) in vt_patch_hypercall() argument 642 vmx_patch_hypercall(vcpu, hypercall); in vt_patch_hypercall()
|
| /linux/Documentation/virt/hyperv/ |
| H A D | vpci.rst | 200 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
|
| H A D | coco.rst | 165 hypervisor. These hypercall sites test for a paravisor being present, and use 184 * Per-cpu hypercall input and output pages (unless running with a paravisor) 230 emulate the access. So in a CoCo VM, these functions must make a hypercall
|
| /linux/drivers/hv/ |
| H A D | mshv_vtl_main.c | 592 goto hypercall; in mshv_vtl_get_set_reg() 607 hypercall: in mshv_vtl_get_set_reg()
|