summary refs log tree commit diff stats
path: root/replay/replay.c
diff options
context:
space:
mode:
Diffstat (limited to 'replay/replay.c')
-rw-r--r--replay/replay.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/replay/replay.c b/replay/replay.c
index f810628cac..ff58a5adf9 100644
--- a/replay/replay.c
+++ b/replay/replay.c
@@ -49,9 +49,10 @@ bool replay_next_event_is(int event)
             res = true;
         }
         switch (replay_state.data_kind) {
-        case EVENT_SHUTDOWN:
+        case EVENT_SHUTDOWN ... EVENT_SHUTDOWN_LAST:
             replay_finish_event();
-            qemu_system_shutdown_request();
+            qemu_system_shutdown_request(replay_state.data_kind -
+                                         EVENT_SHUTDOWN);
             break;
         default:
             /* clock, time_t, checkpoint and other events */
@@ -170,11 +171,11 @@ bool replay_has_interrupt(void)
     return res;
 }
 
-void replay_shutdown_request(void)
+void replay_shutdown_request(ShutdownCause cause)
 {
     if (replay_mode == REPLAY_MODE_RECORD) {
         replay_mutex_lock();
-        replay_put_event(EVENT_SHUTDOWN);
+        replay_put_event(EVENT_SHUTDOWN + cause);
         replay_mutex_unlock();
     }
 }