diff options
author | Pavel Dovgalyuk <Pavel.Dovgaluk@ispras.ru> | 2015-09-17 19:25:13 +0300 |
---|---|---|
committer | Paolo Bonzini <pbonzini@redhat.com> | 2015-11-06 10:16:03 +0100 |
commit | 0194749ac4131e1bed8e166c5d5cf541678ef204 (patch) | |
tree | 61eb38b9a47dd0513233f0d5103092e393037e16 /replay | |
parent | 7615936ebf4e60c4565268a30df2356c841526f8 (diff) | |
download | qemu-0194749ac4131e1bed8e166c5d5cf541678ef204.zip qemu-0194749ac4131e1bed8e166c5d5cf541678ef204.tar.gz qemu-0194749ac4131e1bed8e166c5d5cf541678ef204.tar.bz2 |
replay: replay blockers for devices
Some devices are not supported by record/replay subsystem.
This patch introduces replay blocker which denies starting record/replay
if such devices are included into the configuration.
Signed-off-by: Pavel Dovgalyuk <pavel.dovgaluk@ispras.ru>
Message-Id: <20150917162512.8676.11367.stgit@PASHA-ISP.def.inno>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Pavel Dovgalyuk <Pavel.Dovgaluk@ispras.ru>
Diffstat (limited to 'replay')
-rw-r--r-- | replay/replay.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/replay/replay.c b/replay/replay.c index 7edeffc..1373346 100644 --- a/replay/replay.c +++ b/replay/replay.c @@ -28,6 +28,7 @@ ReplayMode replay_mode = REPLAY_MODE_NONE; /* Name of replay file */ static char *replay_filename; ReplayState replay_state; +static GSList *replay_blockers; bool replay_next_event_is(int event) { @@ -289,6 +290,12 @@ void replay_start(void) return; } + if (replay_blockers) { + error_report("Record/replay: %s", + error_get_pretty(replay_blockers->data)); + exit(1); + } + /* Timer for snapshotting will be set up here. */ replay_enable_events(); @@ -324,3 +331,8 @@ void replay_finish(void) replay_finish_events(); replay_mutex_destroy(); } + +void replay_add_blocker(Error *reason) +{ + replay_blockers = g_slist_prepend(replay_blockers, reason); +} |