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()
527 struct hcall_data *hcall; in guest_test_hcalls_access() local
538 hcall = addr_gva2hva(vm, hcall_params); in guest_test_hcalls_access()
554 hcall->control = 0xbeef; in guest_test_hcalls_access()
555 hcall->expect = HV_STATUS_INVALID_HYPERCALL_CODE; in guest_test_hcalls_access()
559 hcall->control = HVCALL_POST_MESSAGE; in guest_test_hcalls_access()
560 hcall->expect = HV_STATUS_ACCESS_DENIED; in guest_test_hcalls_access()
564 hcall->control = HVCALL_POST_MESSAGE; in guest_test_hcalls_access()
565 hcall->expect = HV_STATUS_INVALID_HYPERCALL_INPUT; in guest_test_hcalls_access()
569 hcall->control = HVCALL_SIGNAL_EVENT; in guest_test_hcalls_access()
570 hcall->expect = HV_STATUS_ACCESS_DENIED; in guest_test_hcalls_access()
574 hcall->control = HVCALL_SIGNAL_EVENT; in guest_test_hcalls_access()
575 hcall->expect = HV_STATUS_INVALID_HYPERCALL_INPUT; in guest_test_hcalls_access()
579 hcall->control = HVCALL_RESET_DEBUG_SESSION; in guest_test_hcalls_access()
580 hcall->expect = HV_STATUS_INVALID_HYPERCALL_CODE; in guest_test_hcalls_access()
584 hcall->control = HVCALL_RESET_DEBUG_SESSION; in guest_test_hcalls_access()
585 hcall->expect = HV_STATUS_ACCESS_DENIED; in guest_test_hcalls_access()
589 hcall->control = HVCALL_RESET_DEBUG_SESSION; in guest_test_hcalls_access()
590 hcall->expect = HV_STATUS_OPERATION_DENIED; in guest_test_hcalls_access()
594 hcall->control = HVCALL_FLUSH_VIRTUAL_ADDRESS_SPACE; in guest_test_hcalls_access()
595 hcall->expect = HV_STATUS_ACCESS_DENIED; in guest_test_hcalls_access()
599 hcall->control = HVCALL_FLUSH_VIRTUAL_ADDRESS_SPACE; in guest_test_hcalls_access()
600 hcall->expect = HV_STATUS_SUCCESS; in guest_test_hcalls_access()
603 hcall->control = HVCALL_FLUSH_VIRTUAL_ADDRESS_SPACE_EX; in guest_test_hcalls_access()
604 hcall->expect = HV_STATUS_ACCESS_DENIED; in guest_test_hcalls_access()
608 hcall->control = HVCALL_FLUSH_VIRTUAL_ADDRESS_SPACE_EX; in guest_test_hcalls_access()
609 hcall->expect = HV_STATUS_SUCCESS; in guest_test_hcalls_access()
613 hcall->control = HVCALL_SEND_IPI; in guest_test_hcalls_access()
614 hcall->expect = HV_STATUS_ACCESS_DENIED; in guest_test_hcalls_access()
618 hcall->control = HVCALL_SEND_IPI; in guest_test_hcalls_access()
619 hcall->expect = HV_STATUS_INVALID_HYPERCALL_INPUT; in guest_test_hcalls_access()
623 hcall->control = HVCALL_SEND_IPI_EX; in guest_test_hcalls_access()
624 hcall->expect = HV_STATUS_SUCCESS; in guest_test_hcalls_access()
628 hcall->control = HVCALL_NOTIFY_LONG_SPIN_WAIT; in guest_test_hcalls_access()
629 hcall->expect = HV_STATUS_ACCESS_DENIED; in guest_test_hcalls_access()
633 hcall->control = HVCALL_NOTIFY_LONG_SPIN_WAIT; in guest_test_hcalls_access()
634 hcall->expect = HV_STATUS_SUCCESS; in guest_test_hcalls_access()
638 hcall->control = HVCALL_FLUSH_VIRTUAL_ADDRESS_SPACE | HV_HYPERCALL_FAST_BIT; in guest_test_hcalls_access()
639 hcall->ud_expected = true; in guest_test_hcalls_access()
643 hcall->control = HVCALL_FLUSH_VIRTUAL_ADDRESS_SPACE | HV_HYPERCALL_FAST_BIT; in guest_test_hcalls_access()
644 hcall->ud_expected = false; in guest_test_hcalls_access()
645 hcall->expect = HV_STATUS_SUCCESS; in guest_test_hcalls_access()
648 hcall->control = HV_EXT_CALL_QUERY_CAPABILITIES; in guest_test_hcalls_access()
649 hcall->expect = HV_STATUS_ACCESS_DENIED; in guest_test_hcalls_access()
653 hcall->control = HV_EXT_CALL_QUERY_CAPABILITIES | HV_HYPERCALL_FAST_BIT; in guest_test_hcalls_access()
654 hcall->expect = HV_STATUS_INVALID_PARAMETER; in guest_test_hcalls_access()
665 pr_debug("Stage %d: testing hcall: 0x%lx\n", stage, hcall->control); in guest_test_hcalls_access()