Le 24/05/2023 à 23:10, Mark Cave-Ayland a écrit :
> Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
> ---
> hw/m68k/q800.c | 13 +++++--------
> include/hw/m68k/q800.h | 1 +
> 2 files changed, 6 insertions(+), 8 deletions(-)
>
> diff --git a/hw/m68k/q800.c b/hw/m68k/q800.c
> index ee6175ceb4..6a000ceb75 100644
> --- a/hw/m68k/q800.c
> +++ b/hw/m68k/q800.c
> @@ -371,7 +371,6 @@ static void q800_machine_init(MachineState *machine)
> int bios_size;
> ram_addr_t initrd_base;
> int32_t initrd_size;
> - MemoryRegion *rom;
> MemoryRegion *io;
> MemoryRegion *dp8393x_prom = g_new(MemoryRegion, 1);
> uint8_t *prom;
> @@ -643,11 +642,10 @@ static void q800_machine_init(MachineState *machine)
> BOOTINFO1(param_ptr, BI_MAC_VROW, macfb_mode->stride);
> BOOTINFO1(param_ptr, BI_MAC_SCCBASE, SCC_BASE);
>
> - rom = g_malloc(sizeof(*rom));
> - memory_region_init_ram_ptr(rom, NULL, "m68k_fake_mac.rom",
> + memory_region_init_ram_ptr(&m->rom, NULL, "m68k_fake_mac.rom",
> sizeof(fake_mac_rom), fake_mac_rom);
> - memory_region_set_readonly(rom, true);
> - memory_region_add_subregion(get_system_memory(), MACROM_ADDR, rom);
> + memory_region_set_readonly(&m->rom, true);
> + memory_region_add_subregion(get_system_memory(), MACROM_ADDR, &m->rom);
>
> if (kernel_cmdline) {
> BOOTINFOSTR(param_ptr, BI_COMMAND_LINE,
> @@ -689,11 +687,10 @@ static void q800_machine_init(MachineState *machine)
> } else {
> uint8_t *ptr;
> /* allocate and load BIOS */
> - rom = g_malloc(sizeof(*rom));
> - memory_region_init_rom(rom, NULL, "m68k_mac.rom", MACROM_SIZE,
> + memory_region_init_rom(&m->rom, NULL, "m68k_mac.rom", MACROM_SIZE,
> &error_abort);
> filename = qemu_find_file(QEMU_FILE_TYPE_BIOS, bios_name);
> - memory_region_add_subregion(get_system_memory(), MACROM_ADDR, rom);
> + memory_region_add_subregion(get_system_memory(), MACROM_ADDR, &m->rom);
>
> /* Load MacROM binary */
> if (filename) {
> diff --git a/include/hw/m68k/q800.h b/include/hw/m68k/q800.h
> index 5867c3ae33..2f3c720b8d 100644
> --- a/include/hw/m68k/q800.h
> +++ b/include/hw/m68k/q800.h
> @@ -31,6 +31,7 @@ struct Q800MachineState {
> MachineState parent_obj;
>
> M68kCPU *cpu;
> + MemoryRegion rom;
> };
>
> #define TYPE_Q800_MACHINE MACHINE_TYPE_NAME("q800")
Reviewed-by: Laurent Vivier <laurent@vivier.eu>