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 "config.h"
|
||||||
#include "qemu-common.h"
|
#include "qemu-common.h"
|
||||||
#include "sysemu/device_tree.h"
|
#include "sysemu/device_tree.h"
|
||||||
|
#include "sysemu/sysemu.h"
|
||||||
#include "hw/loader.h"
|
#include "hw/loader.h"
|
||||||
#include "qemu/option.h"
|
#include "qemu/option.h"
|
||||||
#include "qemu/config-file.h"
|
#include "qemu/config-file.h"
|
||||||
@ -239,16 +240,12 @@ uint32_t qemu_devtree_alloc_phandle(void *fdt)
|
|||||||
* which phandle id to start allocting phandles.
|
* which phandle id to start allocting phandles.
|
||||||
*/
|
*/
|
||||||
if (!phandle) {
|
if (!phandle) {
|
||||||
QemuOpts *machine_opts;
|
const char *phandle_start = qemu_opt_get(qemu_get_machine_opts(),
|
||||||
machine_opts = qemu_opts_find(qemu_find_opts("machine"), 0);
|
"phandle_start");
|
||||||
if (machine_opts) {
|
|
||||||
const char *phandle_start;
|
|
||||||
phandle_start = qemu_opt_get(machine_opts, "phandle_start");
|
|
||||||
if (phandle_start) {
|
if (phandle_start) {
|
||||||
phandle = strtoul(phandle_start, NULL, 0);
|
phandle = strtoul(phandle_start, NULL, 0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
if (!phandle) {
|
if (!phandle) {
|
||||||
/*
|
/*
|
||||||
@ -307,15 +304,10 @@ int qemu_devtree_add_subnode(void *fdt, const char *name)
|
|||||||
|
|
||||||
void qemu_devtree_dumpdtb(void *fdt, int size)
|
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) {
|
if (dumpdtb) {
|
||||||
/* Dump the dtb to a file and quit */
|
/* Dump the dtb to a file and quit */
|
||||||
exit(g_file_set_contents(dumpdtb, fdt, size, NULL) ? 0 : 1);
|
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 "hw/qdev.h"
|
||||||
#include "qemu/osdep.h"
|
#include "qemu/osdep.h"
|
||||||
#include "sysemu/kvm.h"
|
#include "sysemu/kvm.h"
|
||||||
|
#include "sysemu/sysemu.h"
|
||||||
#include "hw/xen/xen.h"
|
#include "hw/xen/xen.h"
|
||||||
#include "qemu/timer.h"
|
#include "qemu/timer.h"
|
||||||
#include "qemu/config-file.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)
|
static void qemu_ram_setup_dump(void *addr, ram_addr_t size)
|
||||||
{
|
{
|
||||||
int ret;
|
int ret;
|
||||||
QemuOpts *machine_opts;
|
|
||||||
|
|
||||||
/* Use MADV_DONTDUMP, if user doesn't want the guest memory in the core */
|
/* 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 (!qemu_opt_get_bool(qemu_get_machine_opts(),
|
||||||
if (machine_opts &&
|
"dump-guest-core", true)) {
|
||||||
!qemu_opt_get_bool(machine_opts, "dump-guest-core", true)) {
|
|
||||||
ret = qemu_madvise(addr, size, QEMU_MADV_DONTDUMP);
|
ret = qemu_madvise(addr, size, QEMU_MADV_DONTDUMP);
|
||||||
if (ret) {
|
if (ret) {
|
||||||
perror("qemu_madvise");
|
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)
|
static int memory_try_enable_merging(void *addr, size_t len)
|
||||||
{
|
{
|
||||||
QemuOpts *opts;
|
if (!qemu_opt_get_bool(qemu_get_machine_opts(), "mem-merge", true)) {
|
||||||
|
|
||||||
opts = qemu_opts_find(qemu_find_opts("machine"), 0);
|
|
||||||
if (opts && !qemu_opt_get_bool(opts, "mem-merge", true)) {
|
|
||||||
/* disabled by the user */
|
/* disabled by the user */
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -359,7 +359,6 @@ void arm_load_kernel(ARMCPU *cpu, struct arm_boot_info *info)
|
|||||||
uint64_t elf_entry;
|
uint64_t elf_entry;
|
||||||
hwaddr entry;
|
hwaddr entry;
|
||||||
int big_endian;
|
int big_endian;
|
||||||
QemuOpts *machine_opts;
|
|
||||||
|
|
||||||
/* Load the kernel. */
|
/* Load the kernel. */
|
||||||
if (!info->kernel_filename) {
|
if (!info->kernel_filename) {
|
||||||
@ -367,12 +366,7 @@ void arm_load_kernel(ARMCPU *cpu, struct arm_boot_info *info)
|
|||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
machine_opts = qemu_opts_find(qemu_find_opts("machine"), 0);
|
info->dtb_filename = qemu_opt_get(qemu_get_machine_opts(), "dtb");
|
||||||
if (machine_opts) {
|
|
||||||
info->dtb_filename = qemu_opt_get(machine_opts, "dtb");
|
|
||||||
} else {
|
|
||||||
info->dtb_filename = NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!info->secondary_cpu_reset_hook) {
|
if (!info->secondary_cpu_reset_hook) {
|
||||||
info->secondary_cpu_reset_hook = default_reset_secondary;
|
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 clock_freq = 400000000;
|
||||||
uint32_t tb_freq = 400000000;
|
uint32_t tb_freq = 400000000;
|
||||||
int i;
|
int i;
|
||||||
const char *toplevel_compat = NULL; /* user override */
|
|
||||||
char compatible_sb[] = "fsl,mpc8544-immr\0simple-bus";
|
char compatible_sb[] = "fsl,mpc8544-immr\0simple-bus";
|
||||||
char soc[128];
|
char soc[128];
|
||||||
char mpic[128];
|
char mpic[128];
|
||||||
@ -158,14 +157,9 @@ static int ppce500_load_device_tree(CPUPPCState *env,
|
|||||||
0x0, 0xe1000000,
|
0x0, 0xe1000000,
|
||||||
0x0, 0x10000,
|
0x0, 0x10000,
|
||||||
};
|
};
|
||||||
QemuOpts *machine_opts;
|
QemuOpts *machine_opts = qemu_get_machine_opts();
|
||||||
const char *dtb_file = NULL;
|
const char *dtb_file = qemu_opt_get(machine_opts, "dtb");
|
||||||
|
const char *toplevel_compat = qemu_opt_get(machine_opts, "dt_compatible");
|
||||||
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");
|
|
||||||
}
|
|
||||||
|
|
||||||
if (dtb_file) {
|
if (dtb_file) {
|
||||||
char *filename;
|
char *filename;
|
||||||
|
@ -676,16 +676,9 @@ static void spapr_cpu_reset(void *opaque)
|
|||||||
|
|
||||||
static void spapr_create_nvram(sPAPREnvironment *spapr)
|
static void spapr_create_nvram(sPAPREnvironment *spapr)
|
||||||
{
|
{
|
||||||
QemuOpts *machine_opts;
|
DeviceState *dev = qdev_create(&spapr->vio_bus->bus, "spapr-nvram");
|
||||||
DeviceState *dev;
|
const char *drivename = qemu_opt_get(qemu_get_machine_opts(), "nvram");
|
||||||
|
|
||||||
dev = qdev_create(&spapr->vio_bus->bus, "spapr-nvram");
|
|
||||||
|
|
||||||
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) {
|
if (drivename) {
|
||||||
BlockDriverState *bs;
|
BlockDriverState *bs;
|
||||||
|
|
||||||
@ -697,7 +690,6 @@ static void spapr_create_nvram(sPAPREnvironment *spapr)
|
|||||||
}
|
}
|
||||||
qdev_prop_set_drive_nofail(dev, "drive", bs);
|
qdev_prop_set_drive_nofail(dev, "drive", bs);
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
qdev_init_nofail(dev);
|
qdev_init_nofail(dev);
|
||||||
|
|
||||||
|
16
vl.c
16
vl.c
@ -1036,15 +1036,9 @@ static int parse_sandbox(QemuOpts *opts, void *opaque)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*********QEMU USB setting******/
|
|
||||||
bool usb_enabled(bool default_usb)
|
bool usb_enabled(bool default_usb)
|
||||||
{
|
{
|
||||||
QemuOpts *mach_opts;
|
return qemu_opt_get_bool(qemu_get_machine_opts(), "usb", default_usb);
|
||||||
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;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifndef _WIN32
|
#ifndef _WIN32
|
||||||
@ -4095,14 +4089,10 @@ int main(int argc, char **argv, char **envp)
|
|||||||
qtest_init();
|
qtest_init();
|
||||||
}
|
}
|
||||||
|
|
||||||
machine_opts = qemu_opts_find(qemu_find_opts("machine"), 0);
|
machine_opts = qemu_get_machine_opts();
|
||||||
if (machine_opts) {
|
|
||||||
kernel_filename = qemu_opt_get(machine_opts, "kernel");
|
kernel_filename = qemu_opt_get(machine_opts, "kernel");
|
||||||
initrd_filename = qemu_opt_get(machine_opts, "initrd");
|
initrd_filename = qemu_opt_get(machine_opts, "initrd");
|
||||||
kernel_cmdline = qemu_opt_get(machine_opts, "append");
|
kernel_cmdline = qemu_opt_get(machine_opts, "append");
|
||||||
} else {
|
|
||||||
kernel_filename = initrd_filename = kernel_cmdline = NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!boot_order) {
|
if (!boot_order) {
|
||||||
boot_order = machine->boot_order;
|
boot_order = machine->boot_order;
|
||||||
@ -4145,7 +4135,7 @@ int main(int argc, char **argv, char **envp)
|
|||||||
exit(1);
|
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");
|
fprintf(stderr, "-dtb only allowed with -kernel option\n");
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user