Skip to content

Commit

Permalink
replay: Simplify setting replay blockers
Browse files Browse the repository at this point in the history
replay_add_blocker() takes an Error *.  All callers pass one created
like this:

    error_setg(&blocker, QERR_REPLAY_NOT_SUPPORTED, "some feature");

Folding this into replay_add_blocker() simplifies the callers, losing
a bit of generality we haven't needed in more than six years.

Since there are no other uses of macro QERR_REPLAY_NOT_SUPPORTED,
replace the remaining one by its expansion, and drop the macro.

Signed-off-by: Markus Armbruster <[email protected]>
Message-Id: <[email protected]>
Reviewed-by: Philippe Mathieu-Daudé <[email protected]>
  • Loading branch information
Markus Armbruster committed Feb 23, 2023
1 parent c402335 commit 0ec8384
Show file tree
Hide file tree
Showing 6 changed files with 11 additions and 20 deletions.
3 changes: 0 additions & 3 deletions include/qapi/qmp/qerror.h
Original file line number Diff line number Diff line change
Expand Up @@ -59,9 +59,6 @@
#define QERR_QGA_COMMAND_FAILED \
"Guest agent command failed, error was '%s'"

#define QERR_REPLAY_NOT_SUPPORTED \
"Record/replay feature is not supported for '%s'"

#define QERR_UNSUPPORTED \
"this feature or command is not currently supported"

Expand Down
2 changes: 1 addition & 1 deletion include/sysemu/replay.h
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,7 @@ void replay_start(void);
/*! Closes replay log file and frees other resources. */
void replay_finish(void);
/*! Adds replay blocker with the specified error description */
void replay_add_blocker(Error *reason);
void replay_add_blocker(const char *feature);
/* Returns name of the replay log file */
const char *replay_get_filename(void);
/*
Expand Down
6 changes: 5 additions & 1 deletion replay/replay.c
Original file line number Diff line number Diff line change
Expand Up @@ -376,8 +376,12 @@ void replay_finish(void)
replay_mode = REPLAY_MODE_NONE;
}

void replay_add_blocker(Error *reason)
void replay_add_blocker(const char *feature)
{
Error *reason = NULL;

error_setg(&reason, "Record/replay feature is not supported for '%s'",
feature);
replay_blockers = g_slist_prepend(replay_blockers, reason);
}

Expand Down
2 changes: 1 addition & 1 deletion replay/stubs-system.c
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ void replay_input_sync_event(void)
qemu_input_event_sync_impl();
}

void replay_add_blocker(Error *reason)
void replay_add_blocker(const char *feature)
{
}
void replay_audio_in(size_t *recorded, void *samples, size_t *wpos, size_t size)
Expand Down
5 changes: 1 addition & 4 deletions softmmu/rtc.c
Original file line number Diff line number Diff line change
Expand Up @@ -152,11 +152,8 @@ void configure_rtc(QemuOpts *opts)
if (!strcmp(value, "utc")) {
rtc_base_type = RTC_BASE_UTC;
} else if (!strcmp(value, "localtime")) {
Error *blocker = NULL;
rtc_base_type = RTC_BASE_LOCALTIME;
error_setg(&blocker, QERR_REPLAY_NOT_SUPPORTED,
"-rtc base=localtime");
replay_add_blocker(blocker);
replay_add_blocker("-rtc base=localtime");
} else {
rtc_base_type = RTC_BASE_DATETIME;
configure_rtc_base_datetime(value);
Expand Down
13 changes: 3 additions & 10 deletions softmmu/vl.c
Original file line number Diff line number Diff line change
Expand Up @@ -1852,9 +1852,7 @@ static void qemu_apply_machine_options(QDict *qdict)
}

if (current_machine->smp.cpus > 1) {
Error *blocker = NULL;
error_setg(&blocker, QERR_REPLAY_NOT_SUPPORTED, "smp");
replay_add_blocker(blocker);
replay_add_blocker("smp");
}
}

Expand Down Expand Up @@ -2774,13 +2772,8 @@ void qemu_init(int argc, char **argv)
drive_add(IF_PFLASH, -1, optarg, PFLASH_OPTS);
break;
case QEMU_OPTION_snapshot:
{
Error *blocker = NULL;
snapshot = 1;
error_setg(&blocker, QERR_REPLAY_NOT_SUPPORTED,
"-snapshot");
replay_add_blocker(blocker);
}
snapshot = 1;
replay_add_blocker("-snapshot");
break;
case QEMU_OPTION_numa:
opts = qemu_opts_parse_noisily(qemu_find_opts("numa"),
Expand Down

0 comments on commit 0ec8384

Please sign in to comment.