diff options
Diffstat (limited to 'vl.c')
-rw-r--r-- | vl.c | 33 |
1 files changed, 30 insertions, 3 deletions
@@ -242,7 +242,8 @@ int smp_cpus = 1; const char *vnc_display; int acpi_enabled = 1; int no_hpet = 0; -int no_virtio_balloon = 0; +int virtio_balloon = 1; +const char *virtio_balloon_devaddr; int fd_bootchk = 1; int no_reboot = 0; int no_shutdown = 0; @@ -4762,6 +4763,29 @@ 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) { @@ -5578,8 +5602,11 @@ int main(int argc, char **argv, char **envp) case QEMU_OPTION_no_hpet: no_hpet = 1; break; - case QEMU_OPTION_no_virtio_balloon: - no_virtio_balloon = 1; + case QEMU_OPTION_balloon: + if (balloon_parse(optarg) < 0) { + fprintf(stderr, "Unknown -balloon argument %s\n", optarg); + exit(1); + } break; #endif case QEMU_OPTION_no_reboot: |