[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 09/22] machine: implement -m in terms of -machine
From: |
Anthony Liguori |
Subject: |
[Qemu-devel] [PATCH 09/22] machine: implement -m in terms of -machine |
Date: |
Mon, 7 Jun 2010 18:51:57 -0500 |
Signed-off-by: Anthony Liguori <address@hidden>
diff --git a/vl.c b/vl.c
index 4553648..398d3b4 100644
--- a/vl.c
+++ b/vl.c
@@ -2968,35 +2968,14 @@ int main(int argc, char **argv, char **envp)
version();
exit(0);
break;
- case QEMU_OPTION_m: {
- uint64_t value;
- char *ptr;
-
- value = strtoul(optarg, &ptr, 10);
- switch (*ptr) {
- case 0: case 'M': case 'm':
- value <<= 20;
- break;
- case 'G': case 'g':
- value <<= 30;
- break;
- default:
- fprintf(stderr, "qemu: invalid ram size: %s\n", optarg);
- exit(1);
- }
-
- /* On 32-bit hosts, QEMU is limited by virtual address space */
- if (value > (2047 << 20) && HOST_LONG_BITS == 32) {
- fprintf(stderr, "qemu: at most 2047 MB RAM can be
simulated\n");
- exit(1);
- }
- if (value != (uint64_t)(ram_addr_t)value) {
- fprintf(stderr, "qemu: ram size too large\n");
- exit(1);
+ case QEMU_OPTION_m:
+ /* Default to 'M' which is not the normal behavior */
+ if (*optarg && isdigit(optarg[strlen(optarg) - 1])) {
+ qemu_opts_parsef(&qemu_machine_opts, "ram_size=%sM",
optarg);
+ } else {
+ qemu_opts_parsef(&qemu_machine_opts, "ram_size=%s",
optarg);
}
- ram_size = value;
break;
- }
case QEMU_OPTION_mempath:
mem_path = optarg;
break;
@@ -3645,8 +3624,26 @@ int main(int argc, char **argv, char **envp)
exit(1);
/* init the memory */
- if (ram_size == 0)
- ram_size = DEFAULT_RAM_SIZE * 1024 * 1024;
+ ram_size = qemu_opt_get_size(machine_opts, "ram_size",
+ DEFAULT_RAM_SIZE * 1024 * 1024);
+
+
+ if (!qemu_opt_get(machine_opts, "ram_size")) {
+ char buffer[64];
+ snprintf(buffer, sizeof(buffer), "%" PRId64, ram_size);
+ qemu_opt_set(machine_opts, "ram_size", buffer);
+ }
+
+ /* On 32-bit hosts, QEMU is limited by virtual address space */
+ if (ram_size > (2047 << 20) && HOST_LONG_BITS == 32) {
+ fprintf(stderr, "qemu: at most 2047 MB RAM can be simulated\n");
+ exit(1);
+ }
+
+ if (ram_size != (uint64_t)(ram_addr_t)ram_size) {
+ fprintf(stderr, "qemu: ram size too large\n");
+ exit(1);
+ }
/* init the dynamic translator */
cpu_exec_init_all(tb_size * 1024 * 1024);
--
1.7.0.4
- Re: [Qemu-devel] Re: [PATCH 01/22] QemuOpts: fix a bug in QemuOpts when setting an option twice, (continued)
- Re: [Qemu-devel] Re: [PATCH 01/22] QemuOpts: fix a bug in QemuOpts when setting an option twice, Gerd Hoffmann, 2010/06/08
- Re: [Qemu-devel] Re: [PATCH 01/22] QemuOpts: fix a bug in QemuOpts when setting an option twice, Anthony Liguori, 2010/06/08
- Re: [Qemu-devel] Re: [PATCH 01/22] QemuOpts: fix a bug in QemuOpts when setting an option twice, Gerd Hoffmann, 2010/06/08
- Re: [Qemu-devel] Re: [PATCH 01/22] QemuOpts: fix a bug in QemuOpts when setting an option twice, Anthony Liguori, 2010/06/08
- Re: [Qemu-devel] Re: [PATCH 01/22] QemuOpts: fix a bug in QemuOpts when setting an option twice, Gerd Hoffmann, 2010/06/09
- Re: [Qemu-devel] Re: [PATCH 01/22] QemuOpts: fix a bug in QemuOpts when setting an option twice, Paul Brook, 2010/06/08
- Re: [Qemu-devel] Re: [PATCH 01/22] QemuOpts: fix a bug in QemuOpts when setting an option twice, Anthony Liguori, 2010/06/08
[Qemu-devel] [PATCH 02/22] QemuOpts: make qemu_opts_validate() store the description list for later use, Anthony Liguori, 2010/06/07
[Qemu-devel] [PATCH 04/22] machine: package all init arguments into a QemuOpts (v2), Anthony Liguori, 2010/06/07
[Qemu-devel] [PATCH 07/22] machine: introduce -machine option, Anthony Liguori, 2010/06/07
[Qemu-devel] [PATCH 09/22] machine: implement -m in terms of -machine,
Anthony Liguori <=
[Qemu-devel] [PATCH 08/22] machine: implement -kernel/-append/-initrd options in term of -machine, Anthony Liguori, 2010/06/07
[Qemu-devel] [PATCH 10/22] machine: allow boards to specify default values and use it in isapc, Anthony Liguori, 2010/06/07
[Qemu-devel] [PATCH 05/22] machine: pass all init options as a single QemuOpts, Anthony Liguori, 2010/06/07
[Qemu-devel] [PATCH 11/22] machine: replace compat_props with opts_default, Anthony Liguori, 2010/06/07
[Qemu-devel] [PATCH 13/22] machine: get rid of global default QEMUMachine members, Anthony Liguori, 2010/06/07
[Qemu-devel] [PATCH 12/22] machine: some sugary macros to simplify machine default options, Anthony Liguori, 2010/06/07