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;
|
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);
|
int qemu_set_option(const char *str);
|
||||||
|
|
||||||
|
void qemu_config_write(FILE *fp);
|
||||||
|
|
||||||
#endif /* QEMU_CONFIG_H */
|
#endif /* QEMU_CONFIG_H */
|
||||||
|
Loading…
Reference in New Issue
Block a user