Commit a0abe474 authored by Peter Maydell's avatar Peter Maydell Committed by Anthony Liguori
Browse files

Make kernel, initrd and append be machine_opts



Make kernel, initrd, append be machine opts (ie -machine kernel=foo)
with the old plain command line arguments as legacy/convenience
equivalents.

Signed-off-by: default avatarPeter Maydell <peter.maydell@linaro.org>
Signed-off-by: default avatarAnthony Liguori <aliguori@us.ibm.com>
parent 78207d80
Loading
Loading
Loading
Loading
+12 −0
Original line number Diff line number Diff line
@@ -566,6 +566,18 @@ static QemuOptsList qemu_machine_opts = {
            .name = "kvm_shadow_mem",
            .type = QEMU_OPT_SIZE,
            .help = "KVM shadow MMU size",
        }, {
            .name = "kernel",
            .type = QEMU_OPT_STRING,
            .help = "Linux kernel image file",
        }, {
            .name = "initrd",
            .type = QEMU_OPT_STRING,
            .help = "Linux initial ramdisk file",
        }, {
            .name = "append",
            .type = QEMU_OPT_STRING,
            .help = "Linux kernel command line",
        },
        { /* End of list */ }
    },
+16 −8
Original line number Diff line number Diff line
@@ -2238,11 +2238,8 @@ int main(int argc, char **argv, char **envp)
    module_call_init(MODULE_INIT_MACHINE);
    machine = find_default_machine();
    cpu_model = NULL;
    initrd_filename = NULL;
    ram_size = 0;
    snapshot = 0;
    kernel_filename = NULL;
    kernel_cmdline = "";
    cyls = heads = secs = 0;
    translation = BIOS_ATA_TRANSLATION_AUTO;

@@ -2318,9 +2315,6 @@ int main(int argc, char **argv, char **envp)
                    cpu_model = optarg;
                }
                break;
            case QEMU_OPTION_initrd:
                initrd_filename = optarg;
                break;
            case QEMU_OPTION_hda:
                {
                    char buf[256];
@@ -2451,10 +2445,13 @@ int main(int argc, char **argv, char **envp)
                }
                break;
            case QEMU_OPTION_kernel:
                kernel_filename = optarg;
                qemu_opts_set(qemu_find_opts("machine"), 0, "kernel", optarg);
                break;
            case QEMU_OPTION_initrd:
                qemu_opts_set(qemu_find_opts("machine"), 0, "initrd", optarg);
                break;
            case QEMU_OPTION_append:
                kernel_cmdline = optarg;
                qemu_opts_set(qemu_find_opts("machine"), 0, "append", optarg);
                break;
            case QEMU_OPTION_cdrom:
                drive_add(IF_DEFAULT, 2, optarg, CDROM_OPTS);
@@ -3249,6 +3246,17 @@ int main(int argc, char **argv, char **envp)
        fprintf(stderr, "qemu_init_main_loop failed\n");
        exit(1);
    }

    kernel_filename = qemu_opt_get(qemu_opts_find(qemu_find_opts("machine"),
                                                  0), "kernel");
    initrd_filename = qemu_opt_get(qemu_opts_find(qemu_find_opts("machine"),
                                                  0), "initrd");
    kernel_cmdline = qemu_opt_get(qemu_opts_find(qemu_find_opts("machine"),
                                                 0), "append");
    if (!kernel_cmdline) {
        kernel_cmdline = "";
    }

    linux_boot = (kernel_filename != NULL);

    if (!linux_boot && *kernel_cmdline != '\0') {