mirror of
https://gitlab.com/qemu-project/qemu
synced 2024-10-14 15:02:54 +00:00
remove -writeconfig
Like -set and -readconfig, it would not really be too hard to extend -writeconfig to parsing mechanisms other than QemuOpts. However, the uses of -writeconfig are substantially more limited, as it is generally easier to write the configuration by hand in the first place. In addition, -writeconfig does not even try to detect cases where it prints incorrect syntax (for example if values have a quote in them, since qemu_config_parse does not support any kind of escaping. Just remove it. Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> Message-Id: <20220414145721.326866-1-pbonzini@redhat.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
This commit is contained in:
parent
1f3f2bfe0e
commit
e960a7ee46
|
@ -67,13 +67,6 @@ and will cause a warning.
|
||||||
The replacement for the ``nodelay`` short-form boolean option is ``nodelay=on``
|
The replacement for the ``nodelay`` short-form boolean option is ``nodelay=on``
|
||||||
rather than ``delay=off``.
|
rather than ``delay=off``.
|
||||||
|
|
||||||
``-writeconfig`` (since 6.0)
|
|
||||||
'''''''''''''''''''''''''''''
|
|
||||||
|
|
||||||
The ``-writeconfig`` option is not able to serialize the entire contents
|
|
||||||
of the QEMU command line. It is thus considered a failed experiment
|
|
||||||
and deprecated, with no current replacement.
|
|
||||||
|
|
||||||
Userspace local APIC with KVM (x86, since 6.0)
|
Userspace local APIC with KVM (x86, since 6.0)
|
||||||
''''''''''''''''''''''''''''''''''''''''''''''
|
''''''''''''''''''''''''''''''''''''''''''''''
|
||||||
|
|
||||||
|
|
|
@ -348,6 +348,13 @@ or ``gnutls`` library enabled as a cryptography provider.
|
||||||
Neither the ``nettle`` library, or the built-in cryptography provider are
|
Neither the ``nettle`` library, or the built-in cryptography provider are
|
||||||
supported on FIPS enabled hosts.
|
supported on FIPS enabled hosts.
|
||||||
|
|
||||||
|
``-writeconfig`` (removed in 7.1)
|
||||||
|
'''''''''''''''''''''''''''''''''
|
||||||
|
|
||||||
|
The ``-writeconfig`` option was not able to serialize the entire contents
|
||||||
|
of the QEMU command line. It is thus considered a failed experiment
|
||||||
|
and removed without a replacement.
|
||||||
|
|
||||||
QEMU Machine Protocol (QMP) commands
|
QEMU Machine Protocol (QMP) commands
|
||||||
------------------------------------
|
------------------------------------
|
||||||
|
|
||||||
|
|
|
@ -12,7 +12,6 @@ void qemu_add_opts(QemuOptsList *list);
|
||||||
void qemu_add_drive_opts(QemuOptsList *list);
|
void qemu_add_drive_opts(QemuOptsList *list);
|
||||||
int qemu_global_option(const char *str);
|
int qemu_global_option(const char *str);
|
||||||
|
|
||||||
void qemu_config_write(FILE *fp);
|
|
||||||
int qemu_config_parse(FILE *fp, QemuOptsList **lists, const char *fname,
|
int qemu_config_parse(FILE *fp, QemuOptsList **lists, const char *fname,
|
||||||
Error **errp);
|
Error **errp);
|
||||||
|
|
||||||
|
|
|
@ -4622,18 +4622,14 @@ SRST
|
||||||
ERST
|
ERST
|
||||||
|
|
||||||
DEF("readconfig", HAS_ARG, QEMU_OPTION_readconfig,
|
DEF("readconfig", HAS_ARG, QEMU_OPTION_readconfig,
|
||||||
"-readconfig <file>\n", QEMU_ARCH_ALL)
|
"-readconfig <file>\n"
|
||||||
|
" read config file\n", QEMU_ARCH_ALL)
|
||||||
SRST
|
SRST
|
||||||
``-readconfig file``
|
``-readconfig file``
|
||||||
Read device configuration from file. This approach is useful when
|
Read device configuration from file. This approach is useful when
|
||||||
you want to spawn QEMU process with many command line options but
|
you want to spawn QEMU process with many command line options but
|
||||||
you don't want to exceed the command line character limit.
|
you don't want to exceed the command line character limit.
|
||||||
ERST
|
ERST
|
||||||
DEF("writeconfig", HAS_ARG, QEMU_OPTION_writeconfig,
|
|
||||||
"-writeconfig <file>\n"
|
|
||||||
" read/write config file (deprecated)\n", QEMU_ARCH_ALL)
|
|
||||||
SRST
|
|
||||||
ERST
|
|
||||||
|
|
||||||
DEF("no-user-config", 0, QEMU_OPTION_nouserconfig,
|
DEF("no-user-config", 0, QEMU_OPTION_nouserconfig,
|
||||||
"-no-user-config\n"
|
"-no-user-config\n"
|
||||||
|
|
20
softmmu/vl.c
20
softmmu/vl.c
|
@ -3551,26 +3551,6 @@ void qemu_init(int argc, char **argv, char **envp)
|
||||||
display_remote++;
|
display_remote++;
|
||||||
break;
|
break;
|
||||||
#endif
|
#endif
|
||||||
case QEMU_OPTION_writeconfig:
|
|
||||||
{
|
|
||||||
FILE *fp;
|
|
||||||
warn_report("-writeconfig is deprecated and will go away without a replacement");
|
|
||||||
if (strcmp(optarg, "-") == 0) {
|
|
||||||
fp = stdout;
|
|
||||||
} else {
|
|
||||||
fp = fopen(optarg, "w");
|
|
||||||
if (fp == NULL) {
|
|
||||||
error_report("open %s: %s", optarg,
|
|
||||||
strerror(errno));
|
|
||||||
exit(1);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
qemu_config_write(fp);
|
|
||||||
if (fp != stdout) {
|
|
||||||
fclose(fp);
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
case QEMU_OPTION_qtest:
|
case QEMU_OPTION_qtest:
|
||||||
qtest_chrdev = optarg;
|
qtest_chrdev = optarg;
|
||||||
break;
|
break;
|
||||||
|
|
|
@ -314,48 +314,6 @@ void qemu_add_opts(QemuOptsList *list)
|
||||||
abort();
|
abort();
|
||||||
}
|
}
|
||||||
|
|
||||||
struct ConfigWriteData {
|
|
||||||
QemuOptsList *list;
|
|
||||||
FILE *fp;
|
|
||||||
};
|
|
||||||
|
|
||||||
static int config_write_opt(void *opaque, const char *name, const char *value,
|
|
||||||
Error **errp)
|
|
||||||
{
|
|
||||||
struct ConfigWriteData *data = opaque;
|
|
||||||
|
|
||||||
fprintf(data->fp, " %s = \"%s\"\n", name, value);
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
static int config_write_opts(void *opaque, QemuOpts *opts, Error **errp)
|
|
||||||
{
|
|
||||||
struct ConfigWriteData *data = opaque;
|
|
||||||
const char *id = qemu_opts_id(opts);
|
|
||||||
|
|
||||||
if (id) {
|
|
||||||
fprintf(data->fp, "[%s \"%s\"]\n", data->list->name, id);
|
|
||||||
} else {
|
|
||||||
fprintf(data->fp, "[%s]\n", data->list->name);
|
|
||||||
}
|
|
||||||
qemu_opt_foreach(opts, config_write_opt, data, NULL);
|
|
||||||
fprintf(data->fp, "\n");
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
void qemu_config_write(FILE *fp)
|
|
||||||
{
|
|
||||||
struct ConfigWriteData data = { .fp = fp };
|
|
||||||
QemuOptsList **lists = vm_config_groups;
|
|
||||||
int i;
|
|
||||||
|
|
||||||
fprintf(fp, "# qemu config file\n\n");
|
|
||||||
for (i = 0; lists[i] != NULL; i++) {
|
|
||||||
data.list = lists[i];
|
|
||||||
qemu_opts_foreach(data.list, config_write_opts, &data, NULL);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Returns number of config groups on success, -errno on error */
|
/* Returns number of config groups on success, -errno on error */
|
||||||
static int qemu_config_foreach(FILE *fp, QEMUConfigCB *cb, void *opaque,
|
static int qemu_config_foreach(FILE *fp, QEMUConfigCB *cb, void *opaque,
|
||||||
const char *fname, Error **errp)
|
const char *fname, Error **errp)
|
||||||
|
|
Loading…
Reference in a new issue