replay: Simplify setting replay blockers

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 <armbru@redhat.com>
Message-Id: <20230207075115.1525-10-armbru@redhat.com>
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
master
Markus Armbruster 2023-02-07 08:51:12 +01:00
parent c40233593e
commit 0ec8384f83
6 changed files with 11 additions and 20 deletions

View File

@ -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"

View File

@ -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);
/*

View File

@ -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);
}

View File

@ -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)

View File

@ -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);

View File

@ -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");
}
}
@ -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"),