mirror of
https://github.com/qemu/qemu.git
synced 2024-11-28 06:13:46 +08:00
QemuOpts: dump config.
Add a function to write the QemuOpts configuration to a git-style config file. Signed-off-by: Gerd Hoffmann <kraxel@redhat.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
This commit is contained in:
parent
ddc978550d
commit
9d993394a1
@ -257,3 +257,42 @@ int qemu_set_option(const char *str)
|
||||
return 0;
|
||||
}
|
||||
|
||||
struct ConfigWriteData {
|
||||
QemuOptsList *list;
|
||||
FILE *fp;
|
||||
};
|
||||
|
||||
static int config_write_opt(const char *name, const char *value, void *opaque)
|
||||
{
|
||||
struct ConfigWriteData *data = opaque;
|
||||
|
||||
fprintf(data->fp, " %s = \"%s\"\n", name, value);
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int config_write_opts(QemuOpts *opts, void *opaque)
|
||||
{
|
||||
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, 0);
|
||||
fprintf(data->fp, "\n");
|
||||
return 0;
|
||||
}
|
||||
|
||||
void qemu_config_write(FILE *fp)
|
||||
{
|
||||
struct ConfigWriteData data = { .fp = fp };
|
||||
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, 0);
|
||||
}
|
||||
}
|
||||
|
@ -10,4 +10,6 @@ extern QemuOptsList qemu_rtc_opts;
|
||||
|
||||
int qemu_set_option(const char *str);
|
||||
|
||||
void qemu_config_write(FILE *fp);
|
||||
|
||||
#endif /* QEMU_CONFIG_H */
|
||||
|
Loading…
Reference in New Issue
Block a user