aboutsummaryrefslogtreecommitdiff
path: root/qapi
diff options
context:
space:
mode:
authorPavel Dovgalyuk <Pavel.Dovgaluk@ispras.ru>2020-10-03 20:13:20 +0300
committerPaolo Bonzini <pbonzini@redhat.com>2020-10-06 08:34:49 +0200
commite3b09ad2b6e9b23ebc7c2ba133e8a22e53dec301 (patch)
tree94ae7e34cbfceefdc1e9a603872f280bc59ed005 /qapi
parent43d7e1d782e7bab6548eb7e143a75122c8ba96c3 (diff)
downloadqemu-e3b09ad2b6e9b23ebc7c2ba133e8a22e53dec301.zip
qemu-e3b09ad2b6e9b23ebc7c2ba133e8a22e53dec301.tar.gz
qemu-e3b09ad2b6e9b23ebc7c2ba133e8a22e53dec301.tar.bz2
replay: introduce info hmp/qmp command
This patch introduces 'info replay' monitor command and corresponding qmp request. These commands request the current record/replay mode, replay log file name, and the instruction count (number of recorded/replayed instructions). The instruction count can be used with the replay_seek/replay_break commands added in the next two patches. Signed-off-by: Pavel Dovgalyuk <Pavel.Dovgalyuk@ispras.ru> Acked-by: Dr. David Alan Gilbert <dgilbert@redhat.com> Acked-by: Markus Armbruster <armbru@redhat.com> Message-Id: <160174520026.12451.13112161947433306561.stgit@pasha-ThinkPad-X280> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Diffstat (limited to 'qapi')
-rw-r--r--qapi/block-core.json3
-rw-r--r--qapi/replay.json39
2 files changed, 41 insertions, 1 deletions
diff --git a/qapi/block-core.json b/qapi/block-core.json
index fdc2e5c..3758ea9 100644
--- a/qapi/block-core.json
+++ b/qapi/block-core.json
@@ -29,7 +29,8 @@
#
# @icount: Current instruction count. Appears when execution record/replay
# is enabled. Used for "time-traveling" to match the moment
-# in the recorded execution with the snapshots. (since 5.2)
+# in the recorded execution with the snapshots. This counter may
+# be obtained through @query-replay command (since 5.2)
#
# Since: 1.3
#
diff --git a/qapi/replay.json b/qapi/replay.json
index 9e13551..e6b3f60 100644
--- a/qapi/replay.json
+++ b/qapi/replay.json
@@ -24,3 +24,42 @@
##
{ 'enum': 'ReplayMode',
'data': [ 'none', 'record', 'play' ] }
+
+##
+# @ReplayInfo:
+#
+# Record/replay information.
+#
+# @mode: current mode.
+#
+# @filename: name of the record/replay log file.
+# It is present only in record or replay modes, when the log
+# is recorded or replayed.
+#
+# @icount: current number of executed instructions.
+#
+# Since: 5.2
+#
+##
+{ 'struct': 'ReplayInfo',
+ 'data': { 'mode': 'ReplayMode', '*filename': 'str', 'icount': 'int' } }
+
+##
+# @query-replay:
+#
+# Retrieve the record/replay information.
+# It includes current instruction count which may be used for
+# @replay-break and @replay-seek commands.
+#
+# Returns: record/replay information.
+#
+# Since: 5.2
+#
+# Example:
+#
+# -> { "execute": "query-replay" }
+# <- { "return": { "mode": "play", "filename": "log.rr", "icount": 220414 } }
+#
+##
+{ 'command': 'query-replay',
+ 'returns': 'ReplayInfo' }