summary refs log tree commit diff stats
path: root/vl.c
diff options
context:
space:
mode:
Diffstat (limited to 'vl.c')
-rw-r--r--vl.c18
1 files changed, 8 insertions, 10 deletions
diff --git a/vl.c b/vl.c
index 909519ff83..1064fd117f 100644
--- a/vl.c
+++ b/vl.c
@@ -1724,7 +1724,7 @@ void qemu_system_guest_panicked(GuestPanicInformation *info)
     if (!no_shutdown) {
         qapi_event_send_guest_panicked(GUEST_PANIC_ACTION_POWEROFF,
                                        !!info, info, &error_abort);
-        qemu_system_shutdown_request();
+        qemu_system_shutdown_request(SHUTDOWN_CAUSE_GUEST_PANIC);
     }
 
     if (info) {
@@ -1741,13 +1741,12 @@ void qemu_system_guest_panicked(GuestPanicInformation *info)
     }
 }
 
-void qemu_system_reset_request(void)
+void qemu_system_reset_request(ShutdownCause reason)
 {
     if (no_reboot) {
-        /* TODO - add a parameter to allow callers to specify reason */
-        shutdown_requested = SHUTDOWN_CAUSE_HOST_ERROR;
+        shutdown_requested = reason;
     } else {
-        reset_requested = SHUTDOWN_CAUSE_HOST_ERROR;
+        reset_requested = reason;
     }
     cpu_stop_current();
     qemu_notify_event();
@@ -1818,12 +1817,11 @@ void qemu_system_killed(int signal, pid_t pid)
     qemu_notify_event();
 }
 
-void qemu_system_shutdown_request(void)
+void qemu_system_shutdown_request(ShutdownCause reason)
 {
-    trace_qemu_system_shutdown_request();
-    /* TODO - add a parameter to allow callers to specify reason */
-    replay_shutdown_request(SHUTDOWN_CAUSE_HOST_ERROR);
-    shutdown_requested = SHUTDOWN_CAUSE_HOST_ERROR;
+    trace_qemu_system_shutdown_request(reason);
+    replay_shutdown_request(reason);
+    shutdown_requested = reason;
     qemu_notify_event();
 }