[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 6/6] switch balloon initialization to -device.
From: |
Gerd Hoffmann |
Subject: |
[Qemu-devel] [PATCH 6/6] switch balloon initialization to -device. |
Date: |
Wed, 15 Jul 2009 13:59:27 +0200 |
With that patch applied "-balloon virtio,args" becomes a shortcut for
"-device virtio-balloon-pci,args".
Side effects:
- ballon device gains support for id=<tag>.
- ballon device is off by default now.
- initialization order changes, which may in different pci slot
assignment depending on the VM configuration.
Signed-off-by: Gerd Hoffmann <address@hidden>
---
hw/pc.c | 6 -----
sysemu.h | 2 -
vl.c | 65 +++++++++++++++++++++++++++++++++++++------------------------
3 files changed, 39 insertions(+), 34 deletions(-)
diff --git a/hw/pc.c b/hw/pc.c
index 5a8a7af..8be1277 100644
--- a/hw/pc.c
+++ b/hw/pc.c
@@ -1407,12 +1407,6 @@ static void pc_init1(ram_addr_t ram_size,
}
}
- /* Add virtio balloon device */
- if (pci_enabled && virtio_balloon) {
- pci_dev = pci_create("virtio-balloon-pci", virtio_balloon_devaddr);
- qdev_init(&pci_dev->qdev);
- }
-
/* Add virtio console devices */
if (pci_enabled) {
for(i = 0; i < MAX_VIRTIO_CONSOLES; i++) {
diff --git a/sysemu.h b/sysemu.h
index 06dc4c6..9a83bfe 100644
--- a/sysemu.h
+++ b/sysemu.h
@@ -116,8 +116,6 @@ extern int win2k_install_hack;
extern int rtc_td_hack;
extern int alt_grab;
extern int usb_enabled;
-extern int virtio_balloon;
-extern const char *virtio_balloon_devaddr;
extern int smp_cpus;
extern int cursor_hide;
extern int graphic_rotate;
diff --git a/vl.c b/vl.c
index fe9602a..27e52cf 100644
--- a/vl.c
+++ b/vl.c
@@ -223,8 +223,6 @@ int smp_cpus = 1;
const char *vnc_display;
int acpi_enabled = 1;
int no_hpet = 0;
-int virtio_balloon = 1;
-const char *virtio_balloon_devaddr;
int fd_bootchk = 1;
int no_reboot = 0;
int no_shutdown = 0;
@@ -4550,29 +4548,6 @@ static void select_vgahw (const char *p)
}
}
-#ifdef TARGET_I386
-static int balloon_parse(const char *arg)
-{
- char buf[128];
- const char *p;
-
- if (!strcmp(arg, "none")) {
- virtio_balloon = 0;
- } else if (!strncmp(arg, "virtio", 6)) {
- virtio_balloon = 1;
- if (arg[6] == ',') {
- p = arg + 7;
- if (get_param_value(buf, sizeof(buf), "addr", p)) {
- virtio_balloon_devaddr = strdup(buf);
- }
- }
- } else {
- return -1;
- }
- return 0;
-}
-#endif
-
#ifdef _WIN32
static BOOL WINAPI qemu_ctrl_handler(DWORD type)
{
@@ -4778,6 +4753,24 @@ static void add_device_config(int type, const char
*cmdline)
TAILQ_INSERT_TAIL(&device_configs, conf, next);
}
+#ifdef TARGET_I386
+static void add_device_config_params(int type, const char *driver,
+ const char *params)
+{
+ char *buf;
+ size_t len,pos;
+
+ len = strlen(driver) + 1;
+ if (params)
+ len += strlen(params) + 1;
+ buf = qemu_mallocz(len);
+ pos = snprintf(buf, len, "%s", driver);
+ if (params)
+ pos += snprintf(buf+pos, len-pos, ",%s", params);
+ add_device_config(type, buf);
+}
+#endif
+
static int foreach_device_config(int type, int (*func)(const char *cmdline))
{
struct device_config *conf;
@@ -4803,6 +4796,26 @@ static int generic_parse(const char *cmdline)
return 0;
}
+#ifdef TARGET_I386
+static int add_device_balloon(const char *arg)
+{
+ const char *name = NULL, *params = NULL;
+
+ if (!strcmp(arg, "none"))
+ return 0;
+ if (!strncmp(arg, "virtio", 6)) {
+ name = "virtio-balloon-pci";
+ if (arg[6] == ',')
+ params = arg+7;
+ }
+ if (!name)
+ return -1;
+
+ add_device_config_params(DEV_GENERIC, name, params);
+ return 0;
+}
+#endif
+
int main(int argc, char **argv, char **envp)
{
const char *gdbstub_dev = NULL;
@@ -5423,7 +5436,7 @@ int main(int argc, char **argv, char **envp)
no_hpet = 1;
break;
case QEMU_OPTION_balloon:
- if (balloon_parse(optarg) < 0) {
+ if (add_device_balloon(optarg) < 0) {
fprintf(stderr, "Unknown -balloon argument %s\n", optarg);
exit(1);
}
--
1.6.2.5
- [Qemu-devel] [PATCH 0/6] qdev: -device switch patches., Gerd Hoffmann, 2009/07/15
- [Qemu-devel] [PATCH 3/6] qdev: create default bus names., Gerd Hoffmann, 2009/07/15
- [Qemu-devel] [PATCH 2/6] qdev/pci: use qdev_prop_pci_devfn, Gerd Hoffmann, 2009/07/15
- [Qemu-devel] [PATCH 1/6] qdev/prop: add pci devfn property, Gerd Hoffmann, 2009/07/15
- [Qemu-devel] [PATCH 5/6] qdev: add -device command line option., Gerd Hoffmann, 2009/07/15
- [Qemu-devel] [PATCH 6/6] switch balloon initialization to -device.,
Gerd Hoffmann <=
- [Qemu-devel] [PATCH 4/6] qdev: bus walker + qdev_device_add(), Gerd Hoffmann, 2009/07/15
- Re: [Qemu-devel] [PATCH 0/6] qdev: -device switch patches., Markus Armbruster, 2009/07/22