diff --git a/include/sysemu/sysemu.h b/include/sysemu/sysemu.h index 2fb71afa259acbcf075b92c4290ee9e6982a4614..d85bdc0cacb8dba58c6d6631afc46058697b1a7a 100644 --- a/include/sysemu/sysemu.h +++ b/include/sysemu/sysemu.h @@ -185,6 +185,8 @@ char *get_boot_devices_list(size_t *size); DeviceState *get_boot_device(uint32_t position); +QemuOpts *qemu_get_machine_opts(void); + bool usb_enabled(bool default_usb); extern QemuOptsList qemu_drive_opts; diff --git a/vl.c b/vl.c index 6d9fd7d807860077ed0ca8c1f375f0becd1d4304..e68d19c22e1dc302164cc032a31e0d407d6b567a 100644 --- a/vl.c +++ b/vl.c @@ -516,6 +516,25 @@ static QemuOptsList qemu_realtime_opts = { }, }; +/** + * Get machine options + * + * Returns: machine options (never null). + */ +QemuOpts *qemu_get_machine_opts(void) +{ + QemuOptsList *list; + QemuOpts *opts; + + list = qemu_find_opts("machine"); + assert(list); + opts = qemu_opts_find(list, NULL); + if (!opts) { + opts = qemu_opts_create_nofail(list); + } + return opts; +} + const char *qemu_get_vm_name(void) { return qemu_name;