Revision 9d993394
b/qemu-config.c | ||
---|---|---|
257 | 257 |
return 0; |
258 | 258 |
} |
259 | 259 |
|
260 |
struct ConfigWriteData { |
|
261 |
QemuOptsList *list; |
|
262 |
FILE *fp; |
|
263 |
}; |
|
264 |
|
|
265 |
static int config_write_opt(const char *name, const char *value, void *opaque) |
|
266 |
{ |
|
267 |
struct ConfigWriteData *data = opaque; |
|
268 |
|
|
269 |
fprintf(data->fp, " %s = \"%s\"\n", name, value); |
|
270 |
return 0; |
|
271 |
} |
|
272 |
|
|
273 |
static int config_write_opts(QemuOpts *opts, void *opaque) |
|
274 |
{ |
|
275 |
struct ConfigWriteData *data = opaque; |
|
276 |
const char *id = qemu_opts_id(opts); |
|
277 |
|
|
278 |
if (id) { |
|
279 |
fprintf(data->fp, "[%s \"%s\"]\n", data->list->name, id); |
|
280 |
} else { |
|
281 |
fprintf(data->fp, "[%s]\n", data->list->name); |
|
282 |
} |
|
283 |
qemu_opt_foreach(opts, config_write_opt, data, 0); |
|
284 |
fprintf(data->fp, "\n"); |
|
285 |
return 0; |
|
286 |
} |
|
287 |
|
|
288 |
void qemu_config_write(FILE *fp) |
|
289 |
{ |
|
290 |
struct ConfigWriteData data = { .fp = fp }; |
|
291 |
int i; |
|
292 |
|
|
293 |
fprintf(fp, "# qemu config file\n\n"); |
|
294 |
for (i = 0; lists[i] != NULL; i++) { |
|
295 |
data.list = lists[i]; |
|
296 |
qemu_opts_foreach(data.list, config_write_opts, &data, 0); |
|
297 |
} |
|
298 |
} |
b/qemu-config.h | ||
---|---|---|
10 | 10 |
|
11 | 11 |
int qemu_set_option(const char *str); |
12 | 12 |
|
13 |
void qemu_config_write(FILE *fp); |
|
14 |
|
|
13 | 15 |
#endif /* QEMU_CONFIG_H */ |
Also available in: Unified diff