Lines Matching full:exit
53 int kvm_hv_handle_exit(X86CPU *cpu, struct kvm_hyperv_exit *exit) in kvm_hv_handle_exit() argument
57 switch (exit->type) { in kvm_hv_handle_exit()
63 switch (exit->u.synic.msr) { in kvm_hv_handle_exit()
65 env->msr_hv_synic_control = exit->u.synic.control; in kvm_hv_handle_exit()
68 env->msr_hv_synic_msg_page = exit->u.synic.msg_page; in kvm_hv_handle_exit()
71 env->msr_hv_synic_evt_page = exit->u.synic.evt_page; in kvm_hv_handle_exit()
87 uint16_t code = exit->u.hcall.input & 0xffff; in kvm_hv_handle_exit()
88 bool fast = exit->u.hcall.input & HV_HYPERCALL_FAST; in kvm_hv_handle_exit()
89 uint64_t in_param = exit->u.hcall.params[0]; in kvm_hv_handle_exit()
90 uint64_t out_param = exit->u.hcall.params[1]; in kvm_hv_handle_exit()
94 exit->u.hcall.result = hyperv_hcall_post_message(in_param, fast); in kvm_hv_handle_exit()
97 exit->u.hcall.result = hyperv_hcall_signal_event(in_param, fast); in kvm_hv_handle_exit()
100 exit->u.hcall.result = in kvm_hv_handle_exit()
104 exit->u.hcall.result = in kvm_hv_handle_exit()
108 exit->u.hcall.result = in kvm_hv_handle_exit()
112 exit->u.hcall.result = HV_STATUS_INVALID_HYPERCALL_CODE; in kvm_hv_handle_exit()
122 switch (exit->u.syndbg.msr) { in kvm_hv_handle_exit()
124 uint64_t control = exit->u.syndbg.control; in kvm_hv_handle_exit()
126 env->msr_hv_syndbg_send_page = exit->u.syndbg.send_page; in kvm_hv_handle_exit()
127 env->msr_hv_syndbg_recv_page = exit->u.syndbg.recv_page; in kvm_hv_handle_exit()
128 exit->u.syndbg.status = HV_STATUS_SUCCESS; in kvm_hv_handle_exit()
130 exit->u.syndbg.status = in kvm_hv_handle_exit()
134 exit->u.syndbg.status = in kvm_hv_handle_exit()
141 env->msr_hv_syndbg_pending_page = exit->u.syndbg.pending_page; in kvm_hv_handle_exit()