Lines Matching full:exit

54 int kvm_hv_handle_exit(X86CPU *cpu, struct kvm_hyperv_exit *exit)  in kvm_hv_handle_exit()  argument
58 switch (exit->type) { in kvm_hv_handle_exit()
64 switch (exit->u.synic.msr) { in kvm_hv_handle_exit()
66 env->msr_hv_synic_control = exit->u.synic.control; in kvm_hv_handle_exit()
69 env->msr_hv_synic_msg_page = exit->u.synic.msg_page; in kvm_hv_handle_exit()
72 env->msr_hv_synic_evt_page = exit->u.synic.evt_page; in kvm_hv_handle_exit()
88 uint16_t code = exit->u.hcall.input & 0xffff; in kvm_hv_handle_exit()
89 bool fast = exit->u.hcall.input & HV_HYPERCALL_FAST; in kvm_hv_handle_exit()
90 uint64_t in_param = exit->u.hcall.params[0]; in kvm_hv_handle_exit()
91 uint64_t out_param = exit->u.hcall.params[1]; in kvm_hv_handle_exit()
95 exit->u.hcall.result = hyperv_hcall_post_message(in_param, fast); in kvm_hv_handle_exit()
98 exit->u.hcall.result = hyperv_hcall_signal_event(in_param, fast); in kvm_hv_handle_exit()
101 exit->u.hcall.result = in kvm_hv_handle_exit()
105 exit->u.hcall.result = in kvm_hv_handle_exit()
109 exit->u.hcall.result = in kvm_hv_handle_exit()
113 exit->u.hcall.result = HV_STATUS_INVALID_HYPERCALL_CODE; in kvm_hv_handle_exit()
123 switch (exit->u.syndbg.msr) { in kvm_hv_handle_exit()
125 uint64_t control = exit->u.syndbg.control; in kvm_hv_handle_exit()
127 env->msr_hv_syndbg_send_page = exit->u.syndbg.send_page; in kvm_hv_handle_exit()
128 env->msr_hv_syndbg_recv_page = exit->u.syndbg.recv_page; in kvm_hv_handle_exit()
129 exit->u.syndbg.status = HV_STATUS_SUCCESS; in kvm_hv_handle_exit()
131 exit->u.syndbg.status = in kvm_hv_handle_exit()
135 exit->u.syndbg.status = in kvm_hv_handle_exit()
142 env->msr_hv_syndbg_pending_page = exit->u.syndbg.pending_page; in kvm_hv_handle_exit()