[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 5/7] Add boot-once support
From: |
Jan Kiszka |
Subject: |
[Qemu-devel] [PATCH 5/7] Add boot-once support |
Date: |
Thu, 02 Jul 2009 00:19:02 +0200 |
User-agent: |
StGIT/0.14.3 |
This allows to specify an exceptional boot order only for the first
startup of the guest. After reboot, qemu will switch back to the default
order (or what was specified via 'order='). Makes installing from CD
images and then booting the freshly set up harddisk more handy.
Signed-off-by: Jan Kiszka <address@hidden>
---
vl.c | 23 ++++++++++++++++++++++-
1 files changed, 22 insertions(+), 1 deletions(-)
diff --git a/vl.c b/vl.c
index 0586a8a..cd71710 100644
--- a/vl.c
+++ b/vl.c
@@ -2615,6 +2615,16 @@ static int parse_bootdevices(char *devices)
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];
@@ -5324,9 +5334,10 @@ int main(int argc, char **argv, char **envp)
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, '=')) {
@@ -5344,6 +5355,16 @@ int main(int argc, char **argv, char **envp)
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:
- [Qemu-devel] [PATCH 0/7] Rework -boot option, Jan Kiszka, 2009/07/01
- [Qemu-devel] [PATCH 5/7] Add boot-once support,
Jan Kiszka <=
- [Qemu-devel] [PATCH 6/7] Add boot menu control via command line switch, Jan Kiszka, 2009/07/01
- [Qemu-devel] [PATCH 3/7] Rework reset handler management, Jan Kiszka, 2009/07/01
- [Qemu-devel] [PATCH 7/7] Update boot option documentation, Jan Kiszka, 2009/07/01
- [Qemu-devel] [PATCH 4/7] Add qemu_unregister_reset, Jan Kiszka, 2009/07/01
- [Qemu-devel] [PATCH 1/7] Rework -boot option, Jan Kiszka, 2009/07/10
- [Qemu-devel] [PATCH 2/7] Move boot_set callback backend, Jan Kiszka, 2009/07/10