X-Git-Url: http://v3vee.org/palacios/gitweb/gitweb.cgi?a=blobdiff_plain;f=palacios%2Fsrc%2Fpalacios%2Fsvm_handler.c;h=701619795b04abffd8bf350b3b76eefd949fec8b;hb=bdbff6b6e5f78f5a1689f5d77814196ee2e4f6cb;hp=171d2b521a3d2f7b5aa8daf17fa5dd896c77d6dc;hpb=69982930e8a2c0e44aeae5a95497fb896dad3da3;p=palacios.git diff --git a/palacios/src/palacios/svm_handler.c b/palacios/src/palacios/svm_handler.c index 171d2b5..7016197 100644 --- a/palacios/src/palacios/svm_handler.c +++ b/palacios/src/palacios/svm_handler.c @@ -264,6 +264,14 @@ int v3_handle_svm_exit(struct guest_info * info, addr_t exit_code, addr_t exit_i return -1; } break; + case VMEXIT_SHUTDOWN: + PrintDebug("Guest-initiated shutdown\n"); + + info->vm_info->run_state = VM_STOPPED; + + // Force exit on other cores + + break; /* Exits Following this line are NOT HANDLED */ @@ -273,7 +281,7 @@ int v3_handle_svm_exit(struct guest_info * info, addr_t exit_code, addr_t exit_i addr_t rip_addr; - PrintDebug("Unhandled SVM Exit: %s\n", vmexit_code_to_str(exit_code)); + PrintError("Unhandled SVM Exit: %s\n", vmexit_code_to_str(exit_code)); rip_addr = get_addr_linear(info, info->rip, &(info->segments.cs));