Eduardo Habkost
2012-Oct-05 18:37 UTC
[QEMU PATCH] create struct for machine initialization arguments
This should help us to: - More easily add or remove machine initialization arguments without having to change every single machine init function; - More easily make mechanical changes involving the machine init functions in the future; - Let machine initialization forward the init arguments to other functions more easily. This change was half-mechanical process: first the struct was added with the local ram_size, boot_device, kernel_*, initrd_*, and cpu_model local variable initialization to all functions. Then the compiler helped me locate the local variables that are unused, so they could be removed. Signed-off-by: Eduardo Habkost <ehabkost@redhat.com> --- hw/alpha_dp264.c | 12 ++-- hw/an5206.c | 8 +-- hw/axis_dev88.c | 9 +-- hw/boards.h | 16 +++-- hw/collie.c | 9 +-- hw/dummy_m68k.c | 8 +-- hw/exynos4_boards.c | 16 ++--- hw/gumstix.c | 11 +--- hw/highbank.c | 10 ++-- hw/integratorcp.c | 10 ++-- hw/kzm.c | 10 ++-- hw/leon3.c | 10 ++-- hw/lm32_boards.c | 18 +++--- hw/mainstone.c | 10 ++-- hw/mcf5208.c | 8 +-- hw/milkymist.c | 10 ++-- hw/mips_fulong2e.c | 9 ++- hw/mips_jazz.c | 14 ++--- hw/mips_malta.c | 10 ++-- hw/mips_mipssim.c | 10 ++-- hw/mips_r4k.c | 10 ++-- hw/musicpal.c | 9 +-- hw/nseries.c | 22 ++++--- hw/null-machine.c | 7 +-- hw/omap_sx1.c | 22 ++++--- hw/openrisc_sim.c | 10 ++-- hw/palm.c | 9 +-- hw/pc_piix.c | 42 +++++++------ hw/petalogix_ml605_mmu.c | 8 +-- hw/petalogix_s3adsp1800_mmu.c | 8 +-- hw/ppc/e500plat.c | 13 +++-- hw/ppc/mpc8544ds.c | 13 +++-- hw/ppc405_boards.c | 25 ++++---- hw/ppc440_bamboo.c | 12 ++-- hw/ppc_newworld.c | 13 +++-- hw/ppc_oldworld.c | 13 +++-- hw/ppc_prep.c | 13 +++-- hw/puv3.c | 8 ++- hw/r2d.c | 9 +-- hw/realview.c | 44 +++++++++----- hw/s390-virtio.c | 13 +++-- hw/shix.c | 6 +- hw/spapr.c | 13 +++-- hw/spitz.c | 40 ++++++++----- hw/stellaris.c | 14 ++--- hw/sun4m.c | 133 ++++++++++++++++++++++++++---------------- hw/sun4u.c | 39 ++++++++----- hw/tosa.c | 9 +-- hw/versatilepb.c | 22 ++++--- hw/vexpress.c | 26 +++++---- hw/virtex_ml507.c | 10 ++-- hw/xen_machine_pv.c | 13 +++-- hw/xilinx_zynq.c | 9 ++- hw/xtensa_lx60.c | 22 ++++--- hw/xtensa_sim.c | 11 ++-- hw/z2.c | 9 +-- vl.c | 9 ++- 57 files changed, 520 insertions(+), 406 deletions(-) diff --git a/hw/alpha_dp264.c b/hw/alpha_dp264.c index 9eb939f..2c2e237 100644 --- a/hw/alpha_dp264.c +++ b/hw/alpha_dp264.c @@ -42,13 +42,13 @@ static int clipper_pci_map_irq(PCIDevice *d, int irq_num) return (slot + 1) * 4 + irq_num; } -static void clipper_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 clipper_init(QEMUMachineInitArgs *args) { + ram_addr_t ram_size = args->ram_size; + const char *cpu_model = args->cpu_model; + const char *kernel_filename = args->kernel_filename; + const char *kernel_cmdline = args->kernel_cmdline; + const char *initrd_filename = args->initrd_filename; CPUAlphaState *cpus[4]; PCIBus *pci_bus; ISABus *isa_bus; diff --git a/hw/an5206.c b/hw/an5206.c index 25407c0..042c5fc 100644 --- a/hw/an5206.c +++ b/hw/an5206.c @@ -19,11 +19,11 @@ /* 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(QEMUMachineInitArgs *args) { + ram_addr_t ram_size = args->ram_size; + const char *cpu_model = args->cpu_model; + const char *kernel_filename = args->kernel_filename; CPUM68KState *env; int kernel_size; uint64_t elf_entry; diff --git a/hw/axis_dev88.c b/hw/axis_dev88.c index eab6327..2fd7356 100644 --- a/hw/axis_dev88.c +++ b/hw/axis_dev88.c @@ -242,11 +242,12 @@ static const MemoryRegionOps gpio_ops = { static struct cris_load_info li; 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(QEMUMachineInitArgs *args) { + ram_addr_t ram_size = args->ram_size; + const char *cpu_model = args->cpu_model; + const char *kernel_filename = args->kernel_filename; + const char *kernel_cmdline = args->kernel_cmdline; CRISCPU *cpu; CPUCRISState *env; DeviceState *dev; diff --git a/hw/boards.h b/hw/boards.h index a2e0a54..813d0e5 100644 --- a/hw/boards.h +++ b/hw/boards.h @@ -5,12 +5,16 @@ #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 QEMUMachineInitArgs { + 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; +} QEMUMachineInitArgs; + +typedef void QEMUMachineInitFunc(QEMUMachineInitArgs *args); typedef void QEMUMachineResetFunc(void); diff --git a/hw/collie.c b/hw/collie.c index 56f89a9..695982a 100644 --- a/hw/collie.c +++ b/hw/collie.c @@ -23,11 +23,12 @@ static struct arm_boot_info collie_binfo = { .ram_size = 0x20000000, }; -static void collie_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 collie_init(QEMUMachineInitArgs *args) { + const char *cpu_model = args->cpu_model; + const char *kernel_filename = args->kernel_filename; + const char *kernel_cmdline = args->kernel_cmdline; + const char *initrd_filename = args->initrd_filename; StrongARMState *s; DriveInfo *dinfo; MemoryRegion *sysmem = get_system_memory(); diff --git a/hw/dummy_m68k.c b/hw/dummy_m68k.c index 7cc7a99..f436a0c 100644 --- a/hw/dummy_m68k.c +++ b/hw/dummy_m68k.c @@ -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(QEMUMachineInitArgs *args) { + ram_addr_t ram_size = args->ram_size; + const char *cpu_model = args->cpu_model; + const char *kernel_filename = args->kernel_filename; CPUM68KState *env; MemoryRegion *address_space_mem = get_system_memory(); MemoryRegion *ram = g_new(MemoryRegion, 1); diff --git a/hw/exynos4_boards.c b/hw/exynos4_boards.c index 4bb0a60..4951064 100644 --- a/hw/exynos4_boards.c +++ b/hw/exynos4_boards.c @@ -130,22 +130,22 @@ static Exynos4210State *exynos4_boards_init_common( exynos4_board_ram_size[board_type]); } -static void nuri_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 nuri_init(QEMUMachineInitArgs *args) { + const char *kernel_filename = args->kernel_filename; + const char *kernel_cmdline = args->kernel_cmdline; + const char *initrd_filename = args->initrd_filename; exynos4_boards_init_common(kernel_filename, kernel_cmdline, initrd_filename, EXYNOS4_BOARD_NURI); arm_load_kernel(arm_env_get_cpu(first_cpu), &exynos4_board_binfo); } -static void smdkc210_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 smdkc210_init(QEMUMachineInitArgs *args) { + const char *kernel_filename = args->kernel_filename; + const char *kernel_cmdline = args->kernel_cmdline; + const char *initrd_filename = args->initrd_filename; Exynos4210State *s = exynos4_boards_init_common(kernel_filename, kernel_cmdline, initrd_filename, EXYNOS4_BOARD_SMDKC210); diff --git a/hw/gumstix.c b/hw/gumstix.c index 13a36ea..4103a88 100644 --- a/hw/gumstix.c +++ b/hw/gumstix.c @@ -45,10 +45,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(QEMUMachineInitArgs *args) { PXA2xxState *cpu; DriveInfo *dinfo; @@ -84,11 +81,9 @@ static void connex_init(ram_addr_t ram_size, qdev_get_gpio_in(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(QEMUMachineInitArgs *args) { + const char *cpu_model = args->cpu_model; PXA2xxState *cpu; DriveInfo *dinfo; int be; diff --git a/hw/highbank.c b/hw/highbank.c index 11aa131..15036b6 100644 --- a/hw/highbank.c +++ b/hw/highbank.c @@ -187,11 +187,13 @@ static struct arm_boot_info highbank_binfo; * 32-bit host, set the reg value of memory to 0xf7ff00000 in the * device tree and pass -m 2047 to QEMU. */ -static void highbank_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 highbank_init(QEMUMachineInitArgs *args) { + ram_addr_t ram_size = args->ram_size; + const char *cpu_model = args->cpu_model; + const char *kernel_filename = args->kernel_filename; + const char *kernel_cmdline = args->kernel_cmdline; + const char *initrd_filename = args->initrd_filename; DeviceState *dev; SysBusDevice *busdev; qemu_irq *irqp; diff --git a/hw/integratorcp.c b/hw/integratorcp.c index d0e2e90..ac0ea83 100644 --- a/hw/integratorcp.c +++ b/hw/integratorcp.c @@ -438,11 +438,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(QEMUMachineInitArgs *args) { + ram_addr_t ram_size = args->ram_size; + const char *cpu_model = args->cpu_model; + const char *kernel_filename = args->kernel_filename; + const char *kernel_cmdline = args->kernel_cmdline; + const char *initrd_filename = args->initrd_filename; ARMCPU *cpu; MemoryRegion *address_space_mem = get_system_memory(); MemoryRegion *ram = g_new(MemoryRegion, 1); diff --git a/hw/kzm.c b/hw/kzm.c index 68cd1b4..d1266d9 100644 --- a/hw/kzm.c +++ b/hw/kzm.c @@ -70,11 +70,13 @@ static struct arm_boot_info kzm_binfo = { .board_id = 1722, }; -static void kzm_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 kzm_init(QEMUMachineInitArgs *args) { + ram_addr_t ram_size = args->ram_size; + const char *cpu_model = args->cpu_model; + const char *kernel_filename = args->kernel_filename; + const char *kernel_cmdline = args->kernel_cmdline; + const char *initrd_filename = args->initrd_filename; ARMCPU *cpu; MemoryRegion *address_space_mem = get_system_memory(); MemoryRegion *ram = g_new(MemoryRegion, 1); diff --git a/hw/leon3.c b/hw/leon3.c index 878d3aa..6486b7b 100644 --- a/hw/leon3.c +++ b/hw/leon3.c @@ -94,13 +94,11 @@ static void leon3_set_pil_in(void *opaque, uint32_t pil_in) } } -static void leon3_generic_hw_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 leon3_generic_hw_init(QEMUMachineInitArgs *args) { + ram_addr_t ram_size = args->ram_size; + const char *cpu_model = args->cpu_model; + const char *kernel_filename = args->kernel_filename; SPARCCPU *cpu; CPUSPARCState *env; MemoryRegion *address_space_mem = get_system_memory(); diff --git a/hw/lm32_boards.c b/hw/lm32_boards.c index b76d800..c5a62c8 100644 --- a/hw/lm32_boards.c +++ b/hw/lm32_boards.c @@ -69,12 +69,10 @@ static void main_cpu_reset(void *opaque) env->deba = reset_info->flash_base; } -static void lm32_evr_init(ram_addr_t ram_size_not_used, - const char *boot_device, - const char *kernel_filename, - const char *kernel_cmdline, - const char *initrd_filename, const char *cpu_model) +static void lm32_evr_init(QEMUMachineInitArgs *args) { + const char *cpu_model = args->cpu_model; + const char *kernel_filename = args->kernel_filename; LM32CPU *cpu; CPULM32State *env; DriveInfo *dinfo; @@ -159,12 +157,12 @@ static void lm32_evr_init(ram_addr_t ram_size_not_used, qemu_register_reset(main_cpu_reset, reset_info); } -static void lm32_uclinux_init(ram_addr_t ram_size_not_used, - const char *boot_device, - const char *kernel_filename, - const char *kernel_cmdline, - const char *initrd_filename, const char *cpu_model) +static void lm32_uclinux_init(QEMUMachineInitArgs *args) { + const char *cpu_model = args->cpu_model; + const char *kernel_filename = args->kernel_filename; + const char *kernel_cmdline = args->kernel_cmdline; + const char *initrd_filename = args->initrd_filename; LM32CPU *cpu; CPULM32State *env; DriveInfo *dinfo; diff --git a/hw/mainstone.c b/hw/mainstone.c index 97687b6..c0d6034 100644 --- a/hw/mainstone.c +++ b/hw/mainstone.c @@ -171,11 +171,13 @@ static void mainstone_common_init(MemoryRegion *address_space_mem, arm_load_kernel(mpu->cpu, &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(QEMUMachineInitArgs *args) { + ram_addr_t ram_size = args->ram_size; + const char *cpu_model = args->cpu_model; + const char *kernel_filename = args->kernel_filename; + const char *kernel_cmdline = args->kernel_cmdline; + const char *initrd_filename = args->initrd_filename; mainstone_common_init(get_system_memory(), ram_size, kernel_filename, kernel_cmdline, initrd_filename, cpu_model, mainstone, 0x196); } diff --git a/hw/mcf5208.c b/hw/mcf5208.c index ee25b1b..688bc3c 100644 --- a/hw/mcf5208.c +++ b/hw/mcf5208.c @@ -187,11 +187,11 @@ static void mcf5208_sys_init(MemoryRegion *address_space, 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(QEMUMachineInitArgs *args) { + ram_addr_t ram_size = args->ram_size; + const char *cpu_model = args->cpu_model; + const char *kernel_filename = args->kernel_filename; CPUM68KState *env; int kernel_size; uint64_t elf_entry; diff --git a/hw/milkymist.c b/hw/milkymist.c index 2e7235b..ca9ed43 100644 --- a/hw/milkymist.c +++ b/hw/milkymist.c @@ -73,12 +73,12 @@ static void main_cpu_reset(void *opaque) } static void -milkymist_init(ram_addr_t ram_size_not_used, - const char *boot_device, - const char *kernel_filename, - const char *kernel_cmdline, - const char *initrd_filename, const char *cpu_model) +milkymist_init(QEMUMachineInitArgs *args) { + const char *cpu_model = args->cpu_model; + const char *kernel_filename = args->kernel_filename; + const char *kernel_cmdline = args->kernel_cmdline; + const char *initrd_filename = args->initrd_filename; LM32CPU *cpu; CPULM32State *env; int kernel_size; diff --git a/hw/mips_fulong2e.c b/hw/mips_fulong2e.c index 38e4b86..af7bb50 100644 --- a/hw/mips_fulong2e.c +++ b/hw/mips_fulong2e.c @@ -256,10 +256,13 @@ static void cpu_request_exit(void *opaque, int irq, int level) } } -static void mips_fulong2e_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 mips_fulong2e_init(QEMUMachineInitArgs *args) { + ram_addr_t ram_size = args->ram_size; + const char *cpu_model = args->cpu_model; + const char *kernel_filename = args->kernel_filename; + const char *kernel_cmdline = args->kernel_cmdline; + const char *initrd_filename = args->initrd_filename; char *filename; MemoryRegion *address_space_mem = get_system_memory(); MemoryRegion *ram = g_new(MemoryRegion, 1); diff --git a/hw/mips_jazz.c b/hw/mips_jazz.c index db927f1..14df4d7 100644 --- a/hw/mips_jazz.c +++ b/hw/mips_jazz.c @@ -302,21 +302,19 @@ static void mips_jazz_init(MemoryRegion *address_space, } 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(QEMUMachineInitArgs *args) { + ram_addr_t ram_size = args->ram_size; + const char *cpu_model = args->cpu_model; mips_jazz_init(get_system_memory(), get_system_io(), 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(QEMUMachineInitArgs *args) { + ram_addr_t ram_size = args->ram_size; + const char *cpu_model = args->cpu_model; mips_jazz_init(get_system_memory(), get_system_io(), ram_size, cpu_model, JAZZ_PICA61); } diff --git a/hw/mips_malta.c b/hw/mips_malta.c index ad23f26..14151f9 100644 --- a/hw/mips_malta.c +++ b/hw/mips_malta.c @@ -777,11 +777,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(QEMUMachineInitArgs *args) { + ram_addr_t ram_size = args->ram_size; + const char *cpu_model = args->cpu_model; + const char *kernel_filename = args->kernel_filename; + const char *kernel_cmdline = args->kernel_cmdline; + const char *initrd_filename = args->initrd_filename; char *filename; pflash_t *fl; MemoryRegion *system_memory = get_system_memory(); diff --git a/hw/mips_mipssim.c b/hw/mips_mipssim.c index 830f635..a1d3945 100644 --- a/hw/mips_mipssim.c +++ b/hw/mips_mipssim.c @@ -131,11 +131,13 @@ static void mipsnet_init(int base, qemu_irq irq, NICInfo *nd) } 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(QEMUMachineInitArgs *args) { + ram_addr_t ram_size = args->ram_size; + const char *cpu_model = args->cpu_model; + const char *kernel_filename = args->kernel_filename; + const char *kernel_cmdline = args->kernel_cmdline; + const char *initrd_filename = args->initrd_filename; char *filename; MemoryRegion *address_space_mem = get_system_memory(); MemoryRegion *ram = g_new(MemoryRegion, 1); diff --git a/hw/mips_r4k.c b/hw/mips_r4k.c index 967a76e..b73cdc3 100644 --- a/hw/mips_r4k.c +++ b/hw/mips_r4k.c @@ -151,11 +151,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(QEMUMachineInitArgs *args) { + ram_addr_t ram_size = args->ram_size; + const char *cpu_model = args->cpu_model; + const char *kernel_filename = args->kernel_filename; + const char *kernel_cmdline = args->kernel_cmdline; + const char *initrd_filename = args->initrd_filename; char *filename; MemoryRegion *address_space_mem = get_system_memory(); MemoryRegion *ram = g_new(MemoryRegion, 1); diff --git a/hw/musicpal.c b/hw/musicpal.c index f305e21..f06814c 100644 --- a/hw/musicpal.c +++ b/hw/musicpal.c @@ -1508,11 +1508,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(QEMUMachineInitArgs *args) { + const char *cpu_model = args->cpu_model; + const char *kernel_filename = args->kernel_filename; + const char *kernel_cmdline = args->kernel_cmdline; + const char *initrd_filename = args->initrd_filename; ARMCPU *cpu; qemu_irq *cpu_pic; qemu_irq pic[32]; diff --git a/hw/nseries.c b/hw/nseries.c index 6df71eb..7ada90d 100644 --- a/hw/nseries.c +++ b/hw/nseries.c @@ -1397,21 +1397,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(QEMUMachineInitArgs *args) { + ram_addr_t ram_size = args->ram_size; + const char *cpu_model = args->cpu_model; + const char *kernel_filename = args->kernel_filename; + const char *kernel_cmdline = args->kernel_cmdline; + const char *initrd_filename = args->initrd_filename; + const char *boot_device = args->boot_device; 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(QEMUMachineInitArgs *args) { + ram_addr_t ram_size = args->ram_size; + const char *cpu_model = args->cpu_model; + const char *kernel_filename = args->kernel_filename; + const char *kernel_cmdline = args->kernel_cmdline; + const char *initrd_filename = args->initrd_filename; + const char *boot_device = args->boot_device; return n8x0_init(ram_size, boot_device, kernel_filename, kernel_cmdline, initrd_filename, cpu_model, &n810_binfo, 810); diff --git a/hw/null-machine.c b/hw/null-machine.c index 69910d3..d813c08 100644 --- a/hw/null-machine.c +++ b/hw/null-machine.c @@ -15,12 +15,7 @@ #include "hw/hw.h" #include "hw/boards.h" -static void machine_none_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 machine_none_init(QEMUMachineInitArgs *args) { } diff --git a/hw/omap_sx1.c b/hw/omap_sx1.c index abca341..ad17487 100644 --- a/hw/omap_sx1.c +++ b/hw/omap_sx1.c @@ -209,20 +209,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(QEMUMachineInitArgs *args) { + ram_addr_t ram_size = args->ram_size; + const char *cpu_model = args->cpu_model; + const char *kernel_filename = args->kernel_filename; + const char *kernel_cmdline = args->kernel_cmdline; + const char *initrd_filename = args->initrd_filename; + const char *boot_device = args->boot_device; 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(QEMUMachineInitArgs *args) { + ram_addr_t ram_size = args->ram_size; + const char *cpu_model = args->cpu_model; + const char *kernel_filename = args->kernel_filename; + const char *kernel_cmdline = args->kernel_cmdline; + const char *initrd_filename = args->initrd_filename; + const char *boot_device = args->boot_device; sx1_init(ram_size, boot_device, kernel_filename, kernel_cmdline, initrd_filename, cpu_model, 2); } diff --git a/hw/openrisc_sim.c b/hw/openrisc_sim.c index 55e97f0..e96a944 100644 --- a/hw/openrisc_sim.c +++ b/hw/openrisc_sim.c @@ -90,13 +90,11 @@ static void cpu_openrisc_load_kernel(ram_addr_t ram_size, cpu->env.pc = entry; } -static void openrisc_sim_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 openrisc_sim_init(QEMUMachineInitArgs *args) { + ram_addr_t ram_size = args->ram_size; + const char *cpu_model = args->cpu_model; + const char *kernel_filename = args->kernel_filename; OpenRISCCPU *cpu = NULL; MemoryRegion *ram; int n; diff --git a/hw/palm.c b/hw/palm.c index bacdc90..032b8d6 100644 --- a/hw/palm.c +++ b/hw/palm.c @@ -190,11 +190,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(QEMUMachineInitArgs *args) { + const char *cpu_model = args->cpu_model; + const char *kernel_filename = args->kernel_filename; + const char *kernel_cmdline = args->kernel_cmdline; + const char *initrd_filename = args->initrd_filename; MemoryRegion *address_space_mem = get_system_memory(); struct omap_mpu_state_s *mpu; int flash_size = 0x00800000; diff --git a/hw/pc_piix.c b/hw/pc_piix.c index fd5898f..9efc822 100644 --- a/hw/pc_piix.c +++ b/hw/pc_piix.c @@ -287,13 +287,14 @@ static void pc_init1(MemoryRegion *system_memory, } } -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(QEMUMachineInitArgs *args) { + ram_addr_t ram_size = args->ram_size; + const char *cpu_model = args->cpu_model; + const char *kernel_filename = args->kernel_filename; + const char *kernel_cmdline = args->kernel_cmdline; + const char *initrd_filename = args->initrd_filename; + const char *boot_device = args->boot_device; pc_init1(get_system_memory(), get_system_io(), ram_size, boot_device, @@ -301,13 +302,14 @@ static void pc_init_pci(ram_addr_t ram_size, initrd_filename, cpu_model, 1, 1); } -static void pc_init_pci_no_kvmclock(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_no_kvmclock(QEMUMachineInitArgs *args) { + ram_addr_t ram_size = args->ram_size; + const char *cpu_model = args->cpu_model; + const char *kernel_filename = args->kernel_filename; + const char *kernel_cmdline = args->kernel_cmdline; + const char *initrd_filename = args->initrd_filename; + const char *boot_device = args->boot_device; pc_init1(get_system_memory(), get_system_io(), ram_size, boot_device, @@ -315,13 +317,14 @@ static void pc_init_pci_no_kvmclock(ram_addr_t ram_size, initrd_filename, cpu_model, 1, 0); } -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(QEMUMachineInitArgs *args) { + ram_addr_t ram_size = args->ram_size; + const char *cpu_model = args->cpu_model; + const char *kernel_filename = args->kernel_filename; + const char *kernel_cmdline = args->kernel_cmdline; + const char *initrd_filename = args->initrd_filename; + const char *boot_device = args->boot_device; if (cpu_model == NULL) cpu_model = "486"; pc_init1(get_system_memory(), @@ -332,7 +335,8 @@ static void pc_init_isa(ram_addr_t ram_size, } #ifdef CONFIG_XEN -static void pc_xen_hvm_init(ram_addr_t ram_size, +static void pc_xen_hvm_init(QEMUMachine *machine, + ram_addr_t ram_size, const char *boot_device, const char *kernel_filename, const char *kernel_cmdline, diff --git a/hw/petalogix_ml605_mmu.c b/hw/petalogix_ml605_mmu.c index dced648..ace0187 100644 --- a/hw/petalogix_ml605_mmu.c +++ b/hw/petalogix_ml605_mmu.c @@ -70,12 +70,10 @@ static void machine_cpu_reset(MicroBlazeCPU *cpu) } static void -petalogix_ml605_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_ml605_init(QEMUMachineInitArgs *args) { + ram_addr_t ram_size = args->ram_size; + const char *cpu_model = args->cpu_model; MemoryRegion *address_space_mem = get_system_memory(); DeviceState *dev, *dma, *eth0; MicroBlazeCPU *cpu; diff --git a/hw/petalogix_s3adsp1800_mmu.c b/hw/petalogix_s3adsp1800_mmu.c index 2cf6882..71c32ce 100644 --- a/hw/petalogix_s3adsp1800_mmu.c +++ b/hw/petalogix_s3adsp1800_mmu.c @@ -57,12 +57,10 @@ static void machine_cpu_reset(MicroBlazeCPU *cpu) } 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(QEMUMachineInitArgs *args) { + ram_addr_t ram_size = args->ram_size; + const char *cpu_model = args->cpu_model; DeviceState *dev; MicroBlazeCPU *cpu; CPUMBState *env; diff --git a/hw/ppc/e500plat.c b/hw/ppc/e500plat.c index 60a5cb3..4cfb940 100644 --- a/hw/ppc/e500plat.c +++ b/hw/ppc/e500plat.c @@ -25,13 +25,14 @@ static void e500plat_fixup_devtree(PPCE500Params *params, void *fdt) sizeof(compatible)); } -static void e500plat_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 e500plat_init(QEMUMachineInitArgs *args) { + ram_addr_t ram_size = args->ram_size; + const char *boot_device = args->boot_device; + const char *cpu_model = args->cpu_model; + const char *kernel_filename = args->kernel_filename; + const char *kernel_cmdline = args->kernel_cmdline; + const char *initrd_filename = args->initrd_filename; PPCE500Params params = { .ram_size = ram_size, .boot_device = boot_device, diff --git a/hw/ppc/mpc8544ds.c b/hw/ppc/mpc8544ds.c index 984d21c..e651661 100644 --- a/hw/ppc/mpc8544ds.c +++ b/hw/ppc/mpc8544ds.c @@ -25,13 +25,14 @@ static void mpc8544ds_fixup_devtree(PPCE500Params *params, void *fdt) sizeof(compatible)); } -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(QEMUMachineInitArgs *args) { + ram_addr_t ram_size = args->ram_size; + const char *boot_device = args->boot_device; + const char *cpu_model = args->cpu_model; + const char *kernel_filename = args->kernel_filename; + const char *kernel_cmdline = args->kernel_cmdline; + const char *initrd_filename = args->initrd_filename; PPCE500Params params = { .ram_size = ram_size, .boot_device = boot_device, diff --git a/hw/ppc405_boards.c b/hw/ppc405_boards.c index 476775d..e848cb0 100644 --- a/hw/ppc405_boards.c +++ b/hw/ppc405_boards.c @@ -158,7 +158,7 @@ static void ref405ep_fpga_reset (void *opaque) fpga->reg1 = 0x0F; } -static void ref405ep_fpga_init (MemoryRegion *sysmem, uint32_t base) +static void ref405ep_fpga_init(MemoryRegion *sysmem, uint32_t base) { ref405ep_fpga_t *fpga; MemoryRegion *fpga_memory = g_new(MemoryRegion, 1); @@ -170,13 +170,12 @@ static void ref405ep_fpga_init (MemoryRegion *sysmem, 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(QEMUMachineInitArgs *args) { + ram_addr_t ram_size = args->ram_size; + const char *kernel_filename = args->kernel_filename; + const char *kernel_cmdline = args->kernel_cmdline; + const char *initrd_filename = args->initrd_filename; char *filename; ppc4xx_bd_info_t bd; CPUPPCState *env; @@ -484,7 +483,7 @@ static void taihu_cpld_reset (void *opaque) cpld->reg1 = 0x80; } -static void taihu_cpld_init (MemoryRegion *sysmem, uint32_t base) +static void taihu_cpld_init(MemoryRegion *sysmem, uint32_t base) { taihu_cpld_t *cpld; MemoryRegion *cpld_memory = g_new(MemoryRegion, 1); @@ -495,13 +494,11 @@ static void taihu_cpld_init (MemoryRegion *sysmem, 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(QEMUMachineInitArgs *args) { + ram_addr_t ram_size = args->ram_size; + const char *kernel_filename = args->kernel_filename; + const char *initrd_filename = args->initrd_filename; char *filename; qemu_irq *pic; MemoryRegion *sysmem = get_system_memory(); diff --git a/hw/ppc440_bamboo.c b/hw/ppc440_bamboo.c index c198071..78e7985 100644 --- a/hw/ppc440_bamboo.c +++ b/hw/ppc440_bamboo.c @@ -157,13 +157,13 @@ static void main_cpu_reset(void *opaque) mmubooke_create_initial_mapping(env, 0, 0); } -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(QEMUMachineInitArgs *args) { + ram_addr_t ram_size = args->ram_size; + const char *cpu_model = args->cpu_model; + const char *kernel_filename = args->kernel_filename; + const char *kernel_cmdline = args->kernel_cmdline; + const char *initrd_filename = args->initrd_filename; unsigned int pci_irq_nrs[4] = { 28, 27, 26, 25 }; MemoryRegion *address_space_mem = get_system_memory(); MemoryRegion *ram_memories diff --git a/hw/ppc_newworld.c b/hw/ppc_newworld.c index e95cfe8..e7c0747 100644 --- a/hw/ppc_newworld.c +++ b/hw/ppc_newworld.c @@ -129,13 +129,14 @@ static void ppc_core99_reset(void *opaque) } /* 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(QEMUMachineInitArgs *args) { + ram_addr_t ram_size = args->ram_size; + const char *cpu_model = args->cpu_model; + const char *kernel_filename = args->kernel_filename; + const char *kernel_cmdline = args->kernel_cmdline; + const char *initrd_filename = args->initrd_filename; + const char *boot_device = args->boot_device; PowerPCCPU *cpu = NULL; CPUPPCState *env = NULL; char *filename; diff --git a/hw/ppc_oldworld.c b/hw/ppc_oldworld.c index 1dcd8a6..d9f76a8 100644 --- a/hw/ppc_oldworld.c +++ b/hw/ppc_oldworld.c @@ -72,13 +72,14 @@ static void ppc_heathrow_reset(void *opaque) cpu_reset(CPU(cpu)); } -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(QEMUMachineInitArgs *args) { + ram_addr_t ram_size = args->ram_size; + const char *cpu_model = args->cpu_model; + const char *kernel_filename = args->kernel_filename; + const char *kernel_cmdline = args->kernel_cmdline; + const char *initrd_filename = args->initrd_filename; + const char *boot_device = args->boot_device; MemoryRegion *sysmem = get_system_memory(); PowerPCCPU *cpu = NULL; CPUPPCState *env = NULL; diff --git a/hw/ppc_prep.c b/hw/ppc_prep.c index 592b7b2..f51f78a 100644 --- a/hw/ppc_prep.c +++ b/hw/ppc_prep.c @@ -448,13 +448,14 @@ static void ppc_prep_reset(void *opaque) } /* 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(QEMUMachineInitArgs *args) { + ram_addr_t ram_size = args->ram_size; + const char *cpu_model = args->cpu_model; + const char *kernel_filename = args->kernel_filename; + const char *kernel_cmdline = args->kernel_cmdline; + const char *initrd_filename = args->initrd_filename; + const char *boot_device = args->boot_device; MemoryRegion *sysmem = get_system_memory(); PowerPCCPU *cpu = NULL; CPUPPCState *env = NULL; diff --git a/hw/puv3.c b/hw/puv3.c index 43f7216..764799c 100644 --- a/hw/puv3.c +++ b/hw/puv3.c @@ -91,10 +91,12 @@ static void puv3_load_kernel(const char *kernel_filename) graphic_console_init(NULL, NULL, NULL, NULL, NULL); } -static void puv3_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 puv3_init(QEMUMachineInitArgs *args) { + ram_addr_t ram_size = args->ram_size; + const char *cpu_model = args->cpu_model; + const char *kernel_filename = args->kernel_filename; + const char *initrd_filename = args->initrd_filename; CPUUniCore32State *env; if (initrd_filename) { diff --git a/hw/r2d.c b/hw/r2d.c index 0f16e81..5daa42f 100644 --- a/hw/r2d.c +++ b/hw/r2d.c @@ -219,11 +219,12 @@ static struct QEMU_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(QEMUMachineInitArgs *args) { + const char *cpu_model = args->cpu_model; + const char *kernel_filename = args->kernel_filename; + const char *kernel_cmdline = args->kernel_cmdline; + const char *initrd_filename = args->initrd_filename; SuperHCPU *cpu; CPUSH4State *env; ResetData *reset_info; diff --git a/hw/realview.c b/hw/realview.c index 19db4d0..8dc4be6 100644 --- a/hw/realview.c +++ b/hw/realview.c @@ -330,11 +330,14 @@ static void realview_init(ram_addr_t ram_size, arm_load_kernel(arm_env_get_cpu(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(QEMUMachineInitArgs *args) { + ram_addr_t ram_size = args->ram_size; + const char *cpu_model = args->cpu_model; + const char *kernel_filename = args->kernel_filename; + const char *kernel_cmdline = args->kernel_cmdline; + const char *initrd_filename = args->initrd_filename; + const char *boot_device = args->boot_device; if (!cpu_model) { cpu_model = "arm926"; } @@ -342,11 +345,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(QEMUMachineInitArgs *args) { + ram_addr_t ram_size = args->ram_size; + const char *cpu_model = args->cpu_model; + const char *kernel_filename = args->kernel_filename; + const char *kernel_cmdline = args->kernel_cmdline; + const char *initrd_filename = args->initrd_filename; + const char *boot_device = args->boot_device; if (!cpu_model) { cpu_model = "arm11mpcore"; } @@ -354,11 +360,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(QEMUMachineInitArgs *args) { + ram_addr_t ram_size = args->ram_size; + const char *cpu_model = args->cpu_model; + const char *kernel_filename = args->kernel_filename; + const char *kernel_cmdline = args->kernel_cmdline; + const char *initrd_filename = args->initrd_filename; + const char *boot_device = args->boot_device; if (!cpu_model) { cpu_model = "cortex-a8"; } @@ -366,11 +375,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(QEMUMachineInitArgs *args) { + ram_addr_t ram_size = args->ram_size; + const char *cpu_model = args->cpu_model; + const char *kernel_filename = args->kernel_filename; + const char *kernel_cmdline = args->kernel_cmdline; + const char *initrd_filename = args->initrd_filename; + const char *boot_device = args->boot_device; if (!cpu_model) { cpu_model = "cortex-a9"; } diff --git a/hw/s390-virtio.c b/hw/s390-virtio.c index 47eed35..39ff178 100644 --- a/hw/s390-virtio.c +++ b/hw/s390-virtio.c @@ -151,13 +151,14 @@ unsigned s390_del_running_cpu(CPUS390XState *env) } /* PC hardware initialisation */ -static void s390_init(ram_addr_t my_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(QEMUMachineInitArgs *args) { + ram_addr_t my_ram_size = args->ram_size; + ram_addr_t ram_size = args->ram_size; + const char *cpu_model = args->cpu_model; + const char *kernel_filename = args->kernel_filename; + const char *kernel_cmdline = args->kernel_cmdline; + const char *initrd_filename = args->initrd_filename; CPUS390XState *env = NULL; MemoryRegion *sysmem = get_system_memory(); MemoryRegion *ram = g_new(MemoryRegion, 1); diff --git a/hw/shix.c b/hw/shix.c index dd9ce17..b56dd54 100644 --- a/hw/shix.c +++ b/hw/shix.c @@ -37,11 +37,9 @@ #define BIOS_FILENAME "shix_bios.bin" #define BIOS_ADDRESS 0xA0000000 -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(QEMUMachineInitArgs *args) { + const char *cpu_model = args->cpu_model; int ret; CPUSH4State *env; struct SH7750State *s; diff --git a/hw/spapr.c b/hw/spapr.c index c34b767..8921c4d 100644 --- a/hw/spapr.c +++ b/hw/spapr.c @@ -603,13 +603,14 @@ static int spapr_vga_init(PCIBus *pci_bus) } /* pSeries LPAR / sPAPR hardware init */ -static void ppc_spapr_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_spapr_init(QEMUMachineInitArgs *args) { + ram_addr_t ram_size = args->ram_size; + const char *cpu_model = args->cpu_model; + const char *kernel_filename = args->kernel_filename; + const char *kernel_cmdline = args->kernel_cmdline; + const char *initrd_filename = args->initrd_filename; + const char *boot_device = args->boot_device; PowerPCCPU *cpu; CPUPPCState *env; PCIHostState *phb; diff --git a/hw/spitz.c b/hw/spitz.c index 20e7835..df829b3 100644 --- a/hw/spitz.c +++ b/hw/spitz.c @@ -936,38 +936,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(QEMUMachineInitArgs *args) { + ram_addr_t ram_size = args->ram_size; + const char *cpu_model = args->cpu_model; + const char *kernel_filename = args->kernel_filename; + const char *kernel_cmdline = args->kernel_cmdline; + const char *initrd_filename = args->initrd_filename; 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(QEMUMachineInitArgs *args) { + ram_addr_t ram_size = args->ram_size; + const char *cpu_model = args->cpu_model; + const char *kernel_filename = args->kernel_filename; + const char *kernel_cmdline = args->kernel_cmdline; + const char *initrd_filename = args->initrd_filename; 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(QEMUMachineInitArgs *args) { + ram_addr_t ram_size = args->ram_size; + const char *cpu_model = args->cpu_model; + const char *kernel_filename = args->kernel_filename; + const char *kernel_cmdline = args->kernel_cmdline; + const char *initrd_filename = args->initrd_filename; 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(QEMUMachineInitArgs *args) { + ram_addr_t ram_size = args->ram_size; + const char *cpu_model = args->cpu_model; + const char *kernel_filename = args->kernel_filename; + const char *kernel_cmdline = args->kernel_cmdline; + const char *initrd_filename = args->initrd_filename; spitz_common_init(ram_size, kernel_filename, kernel_cmdline, initrd_filename, cpu_model, terrier, 0x33f); } diff --git a/hw/stellaris.c b/hw/stellaris.c index 562fbbf..b79c7fb 100644 --- a/hw/stellaris.c +++ b/hw/stellaris.c @@ -1358,19 +1358,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(QEMUMachineInitArgs *args) { + const char *cpu_model = args->cpu_model; + const char *kernel_filename = args->kernel_filename; 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(QEMUMachineInitArgs *args) { + const char *cpu_model = args->cpu_model; + const char *kernel_filename = args->kernel_filename; stellaris_init(kernel_filename, cpu_model, &stellaris_boards[1]); } diff --git a/hw/sun4m.c b/hw/sun4m.c index c98cd5e..22e011f 100644 --- a/hw/sun4m.c +++ b/hw/sun4m.c @@ -1303,92 +1303,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(QEMUMachineInitArgs *args) { + ram_addr_t RAM_size = args->ram_size; + const char *cpu_model = args->cpu_model; + const char *kernel_filename = args->kernel_filename; + const char *kernel_cmdline = args->kernel_cmdline; + const char *initrd_filename = args->initrd_filename; + const char *boot_device = args->boot_device; 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(QEMUMachineInitArgs *args) { + ram_addr_t RAM_size = args->ram_size; + const char *cpu_model = args->cpu_model; + const char *kernel_filename = args->kernel_filename; + const char *kernel_cmdline = args->kernel_cmdline; + const char *initrd_filename = args->initrd_filename; + const char *boot_device = args->boot_device; 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(QEMUMachineInitArgs *args) { + ram_addr_t RAM_size = args->ram_size; + const char *cpu_model = args->cpu_model; + const char *kernel_filename = args->kernel_filename; + const char *kernel_cmdline = args->kernel_cmdline; + const char *initrd_filename = args->initrd_filename; + const char *boot_device = args->boot_device; 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(QEMUMachineInitArgs *args) { + ram_addr_t RAM_size = args->ram_size; + const char *cpu_model = args->cpu_model; + const char *kernel_filename = args->kernel_filename; + const char *kernel_cmdline = args->kernel_cmdline; + const char *initrd_filename = args->initrd_filename; + const char *boot_device = args->boot_device; 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(QEMUMachineInitArgs *args) { + ram_addr_t RAM_size = args->ram_size; + const char *cpu_model = args->cpu_model; + const char *kernel_filename = args->kernel_filename; + const char *kernel_cmdline = args->kernel_cmdline; + const char *initrd_filename = args->initrd_filename; + const char *boot_device = args->boot_device; 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(QEMUMachineInitArgs *args) { + ram_addr_t RAM_size = args->ram_size; + const char *cpu_model = args->cpu_model; + const char *kernel_filename = args->kernel_filename; + const char *kernel_cmdline = args->kernel_cmdline; + const char *initrd_filename = args->initrd_filename; + const char *boot_device = args->boot_device; 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(QEMUMachineInitArgs *args) { + ram_addr_t RAM_size = args->ram_size; + const char *cpu_model = args->cpu_model; + const char *kernel_filename = args->kernel_filename; + const char *kernel_cmdline = args->kernel_cmdline; + const char *initrd_filename = args->initrd_filename; + const char *boot_device = args->boot_device; 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(QEMUMachineInitArgs *args) { + ram_addr_t RAM_size = args->ram_size; + const char *cpu_model = args->cpu_model; + const char *kernel_filename = args->kernel_filename; + const char *kernel_cmdline = args->kernel_cmdline; + const char *initrd_filename = args->initrd_filename; + const char *boot_device = args->boot_device; 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(QEMUMachineInitArgs *args) { + ram_addr_t RAM_size = args->ram_size; + const char *cpu_model = args->cpu_model; + const char *kernel_filename = args->kernel_filename; + const char *kernel_cmdline = args->kernel_cmdline; + const char *initrd_filename = args->initrd_filename; + const char *boot_device = args->boot_device; sun4m_hw_init(&sun4m_hwdefs[8], RAM_size, boot_device, kernel_filename, kernel_cmdline, initrd_filename, cpu_model); } @@ -1651,21 +1677,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(QEMUMachineInitArgs *args) { + ram_addr_t RAM_size = args->ram_size; + const char *cpu_model = args->cpu_model; + const char *kernel_filename = args->kernel_filename; + const char *kernel_cmdline = args->kernel_cmdline; + const char *initrd_filename = args->initrd_filename; + const char *boot_device = args->boot_device; 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(QEMUMachineInitArgs *args) { + ram_addr_t RAM_size = args->ram_size; + const char *cpu_model = args->cpu_model; + const char *kernel_filename = args->kernel_filename; + const char *kernel_cmdline = args->kernel_cmdline; + const char *initrd_filename = args->initrd_filename; + const char *boot_device = args->boot_device; sun4d_hw_init(&sun4d_hwdefs[1], RAM_size, boot_device, kernel_filename, kernel_cmdline, initrd_filename, cpu_model); } @@ -1845,11 +1877,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(QEMUMachineInitArgs *args) { + ram_addr_t RAM_size = args->ram_size; + const char *cpu_model = args->cpu_model; + const char *kernel_filename = args->kernel_filename; + const char *kernel_cmdline = args->kernel_cmdline; + const char *initrd_filename = args->initrd_filename; + const char *boot_device = args->boot_device; sun4c_hw_init(&sun4c_hwdefs[0], RAM_size, boot_device, kernel_filename, kernel_cmdline, initrd_filename, cpu_model); } diff --git a/hw/sun4u.c b/hw/sun4u.c index 07cd042..379768c 100644 --- a/hw/sun4u.c +++ b/hw/sun4u.c @@ -930,31 +930,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(QEMUMachineInitArgs *args) +{ + ram_addr_t RAM_size = args->ram_size; + const char *cpu_model = args->cpu_model; + const char *kernel_filename = args->kernel_filename; + const char *kernel_cmdline = args->kernel_cmdline; + const char *initrd_filename = args->initrd_filename; + const char *boot_devices = args->boot_device; sun4uv_init(get_system_memory(), 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(QEMUMachineInitArgs *args) +{ + ram_addr_t RAM_size = args->ram_size; + const char *cpu_model = args->cpu_model; + const char *kernel_filename = args->kernel_filename; + const char *kernel_cmdline = args->kernel_cmdline; + const char *initrd_filename = args->initrd_filename; + const char *boot_devices = args->boot_device; sun4uv_init(get_system_memory(), 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(QEMUMachineInitArgs *args) +{ + ram_addr_t RAM_size = args->ram_size; + const char *cpu_model = args->cpu_model; + const char *kernel_filename = args->kernel_filename; + const char *kernel_cmdline = args->kernel_cmdline; + const char *initrd_filename = args->initrd_filename; + const char *boot_devices = args->boot_device; sun4uv_init(get_system_memory(), RAM_size, boot_devices, kernel_filename, kernel_cmdline, initrd_filename, cpu_model, &hwdefs[2]); } diff --git a/hw/tosa.c b/hw/tosa.c index 297a8c2..512278c 100644 --- a/hw/tosa.c +++ b/hw/tosa.c @@ -205,11 +205,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(QEMUMachineInitArgs *args) { + const char *cpu_model = args->cpu_model; + const char *kernel_filename = args->kernel_filename; + const char *kernel_cmdline = args->kernel_cmdline; + const char *initrd_filename = args->initrd_filename; MemoryRegion *address_space_mem = get_system_memory(); MemoryRegion *rom = g_new(MemoryRegion, 1); PXA2xxState *mpu; diff --git a/hw/versatilepb.c b/hw/versatilepb.c index 7a92034..686dcc7 100644 --- a/hw/versatilepb.c +++ b/hw/versatilepb.c @@ -342,22 +342,28 @@ static void versatile_init(ram_addr_t ram_size, arm_load_kernel(cpu, &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(QEMUMachineInitArgs *args) { + ram_addr_t ram_size = args->ram_size; + const char *cpu_model = args->cpu_model; + const char *kernel_filename = args->kernel_filename; + const char *kernel_cmdline = args->kernel_cmdline; + const char *initrd_filename = args->initrd_filename; + const char *boot_device = args->boot_device; 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(QEMUMachineInitArgs *args) { + ram_addr_t ram_size = args->ram_size; + const char *cpu_model = args->cpu_model; + const char *kernel_filename = args->kernel_filename; + const char *kernel_cmdline = args->kernel_cmdline; + const char *initrd_filename = args->initrd_filename; + const char *boot_device = args->boot_device; versatile_init(ram_size, boot_device, kernel_filename, kernel_cmdline, diff --git a/hw/vexpress.c b/hw/vexpress.c index 3596d1e..36503d6 100644 --- a/hw/vexpress.c +++ b/hw/vexpress.c @@ -467,25 +467,27 @@ static void vexpress_common_init(const VEDBoardInfo *daughterboard, arm_load_kernel(arm_env_get_cpu(first_cpu), &vexpress_binfo); } -static void vexpress_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 vexpress_a9_init(QEMUMachineInitArgs *args) { + ram_addr_t ram_size = args->ram_size; + const char *cpu_model = args->cpu_model; + const char *kernel_filename = args->kernel_filename; + const char *kernel_cmdline = args->kernel_cmdline; + const char *initrd_filename = args->initrd_filename; + const char *boot_device = args->boot_device; vexpress_common_init(&a9_daughterboard, ram_size, boot_device, kernel_filename, kernel_cmdline, initrd_filename, cpu_model); } -static void vexpress_a15_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 vexpress_a15_init(QEMUMachineInitArgs *args) { + ram_addr_t ram_size = args->ram_size; + const char *cpu_model = args->cpu_model; + const char *kernel_filename = args->kernel_filename; + const char *kernel_cmdline = args->kernel_cmdline; + const char *initrd_filename = args->initrd_filename; + const char *boot_device = args->boot_device; vexpress_common_init(&a15_daughterboard, ram_size, boot_device, kernel_filename, kernel_cmdline, initrd_filename, cpu_model); diff --git a/hw/virtex_ml507.c b/hw/virtex_ml507.c index 79bc0d1..a09b27a 100644 --- a/hw/virtex_ml507.c +++ b/hw/virtex_ml507.c @@ -183,12 +183,12 @@ static int xilinx_load_device_tree(target_phys_addr_t addr, return fdt_size; } -static void virtex_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 virtex_init(QEMUMachineInitArgs *args) { + ram_addr_t ram_size = args->ram_size; + const char *cpu_model = args->cpu_model; + const char *kernel_filename = args->kernel_filename; + const char *kernel_cmdline = args->kernel_cmdline; MemoryRegion *address_space_mem = get_system_memory(); DeviceState *dev; PowerPCCPU *cpu; diff --git a/hw/xen_machine_pv.c b/hw/xen_machine_pv.c index 4b72aa7..1ac9990 100644 --- a/hw/xen_machine_pv.c +++ b/hw/xen_machine_pv.c @@ -29,12 +29,13 @@ #include "xen_domainbuild.h" #include "blockdev.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(QEMUMachine *machine, + 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) { X86CPU *cpu; CPUX86State *env; diff --git a/hw/xilinx_zynq.c b/hw/xilinx_zynq.c index 7e6c273..83f322e 100644 --- a/hw/xilinx_zynq.c +++ b/hw/xilinx_zynq.c @@ -46,10 +46,13 @@ static void gem_init(NICInfo *nd, uint32_t base, qemu_irq irq) sysbus_connect_irq(s, 0, irq); } -static void zynq_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 zynq_init(QEMUMachineInitArgs *args) { + ram_addr_t ram_size = args->ram_size; + const char *cpu_model = args->cpu_model; + const char *kernel_filename = args->kernel_filename; + const char *kernel_cmdline = args->kernel_cmdline; + const char *initrd_filename = args->initrd_filename; ARMCPU *cpu; MemoryRegion *address_space_mem = get_system_memory(); MemoryRegion *ext_ram = g_new(MemoryRegion, 1); diff --git a/hw/xtensa_lx60.c b/hw/xtensa_lx60.c index 3653f65..1fd2c47 100644 --- a/hw/xtensa_lx60.c +++ b/hw/xtensa_lx60.c @@ -268,11 +268,14 @@ static void lx_init(const LxBoardDesc *board, } } -static void xtensa_lx60_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 xtensa_lx60_init(QEMUMachineInitArgs *args) { + ram_addr_t ram_size = args->ram_size; + const char *cpu_model = args->cpu_model; + const char *kernel_filename = args->kernel_filename; + const char *kernel_cmdline = args->kernel_cmdline; + const char *initrd_filename = args->initrd_filename; + const char *boot_device = args->boot_device; static const LxBoardDesc lx60_board = { .flash_size = 0x400000, .flash_sector_size = 0x10000, @@ -283,11 +286,14 @@ static void xtensa_lx60_init(ram_addr_t ram_size, initrd_filename, cpu_model); } -static void xtensa_lx200_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 xtensa_lx200_init(QEMUMachineInitArgs *args) { + ram_addr_t ram_size = args->ram_size; + const char *cpu_model = args->cpu_model; + const char *kernel_filename = args->kernel_filename; + const char *kernel_cmdline = args->kernel_cmdline; + const char *initrd_filename = args->initrd_filename; + const char *boot_device = args->boot_device; static const LxBoardDesc lx200_board = { .flash_size = 0x1000000, .flash_sector_size = 0x20000, diff --git a/hw/xtensa_sim.c b/hw/xtensa_sim.c index 831460b..2e846d8 100644 --- a/hw/xtensa_sim.c +++ b/hw/xtensa_sim.c @@ -96,11 +96,14 @@ static void sim_init(ram_addr_t ram_size, } } -static void xtensa_sim_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 xtensa_sim_init(QEMUMachineInitArgs *args) { + ram_addr_t ram_size = args->ram_size; + const char *cpu_model = args->cpu_model; + const char *kernel_filename = args->kernel_filename; + const char *kernel_cmdline = args->kernel_cmdline; + const char *initrd_filename = args->initrd_filename; + const char *boot_device = args->boot_device; if (!cpu_model) { cpu_model = XTENSA_DEFAULT_CPU_MODEL; } diff --git a/hw/z2.c b/hw/z2.c index 289cee9..0927bad 100644 --- a/hw/z2.c +++ b/hw/z2.c @@ -294,11 +294,12 @@ static TypeInfo aer915_info = { .class_init = aer915_class_init, }; -static void z2_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 z2_init(QEMUMachineInitArgs *args) { + const char *cpu_model = args->cpu_model; + const char *kernel_filename = args->kernel_filename; + const char *kernel_cmdline = args->kernel_cmdline; + const char *initrd_filename = args->initrd_filename; MemoryRegion *address_space_mem = get_system_memory(); uint32_t sector_len = 0x10000; PXA2xxState *mpu; diff --git a/vl.c b/vl.c index 8d305ca..f663e7c 100644 --- a/vl.c +++ b/vl.c @@ -3624,8 +3624,13 @@ int main(int argc, char **argv, char **envp) qdev_machine_init(); - machine->init(ram_size, boot_devices, - kernel_filename, kernel_cmdline, initrd_filename, cpu_model); + QEMUMachineInitArgs args = { .ram_size = ram_size, + .boot_device = boot_devices, + .kernel_filename = kernel_filename, + .kernel_cmdline = kernel_cmdline, + initrd_filename = initrd_filename, + .cpu_model = cpu_model }; + machine->init(&args); cpu_synchronize_all_post_init(); -- 1.7.11.4
Alexander Graf
2012-Oct-05 18:45 UTC
Re: [QEMU PATCH] create struct for machine initialization arguments
On 05.10.2012, at 20:37, Eduardo Habkost <ehabkost@redhat.com> wrote:> > This should help us to: > - More easily add or remove machine initialization arguments without > having to change every single machine init function; > - More easily make mechanical changes involving the machine init > functions in the future; > - Let machine initialization forward the init arguments to other > functions more easily. > > This change was half-mechanical process: first the struct was added with > the local ram_size, boot_device, kernel_*, initrd_*, and cpu_model local > variable initialization to all functions. Then the compiler helped me > locate the local variables that are unused, so they could be removed. > > Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>Very good idea :). Alex> --- > hw/alpha_dp264.c | 12 ++-- > hw/an5206.c | 8 +-- > hw/axis_dev88.c | 9 +-- > hw/boards.h | 16 +++-- > hw/collie.c | 9 +-- > hw/dummy_m68k.c | 8 +-- > hw/exynos4_boards.c | 16 ++--- > hw/gumstix.c | 11 +--- > hw/highbank.c | 10 ++-- > hw/integratorcp.c | 10 ++-- > hw/kzm.c | 10 ++-- > hw/leon3.c | 10 ++-- > hw/lm32_boards.c | 18 +++--- > hw/mainstone.c | 10 ++-- > hw/mcf5208.c | 8 +-- > hw/milkymist.c | 10 ++-- > hw/mips_fulong2e.c | 9 ++- > hw/mips_jazz.c | 14 ++--- > hw/mips_malta.c | 10 ++-- > hw/mips_mipssim.c | 10 ++-- > hw/mips_r4k.c | 10 ++-- > hw/musicpal.c | 9 +-- > hw/nseries.c | 22 ++++--- > hw/null-machine.c | 7 +-- > hw/omap_sx1.c | 22 ++++--- > hw/openrisc_sim.c | 10 ++-- > hw/palm.c | 9 +-- > hw/pc_piix.c | 42 +++++++------ > hw/petalogix_ml605_mmu.c | 8 +-- > hw/petalogix_s3adsp1800_mmu.c | 8 +-- > hw/ppc/e500plat.c | 13 +++-- > hw/ppc/mpc8544ds.c | 13 +++-- > hw/ppc405_boards.c | 25 ++++---- > hw/ppc440_bamboo.c | 12 ++-- > hw/ppc_newworld.c | 13 +++-- > hw/ppc_oldworld.c | 13 +++-- > hw/ppc_prep.c | 13 +++-- > hw/puv3.c | 8 ++- > hw/r2d.c | 9 +-- > hw/realview.c | 44 +++++++++----- > hw/s390-virtio.c | 13 +++-- > hw/shix.c | 6 +- > hw/spapr.c | 13 +++-- > hw/spitz.c | 40 ++++++++----- > hw/stellaris.c | 14 ++--- > hw/sun4m.c | 133 ++++++++++++++++++++++++++---------------- > hw/sun4u.c | 39 ++++++++----- > hw/tosa.c | 9 +-- > hw/versatilepb.c | 22 ++++--- > hw/vexpress.c | 26 +++++---- > hw/virtex_ml507.c | 10 ++-- > hw/xen_machine_pv.c | 13 +++-- > hw/xilinx_zynq.c | 9 ++- > hw/xtensa_lx60.c | 22 ++++--- > hw/xtensa_sim.c | 11 ++-- > hw/z2.c | 9 +-- > vl.c | 9 ++- > 57 files changed, 520 insertions(+), 406 deletions(-) > > diff --git a/hw/alpha_dp264.c b/hw/alpha_dp264.c > index 9eb939f..2c2e237 100644 > --- a/hw/alpha_dp264.c > +++ b/hw/alpha_dp264.c > @@ -42,13 +42,13 @@ static int clipper_pci_map_irq(PCIDevice *d, int irq_num) > return (slot + 1) * 4 + irq_num; > } > > -static void clipper_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 clipper_init(QEMUMachineInitArgs *args) > { > + ram_addr_t ram_size = args->ram_size; > + const char *cpu_model = args->cpu_model; > + const char *kernel_filename = args->kernel_filename; > + const char *kernel_cmdline = args->kernel_cmdline; > + const char *initrd_filename = args->initrd_filename; > CPUAlphaState *cpus[4]; > PCIBus *pci_bus; > ISABus *isa_bus; > diff --git a/hw/an5206.c b/hw/an5206.c > index 25407c0..042c5fc 100644 > --- a/hw/an5206.c > +++ b/hw/an5206.c > @@ -19,11 +19,11 @@ > > /* 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(QEMUMachineInitArgs *args) > { > + ram_addr_t ram_size = args->ram_size; > + const char *cpu_model = args->cpu_model; > + const char *kernel_filename = args->kernel_filename; > CPUM68KState *env; > int kernel_size; > uint64_t elf_entry; > diff --git a/hw/axis_dev88.c b/hw/axis_dev88.c > index eab6327..2fd7356 100644 > --- a/hw/axis_dev88.c > +++ b/hw/axis_dev88.c > @@ -242,11 +242,12 @@ static const MemoryRegionOps gpio_ops = { > static struct cris_load_info li; > > 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(QEMUMachineInitArgs *args) > { > + ram_addr_t ram_size = args->ram_size; > + const char *cpu_model = args->cpu_model; > + const char *kernel_filename = args->kernel_filename; > + const char *kernel_cmdline = args->kernel_cmdline; > CRISCPU *cpu; > CPUCRISState *env; > DeviceState *dev; > diff --git a/hw/boards.h b/hw/boards.h > index a2e0a54..813d0e5 100644 > --- a/hw/boards.h > +++ b/hw/boards.h > @@ -5,12 +5,16 @@ > > #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 QEMUMachineInitArgs { > + 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; > +} QEMUMachineInitArgs; > + > +typedef void QEMUMachineInitFunc(QEMUMachineInitArgs *args); > > typedef void QEMUMachineResetFunc(void); > > diff --git a/hw/collie.c b/hw/collie.c > index 56f89a9..695982a 100644 > --- a/hw/collie.c > +++ b/hw/collie.c > @@ -23,11 +23,12 @@ static struct arm_boot_info collie_binfo = { > .ram_size = 0x20000000, > }; > > -static void collie_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 collie_init(QEMUMachineInitArgs *args) > { > + const char *cpu_model = args->cpu_model; > + const char *kernel_filename = args->kernel_filename; > + const char *kernel_cmdline = args->kernel_cmdline; > + const char *initrd_filename = args->initrd_filename; > StrongARMState *s; > DriveInfo *dinfo; > MemoryRegion *sysmem = get_system_memory(); > diff --git a/hw/dummy_m68k.c b/hw/dummy_m68k.c > index 7cc7a99..f436a0c 100644 > --- a/hw/dummy_m68k.c > +++ b/hw/dummy_m68k.c > @@ -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(QEMUMachineInitArgs *args) > { > + ram_addr_t ram_size = args->ram_size; > + const char *cpu_model = args->cpu_model; > + const char *kernel_filename = args->kernel_filename; > CPUM68KState *env; > MemoryRegion *address_space_mem = get_system_memory(); > MemoryRegion *ram = g_new(MemoryRegion, 1); > diff --git a/hw/exynos4_boards.c b/hw/exynos4_boards.c > index 4bb0a60..4951064 100644 > --- a/hw/exynos4_boards.c > +++ b/hw/exynos4_boards.c > @@ -130,22 +130,22 @@ static Exynos4210State *exynos4_boards_init_common( > exynos4_board_ram_size[board_type]); > } > > -static void nuri_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 nuri_init(QEMUMachineInitArgs *args) > { > + const char *kernel_filename = args->kernel_filename; > + const char *kernel_cmdline = args->kernel_cmdline; > + const char *initrd_filename = args->initrd_filename; > exynos4_boards_init_common(kernel_filename, kernel_cmdline, > initrd_filename, EXYNOS4_BOARD_NURI); > > arm_load_kernel(arm_env_get_cpu(first_cpu), &exynos4_board_binfo); > } > > -static void smdkc210_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 smdkc210_init(QEMUMachineInitArgs *args) > { > + const char *kernel_filename = args->kernel_filename; > + const char *kernel_cmdline = args->kernel_cmdline; > + const char *initrd_filename = args->initrd_filename; > Exynos4210State *s = exynos4_boards_init_common(kernel_filename, > kernel_cmdline, initrd_filename, EXYNOS4_BOARD_SMDKC210); > > diff --git a/hw/gumstix.c b/hw/gumstix.c > index 13a36ea..4103a88 100644 > --- a/hw/gumstix.c > +++ b/hw/gumstix.c > @@ -45,10 +45,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(QEMUMachineInitArgs *args) > { > PXA2xxState *cpu; > DriveInfo *dinfo; > @@ -84,11 +81,9 @@ static void connex_init(ram_addr_t ram_size, > qdev_get_gpio_in(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(QEMUMachineInitArgs *args) > { > + const char *cpu_model = args->cpu_model; > PXA2xxState *cpu; > DriveInfo *dinfo; > int be; > diff --git a/hw/highbank.c b/hw/highbank.c > index 11aa131..15036b6 100644 > --- a/hw/highbank.c > +++ b/hw/highbank.c > @@ -187,11 +187,13 @@ static struct arm_boot_info highbank_binfo; > * 32-bit host, set the reg value of memory to 0xf7ff00000 in the > * device tree and pass -m 2047 to QEMU. > */ > -static void highbank_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 highbank_init(QEMUMachineInitArgs *args) > { > + ram_addr_t ram_size = args->ram_size; > + const char *cpu_model = args->cpu_model; > + const char *kernel_filename = args->kernel_filename; > + const char *kernel_cmdline = args->kernel_cmdline; > + const char *initrd_filename = args->initrd_filename; > DeviceState *dev; > SysBusDevice *busdev; > qemu_irq *irqp; > diff --git a/hw/integratorcp.c b/hw/integratorcp.c > index d0e2e90..ac0ea83 100644 > --- a/hw/integratorcp.c > +++ b/hw/integratorcp.c > @@ -438,11 +438,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(QEMUMachineInitArgs *args) > { > + ram_addr_t ram_size = args->ram_size; > + const char *cpu_model = args->cpu_model; > + const char *kernel_filename = args->kernel_filename; > + const char *kernel_cmdline = args->kernel_cmdline; > + const char *initrd_filename = args->initrd_filename; > ARMCPU *cpu; > MemoryRegion *address_space_mem = get_system_memory(); > MemoryRegion *ram = g_new(MemoryRegion, 1); > diff --git a/hw/kzm.c b/hw/kzm.c > index 68cd1b4..d1266d9 100644 > --- a/hw/kzm.c > +++ b/hw/kzm.c > @@ -70,11 +70,13 @@ static struct arm_boot_info kzm_binfo = { > .board_id = 1722, > }; > > -static void kzm_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 kzm_init(QEMUMachineInitArgs *args) > { > + ram_addr_t ram_size = args->ram_size; > + const char *cpu_model = args->cpu_model; > + const char *kernel_filename = args->kernel_filename; > + const char *kernel_cmdline = args->kernel_cmdline; > + const char *initrd_filename = args->initrd_filename; > ARMCPU *cpu; > MemoryRegion *address_space_mem = get_system_memory(); > MemoryRegion *ram = g_new(MemoryRegion, 1); > diff --git a/hw/leon3.c b/hw/leon3.c > index 878d3aa..6486b7b 100644 > --- a/hw/leon3.c > +++ b/hw/leon3.c > @@ -94,13 +94,11 @@ static void leon3_set_pil_in(void *opaque, uint32_t pil_in) > } > } > > -static void leon3_generic_hw_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 leon3_generic_hw_init(QEMUMachineInitArgs *args) > { > + ram_addr_t ram_size = args->ram_size; > + const char *cpu_model = args->cpu_model; > + const char *kernel_filename = args->kernel_filename; > SPARCCPU *cpu; > CPUSPARCState *env; > MemoryRegion *address_space_mem = get_system_memory(); > diff --git a/hw/lm32_boards.c b/hw/lm32_boards.c > index b76d800..c5a62c8 100644 > --- a/hw/lm32_boards.c > +++ b/hw/lm32_boards.c > @@ -69,12 +69,10 @@ static void main_cpu_reset(void *opaque) > env->deba = reset_info->flash_base; > } > > -static void lm32_evr_init(ram_addr_t ram_size_not_used, > - const char *boot_device, > - const char *kernel_filename, > - const char *kernel_cmdline, > - const char *initrd_filename, const char *cpu_model) > +static void lm32_evr_init(QEMUMachineInitArgs *args) > { > + const char *cpu_model = args->cpu_model; > + const char *kernel_filename = args->kernel_filename; > LM32CPU *cpu; > CPULM32State *env; > DriveInfo *dinfo; > @@ -159,12 +157,12 @@ static void lm32_evr_init(ram_addr_t ram_size_not_used, > qemu_register_reset(main_cpu_reset, reset_info); > } > > -static void lm32_uclinux_init(ram_addr_t ram_size_not_used, > - const char *boot_device, > - const char *kernel_filename, > - const char *kernel_cmdline, > - const char *initrd_filename, const char *cpu_model) > +static void lm32_uclinux_init(QEMUMachineInitArgs *args) > { > + const char *cpu_model = args->cpu_model; > + const char *kernel_filename = args->kernel_filename; > + const char *kernel_cmdline = args->kernel_cmdline; > + const char *initrd_filename = args->initrd_filename; > LM32CPU *cpu; > CPULM32State *env; > DriveInfo *dinfo; > diff --git a/hw/mainstone.c b/hw/mainstone.c > index 97687b6..c0d6034 100644 > --- a/hw/mainstone.c > +++ b/hw/mainstone.c > @@ -171,11 +171,13 @@ static void mainstone_common_init(MemoryRegion *address_space_mem, > arm_load_kernel(mpu->cpu, &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(QEMUMachineInitArgs *args) > { > + ram_addr_t ram_size = args->ram_size; > + const char *cpu_model = args->cpu_model; > + const char *kernel_filename = args->kernel_filename; > + const char *kernel_cmdline = args->kernel_cmdline; > + const char *initrd_filename = args->initrd_filename; > mainstone_common_init(get_system_memory(), ram_size, kernel_filename, > kernel_cmdline, initrd_filename, cpu_model, mainstone, 0x196); > } > diff --git a/hw/mcf5208.c b/hw/mcf5208.c > index ee25b1b..688bc3c 100644 > --- a/hw/mcf5208.c > +++ b/hw/mcf5208.c > @@ -187,11 +187,11 @@ static void mcf5208_sys_init(MemoryRegion *address_space, 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(QEMUMachineInitArgs *args) > { > + ram_addr_t ram_size = args->ram_size; > + const char *cpu_model = args->cpu_model; > + const char *kernel_filename = args->kernel_filename; > CPUM68KState *env; > int kernel_size; > uint64_t elf_entry; > diff --git a/hw/milkymist.c b/hw/milkymist.c > index 2e7235b..ca9ed43 100644 > --- a/hw/milkymist.c > +++ b/hw/milkymist.c > @@ -73,12 +73,12 @@ static void main_cpu_reset(void *opaque) > } > > static void > -milkymist_init(ram_addr_t ram_size_not_used, > - const char *boot_device, > - const char *kernel_filename, > - const char *kernel_cmdline, > - const char *initrd_filename, const char *cpu_model) > +milkymist_init(QEMUMachineInitArgs *args) > { > + const char *cpu_model = args->cpu_model; > + const char *kernel_filename = args->kernel_filename; > + const char *kernel_cmdline = args->kernel_cmdline; > + const char *initrd_filename = args->initrd_filename; > LM32CPU *cpu; > CPULM32State *env; > int kernel_size; > diff --git a/hw/mips_fulong2e.c b/hw/mips_fulong2e.c > index 38e4b86..af7bb50 100644 > --- a/hw/mips_fulong2e.c > +++ b/hw/mips_fulong2e.c > @@ -256,10 +256,13 @@ static void cpu_request_exit(void *opaque, int irq, int level) > } > } > > -static void mips_fulong2e_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 mips_fulong2e_init(QEMUMachineInitArgs *args) > { > + ram_addr_t ram_size = args->ram_size; > + const char *cpu_model = args->cpu_model; > + const char *kernel_filename = args->kernel_filename; > + const char *kernel_cmdline = args->kernel_cmdline; > + const char *initrd_filename = args->initrd_filename; > char *filename; > MemoryRegion *address_space_mem = get_system_memory(); > MemoryRegion *ram = g_new(MemoryRegion, 1); > diff --git a/hw/mips_jazz.c b/hw/mips_jazz.c > index db927f1..14df4d7 100644 > --- a/hw/mips_jazz.c > +++ b/hw/mips_jazz.c > @@ -302,21 +302,19 @@ static void mips_jazz_init(MemoryRegion *address_space, > } > > 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(QEMUMachineInitArgs *args) > { > + ram_addr_t ram_size = args->ram_size; > + const char *cpu_model = args->cpu_model; > mips_jazz_init(get_system_memory(), get_system_io(), > 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(QEMUMachineInitArgs *args) > { > + ram_addr_t ram_size = args->ram_size; > + const char *cpu_model = args->cpu_model; > mips_jazz_init(get_system_memory(), get_system_io(), > ram_size, cpu_model, JAZZ_PICA61); > } > diff --git a/hw/mips_malta.c b/hw/mips_malta.c > index ad23f26..14151f9 100644 > --- a/hw/mips_malta.c > +++ b/hw/mips_malta.c > @@ -777,11 +777,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(QEMUMachineInitArgs *args) > { > + ram_addr_t ram_size = args->ram_size; > + const char *cpu_model = args->cpu_model; > + const char *kernel_filename = args->kernel_filename; > + const char *kernel_cmdline = args->kernel_cmdline; > + const char *initrd_filename = args->initrd_filename; > char *filename; > pflash_t *fl; > MemoryRegion *system_memory = get_system_memory(); > diff --git a/hw/mips_mipssim.c b/hw/mips_mipssim.c > index 830f635..a1d3945 100644 > --- a/hw/mips_mipssim.c > +++ b/hw/mips_mipssim.c > @@ -131,11 +131,13 @@ static void mipsnet_init(int base, qemu_irq irq, NICInfo *nd) > } > > 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(QEMUMachineInitArgs *args) > { > + ram_addr_t ram_size = args->ram_size; > + const char *cpu_model = args->cpu_model; > + const char *kernel_filename = args->kernel_filename; > + const char *kernel_cmdline = args->kernel_cmdline; > + const char *initrd_filename = args->initrd_filename; > char *filename; > MemoryRegion *address_space_mem = get_system_memory(); > MemoryRegion *ram = g_new(MemoryRegion, 1); > diff --git a/hw/mips_r4k.c b/hw/mips_r4k.c > index 967a76e..b73cdc3 100644 > --- a/hw/mips_r4k.c > +++ b/hw/mips_r4k.c > @@ -151,11 +151,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(QEMUMachineInitArgs *args) > { > + ram_addr_t ram_size = args->ram_size; > + const char *cpu_model = args->cpu_model; > + const char *kernel_filename = args->kernel_filename; > + const char *kernel_cmdline = args->kernel_cmdline; > + const char *initrd_filename = args->initrd_filename; > char *filename; > MemoryRegion *address_space_mem = get_system_memory(); > MemoryRegion *ram = g_new(MemoryRegion, 1); > diff --git a/hw/musicpal.c b/hw/musicpal.c > index f305e21..f06814c 100644 > --- a/hw/musicpal.c > +++ b/hw/musicpal.c > @@ -1508,11 +1508,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(QEMUMachineInitArgs *args) > { > + const char *cpu_model = args->cpu_model; > + const char *kernel_filename = args->kernel_filename; > + const char *kernel_cmdline = args->kernel_cmdline; > + const char *initrd_filename = args->initrd_filename; > ARMCPU *cpu; > qemu_irq *cpu_pic; > qemu_irq pic[32]; > diff --git a/hw/nseries.c b/hw/nseries.c > index 6df71eb..7ada90d 100644 > --- a/hw/nseries.c > +++ b/hw/nseries.c > @@ -1397,21 +1397,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(QEMUMachineInitArgs *args) > { > + ram_addr_t ram_size = args->ram_size; > + const char *cpu_model = args->cpu_model; > + const char *kernel_filename = args->kernel_filename; > + const char *kernel_cmdline = args->kernel_cmdline; > + const char *initrd_filename = args->initrd_filename; > + const char *boot_device = args->boot_device; > 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(QEMUMachineInitArgs *args) > { > + ram_addr_t ram_size = args->ram_size; > + const char *cpu_model = args->cpu_model; > + const char *kernel_filename = args->kernel_filename; > + const char *kernel_cmdline = args->kernel_cmdline; > + const char *initrd_filename = args->initrd_filename; > + const char *boot_device = args->boot_device; > return n8x0_init(ram_size, boot_device, > kernel_filename, kernel_cmdline, initrd_filename, > cpu_model, &n810_binfo, 810); > diff --git a/hw/null-machine.c b/hw/null-machine.c > index 69910d3..d813c08 100644 > --- a/hw/null-machine.c > +++ b/hw/null-machine.c > @@ -15,12 +15,7 @@ > #include "hw/hw.h" > #include "hw/boards.h" > > -static void machine_none_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 machine_none_init(QEMUMachineInitArgs *args) > { > } > > diff --git a/hw/omap_sx1.c b/hw/omap_sx1.c > index abca341..ad17487 100644 > --- a/hw/omap_sx1.c > +++ b/hw/omap_sx1.c > @@ -209,20 +209,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(QEMUMachineInitArgs *args) > { > + ram_addr_t ram_size = args->ram_size; > + const char *cpu_model = args->cpu_model; > + const char *kernel_filename = args->kernel_filename; > + const char *kernel_cmdline = args->kernel_cmdline; > + const char *initrd_filename = args->initrd_filename; > + const char *boot_device = args->boot_device; > 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(QEMUMachineInitArgs *args) > { > + ram_addr_t ram_size = args->ram_size; > + const char *cpu_model = args->cpu_model; > + const char *kernel_filename = args->kernel_filename; > + const char *kernel_cmdline = args->kernel_cmdline; > + const char *initrd_filename = args->initrd_filename; > + const char *boot_device = args->boot_device; > sx1_init(ram_size, boot_device, kernel_filename, > kernel_cmdline, initrd_filename, cpu_model, 2); > } > diff --git a/hw/openrisc_sim.c b/hw/openrisc_sim.c > index 55e97f0..e96a944 100644 > --- a/hw/openrisc_sim.c > +++ b/hw/openrisc_sim.c > @@ -90,13 +90,11 @@ static void cpu_openrisc_load_kernel(ram_addr_t ram_size, > cpu->env.pc = entry; > } > > -static void openrisc_sim_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 openrisc_sim_init(QEMUMachineInitArgs *args) > { > + ram_addr_t ram_size = args->ram_size; > + const char *cpu_model = args->cpu_model; > + const char *kernel_filename = args->kernel_filename; > OpenRISCCPU *cpu = NULL; > MemoryRegion *ram; > int n; > diff --git a/hw/palm.c b/hw/palm.c > index bacdc90..032b8d6 100644 > --- a/hw/palm.c > +++ b/hw/palm.c > @@ -190,11 +190,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(QEMUMachineInitArgs *args) > { > + const char *cpu_model = args->cpu_model; > + const char *kernel_filename = args->kernel_filename; > + const char *kernel_cmdline = args->kernel_cmdline; > + const char *initrd_filename = args->initrd_filename; > MemoryRegion *address_space_mem = get_system_memory(); > struct omap_mpu_state_s *mpu; > int flash_size = 0x00800000; > diff --git a/hw/pc_piix.c b/hw/pc_piix.c > index fd5898f..9efc822 100644 > --- a/hw/pc_piix.c > +++ b/hw/pc_piix.c > @@ -287,13 +287,14 @@ static void pc_init1(MemoryRegion *system_memory, > } > } > > -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(QEMUMachineInitArgs *args) > { > + ram_addr_t ram_size = args->ram_size; > + const char *cpu_model = args->cpu_model; > + const char *kernel_filename = args->kernel_filename; > + const char *kernel_cmdline = args->kernel_cmdline; > + const char *initrd_filename = args->initrd_filename; > + const char *boot_device = args->boot_device; > pc_init1(get_system_memory(), > get_system_io(), > ram_size, boot_device, > @@ -301,13 +302,14 @@ static void pc_init_pci(ram_addr_t ram_size, > initrd_filename, cpu_model, 1, 1); > } > > -static void pc_init_pci_no_kvmclock(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_no_kvmclock(QEMUMachineInitArgs *args) > { > + ram_addr_t ram_size = args->ram_size; > + const char *cpu_model = args->cpu_model; > + const char *kernel_filename = args->kernel_filename; > + const char *kernel_cmdline = args->kernel_cmdline; > + const char *initrd_filename = args->initrd_filename; > + const char *boot_device = args->boot_device; > pc_init1(get_system_memory(), > get_system_io(), > ram_size, boot_device, > @@ -315,13 +317,14 @@ static void pc_init_pci_no_kvmclock(ram_addr_t ram_size, > initrd_filename, cpu_model, 1, 0); > } > > -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(QEMUMachineInitArgs *args) > { > + ram_addr_t ram_size = args->ram_size; > + const char *cpu_model = args->cpu_model; > + const char *kernel_filename = args->kernel_filename; > + const char *kernel_cmdline = args->kernel_cmdline; > + const char *initrd_filename = args->initrd_filename; > + const char *boot_device = args->boot_device; > if (cpu_model == NULL) > cpu_model = "486"; > pc_init1(get_system_memory(), > @@ -332,7 +335,8 @@ static void pc_init_isa(ram_addr_t ram_size, > } > > #ifdef CONFIG_XEN > -static void pc_xen_hvm_init(ram_addr_t ram_size, > +static void pc_xen_hvm_init(QEMUMachine *machine, > + ram_addr_t ram_size, > const char *boot_device, > const char *kernel_filename, > const char *kernel_cmdline, > diff --git a/hw/petalogix_ml605_mmu.c b/hw/petalogix_ml605_mmu.c > index dced648..ace0187 100644 > --- a/hw/petalogix_ml605_mmu.c > +++ b/hw/petalogix_ml605_mmu.c > @@ -70,12 +70,10 @@ static void machine_cpu_reset(MicroBlazeCPU *cpu) > } > > static void > -petalogix_ml605_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_ml605_init(QEMUMachineInitArgs *args) > { > + ram_addr_t ram_size = args->ram_size; > + const char *cpu_model = args->cpu_model; > MemoryRegion *address_space_mem = get_system_memory(); > DeviceState *dev, *dma, *eth0; > MicroBlazeCPU *cpu; > diff --git a/hw/petalogix_s3adsp1800_mmu.c b/hw/petalogix_s3adsp1800_mmu.c > index 2cf6882..71c32ce 100644 > --- a/hw/petalogix_s3adsp1800_mmu.c > +++ b/hw/petalogix_s3adsp1800_mmu.c > @@ -57,12 +57,10 @@ static void machine_cpu_reset(MicroBlazeCPU *cpu) > } > > 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(QEMUMachineInitArgs *args) > { > + ram_addr_t ram_size = args->ram_size; > + const char *cpu_model = args->cpu_model; > DeviceState *dev; > MicroBlazeCPU *cpu; > CPUMBState *env; > diff --git a/hw/ppc/e500plat.c b/hw/ppc/e500plat.c > index 60a5cb3..4cfb940 100644 > --- a/hw/ppc/e500plat.c > +++ b/hw/ppc/e500plat.c > @@ -25,13 +25,14 @@ static void e500plat_fixup_devtree(PPCE500Params *params, void *fdt) > sizeof(compatible)); > } > > -static void e500plat_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 e500plat_init(QEMUMachineInitArgs *args) > { > + ram_addr_t ram_size = args->ram_size; > + const char *boot_device = args->boot_device; > + const char *cpu_model = args->cpu_model; > + const char *kernel_filename = args->kernel_filename; > + const char *kernel_cmdline = args->kernel_cmdline; > + const char *initrd_filename = args->initrd_filename; > PPCE500Params params = { > .ram_size = ram_size, > .boot_device = boot_device, > diff --git a/hw/ppc/mpc8544ds.c b/hw/ppc/mpc8544ds.c > index 984d21c..e651661 100644 > --- a/hw/ppc/mpc8544ds.c > +++ b/hw/ppc/mpc8544ds.c > @@ -25,13 +25,14 @@ static void mpc8544ds_fixup_devtree(PPCE500Params *params, void *fdt) > sizeof(compatible)); > } > > -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(QEMUMachineInitArgs *args) > { > + ram_addr_t ram_size = args->ram_size; > + const char *boot_device = args->boot_device; > + const char *cpu_model = args->cpu_model; > + const char *kernel_filename = args->kernel_filename; > + const char *kernel_cmdline = args->kernel_cmdline; > + const char *initrd_filename = args->initrd_filename; > PPCE500Params params = { > .ram_size = ram_size, > .boot_device = boot_device, > diff --git a/hw/ppc405_boards.c b/hw/ppc405_boards.c > index 476775d..e848cb0 100644 > --- a/hw/ppc405_boards.c > +++ b/hw/ppc405_boards.c > @@ -158,7 +158,7 @@ static void ref405ep_fpga_reset (void *opaque) > fpga->reg1 = 0x0F; > } > > -static void ref405ep_fpga_init (MemoryRegion *sysmem, uint32_t base) > +static void ref405ep_fpga_init(MemoryRegion *sysmem, uint32_t base) > { > ref405ep_fpga_t *fpga; > MemoryRegion *fpga_memory = g_new(MemoryRegion, 1); > @@ -170,13 +170,12 @@ static void ref405ep_fpga_init (MemoryRegion *sysmem, 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(QEMUMachineInitArgs *args) > { > + ram_addr_t ram_size = args->ram_size; > + const char *kernel_filename = args->kernel_filename; > + const char *kernel_cmdline = args->kernel_cmdline; > + const char *initrd_filename = args->initrd_filename; > char *filename; > ppc4xx_bd_info_t bd; > CPUPPCState *env; > @@ -484,7 +483,7 @@ static void taihu_cpld_reset (void *opaque) > cpld->reg1 = 0x80; > } > > -static void taihu_cpld_init (MemoryRegion *sysmem, uint32_t base) > +static void taihu_cpld_init(MemoryRegion *sysmem, uint32_t base) > { > taihu_cpld_t *cpld; > MemoryRegion *cpld_memory = g_new(MemoryRegion, 1); > @@ -495,13 +494,11 @@ static void taihu_cpld_init (MemoryRegion *sysmem, 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(QEMUMachineInitArgs *args) > { > + ram_addr_t ram_size = args->ram_size; > + const char *kernel_filename = args->kernel_filename; > + const char *initrd_filename = args->initrd_filename; > char *filename; > qemu_irq *pic; > MemoryRegion *sysmem = get_system_memory(); > diff --git a/hw/ppc440_bamboo.c b/hw/ppc440_bamboo.c > index c198071..78e7985 100644 > --- a/hw/ppc440_bamboo.c > +++ b/hw/ppc440_bamboo.c > @@ -157,13 +157,13 @@ static void main_cpu_reset(void *opaque) > mmubooke_create_initial_mapping(env, 0, 0); > } > > -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(QEMUMachineInitArgs *args) > { > + ram_addr_t ram_size = args->ram_size; > + const char *cpu_model = args->cpu_model; > + const char *kernel_filename = args->kernel_filename; > + const char *kernel_cmdline = args->kernel_cmdline; > + const char *initrd_filename = args->initrd_filename; > unsigned int pci_irq_nrs[4] = { 28, 27, 26, 25 }; > MemoryRegion *address_space_mem = get_system_memory(); > MemoryRegion *ram_memories > diff --git a/hw/ppc_newworld.c b/hw/ppc_newworld.c > index e95cfe8..e7c0747 100644 > --- a/hw/ppc_newworld.c > +++ b/hw/ppc_newworld.c > @@ -129,13 +129,14 @@ static void ppc_core99_reset(void *opaque) > } > > /* 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(QEMUMachineInitArgs *args) > { > + ram_addr_t ram_size = args->ram_size; > + const char *cpu_model = args->cpu_model; > + const char *kernel_filename = args->kernel_filename; > + const char *kernel_cmdline = args->kernel_cmdline; > + const char *initrd_filename = args->initrd_filename; > + const char *boot_device = args->boot_device; > PowerPCCPU *cpu = NULL; > CPUPPCState *env = NULL; > char *filename; > diff --git a/hw/ppc_oldworld.c b/hw/ppc_oldworld.c > index 1dcd8a6..d9f76a8 100644 > --- a/hw/ppc_oldworld.c > +++ b/hw/ppc_oldworld.c > @@ -72,13 +72,14 @@ static void ppc_heathrow_reset(void *opaque) > cpu_reset(CPU(cpu)); > } > > -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(QEMUMachineInitArgs *args) > { > + ram_addr_t ram_size = args->ram_size; > + const char *cpu_model = args->cpu_model; > + const char *kernel_filename = args->kernel_filename; > + const char *kernel_cmdline = args->kernel_cmdline; > + const char *initrd_filename = args->initrd_filename; > + const char *boot_device = args->boot_device; > MemoryRegion *sysmem = get_system_memory(); > PowerPCCPU *cpu = NULL; > CPUPPCState *env = NULL; > diff --git a/hw/ppc_prep.c b/hw/ppc_prep.c > index 592b7b2..f51f78a 100644 > --- a/hw/ppc_prep.c > +++ b/hw/ppc_prep.c > @@ -448,13 +448,14 @@ static void ppc_prep_reset(void *opaque) > } > > /* 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(QEMUMachineInitArgs *args) > { > + ram_addr_t ram_size = args->ram_size; > + const char *cpu_model = args->cpu_model; > + const char *kernel_filename = args->kernel_filename; > + const char *kernel_cmdline = args->kernel_cmdline; > + const char *initrd_filename = args->initrd_filename; > + const char *boot_device = args->boot_device; > MemoryRegion *sysmem = get_system_memory(); > PowerPCCPU *cpu = NULL; > CPUPPCState *env = NULL; > diff --git a/hw/puv3.c b/hw/puv3.c > index 43f7216..764799c 100644 > --- a/hw/puv3.c > +++ b/hw/puv3.c > @@ -91,10 +91,12 @@ static void puv3_load_kernel(const char *kernel_filename) > graphic_console_init(NULL, NULL, NULL, NULL, NULL); > } > > -static void puv3_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 puv3_init(QEMUMachineInitArgs *args) > { > + ram_addr_t ram_size = args->ram_size; > + const char *cpu_model = args->cpu_model; > + const char *kernel_filename = args->kernel_filename; > + const char *initrd_filename = args->initrd_filename; > CPUUniCore32State *env; > > if (initrd_filename) { > diff --git a/hw/r2d.c b/hw/r2d.c > index 0f16e81..5daa42f 100644 > --- a/hw/r2d.c > +++ b/hw/r2d.c > @@ -219,11 +219,12 @@ static struct QEMU_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(QEMUMachineInitArgs *args) > { > + const char *cpu_model = args->cpu_model; > + const char *kernel_filename = args->kernel_filename; > + const char *kernel_cmdline = args->kernel_cmdline; > + const char *initrd_filename = args->initrd_filename; > SuperHCPU *cpu; > CPUSH4State *env; > ResetData *reset_info; > diff --git a/hw/realview.c b/hw/realview.c > index 19db4d0..8dc4be6 100644 > --- a/hw/realview.c > +++ b/hw/realview.c > @@ -330,11 +330,14 @@ static void realview_init(ram_addr_t ram_size, > arm_load_kernel(arm_env_get_cpu(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(QEMUMachineInitArgs *args) > { > + ram_addr_t ram_size = args->ram_size; > + const char *cpu_model = args->cpu_model; > + const char *kernel_filename = args->kernel_filename; > + const char *kernel_cmdline = args->kernel_cmdline; > + const char *initrd_filename = args->initrd_filename; > + const char *boot_device = args->boot_device; > if (!cpu_model) { > cpu_model = "arm926"; > } > @@ -342,11 +345,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(QEMUMachineInitArgs *args) > { > + ram_addr_t ram_size = args->ram_size; > + const char *cpu_model = args->cpu_model; > + const char *kernel_filename = args->kernel_filename; > + const char *kernel_cmdline = args->kernel_cmdline; > + const char *initrd_filename = args->initrd_filename; > + const char *boot_device = args->boot_device; > if (!cpu_model) { > cpu_model = "arm11mpcore"; > } > @@ -354,11 +360,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(QEMUMachineInitArgs *args) > { > + ram_addr_t ram_size = args->ram_size; > + const char *cpu_model = args->cpu_model; > + const char *kernel_filename = args->kernel_filename; > + const char *kernel_cmdline = args->kernel_cmdline; > + const char *initrd_filename = args->initrd_filename; > + const char *boot_device = args->boot_device; > if (!cpu_model) { > cpu_model = "cortex-a8"; > } > @@ -366,11 +375,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(QEMUMachineInitArgs *args) > { > + ram_addr_t ram_size = args->ram_size; > + const char *cpu_model = args->cpu_model; > + const char *kernel_filename = args->kernel_filename; > + const char *kernel_cmdline = args->kernel_cmdline; > + const char *initrd_filename = args->initrd_filename; > + const char *boot_device = args->boot_device; > if (!cpu_model) { > cpu_model = "cortex-a9"; > } > diff --git a/hw/s390-virtio.c b/hw/s390-virtio.c > index 47eed35..39ff178 100644 > --- a/hw/s390-virtio.c > +++ b/hw/s390-virtio.c > @@ -151,13 +151,14 @@ unsigned s390_del_running_cpu(CPUS390XState *env) > } > > /* PC hardware initialisation */ > -static void s390_init(ram_addr_t my_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(QEMUMachineInitArgs *args) > { > + ram_addr_t my_ram_size = args->ram_size; > + ram_addr_t ram_size = args->ram_size; > + const char *cpu_model = args->cpu_model; > + const char *kernel_filename = args->kernel_filename; > + const char *kernel_cmdline = args->kernel_cmdline; > + const char *initrd_filename = args->initrd_filename; > CPUS390XState *env = NULL; > MemoryRegion *sysmem = get_system_memory(); > MemoryRegion *ram = g_new(MemoryRegion, 1); > diff --git a/hw/shix.c b/hw/shix.c > index dd9ce17..b56dd54 100644 > --- a/hw/shix.c > +++ b/hw/shix.c > @@ -37,11 +37,9 @@ > #define BIOS_FILENAME "shix_bios.bin" > #define BIOS_ADDRESS 0xA0000000 > > -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(QEMUMachineInitArgs *args) > { > + const char *cpu_model = args->cpu_model; > int ret; > CPUSH4State *env; > struct SH7750State *s; > diff --git a/hw/spapr.c b/hw/spapr.c > index c34b767..8921c4d 100644 > --- a/hw/spapr.c > +++ b/hw/spapr.c > @@ -603,13 +603,14 @@ static int spapr_vga_init(PCIBus *pci_bus) > } > > /* pSeries LPAR / sPAPR hardware init */ > -static void ppc_spapr_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_spapr_init(QEMUMachineInitArgs *args) > { > + ram_addr_t ram_size = args->ram_size; > + const char *cpu_model = args->cpu_model; > + const char *kernel_filename = args->kernel_filename; > + const char *kernel_cmdline = args->kernel_cmdline; > + const char *initrd_filename = args->initrd_filename; > + const char *boot_device = args->boot_device; > PowerPCCPU *cpu; > CPUPPCState *env; > PCIHostState *phb; > diff --git a/hw/spitz.c b/hw/spitz.c > index 20e7835..df829b3 100644 > --- a/hw/spitz.c > +++ b/hw/spitz.c > @@ -936,38 +936,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(QEMUMachineInitArgs *args) > { > + ram_addr_t ram_size = args->ram_size; > + const char *cpu_model = args->cpu_model; > + const char *kernel_filename = args->kernel_filename; > + const char *kernel_cmdline = args->kernel_cmdline; > + const char *initrd_filename = args->initrd_filename; > 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(QEMUMachineInitArgs *args) > { > + ram_addr_t ram_size = args->ram_size; > + const char *cpu_model = args->cpu_model; > + const char *kernel_filename = args->kernel_filename; > + const char *kernel_cmdline = args->kernel_cmdline; > + const char *initrd_filename = args->initrd_filename; > 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(QEMUMachineInitArgs *args) > { > + ram_addr_t ram_size = args->ram_size; > + const char *cpu_model = args->cpu_model; > + const char *kernel_filename = args->kernel_filename; > + const char *kernel_cmdline = args->kernel_cmdline; > + const char *initrd_filename = args->initrd_filename; > 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(QEMUMachineInitArgs *args) > { > + ram_addr_t ram_size = args->ram_size; > + const char *cpu_model = args->cpu_model; > + const char *kernel_filename = args->kernel_filename; > + const char *kernel_cmdline = args->kernel_cmdline; > + const char *initrd_filename = args->initrd_filename; > spitz_common_init(ram_size, kernel_filename, > kernel_cmdline, initrd_filename, cpu_model, terrier, 0x33f); > } > diff --git a/hw/stellaris.c b/hw/stellaris.c > index 562fbbf..b79c7fb 100644 > --- a/hw/stellaris.c > +++ b/hw/stellaris.c > @@ -1358,19 +1358,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(QEMUMachineInitArgs *args) > { > + const char *cpu_model = args->cpu_model; > + const char *kernel_filename = args->kernel_filename; > 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(QEMUMachineInitArgs *args) > { > + const char *cpu_model = args->cpu_model; > + const char *kernel_filename = args->kernel_filename; > stellaris_init(kernel_filename, cpu_model, &stellaris_boards[1]); > } > > diff --git a/hw/sun4m.c b/hw/sun4m.c > index c98cd5e..22e011f 100644 > --- a/hw/sun4m.c > +++ b/hw/sun4m.c > @@ -1303,92 +1303,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(QEMUMachineInitArgs *args) > { > + ram_addr_t RAM_size = args->ram_size; > + const char *cpu_model = args->cpu_model; > + const char *kernel_filename = args->kernel_filename; > + const char *kernel_cmdline = args->kernel_cmdline; > + const char *initrd_filename = args->initrd_filename; > + const char *boot_device = args->boot_device; > 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(QEMUMachineInitArgs *args) > { > + ram_addr_t RAM_size = args->ram_size; > + const char *cpu_model = args->cpu_model; > + const char *kernel_filename = args->kernel_filename; > + const char *kernel_cmdline = args->kernel_cmdline; > + const char *initrd_filename = args->initrd_filename; > + const char *boot_device = args->boot_device; > 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(QEMUMachineInitArgs *args) > { > + ram_addr_t RAM_size = args->ram_size; > + const char *cpu_model = args->cpu_model; > + const char *kernel_filename = args->kernel_filename; > + const char *kernel_cmdline = args->kernel_cmdline; > + const char *initrd_filename = args->initrd_filename; > + const char *boot_device = args->boot_device; > 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(QEMUMachineInitArgs *args) > { > + ram_addr_t RAM_size = args->ram_size; > + const char *cpu_model = args->cpu_model; > + const char *kernel_filename = args->kernel_filename; > + const char *kernel_cmdline = args->kernel_cmdline; > + const char *initrd_filename = args->initrd_filename; > + const char *boot_device = args->boot_device; > 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(QEMUMachineInitArgs *args) > { > + ram_addr_t RAM_size = args->ram_size; > + const char *cpu_model = args->cpu_model; > + const char *kernel_filename = args->kernel_filename; > + const char *kernel_cmdline = args->kernel_cmdline; > + const char *initrd_filename = args->initrd_filename; > + const char *boot_device = args->boot_device; > 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(QEMUMachineInitArgs *args) > { > + ram_addr_t RAM_size = args->ram_size; > + const char *cpu_model = args->cpu_model; > + const char *kernel_filename = args->kernel_filename; > + const char *kernel_cmdline = args->kernel_cmdline; > + const char *initrd_filename = args->initrd_filename; > + const char *boot_device = args->boot_device; > 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(QEMUMachineInitArgs *args) > { > + ram_addr_t RAM_size = args->ram_size; > + const char *cpu_model = args->cpu_model; > + const char *kernel_filename = args->kernel_filename; > + const char *kernel_cmdline = args->kernel_cmdline; > + const char *initrd_filename = args->initrd_filename; > + const char *boot_device = args->boot_device; > 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(QEMUMachineInitArgs *args) > { > + ram_addr_t RAM_size = args->ram_size; > + const char *cpu_model = args->cpu_model; > + const char *kernel_filename = args->kernel_filename; > + const char *kernel_cmdline = args->kernel_cmdline; > + const char *initrd_filename = args->initrd_filename; > + const char *boot_device = args->boot_device; > 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(QEMUMachineInitArgs *args) > { > + ram_addr_t RAM_size = args->ram_size; > + const char *cpu_model = args->cpu_model; > + const char *kernel_filename = args->kernel_filename; > + const char *kernel_cmdline = args->kernel_cmdline; > + const char *initrd_filename = args->initrd_filename; > + const char *boot_device = args->boot_device; > sun4m_hw_init(&sun4m_hwdefs[8], RAM_size, boot_device, kernel_filename, > kernel_cmdline, initrd_filename, cpu_model); > } > @@ -1651,21 +1677,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(QEMUMachineInitArgs *args) > { > + ram_addr_t RAM_size = args->ram_size; > + const char *cpu_model = args->cpu_model; > + const char *kernel_filename = args->kernel_filename; > + const char *kernel_cmdline = args->kernel_cmdline; > + const char *initrd_filename = args->initrd_filename; > + const char *boot_device = args->boot_device; > 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(QEMUMachineInitArgs *args) > { > + ram_addr_t RAM_size = args->ram_size; > + const char *cpu_model = args->cpu_model; > + const char *kernel_filename = args->kernel_filename; > + const char *kernel_cmdline = args->kernel_cmdline; > + const char *initrd_filename = args->initrd_filename; > + const char *boot_device = args->boot_device; > sun4d_hw_init(&sun4d_hwdefs[1], RAM_size, boot_device, kernel_filename, > kernel_cmdline, initrd_filename, cpu_model); > } > @@ -1845,11 +1877,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(QEMUMachineInitArgs *args) > { > + ram_addr_t RAM_size = args->ram_size; > + const char *cpu_model = args->cpu_model; > + const char *kernel_filename = args->kernel_filename; > + const char *kernel_cmdline = args->kernel_cmdline; > + const char *initrd_filename = args->initrd_filename; > + const char *boot_device = args->boot_device; > sun4c_hw_init(&sun4c_hwdefs[0], RAM_size, boot_device, kernel_filename, > kernel_cmdline, initrd_filename, cpu_model); > } > diff --git a/hw/sun4u.c b/hw/sun4u.c > index 07cd042..379768c 100644 > --- a/hw/sun4u.c > +++ b/hw/sun4u.c > @@ -930,31 +930,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(QEMUMachineInitArgs *args) > +{ > + ram_addr_t RAM_size = args->ram_size; > + const char *cpu_model = args->cpu_model; > + const char *kernel_filename = args->kernel_filename; > + const char *kernel_cmdline = args->kernel_cmdline; > + const char *initrd_filename = args->initrd_filename; > + const char *boot_devices = args->boot_device; > sun4uv_init(get_system_memory(), 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(QEMUMachineInitArgs *args) > +{ > + ram_addr_t RAM_size = args->ram_size; > + const char *cpu_model = args->cpu_model; > + const char *kernel_filename = args->kernel_filename; > + const char *kernel_cmdline = args->kernel_cmdline; > + const char *initrd_filename = args->initrd_filename; > + const char *boot_devices = args->boot_device; > sun4uv_init(get_system_memory(), 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(QEMUMachineInitArgs *args) > +{ > + ram_addr_t RAM_size = args->ram_size; > + const char *cpu_model = args->cpu_model; > + const char *kernel_filename = args->kernel_filename; > + const char *kernel_cmdline = args->kernel_cmdline; > + const char *initrd_filename = args->initrd_filename; > + const char *boot_devices = args->boot_device; > sun4uv_init(get_system_memory(), RAM_size, boot_devices, kernel_filename, > kernel_cmdline, initrd_filename, cpu_model, &hwdefs[2]); > } > diff --git a/hw/tosa.c b/hw/tosa.c > index 297a8c2..512278c 100644 > --- a/hw/tosa.c > +++ b/hw/tosa.c > @@ -205,11 +205,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(QEMUMachineInitArgs *args) > { > + const char *cpu_model = args->cpu_model; > + const char *kernel_filename = args->kernel_filename; > + const char *kernel_cmdline = args->kernel_cmdline; > + const char *initrd_filename = args->initrd_filename; > MemoryRegion *address_space_mem = get_system_memory(); > MemoryRegion *rom = g_new(MemoryRegion, 1); > PXA2xxState *mpu; > diff --git a/hw/versatilepb.c b/hw/versatilepb.c > index 7a92034..686dcc7 100644 > --- a/hw/versatilepb.c > +++ b/hw/versatilepb.c > @@ -342,22 +342,28 @@ static void versatile_init(ram_addr_t ram_size, > arm_load_kernel(cpu, &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(QEMUMachineInitArgs *args) > { > + ram_addr_t ram_size = args->ram_size; > + const char *cpu_model = args->cpu_model; > + const char *kernel_filename = args->kernel_filename; > + const char *kernel_cmdline = args->kernel_cmdline; > + const char *initrd_filename = args->initrd_filename; > + const char *boot_device = args->boot_device; > 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(QEMUMachineInitArgs *args) > { > + ram_addr_t ram_size = args->ram_size; > + const char *cpu_model = args->cpu_model; > + const char *kernel_filename = args->kernel_filename; > + const char *kernel_cmdline = args->kernel_cmdline; > + const char *initrd_filename = args->initrd_filename; > + const char *boot_device = args->boot_device; > versatile_init(ram_size, > boot_device, > kernel_filename, kernel_cmdline, > diff --git a/hw/vexpress.c b/hw/vexpress.c > index 3596d1e..36503d6 100644 > --- a/hw/vexpress.c > +++ b/hw/vexpress.c > @@ -467,25 +467,27 @@ static void vexpress_common_init(const VEDBoardInfo *daughterboard, > arm_load_kernel(arm_env_get_cpu(first_cpu), &vexpress_binfo); > } > > -static void vexpress_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 vexpress_a9_init(QEMUMachineInitArgs *args) > { > + ram_addr_t ram_size = args->ram_size; > + const char *cpu_model = args->cpu_model; > + const char *kernel_filename = args->kernel_filename; > + const char *kernel_cmdline = args->kernel_cmdline; > + const char *initrd_filename = args->initrd_filename; > + const char *boot_device = args->boot_device; > vexpress_common_init(&a9_daughterboard, > ram_size, boot_device, kernel_filename, > kernel_cmdline, initrd_filename, cpu_model); > } > > -static void vexpress_a15_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 vexpress_a15_init(QEMUMachineInitArgs *args) > { > + ram_addr_t ram_size = args->ram_size; > + const char *cpu_model = args->cpu_model; > + const char *kernel_filename = args->kernel_filename; > + const char *kernel_cmdline = args->kernel_cmdline; > + const char *initrd_filename = args->initrd_filename; > + const char *boot_device = args->boot_device; > vexpress_common_init(&a15_daughterboard, > ram_size, boot_device, kernel_filename, > kernel_cmdline, initrd_filename, cpu_model); > diff --git a/hw/virtex_ml507.c b/hw/virtex_ml507.c > index 79bc0d1..a09b27a 100644 > --- a/hw/virtex_ml507.c > +++ b/hw/virtex_ml507.c > @@ -183,12 +183,12 @@ static int xilinx_load_device_tree(target_phys_addr_t addr, > return fdt_size; > } > > -static void virtex_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 virtex_init(QEMUMachineInitArgs *args) > { > + ram_addr_t ram_size = args->ram_size; > + const char *cpu_model = args->cpu_model; > + const char *kernel_filename = args->kernel_filename; > + const char *kernel_cmdline = args->kernel_cmdline; > MemoryRegion *address_space_mem = get_system_memory(); > DeviceState *dev; > PowerPCCPU *cpu; > diff --git a/hw/xen_machine_pv.c b/hw/xen_machine_pv.c > index 4b72aa7..1ac9990 100644 > --- a/hw/xen_machine_pv.c > +++ b/hw/xen_machine_pv.c > @@ -29,12 +29,13 @@ > #include "xen_domainbuild.h" > #include "blockdev.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(QEMUMachine *machine, > + 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) > { > X86CPU *cpu; > CPUX86State *env; > diff --git a/hw/xilinx_zynq.c b/hw/xilinx_zynq.c > index 7e6c273..83f322e 100644 > --- a/hw/xilinx_zynq.c > +++ b/hw/xilinx_zynq.c > @@ -46,10 +46,13 @@ static void gem_init(NICInfo *nd, uint32_t base, qemu_irq irq) > sysbus_connect_irq(s, 0, irq); > } > > -static void zynq_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 zynq_init(QEMUMachineInitArgs *args) > { > + ram_addr_t ram_size = args->ram_size; > + const char *cpu_model = args->cpu_model; > + const char *kernel_filename = args->kernel_filename; > + const char *kernel_cmdline = args->kernel_cmdline; > + const char *initrd_filename = args->initrd_filename; > ARMCPU *cpu; > MemoryRegion *address_space_mem = get_system_memory(); > MemoryRegion *ext_ram = g_new(MemoryRegion, 1); > diff --git a/hw/xtensa_lx60.c b/hw/xtensa_lx60.c > index 3653f65..1fd2c47 100644 > --- a/hw/xtensa_lx60.c > +++ b/hw/xtensa_lx60.c > @@ -268,11 +268,14 @@ static void lx_init(const LxBoardDesc *board, > } > } > > -static void xtensa_lx60_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 xtensa_lx60_init(QEMUMachineInitArgs *args) > { > + ram_addr_t ram_size = args->ram_size; > + const char *cpu_model = args->cpu_model; > + const char *kernel_filename = args->kernel_filename; > + const char *kernel_cmdline = args->kernel_cmdline; > + const char *initrd_filename = args->initrd_filename; > + const char *boot_device = args->boot_device; > static const LxBoardDesc lx60_board = { > .flash_size = 0x400000, > .flash_sector_size = 0x10000, > @@ -283,11 +286,14 @@ static void xtensa_lx60_init(ram_addr_t ram_size, > initrd_filename, cpu_model); > } > > -static void xtensa_lx200_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 xtensa_lx200_init(QEMUMachineInitArgs *args) > { > + ram_addr_t ram_size = args->ram_size; > + const char *cpu_model = args->cpu_model; > + const char *kernel_filename = args->kernel_filename; > + const char *kernel_cmdline = args->kernel_cmdline; > + const char *initrd_filename = args->initrd_filename; > + const char *boot_device = args->boot_device; > static const LxBoardDesc lx200_board = { > .flash_size = 0x1000000, > .flash_sector_size = 0x20000, > diff --git a/hw/xtensa_sim.c b/hw/xtensa_sim.c > index 831460b..2e846d8 100644 > --- a/hw/xtensa_sim.c > +++ b/hw/xtensa_sim.c > @@ -96,11 +96,14 @@ static void sim_init(ram_addr_t ram_size, > } > } > > -static void xtensa_sim_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 xtensa_sim_init(QEMUMachineInitArgs *args) > { > + ram_addr_t ram_size = args->ram_size; > + const char *cpu_model = args->cpu_model; > + const char *kernel_filename = args->kernel_filename; > + const char *kernel_cmdline = args->kernel_cmdline; > + const char *initrd_filename = args->initrd_filename; > + const char *boot_device = args->boot_device; > if (!cpu_model) { > cpu_model = XTENSA_DEFAULT_CPU_MODEL; > } > diff --git a/hw/z2.c b/hw/z2.c > index 289cee9..0927bad 100644 > --- a/hw/z2.c > +++ b/hw/z2.c > @@ -294,11 +294,12 @@ static TypeInfo aer915_info = { > .class_init = aer915_class_init, > }; > > -static void z2_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 z2_init(QEMUMachineInitArgs *args) > { > + const char *cpu_model = args->cpu_model; > + const char *kernel_filename = args->kernel_filename; > + const char *kernel_cmdline = args->kernel_cmdline; > + const char *initrd_filename = args->initrd_filename; > MemoryRegion *address_space_mem = get_system_memory(); > uint32_t sector_len = 0x10000; > PXA2xxState *mpu; > diff --git a/vl.c b/vl.c > index 8d305ca..f663e7c 100644 > --- a/vl.c > +++ b/vl.c > @@ -3624,8 +3624,13 @@ int main(int argc, char **argv, char **envp) > > qdev_machine_init(); > > - machine->init(ram_size, boot_devices, > - kernel_filename, kernel_cmdline, initrd_filename, cpu_model); > + QEMUMachineInitArgs args = { .ram_size = ram_size, > + .boot_device = boot_devices, > + .kernel_filename = kernel_filename, > + .kernel_cmdline = kernel_cmdline, > + initrd_filename = initrd_filename, > + .cpu_model = cpu_model }; > + machine->init(&args); > > cpu_synchronize_all_post_init(); > > -- > 1.7.11.4 >
Eduardo Habkost
2012-Oct-05 20:09 UTC
Re: [QEMU PATCH] create struct for machine initialization arguments
On Fri, Oct 05, 2012 at 03:37:00PM -0300, Eduardo Habkost wrote: [...]> diff --git a/hw/boards.h b/hw/boards.h > index a2e0a54..813d0e5 100644 > --- a/hw/boards.h > +++ b/hw/boards.h > @@ -5,12 +5,16 @@ > > #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 QEMUMachineInitArgs { > + 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; > +} QEMUMachineInitArgs; > + > +typedef void QEMUMachineInitFunc(QEMUMachineInitArgs *args); > > typedef void QEMUMachineResetFunc(void); >[...]> @@ -332,7 +335,8 @@ static void pc_init_isa(ram_addr_t ram_size, > } > > #ifdef CONFIG_XEN > -static void pc_xen_hvm_init(ram_addr_t ram_size, > +static void pc_xen_hvm_init(QEMUMachine *machine, > + ram_addr_t ram_size,Oops. This is a leftover of an idea on which I was working previously (and then abandoned). It''s obviously broken. I will submit a fixed version. -- Eduardo