Simplify -machine option queries with qemu_get_machine_opts()
The previous two commits fixed bugs in -machine option queries. I can't find fault with the remaining queries, but let's use qemu_get_machine_opts() everywhere, for consistency, simplicity and robustness. Signed-off-by: Markus Armbruster <armbru@redhat.com> Message-id: 1372943363-24081-7-git-send-email-armbru@redhat.com Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
This commit is contained in:
		
							parent
							
								
									7bccd94026
								
							
						
					
					
						commit
						2ff3de685a
					
				| 
						 | 
				
			
			@ -21,6 +21,7 @@
 | 
			
		|||
#include "config.h"
 | 
			
		||||
#include "qemu-common.h"
 | 
			
		||||
#include "sysemu/device_tree.h"
 | 
			
		||||
#include "sysemu/sysemu.h"
 | 
			
		||||
#include "hw/loader.h"
 | 
			
		||||
#include "qemu/option.h"
 | 
			
		||||
#include "qemu/config-file.h"
 | 
			
		||||
| 
						 | 
				
			
			@ -239,14 +240,10 @@ uint32_t qemu_devtree_alloc_phandle(void *fdt)
 | 
			
		|||
     * which phandle id to start allocting phandles.
 | 
			
		||||
     */
 | 
			
		||||
    if (!phandle) {
 | 
			
		||||
        QemuOpts *machine_opts;
 | 
			
		||||
        machine_opts = qemu_opts_find(qemu_find_opts("machine"), 0);
 | 
			
		||||
        if (machine_opts) {
 | 
			
		||||
            const char *phandle_start;
 | 
			
		||||
            phandle_start = qemu_opt_get(machine_opts, "phandle_start");
 | 
			
		||||
            if (phandle_start) {
 | 
			
		||||
                phandle = strtoul(phandle_start, NULL, 0);
 | 
			
		||||
            }
 | 
			
		||||
        const char *phandle_start = qemu_opt_get(qemu_get_machine_opts(),
 | 
			
		||||
                                                 "phandle_start");
 | 
			
		||||
        if (phandle_start) {
 | 
			
		||||
            phandle = strtoul(phandle_start, NULL, 0);
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -307,15 +304,10 @@ int qemu_devtree_add_subnode(void *fdt, const char *name)
 | 
			
		|||
 | 
			
		||||
void qemu_devtree_dumpdtb(void *fdt, int size)
 | 
			
		||||
{
 | 
			
		||||
    QemuOpts *machine_opts;
 | 
			
		||||
    const char *dumpdtb = qemu_opt_get(qemu_get_machine_opts(), "dumpdtb");
 | 
			
		||||
 | 
			
		||||
    machine_opts = qemu_opts_find(qemu_find_opts("machine"), 0);
 | 
			
		||||
    if (machine_opts) {
 | 
			
		||||
        const char *dumpdtb = qemu_opt_get(machine_opts, "dumpdtb");
 | 
			
		||||
        if (dumpdtb) {
 | 
			
		||||
            /* Dump the dtb to a file and quit */
 | 
			
		||||
            exit(g_file_set_contents(dumpdtb, fdt, size, NULL) ? 0 : 1);
 | 
			
		||||
        }
 | 
			
		||||
    if (dumpdtb) {
 | 
			
		||||
        /* Dump the dtb to a file and quit */
 | 
			
		||||
        exit(g_file_set_contents(dumpdtb, fdt, size, NULL) ? 0 : 1);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										12
									
								
								exec.c
								
								
								
								
							
							
						
						
									
										12
									
								
								exec.c
								
								
								
								
							| 
						 | 
				
			
			@ -31,6 +31,7 @@
 | 
			
		|||
#include "hw/qdev.h"
 | 
			
		||||
#include "qemu/osdep.h"
 | 
			
		||||
#include "sysemu/kvm.h"
 | 
			
		||||
#include "sysemu/sysemu.h"
 | 
			
		||||
#include "hw/xen/xen.h"
 | 
			
		||||
#include "qemu/timer.h"
 | 
			
		||||
#include "qemu/config-file.h"
 | 
			
		||||
| 
						 | 
				
			
			@ -1043,12 +1044,10 @@ ram_addr_t last_ram_offset(void)
 | 
			
		|||
static void qemu_ram_setup_dump(void *addr, ram_addr_t size)
 | 
			
		||||
{
 | 
			
		||||
    int ret;
 | 
			
		||||
    QemuOpts *machine_opts;
 | 
			
		||||
 | 
			
		||||
    /* Use MADV_DONTDUMP, if user doesn't want the guest memory in the core */
 | 
			
		||||
    machine_opts = qemu_opts_find(qemu_find_opts("machine"), 0);
 | 
			
		||||
    if (machine_opts &&
 | 
			
		||||
        !qemu_opt_get_bool(machine_opts, "dump-guest-core", true)) {
 | 
			
		||||
    if (!qemu_opt_get_bool(qemu_get_machine_opts(),
 | 
			
		||||
                           "dump-guest-core", true)) {
 | 
			
		||||
        ret = qemu_madvise(addr, size, QEMU_MADV_DONTDUMP);
 | 
			
		||||
        if (ret) {
 | 
			
		||||
            perror("qemu_madvise");
 | 
			
		||||
| 
						 | 
				
			
			@ -1095,10 +1094,7 @@ void qemu_ram_set_idstr(ram_addr_t addr, const char *name, DeviceState *dev)
 | 
			
		|||
 | 
			
		||||
static int memory_try_enable_merging(void *addr, size_t len)
 | 
			
		||||
{
 | 
			
		||||
    QemuOpts *opts;
 | 
			
		||||
 | 
			
		||||
    opts = qemu_opts_find(qemu_find_opts("machine"), 0);
 | 
			
		||||
    if (opts && !qemu_opt_get_bool(opts, "mem-merge", true)) {
 | 
			
		||||
    if (!qemu_opt_get_bool(qemu_get_machine_opts(), "mem-merge", true)) {
 | 
			
		||||
        /* disabled by the user */
 | 
			
		||||
        return 0;
 | 
			
		||||
    }
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -359,7 +359,6 @@ void arm_load_kernel(ARMCPU *cpu, struct arm_boot_info *info)
 | 
			
		|||
    uint64_t elf_entry;
 | 
			
		||||
    hwaddr entry;
 | 
			
		||||
    int big_endian;
 | 
			
		||||
    QemuOpts *machine_opts;
 | 
			
		||||
 | 
			
		||||
    /* Load the kernel.  */
 | 
			
		||||
    if (!info->kernel_filename) {
 | 
			
		||||
| 
						 | 
				
			
			@ -367,12 +366,7 @@ void arm_load_kernel(ARMCPU *cpu, struct arm_boot_info *info)
 | 
			
		|||
        exit(1);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    machine_opts = qemu_opts_find(qemu_find_opts("machine"), 0);
 | 
			
		||||
    if (machine_opts) {
 | 
			
		||||
        info->dtb_filename = qemu_opt_get(machine_opts, "dtb");
 | 
			
		||||
    } else {
 | 
			
		||||
        info->dtb_filename = NULL;
 | 
			
		||||
    }
 | 
			
		||||
    info->dtb_filename = qemu_opt_get(qemu_get_machine_opts(), "dtb");
 | 
			
		||||
 | 
			
		||||
    if (!info->secondary_cpu_reset_hook) {
 | 
			
		||||
        info->secondary_cpu_reset_hook = default_reset_secondary;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -137,7 +137,6 @@ static int ppce500_load_device_tree(CPUPPCState *env,
 | 
			
		|||
    uint32_t clock_freq = 400000000;
 | 
			
		||||
    uint32_t tb_freq = 400000000;
 | 
			
		||||
    int i;
 | 
			
		||||
    const char *toplevel_compat = NULL; /* user override */
 | 
			
		||||
    char compatible_sb[] = "fsl,mpc8544-immr\0simple-bus";
 | 
			
		||||
    char soc[128];
 | 
			
		||||
    char mpic[128];
 | 
			
		||||
| 
						 | 
				
			
			@ -158,14 +157,9 @@ static int ppce500_load_device_tree(CPUPPCState *env,
 | 
			
		|||
            0x0, 0xe1000000,
 | 
			
		||||
            0x0, 0x10000,
 | 
			
		||||
        };
 | 
			
		||||
    QemuOpts *machine_opts;
 | 
			
		||||
    const char *dtb_file = NULL;
 | 
			
		||||
 | 
			
		||||
    machine_opts = qemu_opts_find(qemu_find_opts("machine"), 0);
 | 
			
		||||
    if (machine_opts) {
 | 
			
		||||
        dtb_file = qemu_opt_get(machine_opts, "dtb");
 | 
			
		||||
        toplevel_compat = qemu_opt_get(machine_opts, "dt_compatible");
 | 
			
		||||
    }
 | 
			
		||||
    QemuOpts *machine_opts = qemu_get_machine_opts();
 | 
			
		||||
    const char *dtb_file = qemu_opt_get(machine_opts, "dtb");
 | 
			
		||||
    const char *toplevel_compat = qemu_opt_get(machine_opts, "dt_compatible");
 | 
			
		||||
 | 
			
		||||
    if (dtb_file) {
 | 
			
		||||
        char *filename;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -676,27 +676,19 @@ static void spapr_cpu_reset(void *opaque)
 | 
			
		|||
 | 
			
		||||
static void spapr_create_nvram(sPAPREnvironment *spapr)
 | 
			
		||||
{
 | 
			
		||||
    QemuOpts *machine_opts;
 | 
			
		||||
    DeviceState *dev;
 | 
			
		||||
    DeviceState *dev = qdev_create(&spapr->vio_bus->bus, "spapr-nvram");
 | 
			
		||||
    const char *drivename = qemu_opt_get(qemu_get_machine_opts(), "nvram");
 | 
			
		||||
 | 
			
		||||
    dev = qdev_create(&spapr->vio_bus->bus, "spapr-nvram");
 | 
			
		||||
    if (drivename) {
 | 
			
		||||
        BlockDriverState *bs;
 | 
			
		||||
 | 
			
		||||
    machine_opts = qemu_opts_find(qemu_find_opts("machine"), 0);
 | 
			
		||||
    if (machine_opts) {
 | 
			
		||||
        const char *drivename;
 | 
			
		||||
 | 
			
		||||
        drivename = qemu_opt_get(machine_opts, "nvram");
 | 
			
		||||
        if (drivename) {
 | 
			
		||||
            BlockDriverState *bs;
 | 
			
		||||
 | 
			
		||||
            bs = bdrv_find(drivename);
 | 
			
		||||
            if (!bs) {
 | 
			
		||||
                fprintf(stderr, "No such block device \"%s\" for nvram\n",
 | 
			
		||||
                        drivename);
 | 
			
		||||
                exit(1);
 | 
			
		||||
            }
 | 
			
		||||
            qdev_prop_set_drive_nofail(dev, "drive", bs);
 | 
			
		||||
        bs = bdrv_find(drivename);
 | 
			
		||||
        if (!bs) {
 | 
			
		||||
            fprintf(stderr, "No such block device \"%s\" for nvram\n",
 | 
			
		||||
                    drivename);
 | 
			
		||||
            exit(1);
 | 
			
		||||
        }
 | 
			
		||||
        qdev_prop_set_drive_nofail(dev, "drive", bs);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    qdev_init_nofail(dev);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										22
									
								
								vl.c
								
								
								
								
							
							
						
						
									
										22
									
								
								vl.c
								
								
								
								
							| 
						 | 
				
			
			@ -1036,15 +1036,9 @@ static int parse_sandbox(QemuOpts *opts, void *opaque)
 | 
			
		|||
    return 0;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/*********QEMU USB setting******/
 | 
			
		||||
bool usb_enabled(bool default_usb)
 | 
			
		||||
{
 | 
			
		||||
    QemuOpts *mach_opts;
 | 
			
		||||
    mach_opts = qemu_opts_find(qemu_find_opts("machine"), 0);
 | 
			
		||||
    if (mach_opts) {
 | 
			
		||||
        return qemu_opt_get_bool(mach_opts, "usb", default_usb);
 | 
			
		||||
    }
 | 
			
		||||
    return default_usb;
 | 
			
		||||
    return qemu_opt_get_bool(qemu_get_machine_opts(), "usb", default_usb);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#ifndef _WIN32
 | 
			
		||||
| 
						 | 
				
			
			@ -4095,14 +4089,10 @@ int main(int argc, char **argv, char **envp)
 | 
			
		|||
        qtest_init();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    machine_opts = qemu_opts_find(qemu_find_opts("machine"), 0);
 | 
			
		||||
    if (machine_opts) {
 | 
			
		||||
        kernel_filename = qemu_opt_get(machine_opts, "kernel");
 | 
			
		||||
        initrd_filename = qemu_opt_get(machine_opts, "initrd");
 | 
			
		||||
        kernel_cmdline = qemu_opt_get(machine_opts, "append");
 | 
			
		||||
    } else {
 | 
			
		||||
        kernel_filename = initrd_filename = kernel_cmdline = NULL;
 | 
			
		||||
    }
 | 
			
		||||
    machine_opts = qemu_get_machine_opts();
 | 
			
		||||
    kernel_filename = qemu_opt_get(machine_opts, "kernel");
 | 
			
		||||
    initrd_filename = qemu_opt_get(machine_opts, "initrd");
 | 
			
		||||
    kernel_cmdline = qemu_opt_get(machine_opts, "append");
 | 
			
		||||
 | 
			
		||||
    if (!boot_order) {
 | 
			
		||||
        boot_order = machine->boot_order;
 | 
			
		||||
| 
						 | 
				
			
			@ -4145,7 +4135,7 @@ int main(int argc, char **argv, char **envp)
 | 
			
		|||
        exit(1);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    if (!linux_boot && machine_opts && qemu_opt_get(machine_opts, "dtb")) {
 | 
			
		||||
    if (!linux_boot && qemu_opt_get(machine_opts, "dtb")) {
 | 
			
		||||
        fprintf(stderr, "-dtb only allowed with -kernel option\n");
 | 
			
		||||
        exit(1);
 | 
			
		||||
    }
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue