/kernel/linux/linux-6.6/tools/testing/selftests/kvm/include/ |
H A D | ucall_common.h | 8 #include "ucall.h" 23 struct ucall { struct 29 struct ucall *hva; 36 void ucall(uint64_t cmd, int nargs, ...); 40 uint64_t get_ucall(struct kvm_vcpu *vcpu, struct ucall *uc); 46 * allocating a ucall struct, which can be useful if the atomic operations in 47 * the full ucall() are problematic and/or unwanted. Note, this will come out 53 ucall(UCALL_SYNC, 6, "hello", stage, arg1, arg2, arg3, arg4) 54 #define GUEST_SYNC(stage) ucall(UCALL_SYNC, 2, "hello", stage) 56 #define GUEST_DONE() ucall(UCALL_DON [all...] |
/kernel/linux/linux-5.10/tools/testing/selftests/kvm/lib/s390x/ |
H A D | ucall.c | 3 * ucall support. A ucall is a "hypercall to userspace". 17 void ucall(uint64_t cmd, int nargs, ...) in ucall() function 19 struct ucall uc = { in ucall() 36 uint64_t get_ucall(struct kvm_vm *vm, uint32_t vcpu_id, struct ucall *uc) in get_ucall() 39 struct ucall ucall = {}; in get_ucall() local 50 memcpy(&ucall, addr_gva2hva(vm, run->s.regs.gprs[reg]), in get_ucall() 51 sizeof(ucall)); in get_ucall() 55 memcpy(uc, &ucall, sizeo in get_ucall() [all...] |
/kernel/linux/linux-5.10/tools/testing/selftests/kvm/lib/x86_64/ |
H A D | ucall.c | 3 * ucall support. A ucall is a "hypercall to userspace". 19 void ucall(uint64_t cmd, int nargs, ...) in ucall() function 21 struct ucall uc = { in ucall() 38 uint64_t get_ucall(struct kvm_vm *vm, uint32_t vcpu_id, struct ucall *uc) in get_ucall() 41 struct ucall ucall = {}; in get_ucall() local 50 memcpy(&ucall, addr_gva2hva(vm, (vm_vaddr_t)regs.rdi), in get_ucall() 51 sizeof(ucall)); in get_ucall() 55 memcpy(uc, &ucall, sizeo in get_ucall() [all...] |
/kernel/linux/linux-6.6/tools/testing/selftests/kvm/lib/ |
H A D | ucall_common.c | 11 struct ucall ucalls[KVM_MAX_VCPUS]; 28 struct ucall *uc; in ucall_init() 46 static struct ucall *ucall_alloc(void) in ucall_alloc() 48 struct ucall *uc; in ucall_alloc() 64 * If the vCPU cannot grab a ucall structure, make a bare ucall with a in ucall_alloc() 72 static void ucall_free(struct ucall *uc) in ucall_free() 81 struct ucall *uc; in ucall_assert() 102 struct ucall *uc; in ucall_fmt() 117 void ucall(uint64_ function 141 struct ucall ucall; get_ucall() local [all...] |
/kernel/linux/linux-5.10/tools/testing/selftests/kvm/lib/aarch64/ |
H A D | ucall.c | 3 * ucall support. A ucall is a "hypercall to userspace". 34 TEST_ASSERT(ret, "Can't set ucall mmio address to %lx", gpa); in ucall_init() 65 TEST_FAIL("Can't find a ucall mmio address"); in ucall_init() 74 void ucall(uint64_t cmd, int nargs, ...) in ucall() function 76 struct ucall uc = {}; in ucall() 91 uint64_t get_ucall(struct kvm_vm *vm, uint32_t vcpu_id, struct ucall *uc) in get_ucall() 94 struct ucall ucall = {}; in get_ucall() local 104 "Unexpected ucall exi in get_ucall() [all...] |
/kernel/linux/linux-5.10/tools/testing/selftests/kvm/x86_64/ |
H A D | kvm_pv_test.c | 71 #define PR_MSR(msr) ucall(UCALL_PR_MSR, 1, msr) 109 #define PR_HCALL(hc) ucall(UCALL_PR_HCALL, 1, hc) 154 static void pr_msr(struct ucall *uc) in pr_msr() 161 static void pr_hcall(struct ucall *uc) in pr_hcall() 168 static void handle_abort(struct ucall *uc) in handle_abort() 179 struct ucall uc; in enter_guest()
|
H A D | tsc_msrs_test.c | 25 ucall(UCALL_ABORT, 4, \ 80 struct ucall uc; in run_vcpu()
|
H A D | svm_vmcall_test.c | 54 struct ucall uc; in main() 71 TEST_FAIL("Unknown ucall 0x%lx.", uc.cmd); in main()
|
H A D | vmx_close_while_nested_test.c | 68 struct ucall uc; in main() 84 TEST_FAIL("Unknown ucall %lu", uc.cmd); in main()
|
/kernel/linux/linux-6.6/tools/testing/selftests/kvm/x86_64/ |
H A D | kvm_pv_test.c | 22 #define PR_MSR(msr) ucall(UCALL_PR_MSR, 1, msr) 62 #define PR_HCALL(hc) ucall(UCALL_PR_HCALL, 1, hc) 98 static void pr_msr(struct ucall *uc) in pr_msr() 105 static void pr_hcall(struct ucall *uc) in pr_hcall() 114 struct ucall uc; in enter_guest()
|
H A D | kvm_clock_test.c | 52 static void handle_sync(struct ucall *uc, struct kvm_clock_data *start, in handle_sync() 72 static void handle_abort(struct ucall *uc) in handle_abort() 109 struct ucall uc; in enter_guest() 130 TEST_ASSERT(0, "unhandled ucall: %ld\n", uc.cmd); in enter_guest()
|
H A D | vmx_nested_tsc_scaling_test.c | 27 #define GUEST_SLEEP(sec) ucall(UCALL_SYNC, 2, USLEEP, sec) 28 #define GUEST_CHECK(level, freq) ucall(UCALL_SYNC, 2, level, freq) 182 struct ucall uc; in main() 216 TEST_FAIL("Unknown ucall %lu", uc.cmd); in main()
|
H A D | cr4_cpuid_sync_test.c | 55 struct ucall uc; in main() 78 TEST_FAIL("Unknown ucall %lu", uc.cmd); in main()
|
H A D | svm_vmcall_test.c | 50 struct ucall uc; in main() 64 TEST_FAIL("Unknown ucall 0x%lx.", uc.cmd); in main()
|
H A D | vmx_close_while_nested_test.c | 64 struct ucall uc; in main() 77 TEST_FAIL("Unknown ucall %lu", uc.cmd); in main()
|
H A D | ucna_injection_test.c | 140 struct ucall uc; in run_vcpu_expect_gp() 178 struct ucall uc; in run_ucna_injection()
|
H A D | platform_info_test.c | 39 struct ucall uc; in test_msr_platform_info_enabled() 47 "Received ucall other than UCALL_SYNC: %lu\n", uc.cmd); in test_msr_platform_info_enabled()
|
H A D | vmx_invalid_nested_guest_state.c | 59 struct ucall uc; in main() 101 TEST_FAIL("Unexpected ucall: %lu", uc.cmd); in main()
|
H A D | userspace_msr_exit_test.c | 399 struct ucall uc; in check_for_guest_assert() 469 struct ucall uc; in process_ucall_done() 476 "Unexpected ucall command: %lu, expected UCALL_DONE (%d)", in process_ucall_done() 482 struct ucall uc = {}; in process_ucall() 498 TEST_ASSERT(false, "Unexpected ucall"); in process_ucall() 594 struct ucall uc; in handle_ucall() 606 TEST_FAIL("Unknown ucall %lu", uc.cmd); in handle_ucall() 714 "Expected ucall state to be UCALL_SYNC."); in test_msr_permission_bitmap()
|
/kernel/linux/linux-5.10/tools/testing/selftests/kvm/include/ |
H A D | kvm_util.h | 312 struct ucall { struct 319 void ucall(uint64_t cmd, int nargs, ...); 320 uint64_t get_ucall(struct kvm_vm *vm, uint32_t vcpu_id, struct ucall *uc); 323 ucall(UCALL_SYNC, 6, "hello", stage, arg1, arg2, arg3, arg4) 324 #define GUEST_SYNC(stage) ucall(UCALL_SYNC, 2, "hello", stage) 325 #define GUEST_DONE() ucall(UCALL_DONE, 0) 328 ucall(UCALL_ABORT, 2 + _nargs, \
|
/kernel/linux/linux-6.6/tools/testing/selftests/kvm/ |
H A D | system_counter_offset_test.c | 72 static void handle_sync(struct ucall *uc, uint64_t start, uint64_t end) in handle_sync() 84 static void handle_abort(struct ucall *uc) in handle_abort() 92 struct ucall uc; in enter_guest() 111 TEST_ASSERT(0, "unhandled ucall %ld\n", in enter_guest()
|
H A D | Makefile | 41 LIBKVM_x86_64 += lib/x86_64/ucall.c 49 LIBKVM_aarch64 += lib/aarch64/ucall.c 54 LIBKVM_s390x += lib/s390x/ucall.c 57 LIBKVM_riscv += lib/riscv/ucall.c
|
H A D | guest_print_test.c | 113 struct ucall uc; in run_test() 137 TEST_FAIL("Unknown ucall %lu", uc.cmd); in run_test() 157 struct ucall uc; in test_limits() 168 "Unexpected ucall command: %lu, Expected: %u (UCALL_ABORT)\n", in test_limits()
|
/kernel/linux/linux-5.10/tools/testing/selftests/kvm/ |
H A D | Makefile | 37 LIBKVM_x86_64 = lib/x86_64/processor.c lib/x86_64/vmx.c lib/x86_64/svm.c lib/x86_64/ucall.c lib/x86_64/handlers.S 38 LIBKVM_aarch64 = lib/aarch64/processor.c lib/aarch64/ucall.c 39 LIBKVM_s390x = lib/s390x/processor.c lib/s390x/ucall.c
|
/kernel/linux/linux-6.6/tools/testing/selftests/kvm/aarch64/ |
H A D | psci_test.c | 94 struct ucall uc; in enter_guest() 137 struct ucall uc; in host_test_cpu_on() 151 TEST_FAIL("Unhandled ucall: %lu", uc.cmd); in host_test_cpu_on()
|