@@ -29,11 +29,11 @@ void irq_info(Monitor *mon)
/* Board init. */
-static void an5206_init(ram_addr_t ram_size,
- const char *boot_device,
- const char *kernel_filename, const char *kernel_cmdline,
- const char *initrd_filename, const char *cpu_model)
+static void an5206_init(QemuOpts *opts)
{
+ ram_addr_t ram_size = qemu_opt_get_size(opts, "ram_size", 0);
+ const char *kernel_filename = qemu_opt_get(opts, "kernel");
+ const char *cpu_model = qemu_opt_get(opts, "cpu");
CPUState *env;
int kernel_size;
uint64_t elf_entry;
@@ -264,11 +264,12 @@ static uint64_t translate_kernel_address(void *opaque, uint64_t addr)
}
static
-void axisdev88_init (ram_addr_t ram_size,
- const char *boot_device,
- const char *kernel_filename, const char *kernel_cmdline,
- const char *initrd_filename, const char *cpu_model)
+void axisdev88_init (QemuOpts *opts)
{
+ ram_addr_t ram_size = qemu_opt_get_size(opts, "ram_size", 0);
+ const char *kernel_filename = qemu_opt_get(opts, "kernel");
+ const char *kernel_cmdline = qemu_opt_get(opts, "cmdline");
+ const char *cpu_model = qemu_opt_get(opts, "cpu");
CPUState *env;
DeviceState *dev;
SysBusDevice *s;
@@ -5,14 +5,11 @@
#include "qdev.h"
-typedef void QEMUMachineInitFunc(ram_addr_t ram_size,
- const char *boot_device,
- const char *kernel_filename,
- const char *kernel_cmdline,
- const char *initrd_filename,
- const char *cpu_model);
-
-typedef struct QEMUMachine {
+typedef struct QEMUMachine QEMUMachine;
+
+typedef void QEMUMachineInitFunc(QemuOpts *opts);
+
+struct QEMUMachine {
const char *name;
const char *alias;
const char *desc;
@@ -29,7 +26,7 @@ typedef struct QEMUMachine {
int is_default;
GlobalProperty *compat_props;
struct QEMUMachine *next;
-} QEMUMachine;
+};
int qemu_register_machine(QEMUMachine *m);
@@ -16,11 +16,11 @@
/* Board init. */
-static void dummy_m68k_init(ram_addr_t ram_size,
- const char *boot_device,
- const char *kernel_filename, const char *kernel_cmdline,
- const char *initrd_filename, const char *cpu_model)
+static void dummy_m68k_init(QemuOpts *opts)
{
+ ram_addr_t ram_size = qemu_opt_get_size(opts, "ram_size", 0);
+ const char *kernel_filename = qemu_opt_get(opts, "kernel");
+ const char *cpu_model = qemu_opt_get(opts, "cpu");
CPUState *env;
int kernel_size;
uint64_t elf_entry;
@@ -50,11 +50,12 @@ static uint64_t translate_kernel_address(void *opaque, uint64_t addr)
}
static
-void bareetraxfs_init (ram_addr_t ram_size,
- const char *boot_device,
- const char *kernel_filename, const char *kernel_cmdline,
- const char *initrd_filename, const char *cpu_model)
+void bareetraxfs_init (QemuOpts *opts)
{
+ ram_addr_t ram_size = qemu_opt_get_size(opts, "ram_size", 0);
+ const char *kernel_filename = qemu_opt_get(opts, "kernel");
+ const char *kernel_cmdline = qemu_opt_get(opts, "cmdline");
+ const char *cpu_model = qemu_opt_get(opts, "cpu");
DeviceState *dev;
SysBusDevice *s;
CPUState *env;
@@ -41,10 +41,7 @@
static const int sector_len = 128 * 1024;
-static void connex_init(ram_addr_t ram_size,
- const char *boot_device,
- const char *kernel_filename, const char *kernel_cmdline,
- const char *initrd_filename, const char *cpu_model)
+static void connex_init(QemuOpts *opts)
{
PXA2xxState *cpu;
DriveInfo *dinfo;
@@ -79,11 +76,9 @@ static void connex_init(ram_addr_t ram_size,
pxa2xx_gpio_in_get(cpu->gpio)[36]);
}
-static void verdex_init(ram_addr_t ram_size,
- const char *boot_device,
- const char *kernel_filename, const char *kernel_cmdline,
- const char *initrd_filename, const char *cpu_model)
+static void verdex_init(QemuOpts *opts)
{
+ const char *cpu_model = qemu_opt_get(opts, "cpu");
PXA2xxState *cpu;
DriveInfo *dinfo;
int be;
@@ -448,11 +448,13 @@ static struct arm_boot_info integrator_binfo = {
.board_id = 0x113,
};
-static void integratorcp_init(ram_addr_t ram_size,
- const char *boot_device,
- const char *kernel_filename, const char *kernel_cmdline,
- const char *initrd_filename, const char *cpu_model)
+static void integratorcp_init(QemuOpts *opts)
{
+ ram_addr_t ram_size = qemu_opt_get_size(opts, "ram_size", 0);
+ const char *kernel_filename = qemu_opt_get(opts, "kernel");
+ const char *kernel_cmdline = qemu_opt_get(opts, "cmdline");
+ const char *initrd_filename = qemu_opt_get(opts, "initrd");
+ const char *cpu_model = qemu_opt_get(opts, "cpu");
CPUState *env;
ram_addr_t ram_offset;
qemu_irq pic[32];
@@ -131,11 +131,13 @@ static void mainstone_common_init(ram_addr_t ram_size,
arm_load_kernel(cpu->env, &mainstone_binfo);
}
-static void mainstone_init(ram_addr_t ram_size,
- const char *boot_device,
- const char *kernel_filename, const char *kernel_cmdline,
- const char *initrd_filename, const char *cpu_model)
+static void mainstone_init(QemuOpts *opts)
{
+ ram_addr_t ram_size = qemu_opt_get_size(opts, "ram_size", 0);
+ const char *kernel_filename = qemu_opt_get(opts, "kernel");
+ const char *kernel_cmdline = qemu_opt_get(opts, "cmdline");
+ const char *initrd_filename = qemu_opt_get(opts, "initrd");
+ const char *cpu_model = qemu_opt_get(opts, "cpu");
mainstone_common_init(ram_size, kernel_filename,
kernel_cmdline, initrd_filename, cpu_model, mainstone, 0x196);
}
@@ -195,11 +195,11 @@ static void mcf5208_sys_init(qemu_irq *pic)
}
}
-static void mcf5208evb_init(ram_addr_t ram_size,
- const char *boot_device,
- const char *kernel_filename, const char *kernel_cmdline,
- const char *initrd_filename, const char *cpu_model)
+static void mcf5208evb_init(QemuOpts *opts)
{
+ ram_addr_t ram_size = qemu_opt_get_size(opts, "ram_size", 0);
+ const char *kernel_filename = qemu_opt_get(opts, "kernel");
+ const char *cpu_model = qemu_opt_get(opts, "cpu");
CPUState *env;
int kernel_size;
uint64_t elf_entry;
@@ -300,20 +300,18 @@ void mips_jazz_init (ram_addr_t ram_size,
}
static
-void mips_magnum_init (ram_addr_t ram_size,
- const char *boot_device,
- const char *kernel_filename, const char *kernel_cmdline,
- const char *initrd_filename, const char *cpu_model)
+void mips_magnum_init (QemuOpts *opts)
{
+ ram_addr_t ram_size = qemu_opt_get_size(opts, "ram_size", 0);
+ const char *cpu_model = qemu_opt_get(opts, "cpu");
mips_jazz_init(ram_size, cpu_model, JAZZ_MAGNUM);
}
static
-void mips_pica61_init (ram_addr_t ram_size,
- const char *boot_device,
- const char *kernel_filename, const char *kernel_cmdline,
- const char *initrd_filename, const char *cpu_model)
+void mips_pica61_init (QemuOpts *opts)
{
+ ram_addr_t ram_size = qemu_opt_get_size(opts, "ram_size", 0);
+ const char *cpu_model = qemu_opt_get(opts, "cpu");
mips_jazz_init(ram_size, cpu_model, JAZZ_PICA61);
}
@@ -773,11 +773,13 @@ static void cpu_request_exit(void *opaque, int irq, int level)
}
static
-void mips_malta_init (ram_addr_t ram_size,
- const char *boot_device,
- const char *kernel_filename, const char *kernel_cmdline,
- const char *initrd_filename, const char *cpu_model)
+void mips_malta_init (QemuOpts *opts)
{
+ ram_addr_t ram_size = qemu_opt_get_size(opts, "ram_size", 0);
+ const char *kernel_filename = qemu_opt_get(opts, "kernel");
+ const char *kernel_cmdline = qemu_opt_get(opts, "cmdline");
+ const char *initrd_filename = qemu_opt_get(opts, "initrd");
+ const char *cpu_model = qemu_opt_get(opts, "cpu");
char *filename;
ram_addr_t ram_offset;
ram_addr_t bios_offset;
@@ -110,11 +110,13 @@ static void main_cpu_reset(void *opaque)
}
static void
-mips_mipssim_init (ram_addr_t ram_size,
- const char *boot_device,
- const char *kernel_filename, const char *kernel_cmdline,
- const char *initrd_filename, const char *cpu_model)
+mips_mipssim_init (QemuOpts *opts)
{
+ ram_addr_t ram_size = qemu_opt_get_size(opts, "ram_size", 0);
+ const char *kernel_filename = qemu_opt_get(opts, "kernel");
+ const char *kernel_cmdline = qemu_opt_get(opts, "cmdline");
+ const char *initrd_filename = qemu_opt_get(opts, "initrd");
+ const char *cpu_model = qemu_opt_get(opts, "cpu");
char *filename;
ram_addr_t ram_offset;
ram_addr_t bios_offset;
@@ -155,11 +155,13 @@ static void main_cpu_reset(void *opaque)
static const int sector_len = 32 * 1024;
static
-void mips_r4k_init (ram_addr_t ram_size,
- const char *boot_device,
- const char *kernel_filename, const char *kernel_cmdline,
- const char *initrd_filename, const char *cpu_model)
+void mips_r4k_init (QemuOpts *opts)
{
+ ram_addr_t ram_size = qemu_opt_get_size(opts, "ram_size", 0);
+ const char *kernel_filename = qemu_opt_get(opts, "kernel");
+ const char *kernel_cmdline = qemu_opt_get(opts, "cmdline");
+ const char *initrd_filename = qemu_opt_get(opts, "initrd");
+ const char *cpu_model = qemu_opt_get(opts, "cpu");
char *filename;
ram_addr_t ram_offset;
ram_addr_t bios_offset;
@@ -1474,11 +1474,12 @@ static struct arm_boot_info musicpal_binfo = {
.board_id = 0x20e,
};
-static void musicpal_init(ram_addr_t ram_size,
- const char *boot_device,
- const char *kernel_filename, const char *kernel_cmdline,
- const char *initrd_filename, const char *cpu_model)
+static void musicpal_init(QemuOpts *opts)
{
+ const char *kernel_filename = qemu_opt_get(opts, "kernel");
+ const char *kernel_cmdline = qemu_opt_get(opts, "cmdline");
+ const char *initrd_filename = qemu_opt_get(opts, "initrd");
+ const char *cpu_model = qemu_opt_get(opts, "cpu");
CPUState *env;
qemu_irq *cpu_pic;
qemu_irq pic[32];
@@ -1376,21 +1376,27 @@ static struct arm_boot_info n810_binfo = {
.atag_board = n810_atag_setup,
};
-static void n800_init(ram_addr_t ram_size,
- const char *boot_device,
- const char *kernel_filename, const char *kernel_cmdline,
- const char *initrd_filename, const char *cpu_model)
+static void n800_init(QemuOpts *opts)
{
+ ram_addr_t ram_size = qemu_opt_get_size(opts, "ram_size", 0);
+ const char *boot_device = qemu_opt_get(opts, "boot_device");
+ const char *kernel_filename = qemu_opt_get(opts, "kernel");
+ const char *kernel_cmdline = qemu_opt_get(opts, "cmdline");
+ const char *initrd_filename = qemu_opt_get(opts, "initrd");
+ const char *cpu_model = qemu_opt_get(opts, "cpu");
return n8x0_init(ram_size, boot_device,
kernel_filename, kernel_cmdline, initrd_filename,
cpu_model, &n800_binfo, 800);
}
-static void n810_init(ram_addr_t ram_size,
- const char *boot_device,
- const char *kernel_filename, const char *kernel_cmdline,
- const char *initrd_filename, const char *cpu_model)
+static void n810_init(QemuOpts *opts)
{
+ ram_addr_t ram_size = qemu_opt_get_size(opts, "ram_size", 0);
+ const char *boot_device = qemu_opt_get(opts, "boot_device");
+ const char *kernel_filename = qemu_opt_get(opts, "kernel");
+ const char *kernel_cmdline = qemu_opt_get(opts, "cmdline");
+ const char *initrd_filename = qemu_opt_get(opts, "initrd");
+ const char *cpu_model = qemu_opt_get(opts, "cpu");
return n8x0_init(ram_size, boot_device,
kernel_filename, kernel_cmdline, initrd_filename,
cpu_model, &n810_binfo, 810);
@@ -205,20 +205,26 @@ static void sx1_init(ram_addr_t ram_size,
//~ qemu_console_resize(ds, 640, 480);
}
-static void sx1_init_v1(ram_addr_t ram_size,
- const char *boot_device,
- const char *kernel_filename, const char *kernel_cmdline,
- const char *initrd_filename, const char *cpu_model)
+static void sx1_init_v1(QemuOpts *opts)
{
+ ram_addr_t ram_size = qemu_opt_get_size(opts, "ram_size", 0);
+ const char *boot_device = qemu_opt_get(opts, "boot_device");
+ const char *kernel_filename = qemu_opt_get(opts, "kernel");
+ const char *kernel_cmdline = qemu_opt_get(opts, "cmdline");
+ const char *initrd_filename = qemu_opt_get(opts, "initrd");
+ const char *cpu_model = qemu_opt_get(opts, "cpu");
sx1_init(ram_size, boot_device, kernel_filename,
kernel_cmdline, initrd_filename, cpu_model, 1);
}
-static void sx1_init_v2(ram_addr_t ram_size,
- const char *boot_device,
- const char *kernel_filename, const char *kernel_cmdline,
- const char *initrd_filename, const char *cpu_model)
+static void sx1_init_v2(QemuOpts *opts)
{
+ ram_addr_t ram_size = qemu_opt_get_size(opts, "ram_size", 0);
+ const char *boot_device = qemu_opt_get(opts, "boot_device");
+ const char *kernel_filename = qemu_opt_get(opts, "kernel");
+ const char *kernel_cmdline = qemu_opt_get(opts, "cmdline");
+ const char *initrd_filename = qemu_opt_get(opts, "initrd");
+ const char *cpu_model = qemu_opt_get(opts, "cpu");
sx1_init(ram_size, boot_device, kernel_filename,
kernel_cmdline, initrd_filename, cpu_model, 2);
}
@@ -193,11 +193,12 @@ static struct arm_boot_info palmte_binfo = {
.board_id = 0x331,
};
-static void palmte_init(ram_addr_t ram_size,
- const char *boot_device,
- const char *kernel_filename, const char *kernel_cmdline,
- const char *initrd_filename, const char *cpu_model)
+static void palmte_init(QemuOpts *opts)
{
+ const char *kernel_filename = qemu_opt_get(opts, "kernel");
+ const char *kernel_cmdline = qemu_opt_get(opts, "cmdline");
+ const char *initrd_filename = qemu_opt_get(opts, "initrd");
+ const char *cpu_model = qemu_opt_get(opts, "cpu");
struct omap_mpu_state_s *cpu;
int flash_size = 0x00800000;
int sdram_size = palmte_binfo.ram_size;
@@ -161,25 +161,27 @@ static void pc_init1(ram_addr_t ram_size,
}
}
-static void pc_init_pci(ram_addr_t ram_size,
- const char *boot_device,
- const char *kernel_filename,
- const char *kernel_cmdline,
- const char *initrd_filename,
- const char *cpu_model)
+static void pc_init_pci(QemuOpts *opts)
{
+ ram_addr_t ram_size = qemu_opt_get_size(opts, "ram_size", 0);
+ const char *boot_device = qemu_opt_get(opts, "boot_device");
+ const char *kernel_filename = qemu_opt_get(opts, "kernel");
+ const char *kernel_cmdline = qemu_opt_get(opts, "cmdline");
+ const char *initrd_filename = qemu_opt_get(opts, "initrd");
+ const char *cpu_model = qemu_opt_get(opts, "cpu");
pc_init1(ram_size, boot_device,
kernel_filename, kernel_cmdline,
initrd_filename, cpu_model, 1);
}
-static void pc_init_isa(ram_addr_t ram_size,
- const char *boot_device,
- const char *kernel_filename,
- const char *kernel_cmdline,
- const char *initrd_filename,
- const char *cpu_model)
+static void pc_init_isa(QemuOpts *opts)
{
+ ram_addr_t ram_size = qemu_opt_get_size(opts, "ram_size", 0);
+ const char *boot_device = qemu_opt_get(opts, "boot_device");
+ const char *kernel_filename = qemu_opt_get(opts, "kernel");
+ const char *kernel_cmdline = qemu_opt_get(opts, "cmdline");
+ const char *initrd_filename = qemu_opt_get(opts, "initrd");
+ const char *cpu_model = qemu_opt_get(opts, "cpu");
if (cpu_model == NULL)
cpu_model = "486";
pc_init1(ram_size, boot_device,
@@ -110,12 +110,12 @@ static uint64_t translate_kernel_address(void *opaque, uint64_t addr)
}
static void
-petalogix_s3adsp1800_init(ram_addr_t ram_size,
- const char *boot_device,
- const char *kernel_filename,
- const char *kernel_cmdline,
- const char *initrd_filename, const char *cpu_model)
+petalogix_s3adsp1800_init(QemuOpts *opts)
{
+ ram_addr_t ram_size = qemu_opt_get_size(opts, "ram_size", 0);
+ const char *kernel_filename = qemu_opt_get(opts, "kernel");
+ const char *kernel_cmdline = qemu_opt_get(opts, "cmdline");
+ const char *cpu_model = qemu_opt_get(opts, "cpu");
DeviceState *dev;
CPUState *env;
int kernel_size;
@@ -168,13 +168,12 @@ static void ref405ep_fpga_init (uint32_t base)
qemu_register_reset(&ref405ep_fpga_reset, fpga);
}
-static void ref405ep_init (ram_addr_t ram_size,
- const char *boot_device,
- const char *kernel_filename,
- const char *kernel_cmdline,
- const char *initrd_filename,
- const char *cpu_model)
+static void ref405ep_init (QemuOpts *opts)
{
+ ram_addr_t ram_size = qemu_opt_get_size(opts, "ram_size", 0);
+ const char *kernel_filename = qemu_opt_get(opts, "kernel");
+ const char *kernel_cmdline = qemu_opt_get(opts, "cmdline");
+ const char *initrd_filename = qemu_opt_get(opts, "initrd");
char *filename;
ppc4xx_bd_info_t bd;
CPUPPCState *env;
@@ -490,13 +489,11 @@ static void taihu_cpld_init (uint32_t base)
qemu_register_reset(&taihu_cpld_reset, cpld);
}
-static void taihu_405ep_init(ram_addr_t ram_size,
- const char *boot_device,
- const char *kernel_filename,
- const char *kernel_cmdline,
- const char *initrd_filename,
- const char *cpu_model)
+static void taihu_405ep_init(QemuOpts *opts)
{
+ ram_addr_t ram_size = qemu_opt_get_size(opts, "ram_size", 0);
+ const char *kernel_filename = qemu_opt_get(opts, "kernel");
+ const char *initrd_filename = qemu_opt_get(opts, "initrd");
char *filename;
CPUPPCState *env;
qemu_irq *pic;
@@ -84,13 +84,13 @@ out:
return ret;
}
-static void bamboo_init(ram_addr_t ram_size,
- const char *boot_device,
- const char *kernel_filename,
- const char *kernel_cmdline,
- const char *initrd_filename,
- const char *cpu_model)
+static void bamboo_init(QemuOpts *opts)
{
+ ram_addr_t ram_size = qemu_opt_get_size(opts, "ram_size", 0);
+ const char *kernel_filename = qemu_opt_get(opts, "kernel");
+ const char *kernel_cmdline = qemu_opt_get(opts, "cmdline");
+ const char *initrd_filename = qemu_opt_get(opts, "initrd");
+ const char *cpu_model = qemu_opt_get(opts, "cpu");
unsigned int pci_irq_nrs[4] = { 28, 27, 26, 25 };
PCIBus *pcibus;
CPUState *env;
@@ -121,13 +121,14 @@ static uint64_t translate_kernel_address(void *opaque, uint64_t addr)
}
/* PowerPC Mac99 hardware initialisation */
-static void ppc_core99_init (ram_addr_t ram_size,
- const char *boot_device,
- const char *kernel_filename,
- const char *kernel_cmdline,
- const char *initrd_filename,
- const char *cpu_model)
+static void ppc_core99_init (QemuOpts *opts)
{
+ ram_addr_t ram_size = qemu_opt_get_size(opts, "ram_size", 0);
+ const char *boot_device = qemu_opt_get(opts, "boot_device");
+ const char *kernel_filename = qemu_opt_get(opts, "kernel");
+ const char *kernel_cmdline = qemu_opt_get(opts, "cmdline");
+ const char *initrd_filename = qemu_opt_get(opts, "initrd");
+ const char *cpu_model = qemu_opt_get(opts, "cpu");
CPUState *env = NULL, *envs[MAX_CPUS];
char *filename;
qemu_irq *pic, **openpic_irqs;
@@ -128,13 +128,14 @@ static uint64_t translate_kernel_address(void *opaque, uint64_t addr)
return (addr & 0x0fffffff) + KERNEL_LOAD_ADDR;
}
-static void ppc_heathrow_init (ram_addr_t ram_size,
- const char *boot_device,
- const char *kernel_filename,
- const char *kernel_cmdline,
- const char *initrd_filename,
- const char *cpu_model)
+static void ppc_heathrow_init (QemuOpts *opts)
{
+ ram_addr_t ram_size = qemu_opt_get_size(opts, "ram_size", 0);
+ const char *boot_device = qemu_opt_get(opts, "boot_device");
+ const char *kernel_filename = qemu_opt_get(opts, "kernel");
+ const char *kernel_cmdline = qemu_opt_get(opts, "cmdline");
+ const char *initrd_filename = qemu_opt_get(opts, "initrd");
+ const char *cpu_model = qemu_opt_get(opts, "cpu");
CPUState *env = NULL, *envs[MAX_CPUS];
char *filename;
qemu_irq *pic, **heathrow_irqs;
@@ -557,13 +557,14 @@ static void cpu_request_exit(void *opaque, int irq, int level)
}
/* PowerPC PREP hardware initialisation */
-static void ppc_prep_init (ram_addr_t ram_size,
- const char *boot_device,
- const char *kernel_filename,
- const char *kernel_cmdline,
- const char *initrd_filename,
- const char *cpu_model)
+static void ppc_prep_init (QemuOpts *opts)
{
+ ram_addr_t ram_size = qemu_opt_get_size(opts, "ram_size", 0);
+ const char *boot_device = qemu_opt_get(opts, "boot_device");
+ const char *kernel_filename = qemu_opt_get(opts, "kernel");
+ const char *kernel_cmdline = qemu_opt_get(opts, "cmdline");
+ const char *initrd_filename = qemu_opt_get(opts, "initrd");
+ const char *cpu_model = qemu_opt_get(opts, "cpu");
CPUState *env = NULL, *envs[MAX_CPUS];
char *filename;
nvram_t nvram;
@@ -156,13 +156,12 @@ out:
return ret;
}
-static void mpc8544ds_init(ram_addr_t ram_size,
- const char *boot_device,
- const char *kernel_filename,
- const char *kernel_cmdline,
- const char *initrd_filename,
- const char *cpu_model)
+static void mpc8544ds_init(QemuOpts *opts)
{
+ ram_addr_t ram_size = qemu_opt_get_size(opts, "ram_size", 0);
+ const char *kernel_filename = qemu_opt_get(opts, "kernel");
+ const char *kernel_cmdline = qemu_opt_get(opts, "cmdline");
+ const char *initrd_filename = qemu_opt_get(opts, "initrd");
PCIBus *pci_bus;
CPUState *env;
uint64_t elf_entry;
@@ -220,11 +220,12 @@ static struct __attribute__((__packed__))
char kernel_cmdline[256];
} boot_params;
-static void r2d_init(ram_addr_t ram_size,
- const char *boot_device,
- const char *kernel_filename, const char *kernel_cmdline,
- const char *initrd_filename, const char *cpu_model)
+static void r2d_init(QemuOpts *opts)
{
+ const char *kernel_filename = qemu_opt_get(opts, "kernel");
+ const char *kernel_cmdline = qemu_opt_get(opts, "cmdline");
+ const char *initrd_filename = qemu_opt_get(opts, "initrd");
+ const char *cpu_model = qemu_opt_get(opts, "cpu");
CPUState *env;
struct SH7750State *s;
ram_addr_t sdram_addr;
@@ -368,11 +368,14 @@ static void realview_init(ram_addr_t ram_size,
arm_load_kernel(first_cpu, &realview_binfo);
}
-static void realview_eb_init(ram_addr_t ram_size,
- const char *boot_device,
- const char *kernel_filename, const char *kernel_cmdline,
- const char *initrd_filename, const char *cpu_model)
+static void realview_eb_init(QemuOpts *opts)
{
+ ram_addr_t ram_size = qemu_opt_get_size(opts, "ram_size", 0);
+ const char *boot_device = qemu_opt_get(opts, "boot_device");
+ const char *kernel_filename = qemu_opt_get(opts, "kernel");
+ const char *kernel_cmdline = qemu_opt_get(opts, "cmdline");
+ const char *initrd_filename = qemu_opt_get(opts, "initrd");
+ const char *cpu_model = qemu_opt_get(opts, "cpu");
if (!cpu_model) {
cpu_model = "arm926";
}
@@ -380,11 +383,14 @@ static void realview_eb_init(ram_addr_t ram_size,
initrd_filename, cpu_model, BOARD_EB);
}
-static void realview_eb_mpcore_init(ram_addr_t ram_size,
- const char *boot_device,
- const char *kernel_filename, const char *kernel_cmdline,
- const char *initrd_filename, const char *cpu_model)
+static void realview_eb_mpcore_init(QemuOpts *opts)
{
+ ram_addr_t ram_size = qemu_opt_get_size(opts, "ram_size", 0);
+ const char *boot_device = qemu_opt_get(opts, "boot_device");
+ const char *kernel_filename = qemu_opt_get(opts, "kernel");
+ const char *kernel_cmdline = qemu_opt_get(opts, "cmdline");
+ const char *initrd_filename = qemu_opt_get(opts, "initrd");
+ const char *cpu_model = qemu_opt_get(opts, "cpu");
if (!cpu_model) {
cpu_model = "arm11mpcore";
}
@@ -392,11 +398,14 @@ static void realview_eb_mpcore_init(ram_addr_t ram_size,
initrd_filename, cpu_model, BOARD_EB_MPCORE);
}
-static void realview_pb_a8_init(ram_addr_t ram_size,
- const char *boot_device,
- const char *kernel_filename, const char *kernel_cmdline,
- const char *initrd_filename, const char *cpu_model)
+static void realview_pb_a8_init(QemuOpts *opts)
{
+ ram_addr_t ram_size = qemu_opt_get_size(opts, "ram_size", 0);
+ const char *boot_device = qemu_opt_get(opts, "boot_device");
+ const char *kernel_filename = qemu_opt_get(opts, "kernel");
+ const char *kernel_cmdline = qemu_opt_get(opts, "cmdline");
+ const char *initrd_filename = qemu_opt_get(opts, "initrd");
+ const char *cpu_model = qemu_opt_get(opts, "cpu");
if (!cpu_model) {
cpu_model = "cortex-a8";
}
@@ -404,11 +413,14 @@ static void realview_pb_a8_init(ram_addr_t ram_size,
initrd_filename, cpu_model, BOARD_PB_A8);
}
-static void realview_pbx_a9_init(ram_addr_t ram_size,
- const char *boot_device,
- const char *kernel_filename, const char *kernel_cmdline,
- const char *initrd_filename, const char *cpu_model)
+static void realview_pbx_a9_init(QemuOpts *opts)
{
+ ram_addr_t ram_size = qemu_opt_get_size(opts, "ram_size", 0);
+ const char *boot_device = qemu_opt_get(opts, "boot_device");
+ const char *kernel_filename = qemu_opt_get(opts, "kernel");
+ const char *kernel_cmdline = qemu_opt_get(opts, "cmdline");
+ const char *initrd_filename = qemu_opt_get(opts, "initrd");
+ const char *cpu_model = qemu_opt_get(opts, "cpu");
if (!cpu_model) {
cpu_model = "cortex-a9";
}
@@ -132,13 +132,14 @@ int s390_virtio_hypercall(CPUState *env)
}
/* PC hardware initialisation */
-static void s390_init(ram_addr_t ram_size,
- const char *boot_device,
- const char *kernel_filename,
- const char *kernel_cmdline,
- const char *initrd_filename,
- const char *cpu_model)
+static void s390_init(QemuOpts *opts)
{
+ ram_addr_t ram_size = qemu_opt_get_size(opts, "ram_size", 0);
+ const char *boot_device = qemu_opt_get(opts, "boot_device");
+ const char *kernel_filename = qemu_opt_get(opts, "kernel");
+ const char *kernel_cmdline = qemu_opt_get(opts, "cmdline");
+ const char *initrd_filename = qemu_opt_get(opts, "initrd");
+ const char *cpu_model = qemu_opt_get(opts, "cpu");
CPUState *env = NULL;
ram_addr_t ram_addr;
ram_addr_t kernel_size = 0;
@@ -47,11 +47,9 @@ void pic_info(Monitor *mon)
/* XXXXX */
}
-static void shix_init(ram_addr_t ram_size,
- const char *boot_device,
- const char *kernel_filename, const char *kernel_cmdline,
- const char *initrd_filename, const char *cpu_model)
+static void shix_init(QemuOpts *opts)
{
+ const char *cpu_model = qemu_opt_get(opts, "cpu");
int ret;
CPUState *env;
struct SH7750State *s;
@@ -1001,38 +1001,46 @@ static void spitz_common_init(ram_addr_t ram_size,
sl_bootparam_write(SL_PXA_PARAM_BASE);
}
-static void spitz_init(ram_addr_t ram_size,
- const char *boot_device,
- const char *kernel_filename, const char *kernel_cmdline,
- const char *initrd_filename, const char *cpu_model)
+static void spitz_init(QemuOpts *opts)
{
+ ram_addr_t ram_size = qemu_opt_get_size(opts, "ram_size", 0);
+ const char *kernel_filename = qemu_opt_get(opts, "kernel");
+ const char *kernel_cmdline = qemu_opt_get(opts, "cmdline");
+ const char *initrd_filename = qemu_opt_get(opts, "initrd");
+ const char *cpu_model = qemu_opt_get(opts, "cpu");
spitz_common_init(ram_size, kernel_filename,
kernel_cmdline, initrd_filename, cpu_model, spitz, 0x2c9);
}
-static void borzoi_init(ram_addr_t ram_size,
- const char *boot_device,
- const char *kernel_filename, const char *kernel_cmdline,
- const char *initrd_filename, const char *cpu_model)
+static void borzoi_init(QemuOpts *opts)
{
+ ram_addr_t ram_size = qemu_opt_get_size(opts, "ram_size", 0);
+ const char *kernel_filename = qemu_opt_get(opts, "kernel");
+ const char *kernel_cmdline = qemu_opt_get(opts, "cmdline");
+ const char *initrd_filename = qemu_opt_get(opts, "initrd");
+ const char *cpu_model = qemu_opt_get(opts, "cpu");
spitz_common_init(ram_size, kernel_filename,
kernel_cmdline, initrd_filename, cpu_model, borzoi, 0x33f);
}
-static void akita_init(ram_addr_t ram_size,
- const char *boot_device,
- const char *kernel_filename, const char *kernel_cmdline,
- const char *initrd_filename, const char *cpu_model)
+static void akita_init(QemuOpts *opts)
{
+ ram_addr_t ram_size = qemu_opt_get_size(opts, "ram_size", 0);
+ const char *kernel_filename = qemu_opt_get(opts, "kernel");
+ const char *kernel_cmdline = qemu_opt_get(opts, "cmdline");
+ const char *initrd_filename = qemu_opt_get(opts, "initrd");
+ const char *cpu_model = qemu_opt_get(opts, "cpu");
spitz_common_init(ram_size, kernel_filename,
kernel_cmdline, initrd_filename, cpu_model, akita, 0x2e8);
}
-static void terrier_init(ram_addr_t ram_size,
- const char *boot_device,
- const char *kernel_filename, const char *kernel_cmdline,
- const char *initrd_filename, const char *cpu_model)
+static void terrier_init(QemuOpts *opts)
{
+ ram_addr_t ram_size = qemu_opt_get_size(opts, "ram_size", 0);
+ const char *kernel_filename = qemu_opt_get(opts, "kernel");
+ const char *kernel_cmdline = qemu_opt_get(opts, "cmdline");
+ const char *initrd_filename = qemu_opt_get(opts, "initrd");
+ const char *cpu_model = qemu_opt_get(opts, "cpu");
spitz_common_init(ram_size, kernel_filename,
kernel_cmdline, initrd_filename, cpu_model, terrier, 0x33f);
}
@@ -1412,19 +1412,17 @@ static void stellaris_init(const char *kernel_filename, const char *cpu_model,
}
/* FIXME: Figure out how to generate these from stellaris_boards. */
-static void lm3s811evb_init(ram_addr_t ram_size,
- const char *boot_device,
- const char *kernel_filename, const char *kernel_cmdline,
- const char *initrd_filename, const char *cpu_model)
+static void lm3s811evb_init(QemuOpts *opts)
{
+ const char *kernel_filename = qemu_opt_get(opts, "kernel");
+ const char *cpu_model = qemu_opt_get(opts, "cpu");
stellaris_init(kernel_filename, cpu_model, &stellaris_boards[0]);
}
-static void lm3s6965evb_init(ram_addr_t ram_size,
- const char *boot_device,
- const char *kernel_filename, const char *kernel_cmdline,
- const char *initrd_filename, const char *cpu_model)
+static void lm3s6965evb_init(QemuOpts *opts)
{
+ const char *kernel_filename = qemu_opt_get(opts, "kernel");
+ const char *cpu_model = qemu_opt_get(opts, "cpu");
stellaris_init(kernel_filename, cpu_model, &stellaris_boards[1]);
}
@@ -1199,92 +1199,118 @@ static const struct sun4m_hwdef sun4m_hwdefs[] = {
};
/* SPARCstation 5 hardware initialisation */
-static void ss5_init(ram_addr_t RAM_size,
- const char *boot_device,
- const char *kernel_filename, const char *kernel_cmdline,
- const char *initrd_filename, const char *cpu_model)
+static void ss5_init(QemuOpts *opts)
{
+ ram_addr_t RAM_size = qemu_opt_get_size(opts, "ram_size", 0);
+ const char *boot_device = qemu_opt_get(opts, "boot_device");
+ const char *kernel_filename = qemu_opt_get(opts, "kernel");
+ const char *kernel_cmdline = qemu_opt_get(opts, "cmdline");
+ const char *initrd_filename = qemu_opt_get(opts, "initrd");
+ const char *cpu_model = qemu_opt_get(opts, "cpu");
sun4m_hw_init(&sun4m_hwdefs[0], RAM_size, boot_device, kernel_filename,
kernel_cmdline, initrd_filename, cpu_model);
}
/* SPARCstation 10 hardware initialisation */
-static void ss10_init(ram_addr_t RAM_size,
- const char *boot_device,
- const char *kernel_filename, const char *kernel_cmdline,
- const char *initrd_filename, const char *cpu_model)
+static void ss10_init(QemuOpts *opts)
{
+ ram_addr_t RAM_size = qemu_opt_get_size(opts, "ram_size", 0);
+ const char *boot_device = qemu_opt_get(opts, "boot_device");
+ const char *kernel_filename = qemu_opt_get(opts, "kernel");
+ const char *kernel_cmdline = qemu_opt_get(opts, "cmdline");
+ const char *initrd_filename = qemu_opt_get(opts, "initrd");
+ const char *cpu_model = qemu_opt_get(opts, "cpu");
sun4m_hw_init(&sun4m_hwdefs[1], RAM_size, boot_device, kernel_filename,
kernel_cmdline, initrd_filename, cpu_model);
}
/* SPARCserver 600MP hardware initialisation */
-static void ss600mp_init(ram_addr_t RAM_size,
- const char *boot_device,
- const char *kernel_filename,
- const char *kernel_cmdline,
- const char *initrd_filename, const char *cpu_model)
+static void ss600mp_init(QemuOpts *opts)
{
+ ram_addr_t RAM_size = qemu_opt_get_size(opts, "ram_size", 0);
+ const char *boot_device = qemu_opt_get(opts, "boot_device");
+ const char *kernel_filename = qemu_opt_get(opts, "kernel");
+ const char *kernel_cmdline = qemu_opt_get(opts, "cmdline");
+ const char *initrd_filename = qemu_opt_get(opts, "initrd");
+ const char *cpu_model = qemu_opt_get(opts, "cpu");
sun4m_hw_init(&sun4m_hwdefs[2], RAM_size, boot_device, kernel_filename,
kernel_cmdline, initrd_filename, cpu_model);
}
/* SPARCstation 20 hardware initialisation */
-static void ss20_init(ram_addr_t RAM_size,
- const char *boot_device,
- const char *kernel_filename, const char *kernel_cmdline,
- const char *initrd_filename, const char *cpu_model)
+static void ss20_init(QemuOpts *opts)
{
+ ram_addr_t RAM_size = qemu_opt_get_size(opts, "ram_size", 0);
+ const char *boot_device = qemu_opt_get(opts, "boot_device");
+ const char *kernel_filename = qemu_opt_get(opts, "kernel");
+ const char *kernel_cmdline = qemu_opt_get(opts, "cmdline");
+ const char *initrd_filename = qemu_opt_get(opts, "initrd");
+ const char *cpu_model = qemu_opt_get(opts, "cpu");
sun4m_hw_init(&sun4m_hwdefs[3], RAM_size, boot_device, kernel_filename,
kernel_cmdline, initrd_filename, cpu_model);
}
/* SPARCstation Voyager hardware initialisation */
-static void vger_init(ram_addr_t RAM_size,
- const char *boot_device,
- const char *kernel_filename, const char *kernel_cmdline,
- const char *initrd_filename, const char *cpu_model)
+static void vger_init(QemuOpts *opts)
{
+ ram_addr_t RAM_size = qemu_opt_get_size(opts, "ram_size", 0);
+ const char *boot_device = qemu_opt_get(opts, "boot_device");
+ const char *kernel_filename = qemu_opt_get(opts, "kernel");
+ const char *kernel_cmdline = qemu_opt_get(opts, "cmdline");
+ const char *initrd_filename = qemu_opt_get(opts, "initrd");
+ const char *cpu_model = qemu_opt_get(opts, "cpu");
sun4m_hw_init(&sun4m_hwdefs[4], RAM_size, boot_device, kernel_filename,
kernel_cmdline, initrd_filename, cpu_model);
}
/* SPARCstation LX hardware initialisation */
-static void ss_lx_init(ram_addr_t RAM_size,
- const char *boot_device,
- const char *kernel_filename, const char *kernel_cmdline,
- const char *initrd_filename, const char *cpu_model)
+static void ss_lx_init(QemuOpts *opts)
{
+ ram_addr_t RAM_size = qemu_opt_get_size(opts, "ram_size", 0);
+ const char *boot_device = qemu_opt_get(opts, "boot_device");
+ const char *kernel_filename = qemu_opt_get(opts, "kernel");
+ const char *kernel_cmdline = qemu_opt_get(opts, "cmdline");
+ const char *initrd_filename = qemu_opt_get(opts, "initrd");
+ const char *cpu_model = qemu_opt_get(opts, "cpu");
sun4m_hw_init(&sun4m_hwdefs[5], RAM_size, boot_device, kernel_filename,
kernel_cmdline, initrd_filename, cpu_model);
}
/* SPARCstation 4 hardware initialisation */
-static void ss4_init(ram_addr_t RAM_size,
- const char *boot_device,
- const char *kernel_filename, const char *kernel_cmdline,
- const char *initrd_filename, const char *cpu_model)
+static void ss4_init(QemuOpts *opts)
{
+ ram_addr_t RAM_size = qemu_opt_get_size(opts, "ram_size", 0);
+ const char *boot_device = qemu_opt_get(opts, "boot_device");
+ const char *kernel_filename = qemu_opt_get(opts, "kernel");
+ const char *kernel_cmdline = qemu_opt_get(opts, "cmdline");
+ const char *initrd_filename = qemu_opt_get(opts, "initrd");
+ const char *cpu_model = qemu_opt_get(opts, "cpu");
sun4m_hw_init(&sun4m_hwdefs[6], RAM_size, boot_device, kernel_filename,
kernel_cmdline, initrd_filename, cpu_model);
}
/* SPARCClassic hardware initialisation */
-static void scls_init(ram_addr_t RAM_size,
- const char *boot_device,
- const char *kernel_filename, const char *kernel_cmdline,
- const char *initrd_filename, const char *cpu_model)
+static void scls_init(QemuOpts *opts)
{
+ ram_addr_t RAM_size = qemu_opt_get_size(opts, "ram_size", 0);
+ const char *boot_device = qemu_opt_get(opts, "boot_device");
+ const char *kernel_filename = qemu_opt_get(opts, "kernel");
+ const char *kernel_cmdline = qemu_opt_get(opts, "cmdline");
+ const char *initrd_filename = qemu_opt_get(opts, "initrd");
+ const char *cpu_model = qemu_opt_get(opts, "cpu");
sun4m_hw_init(&sun4m_hwdefs[7], RAM_size, boot_device, kernel_filename,
kernel_cmdline, initrd_filename, cpu_model);
}
/* SPARCbook hardware initialisation */
-static void sbook_init(ram_addr_t RAM_size,
- const char *boot_device,
- const char *kernel_filename, const char *kernel_cmdline,
- const char *initrd_filename, const char *cpu_model)
+static void sbook_init(QemuOpts *opts)
{
+ ram_addr_t RAM_size = qemu_opt_get_size(opts, "ram_size", 0);
+ const char *boot_device = qemu_opt_get(opts, "boot_device");
+ const char *kernel_filename = qemu_opt_get(opts, "kernel");
+ const char *kernel_cmdline = qemu_opt_get(opts, "cmdline");
+ const char *initrd_filename = qemu_opt_get(opts, "initrd");
+ const char *cpu_model = qemu_opt_get(opts, "cpu");
sun4m_hw_init(&sun4m_hwdefs[8], RAM_size, boot_device, kernel_filename,
kernel_cmdline, initrd_filename, cpu_model);
}
@@ -1544,21 +1570,27 @@ static void sun4d_hw_init(const struct sun4d_hwdef *hwdef, ram_addr_t RAM_size,
}
/* SPARCserver 1000 hardware initialisation */
-static void ss1000_init(ram_addr_t RAM_size,
- const char *boot_device,
- const char *kernel_filename, const char *kernel_cmdline,
- const char *initrd_filename, const char *cpu_model)
+static void ss1000_init(QemuOpts *opts)
{
+ ram_addr_t RAM_size = qemu_opt_get_size(opts, "ram_size", 0);
+ const char *boot_device = qemu_opt_get(opts, "boot_device");
+ const char *kernel_filename = qemu_opt_get(opts, "kernel");
+ const char *kernel_cmdline = qemu_opt_get(opts, "cmdline");
+ const char *initrd_filename = qemu_opt_get(opts, "initrd");
+ const char *cpu_model = qemu_opt_get(opts, "cpu");
sun4d_hw_init(&sun4d_hwdefs[0], RAM_size, boot_device, kernel_filename,
kernel_cmdline, initrd_filename, cpu_model);
}
/* SPARCcenter 2000 hardware initialisation */
-static void ss2000_init(ram_addr_t RAM_size,
- const char *boot_device,
- const char *kernel_filename, const char *kernel_cmdline,
- const char *initrd_filename, const char *cpu_model)
+static void ss2000_init(QemuOpts *opts)
{
+ ram_addr_t RAM_size = qemu_opt_get_size(opts, "ram_size", 0);
+ const char *boot_device = qemu_opt_get(opts, "boot_device");
+ const char *kernel_filename = qemu_opt_get(opts, "kernel");
+ const char *kernel_cmdline = qemu_opt_get(opts, "cmdline");
+ const char *initrd_filename = qemu_opt_get(opts, "initrd");
+ const char *cpu_model = qemu_opt_get(opts, "cpu");
sun4d_hw_init(&sun4d_hwdefs[1], RAM_size, boot_device, kernel_filename,
kernel_cmdline, initrd_filename, cpu_model);
}
@@ -1734,11 +1766,14 @@ static void sun4c_hw_init(const struct sun4c_hwdef *hwdef, ram_addr_t RAM_size,
}
/* SPARCstation 2 hardware initialisation */
-static void ss2_init(ram_addr_t RAM_size,
- const char *boot_device,
- const char *kernel_filename, const char *kernel_cmdline,
- const char *initrd_filename, const char *cpu_model)
+static void ss2_init(QemuOpts *opts)
{
+ ram_addr_t RAM_size = qemu_opt_get_size(opts, "ram_size", 0);
+ const char *boot_device = qemu_opt_get(opts, "boot_device");
+ const char *kernel_filename = qemu_opt_get(opts, "kernel");
+ const char *kernel_cmdline = qemu_opt_get(opts, "cmdline");
+ const char *initrd_filename = qemu_opt_get(opts, "initrd");
+ const char *cpu_model = qemu_opt_get(opts, "cpu");
sun4c_hw_init(&sun4c_hwdefs[0], RAM_size, boot_device, kernel_filename,
kernel_cmdline, initrd_filename, cpu_model);
}
@@ -881,31 +881,40 @@ static const struct hwdef hwdefs[] = {
};
/* Sun4u hardware initialisation */
-static void sun4u_init(ram_addr_t RAM_size,
- const char *boot_devices,
- const char *kernel_filename, const char *kernel_cmdline,
- const char *initrd_filename, const char *cpu_model)
-{
+static void sun4u_init(QemuOpts *opts)
+{
+ ram_addr_t RAM_size = qemu_opt_get_size(opts, "ram_size", 0);
+ const char *boot_devices = qemu_opt_get(opts, "boot_device");
+ const char *kernel_filename = qemu_opt_get(opts, "kernel");
+ const char *kernel_cmdline = qemu_opt_get(opts, "cmdline");
+ const char *initrd_filename = qemu_opt_get(opts, "initrd");
+ const char *cpu_model = qemu_opt_get(opts, "cpu");
sun4uv_init(RAM_size, boot_devices, kernel_filename,
kernel_cmdline, initrd_filename, cpu_model, &hwdefs[0]);
}
/* Sun4v hardware initialisation */
-static void sun4v_init(ram_addr_t RAM_size,
- const char *boot_devices,
- const char *kernel_filename, const char *kernel_cmdline,
- const char *initrd_filename, const char *cpu_model)
-{
+static void sun4v_init(QemuOpts *opts)
+{
+ ram_addr_t RAM_size = qemu_opt_get_size(opts, "ram_size", 0);
+ const char *boot_devices = qemu_opt_get(opts, "boot_device");
+ const char *kernel_filename = qemu_opt_get(opts, "kernel");
+ const char *kernel_cmdline = qemu_opt_get(opts, "cmdline");
+ const char *initrd_filename = qemu_opt_get(opts, "initrd");
+ const char *cpu_model = qemu_opt_get(opts, "cpu");
sun4uv_init(RAM_size, boot_devices, kernel_filename,
kernel_cmdline, initrd_filename, cpu_model, &hwdefs[1]);
}
/* Niagara hardware initialisation */
-static void niagara_init(ram_addr_t RAM_size,
- const char *boot_devices,
- const char *kernel_filename, const char *kernel_cmdline,
- const char *initrd_filename, const char *cpu_model)
-{
+static void niagara_init(QemuOpts *opts)
+{
+ ram_addr_t RAM_size = qemu_opt_get_size(opts, "ram_size", 0);
+ const char *boot_devices = qemu_opt_get(opts, "boot_device");
+ const char *kernel_filename = qemu_opt_get(opts, "kernel");
+ const char *kernel_cmdline = qemu_opt_get(opts, "cmdline");
+ const char *initrd_filename = qemu_opt_get(opts, "initrd");
+ const char *cpu_model = qemu_opt_get(opts, "cpu");
sun4uv_init(RAM_size, boot_devices, kernel_filename,
kernel_cmdline, initrd_filename, cpu_model, &hwdefs[2]);
}
@@ -30,11 +30,13 @@
static struct arm_boot_info syborg_binfo;
-static void syborg_init(ram_addr_t ram_size,
- const char *boot_device,
- const char *kernel_filename, const char *kernel_cmdline,
- const char *initrd_filename, const char *cpu_model)
+static void syborg_init(QemuOpts *opts)
{
+ ram_addr_t ram_size = qemu_opt_get_size(opts, "ram_size", 0);
+ const char *kernel_filename = qemu_opt_get(opts, "kernel");
+ const char *kernel_cmdline = qemu_opt_get(opts, "cmdline");
+ const char *initrd_filename = qemu_opt_get(opts, "initrd");
+ const char *cpu_model = qemu_opt_get(opts, "cpu");
CPUState *env;
qemu_irq *cpu_pic;
qemu_irq pic[64];
@@ -200,11 +200,12 @@ static struct arm_boot_info tosa_binfo = {
.ram_size = 0x04000000,
};
-static void tosa_init(ram_addr_t ram_size,
- const char *boot_device,
- const char *kernel_filename, const char *kernel_cmdline,
- const char *initrd_filename, const char *cpu_model)
+static void tosa_init(QemuOpts *opts)
{
+ const char *kernel_filename = qemu_opt_get(opts, "kernel");
+ const char *kernel_cmdline = qemu_opt_get(opts, "cmdline");
+ const char *initrd_filename = qemu_opt_get(opts, "initrd");
+ const char *cpu_model = qemu_opt_get(opts, "cpu");
PXA2xxState *cpu;
TC6393xbState *tmio;
ScoopInfo *scp0, *scp1;
@@ -289,22 +289,28 @@ static void versatile_init(ram_addr_t ram_size,
arm_load_kernel(env, &versatile_binfo);
}
-static void vpb_init(ram_addr_t ram_size,
- const char *boot_device,
- const char *kernel_filename, const char *kernel_cmdline,
- const char *initrd_filename, const char *cpu_model)
+static void vpb_init(QemuOpts *opts)
{
+ ram_addr_t ram_size = qemu_opt_get_size(opts, "ram_size", 0);
+ const char *boot_device = qemu_opt_get(opts, "boot_device");
+ const char *kernel_filename = qemu_opt_get(opts, "kernel");
+ const char *kernel_cmdline = qemu_opt_get(opts, "cmdline");
+ const char *initrd_filename = qemu_opt_get(opts, "initrd");
+ const char *cpu_model = qemu_opt_get(opts, "cpu");
versatile_init(ram_size,
boot_device,
kernel_filename, kernel_cmdline,
initrd_filename, cpu_model, 0x183);
}
-static void vab_init(ram_addr_t ram_size,
- const char *boot_device,
- const char *kernel_filename, const char *kernel_cmdline,
- const char *initrd_filename, const char *cpu_model)
+static void vab_init(QemuOpts *opts)
{
+ ram_addr_t ram_size = qemu_opt_get_size(opts, "ram_size", 0);
+ const char *boot_device = qemu_opt_get(opts, "boot_device");
+ const char *kernel_filename = qemu_opt_get(opts, "kernel");
+ const char *kernel_cmdline = qemu_opt_get(opts, "cmdline");
+ const char *initrd_filename = qemu_opt_get(opts, "initrd");
+ const char *cpu_model = qemu_opt_get(opts, "cpu");
versatile_init(ram_size,
boot_device,
kernel_filename, kernel_cmdline,
@@ -29,13 +29,13 @@
#include "xen_backend.h"
#include "xen_domainbuild.h"
-static void xen_init_pv(ram_addr_t ram_size,
- const char *boot_device,
- const char *kernel_filename,
- const char *kernel_cmdline,
- const char *initrd_filename,
- const char *cpu_model)
+static void xen_init_pv(QemuOpts *opts)
{
+ ram_addr_t ram_size = qemu_opt_get_size(opts, "ram_size", 0);
+ const char *kernel_filename = qemu_opt_get(opts, "kernel");
+ const char *kernel_cmdline = qemu_opt_get(opts, "cmdline");
+ const char *initrd_filename = qemu_opt_get(opts, "initrd");
+ const char *cpu_model = qemu_opt_get(opts, "cpu");
CPUState *env;
DriveInfo *dinfo;
int i;
@@ -3775,12 +3775,7 @@ int main(int argc, char **argv, char **envp)
exit(1);
}
- machine->init(qemu_opt_get_size(opts, "ram_size"),
- qemu_opt_get(opts, "boot_device"),
- qemu_opt_get(opts, "kernel"),
- qemu_opt_get(opts, "cmdline"),
- qemu_opt_get(opts, "initrd"),
- qemu_opt_get(opts, "cpu"));
+ machine->init(opts);
qemu_opts_del(opts);
The current method of passing arguments to machine init functions is haphazard. We pass some arguments as via the init function. We pass a lot of other arguments as global variables some that are supported by a lot of boards and others that are only supported by one board. It's very difficult to introduce new parameters in the function signature because of the number of files that have to be touched. There is no central way to tie all of the machine options into the configuration file. This patch redefines the machine init signature to just take a QemuOpts. It also passes the machine as the first parameter to allow multiple boards to be defined with one init function. Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>