return bitmap;
}
+static void restore_boot_devices(void *opaque)
+{
+ char *standard_boot_devices = opaque;
+
+ qemu_boot_set(standard_boot_devices);
+
+ qemu_unregister_reset(restore_boot_devices, standard_boot_devices);
+ qemu_free(standard_boot_devices);
+}
+
static void numa_add(const char *optarg)
{
char option[128];
case QEMU_OPTION_boot:
{
static const char * const params[] = {
- "order", NULL
+ "order", "once", NULL
};
char buf[sizeof(boot_devices)];
+ char *standard_boot_devices;
int legacy = 0;
if (!strchr(optarg, '=')) {
boot_devices_bitmap = parse_bootdevices(buf);
pstrcpy(boot_devices, sizeof(boot_devices), buf);
}
+ if (!legacy) {
+ if (get_param_value(buf, sizeof(buf),
+ "once", optarg)) {
+ boot_devices_bitmap |= parse_bootdevices(buf);
+ standard_boot_devices = qemu_strdup(boot_devices);
+ pstrcpy(boot_devices, sizeof(boot_devices), buf);
+ qemu_register_reset(restore_boot_devices,
+ standard_boot_devices);
+ }
+ }
}
break;
case QEMU_OPTION_fda: