Lines Matching refs:hcall

85 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()
560 hcall->control = 0xbeef; in guest_test_hcalls_access()
561 hcall->expect = HV_STATUS_INVALID_HYPERCALL_CODE; in guest_test_hcalls_access()
565 hcall->control = HVCALL_POST_MESSAGE; in guest_test_hcalls_access()
566 hcall->expect = HV_STATUS_ACCESS_DENIED; in guest_test_hcalls_access()
570 hcall->control = HVCALL_POST_MESSAGE; in guest_test_hcalls_access()
571 hcall->expect = HV_STATUS_INVALID_HYPERCALL_INPUT; in guest_test_hcalls_access()
575 hcall->control = HVCALL_SIGNAL_EVENT; in guest_test_hcalls_access()
576 hcall->expect = HV_STATUS_ACCESS_DENIED; in guest_test_hcalls_access()
580 hcall->control = HVCALL_SIGNAL_EVENT; in guest_test_hcalls_access()
581 hcall->expect = HV_STATUS_INVALID_HYPERCALL_INPUT; in guest_test_hcalls_access()
585 hcall->control = HVCALL_RESET_DEBUG_SESSION; in guest_test_hcalls_access()
586 hcall->expect = HV_STATUS_INVALID_HYPERCALL_CODE; in guest_test_hcalls_access()
590 hcall->control = HVCALL_RESET_DEBUG_SESSION; in guest_test_hcalls_access()
591 hcall->expect = HV_STATUS_ACCESS_DENIED; in guest_test_hcalls_access()
595 hcall->control = HVCALL_RESET_DEBUG_SESSION; in guest_test_hcalls_access()
596 hcall->expect = HV_STATUS_OPERATION_DENIED; in guest_test_hcalls_access()
600 hcall->control = HVCALL_FLUSH_VIRTUAL_ADDRESS_SPACE; in guest_test_hcalls_access()
601 hcall->expect = HV_STATUS_ACCESS_DENIED; in guest_test_hcalls_access()
605 hcall->control = HVCALL_FLUSH_VIRTUAL_ADDRESS_SPACE; in guest_test_hcalls_access()
606 hcall->expect = HV_STATUS_SUCCESS; in guest_test_hcalls_access()
609 hcall->control = HVCALL_FLUSH_VIRTUAL_ADDRESS_SPACE_EX; in guest_test_hcalls_access()
610 hcall->expect = HV_STATUS_ACCESS_DENIED; in guest_test_hcalls_access()
614 hcall->control = HVCALL_FLUSH_VIRTUAL_ADDRESS_SPACE_EX; in guest_test_hcalls_access()
615 hcall->expect = HV_STATUS_SUCCESS; in guest_test_hcalls_access()
619 hcall->control = HVCALL_SEND_IPI; in guest_test_hcalls_access()
620 hcall->expect = HV_STATUS_ACCESS_DENIED; in guest_test_hcalls_access()
624 hcall->control = HVCALL_SEND_IPI; in guest_test_hcalls_access()
625 hcall->expect = HV_STATUS_INVALID_HYPERCALL_INPUT; in guest_test_hcalls_access()
629 hcall->control = HVCALL_SEND_IPI_EX; in guest_test_hcalls_access()
630 hcall->expect = HV_STATUS_SUCCESS; in guest_test_hcalls_access()
634 hcall->control = HVCALL_NOTIFY_LONG_SPIN_WAIT; in guest_test_hcalls_access()
635 hcall->expect = HV_STATUS_ACCESS_DENIED; in guest_test_hcalls_access()
639 hcall->control = HVCALL_NOTIFY_LONG_SPIN_WAIT; in guest_test_hcalls_access()
640 hcall->expect = HV_STATUS_SUCCESS; in guest_test_hcalls_access()
644 hcall->control = HVCALL_FLUSH_VIRTUAL_ADDRESS_SPACE | HV_HYPERCALL_FAST_BIT; in guest_test_hcalls_access()
645 hcall->ud_expected = true; in guest_test_hcalls_access()
649 hcall->control = HVCALL_FLUSH_VIRTUAL_ADDRESS_SPACE | HV_HYPERCALL_FAST_BIT; in guest_test_hcalls_access()
650 hcall->ud_expected = false; in guest_test_hcalls_access()
651 hcall->expect = HV_STATUS_SUCCESS; in guest_test_hcalls_access()
654 hcall->control = HV_EXT_CALL_QUERY_CAPABILITIES; in guest_test_hcalls_access()
655 hcall->expect = HV_STATUS_ACCESS_DENIED; in guest_test_hcalls_access()
659 hcall->control = HV_EXT_CALL_QUERY_CAPABILITIES | HV_HYPERCALL_FAST_BIT; in guest_test_hcalls_access()
660 hcall->expect = HV_STATUS_INVALID_PARAMETER; in guest_test_hcalls_access()
671 pr_debug("Stage %d: testing hcall: 0x%lx\n", stage, hcall->control); in guest_test_hcalls_access()